Improve settings and playback controls
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class SettingsProvider with ChangeNotifier {
|
||||
// Use 10.0.2.2 for Android emulator to access host's localhost
|
||||
@@ -11,9 +11,11 @@ class SettingsProvider with ChangeNotifier {
|
||||
|
||||
String _baseUrl = _defaultUrl;
|
||||
Color _themeColor = Colors.blue;
|
||||
ThemeMode _themeMode = ThemeMode.system;
|
||||
|
||||
String get baseUrl => _baseUrl;
|
||||
Color get themeColor => _themeColor;
|
||||
ThemeMode get themeMode => _themeMode;
|
||||
|
||||
SettingsProvider() {
|
||||
_loadSettings();
|
||||
@@ -26,6 +28,10 @@ class SettingsProvider with ChangeNotifier {
|
||||
if (colorValue != null) {
|
||||
_themeColor = Color(colorValue);
|
||||
}
|
||||
final savedThemeMode = prefs.getString('themeMode');
|
||||
if (savedThemeMode != null) {
|
||||
_themeMode = _themeModeFromString(savedThemeMode);
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -39,7 +45,14 @@ class SettingsProvider with ChangeNotifier {
|
||||
void setThemeColor(Color color) async {
|
||||
_themeColor = color;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setInt('themeColor', color.value);
|
||||
await prefs.setInt('themeColor', color.toARGB32());
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void setThemeMode(ThemeMode mode) async {
|
||||
_themeMode = mode;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString('themeMode', mode.name);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -56,4 +69,15 @@ class SettingsProvider with ChangeNotifier {
|
||||
}
|
||||
return "$rtmpUrl/$roomId";
|
||||
}
|
||||
|
||||
ThemeMode _themeModeFromString(String value) {
|
||||
switch (value) {
|
||||
case 'light':
|
||||
return ThemeMode.light;
|
||||
case 'dark':
|
||||
return ThemeMode.dark;
|
||||
default:
|
||||
return ThemeMode.system;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user