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 36b3b921a..6faf80d38 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 251c39bb2..1aa05b8fb 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 c6ca7b7d4..5b796c224 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 d3bbf987c..359d1184a 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 2e5a99a07..5606a41f6 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