optimize code abit
This commit is contained in:
parent
b6c20d9260
commit
2ce95b19a9
|
@ -576,22 +576,11 @@ public class StartConversationActivity extends XmppActivity {
|
||||||
if (intent == null || intent.getAction() == null) {
|
if (intent == null || intent.getAction() == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Invite invite = null;
|
|
||||||
switch (intent.getAction()) {
|
switch (intent.getAction()) {
|
||||||
case Intent.ACTION_SENDTO:
|
case Intent.ACTION_SENDTO:
|
||||||
try {
|
|
||||||
// TODO use Intent.parse ?!?
|
|
||||||
// sample: imto://xmpp/jid@foo.com
|
|
||||||
String jid = URLDecoder.decode(
|
|
||||||
intent.getData().getEncodedPath(), "UTF-8").split(
|
|
||||||
"/")[1];
|
|
||||||
return handleJid(jid);
|
|
||||||
} catch (UnsupportedEncodingException e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
case Intent.ACTION_VIEW:
|
case Intent.ACTION_VIEW:
|
||||||
invite = new Invite(intent.getData());
|
Log.d(Config.LOGTAG, "received uri=" + intent.getData());
|
||||||
return invite.invite();
|
return new Invite(intent.getData()).invite();
|
||||||
case NfcAdapter.ACTION_NDEF_DISCOVERED:
|
case NfcAdapter.ACTION_NDEF_DISCOVERED:
|
||||||
for (Parcelable message : getIntent().getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)) {
|
for (Parcelable message : getIntent().getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)) {
|
||||||
if (message instanceof NdefMessage) {
|
if (message instanceof NdefMessage) {
|
||||||
|
@ -601,26 +590,21 @@ public class StartConversationActivity extends XmppActivity {
|
||||||
case NdefRecord.TNF_WELL_KNOWN:
|
case NdefRecord.TNF_WELL_KNOWN:
|
||||||
if (Arrays.equals(record.getType(), NdefRecord.RTD_URI)) {
|
if (Arrays.equals(record.getType(), NdefRecord.RTD_URI)) {
|
||||||
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
invite = new Invite(record.toUri());
|
return new Invite(record.toUri()).invite();
|
||||||
} else {
|
} else {
|
||||||
byte[] mPayload = record.getPayload();
|
byte[] payload = record.getPayload();
|
||||||
if (mPayload[0] == 0) {
|
if (payload[0] == 0) {
|
||||||
invite = new Invite(Uri.parse(new String(Arrays.copyOfRange(
|
return new Invite(Uri.parse(new String(Arrays.copyOfRange(
|
||||||
mPayload, 1, mPayload.length))));
|
payload, 1, payload.length)))).invite();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (invite != null) {
|
|
||||||
return invite.invite();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean handleJid(String jid) {
|
private boolean handleJid(String jid) {
|
||||||
|
@ -776,11 +760,21 @@ public class StartConversationActivity extends XmppActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
void parse(Uri uri) {
|
void parse(Uri uri) {
|
||||||
muc = uri.getQuery() != null && uri.getQuery().equalsIgnoreCase("join");
|
String scheme = uri.getScheme();
|
||||||
if (uri.getAuthority() != null) {
|
if ("xmpp".equals(scheme)) {
|
||||||
jid = uri.getAuthority();
|
// sample: xmpp:jid@foo.com
|
||||||
} else {
|
muc = "join".equalsIgnoreCase(uri.getQuery());
|
||||||
jid = uri.getSchemeSpecificPart().split("\\?")[0];
|
if (uri.getAuthority() != null) {
|
||||||
|
jid = uri.getAuthority();
|
||||||
|
} else {
|
||||||
|
jid = uri.getSchemeSpecificPart().split("\\?")[0];
|
||||||
|
}
|
||||||
|
} else if ("imto".equals(scheme)) {
|
||||||
|
// sample: imto://xmpp/jid@foo.com
|
||||||
|
try {
|
||||||
|
jid = URLDecoder.decode(uri.getEncodedPath(), "UTF-8").split("/")[1];
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue