Fix Launcher activity immediately finishing on new intent

Fix #177
This commit is contained in:
MM20 2022-09-27 23:30:25 +02:00
parent 9bb457bc4c
commit bbcb087715
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 23 additions and 12 deletions

View File

@ -1,4 +1,23 @@
package de.mm20.launcher2.ui.launcher
import android.content.Intent
import com.android.launcher3.GestureNavContract
class LauncherActivity: SharedLauncherActivity(LauncherActivityMode.Launcher)
class LauncherActivity: SharedLauncherActivity(LauncherActivityMode.Launcher) {
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
val navContract = intent?.let { GestureNavContract.fromIntent(it) }
if (navContract != null) {
homeTransitionManager.resolve(navContract)
} else {
onBackPressed()
}
}
override fun onBackPressed() {
if (onBackPressedDispatcher.hasEnabledCallbacks()) {
onBackPressedDispatcher.onBackPressed()
}
}
}

View File

@ -5,6 +5,7 @@ import android.content.Intent
import android.content.res.Configuration
import android.content.res.Resources
import android.os.Bundle
import android.util.Log
import androidx.activity.compose.setContent
import androidx.activity.viewModels
import androidx.compose.foundation.background
@ -23,6 +24,7 @@ import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.input.pointer.pointerInput
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.lifecycle.Lifecycle
@ -55,7 +57,7 @@ abstract class SharedLauncherActivity(
private val viewModel: LauncherActivityVM by viewModels()
private val homeTransitionManager = HomeTransitionManager()
internal val homeTransitionManager = HomeTransitionManager()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -188,16 +190,6 @@ abstract class SharedLauncherActivity(
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
val navContract = intent?.let { GestureNavContract.fromIntent(it) }
if (navContract != null) {
homeTransitionManager.resolve(navContract)
} else {
onBackPressed()
}
}
enum class LauncherActivityMode {
Launcher,
Assistant