Add support for the predictive back gesture
parent
652351f79a
commit
f436a49e5f
@ -0,0 +1,24 @@
|
||||
package org.koitharu.kotatsu.base.ui.util
|
||||
|
||||
import android.view.MenuItem
|
||||
import android.view.MenuItem.OnActionExpandListener
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
|
||||
class CollapseActionViewCallback(
|
||||
private val menuItem: MenuItem
|
||||
) : OnBackPressedCallback(menuItem.isActionViewExpanded), OnActionExpandListener {
|
||||
|
||||
override fun handleOnBackPressed() {
|
||||
menuItem.collapseActionView()
|
||||
}
|
||||
|
||||
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
|
||||
isEnabled = true
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
|
||||
isEnabled = false
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package org.koitharu.kotatsu.browser
|
||||
|
||||
fun interface OnHistoryChangedListener {
|
||||
|
||||
fun onHistoryChanged()
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package org.koitharu.kotatsu.browser
|
||||
|
||||
import android.webkit.WebView
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
|
||||
class WebViewBackPressedCallback(
|
||||
private val webView: WebView,
|
||||
) : OnBackPressedCallback(false), OnHistoryChangedListener {
|
||||
|
||||
init {
|
||||
onHistoryChanged()
|
||||
}
|
||||
|
||||
override fun handleOnBackPressed() {
|
||||
webView.goBack()
|
||||
}
|
||||
|
||||
override fun onHistoryChanged() {
|
||||
isEnabled = webView.canGoBack()
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue