mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +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