diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt index 36b3b921..6faf80d3 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/NotificationsComponent.kt @@ -103,11 +103,16 @@ internal object NotificationsComponent : ScaffoldComponent(), KoinComponent { } } - override suspend fun onActivate(state: LauncherScaffoldState) { - super.onActivate(state) + override suspend fun onPreActivate(state: LauncherScaffoldState) { + super.onPreActivate(state) if (permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { globalActionService.openNotificationDrawer() - } else { + } + } + + override suspend fun onActivate(state: LauncherScaffoldState) { + super.onActivate(state) + if (!permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { state.navigateBack(true) } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt index 251c39bb..1aa05b8f 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/PowerMenuComponent.kt @@ -165,11 +165,16 @@ internal object PowerMenuComponent : ScaffoldComponent(), KoinComponent { } } - override suspend fun onActivate(state: LauncherScaffoldState) { - super.onActivate(state) + override suspend fun onPreActivate(state: LauncherScaffoldState) { + super.onPreActivate(state) if (permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { globalActionService.openPowerDialog() - } else { + } + } + + override suspend fun onActivate(state: LauncherScaffoldState) { + super.onActivate(state) + if (!permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { state.navigateBack(true) } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt index c6ca7b7d..5b796c22 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/QuickSettingsComponent.kt @@ -100,11 +100,16 @@ internal object QuickSettingsComponent : ScaffoldComponent(), KoinComponent { } } - override suspend fun onActivate(state: LauncherScaffoldState) { - super.onActivate(state) + override suspend fun onPreActivate(state: LauncherScaffoldState) { + super.onPreActivate(state) if (permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { globalActionService.openQuickSettings() - } else { + } + } + + override suspend fun onActivate(state: LauncherScaffoldState) { + super.onActivate(state) + if (!permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { state.navigateBack(true) } } diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/RecentsComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/RecentsComponent.kt index d3bbf987..359d1184 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/RecentsComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/RecentsComponent.kt @@ -69,17 +69,18 @@ internal object RecentsComponent : ScaffoldComponent(), KoinComponent { } } - override suspend fun onActivate(state: LauncherScaffoldState) { - super.onActivate(state) + override suspend fun onPreActivate(state: LauncherScaffoldState) { + super.onPreActivate(state) if (permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { globalActionService.openRecents() - delay(50L) - state.navigateBack(true) - } else { - state.navigateBack(true) } } + override suspend fun onActivate(state: LauncherScaffoldState) { + super.onActivate(state) + state.navigateBack(true) + } + @SuppressLint("ModifierFactoryExtensionFunction") override fun homePageModifier( state: LauncherScaffoldState, diff --git a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/ScreenOffComponent.kt b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/ScreenOffComponent.kt index 2e5a99a0..5606a41f 100644 --- a/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/ScreenOffComponent.kt +++ b/app/ui/src/main/java/de/mm20/launcher2/ui/launcher/scaffold/ScreenOffComponent.kt @@ -95,12 +95,17 @@ internal object ScreenOffComponent : ScaffoldComponent(), KoinComponent { .alpha(1f - (state.currentProgress * 0.1f)) then defaultModifier } - override suspend fun onActivate(state: LauncherScaffoldState) { - super.onActivate(state) + override suspend fun onPreActivate(state: LauncherScaffoldState) { + super.onPreActivate(state) if (permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { globalActionService.lockScreen() - } else { - state.onPredictiveBackEnd() + } + } + + override suspend fun onActivate(state: LauncherScaffoldState) { + super.onActivate(state) + if (!permissionsManager.checkPermissionOnce(PermissionGroup.Accessibility)) { + state.navigateBack(true) } } } \ No newline at end of file