CACHING:
- CacheManager: Speichert Stream-Lieder lokal mit MD5-Hash-Namensgebung
- getCacheSize(): Berechne Cache-Größe
- clearCache(): Lösche alle gecachten Lieder
- streamAndCache(): Stream gleichzeitig abspielen + cachen
OFFLINE-MODE:
- OfflineMode-Service: Toggle Offline-Modus
- Persistiert in SharedPreferences
- ChangeNotifier für UI-Updates
- Flag: Nur gecachte Lieder spielen
Infrastructure für Phase 2 P0 ready
Tests: 70/70 ✅
24 lines
661 B
Dart
24 lines
661 B
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class OfflineMode extends ChangeNotifier {
|
|
static const _key = 'offline_mode_enabled';
|
|
bool _enabled = false;
|
|
|
|
bool get enabled => _enabled;
|
|
|
|
Future<void> init() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
_enabled = prefs.getBool(_key) ?? false;
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> setEnabled(bool value) async {
|
|
_enabled = value;
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setBool(_key, value);
|
|
notifyListeners();
|
|
debugPrint('Offline-Mode: ${value ? "AN" : "AUS"}');
|
|
}
|
|
}
|