SplashFragment: Fix parsing shared app link

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-08-14 19:22:40 +05:30
parent 177b145cc8
commit 944917191d
2 changed files with 3 additions and 23 deletions

View File

@@ -22,8 +22,6 @@ package com.aurora.extensions
import android.graphics.Color
import android.text.format.DateFormat
import androidx.annotation.ColorInt
import java.io.PrintWriter
import java.io.StringWriter
import java.util.Calendar
import java.util.Locale
import javax.annotation.Nullable
@@ -34,19 +32,6 @@ fun Long.toDate(): String {
return DateFormat.format("dd/MM/yy", calendar).toString()
}
fun Throwable.stackTraceToString(): String {
val stringWriter = StringWriter(1024)
val printWriter = PrintWriter(stringWriter)
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)
}
/**
* Computes a darker color from the given color.
* @param color The color to darken.

View File

@@ -20,12 +20,12 @@
package com.aurora.store.view.ui.splash
import android.content.Intent
import android.net.UrlQuerySanitizer
import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
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.model.AuthState
@@ -209,13 +209,8 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
return if (activity?.intent != null && activity?.intent?.scheme == "market") {
requireActivity().intent.data!!.getQueryParameter("id") ?: ""
} 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=")) {
val packageName = clipData.split("id=").last().trim()
if (isValidPackageName(packageName)) packageName else ""
} else {
""
}
val clipData = activity?.intent?.getStringExtra(Intent.EXTRA_TEXT) ?: ""
UrlQuerySanitizer(clipData).getValue("id") ?: ""
} else {
requireArguments().getString("packageName") ?: ""
}