make theme's platform Android when Linux Mobile Mode is on
Allows for swiping drawers closed
This commit is contained in:
parent
c8e1aef74b
commit
7f30150e95
2 changed files with 28 additions and 14 deletions
|
|
@ -177,7 +177,7 @@ class SettingsSectionsController
|
|||
),
|
||||
.new(
|
||||
title: "Linux Mobile Mode",
|
||||
description: "Enables some fixes for Linux mobile, e.g. disabling dragging appbar for moving window.",
|
||||
description: "Enables some fixes for Linux mobile, e.g. disabling dragging appbar for moving window, and swiping drawers open.",
|
||||
icon: Icons.construction,
|
||||
builder: (title, description, icon) => SwitchListTile(
|
||||
title: Text(title),
|
||||
|
|
|
|||
|
|
@ -111,10 +111,21 @@ class const App({super.key}) extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) => DynamicColorBuilder(
|
||||
builder: (lightDynamic, darkDynamic) => Consumer(
|
||||
builder: (context, ref, child) => MaterialApp(
|
||||
builder: (context, ref, child) {
|
||||
// Flutter turns off mobile behaviour like swiping drawers open on desktop platforms, so Linux mobile pretends to be Android
|
||||
ThemeData forPlatform(ThemeData theme) =>
|
||||
ref.watch(
|
||||
SettingsController.provider.select(
|
||||
(settings) => settings.value?.linuxMobileMode ?? false,
|
||||
),
|
||||
)
|
||||
? theme.copyWith(platform: .android)
|
||||
: theme;
|
||||
|
||||
return MaterialApp(
|
||||
navigatorKey: navigatorKey,
|
||||
debugShowCheckedModeBanner: false,
|
||||
theme:
|
||||
theme: forPlatform(
|
||||
(ref
|
||||
.watch(SettingsController.provider)
|
||||
.maybeWhen(
|
||||
|
|
@ -124,7 +135,8 @@ class const App({super.key}) extends StatelessWidget {
|
|||
) ??
|
||||
ThemeData.light().colorScheme)
|
||||
.theme,
|
||||
darkTheme:
|
||||
),
|
||||
darkTheme: forPlatform(
|
||||
(ref
|
||||
.watch(SettingsController.provider)
|
||||
.maybeWhen(
|
||||
|
|
@ -134,6 +146,7 @@ class const App({super.key}) extends StatelessWidget {
|
|||
) ??
|
||||
ThemeData.dark().colorScheme)
|
||||
.theme,
|
||||
),
|
||||
themeMode: ref
|
||||
.watch(SettingsController.provider)
|
||||
.maybeWhen(
|
||||
|
|
@ -141,7 +154,8 @@ class const App({super.key}) extends StatelessWidget {
|
|||
orElse: () => ThemeMode.system,
|
||||
),
|
||||
home: child,
|
||||
),
|
||||
);
|
||||
},
|
||||
child: DefaultTextHeightBehavior(
|
||||
textHeightBehavior: .new(leadingDistribution: .even),
|
||||
child: Scaffold(
|
||||
|
|
|
|||
Loading…
Reference in a new issue