import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; class SettingsProvider with ChangeNotifier { // Default server address for local development. // Using 10.0.2.2 for Android emulator or localhost for Desktop. String _baseUrl = "http://localhost:8080"; Color _themeColor = Colors.blue; String get baseUrl => _baseUrl; Color get themeColor => _themeColor; SettingsProvider() { _loadSettings(); } void _loadSettings() async { final prefs = await SharedPreferences.getInstance(); _baseUrl = prefs.getString('baseUrl') ?? _baseUrl; final colorValue = prefs.getInt('themeColor'); if (colorValue != null) { _themeColor = Color(colorValue); } notifyListeners(); } void setBaseUrl(String url) async { _baseUrl = url; final prefs = await SharedPreferences.getInstance(); await prefs.setString('baseUrl', url); notifyListeners(); } void setThemeColor(Color color) async { _themeColor = color; final prefs = await SharedPreferences.getInstance(); await prefs.setInt('themeColor', color.value); notifyListeners(); } // Also provide the RTMP URL based on the same hostname String get rtmpUrl { final uri = Uri.parse(_baseUrl); return "rtmp://${uri.host}:1935/live"; } }