From 96264a28a61df1b57c6ddbda95e4d835a673cca7 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 7 Jun 2023 13:51:47 +0800 Subject: [PATCH] Fixup! Restore dialog to add filter --- .../ehviewer/ui/settings/FilterScreen.kt | 49 ++++++++++--------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/FilterScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/FilterScreen.kt index cf52cb91b..0f5537539 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/settings/FilterScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/FilterScreen.kt @@ -50,33 +50,38 @@ fun FilterScreen() { val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior() val scaffoldRecomposeScope = currentRecomposeScope class AddFilterDialogHelper(private val dialog: AlertDialog) : View.OnClickListener { - private val mArray: Array = dialog.context.resources.getStringArray(R.array.filter_entries) + private val mArray = dialog.context.resources.getStringArray(R.array.filter_entries) private val binding = DialogAddFilterBinding.bind(dialog.findViewById(R.id.base)!!) init { dialog.getButton(DialogInterface.BUTTON_POSITIVE)!!.setOnClickListener(this) } override fun onClick(v: View) { - val text1 = binding.spinner.editText!!.text.toString() - if (text1.isEmpty()) { - binding.spinner.error = dialog.context.getString(R.string.text_is_empty) - return - } else { - binding.spinner.error = null + val emptyError = context.getString(R.string.text_is_empty) + val text1: String? + binding.spinner.run { + text1 = editText?.text?.toString() + if (text1.isNullOrBlank()) { + error = emptyError + return + } else { + error = null + } } - val text = binding.textInputLayout.editText!!.text.toString().trim { it <= ' ' } - if (text.isBlank()) { - binding.textInputLayout.error = dialog.context.getString(R.string.text_is_empty) - return - } else { - binding.textInputLayout.error = null + val text: String? + binding.textInputLayout.run { + text = editText?.text?.toString()?.trim() + if (text.isNullOrBlank()) { + error = emptyError + return + } else { + error = null + } } - val mode = mArray.indexOf(text1) - val filter = Filter() - filter.mode = mode - filter.text = text - if (!EhFilter.addFilter(filter)) { - binding.textInputLayout.error = dialog.context.getString(R.string.label_text_exist) - return - } else { - binding.textInputLayout.error = null + binding.textInputLayout.run { + if (!EhFilter.addFilter(Filter(mArray.indexOf(text1), text))) { + error = context.getString(R.string.label_text_exist) + return + } else { + error = null + } } scaffoldRecomposeScope.invalidate() dialog.dismiss()