aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java23
-rw-r--r--src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java26
-rw-r--r--src/main/res/layout/enter_jid_dialog.xml5
-rw-r--r--src/main/res/layout/join_conference_dialog.xml11
-rw-r--r--src/main/res/values/strings.xml1
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>