import 'dart:async'; import 'dart:io'; import 'package:fikoyt_merkez/apps/mesaici/servisler/mesaici.background.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_background_service/flutter_background_service.dart'; import 'package:get/get.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'mesaici.ayarlar.dart'; class FikoYTMesaiciService extends GetxService { final arkaPlanServis = FlutterBackgroundService(); late SharedPreferences ayarlar; final MesaiciAyarlar mesaiciAyarlar = MesaiciAyarlar(); Future init() async { // print('$runtimeType delays 2 sec'); // await 2.delay(); // print('$runtimeType ready!'); ayarlar = await SharedPreferences.getInstance(); ayarlar.reload(); await ayarlariOku(); if (Platform.isAndroid) await arkaPlanServisInit(); return this; } ayarlariOku() async { mesaiciAyarlar.hesapAyarlari.adSoyad.value = ayarlar.getString("mesaici.ayarlar.adSoyad") ?? ""; mesaiciAyarlar.hesapAyarlari.sirket.value = ayarlar.getString("mesaici.ayarlar.sirket") ?? ""; mesaiciAyarlar.hesapAyarlari.goreviniz.value = ayarlar.getString("mesaici.ayarlar.goreviniz") ?? ""; mesaiciAyarlar.hesapAyarlari.iseGirisTarihi.value = ayarlar.getString("mesaici.ayarlar.iseGirisTarihi") ?? ""; /** */ mesaiciAyarlar.uygulamaAyarlari.ilkEkranAcilistaGoster.value = ayarlar.getBool("mesaici.ayarlar.ilkEkranAcilistaGoster") ?? true; mesaiciAyarlar.uygulamaAyarlari.ilkEkraniHerZamanGoster.value = ayarlar.getBool("mesaici.ayarlar.ilkEkraniHerZamanGoster") ?? false; /** */ mesaiciAyarlar.bildirimAyarlari.genelBildirimler.value = ayarlar.getBool("mesaici.ayarlar.genelBildirimler") ?? true; mesaiciAyarlar.bildirimAyarlari.iseBaslamaBildirimleri.value = ayarlar.getBool("mesaici.ayarlar.iseBaslamaBildirimleri") ?? true; mesaiciAyarlar.bildirimAyarlari.isiBitirmeBildirimleri.value = ayarlar.getBool("mesaici.ayarlar.isiBitirmeBildirimleri") ?? true; mesaiciAyarlar.bildirimAyarlari.molaBaslangicBildirimleri.value = ayarlar.getBool("mesaici.ayarlar.molaBaslangicBildirimleri") ?? true; mesaiciAyarlar.bildirimAyarlari.molaBitisBildirimleri.value = ayarlar.getBool("mesaici.ayarlar.molaBitisBildirimleri") ?? true; /** */ mesaiciAyarlar.calismaSuresiAyarlari.aylikMaasGunu.value = ayarlar.getInt("mesaici.ayarlar.aylikMaasGunu") ?? 30; mesaiciAyarlar.calismaSuresiAyarlari.aylikCalismaSaati.value = ayarlar.getDouble("mesaici.ayarlar.aylikCalismaSaati") ?? 270.0; } ayarlariKaydet() async { ayarlar.setString( "mesaici.ayarlar.adSoyad", mesaiciAyarlar.hesapAyarlari.adSoyad.value); ayarlar.setString( "mesaici.ayarlar.sirket", mesaiciAyarlar.hesapAyarlari.sirket.value); ayarlar.setString("mesaici.ayarlar.goreviniz", mesaiciAyarlar.hesapAyarlari.goreviniz.value); ayarlar.setString("mesaici.ayarlar.iseGirisTarihi", mesaiciAyarlar.hesapAyarlari.iseGirisTarihi.value); /** */ ayarlar.setBool("mesaici.ayarlar.ilkEkranAcilistaGoster", mesaiciAyarlar.uygulamaAyarlari.ilkEkranAcilistaGoster.value); ayarlar.setBool("mesaici.ayarlar.ilkEkraniHerZamanGoster", mesaiciAyarlar.uygulamaAyarlari.ilkEkraniHerZamanGoster.value); /** */ ayarlar.setBool("mesaici.ayarlar.genelBildirimler", mesaiciAyarlar.bildirimAyarlari.genelBildirimler.value); ayarlar.setBool("mesaici.ayarlar.iseBaslamaBildirimleri", mesaiciAyarlar.bildirimAyarlari.iseBaslamaBildirimleri.value); ayarlar.setBool("mesaici.ayarlar.isiBitirmeBildirimleri", mesaiciAyarlar.bildirimAyarlari.isiBitirmeBildirimleri.value); ayarlar.setBool("mesaici.ayarlar.molaBaslangicBildirimleri", mesaiciAyarlar.bildirimAyarlari.molaBaslangicBildirimleri.value); ayarlar.setBool("mesaici.ayarlar.molaBitisBildirimleri", mesaiciAyarlar.bildirimAyarlari.molaBitisBildirimleri.value); /** */ ayarlar.setInt("mesaici.ayarlar.aylikMaasGunu", mesaiciAyarlar.calismaSuresiAyarlari.aylikMaasGunu.value); ayarlar.setDouble("mesaici.ayarlar.aylikCalismaSaati", mesaiciAyarlar.calismaSuresiAyarlari.aylikCalismaSaati.value); } arkaPlanServisInit() async { mesaiciAyarlar.uygulamaAyarlari.baslangictaCalistir.value = ayarlar.getBool("mesaici.servis.baslangicta-calistir") ?? false; mesaiciAyarlar.uygulamaAyarlari.otomatikBaslat.value = ayarlar.getBool("mesaici.servis.otomatik-baslat") ?? false; await arkaPlanServis.configure( iosConfiguration: IosConfiguration(), androidConfiguration: AndroidConfiguration( autoStart: mesaiciAyarlar.uygulamaAyarlari.otomatikBaslat.value, autoStartOnBoot: mesaiciAyarlar.uygulamaAyarlari.baslangictaCalistir.value, onStart: onServisStart, isForegroundMode: true, // notificationChannelId: "Genel", initialNotificationTitle: "FikoYT", initialNotificationContent: "FikoYT ArkaPlanda Sizin İçin Çalışıyor", ), ); mesaiciAyarlar.uygulamaAyarlari.servisCalisiyor.value = await arkaPlanServis.isRunning(); arkaPlanServis.on("mesaici.servis.olay.durduruldu").listen((event) { mesaiciAyarlar.uygulamaAyarlari.servisCalisiyor.value = false; }); arkaPlanServis.on("mesaici.servis.olay.baslatildi").listen((event) { mesaiciAyarlar.uygulamaAyarlari.servisCalisiyor.value = true; }); arkaPlanServis.on("mesaici.servis.olay.calisiyor").listen((event) { if (kDebugMode) { print("çalışıyor"); } }); if (mesaiciAyarlar.uygulamaAyarlari.otomatikBaslat.value) { arkaPlanServis.startService(); } } }