aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-01-25 22:03:03 +0100
committerChristian Schneppe <christian@pix-art.de>2019-01-25 22:03:03 +0100
commit0b22039392b3745c1e3b97c58665bb8a2907e675 (patch)
tree395fb3a539b480bad76bce2260a311927f98d213 /src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
parent062b8889b884ba111012d16fc9e6094657ab1388 (diff)
support enter/done key in create contact & join dialogs
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/ui/EnterJidDialog.java69
1 files changed, 39 insertions, 30 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java b/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
index d0c7980fd..02aa46277 100644
--- a/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
+++ b/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
@@ -114,42 +114,51 @@ public class EnterJidDialog extends DialogFragment implements OnBackendConnected
AlertDialog dialog = builder.create();
View.OnClickListener dialogOnClick = v -> {
- final Jid accountJid;
- if (!binding.account.isEnabled() && account == null) {
- return;
- }
- try {
- if (Config.DOMAIN_LOCK != null) {
- accountJid = Jid.of((String) binding.account.getSelectedItem(), Config.DOMAIN_LOCK, null);
- } else {
- accountJid = Jid.of((String) binding.account.getSelectedItem());
- }
- } catch (final IllegalArgumentException e) {
- return;
- }
- final Jid contactJid;
- try {
- contactJid = Jid.of(binding.jid.getText().toString());
- } catch (final IllegalArgumentException e) {
- binding.jid.setError(getActivity().getString(R.string.invalid_jid));
- return;
- }
-
- if (mListener != null) {
- try {
- if (mListener.onEnterJidDialogPositive(accountJid, contactJid)) {
- dialog.dismiss();
- }
- } catch (JidError error) {
- binding.jid.setError(error.toString());
- }
- }
+ handleEnter(binding, account, dialog);
};
+ binding.jid.setOnEditorActionListener((v, actionId, event) -> {
+ handleEnter(binding, account, dialog);
+ return true;
+ });
+
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(dialogOnClick);
return dialog;
}
+ private void handleEnter(EnterJidDialogBinding binding, String account, Dialog dialog) {
+ final Jid accountJid;
+ if (!binding.account.isEnabled() && account == null) {
+ return;
+ }
+ try {
+ if (Config.DOMAIN_LOCK != null) {
+ accountJid = Jid.of((String) binding.account.getSelectedItem(), Config.DOMAIN_LOCK, null);
+ } else {
+ accountJid = Jid.of((String) binding.account.getSelectedItem());
+ }
+ } catch (final IllegalArgumentException e) {
+ return;
+ }
+ final Jid contactJid;
+ try {
+ contactJid = Jid.of(binding.jid.getText().toString());
+ } catch (final IllegalArgumentException e) {
+ binding.jid.setError(getActivity().getString(R.string.invalid_jid));
+ return;
+ }
+
+ if (mListener != null) {
+ try {
+ if (mListener.onEnterJidDialogPositive(accountJid, contactJid)) {
+ dialog.dismiss();
+ }
+ } catch (JidError error) {
+ binding.jid.setError(error.toString());
+ }
+ }
+ }
+
public void setOnEnterJidDialogPositiveListener(OnEnterJidDialogPositiveListener listener) {
this.mListener = listener;
}