diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-01-22 11:14:56 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2016-01-22 11:14:56 +0100 |
commit | 77c0fb0b2ae257b7bf257417ed689f2334507f2c (patch) | |
tree | 4e5575aecac5036c4734c349d9378409c5f31bc3 | |
parent | 3ff40a973377aca99ab8978f5517f92a123112cd (diff) |
changed spacing in create dialogs and notify user when no accounts are activated
Diffstat (limited to '')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java | 23 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java | 26 | ||||
-rw-r--r-- | src/main/res/layout/enter_jid_dialog.xml | 5 | ||||
-rw-r--r-- | src/main/res/layout/join_conference_dialog.xml | 11 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 1 |
5 files changed, 43 insertions, 23 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java b/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java index a9bffb55..bb55420d 100644 --- a/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java +++ b/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java @@ -19,8 +19,8 @@ import eu.siacs.conversations.xmpp.jid.InvalidJidException; import eu.siacs.conversations.xmpp.jid.Jid; public class EnterJidDialog { - public static interface OnEnterJidDialogPositiveListener { - public boolean onEnterJidDialogPositive(Jid account, Jid contact) throws EnterJidDialog.JidError; + public interface OnEnterJidDialogPositiveListener { + boolean onEnterJidDialogPositive(Jid account, Jid contact) throws EnterJidDialog.JidError; } public static class JidError extends Exception { @@ -40,7 +40,7 @@ public class EnterJidDialog { protected OnEnterJidDialogPositiveListener listener = null; public EnterJidDialog( - final Context context, List<String> knownHosts, List<String> activatedAccounts, + final Context context, List<String> knownHosts, final List<String> activatedAccounts, final String title, final String positiveButton, final String prefilledJid, final String account, boolean allowEditJid ) { @@ -60,17 +60,17 @@ public class EnterJidDialog { } } - ArrayAdapter<String> adapter; + if (account == null) { - adapter = new ArrayAdapter<>(context, - android.R.layout.simple_spinner_item, activatedAccounts); + StartConversationActivity.populateAccountSpinner(context, activatedAccounts, spinner); } else { - adapter = new ArrayAdapter<>(context, - android.R.layout.simple_spinner_item, new String[] { account }); + ArrayAdapter<String> adapter = new ArrayAdapter<>(context, + android.R.layout.simple_spinner_item, + new String[] { account }); spinner.setEnabled(false); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(adapter); } - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinner.setAdapter(adapter); builder.setView(dialogView); builder.setNegativeButton(R.string.cancel, null); @@ -81,6 +81,9 @@ public class EnterJidDialog { @Override public void onClick(final View v) { final Jid accountJid; + if (!spinner.isEnabled() && account == null) { + return; + } try { if (Config.DOMAIN_LOCK != null) { accountJid = Jid.fromParts((String) spinner.getSelectedItem(), Config.DOMAIN_LOCK, null); diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 0bf4178f..00a501f3 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -393,7 +393,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU if (prefilledJid != null) { jid.append(prefilledJid); } - populateAccountSpinner(spinner); + populateAccountSpinner(this, mActivatedAccounts, spinner); final Checkable bookmarkCheckBox = (CheckBox) dialogView .findViewById(R.id.bookmark); builder.setView(dialogView); @@ -411,7 +411,6 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU } final Account account = getSelectedAccount(spinner); if (account == null) { - dialog.dismiss(); return; } final Jid conferenceJid; @@ -459,6 +458,9 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU } private Account getSelectedAccount(Spinner spinner) { + if (!spinner.isEnabled()) { + return null; + } Jid jid; try { if (Config.DOMAIN_LOCK != null) { @@ -479,11 +481,21 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU switchToConversation(conversation); } - private void populateAccountSpinner(Spinner spinner) { - ArrayAdapter<String> adapter = new ArrayAdapter<>(this, - android.R.layout.simple_spinner_item, mActivatedAccounts); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinner.setAdapter(adapter); + public static void populateAccountSpinner(Context context, List<String> accounts, Spinner spinner) { + if (accounts.size() > 0) { + ArrayAdapter<String> adapter = new ArrayAdapter<>(context, + android.R.layout.simple_spinner_item, accounts); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(adapter); + spinner.setEnabled(true); + } else { + ArrayAdapter<String> adapter = new ArrayAdapter<>(context, + android.R.layout.simple_spinner_item, + Arrays.asList(new String[]{context.getString(R.string.no_accounts)})); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(adapter); + spinner.setEnabled(false); + } } @Override diff --git a/src/main/res/layout/enter_jid_dialog.xml b/src/main/res/layout/enter_jid_dialog.xml index 1e715ce4..d4af0dfc 100644 --- a/src/main/res/layout/enter_jid_dialog.xml +++ b/src/main/res/layout/enter_jid_dialog.xml @@ -25,7 +25,7 @@ android:id="@+id/jabber_id" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="16dp" + android:layout_marginTop="8dp" android:text="@string/account_settings_jabber_id" android:textColor="@color/black87" android:textSize="?attr/TextSizeBody"/> @@ -37,6 +37,7 @@ android:hint="@string/account_settings_example_jabber_id" android:inputType="textEmailAddress" android:textColor="@color/black87" - android:textColorHint="@color/black54"/> + android:textColorHint="@color/black54" + android:textSize="?attr/TextSizeBody" /> </LinearLayout>
\ No newline at end of file diff --git a/src/main/res/layout/join_conference_dialog.xml b/src/main/res/layout/join_conference_dialog.xml index 4be88872..f7aa3c46 100644 --- a/src/main/res/layout/join_conference_dialog.xml +++ b/src/main/res/layout/join_conference_dialog.xml @@ -25,7 +25,7 @@ android:id="@+id/jabber_id" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="16dp" + android:layout_marginTop="8dp" android:text="@string/conference_address" android:textColor="@color/black87" android:textSize="?attr/TextSizeBody" /> @@ -37,14 +37,17 @@ android:hint="@string/conference_address_example" android:inputType="textEmailAddress" android:textColor="@color/black87" - android:textColorHint="@color/black54" /> + android:textColorHint="@color/black54" + android:textSize="?attr/TextSizeBody"/> <CheckBox android:id="@+id/bookmark" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="16dp" + android:layout_marginTop="8dp" android:checked="true" - android:text="@string/save_as_bookmark" /> + android:text="@string/save_as_bookmark" + android:textColor="@color/black87" + android:textSize="?attr/TextSizeBody"/> </LinearLayout>
\ No newline at end of file diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 69e0eff7..a354435d 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -580,4 +580,5 @@ <string name="battery_optimizations_enabled_dialog">Your device is doing some heavy battery optimizations on Conversations that might lead to delayed notifications or even message loss.\n\nYou will now be asked to disable those.</string> <string name="disable">Disable</string> <string name="selection_too_large">The selected area is too large</string> + <string name="no_accounts">(No activated accounts)</string> </resources> |