37 lines
977 B
Dart
37 lines
977 B
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
class EndpointService extends ChangeNotifier {
|
|
EndpointService() {
|
|
_load();
|
|
}
|
|
|
|
static const String defaultBaseUrl = 'https://mileograph.co.uk/api/v1';
|
|
static const String _prefsKey = 'api_base_url';
|
|
|
|
String _baseUrl = defaultBaseUrl;
|
|
bool _loaded = false;
|
|
|
|
String get baseUrl => _baseUrl;
|
|
bool get isLoaded => _loaded;
|
|
|
|
Future<void> _load() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final saved = prefs.getString(_prefsKey);
|
|
if (saved != null && saved.trim().isNotEmpty) {
|
|
_baseUrl = saved;
|
|
}
|
|
_loaded = true;
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> setBaseUrl(String url) async {
|
|
final trimmed = url.trim();
|
|
if (trimmed.isEmpty) return;
|
|
_baseUrl = trimmed;
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setString(_prefsKey, _baseUrl);
|
|
notifyListeners();
|
|
}
|
|
}
|