Tambahkan dukungan penyimpanan lokal dan perbaikan manajemen data
- Integrasikan GetStorage untuk menyimpan data counter secara lokal - Tambahkan metode loadCountersFromStorage di CounterService - Perbarui model DonaturModel dan StokBantuanModel untuk konsistensi data - Tambahkan properti lastUpdateTime di controller untuk melacak pembaruan data - Perbaiki tampilan dengan menambahkan informasi waktu terakhir update - Optimalkan metode refresh dan update data di berbagai controller
This commit is contained in:
@ -1,9 +1,21 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
|
||||
/// Service untuk berbagi data counter antar controller
|
||||
class CounterService extends GetxService {
|
||||
static CounterService get to => Get.find<CounterService>();
|
||||
|
||||
// Penyimpanan lokal
|
||||
final GetStorage _storage = GetStorage();
|
||||
|
||||
// Keys untuk penyimpanan
|
||||
static const String _keyMenunggu = 'counter_menunggu';
|
||||
static const String _keyTerverifikasi = 'counter_terverifikasi';
|
||||
static const String _keyDitolak = 'counter_ditolak';
|
||||
static const String _keyDiproses = 'counter_diproses';
|
||||
static const String _keyNotifikasi = 'counter_notifikasi';
|
||||
static const String _keyJadwal = 'counter_jadwal';
|
||||
|
||||
// Counter untuk penitipan
|
||||
final RxInt jumlahMenunggu = 0.obs;
|
||||
final RxInt jumlahTerverifikasi = 0.obs;
|
||||
@ -18,6 +30,26 @@ class CounterService extends GetxService {
|
||||
// Counter untuk jadwal
|
||||
final RxInt jumlahJadwalHariIni = 0.obs;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
// Muat nilai counter dari penyimpanan lokal
|
||||
loadCountersFromStorage();
|
||||
}
|
||||
|
||||
// Metode untuk memuat counter dari penyimpanan lokal
|
||||
void loadCountersFromStorage() {
|
||||
jumlahMenunggu.value = _storage.read(_keyMenunggu) ?? 0;
|
||||
jumlahTerverifikasi.value = _storage.read(_keyTerverifikasi) ?? 0;
|
||||
jumlahDitolak.value = _storage.read(_keyDitolak) ?? 0;
|
||||
jumlahDiproses.value = _storage.read(_keyDiproses) ?? 0;
|
||||
jumlahNotifikasiBelumDibaca.value = _storage.read(_keyNotifikasi) ?? 0;
|
||||
jumlahJadwalHariIni.value = _storage.read(_keyJadwal) ?? 0;
|
||||
|
||||
print(
|
||||
'Counter loaded from storage - Menunggu: ${jumlahMenunggu.value}, Terverifikasi: ${jumlahTerverifikasi.value}, Ditolak: ${jumlahDitolak.value}');
|
||||
}
|
||||
|
||||
// Metode untuk memperbarui counter penitipan
|
||||
void updatePenitipanCounters({
|
||||
required int menunggu,
|
||||
@ -27,20 +59,31 @@ class CounterService extends GetxService {
|
||||
jumlahMenunggu.value = menunggu;
|
||||
jumlahTerverifikasi.value = terverifikasi;
|
||||
jumlahDitolak.value = ditolak;
|
||||
|
||||
// Simpan ke penyimpanan lokal
|
||||
_storage.write(_keyMenunggu, menunggu);
|
||||
_storage.write(_keyTerverifikasi, terverifikasi);
|
||||
_storage.write(_keyDitolak, ditolak);
|
||||
|
||||
print(
|
||||
'Counter updated and saved - Menunggu: $menunggu, Terverifikasi: $terverifikasi, Ditolak: $ditolak');
|
||||
}
|
||||
|
||||
// Metode untuk memperbarui counter pengaduan
|
||||
void updatePengaduanCounter(int diproses) {
|
||||
jumlahDiproses.value = diproses;
|
||||
_storage.write(_keyDiproses, diproses);
|
||||
}
|
||||
|
||||
// Metode untuk memperbarui counter notifikasi
|
||||
void updateNotifikasiCounter(int belumDibaca) {
|
||||
jumlahNotifikasiBelumDibaca.value = belumDibaca;
|
||||
_storage.write(_keyNotifikasi, belumDibaca);
|
||||
}
|
||||
|
||||
// Metode untuk memperbarui counter jadwal
|
||||
void updateJadwalCounter(int hariIni) {
|
||||
jumlahJadwalHariIni.value = hariIni;
|
||||
_storage.write(_keyJadwal, hariIni);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user