mobile dark theme options
This commit is contained in:
parent
78efa66378
commit
36cd262227
@ -25,14 +25,13 @@ class SettingsPage extends StatefulWidget implements PageShape {
|
|||||||
final appBarActions = [ScanButton()];
|
final appBarActions = [ScanButton()];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_SettingsState createState() => _SettingsState();
|
State<SettingsPage> createState() => _SettingsState();
|
||||||
}
|
}
|
||||||
|
|
||||||
const url = 'https://rustdesk.com/';
|
const url = 'https://rustdesk.com/';
|
||||||
final _hasIgnoreBattery = androidVersion >= 26;
|
final _hasIgnoreBattery = androidVersion >= 26;
|
||||||
var _ignoreBatteryOpt = false;
|
var _ignoreBatteryOpt = false;
|
||||||
var _enableAbr = false;
|
var _enableAbr = false;
|
||||||
var _isDarkMode = false;
|
|
||||||
|
|
||||||
class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
||||||
String? username;
|
String? username;
|
||||||
@ -60,8 +59,6 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
_enableAbr = enableAbrRes;
|
_enableAbr = enableAbrRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// _isDarkMode = MyTheme.currentDarkMode(); // TODO
|
|
||||||
|
|
||||||
if (update) {
|
if (update) {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
@ -100,7 +97,7 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
Provider.of<FfiModel>(context);
|
Provider.of<FfiModel>(context);
|
||||||
final enhancementsTiles = [
|
final enhancementsTiles = [
|
||||||
SettingsTile.switchTile(
|
SettingsTile.switchTile(
|
||||||
title: Text(translate('Adaptive Bitrate') + ' (beta)'),
|
title: Text('${translate('Adaptive Bitrate')} (beta)'),
|
||||||
initialValue: _enableAbr,
|
initialValue: _enableAbr,
|
||||||
onToggle: (v) {
|
onToggle: (v) {
|
||||||
bind.mainSetOption(key: "enable-abr", value: v ? "" : "N");
|
bind.mainSetOption(key: "enable-abr", value: v ? "" : "N");
|
||||||
@ -152,7 +149,7 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
SettingsTile.navigation(
|
SettingsTile.navigation(
|
||||||
title: Text(username == null
|
title: Text(username == null
|
||||||
? translate("Login")
|
? translate("Login")
|
||||||
: translate("Logout") + ' ($username)'),
|
: '${translate("Logout")} ($username)'),
|
||||||
leading: Icon(Icons.person),
|
leading: Icon(Icons.person),
|
||||||
onPressed: (context) {
|
onPressed: (context) {
|
||||||
if (username == null) {
|
if (username == null) {
|
||||||
@ -177,15 +174,11 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
onPressed: (context) {
|
onPressed: (context) {
|
||||||
showLanguageSettings(gFFI.dialogManager);
|
showLanguageSettings(gFFI.dialogManager);
|
||||||
}),
|
}),
|
||||||
SettingsTile.switchTile(
|
SettingsTile.navigation(
|
||||||
title: Text(translate('Dark Theme')),
|
title: Text(translate('Dark Theme')),
|
||||||
leading: Icon(Icons.dark_mode),
|
leading: Icon(Icons.dark_mode),
|
||||||
initialValue: _isDarkMode,
|
onPressed: (context) {
|
||||||
onToggle: (v) {
|
showThemeSettings(gFFI.dialogManager);
|
||||||
setState(() {
|
|
||||||
_isDarkMode = !_isDarkMode;
|
|
||||||
// MyTheme.changeDarkMode(_isDarkMode); // TODO
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
@ -232,7 +225,7 @@ void showLanguageSettings(OverlayDialogManager dialogManager) async {
|
|||||||
final langs = json.decode(await bind.mainGetLangs()) as List<dynamic>;
|
final langs = json.decode(await bind.mainGetLangs()) as List<dynamic>;
|
||||||
var lang = await bind.mainGetLocalOption(key: "lang");
|
var lang = await bind.mainGetLocalOption(key: "lang");
|
||||||
dialogManager.show((setState, close) {
|
dialogManager.show((setState, close) {
|
||||||
final setLang = (v) {
|
setLang(v) {
|
||||||
if (lang != v) {
|
if (lang != v) {
|
||||||
setState(() {
|
setState(() {
|
||||||
lang = v;
|
lang = v;
|
||||||
@ -241,7 +234,8 @@ void showLanguageSettings(OverlayDialogManager dialogManager) async {
|
|||||||
HomePage.homeKey.currentState?.refreshPages();
|
HomePage.homeKey.currentState?.refreshPages();
|
||||||
Future.delayed(Duration(milliseconds: 200), close);
|
Future.delayed(Duration(milliseconds: 200), close);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
return CustomAlertDialog(
|
return CustomAlertDialog(
|
||||||
title: SizedBox.shrink(),
|
title: SizedBox.shrink(),
|
||||||
content: Column(
|
content: Column(
|
||||||
@ -257,13 +251,41 @@ void showLanguageSettings(OverlayDialogManager dialogManager) async {
|
|||||||
),
|
),
|
||||||
actions: []);
|
actions: []);
|
||||||
}, backDismiss: true, clickMaskDismiss: true);
|
}, backDismiss: true, clickMaskDismiss: true);
|
||||||
} catch (_e) {}
|
} catch (e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void showThemeSettings(OverlayDialogManager dialogManager) async {
|
||||||
|
var themeMode = MyTheme.getThemeModePreference();
|
||||||
|
|
||||||
|
dialogManager.show((setState, close) {
|
||||||
|
setTheme(v) {
|
||||||
|
if (themeMode != v) {
|
||||||
|
setState(() {
|
||||||
|
themeMode = v;
|
||||||
|
});
|
||||||
|
MyTheme.changeDarkMode(themeMode);
|
||||||
|
Future.delayed(Duration(milliseconds: 200), close);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return CustomAlertDialog(
|
||||||
|
title: SizedBox.shrink(),
|
||||||
|
contentPadding: 10,
|
||||||
|
content: Column(children: [
|
||||||
|
getRadio('Light', ThemeMode.light, themeMode, setTheme),
|
||||||
|
getRadio('Dark', ThemeMode.dark, themeMode, setTheme),
|
||||||
|
getRadio('Follow System', ThemeMode.system, themeMode, setTheme)
|
||||||
|
]),
|
||||||
|
actions: []);
|
||||||
|
}, backDismiss: true, clickMaskDismiss: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void showAbout(OverlayDialogManager dialogManager) {
|
void showAbout(OverlayDialogManager dialogManager) {
|
||||||
dialogManager.show((setState, close) {
|
dialogManager.show((setState, close) {
|
||||||
return CustomAlertDialog(
|
return CustomAlertDialog(
|
||||||
title: Text(translate('About') + ' RustDesk'),
|
title: Text('${translate('About')} RustDesk'),
|
||||||
content: Wrap(direction: Axis.vertical, spacing: 12, children: [
|
content: Wrap(direction: Axis.vertical, spacing: 12, children: [
|
||||||
Text('Version: $version'),
|
Text('Version: $version'),
|
||||||
InkWell(
|
InkWell(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user