SplashFragment: Handle SHOW_APP_INFO intents
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -100,6 +100,9 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<data android:mimeType="text/plain" />
|
<data android:mimeType="text/plain" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.SHOW_APP_INFO" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<nav-graph android:value="@navigation/mobile_navigation" />
|
<nav-graph android:value="@navigation/mobile_navigation" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import com.aurora.extensions.hide
|
import com.aurora.extensions.hide
|
||||||
import com.aurora.extensions.isMAndAbove
|
import com.aurora.extensions.isMAndAbove
|
||||||
|
import com.aurora.extensions.isNAndAbove
|
||||||
import com.aurora.extensions.navigate
|
import com.aurora.extensions.navigate
|
||||||
import com.aurora.extensions.show
|
import com.aurora.extensions.show
|
||||||
import com.aurora.gplayapi.helpers.AuthHelper
|
import com.aurora.gplayapi.helpers.AuthHelper
|
||||||
@@ -127,8 +128,8 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AuthState.Valid -> {
|
AuthState.Valid -> {
|
||||||
val packageName = getPackageName()
|
val packageName = getPackageName(requireActivity().intent)
|
||||||
if (packageName.isBlank()) {
|
if (packageName.isNullOrBlank()) {
|
||||||
navigateToDefaultTab()
|
navigateToDefaultTab()
|
||||||
} else {
|
} else {
|
||||||
requireArguments().remove("packageName")
|
requireArguments().remove("packageName")
|
||||||
@@ -151,8 +152,8 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
AuthState.SignedIn -> {
|
AuthState.SignedIn -> {
|
||||||
val packageName = getPackageName()
|
val packageName = getPackageName(requireActivity().intent)
|
||||||
if (packageName.isBlank()) {
|
if (packageName.isNullOrBlank()) {
|
||||||
navigateToDefaultTab()
|
navigateToDefaultTab()
|
||||||
} else {
|
} else {
|
||||||
requireArguments().remove("packageName")
|
requireArguments().remove("packageName")
|
||||||
@@ -261,17 +262,26 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
|
|||||||
findNavController().navigate(directions)
|
findNavController().navigate(directions)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPackageName(): String {
|
private fun getPackageName(intent: Intent): String? {
|
||||||
// Navigation component cannot handle market scheme as its missing a valid host
|
return when {
|
||||||
return if (requireActivity().intent != null && requireActivity().intent.scheme == "market") {
|
intent.action == Intent.ACTION_VIEW -> {
|
||||||
requireActivity().intent.data!!.getQueryParameter("id") ?: ""
|
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") ?: ""
|
intent.action == Intent.ACTION_SEND -> {
|
||||||
} else if (requireActivity().intent != null && requireActivity().intent.extras != null) {
|
val clipData = intent.getStringExtra(Intent.EXTRA_TEXT) ?: ""
|
||||||
requireActivity().intent.extras?.getString("packageName") ?: ""
|
UrlQuerySanitizer(clipData).getValue("id")
|
||||||
} else {
|
}
|
||||||
requireArguments().getString("packageName") ?: ""
|
|
||||||
|
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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user