diff --git a/app/src/main/java/com/aurora/extensions/Commons.kt b/app/src/main/java/com/aurora/extensions/Commons.kt index a3cd68bc6..af88aebbf 100644 --- a/app/src/main/java/com/aurora/extensions/Commons.kt +++ b/app/src/main/java/com/aurora/extensions/Commons.kt @@ -37,4 +37,9 @@ fun Throwable.stackTraceToString(): String { printStackTrace(printWriter) printWriter.close() return stringWriter.toString() +} + +fun isValidPackageName(packageName: String): Boolean { + val packageRegex = "^[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*$".toRegex() + return packageName.matches(packageRegex) } \ No newline at end of file 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 099931d5b..9b009f4bc 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 @@ -27,6 +27,7 @@ import androidx.navigation.fragment.findNavController import coil.load import coil.transform.RoundedCornersTransformation import com.aurora.extensions.hide +import com.aurora.extensions.isValidPackageName import com.aurora.extensions.show import com.aurora.store.R import com.aurora.store.data.AuthState @@ -227,7 +228,8 @@ class SplashFragment : BaseFragment(R.layout.fragment_splash) { } else if (activity?.intent != null && activity?.intent?.action == Intent.ACTION_SEND) { val clipData = requireActivity().intent.clipData?.getItemAt(0)?.text.toString() if (clipData.contains("/store/apps/details?id=")) { - clipData.split("id=").last().trim() + val packageName = clipData.split("id=").last().trim() + if (isValidPackageName(packageName)) packageName else "" } else { "" }