Settings page stuff
Also, added support for - windows - chrome - iOS ALL THE AFOREMENTIONED PLATFORMS WILL REQUIRE MANUAL BUILDING
This commit is contained in:
parent
7a72d3c248
commit
6ba2974ee5
|
@ -1,5 +1,4 @@
|
||||||
// ignore_for_file: use_key_in_widget_constructors, library_private_types_in_public_api, use_build_context_synchronously
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'bottom_bar.dart';
|
import 'bottom_bar.dart';
|
||||||
|
@ -51,6 +50,26 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<String> fetchCommitData() async {
|
||||||
|
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
|
String apiKey = prefs.getString('apiKey') ?? '';
|
||||||
|
http.Response response = await http.get(
|
||||||
|
Uri.parse('https://api.shocklink.net/1'),
|
||||||
|
headers: {
|
||||||
|
'accept': 'application/json',
|
||||||
|
'OpenShockToken': apiKey,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
if (response.statusCode == 200) {
|
||||||
|
Map<String, dynamic> responseData = json.decode(response.body);
|
||||||
|
String commit = responseData['data']['commit'];
|
||||||
|
return commit.substring(0, 7); // Extract the first 5 characters
|
||||||
|
} else {
|
||||||
|
throw Exception('Failed to load version data');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Future<void> runChecks() async {
|
static Future<void> runChecks() async {
|
||||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
String apiKey = prefs.getString('apiKey') ?? '';
|
String apiKey = prefs.getString('apiKey') ?? '';
|
||||||
|
@ -100,6 +119,7 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final appState = Provider.of<AppState>(context, listen: false);
|
final appState = Provider.of<AppState>(context, listen: false);
|
||||||
|
@ -149,33 +169,27 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||||
obscureText: !showShockerId,
|
obscureText: !showShockerId,
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
const Text('Intensity Limit'),
|
|
||||||
TextField(
|
|
||||||
controller: intensityLimitController,
|
|
||||||
decoration: const InputDecoration(
|
|
||||||
labelText: 'Intensity Limit',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
const Text('Duration Limit'),
|
|
||||||
TextField(
|
|
||||||
controller: durationLimitController,
|
|
||||||
decoration: const InputDecoration(
|
|
||||||
labelText: 'Duration Limit',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 16),
|
|
||||||
ElevatedButton(
|
ElevatedButton(
|
||||||
onPressed: saveSettings,
|
onPressed: saveSettings,
|
||||||
child: const Text('Save'),
|
child: const Text('Save'),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 15),
|
const SizedBox(height: 15),
|
||||||
// Add the new text below the Save button
|
FutureBuilder<String>(
|
||||||
const Text(
|
future: fetchCommitData(),
|
||||||
'App Version: 0.2-beta6 - Build Date: Nov. 27, 2023\n'
|
builder: (context, snapshot) {
|
||||||
'(C) Mercury, 2023',
|
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||||
textAlign: TextAlign.left,
|
return CircularProgressIndicator();
|
||||||
style: TextStyle(fontSize: 12),
|
} else if (snapshot.hasError) {
|
||||||
|
return Text('Error: ${snapshot.error}');
|
||||||
|
} else {
|
||||||
|
return Text('App Version: 0.2-beta7 - Build Date: Dec. 7, 2023\n'
|
||||||
|
'(C) Mercury, 2023\n'
|
||||||
|
'Connected to api.shocklink.org, version ${snapshot.data}',
|
||||||
|
textAlign: TextAlign.left,
|
||||||
|
style: TextStyle(fontSize: 12),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -4,7 +4,7 @@ description: Companion app for managing openshock-compatible devices
|
||||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
version: 0.2.6
|
version: 0.2.7
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.1.2 <4.0.0'
|
sdk: '>=3.1.2 <4.0.0'
|
||||||
|
|
Loading…
Reference in a new issue