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

Create ApplicationPreferences object

This commit is contained in:
Pierre HUBERT 2020-05-12 19:00:35 +02:00
parent 57e504540a
commit c747d3c1ba
3 changed files with 25 additions and 6 deletions

View File

@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:comunic/models/application_preferences.dart';
import 'package:comunic/models/login_tokens.dart';
import 'package:shared_preferences/shared_preferences.dart';
@ -70,6 +71,12 @@ class PreferencesHelper {
final v = _sharedPreferences.getBool(_PreferenceKeysName[key]);
return v == null ? alternative : v;
}
/// Get all settings as an [ApplicationPreferences] object
ApplicationPreferences get preferences => ApplicationPreferences(
enableDarkMode:
getBool(PreferencesKeyList.ENABLE_DARK_THEME, alternative: null),
);
}
PreferencesHelper preferences() {

View File

@ -24,21 +24,20 @@ void subMain() async {
final signedIn = await AccountHelper().signedIn();
runApp(ComunicApplication(
darkMode: (await PreferencesHelper.getInstance())
.getBool(PreferencesKeyList.ENABLE_DARK_THEME),
preferences: await PreferencesHelper.getInstance(),
signedIn: signedIn,
));
}
class ComunicApplication extends StatelessWidget {
final bool darkMode;
final PreferencesHelper preferences;
final bool signedIn;
const ComunicApplication({
Key key,
@required this.darkMode,
@required this.preferences,
@required this.signedIn,
}) : assert(darkMode != null),
}) : assert(preferences != null),
assert(signedIn != null),
super(key: key);
@ -47,7 +46,7 @@ class ComunicApplication extends StatelessWidget {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: signedIn ? InitializeWidget() : LoginRoute(),
theme: darkMode ? ThemeData.dark() : ThemeData.light(),
theme: preferences.preferences.enableDarkMode ? ThemeData.dark() : null,
);
}
}

View File

@ -0,0 +1,13 @@
import 'package:flutter/cupertino.dart';
/// Application settings
///
/// @author Pierre Hubert
class ApplicationPreferences {
final bool enableDarkMode;
const ApplicationPreferences({
@required this.enableDarkMode,
});
}