From c3d345de80f4c877418aadc2ac9cb69987093aa2 Mon Sep 17 00:00:00 2001 From: Benjamin <73490201+BenjaminHalko@users.noreply.github.com> Date: Fri, 22 Sep 2023 07:05:13 -0700 Subject: [PATCH] fix: force disable material you on Android 11 and below (#1293) --- lib/ui/views/navigation/navigation_viewmodel.dart | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/ui/views/navigation/navigation_viewmodel.dart b/lib/ui/views/navigation/navigation_viewmodel.dart index 8e36a630..a2a0e4bb 100644 --- a/lib/ui/views/navigation/navigation_viewmodel.dart +++ b/lib/ui/views/navigation/navigation_viewmodel.dart @@ -1,4 +1,5 @@ // ignore_for_file: use_build_context_synchronously +import 'package:device_info_plus/device_info_plus.dart'; import 'package:dynamic_themes/dynamic_themes.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -30,9 +31,23 @@ class NavigationViewModel extends IndexTrackingViewModel { ); } + final dynamicTheme = DynamicTheme.of(context)!; if (prefs.getInt('themeMode') == null) { await prefs.setInt('themeMode', 0); + await dynamicTheme.setTheme(0); } + + // Force disable Material You on Android 11 and below + if (dynamicTheme.themeId.isOdd) { + const int ANDROID_12_SDK_VERSION = 31; + final AndroidDeviceInfo info = await DeviceInfoPlugin().androidInfo; + if (info.version.sdkInt < ANDROID_12_SDK_VERSION) { + await prefs.setInt('themeMode', 0); + await prefs.setBool('useDynamicTheme', false); + await dynamicTheme.setTheme(0); + } + } + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle(