|
|
|
@ -36,6 +36,7 @@ import mozilla.components.browser.state.action.ContentAction
|
|
|
|
|
import mozilla.components.browser.state.state.content.DownloadState
|
|
|
|
|
import mozilla.components.browser.state.store.BrowserStore
|
|
|
|
|
import mozilla.components.concept.engine.prompt.ShareData
|
|
|
|
|
import mozilla.components.concept.tabstray.Tab
|
|
|
|
|
import mozilla.components.feature.accounts.FxaCapability
|
|
|
|
|
import mozilla.components.feature.accounts.FxaWebChannelFeature
|
|
|
|
|
import mozilla.components.feature.app.links.AppLinksFeature
|
|
|
|
@ -96,6 +97,7 @@ import org.mozilla.fenix.ext.settings
|
|
|
|
|
import org.mozilla.fenix.home.SharedViewModel
|
|
|
|
|
import org.mozilla.fenix.tabtray.TabTrayDialogFragment
|
|
|
|
|
import org.mozilla.fenix.theme.ThemeManager
|
|
|
|
|
import org.mozilla.fenix.utils.allowUndo
|
|
|
|
|
import org.mozilla.fenix.wifi.SitePermissionsWifiIntegration
|
|
|
|
|
import java.lang.ref.WeakReference
|
|
|
|
|
|
|
|
|
@ -225,6 +227,33 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
|
|
|
|
|
tabTrayDialog.dismiss()
|
|
|
|
|
findNavController().navigate(BrowserFragmentDirections.actionGlobalHome())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onTabClosed(tab: Tab) {
|
|
|
|
|
val snapshot = sessionManager
|
|
|
|
|
.findSessionById(tab.id)?.let {
|
|
|
|
|
sessionManager.createSessionSnapshot(it)
|
|
|
|
|
} ?: return
|
|
|
|
|
|
|
|
|
|
val state = snapshot.engineSession?.saveState()
|
|
|
|
|
val isSelected = tab.id == requireComponents.core.store.state.selectedTabId ?: false
|
|
|
|
|
|
|
|
|
|
val snackbarMessage = if (snapshot.session.private) {
|
|
|
|
|
getString(R.string.snackbar_private_tab_closed)
|
|
|
|
|
} else {
|
|
|
|
|
getString(R.string.snackbar_tab_closed)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
viewLifecycleOwner.lifecycleScope.allowUndo(
|
|
|
|
|
requireView(),
|
|
|
|
|
snackbarMessage,
|
|
|
|
|
getString(R.string.snackbar_deleted_undo),
|
|
|
|
|
{
|
|
|
|
|
sessionManager.add(snapshot.session, isSelected, engineSessionState = state)
|
|
|
|
|
},
|
|
|
|
|
operation = { }//,
|
|
|
|
|
//anchorView = view?.tab_tray_controls
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|