From 5cfd80e510cf8691fe49518720c4f6f84627ac6a Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Tue, 22 Aug 2023 17:36:13 -0400 Subject: [PATCH] Added debug menu with on-demand bg task --- lib/pages/settings.dart | 40 +++++++++++++++++++++++++++- lib/providers/settings_provider.dart | 9 +++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/lib/pages/settings.dart b/lib/pages/settings.dart index f98d8a0..cd5ce5a 100644 --- a/lib/pages/settings.dart +++ b/lib/pages/settings.dart @@ -1,3 +1,4 @@ +import 'package:android_alarm_manager_plus/android_alarm_manager_plus.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -508,7 +509,44 @@ class _SettingsPageState extends State { label: Text(tr('appLogs'))), ], ), - height16, + const Divider( + height: 32, + ), + Padding( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), + child: Column(children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Flexible(child: Text('Debug Menu')), + Switch( + value: settingsProvider.showDebugOpts, + onChanged: (value) { + settingsProvider.showDebugOpts = value; + }) + ], + ), + if (settingsProvider.showDebugOpts) + Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + height16, + TextButton( + onPressed: () { + AndroidAlarmManager.oneShot( + const Duration(seconds: 0), + bgUpdateCheckAlarmId + 200, + bgUpdateCheck); + showError( + 'Background task started - check logs.', + context); + }, + child: + const Text('Run Background Update Check Now')) + ], + ), + ]), + ), ], ), ) diff --git a/lib/providers/settings_provider.dart b/lib/providers/settings_provider.dart index 386b267..7495c9b 100644 --- a/lib/providers/settings_provider.dart +++ b/lib/providers/settings_provider.dart @@ -330,4 +330,13 @@ class SettingsProvider with ChangeNotifier { prefs?.setInt('lastBGCheckTime', val.millisecondsSinceEpoch); notifyListeners(); } + + bool get showDebugOpts { + return prefs?.getBool('showDebugOpts') ?? false; + } + + set showDebugOpts(bool val) { + prefs?.setBool('showDebugOpts', val); + notifyListeners(); + } }