From dadaf0d50974d0838d5ef498cc704f0b66fb8fc6 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Sat, 28 Jan 2023 22:54:52 +0530 Subject: [PATCH] fix: crash if the built application cannot be launched (closes #759) --- .../activities/editor/BaseEditorActivity.kt | 17 ++++++++++++++--- resources/src/main/res/values/strings.xml | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt index 9f72f90d7..c44686ecc 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt @@ -192,13 +192,12 @@ abstract class BaseEditorActivity : if (packageName != null) { Snackbar.make(binding.realContainer, string.msg_action_open_application, Snackbar.LENGTH_LONG) .setAction(string.yes) { - val launchIntent = packageManager.getLaunchIntentForPackage(packageName) - launchIntent?.let { startActivity(it) } + tryLaunchApp(packageName) } .show() } } - + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -407,6 +406,18 @@ abstract class BaseEditorActivity : viewModel.statusText = text viewModel.statusGravity = gravity } + + private fun tryLaunchApp(packageName: String) { + val launchIntent = packageManager.getLaunchIntentForPackage(packageName) + launchIntent?.let { + try { + startActivity(it) + } catch (e: Throwable) { + flashError(string.msg_app_launch_failed) + log.error("Failed to launch application with package name '$packageName'", e) + } + } + } private fun checkIsDestroying() { if (!isDestroying && isFinishing) { diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index 13686d0dc..87f45caca 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -536,4 +536,5 @@ Material You Enjoy an experience closer to your device (requires restart). Project configuration + Failed to launch application. See IDE logs for more info.