diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e8d0cb0c8..4dd0e0db7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -100,6 +100,9 @@
+
+
+
diff --git a/app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt b/app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt
index 51e3f4b99..d69cbe170 100644
--- a/app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/splash/SplashFragment.kt
@@ -37,6 +37,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.aurora.extensions.hide
import com.aurora.extensions.isMAndAbove
+import com.aurora.extensions.isNAndAbove
import com.aurora.extensions.navigate
import com.aurora.extensions.show
import com.aurora.gplayapi.helpers.AuthHelper
@@ -127,8 +128,8 @@ class SplashFragment : BaseFragment() {
}
AuthState.Valid -> {
- val packageName = getPackageName()
- if (packageName.isBlank()) {
+ val packageName = getPackageName(requireActivity().intent)
+ if (packageName.isNullOrBlank()) {
navigateToDefaultTab()
} else {
requireArguments().remove("packageName")
@@ -151,8 +152,8 @@ class SplashFragment : BaseFragment() {
}
AuthState.SignedIn -> {
- val packageName = getPackageName()
- if (packageName.isBlank()) {
+ val packageName = getPackageName(requireActivity().intent)
+ if (packageName.isNullOrBlank()) {
navigateToDefaultTab()
} else {
requireArguments().remove("packageName")
@@ -261,17 +262,26 @@ class SplashFragment : BaseFragment() {
findNavController().navigate(directions)
}
- private fun getPackageName(): String {
- // Navigation component cannot handle market scheme as its missing a valid host
- return if (requireActivity().intent != null && requireActivity().intent.scheme == "market") {
- requireActivity().intent.data!!.getQueryParameter("id") ?: ""
- } else if (requireActivity().intent != null && requireActivity().intent.action == Intent.ACTION_SEND) {
- val clipData = requireActivity().intent.getStringExtra(Intent.EXTRA_TEXT) ?: ""
- UrlQuerySanitizer(clipData).getValue("id") ?: ""
- } else if (requireActivity().intent != null && requireActivity().intent.extras != null) {
- requireActivity().intent.extras?.getString("packageName") ?: ""
- } else {
- requireArguments().getString("packageName") ?: ""
+ private fun getPackageName(intent: Intent): String? {
+ return when {
+ intent.action == Intent.ACTION_VIEW -> {
+ intent.data!!.getQueryParameter("id")
+ }
+
+ intent.action == Intent.ACTION_SEND -> {
+ val clipData = intent.getStringExtra(Intent.EXTRA_TEXT) ?: ""
+ UrlQuerySanitizer(clipData).getValue("id")
+ }
+
+ isNAndAbove && intent.action == Intent.ACTION_SHOW_APP_INFO -> {
+ intent.extras?.getString(Intent.EXTRA_PACKAGE_NAME)
+ }
+
+ intent.extras != null -> {
+ intent.extras?.getString("packageName")
+ }
+
+ else -> requireArguments().getString("packageName")
}
}