From a0f00df1abde391794ca93fdb36b7ffaf696bb70 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Sun, 18 Apr 2021 00:26:19 -0400 Subject: [PATCH] More updates to MenuSheetItemView support for maxlines, remove isclickable (since it messes up xml inflatation) --- .../tachiyomi/widget/MenuSheetItemView.kt | 24 ++++++++++++++++--- app/src/main/res/layout/menu_sheet_item.xml | 3 +-- app/src/main/res/values/attrs.xml | 1 + 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/MenuSheetItemView.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/MenuSheetItemView.kt index 181672e0a8..1dfd0b6a58 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/MenuSheetItemView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/MenuSheetItemView.kt @@ -9,7 +9,7 @@ import android.widget.LinearLayout import androidx.annotation.ColorInt import androidx.annotation.DrawableRes import androidx.annotation.StringRes -import androidx.core.view.isInvisible +import androidx.core.view.isGone import androidx.core.widget.TextViewCompat import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.databinding.MenuSheetItemBinding @@ -19,6 +19,7 @@ class MenuSheetItemView @JvmOverloads constructor(context: Context, attrs: Attri private val mText: String private val mIconRes: Int private val mEndIconRes: Int + private val mMaxLines: Int private var binding: MenuSheetItemBinding? = null @@ -34,6 +35,9 @@ class MenuSheetItemView @JvmOverloads constructor(context: Context, attrs: Attri val e = a.getResourceId(R.styleable.MenuSheetItemView_endIcon, 0) mEndIconRes = e + val m = a.getInt(R.styleable.MenuSheetItemView_android_maxLines, Int.MAX_VALUE) + mMaxLines = m + a.recycle() } @@ -47,6 +51,7 @@ class MenuSheetItemView @JvmOverloads constructor(context: Context, attrs: Attri text = mText setIcon(mIconRes) setEndIcon(mEndIconRes) + binding?.itemTextView?.maxLines = mMaxLines } var text: CharSequence? @@ -85,13 +90,26 @@ class MenuSheetItemView @JvmOverloads constructor(context: Context, attrs: Attri ) } + fun setIcon(drawable: Drawable?) { + binding?.itemTextView?.setCompoundDrawablesRelativeWithIntrinsicBounds( + drawable, + null, + null, + null, + ) + } + + fun getIcon(): Drawable? { + return binding?.itemTextView?.compoundDrawablesRelative?.getOrNull(0) + } + fun setEndIcon(@DrawableRes res: Int) { - binding?.menuEndItem?.isInvisible = res == 0 + binding?.menuEndItem?.isGone = res == 0 binding?.menuEndItem?.setImageResource(res) } fun setEndIcon(drawable: Drawable?) { - binding?.menuEndItem?.isInvisible = drawable == null + binding?.menuEndItem?.isGone = drawable == null binding?.menuEndItem?.setImageDrawable(drawable) } } diff --git a/app/src/main/res/layout/menu_sheet_item.xml b/app/src/main/res/layout/menu_sheet_item.xml index afe52ef0a8..3466bf5707 100644 --- a/app/src/main/res/layout/menu_sheet_item.xml +++ b/app/src/main/res/layout/menu_sheet_item.xml @@ -5,8 +5,6 @@ android:layout_height="48sp" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="?attr/selectableItemBackground" - android:clickable="true" - android:focusable="true" android:orientation="horizontal" tools:icon="@drawable/ic_share_24dp" tools:endIcon="@drawable/ic_arrow_downward_24dp" @@ -22,6 +20,7 @@ android:gravity="center|start" android:paddingStart="16dp" android:paddingEnd="16dp" + android:ellipsize="end" android:textColor="?android:textColorPrimary" android:textSize="13sp" android:tint="@color/md_white_1000_54" /> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 58711367cb..ab571bccb3 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -28,6 +28,7 @@ +