added convenience method to extract account from intent

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/XmppActivity.java | 14 ++++++++
1 file changed, 13 insertions(+), 1 deletion(-)

Detailed changes

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

@@ -95,6 +95,8 @@ public abstract class XmppActivity extends Activity {
 	protected static final int REQUEST_CHOOSE_PGP_ID = 0x0103;
 	protected static final int REQUEST_BATTERY_OP = 0x13849ff;
 
+	public static final String ACCOUNT_EXTRA = "account";
+
 	public XmppConnectionService xmppConnectionService;
 	public boolean xmppConnectionServiceBound = false;
 	protected boolean registeredListeners = false;
@@ -977,7 +979,7 @@ public abstract class XmppActivity extends Activity {
 				@Override
 				public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
 					return new NdefMessage(new NdefRecord[]{
-						NdefRecord.createUri(getShareableUri()),
+							NdefRecord.createUri(getShareableUri()),
 							NdefRecord.createApplicationRecord("eu.siacs.conversations")
 					});
 				}
@@ -1058,6 +1060,16 @@ public abstract class XmppActivity extends Activity {
 		}
 	}
 
+	protected Account extractAccount(Intent intent) {
+		String jid = intent != null ? intent.getStringExtra(ACCOUNT_EXTRA) : null;
+		Log.d(Config.LOGTAG,"jid: "+jid);
+		try {
+			return jid != null ? xmppConnectionService.findAccountByJid(Jid.fromString(jid)) : null;
+		} catch (InvalidJidException e) {
+			return null;
+		}
+	}
+
 	public static class ConferenceInvite {
 		private String uuid;
 		private List<Jid> jids = new ArrayList<>();