Save config settings
This commit is contained in:
parent
6254a50e5c
commit
e2c07a23c6
2 changed files with 23 additions and 0 deletions
|
|
@ -2,6 +2,7 @@
|
|||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter_background_geolocation/flutter_background_geolocation.dart' as bg;
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class Preferences {
|
||||
|
|
@ -28,6 +29,25 @@ class Preferences {
|
|||
await preferences.setBool(buffer, preferences.getBool(buffer) ?? true);
|
||||
}
|
||||
|
||||
static bg.Config geolocationConfig(SharedPreferences preferences) {
|
||||
return bg.Config(
|
||||
stopOnTerminate: false,
|
||||
startOnBoot: true,
|
||||
desiredAccuracy: switch (preferences.getString(accuracy)) {
|
||||
'high' => bg.Config.DESIRED_ACCURACY_HIGH,
|
||||
'low' => bg.Config.DESIRED_ACCURACY_LOW,
|
||||
_ => bg.Config.DESIRED_ACCURACY_MEDIUM,
|
||||
},
|
||||
url: preferences.getString(url),
|
||||
params: {
|
||||
"device_id": preferences.getString(id),
|
||||
},
|
||||
distanceFilter: preferences.getInt(distance)?.toDouble(),
|
||||
locationUpdateInterval: preferences.getInt(interval),
|
||||
maxRecordsToPersist: preferences.getBool(buffer) != false ? -1 : 0,
|
||||
);
|
||||
}
|
||||
|
||||
static Future<void> _migrate(SharedPreferences preferences) async {
|
||||
final oldId = preferences.getString('device_id_preference');
|
||||
if (oldId != null) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:flutter_background_geolocation/flutter_background_geolocation.dart' as bg;
|
||||
|
||||
import 'preferences.dart';
|
||||
|
||||
|
|
@ -69,6 +70,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
|||
} else {
|
||||
await preferences.setString(key, result);
|
||||
}
|
||||
await bg.BackgroundGeolocation.setConfig(Preferences.geolocationConfig(preferences));
|
||||
setState(() {});
|
||||
}
|
||||
}
|
||||
|
|
@ -102,6 +104,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
|||
value: buffering,
|
||||
onChanged: (value) async {
|
||||
await preferences.setBool(Preferences.buffer, value);
|
||||
await bg.BackgroundGeolocation.setConfig(Preferences.geolocationConfig(preferences));
|
||||
setState(() => buffering = value);
|
||||
},
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue