diff --git a/smack-android/build.gradle b/smack-android/build.gradle index 97fd7c120..46d83633d 100644 --- a/smack-android/build.gradle +++ b/smack-android/build.gradle @@ -24,5 +24,5 @@ dependencies { } // Add the Android jar to the Eclipse .classpath. - compile files(androidBootClasspath) + compileOnly files(androidBootClasspath) } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/AbstractError.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/AbstractError.java index 3b5fe6b0e..4c4fe93d1 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/AbstractError.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/AbstractError.java @@ -66,15 +66,23 @@ public class AbstractError { * @return the descriptive text or null. */ public String getDescriptiveText() { - String defaultLocale = Locale.getDefault().getLanguage(); - String descriptiveText = getDescriptiveText(defaultLocale); - if (descriptiveText == null) { - descriptiveText = getDescriptiveText("en"); - if (descriptiveText == null) { - descriptiveText = getDescriptiveText(""); - } + if (descriptiveTexts.isEmpty()) + return null; + // attempt to obtain the text in the user's locale, the English text, or the "" default + Locale l = Locale.getDefault(); + String[] tags = new String[] { + l.getLanguage() + "-" + l.getCountry() + "-" + l.getVariant(), + l.getLanguage() + "-" + l.getCountry(), + l.getLanguage(), + "en", + "" + }; + for (String tag : tags) { + String descriptiveText = getDescriptiveText(tag); + if (descriptiveText != null) + return descriptiveText; } - return descriptiveText; + return descriptiveTexts.values().iterator().next(); } /** diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdManager.java index b43cc6078..fbe507e4e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdManager.java @@ -51,6 +51,8 @@ public final class StableUniqueStanzaIdManager extends Manager { private static final Map INSTANCES = new WeakHashMap<>(); + private static boolean enabledByDefault = true; + // Filter for outgoing stanzas. private static final StanzaFilter OUTGOING_FILTER = new AndFilter( MessageTypeFilter.NORMAL_OR_CHAT_OR_HEADLINE, @@ -72,7 +74,9 @@ public final class StableUniqueStanzaIdManager extends Manager { XMPPConnectionRegistry.addConnectionCreationListener(new ConnectionCreationListener() { @Override public void connectionCreated(XMPPConnection connection) { - getInstanceFor(connection); + if (enabledByDefault) { + getInstanceFor(connection).enable(); + } } }); } @@ -83,7 +87,10 @@ public final class StableUniqueStanzaIdManager extends Manager { */ private StableUniqueStanzaIdManager(XMPPConnection connection) { super(connection); - enable(); + } + + public static void setEnabledByDefault(boolean enabled) { + enabledByDefault = enabled; } /**