From 9d755a877abe01b462cf4c252f82bdfa7fc058ae Mon Sep 17 00:00:00 2001 From: mcarare <“mihai.carare.dev@gmail.com”> Date: Mon, 17 Feb 2020 15:17:36 +0200 Subject: [PATCH] For #8354 Fix opening custom tabs and links directly in private mode --- .../org/mozilla/fenix/IntentReceiverActivity.kt | 1 + .../fenix/settings/PrivateBrowsingFragment.kt | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt index 1cd7ff678..ed60886e6 100644 --- a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt @@ -39,6 +39,7 @@ class IntentReceiverActivity : Activity() { val modeDependentProcessors = if (settings.openLinksInAPrivateTab) { components.analytics.metrics.track(Event.OpenedLink(Event.OpenedLink.Mode.PRIVATE)) + intent.putExtra(HomeActivity.PRIVATE_BROWSING_MODE, true) listOf( components.intentProcessors.privateCustomTabIntentProcessor, components.intentProcessors.privateIntentProcessor diff --git a/app/src/main/java/org/mozilla/fenix/settings/PrivateBrowsingFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/PrivateBrowsingFragment.kt index 639075063..02432029a 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/PrivateBrowsingFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/PrivateBrowsingFragment.kt @@ -7,11 +7,13 @@ package org.mozilla.fenix.settings import android.os.Bundle import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import androidx.preference.SwitchPreference import org.mozilla.fenix.R import org.mozilla.fenix.components.PrivateShortcutCreateManager import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.getPreferenceKey import org.mozilla.fenix.ext.metrics +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar /** @@ -25,7 +27,10 @@ class PrivateBrowsingFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.private_browsing_preferences, rootKey) + updatePreferences() + } + private fun updatePreferences() { findPreference(getPreferenceKey(R.string.pref_key_add_private_browsing_shortcut))?.apply { setOnPreferenceClickListener { requireContext().metrics.track(Event.PrivateBrowsingCreateShortcut) @@ -33,5 +38,13 @@ class PrivateBrowsingFragment : PreferenceFragmentCompat() { true } } + + findPreference(getPreferenceKey(R.string.pref_key_open_links_in_a_private_tab))?.apply { + setOnPreferenceClickListener { + isChecked = requireContext().settings().openLinksInAPrivateTab + onPreferenceChangeListener = SharedPreferenceUpdater() + true + } + } } }