aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/EnterJidDialog.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/EnterJidDialog.java94
1 files changed, 45 insertions, 49 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java b/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
index 604bfc8d2..26e9017f9 100644
--- a/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
+++ b/src/main/java/de/pixart/messenger/ui/EnterJidDialog.java
@@ -1,15 +1,13 @@
package de.pixart.messenger.ui;
import android.app.Dialog;
+import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.widget.ArrayAdapter;
-import android.widget.AutoCompleteTextView;
-import android.widget.Spinner;
-import android.widget.TextView;
import java.util.ArrayList;
import java.util.Collection;
@@ -18,21 +16,22 @@ import java.util.List;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
+import de.pixart.messenger.databinding.EnterJidDialogBinding;
import de.pixart.messenger.ui.adapter.KnownHostsAdapter;
import de.pixart.messenger.ui.util.DelayedHintHelper;
import rocks.xmpp.addr.Jid;
public class EnterJidDialog extends DialogFragment {
- private OnEnterJidDialogPositiveListener mListener = null;
private static final String TITLE_KEY = "title";
- private static final String POSITIVE_BUTTON_KEY = "positive_button";
- private static final String PREFILLED_JID_KEY = "prefilled_jid";
- private static final String ACCOUNT_KEY = "account";
- private static final String ALLOW_EDIT_JID_KEY = "allow_edit_jid";
+ private static final String POSITIVE_BUTTON_KEY = "positive_button";
+ private static final String PREFILLED_JID_KEY = "prefilled_jid";
+ private static final String ACCOUNT_KEY = "account";
+ private static final String ALLOW_EDIT_JID_KEY = "allow_edit_jid";
private static final String MULTIPLE_ACCOUNTS = "multiple_accounts_enabled";
- private static final String ACCOUNTS_LIST_KEY = "activated_accounts_list";
- private static final String CONFERENCE_HOSTS_KEY = "known_conference_hosts";
+ private static final String ACCOUNTS_LIST_KEY = "activated_accounts_list";
+ private static final String CONFERENCE_HOSTS_KEY = "known_conference_hosts";
+ private OnEnterJidDialogPositiveListener mListener = null;
public static EnterJidDialog newInstance(
Collection<String> knownHosts, final List<String> activatedAccounts,
@@ -63,79 +62,76 @@ public class EnterJidDialog extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(getArguments().getString(TITLE_KEY));
- View dialogView = getActivity().getLayoutInflater().inflate(R.layout.enter_jid_dialog, null);
- final TextView yourAccount = dialogView.findViewById(R.id.your_account);
- final Spinner spinner = dialogView.findViewById(R.id.account);
- final AutoCompleteTextView jid = dialogView.findViewById(R.id.jid);
- jid.setAdapter(new KnownHostsAdapter(getActivity(), R.layout.simple_list_item, (Collection<String>) getArguments().getSerializable(CONFERENCE_HOSTS_KEY)));
+ EnterJidDialogBinding binding = DataBindingUtil.inflate(getActivity().getLayoutInflater(), R.layout.enter_jid_dialog, null, false);
+ binding.jid.setAdapter(new KnownHostsAdapter(getActivity(), R.layout.simple_list_item, (Collection<String>) getArguments().getSerializable(CONFERENCE_HOSTS_KEY)));
String prefilledJid = getArguments().getString(PREFILLED_JID_KEY);
if (prefilledJid != null) {
- jid.append(prefilledJid);
+ binding.jid.append(prefilledJid);
if (!getArguments().getBoolean(ALLOW_EDIT_JID_KEY)) {
- jid.setFocusable(false);
- jid.setFocusableInTouchMode(false);
- jid.setClickable(false);
- jid.setCursorVisible(false);
+ binding.jid.setFocusable(false);
+ binding.jid.setFocusableInTouchMode(false);
+ binding.jid.setClickable(false);
+ binding.jid.setCursorVisible(false);
}
}
- DelayedHintHelper.setHint(R.string.account_settings_example_jabber_id, jid);
+ DelayedHintHelper.setHint(R.string.account_settings_example_jabber_id, binding.jid);
String account = getArguments().getString(ACCOUNT_KEY);
if (getArguments().getBoolean(MULTIPLE_ACCOUNTS)) {
- yourAccount.setVisibility(View.VISIBLE);
- spinner.setVisibility(View.VISIBLE);
+ binding.yourAccount.setVisibility(View.VISIBLE);
+ binding.account.setVisibility(View.VISIBLE);
} else {
- yourAccount.setVisibility(View.GONE);
- spinner.setVisibility(View.GONE);
+ binding.yourAccount.setVisibility(View.GONE);
+ binding.account.setVisibility(View.GONE);
}
if (account == null) {
- StartConversationActivity.populateAccountSpinner(getActivity(), getArguments().getStringArrayList(ACCOUNTS_LIST_KEY), spinner);
+ StartConversationActivity.populateAccountSpinner(getActivity(), getArguments().getStringArrayList(ACCOUNTS_LIST_KEY), binding.account);
} else {
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(),
R.layout.simple_list_item,
new String[]{account});
- spinner.setEnabled(false);
+ binding.account.setEnabled(false);
adapter.setDropDownViewResource(R.layout.simple_list_item);
- spinner.setAdapter(adapter);
+ binding.account.setAdapter(adapter);
}
- builder.setView(dialogView);
+ builder.setView(binding.getRoot());
builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(getArguments().getString(POSITIVE_BUTTON_KEY), null);
AlertDialog dialog = builder.create();
View.OnClickListener dialogOnClick = v -> {
final Jid accountJid;
- if (!spinner.isEnabled() && account == null) {
+ if (!binding.account.isEnabled() && account == null) {
return;
}
try {
if (Config.DOMAIN_LOCK != null) {
- accountJid = Jid.of((String) spinner.getSelectedItem(), Config.DOMAIN_LOCK, null);
+ accountJid = Jid.of((String) binding.account.getSelectedItem(), Config.DOMAIN_LOCK, null);
} else {
- accountJid = Jid.of((String) spinner.getSelectedItem());
+ accountJid = Jid.of((String) binding.account.getSelectedItem());
}
- } catch (final IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
return;
}
final Jid contactJid;
try {
- contactJid = Jid.of(jid.getText().toString());
- } catch (final IllegalArgumentException e) {
- jid.setError(getActivity().getString(R.string.invalid_jid));
+ contactJid = Jid.of(binding.jid.getText().toString());
+ } catch (final IllegalArgumentException e) {
+ binding.jid.setError(getActivity().getString(R.string.invalid_jid));
return;
}
- if(mListener != null) {
+ if (mListener != null) {
try {
- if(mListener.onEnterJidDialogPositive(accountJid, contactJid)) {
+ if (mListener.onEnterJidDialogPositive(accountJid, contactJid)) {
dialog.dismiss();
}
- } catch(JidError error) {
- jid.setError(error.toString());
+ } catch (JidError error) {
+ binding.jid.setError(error.toString());
}
}
};
@@ -148,6 +144,15 @@ public class EnterJidDialog extends DialogFragment {
this.mListener = listener;
}
+ @Override
+ public void onDestroyView() {
+ Dialog dialog = getDialog();
+ if (dialog != null && getRetainInstance()) {
+ dialog.setDismissMessage(null);
+ }
+ super.onDestroyView();
+ }
+
public interface OnEnterJidDialogPositiveListener {
boolean onEnterJidDialogPositive(Jid account, Jid contact) throws EnterJidDialog.JidError;
}
@@ -163,13 +168,4 @@ public class EnterJidDialog extends DialogFragment {
return msg;
}
}
-
- @Override
- public void onDestroyView() {
- Dialog dialog = getDialog();
- if (dialog != null && getRetainInstance()) {
- dialog.setDismissMessage(null);
- }
- super.onDestroyView();
- }
}