diff options
author | Christian S <christian@pix-art.de> | 2016-03-05 10:42:44 +0100 |
---|---|---|
committer | Christian S <christian@pix-art.de> | 2016-03-05 10:42:44 +0100 |
commit | 7412b0634fb62d9cf045c9e6d70c25cffaae57d0 (patch) | |
tree | facedfe6508757ee0cce561f1eea140bab3567dc /src/main/java/eu/siacs/conversations/entities | |
parent | 251c27328b7812f6f01a4c8f7215fdd51af84b7e (diff) | |
parent | 8339ebf3dc0c0f27e6fc1bfdc1af574ec6cd82c9 (diff) |
Merge branch 'siacs/master' into development
Diffstat (limited to 'src/main/java/eu/siacs/conversations/entities')
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/Message.java | 24 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/Transferable.java | 107 |
2 files changed, 72 insertions, 59 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Message.java b/src/main/java/eu/siacs/conversations/entities/Message.java index 3dfbd787c..be9d3d924 100644 --- a/src/main/java/eu/siacs/conversations/entities/Message.java +++ b/src/main/java/eu/siacs/conversations/entities/Message.java @@ -52,6 +52,7 @@ public class Message extends AbstractEntity { public static final String STATUS = "status"; public static final String TYPE = "type"; public static final String CARBON = "carbon"; + public static final String OOB = "oob"; public static final String EDITED = "edited"; public static final String REMOTE_MSG_ID = "remoteMsgId"; public static final String SERVER_MSG_ID = "serverMsgId"; @@ -72,6 +73,7 @@ public class Message extends AbstractEntity { protected int status; protected int type; protected boolean carbon = false; + protected boolean oob = false; protected String edited = null; protected String relativeFilePath; protected boolean read = true; @@ -107,7 +109,8 @@ public class Message extends AbstractEntity { null, null, true, - null); + null, + false); this.conversation = conversation; } @@ -116,7 +119,7 @@ public class Message extends AbstractEntity { final int encryption, final int status, final int type, final boolean carbon, final String remoteMsgId, final String relativeFilePath, final String serverMsgId, final String fingerprint, final boolean read, - final String edited) { + final String edited, final boolean oob) { this.uuid = uuid; this.conversationUuid = conversationUUid; this.counterpart = counterpart; @@ -133,6 +136,7 @@ public class Message extends AbstractEntity { this.axolotlFingerprint = fingerprint; this.read = read; this.edited = edited; + this.oob = oob; } public static Message fromCursor(Cursor cursor) { @@ -173,7 +177,8 @@ public class Message extends AbstractEntity { cursor.getString(cursor.getColumnIndex(SERVER_MSG_ID)), cursor.getString(cursor.getColumnIndex(FINGERPRINT)), cursor.getInt(cursor.getColumnIndex(READ)) > 0, - cursor.getString(cursor.getColumnIndex(EDITED))); + cursor.getString(cursor.getColumnIndex(EDITED)), + cursor.getInt(cursor.getColumnIndex(OOB)) > 0); } public static Message createStatusMessage(Conversation conversation, String body) { @@ -219,6 +224,7 @@ public class Message extends AbstractEntity { values.put(FINGERPRINT, axolotlFingerprint); values.put(READ,read ? 1 : 0); values.put(EDITED, edited); + values.put(OOB, oob ? 1 : 0); return values; } @@ -554,6 +560,10 @@ public class Message extends AbstractEntity { return edited; } + public void setOob(boolean isOob) { + this.oob = isOob; + } + public enum Decision { MUST, SHOULD, @@ -576,7 +586,7 @@ public class Message extends AbstractEntity { if (dotPosition != -1) { String extension = filename.substring(dotPosition + 1); // we want the real file extension, not the crypto one - if (Arrays.asList(Transferable.VALID_CRYPTO_EXTENSIONS).contains(extension)) { + if (Transferable.VALID_CRYPTO_EXTENSIONS.contains(extension)) { return extractRelevantExtension(filename.substring(0,dotPosition)); } else { return extension; @@ -610,6 +620,8 @@ public class Message extends AbstractEntity { URL url = new URL(body); if (!url.getProtocol().equalsIgnoreCase("http") && !url.getProtocol().equalsIgnoreCase("https")) { return Decision.NEVER; + } else if (oob) { + return Decision.MUST; } String extension = extractRelevantExtension(url); if (extension == null) { @@ -624,8 +636,8 @@ public class Message extends AbstractEntity { } else { return Decision.NEVER; } - } else if (Arrays.asList(Transferable.VALID_IMAGE_EXTENSIONS).contains(extension) - || Arrays.asList(Transferable.WELL_KNOWN_EXTENSIONS).contains(extension)) { + } else if (Transferable.VALID_IMAGE_EXTENSIONS.contains(extension) + || Transferable.WELL_KNOWN_EXTENSIONS.contains(extension)) { return Decision.SHOULD; } else { return Decision.NEVER; diff --git a/src/main/java/eu/siacs/conversations/entities/Transferable.java b/src/main/java/eu/siacs/conversations/entities/Transferable.java index 859cda658..383db7b6a 100644 --- a/src/main/java/eu/siacs/conversations/entities/Transferable.java +++ b/src/main/java/eu/siacs/conversations/entities/Transferable.java @@ -1,59 +1,60 @@ package eu.siacs.conversations.entities; -public interface Transferable { - - String[] VALID_IMAGE_EXTENSIONS = { - "webp", - "jpeg", - "jpg", - "png", - "jpe", - "gif", - "tif" - }; - String[] VALID_CRYPTO_EXTENSIONS = { - "pgp", - "gpg", - "otr" - }; - String[] WELL_KNOWN_EXTENSIONS = { - //documents - "pdf", - "doc", - "docx", - "txt", - //audio - "m4a", - "m4b", - "mp3", - "mp2", - "wav", - "aac", - "aif", - "aiff", - "aifc", - "mid", - "midi", - "3gpp", - //video - "avi", - "mp4", - "mpeg", - "mpg", - "mpe", - "mov", - "3gp", - //applications - "apk", - //contact - "vcf", - //calendar - "ics", - //compressed - "zip", - "rar", +import java.util.Arrays; +import java.util.List; - }; +public interface Transferable { + List<String> VALID_IMAGE_EXTENSIONS = Arrays.asList( + "webp", + "jpeg", + "jpg", + "png", + "jpe", + "gif", + "tif" + ); + List<String> VALID_CRYPTO_EXTENSIONS = Arrays.asList( + "pgp", + "gpg", + "otr" + ); + List<String> WELL_KNOWN_EXTENSIONS = Arrays.asList( + //documents + "pdf", + "doc", + "docx", + "txt", + //audio + "m4a", + "m4b", + "mp3", + "mp2", + "wav", + "aac", + "aif", + "aiff", + "aifc", + "mid", + "midi", + "3gpp", + //video + "avi", + "mp4", + "mpeg", + "mpg", + "mpe", + "mov", + "3gp", + //applications + "apk", + //contact + "vcf", + //calendar + "ics", + //compressed + "zip", + "rar", + ); int STATUS_UNKNOWN = 0x200; int STATUS_CHECKING = 0x201; |