From 2ef093a35ea9f879ba1baab883d0f7259150c78e Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Mon, 14 Jun 2021 16:47:24 -0400 Subject: [PATCH] [fenix] Closes https://github.com/mozilla-mobile/fenix/issues/19182: Close Tabs Tray when sharing completes --- .../main/java/org/mozilla/fenix/share/ShareFragment.kt | 8 ++++++++ .../java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt b/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt index 8de1e5f22..892080888 100644 --- a/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt @@ -10,6 +10,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatDialogFragment +import androidx.fragment.app.setFragmentResult import androidx.fragment.app.viewModels import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory import androidx.lifecycle.lifecycleScope @@ -121,6 +122,12 @@ class ShareFragment : AppCompatDialogFragment() { } } + override fun onDestroy() { + setFragmentResult(RESULT_KEY, Bundle()) + + super.onDestroy() + } + /** * If [ShareFragmentArgs.sessionId] is set and the session has a pending Web Share * prompt request, call [consume] then clean up the prompt. @@ -142,5 +149,6 @@ class ShareFragment : AppCompatDialogFragment() { companion object { const val SHOW_PAGE_ALPHA = 0.6f + const val RESULT_KEY = "shareFragmentResultKey" } } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt index 9a17b6373..1bff4d5d5 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt @@ -15,6 +15,7 @@ import androidx.annotation.VisibleForTesting import androidx.appcompat.app.AppCompatDialogFragment import androidx.core.view.isVisible import androidx.fragment.app.activityViewModels +import androidx.fragment.app.setFragmentResultListener import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs @@ -35,6 +36,7 @@ import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.R import org.mozilla.fenix.components.FenixSnackbar +import org.mozilla.fenix.share.ShareFragment import org.mozilla.fenix.components.StoreProvider import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components @@ -278,6 +280,10 @@ class TabsTrayFragment : AppCompatDialogFragment() { owner = this, view = view ) + + setFragmentResultListener(ShareFragment.RESULT_KEY) { _, _ -> + dismissTabsTray() + } } override fun onConfigurationChanged(newConfig: Configuration) {