|
|
|
@ -5,6 +5,7 @@ import 'dart:io';
|
|
|
|
import 'package:connectivity/connectivity.dart';
|
|
|
|
import 'package:connectivity/connectivity.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter_tts/flutter_tts.dart';
|
|
|
|
import 'package:flutter_tts/flutter_tts.dart';
|
|
|
|
|
|
|
|
import 'package:intl/intl.dart';
|
|
|
|
import 'package:just_audio/just_audio.dart';
|
|
|
|
import 'package:just_audio/just_audio.dart';
|
|
|
|
import 'package:queuing_system/core/api.dart';
|
|
|
|
import 'package:queuing_system/core/api.dart';
|
|
|
|
import 'package:queuing_system/core/response_models/call_config_model.dart';
|
|
|
|
import 'package:queuing_system/core/response_models/call_config_model.dart';
|
|
|
|
@ -99,23 +100,55 @@ class AppProvider extends ChangeNotifier {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PrayersWidgetModel nextPrayerToShow = PrayersWidgetModel();
|
|
|
|
String nextPrayerToShowWithTime = '';
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> getTheNextPrayerToShow() async {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void getNextPrayerToShow() {
|
|
|
|
|
|
|
|
log("Checking Namaz time!");
|
|
|
|
|
|
|
|
final current = DateTime.now();
|
|
|
|
|
|
|
|
if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.fajr!).isAfter(current)) {
|
|
|
|
|
|
|
|
final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.fajr!));
|
|
|
|
|
|
|
|
nextPrayerToShowWithTime = "Fajr ($namazTime)";
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.dhuhr!).isAfter(current)) {
|
|
|
|
|
|
|
|
final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.dhuhr!));
|
|
|
|
|
|
|
|
nextPrayerToShowWithTime = "Dhuhr ($namazTime)";
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.asr!).isAfter(current)) {
|
|
|
|
|
|
|
|
final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.asr!));
|
|
|
|
|
|
|
|
nextPrayerToShowWithTime = "Asar ($namazTime)";
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.maghrib!).isAfter(current)) {
|
|
|
|
|
|
|
|
final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.maghrib!));
|
|
|
|
|
|
|
|
nextPrayerToShowWithTime = "Maghrib ($namazTime)";
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.isha!).isAfter(current)) {
|
|
|
|
|
|
|
|
final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.isha!));
|
|
|
|
|
|
|
|
nextPrayerToShowWithTime = "Isha ($namazTime)";
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
List<PrayersWidgetModel?> currentPrayersWidgetModel = [];
|
|
|
|
PrayersWidgetModel currentPrayersWidgetModel = PrayersWidgetModel();
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> getPrayerDetailsFromServer() async {
|
|
|
|
Future<void> getPrayerDetailsFromServer() async {
|
|
|
|
List<PrayersWidgetModel?> prayersWidgetModel = await API.getPrayerDetailsFromServer(
|
|
|
|
PrayersWidgetModel? prayersWidgetModel = await API.getPrayerDetailsFromServer(
|
|
|
|
latitude: currentWidgetsConfigModel!.projectLatitude ?? 0,
|
|
|
|
latitude: currentWidgetsConfigModel!.projectLatitude ?? 0,
|
|
|
|
longitude: currentWidgetsConfigModel!.projectLongitude ?? 0,
|
|
|
|
longitude: currentWidgetsConfigModel!.projectLongitude ?? 0,
|
|
|
|
onFailure: (error) => log("Api call failed with this error: ${error.toString()}"));
|
|
|
|
onFailure: (error) => log("Api call failed with this error: ${error.toString()}"));
|
|
|
|
|
|
|
|
|
|
|
|
if (prayersWidgetModel.isNotEmpty) {
|
|
|
|
if (prayersWidgetModel != null) {
|
|
|
|
currentPrayersWidgetModel = prayersWidgetModel;
|
|
|
|
currentPrayersWidgetModel = prayersWidgetModel;
|
|
|
|
log("I got this data: ${prayersWidgetModel.toString()}");
|
|
|
|
log("I got this data from Prayers: ${prayersWidgetModel.toString()}");
|
|
|
|
|
|
|
|
getNextPrayerToShow();
|
|
|
|
notifyListeners();
|
|
|
|
notifyListeners();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -143,8 +176,8 @@ class AppProvider extends ChangeNotifier {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DateTime current = DateTime.now();
|
|
|
|
DateTime current = DateTime.now();
|
|
|
|
Stream timer = Stream.periodic(const Duration(hours: 1), (i) {
|
|
|
|
Stream timer = Stream.periodic(const Duration(minutes: 1), (i) {
|
|
|
|
current = current.add(const Duration(hours: 1));
|
|
|
|
current = current.add(const Duration(minutes: 1));
|
|
|
|
return current;
|
|
|
|
return current;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
@ -162,6 +195,7 @@ class AppProvider extends ChangeNotifier {
|
|
|
|
await getPrayerDetailsFromServer();
|
|
|
|
await getPrayerDetailsFromServer();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
getNextPrayerToShow();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|