From 72da7ebfe46a573c6c38383879e656286b678ba9 Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 20 May 2022 00:39:07 +0800 Subject: [PATCH] Fix search crash --- .../java/com/hippo/ehviewer/widget/SearchLayout.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt index 69434f929..a4c3e2dd0 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.kt @@ -128,16 +128,17 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V val mCategoryGroup = normalView.findViewById(R.id.search_category_chipgroup) as ChipGroup for (mPair in mCategoryTable) { - val mChip = Chip(context) + val mChip = IdentifiedChip(context) mChip.isCheckable = true mChip.setText(mPair.second) + mChip.idt = mPair.first mChip.isChecked = NumberUtils.int2boolean(mPair.first and mCategoryStored) mCategoryGroup.addView(mChip) } - mCategoryGroup.setOnCheckedStateChangeListener { group, checkedIds -> + mCategoryGroup.setOnCheckedStateChangeListener { _, checkedIds -> var mCategory = 0 for (index in checkedIds) { - mCategory = mCategory or mCategoryTable[index - 1].first + mCategory = mCategory or findViewById(index).idt } mSharePref.edit { putInt(SEARCH_CATEGORY_PREF, mCategory) } } @@ -382,6 +383,12 @@ class SearchLayout : EasyRecyclerView, CompoundButton.OnCheckedChangeListener, V } } + inner class IdentifiedChip @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null + ) : Chip(context, attrs) { + var idt = 0 + } + companion object { const val SEARCH_MODE_NORMAL = 0 const val SEARCH_MODE_IMAGE = 1