From fd6c25edf4f6ec00592d2d66ba98b90c2e7ae1f4 Mon Sep 17 00:00:00 2001 From: dasmikko Date: Sun, 26 Feb 2023 15:52:36 +0100 Subject: [PATCH] Add a setting for flagpunchy feature --- lib/controllers/settingsController.dart | 1 + lib/helpers/api.dart | 9 +++---- lib/main.dart | 6 +++++ lib/main_nonfdroid.dart | 6 +++++ lib/screens/settings.dart | 31 ++++++++++++++++++++++++- 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/lib/controllers/settingsController.dart b/lib/controllers/settingsController.dart index 9dba08f..3a98238 100644 --- a/lib/controllers/settingsController.dart +++ b/lib/controllers/settingsController.dart @@ -5,5 +5,6 @@ class SettingsController extends GetxController { final RxBool useDevAPI = false.obs; var apiEnv = 'knockout'.obs; final showNSFWThreads = false.obs; + final flagPunchy = false.obs; RxString apiEndpoint = 'https://knockyauth.rekna.xyz/'.obs; } diff --git a/lib/helpers/api.dart b/lib/helpers/api.dart index 9be8933..de27a4d 100644 --- a/lib/helpers/api.dart +++ b/lib/helpers/api.dart @@ -270,14 +270,15 @@ class KnockoutAPI { Future newPost(dynamic content, int? threadId) async { try { - await _request(type: 'post', url: 'post', data: { - 'displayCountryInfo': false, - 'appName': 'knocky', + final SettingsController settingsController = + Getx.Get.put(SettingsController()); + await _request(type: 'post', url: 'v2/posts', data: { + 'display_country': settingsController.flagPunchy.value, + 'app_name': 'knocky', 'content': content.toString(), 'thread_id': threadId, }, headers: { 'content-type': 'application/json; charset=UTF-8', - 'content-format-version': '1' }); } on DioError catch (e) { onDioErrorHandler(e); diff --git a/lib/main.dart b/lib/main.dart index 1fc41fe..5564316 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -36,6 +36,12 @@ void main() async { settingsController.showNSFWThreads.value = prefs.read('showNSFW'); } + if (!prefs.hasData('flagPunchy')) { + await prefs.write('flagPunchy', false); + } else { + settingsController.flagPunchy.value = prefs.read('flagPunchy'); + } + if (prefs.hasData('apiEndpoint')) { settingsController.apiEndpoint.value = prefs.read('apiEndpoint'); } diff --git a/lib/main_nonfdroid.dart b/lib/main_nonfdroid.dart index 399b42d..9319bb0 100644 --- a/lib/main_nonfdroid.dart +++ b/lib/main_nonfdroid.dart @@ -36,6 +36,12 @@ void main() async { settingsController.showNSFWThreads.value = prefs.read('showNSFW'); } + if (!prefs.hasData('flagPunchy')) { + await prefs.write('flagPunchy', false); + } else { + settingsController.flagPunchy.value = prefs.read('flagPunchy'); + } + if (prefs.hasData('apiEndpoint')) { settingsController.apiEndpoint.value = prefs.read('apiEndpoint'); } diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index be2d0e6..d0a58d9 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -66,7 +66,6 @@ class SettingsScreen extends StatelessWidget { @override Widget build(BuildContext context) { final SettingsController settingsController = Get.put(SettingsController()); - print(FlavorConfig.instance.variables["allowUpdater"]); return Scaffold( appBar: AppBar( @@ -130,6 +129,36 @@ class SettingsScreen extends StatelessWidget { }, ), + /** + * User experience + */ + + Divider(), + ListTile( + dense: true, + title: Text( + 'User experience', + style: TextStyle( + color: Colors.grey, + ), + ), + ), + Obx( + () => SwitchListTile( + title: Text('FlagPunchy'), + subtitle: Text( + "Show which country you're posting from", + style: TextStyle(color: Colors.grey), + ), + value: settingsController.flagPunchy.value, + onChanged: (bool value) { + settingsController.flagPunchy.value = value; + GetStorage prefs = GetStorage(); + prefs.write('flagPunchy', value); + }, + ), + ), + /** * API */