mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-25 22:39:22 +00:00
Can toggle dark mode from menu on tablet mode
This commit is contained in:
parent
fe3f0c0e85
commit
70e3efc93d
@ -76,6 +76,12 @@ class PreferencesHelper {
|
|||||||
ApplicationPreferences get preferences => ApplicationPreferences(
|
ApplicationPreferences get preferences => ApplicationPreferences(
|
||||||
enableDarkMode: getBool(PreferencesKeyList.ENABLE_DARK_THEME),
|
enableDarkMode: getBool(PreferencesKeyList.ENABLE_DARK_THEME),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/// Apply new preferences
|
||||||
|
Future<void> setPreferences(ApplicationPreferences preferences) async {
|
||||||
|
await setBool(
|
||||||
|
PreferencesKeyList.ENABLE_DARK_THEME, preferences.enableDarkMode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PreferencesHelper preferences() {
|
PreferencesHelper preferences() {
|
||||||
|
@ -5,9 +5,9 @@ import 'package:flutter/cupertino.dart';
|
|||||||
/// @author Pierre Hubert
|
/// @author Pierre Hubert
|
||||||
|
|
||||||
class ApplicationPreferences {
|
class ApplicationPreferences {
|
||||||
final bool enableDarkMode;
|
bool enableDarkMode;
|
||||||
|
|
||||||
const ApplicationPreferences({
|
ApplicationPreferences({
|
||||||
@required this.enableDarkMode,
|
@required this.enableDarkMode,
|
||||||
}) : assert(enableDarkMode != null);
|
}) : assert(enableDarkMode != null);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'package:comunic/helpers/events_helper.dart';
|
import 'package:comunic/helpers/events_helper.dart';
|
||||||
import 'package:comunic/helpers/notifications_helper.dart';
|
import 'package:comunic/helpers/notifications_helper.dart';
|
||||||
|
import 'package:comunic/helpers/preferences_helper.dart';
|
||||||
import 'package:comunic/models/count_unread_notifications.dart';
|
import 'package:comunic/models/count_unread_notifications.dart';
|
||||||
import 'package:comunic/ui/routes/main_route/main_route.dart';
|
import 'package:comunic/ui/routes/main_route/main_route.dart';
|
||||||
import 'package:comunic/ui/screens/notifications_screen.dart';
|
import 'package:comunic/ui/screens/notifications_screen.dart';
|
||||||
@ -7,6 +8,7 @@ import 'package:comunic/ui/screens/unread_conversations_screen.dart';
|
|||||||
import 'package:comunic/ui/widgets/safe_state.dart';
|
import 'package:comunic/ui/widgets/safe_state.dart';
|
||||||
import 'package:comunic/ui/widgets/tablet_mode/appbar_custom_dropdown_widget.dart';
|
import 'package:comunic/ui/widgets/tablet_mode/appbar_custom_dropdown_widget.dart';
|
||||||
import 'package:comunic/utils/intl_utils.dart';
|
import 'package:comunic/utils/intl_utils.dart';
|
||||||
|
import 'package:comunic/utils/ui_utils.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
/// Comunic tablet AppBar widget
|
/// Comunic tablet AppBar widget
|
||||||
@ -84,6 +86,14 @@ class _ComunicTabletAppBarWidgetState
|
|||||||
PopupMenuButton<_MenuItemCallback>(
|
PopupMenuButton<_MenuItemCallback>(
|
||||||
offset: Offset(0, 50),
|
offset: Offset(0, 50),
|
||||||
itemBuilder: (c) => [
|
itemBuilder: (c) => [
|
||||||
|
// Toggle dark theme
|
||||||
|
_MainMenuItem(
|
||||||
|
label: tr("Night mode"),
|
||||||
|
icon: preferences().preferences.enableDarkMode
|
||||||
|
? Icons.brightness_2
|
||||||
|
: Icons.wb_sunny,
|
||||||
|
onTap: _toggleDarkMode),
|
||||||
|
|
||||||
// Sign out
|
// Sign out
|
||||||
_MainMenuItem(
|
_MainMenuItem(
|
||||||
label: tr("Sign out"),
|
label: tr("Sign out"),
|
||||||
@ -95,6 +105,15 @@ class _ComunicTabletAppBarWidgetState
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Toggle dark mode
|
||||||
|
void _toggleDarkMode() async {
|
||||||
|
final prefs = preferences().preferences;
|
||||||
|
prefs.enableDarkMode = !prefs.enableDarkMode;
|
||||||
|
await preferences().setPreferences(prefs);
|
||||||
|
|
||||||
|
applyNewThemeSettings(context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef _MenuItemCallback = void Function();
|
typedef _MenuItemCallback = void Function();
|
||||||
|
Loading…
Reference in New Issue
Block a user