Don't crash when no store app is installed

This commit is contained in:
Torsten Grote 2021-10-12 13:48:51 -03:00 committed by Chirayu Desai
parent c5a295d31c
commit c7880b8a8b
2 changed files with 9 additions and 1 deletions

View file

@ -1,5 +1,6 @@
package com.stevesoltys.seedvault.restore.install package com.stevesoltys.seedvault.restore.install
import android.content.ActivityNotFoundException
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
@ -9,6 +10,8 @@ import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import android.widget.ProgressBar import android.widget.ProgressBar
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import android.widget.Toast.LENGTH_LONG
import androidx.activity.result.contract.ActivityResultContract import androidx.activity.result.contract.ActivityResultContract
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
@ -117,7 +120,11 @@ class InstallProgressFragment : Fragment(), InstallItemListener {
} }
override fun onFailedItemClicked(item: ApkInstallResult) { override fun onFailedItemClicked(item: ApkInstallResult) {
installAppLauncher.launch(item) try {
installAppLauncher.launch(item)
} catch (e: ActivityNotFoundException) {
Toast.makeText(requireContext(), R.string.error_no_store, LENGTH_LONG).show()
}
} }
private val installAppLauncher = registerForActivityResult(InstallApp()) { packageName -> private val installAppLauncher = registerForActivityResult(InstallApp()) { packageName ->

View file

@ -158,6 +158,7 @@
<string name="restore_installing_error_title">Some apps not installed</string> <string name="restore_installing_error_title">Some apps not installed</string>
<string name="restore_installing_error_message">Data can only be restored if an app is installed.\n\nTap failed apps to try to install them manually before proceeding.</string> <string name="restore_installing_error_message">Data can only be restored if an app is installed.\n\nTap failed apps to try to install them manually before proceeding.</string>
<string name="restore_installing_tap_to_install">Tap to install</string> <string name="restore_installing_tap_to_install">Tap to install</string>
<string name="error_no_store">Error: No app store installed</string>
<string name="restore_next">Next</string> <string name="restore_next">Next</string>
<string name="restore_restoring">Restoring backup</string> <string name="restore_restoring">Restoring backup</string>
<string name="restore_restoring_error_title">Unable to restore some apps</string> <string name="restore_restoring_error_title">Unable to restore some apps</string>