From 050b5c0451b1d770eb204aa44215a2c5f2076384 Mon Sep 17 00:00:00 2001 From: GG Bond Date: Mon, 27 Nov 2023 20:54:23 +0800 Subject: [PATCH] Kill EditTextDialogBuilder --- .../com/hippo/ehviewer/ui/MainActivity.kt | 10 +-- .../ui/legacy/EditTextDialogBuilder.kt | 72 ------------------- .../com/hippo/ehviewer/ui/tools/Dialog.kt | 3 +- .../res/layout/dialog_edittext_builder.xml | 33 --------- 4 files changed, 5 insertions(+), 113 deletions(-) delete mode 100644 app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/EditTextDialogBuilder.kt delete mode 100644 app/src/main/res/layout/dialog_edittext_builder.xml diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt index 2364ccab6..2c8978550 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -108,7 +108,6 @@ import com.hippo.ehviewer.ui.destinations.SubscriptionScreenDestination import com.hippo.ehviewer.ui.destinations.ToplistScreenDestination import com.hippo.ehviewer.ui.destinations.WhatshotScreenDestination import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder -import com.hippo.ehviewer.ui.legacy.EditTextDialogBuilder import com.hippo.ehviewer.ui.scene.TokenArgs import com.hippo.ehviewer.ui.scene.navWithUrl import com.hippo.ehviewer.ui.scene.navigate @@ -208,18 +207,15 @@ class MainActivity : EhActivity() { callback() } + val cannotParse = stringResource(R.string.error_cannot_parse_the_url) LaunchedEffect(Unit) { intentFlow.collect { when (intent?.action) { Intent.ACTION_VIEW -> { val url = intent.data?.toString() if (url != null && !navController.navWithUrl(url)) { - EditTextDialogBuilder(this@MainActivity, url, "") - .setTitle(R.string.error_cannot_parse_the_url) - .setPositiveButton(android.R.string.copy) { _, _ -> - this@MainActivity.addTextToClipboard(url) - } - .show() + val new = dialogState.awaitInputText(initial = url, title = cannotParse) + addTextToClipboard(new) } } Intent.ACTION_SEND -> { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/EditTextDialogBuilder.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/EditTextDialogBuilder.kt deleted file mode 100644 index 3436db02f..000000000 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/EditTextDialogBuilder.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2016 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.hippo.ehviewer.ui.legacy - -import android.content.Context -import android.content.DialogInterface -import android.view.KeyEvent -import android.view.LayoutInflater -import android.widget.EditText -import android.widget.TextView -import android.widget.TextView.OnEditorActionListener -import androidx.appcompat.app.AlertDialog -import com.google.android.material.textfield.TextInputLayout -import com.hippo.ehviewer.R - -class EditTextDialogBuilder( - context: Context, - text: String?, - hint: String?, -) : BaseDialogBuilder( - context, -), - OnEditorActionListener { - private val mTextInputLayout: TextInputLayout - val editText: EditText - private var mDialog: AlertDialog? = null - val text: String - get() = editText.text.toString() - - fun setError(error: CharSequence?) { - mTextInputLayout.error = error - } - - override fun create(): AlertDialog { - mDialog = super.create() - return mDialog as AlertDialog - } - - override fun onEditorAction(v: TextView?, p1: Int, event: KeyEvent?): Boolean { - return if (mDialog != null) { - val button = mDialog!!.getButton(DialogInterface.BUTTON_POSITIVE) - button?.performClick() - true - } else { - false - } - } - - init { - val view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_edittext_builder, null) - setView(view) - mTextInputLayout = view as TextInputLayout - editText = view.findViewById(R.id.edit_text) - editText.setText(text) - editText.setSelection(editText.text.length) - editText.setOnEditorActionListener(this) - mTextInputLayout.hint = hint - } -} diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt index 3d47e1895..88255b11d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt @@ -120,6 +120,7 @@ class DialogState { title: String? = null, hint: String? = null, isNumber: Boolean = false, + @StringRes confirmText: Int = android.R.string.ok, invalidator: (suspend (String) -> String?)? = null, ): String { return dialog { cont -> @@ -139,7 +140,7 @@ class DialogState { } } }) { - Text(text = stringResource(id = android.R.string.ok)) + Text(text = stringResource(id = confirmText)) } }, title = title.ifNotNullThen { Text(text = title!!) }, diff --git a/app/src/main/res/layout/dialog_edittext_builder.xml b/app/src/main/res/layout/dialog_edittext_builder.xml deleted file mode 100644 index 3a11be543..000000000 --- a/app/src/main/res/layout/dialog_edittext_builder.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - -