diff --git a/app/src/main/java/io/legato/kazusa/ui/widget/SelectActionBar.kt b/app/src/main/java/io/legato/kazusa/ui/widget/SelectActionBar.kt index 5b2069595..187b76f44 100644 --- a/app/src/main/java/io/legato/kazusa/ui/widget/SelectActionBar.kt +++ b/app/src/main/java/io/legato/kazusa/ui/widget/SelectActionBar.kt @@ -47,28 +47,37 @@ class SelectActionBar @JvmOverloads constructor( } binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() } binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() } - binding.ivMenuMore.setOnClickListener { selMenu?.show() } + binding.ivMenuMore.addOnCheckedChangeListener { button, isChecked -> + if (isChecked) { + selMenu?.show() + } + } applyNavigationBarPadding() } } fun setMainActionText(text: String) = binding.run { btnSelectActionMain.text = text - btnSelectActionMain.visible() + btnSplit.visible() } fun setMainActionText(@StringRes id: Int) = binding.run { btnSelectActionMain.setText(id) - btnSelectActionMain.visible() + btnSplit.visible() } fun inflateMenu(@MenuRes resId: Int): Menu? { - selMenu = PopupMenu(context, binding.ivMenuMore) - selMenu?.inflate(resId) - binding.ivMenuMore.visible() + selMenu = PopupMenu(context, binding.ivMenuMore).apply { + inflate(resId) + + setOnDismissListener { + binding.ivMenuMore.isChecked = false + } + } return selMenu?.menu } + fun setCallBack(callBack: CallBack) { this.callBack = callBack } @@ -104,15 +113,8 @@ class SelectActionBar @JvmOverloads constructor( private fun setMenuClickable(isClickable: Boolean) = binding.run { btnRevertSelection.isEnabled = isClickable btnRevertSelection.isClickable = isClickable - btnSelectActionMain.isEnabled = isClickable - btnSelectActionMain.isClickable = isClickable -// if (isClickable) { -// ivMenuMore.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) -// } else { -// ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN) -// } - ivMenuMore.isEnabled = isClickable - ivMenuMore.isClickable = isClickable + btnSplit.isEnabled = isClickable + btnSplit.isClickable = isClickable } interface CallBack { diff --git a/app/src/main/res/layout/view_select_action_bar.xml b/app/src/main/res/layout/view_select_action_bar.xml index 88660159a..d9e02061f 100644 --- a/app/src/main/res/layout/view_select_action_bar.xml +++ b/app/src/main/res/layout/view_select_action_bar.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto" android:gravity="center_vertical" android:orientation="horizontal" android:paddingHorizontal="8dp" @@ -17,40 +18,37 @@ android:layout_marginStart="4dp" android:text="@string/select_all" /> - + + - - - + - + \ No newline at end of file diff --git a/app/src/main/res/menu/app_log.xml b/app/src/main/res/menu/app_log.xml index 3d17348bb..54740b2dd 100644 --- a/app/src/main/res/menu/app_log.xml +++ b/app/src/main/res/menu/app_log.xml @@ -7,6 +7,7 @@ \ No newline at end of file