new settings panel for url pickup
All checks were successful
All checks were successful
This commit is contained in:
36
lib/services/endpoint_service.dart
Normal file
36
lib/services/endpoint_service.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user