SPEC modifications
This commit is contained in:
parent
1b7d4e5f78
commit
4598e859f5
6 changed files with 171 additions and 367 deletions
|
|
@ -5,6 +5,8 @@ import 'package:flutter_background_geolocation/flutter_background_geolocation.da
|
|||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:shared_preferences_android/shared_preferences_android.dart';
|
||||
|
||||
import 'config.dart';
|
||||
|
||||
class Preferences {
|
||||
static Future<void>? _initFuture;
|
||||
static late SharedPreferencesWithCache instance;
|
||||
|
|
@ -47,37 +49,35 @@ class Preferences {
|
|||
);
|
||||
if (instance.getString(id) == null) {
|
||||
await instance.setString(id, (Random().nextInt(90000000) + 10000000).toString());
|
||||
await instance.setString(url, 'http://demo.traccar.org:5055');
|
||||
await instance.setString(accuracy, 'medium');
|
||||
await instance.setInt(interval, 300);
|
||||
await instance.setInt(distance, 75);
|
||||
await instance.setBool(buffer, true);
|
||||
await instance.setBool(stopDetection, true);
|
||||
await instance.setInt(fastestInterval, 30);
|
||||
}
|
||||
await instance.setString(url, AppConfig.serverUrl);
|
||||
await instance.setString(accuracy, AppConfig.accuracy);
|
||||
await instance.setInt(interval, AppConfig.intervalSeconds);
|
||||
await instance.setInt(distance, AppConfig.distanceFilter);
|
||||
await instance.setBool(buffer, instance.getBool(buffer) ?? AppConfig.buffer);
|
||||
await instance.setBool(stopDetection, AppConfig.stopDetection);
|
||||
await instance.setInt(fastestInterval, instance.getInt(fastestInterval) ?? AppConfig.fastestIntervalSeconds);
|
||||
}
|
||||
|
||||
static bg.Config geolocationConfig() {
|
||||
final isHighestAccuracy = instance.getString(accuracy) == 'highest';
|
||||
final locationUpdateInterval = (instance.getInt(interval) ?? 0) * 1000;
|
||||
final fastestLocationUpdateInterval = (instance.getInt(fastestInterval) ?? 30) * 1000;
|
||||
final isHighestAccuracy = AppConfig.accuracy == 'highest';
|
||||
final locationUpdateInterval = isHighestAccuracy ? 0 : AppConfig.intervalSeconds * 1000;
|
||||
final fastestLocationUpdateInterval = isHighestAccuracy ? 0 : AppConfig.fastestIntervalSeconds * 1000;
|
||||
final heartbeatInterval = instance.getInt(heartbeat) ?? 0;
|
||||
return bg.Config(
|
||||
isMoving: true,
|
||||
geolocation: bg.GeoConfig(
|
||||
desiredAccuracy: switch (instance.getString(accuracy)) {
|
||||
desiredAccuracy: switch (AppConfig.accuracy) {
|
||||
'highest' => Platform.isIOS ? bg.DesiredAccuracy.navigation : bg.DesiredAccuracy.high,
|
||||
'high' => bg.DesiredAccuracy.high,
|
||||
'low' => bg.DesiredAccuracy.low,
|
||||
_ => bg.DesiredAccuracy.medium,
|
||||
},
|
||||
distanceFilter: isHighestAccuracy ? 0 : instance.getInt(distance)?.toDouble(),
|
||||
locationUpdateInterval: Platform.isAndroid
|
||||
? (isHighestAccuracy ? 0 : (locationUpdateInterval > 0 ? locationUpdateInterval : null))
|
||||
: null,
|
||||
fastestLocationUpdateInterval: Platform.isAndroid ? (isHighestAccuracy ? 0 : fastestLocationUpdateInterval) : null,
|
||||
distanceFilter: AppConfig.distanceFilter.toDouble(),
|
||||
locationUpdateInterval: Platform.isAndroid ? locationUpdateInterval : null,
|
||||
fastestLocationUpdateInterval: Platform.isAndroid ? fastestLocationUpdateInterval : null,
|
||||
disableElasticity: true,
|
||||
pausesLocationUpdatesAutomatically: Platform.isIOS ? !(isHighestAccuracy || instance.getBool(stopDetection) == false) : null,
|
||||
pausesLocationUpdatesAutomatically: Platform.isIOS ? false : null,
|
||||
showsBackgroundLocationIndicator: Platform.isIOS ? false : null,
|
||||
),
|
||||
app: bg.AppConfig(
|
||||
|
|
@ -102,7 +102,7 @@ class Preferences {
|
|||
),
|
||||
http: bg.HttpConfig(
|
||||
autoSync: false,
|
||||
url: _formatUrl(instance.getString(url)),
|
||||
url: _formatUrl(AppConfig.serverUrl),
|
||||
params: {
|
||||
'device_id': instance.getString(id),
|
||||
},
|
||||
|
|
@ -112,10 +112,10 @@ class Preferences {
|
|||
logMaxDays: 1,
|
||||
),
|
||||
activity: bg.ActivityConfig(
|
||||
disableStopDetection: instance.getBool(stopDetection) == false,
|
||||
disableStopDetection: !AppConfig.stopDetection,
|
||||
),
|
||||
persistence: bg.PersistenceConfig(
|
||||
maxRecordsToPersist: instance.getBool(buffer) != false ? -1 : 1,
|
||||
maxRecordsToPersist: AppConfig.buffer ? -1 : 1,
|
||||
locationTemplate: _locationTemplate(),
|
||||
),
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue