Files
geo_front/lib/services/settings_service.dart
T
dmit.b f1e88b1ac3 Add Android support with configurable server URL and location permissions
- Add shared_preferences for persisting server URL
- Add SettingsService and PlatformService
- Add server URL input field on non-web platforms
- Make ApiConfig baseUrl configurable at runtime
- Add Android location permissions (ACCESS_FINE/COURSE_LOCATION, INTERNET)
- Request location permission on login and map init
- Fix geo_id type: use String instead of int (UUID format)
- Align share_service with API spec: remove unique_id, use share_id only
- Fix watch endpoint response: last_update instead of created_at
- Add error handling with SnackBars for geo operations
- Wrap login screen in SingleChildScrollView for keyboard handling
- Update map tile layer with userAgentPackageName for OSM
2026-05-15 17:38:56 +03:00

29 lines
780 B
Dart

import 'package:shared_preferences/shared_preferences.dart';
class SettingsService {
static const String _baseUrlKey = 'server_base_url';
static const String _defaultBaseUrl = 'https://family-safety.onrender.com/api';
String _baseUrl = _defaultBaseUrl;
bool _initialized = false;
String get baseUrl => _baseUrl;
Future<void> initialize() async {
if (_initialized) return;
final prefs = await SharedPreferences.getInstance();
_baseUrl = prefs.getString(_baseUrlKey) ?? _defaultBaseUrl;
_initialized = true;
}
Future<void> setBaseUrl(String url) async {
_baseUrl = url;
final prefs = await SharedPreferences.getInstance();
await prefs.setString(_baseUrlKey, url);
}
void resetToDefault() {
_baseUrl = _defaultBaseUrl;
}
}