changed spacing in create dialogs and notify user when no accounts are activated
This commit is contained in:
		
							parent
							
								
									3ff40a9733
								
							
						
					
					
						commit
						77c0fb0b2a
					
				|  | @ -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); | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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> | ||||
|  | @ -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> | ||||
|  | @ -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> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch