{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_blue","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_blue-0.7.2\\\\","dependencies":[]},{"name":"geolocator","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\geolocator-5.2.1\\\\","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\google_api_availability-2.0.2\\\\","dependencies":[]},{"name":"location_permissions","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\location_permissions-2.0.4+1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-1.6.0\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler-4.2.0+hotfix.3\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences-0.5.7+2\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-1.2.0\\\\","dependencies":[]}],"android":[{"name":"flutter_blue","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_blue-0.7.2\\\\","dependencies":[]},{"name":"geolocator","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\geolocator-5.2.1\\\\","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\google_api_availability-2.0.2\\\\","dependencies":[]},{"name":"location_permissions","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\location_permissions-2.0.4+1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-1.6.0\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler-4.2.0+hotfix.3\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences-0.5.7+2\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-1.2.0\\\\","dependencies":[]}],"macos":[{"name":"shared_preferences_macos","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences_macos-0.0.1+8\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-1.2.0\\\\","dependencies":[]}],"linux":[],"windows":[],"web":[{"name":"shared_preferences_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences_web-0.1.2+5\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_blue","dependencies":[]},{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]}],"date_created":"2020-08-18 17:56:19.621785","version":"1.21.0-10.0.pre.139"}
\ No newline at end of file
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_blue","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_blue-0.7.2\\\\","dependencies":[]},{"name":"geolocator","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\geolocator-5.2.1\\\\","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\google_api_availability-2.0.2\\\\","dependencies":[]},{"name":"location_permissions","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\location_permissions-2.0.4+1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-1.6.0\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler-4.2.0+hotfix.3\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences-0.5.7+2\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-1.2.0\\\\","dependencies":[]}],"android":[{"name":"flutter_blue","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_blue-0.7.2\\\\","dependencies":[]},{"name":"geolocator","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\geolocator-5.2.1\\\\","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\google_api_availability-2.0.2\\\\","dependencies":[]},{"name":"location_permissions","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\location_permissions-2.0.4+1\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-1.6.0\\\\","dependencies":[]},{"name":"permission_handler","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\permission_handler-4.2.0+hotfix.3\\\\","dependencies":[]},{"name":"shared_preferences","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences-0.5.7+2\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-1.2.0\\\\","dependencies":[]}],"macos":[{"name":"shared_preferences_macos","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences_macos-0.0.1+8\\\\","dependencies":[]},{"name":"sqflite","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\sqflite-1.2.0\\\\","dependencies":[]}],"linux":[],"windows":[],"web":[{"name":"shared_preferences_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\shared_preferences_web-0.1.2+5\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_blue","dependencies":[]},{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]}],"date_created":"2020-08-20 22:54:47.792457","version":"1.21.0-10.0.pre.193"}
@@ -42,7 +42,7 @@ class _SettingsFormState extends State<SettingsForm> {
@override
voiddispose(){
// Clean up the controller when the widget is disposed.
// Clean up the controllers when the widget is disposed.
_bleServiceController.dispose();
_bleCharacteristicController.dispose();
_mapQueryLimitController.dispose();
...
...
@@ -53,147 +53,142 @@ class _SettingsFormState extends State<SettingsForm> {
@override
Widgetbuild(BuildContextcontext){
/// The [Form] is comprised of multiple [ExpansionTile]s that represent settings subsections from general app management to more advanced settings.
returnBaseWidget(
builder:(context,sizingInfo)=>Form(
key:_formKey,
child:Column(
children:[
SizedBox(
height:sizingInfo.screenSize.height*0.8,
child:SingleChildScrollView(
child:Column(
children:[
// NETWORKING
ExpansionTile(
title:Text('Network'),
initiallyExpanded:true,
leading:Icon(Icons.network_check),
children:[
ListTile(title:Text('TODO: Max number of items per push (def 100)')),
ListTile(title:Text('TODO: Push Frequency')),
ListTile(title:Text('TODO: Push on 3G/4G')),
],
),
Divider(color:Colors.black,),
// CACHING
ExpansionTile(
title:Text('Local Data'),
initiallyExpanded:true,
leading:Icon(Icons.storage),
children:[
_buildActionTile('Delete local data\nOperation is final',()=>DatabaseHandler().recreateDB())
],
),
Divider(color:Colors.black,),
// BLUETOOTH
ExpansionTile(
title:Text('Bluetooth'),
subtitle:Text('(Advanced)'),
leading:Icon(Icons.bluetooth),
children:[
CheckboxListTile(
title:Text('Modify advanced bluetooth settings'),
value:_advancedBTOptions??false,
onChanged:(newValue)=>setState((){
_advancedBTOptions=newValue;
}),
controlAffinity:ListTileControlAffinity.leading,
),
Visibility(
visible:_advancedBTOptions??false,
child:Container(
padding:EdgeInsets.symmetric(horizontal:10),
child:Text(
'Changing these settings can break device data acquisition',
style:TextStyle(
color:Colors.red[600],
fontSize:12
),
textAlign:TextAlign.center,
returnForm(
key:_formKey,
child:Column(
children:[
Expanded(
child:SingleChildScrollView(
child:Column(
children:[
// NETWORKING
ExpansionTile(
title:Text('Network'),
initiallyExpanded:true,
leading:Icon(Icons.network_check),
children:[
ListTile(title:Text('TODO: Max number of items per push (def 100)')),
ListTile(title:Text('TODO: Push Frequency')),
ListTile(title:Text('TODO: Push on 3G/4G')),
],
),
Divider(color:Colors.black,),
// CACHING
ExpansionTile(
title:Text('Local Data'),
initiallyExpanded:true,
leading:Icon(Icons.storage),
children:[
_buildActionTile('Delete local data\nOperation is final',()=>DatabaseHandler().recreateDB())
],
),
Divider(color:Colors.black,),
// BLUETOOTH
ExpansionTile(
title:Text('Bluetooth'),
subtitle:Text('(Advanced)'),
leading:Icon(Icons.bluetooth),
children:[
CheckboxListTile(
title:Text('Modify advanced bluetooth settings'),
value:_advancedBTOptions??false,
onChanged:(newValue)=>setState((){
_advancedBTOptions=newValue;
}),
controlAffinity:ListTileControlAffinity.leading,
),
Visibility(
visible:_advancedBTOptions??false,
child:Container(
padding:EdgeInsets.symmetric(horizontal:10),
child:Text(
'Changing these settings can break device data acquisition',
style:TextStyle(
color:Colors.red[600],
fontSize:12
),
textAlign:TextAlign.center,
),
),
// TODO Service / Characteristic Explorer ?
_buildInputTile(_bleServiceController,'BLE Service UUID','BT.SERVICE_UUID',_advancedBTOptions,TextInputType.text,<TextInputFormatter>[],RegExp('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}')),
'Changing these settings can have serious performance impacts on your device and battery life',
style:TextStyle(
color:Colors.red[600],
fontSize:12
),
textAlign:TextAlign.center,
),
// TODO Service / Characteristic Explorer ?
_buildInputTile(_bleServiceController,'BLE Service UUID','BT.SERVICE_UUID',_advancedBTOptions,TextInputType.text,<TextInputFormatter>[],RegExp('[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}')),
//_buildInputTile(_mapQueryAgeController, 'Maximum age of other points (seconds)', 'MAP.PROX.MAX_AGE_SECONDS', _advancedMapOptions, TextInputType.number, <TextInputFormatter>[ FilteringTextInputFormatter.allow('0-9') ], RegExp(r'\d+')),
_buildInputTile(_mapQueryLimitController,'Maximum other points','MAP.PROX.MAX_PER_QUERY',_advancedMapOptions,TextInputType.number,<TextInputFormatter>[FilteringTextInputFormatter.allow('0-9')],RegExp(r'\d+')),
_buildInputTile(_mapQueryAgeController,'Maximum age of other points (seconds)','MAP.PROX.MAX_AGE_SECONDS',_advancedMapOptions,TextInputType.number,<TextInputFormatter>[FilteringTextInputFormatter.allow('0-9')],RegExp(r'\d+')),