diff options
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/Contact.java | 4 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java | 4 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ContactDetailsActivity.java | 2 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/XmppActivity.java | 33 | ||||
-rw-r--r-- | src/main/res/layout/dialog_quickedit.xml | 34 | ||||
-rw-r--r-- | src/main/res/layout/quickedit.xml | 19 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 2 |
7 files changed, 58 insertions, 40 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Contact.java b/src/main/java/de/pixart/messenger/entities/Contact.java index f76e141bf..40bd69976 100644 --- a/src/main/java/de/pixart/messenger/entities/Contact.java +++ b/src/main/java/de/pixart/messenger/entities/Contact.java @@ -565,6 +565,10 @@ public class Contact implements ListItem, Blockable { return this.mLastPresence; } + public String getServerName() { + return serverName; + } + public final class Options { public static final int TO = 0; public static final int FROM = 1; 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; } } diff --git a/src/main/res/layout/dialog_quickedit.xml b/src/main/res/layout/dialog_quickedit.xml new file mode 100644 index 000000000..273bcf1e9 --- /dev/null +++ b/src/main/res/layout/dialog_quickedit.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:paddingLeft="?attr/dialog_horizontal_padding" + android:paddingRight="?attr/dialog_horizontal_padding" + android:paddingTop="?attr/dialog_vertical_padding"> + + <android.support.design.widget.TextInputLayout + android:id="@+id/input_layout" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:errorEnabled="true" + app:errorTextAppearance="@style/TextAppearance.Conversations.Design.Error" + app:hintTextAppearance="@style/TextAppearance.Conversations.Design.Hint"> + + <android.support.design.widget.TextInputEditText + android:id="@+id/input_edit_text" + style="@style/Widget.Conversations.EditText" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:ems="10" + android:inputType="textPersonName"> + + <requestFocus /> + </android.support.design.widget.TextInputEditText> + + </android.support.design.widget.TextInputLayout> + </LinearLayout> +</layout>
\ No newline at end of file diff --git a/src/main/res/layout/quickedit.xml b/src/main/res/layout/quickedit.xml deleted file mode 100644 index 0bf2cb5fe..000000000 --- a/src/main/res/layout/quickedit.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical" - android:padding="16dp"> - - <android.support.text.emoji.widget.EmojiEditText - android:id="@+id/editor" - style="@style/Widget.Conversations.EditText" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:ems="10" - android:inputType="textPersonName"> - - <requestFocus /> - </android.support.text.emoji.widget.EmojiEditText> - -</LinearLayout>
\ No newline at end of file diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index bd7d0e0e1..9d2828441 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -799,4 +799,6 @@ <string name="group_chat_avatar">Group chat avatar</string> <string name="host_does_not_support_group_chat_avatars">Host does not support group chat avatars</string> <string name="only_the_owner_can_change_group_chat_avatar">Only the owner can change group chat avatar</string> + <string name="contact_name">Contact name</string> + <string name="nickname_for_this_group_chat">Nickname for this group chat</string> </resources> |