From 81ba0b467e17c901c9d25dbea2331c7a848c7034 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Fri, 29 Jun 2018 22:48:22 +0200 Subject: use TextInputLayout in quickedit dialog --- .../messenger/ui/ConferenceDetailsActivity.java | 4 +-- .../messenger/ui/ContactDetailsActivity.java | 2 +- .../java/de/pixart/messenger/ui/XmppActivity.java | 33 ++++++++++------------ 3 files changed, 18 insertions(+), 21 deletions(-) (limited to 'src/main/java/de/pixart/messenger/ui') diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java index 5ba1aad49..4782d371f 100644 --- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java @@ -292,12 +292,12 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers setSupportActionBar((Toolbar) binding.toolbar); configureActionBar(getSupportActionBar()); this.binding.editNickButton.setOnClickListener(v -> quickEdit(mConversation.getMucOptions().getActualNick(), - 0, + R.string.nickname_for_this_group_chat, value -> { if (xmppConnectionService.renameInMuc(mConversation, value, renameCallback)) { return null; } else { - return getString(R.string.invalid_username); + return getString(R.string.invalid_muc_nick); } })); this.mAdvancedMode = getPreferences().getBoolean("advanced_muc_mode", false); diff --git a/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java index 11cf78858..4919a4251 100644 --- a/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java @@ -298,7 +298,7 @@ public class ContactDetailsActivity extends OmemoActivity implements OnAccountUp case R.id.action_edit_contact: Uri systemAccount = contact.getSystemAccount(); if (systemAccount == null) { - quickEdit(contact.getDisplayName(), 0, value -> { + quickEdit(contact.getServerName(), R.string.contact_name, value -> { contact.setServerName(value); ContactDetailsActivity.this.xmppConnectionService.pushContactToServer(contact); populateView(); diff --git a/src/main/java/de/pixart/messenger/ui/XmppActivity.java b/src/main/java/de/pixart/messenger/ui/XmppActivity.java index 73a9e2f5f..ca833d9c1 100644 --- a/src/main/java/de/pixart/messenger/ui/XmppActivity.java +++ b/src/main/java/de/pixart/messenger/ui/XmppActivity.java @@ -19,6 +19,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.TypedArray; +import android.databinding.DataBindingUtil; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Point; @@ -36,6 +37,7 @@ import android.os.SystemClock; import android.preference.PreferenceManager; import android.provider.Settings; import android.support.annotation.BoolRes; +import android.support.annotation.StringRes; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatDelegate; @@ -46,7 +48,6 @@ import android.util.Pair; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.EditText; import android.widget.ImageView; import android.widget.Spinner; import android.widget.Toast; @@ -66,6 +67,7 @@ import java.util.concurrent.atomic.AtomicInteger; import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.crypto.PgpEngine; +import de.pixart.messenger.databinding.DialogQuickeditBinding; import de.pixart.messenger.entities.Account; import de.pixart.messenger.entities.Contact; import de.pixart.messenger.entities.Conversation; @@ -709,11 +711,11 @@ public abstract class XmppActivity extends ActionBarActivity { builder.create().show(); } - protected void quickEdit(String previousValue, int hint, OnValueEdited callback) { + protected void quickEdit(String previousValue, @StringRes int hint, OnValueEdited callback) { quickEdit(previousValue, callback, hint, false, false); } - protected void quickEdit(String previousValue, int hint, OnValueEdited callback, boolean permitEmpty) { + protected void quickEdit(String previousValue, @StringRes int hint, OnValueEdited callback, boolean permitEmpty) { quickEdit(previousValue, callback, hint, false, permitEmpty); } @@ -724,37 +726,32 @@ public abstract class XmppActivity extends ActionBarActivity { @SuppressLint("InflateParams") private void quickEdit(final String previousValue, final OnValueEdited callback, - final int hint, + final @StringRes int hint, boolean password, boolean permitEmpty) { AlertDialog.Builder builder = new AlertDialog.Builder(this); - View view = getLayoutInflater().inflate(R.layout.quickedit, null); - final EditText editor = view.findViewById(R.id.editor); + DialogQuickeditBinding binding = DataBindingUtil.inflate(getLayoutInflater(),R.layout.dialog_quickedit, null, false); if (password) { - editor.setInputType(InputType.TYPE_CLASS_TEXT - | InputType.TYPE_TEXT_VARIATION_PASSWORD); - builder.setPositiveButton(R.string.accept, null); - } else { - builder.setPositiveButton(R.string.ok, null); + binding.inputEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); } + builder.setPositiveButton(R.string.accept, null); if (hint != 0) { - editor.setHint(hint); + binding.inputLayout.setHint(getString(hint)); } - editor.requestFocus(); - editor.setText(""); + binding.inputEditText.requestFocus(); if (previousValue != null) { - editor.getText().append(previousValue); + binding.inputEditText.getText().append(previousValue); } - builder.setView(view); + builder.setView(binding.getRoot()); builder.setNegativeButton(R.string.cancel, null); final AlertDialog dialog = builder.create(); dialog.show(); View.OnClickListener clickListener = v -> { - String value = editor.getText().toString(); + String value = binding.inputEditText.getText().toString(); if (!value.equals(previousValue) && (!value.trim().isEmpty() || permitEmpty)) { String error = callback.onValueEdited(value); if (error != null) { - editor.setError(error); + binding.inputLayout.setError(error); return; } } -- cgit v1.2.3