mirror of
https://github.com/FoggedLens/deflock-app.git
synced 2026-09-30 13:09:35 +02:00
holy crap tile types
This commit is contained in:
1 parent
7bd6f68a99
commit
e65b9f58a6
7 files changed
+229
-11
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
|
||||
import '../models/tile_provider.dart';
|
||||
|
||||
// Enum for upload mode (Production, OSM Sandbox, Simulate)
|
||||
enum UploadMode { production, sandbox, simulate }
|
||||
@@ -10,16 +10,19 @@ class SettingsState extends ChangeNotifier {
|
||||
static const String _offlineModePrefsKey = 'offline_mode';
|
||||
static const String _maxCamerasPrefsKey = 'max_cameras';
|
||||
static const String _uploadModePrefsKey = 'upload_mode';
|
||||
static const String _tileProviderPrefsKey = 'tile_provider';
|
||||
static const String _legacyTestModePrefsKey = 'test_mode';
|
||||
|
||||
bool _offlineMode = false;
|
||||
int _maxCameras = 250;
|
||||
UploadMode _uploadMode = UploadMode.simulate;
|
||||
TileProviderType _tileProvider = TileProviderType.osmStreet;
|
||||
|
||||
// Getters
|
||||
bool get offlineMode => _offlineMode;
|
||||
int get maxCameras => _maxCameras;
|
||||
UploadMode get uploadMode => _uploadMode;
|
||||
TileProviderType get tileProvider => _tileProvider;
|
||||
|
||||
// Initialize settings from preferences
|
||||
Future<void> init() async {
|
||||
@@ -46,6 +49,14 @@ class SettingsState extends ChangeNotifier {
|
||||
await prefs.remove(_legacyTestModePrefsKey);
|
||||
await prefs.setInt(_uploadModePrefsKey, _uploadMode.index);
|
||||
}
|
||||
|
||||
// Load tile provider
|
||||
if (prefs.containsKey(_tileProviderPrefsKey)) {
|
||||
final idx = prefs.getInt(_tileProviderPrefsKey) ?? 0;
|
||||
if (idx >= 0 && idx < TileProviderType.values.length) {
|
||||
_tileProvider = TileProviderType.values[idx];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> setOfflineMode(bool enabled) async {
|
||||
@@ -70,4 +81,11 @@ class SettingsState extends ChangeNotifier {
|
||||
await prefs.setInt(_uploadModePrefsKey, mode.index);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> setTileProvider(TileProviderType provider) async {
|
||||
_tileProvider = provider;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setInt(_tileProviderPrefsKey, provider.index);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user