aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Conversation.java13
-rw-r--r--src/main/java/de/pixart/messenger/entities/IndividualMessage.java7
-rw-r--r--src/main/java/de/pixart/messenger/entities/Message.java22
-rw-r--r--src/main/java/de/pixart/messenger/entities/Transferable.java38
4 files changed, 33 insertions, 47 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Conversation.java b/src/main/java/de/pixart/messenger/entities/Conversation.java
index e64073d61..8c8b22231 100644
--- a/src/main/java/de/pixart/messenger/entities/Conversation.java
+++ b/src/main/java/de/pixart/messenger/entities/Conversation.java
@@ -250,6 +250,19 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
return null;
}
+ public boolean markAsDeleted(final List<String> uuids) {
+ boolean deleted = false;
+ synchronized (this.messages) {
+ for(Message message : this.messages) {
+ if (uuids.contains(message.getUuid())) {
+ message.setDeleted(true);
+ deleted = true;
+ }
+ }
+ }
+ return deleted;
+ }
+
public void clearMessages() {
synchronized (this.messages) {
this.messages.clear();
diff --git a/src/main/java/de/pixart/messenger/entities/IndividualMessage.java b/src/main/java/de/pixart/messenger/entities/IndividualMessage.java
index 2a7b4c8da..195ea82c1 100644
--- a/src/main/java/de/pixart/messenger/entities/IndividualMessage.java
+++ b/src/main/java/de/pixart/messenger/entities/IndividualMessage.java
@@ -41,8 +41,8 @@ public class IndividualMessage extends Message {
super(conversation);
}
- private IndividualMessage(Conversational conversation, String uuid, String conversationUUid, Jid counterpart, Jid trueCounterpart, String body, long timeSent, int encryption, int status, int type, boolean carbon, String remoteMsgId, String relativeFilePath, String serverMsgId, String fingerprint, boolean read, boolean deleted, String edited, boolean oob, String errorMessage, Set<ReadByMarker> readByMarkers, boolean markable) {
- super(conversation, uuid, conversationUUid, counterpart, trueCounterpart, body, timeSent, encryption, status, type, carbon, remoteMsgId, relativeFilePath, serverMsgId, fingerprint, read, deleted, edited, oob, errorMessage, readByMarkers, markable);
+ private IndividualMessage(Conversational conversation, String uuid, String conversationUUid, Jid counterpart, Jid trueCounterpart, String body, long timeSent, int encryption, int status, int type, boolean carbon, String remoteMsgId, String relativeFilePath, String serverMsgId, String fingerprint, boolean read, boolean deleted, String edited, boolean oob, String errorMessage, Set<ReadByMarker> readByMarkers, boolean markable, boolean file_deleted) {
+ super(conversation, uuid, conversationUUid, counterpart, trueCounterpart, body, timeSent, encryption, status, type, carbon, remoteMsgId, relativeFilePath, serverMsgId, fingerprint, read, deleted, edited, oob, errorMessage, readByMarkers, markable, file_deleted);
}
public static Message createDateSeparator(Message message) {
@@ -99,7 +99,8 @@ public class IndividualMessage extends Message {
cursor.getInt(cursor.getColumnIndex(OOB)) > 0,
cursor.getString(cursor.getColumnIndex(ERROR_MESSAGE)),
ReadByMarker.fromJsonString(cursor.getString(cursor.getColumnIndex(READ_BY_MARKERS))),
- cursor.getInt(cursor.getColumnIndex(MARKABLE)) > 0);
+ cursor.getInt(cursor.getColumnIndex(MARKABLE)) > 0,
+ cursor.getInt(cursor.getColumnIndex(FILE_DELETED)) > 0);
}
@Override
diff --git a/src/main/java/de/pixart/messenger/entities/Message.java b/src/main/java/de/pixart/messenger/entities/Message.java
index abeda3ad3..8037a022a 100644
--- a/src/main/java/de/pixart/messenger/entities/Message.java
+++ b/src/main/java/de/pixart/messenger/entities/Message.java
@@ -73,6 +73,7 @@ public class Message extends AbstractEntity {
public static final String ERROR_MESSAGE = "errorMsg";
public static final String READ_BY_MARKERS = "readByMarkers";
public static final String MARKABLE = "markable";
+ public static final String FILE_DELETED = "file_deleted";
public static final String ME_COMMAND = "/me";
public static final String ERROR_MESSAGE_CANCELLED = "eu.siacs.conversations.cancelled";
@@ -86,6 +87,7 @@ public class Message extends AbstractEntity {
protected int encryption;
protected int status;
protected int type;
+ protected boolean file_deleted = false;
protected boolean carbon = false;
protected boolean oob = false;
protected String edited = null;
@@ -139,6 +141,7 @@ public class Message extends AbstractEntity {
false,
null,
null,
+ false,
false);
}
@@ -148,7 +151,7 @@ public class Message extends AbstractEntity {
final String remoteMsgId, final String relativeFilePath,
final String serverMsgId, final String fingerprint, final boolean read, final boolean deleted,
final String edited, final boolean oob, final String errorMessage, final Set<ReadByMarker> readByMarkers,
- final boolean markable) {
+ final boolean markable, final boolean file_deleted) {
this.conversation = conversation;
this.uuid = uuid;
this.conversationUuid = conversationUUid;
@@ -171,6 +174,7 @@ public class Message extends AbstractEntity {
this.errorMessage = errorMessage;
this.readByMarkers = readByMarkers == null ? new HashSet<ReadByMarker>() : readByMarkers;
this.markable = markable;
+ this.file_deleted = file_deleted;
}
public static Message fromCursor(Cursor cursor, Conversation conversation) {
@@ -219,7 +223,8 @@ public class Message extends AbstractEntity {
cursor.getInt(cursor.getColumnIndex(OOB)) > 0,
cursor.getString(cursor.getColumnIndex(ERROR_MESSAGE)),
ReadByMarker.fromJsonString(cursor.getString(cursor.getColumnIndex(READ_BY_MARKERS))),
- cursor.getInt(cursor.getColumnIndex(MARKABLE)) > 0);
+ cursor.getInt(cursor.getColumnIndex(MARKABLE)) > 0,
+ cursor.getInt(cursor.getColumnIndex(FILE_DELETED)) > 0);
}
public static Message createStatusMessage(Conversation conversation, String body) {
@@ -269,6 +274,7 @@ public class Message extends AbstractEntity {
values.put(ERROR_MESSAGE, errorMessage);
values.put(READ_BY_MARKERS, ReadByMarker.toJson(readByMarkers).toString());
values.put(MARKABLE, markable ? 1 : 0);
+ values.put(FILE_DELETED, file_deleted ? 1 : 0);
return values;
}
@@ -390,6 +396,14 @@ public class Message extends AbstractEntity {
return this.deleted;
}
+ public boolean isDeleted() {
+ return this.deleted;
+ }
+
+ public void setDeleted(boolean deleted) {
+ this.deleted = deleted;
+ }
+
public void markRead() {
this.read = true;
}
@@ -840,10 +854,6 @@ public class Message extends AbstractEntity {
return type == TYPE_FILE || type == TYPE_IMAGE;
}
- public boolean isDeleted() {
- return (type == TYPE_FILE || type == TYPE_IMAGE) && getTransferable() != null && getTransferable().getFileSize() == 0;
- }
-
public boolean hasFileOnRemoteHost() {
return isFileOrImage() && getFileParams().url != null;
}
diff --git a/src/main/java/de/pixart/messenger/entities/Transferable.java b/src/main/java/de/pixart/messenger/entities/Transferable.java
index c07ec750d..e1deb744d 100644
--- a/src/main/java/de/pixart/messenger/entities/Transferable.java
+++ b/src/main/java/de/pixart/messenger/entities/Transferable.java
@@ -18,50 +18,12 @@ public interface Transferable {
"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;
int STATUS_FAILED = 0x202;
int STATUS_OFFER = 0x203;
int STATUS_DOWNLOADING = 0x204;
- int STATUS_DELETED = 0x205;
int STATUS_OFFER_CHECK_FILESIZE = 0x206;
int STATUS_UPLOADING = 0x207;