From b4ef95a9b45e93fe209b10c8d7e0f620c45aa78d Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 4 Aug 2023 15:17:47 -0300 Subject: [PATCH] Add ActivityNotFoundException handling to ConversationFragment. --- .../conversation/v2/ConversationFragment.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index e96442ace1..ce7ca7808d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -9,6 +9,7 @@ import android.Manifest import android.annotation.SuppressLint import android.app.ActivityOptions import android.app.PendingIntent +import android.content.ActivityNotFoundException import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -20,6 +21,7 @@ import android.graphics.PorterDuffColorFilter import android.graphics.Rect import android.net.Uri import android.os.Bundle +import android.provider.Browser import android.provider.Settings import android.text.Editable import android.text.TextWatcher @@ -656,6 +658,22 @@ class ConversationFragment : Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults) } + override fun startActivity(intent: Intent) { + if (intent.getStringArrayExtra(Browser.EXTRA_APPLICATION_ID) != null) { + intent.removeExtra(Browser.EXTRA_APPLICATION_ID) + } + + try { + super.startActivity(intent) + } catch (e: ActivityNotFoundException) { + Log.w(TAG, e) + toast( + toastTextId = R.string.ConversationActivity_there_is_no_app_available_to_handle_this_link_on_your_device, + toastDuration = Toast.LENGTH_LONG + ) + } + } + //endregion //region Fragment callbacks and listeners