|
|
|
@ -1,10 +1,11 @@
|
|
|
|
package org.koitharu.kotatsu.base.ui.util
|
|
|
|
package org.koitharu.kotatsu.base.ui.util
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.activity.OnBackPressedCallback
|
|
|
|
import androidx.appcompat.view.ActionMode
|
|
|
|
import androidx.appcompat.view.ActionMode
|
|
|
|
import androidx.lifecycle.DefaultLifecycleObserver
|
|
|
|
import androidx.lifecycle.DefaultLifecycleObserver
|
|
|
|
import androidx.lifecycle.LifecycleOwner
|
|
|
|
import androidx.lifecycle.LifecycleOwner
|
|
|
|
|
|
|
|
|
|
|
|
class ActionModeDelegate {
|
|
|
|
class ActionModeDelegate : OnBackPressedCallback(false) {
|
|
|
|
|
|
|
|
|
|
|
|
private var activeActionMode: ActionMode? = null
|
|
|
|
private var activeActionMode: ActionMode? = null
|
|
|
|
private var listeners: MutableList<ActionModeListener>? = null
|
|
|
|
private var listeners: MutableList<ActionModeListener>? = null
|
|
|
|
@ -12,13 +13,19 @@ class ActionModeDelegate {
|
|
|
|
val isActionModeStarted: Boolean
|
|
|
|
val isActionModeStarted: Boolean
|
|
|
|
get() = activeActionMode != null
|
|
|
|
get() = activeActionMode != null
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun handleOnBackPressed() {
|
|
|
|
|
|
|
|
activeActionMode?.finish()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun onSupportActionModeStarted(mode: ActionMode) {
|
|
|
|
fun onSupportActionModeStarted(mode: ActionMode) {
|
|
|
|
activeActionMode = mode
|
|
|
|
activeActionMode = mode
|
|
|
|
|
|
|
|
isEnabled = true
|
|
|
|
listeners?.forEach { it.onActionModeStarted(mode) }
|
|
|
|
listeners?.forEach { it.onActionModeStarted(mode) }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun onSupportActionModeFinished(mode: ActionMode) {
|
|
|
|
fun onSupportActionModeFinished(mode: ActionMode) {
|
|
|
|
activeActionMode = null
|
|
|
|
activeActionMode = null
|
|
|
|
|
|
|
|
isEnabled = false
|
|
|
|
listeners?.forEach { it.onActionModeFinished(mode) }
|
|
|
|
listeners?.forEach { it.onActionModeFinished(mode) }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|