1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-25 22:39:22 +00:00

Can toggle performances overlay

This commit is contained in:
Pierre HUBERT 2020-05-13 18:26:21 +02:00
parent a6ce969e89
commit 67e881af0d
4 changed files with 25 additions and 7 deletions

View File

@ -14,12 +14,14 @@ enum PreferencesKeyList {
LOGIN_TOKENS, LOGIN_TOKENS,
ENABLE_DARK_THEME, ENABLE_DARK_THEME,
FORCE_MOBILE_MODE, FORCE_MOBILE_MODE,
SHOW_PERFORMANCE_OVERLAY,
} }
const _PreferenceKeysName = { const _PreferenceKeysName = {
PreferencesKeyList.LOGIN_TOKENS: "login_tokens", PreferencesKeyList.LOGIN_TOKENS: "login_tokens",
PreferencesKeyList.ENABLE_DARK_THEME: "dark_theme", PreferencesKeyList.ENABLE_DARK_THEME: "dark_theme",
PreferencesKeyList.FORCE_MOBILE_MODE: "force_mobile_mode", PreferencesKeyList.FORCE_MOBILE_MODE: "force_mobile_mode",
PreferencesKeyList.SHOW_PERFORMANCE_OVERLAY: "perfs_overlay",
}; };
class PreferencesHelper { class PreferencesHelper {
@ -79,9 +81,10 @@ class PreferencesHelper {
/// Get all settings as an [ApplicationPreferences] object /// Get all settings as an [ApplicationPreferences] object
ApplicationPreferences get preferences => ApplicationPreferences( ApplicationPreferences get preferences => ApplicationPreferences(
enableDarkMode: getBool(PreferencesKeyList.ENABLE_DARK_THEME), enableDarkMode: getBool(PreferencesKeyList.ENABLE_DARK_THEME),
forceMobileMode: getBool(PreferencesKeyList.FORCE_MOBILE_MODE), forceMobileMode: getBool(PreferencesKeyList.FORCE_MOBILE_MODE),
); showPerformancesOverlay:
getBool(PreferencesKeyList.SHOW_PERFORMANCE_OVERLAY));
/// Apply new preferences /// Apply new preferences
Future<void> setPreferences(ApplicationPreferences preferences) async { Future<void> setPreferences(ApplicationPreferences preferences) async {

View File

@ -47,12 +47,13 @@ class ComunicApplicationState extends State<ComunicApplication> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final prefs = widget.preferences.preferences;
return MaterialApp( return MaterialApp(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
home: AccountHelper.isUserIDLoaded ? InitializeWidget() : LoginRoute(), home: AccountHelper.isUserIDLoaded ? InitializeWidget() : LoginRoute(),
theme: widget.preferences.preferences.enableDarkMode theme: prefs.enableDarkMode ? ThemeData.dark() : null,
? ThemeData.dark() showPerformanceOverlay: prefs.showPerformancesOverlay,
: null,
); );
} }
} }

View File

@ -7,10 +7,13 @@ import 'package:flutter/cupertino.dart';
class ApplicationPreferences { class ApplicationPreferences {
bool enableDarkMode; bool enableDarkMode;
bool forceMobileMode; bool forceMobileMode;
bool showPerformancesOverlay;
ApplicationPreferences({ ApplicationPreferences({
@required this.enableDarkMode, @required this.enableDarkMode,
@required this.forceMobileMode, @required this.forceMobileMode,
@required this.showPerformancesOverlay,
}) : assert(enableDarkMode != null), }) : assert(enableDarkMode != null),
assert(forceMobileMode != null); assert(forceMobileMode != null),
assert(showPerformancesOverlay != null);
} }

View File

@ -67,6 +67,8 @@ class _ApplicationSettingsState extends State<ApplicationSettings> {
SettingsSection _buildDebugSection() => SettingsSection( SettingsSection _buildDebugSection() => SettingsSection(
title: tr("Debug features"), title: tr("Debug features"),
tiles: [ tiles: [
// Force mobile mode
_PreferencesSettingsTile( _PreferencesSettingsTile(
preferencesKey: PreferencesKeyList.FORCE_MOBILE_MODE, preferencesKey: PreferencesKeyList.FORCE_MOBILE_MODE,
title: tr("Force mobile mode"), title: tr("Force mobile mode"),
@ -75,6 +77,15 @@ class _ApplicationSettingsState extends State<ApplicationSettings> {
onChange: _updatedSettings, onChange: _updatedSettings,
helper: _preferencesHelper, helper: _preferencesHelper,
), ),
// Show performances overlay
_PreferencesSettingsTile(
preferencesKey: PreferencesKeyList.SHOW_PERFORMANCE_OVERLAY,
title: tr("Show performances overlay"),
subtitle: null,
onChange: _updatedSettings,
helper: _preferencesHelper,
),
], ],
); );