34 lines
1.2 KiB
Dart
34 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class RecordingService extends ChangeNotifier {
|
|
// Membuat Singleton
|
|
static final RecordingService _instance = RecordingService._internal();
|
|
factory RecordingService() => _instance;
|
|
|
|
RecordingService._internal() {
|
|
// Saat file ini pertama kali dipanggil (saat app dibuka),
|
|
// langsung cek ke dalam memori hardisk HP!
|
|
_loadStatusDariMemoriHP();
|
|
}
|
|
|
|
bool isRecording = false; // Status bawaan
|
|
|
|
// FUNGSI BARU: Membaca status terakhir dari dalam HP
|
|
Future<void> _loadStatusDariMemoriHP() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
// Jika ada catatan sebelumnya, pakai itu. Jika tidak, anggap false.
|
|
isRecording = prefs.getBool('status_perekaman') ?? false;
|
|
notifyListeners(); // Beritahu layar untuk update UI
|
|
}
|
|
|
|
// FUNGSI DIUPDATE: Mengubah status DAN menyimpannya ke memori HP
|
|
Future<void> setRecordingStatus(bool status) async {
|
|
isRecording = status;
|
|
notifyListeners(); // Beritahu layar untuk update tombol
|
|
|
|
// Simpan ke hardisk HP agar tahan banting walau app di-close paksa!
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setBool('status_perekaman', status);
|
|
}
|
|
} |