|
|
@ -386,14 +386,14 @@ class HomeFragment : Fragment() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
is TabAction.Close -> {
|
|
|
|
is TabAction.Close -> {
|
|
|
|
if (pendingSessionDeletion?.deletionJob == null) {
|
|
|
|
if (pendingSessionDeletion?.deletionJob == null) {
|
|
|
|
removeTabWithUndo(action.sessionId)
|
|
|
|
removeTabWithUndo(action.sessionId, browsingModeManager.mode.isPrivate)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
pendingSessionDeletion?.deletionJob?.let {
|
|
|
|
pendingSessionDeletion?.deletionJob?.let {
|
|
|
|
viewLifecycleOwner.lifecycleScope.launch {
|
|
|
|
viewLifecycleOwner.lifecycleScope.launch {
|
|
|
|
it.invoke()
|
|
|
|
it.invoke()
|
|
|
|
}.invokeOnCompletion {
|
|
|
|
}.invokeOnCompletion {
|
|
|
|
pendingSessionDeletion = null
|
|
|
|
pendingSessionDeletion = null
|
|
|
|
removeTabWithUndo(action.sessionId)
|
|
|
|
removeTabWithUndo(action.sessionId, browsingModeManager.mode.isPrivate)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -719,9 +719,9 @@ class HomeFragment : Fragment() {
|
|
|
|
deleteAllSessionsJob = deleteOperation
|
|
|
|
deleteAllSessionsJob = deleteOperation
|
|
|
|
|
|
|
|
|
|
|
|
val snackbarMessage = if (private) {
|
|
|
|
val snackbarMessage = if (private) {
|
|
|
|
getString(R.string.snackbar_private_tabs_deleted)
|
|
|
|
getString(R.string.snackbar_private_tabs_closed)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
getString(R.string.snackbar_tab_deleted)
|
|
|
|
getString(R.string.snackbar_tabs_closed)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
viewLifecycleOwner.lifecycleScope.allowUndo(
|
|
|
|
viewLifecycleOwner.lifecycleScope.allowUndo(
|
|
|
@ -739,7 +739,7 @@ class HomeFragment : Fragment() {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun removeTabWithUndo(sessionId: String) {
|
|
|
|
private fun removeTabWithUndo(sessionId: String, private: Boolean) {
|
|
|
|
val sessionManager = requireComponents.core.sessionManager
|
|
|
|
val sessionManager = requireComponents.core.sessionManager
|
|
|
|
val deleteOperation: (suspend () -> Unit) = {
|
|
|
|
val deleteOperation: (suspend () -> Unit) = {
|
|
|
|
sessionManager.findSessionById(sessionId)
|
|
|
|
sessionManager.findSessionById(sessionId)
|
|
|
@ -751,9 +751,15 @@ class HomeFragment : Fragment() {
|
|
|
|
|
|
|
|
|
|
|
|
pendingSessionDeletion = PendingSessionDeletion(deleteOperation, sessionId)
|
|
|
|
pendingSessionDeletion = PendingSessionDeletion(deleteOperation, sessionId)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val snackbarMessage = if (private) {
|
|
|
|
|
|
|
|
getString(R.string.snackbar_private_tab_closed)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
getString(R.string.snackbar_tab_closed)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
viewLifecycleOwner.lifecycleScope.allowUndo(
|
|
|
|
viewLifecycleOwner.lifecycleScope.allowUndo(
|
|
|
|
view!!,
|
|
|
|
view!!,
|
|
|
|
getString(R.string.snackbar_tab_deleted),
|
|
|
|
snackbarMessage,
|
|
|
|
getString(R.string.snackbar_deleted_undo), {
|
|
|
|
getString(R.string.snackbar_deleted_undo), {
|
|
|
|
pendingSessionDeletion = null
|
|
|
|
pendingSessionDeletion = null
|
|
|
|
emitSessionChanges()
|
|
|
|
emitSessionChanges()
|
|
|
|