diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 7c14e19..079b5ad 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -48,6 +48,21 @@
+
+
+
+
+
+
+
+
{
- pm.setComponentEnabledSetting(icon1, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
- pm.setComponentEnabledSetting(icon2, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
- }
- else -> {
- pm.setComponentEnabledSetting(icon2, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
- pm.setComponentEnabledSetting(icon1, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
- }
+ // 先全部禁用
+ pm.setComponentEnabledSetting(icon1, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
+ pm.setComponentEnabledSetting(icon2, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
+ pm.setComponentEnabledSetting(icon3, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
+
+ // 启用选中的
+ val target = when (iconName) {
+ "app_icon2" -> icon2
+ "app_icon_m" -> icon3
+ else -> icon1
}
+ pm.setComponentEnabledSetting(target, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
}
private fun getCurrentIcon(): String {
val pm = packageManager
- val icon1 = ComponentName(this, "${packageName}.MainActivityIcon1")
val icon2 = ComponentName(this, "${packageName}.MainActivityIcon2")
+ val icon3 = ComponentName(this, "${packageName}.MainActivityIcon3")
return when {
pm.getComponentEnabledSetting(icon2) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED -> "app_icon2"
+ pm.getComponentEnabledSetting(icon3) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED -> "app_icon_m"
else -> "app_icon"
}
}
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_m.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_m.png
new file mode 100644
index 0000000..676e489
Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_m.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_m.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_m.png
new file mode 100644
index 0000000..4ee7cca
Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_m.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_m.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_m.png
new file mode 100644
index 0000000..4caabc5
Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_m.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_m.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_m.png
new file mode 100644
index 0000000..a426ff8
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_m.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_m.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_m.png
new file mode 100644
index 0000000..c04e9bf
Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_m.png differ
diff --git a/assets/icon/app_icon_m.png b/assets/icon/app_icon_m.png
new file mode 100644
index 0000000..85437e7
Binary files /dev/null and b/assets/icon/app_icon_m.png differ
diff --git a/lib/main.dart b/lib/main.dart
index 28b114d..db902a5 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -57,15 +57,21 @@ class _MyAppState extends State with WidgetsBindingObserver {
super.initState();
WidgetsBinding.instance.addObserver(this);
widget.appProvider.loadThemeMode();
+ widget.appProvider.addListener(_onThemeChanged);
_updateSystemUI(widget.appProvider.themeMode);
}
@override
void dispose() {
+ widget.appProvider.removeListener(_onThemeChanged);
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
+ void _onThemeChanged() {
+ _updateSystemUI(widget.appProvider.themeMode);
+ }
+
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
@@ -85,6 +91,8 @@ class _MyAppState extends State with WidgetsBindingObserver {
}
final isDark = brightness == Brightness.dark;
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
+ statusBarColor: Colors.transparent,
+ statusBarIconBrightness: isDark ? Brightness.light : Brightness.dark,
systemNavigationBarColor: isDark ? const Color(0xFF1A1A1A) : Colors.white,
systemNavigationBarIconBrightness: isDark ? Brightness.light : Brightness.dark,
));
@@ -100,7 +108,6 @@ class _MyAppState extends State with WidgetsBindingObserver {
],
child: Consumer(
builder: (context, provider, _) {
- _updateSystemUI(provider.themeMode);
return MaterialApp(
title: 'MookNote',
debugShowCheckedModeBanner: false,
diff --git a/lib/pages/app_icon_picker_page.dart b/lib/pages/app_icon_picker_page.dart
index 5d823de..bd1e749 100644
--- a/lib/pages/app_icon_picker_page.dart
+++ b/lib/pages/app_icon_picker_page.dart
@@ -18,6 +18,7 @@ class _AppIconPickerPageState extends State {
final List