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:io';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
|
import 'package:flutter_background_geolocation/flutter_background_geolocation.dart' as bg;
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
class Preferences {
|
class Preferences {
|
||||||
|
|
@ -28,6 +29,25 @@ class Preferences {
|
||||||
await preferences.setBool(buffer, preferences.getBool(buffer) ?? true);
|
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 {
|
static Future<void> _migrate(SharedPreferences preferences) async {
|
||||||
final oldId = preferences.getString('device_id_preference');
|
final oldId = preferences.getString('device_id_preference');
|
||||||
if (oldId != null) {
|
if (oldId != null) {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
import 'package:flutter_background_geolocation/flutter_background_geolocation.dart' as bg;
|
||||||
|
|
||||||
import 'preferences.dart';
|
import 'preferences.dart';
|
||||||
|
|
||||||
|
|
@ -69,6 +70,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
} else {
|
} else {
|
||||||
await preferences.setString(key, result);
|
await preferences.setString(key, result);
|
||||||
}
|
}
|
||||||
|
await bg.BackgroundGeolocation.setConfig(Preferences.geolocationConfig(preferences));
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -102,6 +104,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
value: buffering,
|
value: buffering,
|
||||||
onChanged: (value) async {
|
onChanged: (value) async {
|
||||||
await preferences.setBool(Preferences.buffer, value);
|
await preferences.setBool(Preferences.buffer, value);
|
||||||
|
await bg.BackgroundGeolocation.setConfig(Preferences.geolocationConfig(preferences));
|
||||||
setState(() => buffering = value);
|
setState(() => buffering = value);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue