For #8374 - On external session removed, handle back press
parent
42098d9811
commit
f39313d908
|
@ -23,7 +23,6 @@ import androidx.navigation.fragment.findNavController
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import kotlinx.android.synthetic.main.fragment_browser.*
|
import kotlinx.android.synthetic.main.fragment_browser.*
|
||||||
import kotlinx.android.synthetic.main.fragment_browser.view.*
|
import kotlinx.android.synthetic.main.fragment_browser.view.*
|
||||||
import kotlinx.android.synthetic.main.fragment_installed_add_on_details.*
|
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
import kotlinx.coroutines.Dispatchers.IO
|
||||||
import kotlinx.coroutines.Dispatchers.Main
|
import kotlinx.coroutines.Dispatchers.Main
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
@ -128,9 +127,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
|
||||||
protected val browserToolbarView: BrowserToolbarView
|
protected val browserToolbarView: BrowserToolbarView
|
||||||
get() = _browserToolbarView!!
|
get() = _browserToolbarView!!
|
||||||
|
|
||||||
private val sessionManager: SessionManager
|
|
||||||
get() = requireComponents.core.sessionManager
|
|
||||||
|
|
||||||
protected val readerViewFeature = ViewBoundFeatureWrapper<ReaderViewFeature>()
|
protected val readerViewFeature = ViewBoundFeatureWrapper<ReaderViewFeature>()
|
||||||
|
|
||||||
private val sessionFeature = ViewBoundFeatureWrapper<SessionFeature>()
|
private val sessionFeature = ViewBoundFeatureWrapper<SessionFeature>()
|
||||||
|
@ -813,9 +809,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
|
||||||
protected open fun removeSessionIfNeeded(): Boolean {
|
protected open fun removeSessionIfNeeded(): Boolean {
|
||||||
getSessionById()?.let { session ->
|
getSessionById()?.let { session ->
|
||||||
val sessionManager = requireComponents.core.sessionManager
|
val sessionManager = requireComponents.core.sessionManager
|
||||||
if (session.source == Session.Source.ACTION_VIEW) {
|
return if (session.source == Session.Source.ACTION_VIEW) {
|
||||||
activity?.finish()
|
activity?.finish()
|
||||||
sessionManager.remove(session)
|
sessionManager.remove(session)
|
||||||
|
true
|
||||||
} else {
|
} else {
|
||||||
val isLastSession =
|
val isLastSession =
|
||||||
sessionManager.sessionsOfType(private = session.private).count() == 1
|
sessionManager.sessionsOfType(private = session.private).count() == 1
|
||||||
|
@ -823,7 +820,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
|
||||||
sessionManager.remove(session, true)
|
sessionManager.remove(session, true)
|
||||||
}
|
}
|
||||||
val goToOverview = isLastSession || !session.hasParentSession
|
val goToOverview = isLastSession || !session.hasParentSession
|
||||||
return !goToOverview
|
!goToOverview
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in New Issue