AppLinksFragment: Wrap app link activity start in try-catch block

Android warns that it may not exist on all devices and samsung devices
seems to prove that true.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-04-01 15:17:38 +05:30
parent ed4e8c8430
commit 4dbe4c78a2
2 changed files with 14 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ import android.content.pm.verify.domain.DomainVerificationUserState
import android.net.Uri
import android.os.Bundle
import android.provider.Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS
import android.util.Log
import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
import androidx.fragment.app.Fragment
@@ -19,6 +20,8 @@ import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class AppLinksFragment : Fragment(R.layout.fragment_app_links) {
private val TAG = AppLinksFragment::class.java.simpleName
private var _binding: FragmentAppLinksBinding? = null
private val binding get() = _binding!!
@@ -51,11 +54,16 @@ class AppLinksFragment : Fragment(R.layout.fragment_app_links) {
if (isSAndAbove()) {
buttons.values.forEach {
it.setOnClickListener {
val intent = Intent(
ACTION_APP_OPEN_BY_DEFAULT_SETTINGS,
Uri.parse("package:${view.context.packageName}")
)
startForResult.launch(intent)
try {
val intent = Intent(
ACTION_APP_OPEN_BY_DEFAULT_SETTINGS,
Uri.parse("package:${view.context.packageName}")
)
startForResult.launch(intent)
} catch (exception: Exception) {
Log.e(TAG, "Failed to open app links screen", exception)
toast(R.string.failed_app_link)
}
}
}
}