From 2762a3210571bf7ca91b77acbe89708c39391ea7 Mon Sep 17 00:00:00 2001 From: johan12345 Date: Sun, 28 Apr 2024 18:52:41 +0200 Subject: [PATCH] improve look of text input dialog fixes #336 --- .../java/net/vonforst/evmap/ui/Dialogs.kt | 19 +++++++------------ app/src/main/res/layout/dialog_textinput.xml | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/layout/dialog_textinput.xml diff --git a/app/src/main/java/net/vonforst/evmap/ui/Dialogs.kt b/app/src/main/java/net/vonforst/evmap/ui/Dialogs.kt index 56d47e89..d58e5031 100644 --- a/app/src/main/java/net/vonforst/evmap/ui/Dialogs.kt +++ b/app/src/main/java/net/vonforst/evmap/ui/Dialogs.kt @@ -10,23 +10,16 @@ import android.view.ViewGroup import android.view.WindowManager import android.view.inputmethod.EditorInfo import android.widget.EditText -import android.widget.FrameLayout import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatDialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.textfield.TextInputLayout import net.vonforst.evmap.R import kotlin.math.roundToInt -private fun dialogEditText(ctx: Context): Pair { - val container = FrameLayout(ctx) - container.setPadding( - (16 * ctx.resources.displayMetrics.density).toInt(), 0, - (16 * ctx.resources.displayMetrics.density).toInt(), 0 - ) - val input = EditText(ctx) - input.isSingleLine = true - container.addView(input) - return container to input +private fun dialogEditText(ctx: Context): Pair { + val view = LayoutInflater.from(ctx).inflate(R.layout.dialog_textinput, null) + return view as TextInputLayout to view.findViewById(R.id.input) } fun showEditTextDialog( @@ -62,8 +55,10 @@ fun showEditTextDialog( okButton?.setOnClickListener { if (input.text.isBlank()) { - input.error = ctx.getString(R.string.required) + container.isErrorEnabled = true + container.error = ctx.getString(R.string.required) } else { + container.isErrorEnabled = false okAction(input.text.toString()) dialog.dismiss() } diff --git a/app/src/main/res/layout/dialog_textinput.xml b/app/src/main/res/layout/dialog_textinput.xml new file mode 100644 index 00000000..36d4635f --- /dev/null +++ b/app/src/main/res/layout/dialog_textinput.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file