Update more files to use JID objects

Sam Whited created

Change summary

src/main/java/eu/siacs/conversations/entities/Account.java               |  4 
src/main/java/eu/siacs/conversations/services/AvatarService.java         |  2 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 12 
src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java       |  6 
src/main/java/eu/siacs/conversations/ui/ConversationActivity.java        |  3 
src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java       |  4 
src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java           | 23 
src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java   | 48 
src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java      |  2 
src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java |  2 
src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java     |  2 
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java      | 19 
src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java          | 23 
src/main/java/eu/siacs/conversations/utils/UIHelper.java                 |  6 
14 files changed, 102 insertions(+), 54 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Account.java 🔗

@@ -336,9 +336,9 @@ public class Account extends AbstractEntity {
 		return this.bookmarks;
 	}
 
-	public boolean hasBookmarkFor(String conferenceJid) {
+	public boolean hasBookmarkFor(final Jid conferenceJid) {
 		for (Bookmark bmark : this.bookmarks) {
-			if (bmark.getJid().equals(conferenceJid)) {
+			if (bmark.getJid().equals(conferenceJid.toBareJid())) {
 				return true;
 			}
 		}

src/main/java/eu/siacs/conversations/services/AvatarService.java 🔗

@@ -173,7 +173,7 @@ public class AvatarService {
 		avatar = mXmppConnectionService.getFileBackend().getAvatar(
 				account.getAvatar(), size);
 		if (avatar == null) {
-			avatar = get(account.getJid(), size);
+			avatar = get(account.getJid().toString(), size);
 		}
 		mXmppConnectionService.getBitmapCache().put(KEY, avatar);
 		return avatar;

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -566,7 +566,7 @@ public class XmppConnectionService extends Service {
 					if (message.getEncryption() == Message.ENCRYPTION_OTR) {
 						if (!conv.hasValidOtrSession()
 								&& (message.getPresence() != null)) {
-							conv.startOtrSession(this, message.getPresence(),
+							conv.startOtrSession(this, message.getPresence().toString(),
 									true);
 							message.setStatus(Message.STATUS_WAITING);
 						} else if (conv.hasValidOtrSession()
@@ -587,7 +587,7 @@ public class XmppConnectionService extends Service {
 				if (message.getEncryption() == Message.ENCRYPTION_OTR) {
 					if (!conv.hasValidOtrSession()
 							&& (message.getPresence() != null)) {
-						conv.startOtrSession(this, message.getPresence(), true);
+						conv.startOtrSession(this, message.getPresence().toString(), true);
 						message.setStatus(Message.STATUS_WAITING);
 					} else if (conv.hasValidOtrSession()
 							&& conv.getOtrSession().getSessionStatus() == SessionStatus.ENCRYPTED) {
@@ -634,7 +634,7 @@ public class XmppConnectionService extends Service {
 								.getUserID());
 					} else if (!conv.hasValidOtrSession()
 							&& message.getPresence() != null) {
-						conv.startOtrSession(this, message.getPresence(), false);
+						conv.startOtrSession(this, message.getPresence().toString(), false);
 					}
 				}
 			}
@@ -670,9 +670,9 @@ public class XmppConnectionService extends Service {
 					.getPresences();
 			if (!message.getConversation().hasValidOtrSession()) {
 				if ((message.getPresence() != null)
-						&& (presences.has(message.getPresence()))) {
+						&& (presences.has(message.getPresence().toString()))) {
 					message.getConversation().startOtrSession(this,
-							message.getPresence(), true);
+							message.getPresence().toString(), true);
 				} else {
 					if (presences.size() == 1) {
 						String presence = presences.asStringArray()[0];
@@ -702,7 +702,7 @@ public class XmppConnectionService extends Service {
 			Presences presences = message.getConversation().getContact()
 					.getPresences();
 			if ((message.getPresence() != null)
-					&& (presences.has(message.getPresence()))) {
+					&& (presences.has(message.getPresence().toString()))) {
 				markMessage(message, Message.STATUS_OFFERED);
 				mJingleConnectionManager.createNewConnection(message);
 			} else {

src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java 🔗

@@ -25,7 +25,7 @@ import eu.siacs.conversations.ui.adapter.ListItemAdapter;
 public class ChooseContactActivity extends XmppActivity {
 
 	private ListView mListView;
-	private ArrayList<ListItem> contacts = new ArrayList<ListItem>();
+	private ArrayList<ListItem> contacts = new ArrayList<>();
 	private ArrayAdapter<ListItem> mContactsAdapter;
 
 	private EditText mSearchEditText;
@@ -96,10 +96,10 @@ public class ChooseContactActivity extends XmppActivity {
 				Intent request = getIntent();
 				Intent data = new Intent();
 				ListItem mListItem = contacts.get(position);
-				data.putExtra("contact", mListItem.getJid());
+				data.putExtra("contact", mListItem.getJid().toString());
 				String account = request.getStringExtra("account");
 				if (account == null && mListItem instanceof Contact) {
-					account = ((Contact) mListItem).getAccount().getJid();
+					account = ((Contact) mListItem).getAccount().getJid().toString();
 				}
 				data.putExtra("account", account);
 				data.putExtra("conversation",

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java 🔗

@@ -228,8 +228,7 @@ public class ConversationActivity extends XmppActivity implements
 					.useSubjectToIdentifyConference()) {
 				ab.setTitle(getSelectedConversation().getName());
 			} else {
-				ab.setTitle(getSelectedConversation().getContactJid()
-						.split("/")[0]);
+				ab.setTitle(getSelectedConversation().getContactJid().toBareJid().toString());
 			}
 		}
 		invalidateOptionsMenu();

src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java 🔗

@@ -81,7 +81,7 @@ public class ManageAccountActivity extends XmppActivity {
 		} else {
 			menu.findItem(R.id.mgmt_account_enable).setVisible(false);
 		}
-		menu.setHeaderTitle(this.selectedAccount.getJid());
+		menu.setHeaderTitle(this.selectedAccount.getJid().toString());
 	}
 
 	@Override
@@ -166,7 +166,7 @@ public class ManageAccountActivity extends XmppActivity {
 	private void publishAvatar(Account account) {
 		Intent intent = new Intent(getApplicationContext(),
 				PublishProfilePictureActivity.class);
-		intent.putExtra("account", account.getJid());
+		intent.putExtra("account", account.getJid().toString());
 		startActivity(intent);
 	}
 

src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java 🔗

@@ -9,6 +9,9 @@ import eu.siacs.conversations.entities.Account;
 import eu.siacs.conversations.entities.Conversation;
 import eu.siacs.conversations.entities.Message;
 import eu.siacs.conversations.ui.adapter.ConversationAdapter;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+
 import android.app.PendingIntent;
 import android.content.Intent;
 import android.net.Uri;
@@ -150,13 +153,23 @@ public class ShareWithActivity extends XmppActivity {
 	}
 
 	private void share() {
-		Account account = xmppConnectionService.findAccountByJid(share.account);
-		if (account == null) {
+        Account account;
+        try {
+            account = xmppConnectionService.findAccountByJid(Jid.fromString(share.account));
+        } catch (final InvalidJidException e) {
+            account = null;
+        }
+        if (account == null) {
 			return;
 		}
-		Conversation conversation = xmppConnectionService
-				.findOrCreateConversation(account, share.contact, false);
-		share(conversation);
+        final Conversation conversation;
+        try {
+            conversation = xmppConnectionService
+                    .findOrCreateConversation(account, Jid.fromString(share.contact), false);
+        } catch (final InvalidJidException e) {
+            return;
+        }
+        share(conversation);
 	}
 
 	private void share(final Conversation conversation) {

src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java 🔗

@@ -63,6 +63,8 @@ import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate;
 import eu.siacs.conversations.ui.adapter.KnownHostsAdapter;
 import eu.siacs.conversations.ui.adapter.ListItemAdapter;
 import eu.siacs.conversations.utils.Validator;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
 
 public class StartConversationActivity extends XmppActivity {
 
@@ -71,7 +73,7 @@ public class StartConversationActivity extends XmppActivity {
 	private ViewPager mViewPager;
 
 	private MyListFragment mContactsListFragment = new MyListFragment();
-	private List<ListItem> contacts = new ArrayList<ListItem>();
+	private List<ListItem> contacts = new ArrayList<>();
 	private ArrayAdapter<ListItem> mContactsAdapter;
 
 	private MyListFragment mConferenceListFragment = new MyListFragment();
@@ -359,17 +361,26 @@ public class StartConversationActivity extends XmppActivity {
 							return;
 						}
 						if (Validator.isValidJid(jid.getText().toString())) {
-							String accountJid = (String) spinner
-									.getSelectedItem();
-							String contactJid = jid.getText().toString();
-							Account account = xmppConnectionService
+                            final Jid accountJid;
+                            try {
+                                accountJid = Jid.fromString((String) spinner
+                                        .getSelectedItem());
+                            } catch (final InvalidJidException e) {
+                                return;
+                            }
+                            final Jid contactJid;
+                            try {
+                                contactJid = Jid.fromString(jid.getText().toString());
+                            } catch (final InvalidJidException e) {
+                                return;
+                            }
+                            Account account = xmppConnectionService
 									.findAccountByJid(accountJid);
 							if (account == null) {
 								dialog.dismiss();
 								return;
 							}
-							Contact contact = account.getRoster().getContact(
-									contactJid);
+							Contact contact = account.getRoster().getContact(contactJid);
 							if (contact.showInRoster()) {
 								jid.setError(getString(R.string.contact_already_exists));
 							} else {
@@ -416,10 +427,19 @@ public class StartConversationActivity extends XmppActivity {
 							return;
 						}
 						if (Validator.isValidJid(jid.getText().toString())) {
-							String accountJid = (String) spinner
-									.getSelectedItem();
-							String conferenceJid = jid.getText().toString();
-							Account account = xmppConnectionService
+                            final Jid accountJid;
+                            try {
+                                accountJid = Jid.fromString((String) spinner.getSelectedItem());
+                            } catch (final InvalidJidException e) {
+                                return;
+                            }
+                            final Jid conferenceJid;
+                            try {
+                                conferenceJid = Jid.fromString(jid.getText().toString());
+                            } catch (final InvalidJidException e) {
+                                return; // TODO: Do some error handling...
+                            }
+                            Account account = xmppConnectionService
 									.findAccountByJid(accountJid);
 							if (account == null) {
 								dialog.dismiss();
@@ -471,7 +491,7 @@ public class StartConversationActivity extends XmppActivity {
 	}
 
 	private void populateAccountSpinner(Spinner spinner) {
-		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
+		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);
@@ -554,7 +574,7 @@ public class StartConversationActivity extends XmppActivity {
 		this.mActivatedAccounts.clear();
 		for (Account account : xmppConnectionService.getAccounts()) {
 			if (account.getStatus() != Account.STATUS_DISABLED) {
-				this.mActivatedAccounts.add(account.getJid());
+				this.mActivatedAccounts.add(account.getJid().toString());
 			}
 		}
 		this.mKnownHosts = xmppConnectionService.getKnownHosts();
@@ -779,7 +799,7 @@ public class StartConversationActivity extends XmppActivity {
 				// sample: imto://xmpp/jid@foo.com
 				try {
 					jid = URLDecoder.decode(uri.getEncodedPath(), "UTF-8").split("/")[1];
-				} catch (UnsupportedEncodingException e) {
+				} catch (final UnsupportedEncodingException ignored) {
 				}
 			}
 		}

src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java 🔗

@@ -31,7 +31,7 @@ public class AccountAdapter extends ArrayAdapter<Account> {
 			view = inflater.inflate(R.layout.account_row, parent, false);
 		}
 		TextView jid = (TextView) view.findViewById(R.id.account_jid);
-		jid.setText(account.getJid());
+		jid.setText(account.getJid().toString());
 		TextView statusView = (TextView) view.findViewById(R.id.account_status);
 		ImageView imageView = (ImageView) view.findViewById(R.id.account_image);
 		imageView.setImageBitmap(activity.avatarService().get(account,

src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java 🔗

@@ -58,7 +58,7 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> {
 				|| activity.useSubjectToIdentifyConference()) {
 			convName.setText(conversation.getName());
 		} else {
-			convName.setText(conversation.getContactJid().split("/")[0]);
+			convName.setText(conversation.getContactJid().toBareJid().toString());
 		}
 		TextView mLastMessage = (TextView) view
 				.findViewById(R.id.conversation_lastmsg);

src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java 🔗

@@ -34,7 +34,7 @@ public class ListItemAdapter extends ArrayAdapter<ListItem> {
 		TextView jid = (TextView) view.findViewById(R.id.contact_jid);
 		ImageView picture = (ImageView) view.findViewById(R.id.contact_photo);
 
-		jid.setText(item.getJid());
+		jid.setText(item.getJid().toString());
 		name.setText(item.getDisplayName());
 		picture.setImageBitmap(activity.avatarService().get(item,
 				activity.getPixel(48)));

src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java 🔗

@@ -1,5 +1,18 @@
 package eu.siacs.conversations.ui.adapter;
 
+import java.util.List;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Downloadable;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Message.ImageParams;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xmpp.jid.Jid;
+
 import android.content.Intent;
 import android.graphics.Typeface;
 import android.text.Spannable;
@@ -136,9 +149,9 @@ public class MessageAdapter extends ArrayAdapter<Message> {
 					info = contact.getDisplayName();
 				} else {
 					if (message.getPresence() != null) {
-						info = message.getPresence();
+						info = message.getPresence().toString();
 					} else {
-						info = message.getCounterpart();
+						info = message.getCounterpart().toString();
 					}
 				}
 			}
@@ -227,7 +240,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
 					privateMarker = activity
 							.getString(R.string.private_message);
 				} else {
-					String to;
+					final Jid to;
 					if (message.getPresence() != null) {
 						to = message.getPresence();
 					} else {

src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java 🔗

@@ -13,6 +13,9 @@ import eu.siacs.conversations.entities.Account;
 import eu.siacs.conversations.entities.Conversation;
 import eu.siacs.conversations.entities.Message;
 import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -89,10 +92,13 @@ public class ExceptionHelper {
 							Log.d(Config.LOGTAG, "using account="
 									+ finalAccount.getJid()
 									+ " to send in stack trace");
-							Conversation conversation = service
-									.findOrCreateConversation(finalAccount,
-											"bugs@siacs.eu", false);
-							Message message = new Message(conversation, report
+                            Conversation conversation = null;
+                            try {
+                                conversation = service.findOrCreateConversation(finalAccount,
+                                        Jid.fromString("bugs@siacs.eu"), false);
+                            } catch (final InvalidJidException ignored) {
+                            }
+                            Message message = new Message(conversation, report
 									.toString(), Message.ENCRYPTION_NONE);
 							service.sendMessage(message);
 						}
@@ -103,15 +109,12 @@ public class ExceptionHelper {
 						@Override
 						public void onClick(DialogInterface dialog, int which) {
 							preferences.edit().putBoolean("never_send", true)
-									.commit();
+									.apply();
 						}
 					});
 			builder.create().show();
-		} catch (FileNotFoundException e) {
-			return;
-		} catch (IOException e) {
-			return;
-		}
+		} catch (final IOException ignored) {
+        }
 
 	}
 }

src/main/java/eu/siacs/conversations/utils/UIHelper.java 🔗

@@ -110,7 +110,7 @@ public class UIHelper {
 			List<Account> accounts) {
 		NotificationManager mNotificationManager = (NotificationManager) context
 				.getSystemService(Context.NOTIFICATION_SERVICE);
-		List<Account> accountsWproblems = new ArrayList<Account>();
+		List<Account> accountsWproblems = new ArrayList<>();
 		for (Account account : accounts) {
 			if (account.hasErrorStatus()) {
 				accountsWproblems.add(account);
@@ -124,7 +124,7 @@ public class UIHelper {
 		} else if (accountsWproblems.size() == 1) {
 			mBuilder.setContentTitle(context
 					.getString(R.string.problem_connecting_to_account));
-			mBuilder.setContentText(accountsWproblems.get(0).getJid());
+			mBuilder.setContentText(accountsWproblems.get(0).getJid().toString());
 		} else {
 			mBuilder.setContentTitle(context
 					.getString(R.string.problem_connecting_to_accounts));
@@ -165,7 +165,7 @@ public class UIHelper {
 		TextView yourprint = (TextView) view
 				.findViewById(R.id.verify_otr_yourprint);
 
-		jid.setText(contact.getJid());
+		jid.setText(contact.getJid().toString());
 		fingerprint.setText(conversation.getOtrFingerprint());
 		yourprint.setText(account.getOtrFingerprint());
 		builder.setNegativeButton("Cancel", null);