32 lines
1.1 KiB
Dart
32 lines
1.1 KiB
Dart
import 'package:shared_preferences/shared_preferences.dart';
|
||
|
||
/// Sunucu URL'si ve API key gibi ayarları kalıcı olarak saklar.
|
||
class SettingsService {
|
||
static const _keyServerUrl = 'server_url';
|
||
static const _keyApiKey = 'api_key';
|
||
|
||
Future<String?> getServerUrl() async {
|
||
final prefs = await SharedPreferences.getInstance();
|
||
return prefs.getString(_keyServerUrl);
|
||
}
|
||
|
||
Future<String?> getApiKey() async {
|
||
final prefs = await SharedPreferences.getInstance();
|
||
final key = prefs.getString(_keyApiKey);
|
||
return (key == null || key.isEmpty) ? null : key;
|
||
}
|
||
|
||
Future<void> save({required String serverUrl, required String apiKey}) async {
|
||
final prefs = await SharedPreferences.getInstance();
|
||
// Sonundaki "/" karakterini temizle, karışıklık olmasın.
|
||
final cleanUrl = serverUrl.trim().replaceAll(RegExp(r'/+$'), '');
|
||
await prefs.setString(_keyServerUrl, cleanUrl);
|
||
await prefs.setString(_keyApiKey, apiKey.trim());
|
||
}
|
||
|
||
Future<bool> hasSettings() async {
|
||
final url = await getServerUrl();
|
||
return url != null && url.isNotEmpty;
|
||
}
|
||
}
|