From 7481d52c4be8298edd1f52c0f0a74cca74e0888d Mon Sep 17 00:00:00 2001 From: Colin Lee Date: Thu, 27 Jun 2019 10:47:54 -0500 Subject: [PATCH] For #3505: Opening a sent tab crashes Fenix (#3507) --- .../main/java/org/mozilla/fenix/IntentReceiverActivity.kt | 5 ++++- .../java/org/mozilla/fenix/components/NotificationManager.kt | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt index 3ded81c61..05df1b0c7 100644 --- a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt @@ -9,6 +9,7 @@ import android.content.Intent import android.os.Bundle import mozilla.components.browser.session.tab.CustomTabConfig import mozilla.components.support.utils.SafeIntent +import org.mozilla.fenix.components.NotificationManager.Companion.RECEIVE_TABS_TAG import org.mozilla.fenix.customtabs.CustomTabActivity import org.mozilla.fenix.ext.components import org.mozilla.fenix.utils.Settings @@ -38,7 +39,9 @@ class IntentReceiverActivity : Activity() { } intent.action == Intent.ACTION_VIEW -> { intent.setClassName(applicationContext, HomeActivity::class.java.name) - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + if (!intent.getBooleanExtra(RECEIVE_TABS_TAG, false)) { + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + } true } else -> { diff --git a/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt b/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt index 2c072100b..98b484c60 100644 --- a/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt +++ b/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt @@ -55,7 +55,10 @@ class NotificationManager(private val context: Context) { logger.debug("Showing ${event.entries.size} tab(s) received from deviceID=${event.from?.id}") event.entries.forEach { tab -> val intent = Intent(Intent.ACTION_VIEW, Uri.parse(tab.url)) - val pendingIntent: PendingIntent = PendingIntent.getActivity(context, 0, intent, 0) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + intent.putExtra(RECEIVE_TABS_TAG, true) + val pendingIntent: PendingIntent = + PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT) val builder = NotificationCompat.Builder(context, RECEIVE_TABS_CHANNEL_ID) .setSmallIcon(R.drawable.ic_status_logo)