|
|
|
@ -10,12 +10,16 @@ import android.view.View
|
|
|
|
|
import android.view.ViewGroup
|
|
|
|
|
import androidx.appcompat.app.AppCompatDialogFragment
|
|
|
|
|
import androidx.core.view.updatePadding
|
|
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
|
|
import kotlinx.android.synthetic.main.component_tabstray.view.*
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_tab_tray_dialog.*
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_tab_tray_dialog.view.*
|
|
|
|
|
import mozilla.components.concept.tabstray.Tab
|
|
|
|
|
import org.mozilla.fenix.HomeActivity
|
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
|
import org.mozilla.fenix.ext.requireComponents
|
|
|
|
|
import org.mozilla.fenix.utils.allowUndo
|
|
|
|
|
|
|
|
|
|
class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor {
|
|
|
|
|
interface Interactor {
|
|
|
|
@ -64,7 +68,32 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onTabClosed(tab: Tab) {
|
|
|
|
|
interactor?.onTabClosed(tab)
|
|
|
|
|
// interactor?.onTabClosed(tab)
|
|
|
|
|
val sessionManager = view?.context?.components?.core?.sessionManager
|
|
|
|
|
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?.handle
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onTabSelected(tab: Tab) {
|
|
|
|
|