mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Remove unused legacy ActionModeWithToolbar
This commit is contained in:
		@@ -68,7 +68,6 @@ import eu.kanade.tachiyomi.util.system.isTablet
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.toast
 | 
			
		||||
import eu.kanade.tachiyomi.util.view.setNavigationBarTransparentCompat
 | 
			
		||||
import eu.kanade.tachiyomi.widget.ActionModeWithToolbar
 | 
			
		||||
import kotlinx.coroutines.delay
 | 
			
		||||
import kotlinx.coroutines.flow.drop
 | 
			
		||||
import kotlinx.coroutines.flow.launchIn
 | 
			
		||||
@@ -533,11 +532,6 @@ class MainActivity : BaseActivity() {
 | 
			
		||||
        super.onSupportActionModeFinished(mode)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun startActionModeAndToolbar(modeCallback: ActionModeWithToolbar.Callback): ActionModeWithToolbar {
 | 
			
		||||
        binding.actionToolbar.start(modeCallback)
 | 
			
		||||
        return binding.actionToolbar
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private suspend fun resetExitConfirmation() {
 | 
			
		||||
        isConfirmingExit = true
 | 
			
		||||
        val toast = toast(R.string.confirm_exit, Toast.LENGTH_LONG)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,169 +0,0 @@
 | 
			
		||||
package eu.kanade.tachiyomi.widget
 | 
			
		||||
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.util.AttributeSet
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
import android.view.Menu
 | 
			
		||||
import android.view.MenuInflater
 | 
			
		||||
import android.view.MenuItem
 | 
			
		||||
import android.view.animation.Animation
 | 
			
		||||
import android.view.animation.AnimationUtils
 | 
			
		||||
import android.widget.FrameLayout
 | 
			
		||||
import androidx.annotation.IdRes
 | 
			
		||||
import androidx.appcompat.app.AppCompatActivity
 | 
			
		||||
import androidx.appcompat.view.ActionMode
 | 
			
		||||
import androidx.core.view.isVisible
 | 
			
		||||
import dev.chrisbanes.insetter.applyInsetter
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.databinding.ActionToolbarBinding
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.applySystemAnimatorScale
 | 
			
		||||
import eu.kanade.tachiyomi.widget.ActionModeWithToolbar.Callback
 | 
			
		||||
import eu.kanade.tachiyomi.widget.listener.SimpleAnimationListener
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A toolbar holding only menu items. This view is supposed to be paired with [AppCompatActivity]'s [ActionMode].
 | 
			
		||||
 *
 | 
			
		||||
 * @see Callback
 | 
			
		||||
 */
 | 
			
		||||
class ActionModeWithToolbar @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
 | 
			
		||||
    FrameLayout(context, attrs) {
 | 
			
		||||
 | 
			
		||||
    init {
 | 
			
		||||
        clipToPadding = false
 | 
			
		||||
        applyInsetter {
 | 
			
		||||
            type(navigationBars = true) {
 | 
			
		||||
                padding(bottom = true, horizontal = true)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private val binding = ActionToolbarBinding.inflate(LayoutInflater.from(context), this, true)
 | 
			
		||||
 | 
			
		||||
    private var callback: Callback? = null
 | 
			
		||||
 | 
			
		||||
    private var actionMode: ActionMode? = null
 | 
			
		||||
    private val actionModeCallback = object : ActionMode.Callback {
 | 
			
		||||
        override fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean {
 | 
			
		||||
            callback?.onCreateActionToolbar(mode.menuInflater, binding.menu.menu)
 | 
			
		||||
            binding.menu.setOnMenuItemClickListener { onActionItemClicked(mode, it) }
 | 
			
		||||
            binding.root.isVisible = true
 | 
			
		||||
            val bottomAnimation = AnimationUtils.loadAnimation(context, R.anim.bottom_sheet_slide_in)
 | 
			
		||||
            bottomAnimation.applySystemAnimatorScale(context)
 | 
			
		||||
            binding.root.startAnimation(bottomAnimation)
 | 
			
		||||
 | 
			
		||||
            return callback?.onCreateActionMode(mode, menu) ?: false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        override fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean {
 | 
			
		||||
            callback?.onPrepareActionToolbar(this@ActionModeWithToolbar, binding.menu.menu)
 | 
			
		||||
            return callback?.onPrepareActionMode(mode, menu) ?: false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
 | 
			
		||||
            return callback?.onActionItemClicked(mode, item) ?: false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        override fun onDestroyActionMode(mode: ActionMode) {
 | 
			
		||||
            callback?.onDestroyActionMode(mode)
 | 
			
		||||
 | 
			
		||||
            val bottomAnimation = AnimationUtils.loadAnimation(context, R.anim.bottom_sheet_slide_out).apply {
 | 
			
		||||
                applySystemAnimatorScale(context)
 | 
			
		||||
                setAnimationListener(
 | 
			
		||||
                    object : SimpleAnimationListener() {
 | 
			
		||||
                        override fun onAnimationEnd(animation: Animation) {
 | 
			
		||||
                            binding.root.isVisible = false
 | 
			
		||||
                            binding.menu.menu.clear()
 | 
			
		||||
                            binding.menu.setOnMenuItemClickListener(null)
 | 
			
		||||
 | 
			
		||||
                            callback?.onDestroyActionToolbar()
 | 
			
		||||
                            callback = null
 | 
			
		||||
                            actionMode = null
 | 
			
		||||
                        }
 | 
			
		||||
                    },
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
            binding.root.startAnimation(bottomAnimation)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun start(callback: Callback) {
 | 
			
		||||
        val context = context
 | 
			
		||||
        if (context !is AppCompatActivity) {
 | 
			
		||||
            throw IllegalStateException("AppCompatActivity is needed to start this view")
 | 
			
		||||
        }
 | 
			
		||||
        if (actionMode == null) {
 | 
			
		||||
            this.callback = callback
 | 
			
		||||
            actionMode = context.startSupportActionMode(actionModeCallback)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun finish() {
 | 
			
		||||
        actionMode?.finish()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Gets a menu item if found.
 | 
			
		||||
     */
 | 
			
		||||
    fun findToolbarItem(@IdRes itemId: Int): MenuItem? {
 | 
			
		||||
        return binding.menu.menu.findItem(itemId)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun invalidate() {
 | 
			
		||||
        super.invalidate()
 | 
			
		||||
        actionMode?.invalidate()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    interface Callback {
 | 
			
		||||
        /**
 | 
			
		||||
         * Called when action mode is first created. The menu supplied will be used to
 | 
			
		||||
         * generate action buttons for the action mode.
 | 
			
		||||
         *
 | 
			
		||||
         * @param mode ActionMode being created
 | 
			
		||||
         * @param menu Menu used to populate action buttons
 | 
			
		||||
         * @return true if the action mode should be created, false if entering this
 | 
			
		||||
         * mode should be aborted.
 | 
			
		||||
         */
 | 
			
		||||
        fun onCreateActionMode(mode: ActionMode, menu: Menu): Boolean
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * [onCreateActionMode] but for the bottom toolbar
 | 
			
		||||
         */
 | 
			
		||||
        fun onCreateActionToolbar(menuInflater: MenuInflater, menu: Menu)
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Called to refresh an action mode's action menu whenever it is invalidated.
 | 
			
		||||
         *
 | 
			
		||||
         * @param mode ActionMode being prepared
 | 
			
		||||
         * @param menu Menu used to populate action buttons
 | 
			
		||||
         * @return true if the menu or action mode was updated, false otherwise.
 | 
			
		||||
         */
 | 
			
		||||
        fun onPrepareActionMode(mode: ActionMode, menu: Menu): Boolean
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * [onPrepareActionMode] but for the bottom toolbar
 | 
			
		||||
         */
 | 
			
		||||
        fun onPrepareActionToolbar(toolbar: ActionModeWithToolbar, menu: Menu)
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Called to report a user click on an action button.
 | 
			
		||||
         *
 | 
			
		||||
         * @param mode The current ActionMode
 | 
			
		||||
         * @param item The item that was clicked
 | 
			
		||||
         * @return true if this callback handled the event, false if the standard MenuItem
 | 
			
		||||
         * invocation should continue.
 | 
			
		||||
         */
 | 
			
		||||
        fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Called when an action mode is about to be exited and destroyed.
 | 
			
		||||
         *
 | 
			
		||||
         * @param mode The current ActionMode being destroyed
 | 
			
		||||
         */
 | 
			
		||||
        fun onDestroyActionMode(mode: ActionMode)
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Called when the action toolbar is finished exiting
 | 
			
		||||
         */
 | 
			
		||||
        fun onDestroyActionToolbar() {}
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user