diff options
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | build.gradle | 4 | ||||
-rw-r--r-- | src/main/AndroidManifest.xml | 9 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/generator/MessageGenerator.java | 4 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java | 3 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/utils/XmppUri.java | 12 |
6 files changed, 27 insertions, 8 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ce194ff60..1e3c8f126 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ###Changelog +####Version 1.12.5 +* bug fixes + ####Version 1.12.4 * new create conference dialog * show first unread message on top diff --git a/build.gradle b/build.gradle index 557c78096..be1b072e3 100644 --- a/build.gradle +++ b/build.gradle @@ -72,8 +72,8 @@ android { defaultConfig { minSdkVersion 14 targetSdkVersion 23 - versionCode 145 - versionName "1.12.4" + versionCode 146 + versionName "1.12.5" archivesBaseName += "-$versionName" applicationId "eu.siacs.conversations" diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index a2acd1d38..ddf4f17fe 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -87,6 +87,15 @@ <data android:scheme="xmpp"/> </intent-filter> + <intent-filter android:autoVerify="true"> + <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.BROWSABLE" /> + <data android:scheme="https" /> + <data android:host="jabber.pix-art.de" /> + <data android:pathPrefix="/i/"/> + </intent-filter> + </activity> <activity android:name=".ui.WelcomeActivity" diff --git a/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java b/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java index 823af397a..09c882932 100644 --- a/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java +++ b/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java @@ -12,6 +12,7 @@ import java.util.TimeZone; import eu.siacs.conversations.crypto.axolotl.AxolotlService; import eu.siacs.conversations.crypto.axolotl.XmppAxolotlMessage; import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; import eu.siacs.conversations.services.XmppConnectionService; @@ -81,7 +82,8 @@ public class MessageGenerator extends AbstractGenerator { } private static boolean recipientSupportsOmemo(Message message) { - return message.getContact().getPresences().allOrNonSupport(AxolotlService.PEP_DEVICE_LIST_NOTIFY); + Contact c = message.getContact(); + return c != null && c.getPresences().allOrNonSupport(AxolotlService.PEP_DEVICE_LIST_NOTIFY); } public static void addMessageHints(MessagePacket packet) { diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 9af83edd8..548682dfb 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -699,7 +699,6 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU if (xmppConnectionServiceBound) { this.mPostponedActivityResult = null; if (requestCode == REQUEST_CREATE_CONFERENCE) { - Log.d(Config.LOGTAG,"account jid: "+ intent.getStringExtra(EXTRA_ACCOUNT)); Account account = extractAccount(intent); final String subject = intent.getStringExtra("subject"); List<Jid> jids = new ArrayList<>(); @@ -719,7 +718,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU //ignored } } - if (account != null && jids.size() > 1) { + if (account != null && jids.size() > 0) { xmppConnectionService.createAdhocConference(account, subject, jids, mAdhocConferenceCallback); mToast = Toast.makeText(this, R.string.creating_conference,Toast.LENGTH_LONG); mToast.show(); diff --git a/src/main/java/eu/siacs/conversations/utils/XmppUri.java b/src/main/java/eu/siacs/conversations/utils/XmppUri.java index 92c0241e1..3c0136abb 100644 --- a/src/main/java/eu/siacs/conversations/utils/XmppUri.java +++ b/src/main/java/eu/siacs/conversations/utils/XmppUri.java @@ -4,6 +4,7 @@ import android.net.Uri; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.util.List; import eu.siacs.conversations.xmpp.jid.InvalidJidException; import eu.siacs.conversations.xmpp.jid.Jid; @@ -32,8 +33,13 @@ public class XmppUri { protected void parse(Uri uri) { String scheme = uri.getScheme(); - if ("xmpp".equalsIgnoreCase(scheme)) { - // sample: xmpp:jid@foo.com + String host = uri.getHost(); + List<String> segments = uri.getPathSegments(); + if ("https".equalsIgnoreCase(scheme) && "conversations.im".equalsIgnoreCase(host) && segments.size() >= 3) { + // sample : https://conversations.im/i/foo/bar.com + jid = segments.get(1)+"@"+segments.get(2); + } else if ("xmpp".equalsIgnoreCase(scheme)) { + // sample: xmpp:foo@bar.com muc = "join".equalsIgnoreCase(uri.getQuery()); if (uri.getAuthority() != null) { jid = uri.getAuthority(); @@ -42,7 +48,7 @@ public class XmppUri { } fingerprint = parseFingerprint(uri.getQuery()); } else if ("imto".equalsIgnoreCase(scheme)) { - // sample: imto://xmpp/jid@foo.com + // sample: imto://xmpp/foo@bar.com try { jid = URLDecoder.decode(uri.getEncodedPath(), "UTF-8").split("/")[1]; } catch (final UnsupportedEncodingException ignored) { |