diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index 94c5f9c3..edba9cf3 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -2,6 +2,7 @@ package eu.siacs.conversations.entities; import android.content.ContentValues; import android.database.Cursor; +import android.support.annotation.NonNull; import net.java.otr4j.OtrException; import net.java.otr4j.crypto.OtrCryptoException; @@ -15,7 +16,6 @@ import org.json.JSONObject; import java.security.interfaces.DSAPublicKey; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; @@ -37,7 +37,6 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public static final int STATUS_AVAILABLE = 0; public static final int STATUS_ARCHIVED = 1; - public static final int STATUS_DELETED = 2; public static final int MODE_MULTI = 1; public static final int MODE_SINGLE = 0; @@ -51,13 +50,15 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public static final String MODE = "mode"; public static final String ATTRIBUTES = "attributes"; - public static final String ATTRIBUTE_NEXT_ENCRYPTION = "next_encryption"; - public static final String ATTRIBUTE_MUC_PASSWORD = "muc_password"; public static final String ATTRIBUTE_MUTED_TILL = "muted_till"; public static final String ATTRIBUTE_ALWAYS_NOTIFY = "always_notify"; - public static final String ATTRIBUTE_CRYPTO_TARGETS = "crypto_targets"; public static final String ATTRIBUTE_LAST_CLEAR_HISTORY = "last_clear_history"; + private static final String ATTRIBUTE_CRYPTO_TARGETS = "crypto_targets"; + + private static final String ATTRIBUTE_NEXT_ENCRYPTION = "next_encryption"; + static final String ATTRIBUTE_MUC_PASSWORD = "muc_password"; + private String draftMessage; private String name; private String contactUuid; @@ -347,7 +348,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public List getAcceptedCryptoTargets() { if (mode == MODE_SINGLE) { - return Arrays.asList(getJid().toBareJid()); + return Collections.singletonList(getJid().toBareJid()); } else { return getJidListAttribute(ATTRIBUTE_CRYPTO_TARGETS); } @@ -371,7 +372,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl } @Override - public int compareTo(Conversation another) { + public int compareTo(@NonNull Conversation another) { final Message left = getLatestMessage(); final Message right = another.getLatestMessage(); if (left.getTimeSent() > right.getTimeSent()) { @@ -871,7 +872,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl } } - public List getJidListAttribute(String key) { + private List getJidListAttribute(String key) { ArrayList list = new ArrayList<>(); synchronized (this.attributes) { try { @@ -890,7 +891,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl return list; } - public int getIntAttribute(String key, int defaultValue) { + private int getIntAttribute(String key, int defaultValue) { String value = this.getAttribute(key); if (value == null) { return defaultValue; @@ -916,7 +917,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl } } - public boolean getBooleanAttribute(String key, boolean defaultValue) { + private boolean getBooleanAttribute(String key, boolean defaultValue) { String value = this.getAttribute(key); if (value == null) { return defaultValue; diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java index ca173c36..7d6e7901 100644 --- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java +++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java @@ -1,5 +1,6 @@ package eu.siacs.conversations.parser; +import android.os.Build; import android.text.Html; import android.util.Log; import android.util.Pair; @@ -116,7 +117,11 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } if (clientMightSendHtml(conversation.getAccount(), from)) { Log.d(Config.LOGTAG,conversation.getAccount().getJid().toBareJid()+": received OTR message from bad behaving client. escaping HTML…"); - body = Html.fromHtml(body).toString(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + body = Html.fromHtml(body,Html.FROM_HTML_MODE_LEGACY).toString(); + } else { + body = Html.fromHtml(body).toString(); + } } final OtrService otrService = conversation.getAccount().getOtrService(); diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index a93a1215..2765d332 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -1487,7 +1487,7 @@ public class ConversationActivity extends XmppActivity } private void setNeverAskForBatteryOptimizationsAgain() { - getPreferences().edit().putBoolean("show_battery_optimization", false).commit(); + getPreferences().edit().putBoolean("show_battery_optimization", false).apply(); } private void openBatteryOptimizationDialogIfNeeded() {