Skip to content
This repository was archived by the owner on Aug 19, 2021. It is now read-only.

Commit 11f405c

Browse files
author
Michael Farb
committed
fixes from tests: storing introductions in db
- minor fixes for removing queued and draft introductions - remove expired notice when download has been completed
1 parent e5961d5 commit 11f405c

3 files changed

Lines changed: 33 additions & 18 deletions

File tree

safeslinger-messenger/src/edu/cmu/cylab/starslinger/SafeSlinger.java

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -687,26 +687,35 @@ private class CleanupFailedMessagesTask extends AsyncTask<String, String, String
687687
@Override
688688
protected String doInBackground(String... arg0) {
689689
MessageDbAdapter dbMessage = MessageDbAdapter.openInstance(getApplicationContext());
690-
Cursor c = dbMessage.fetchAllMessagesQueued();
690+
Cursor c = dbMessage.fetchAllMessagesQueuedDraft();
691691
if (c != null) {
692692
while (c.moveToNext()) {
693-
try {
694-
MessageData sendMsg = new MessageRow(c, true);
695-
696-
// we can remove failed introductions, it is better if
697-
// the user starts over
698-
String[] types = sendMsg.getFileType().split("/");
699-
if (types.length == 2) {
700-
if (types[1]
701-
.compareToIgnoreCase(SafeSlingerConfig.MIMETYPE_FUNC_SECINTRO) == 0) {
693+
MessageData failMsg = new MessageRow(c, false);
694+
if (!failMsg.isInbox()) {
695+
696+
if (failMsg.getStatus() == MessageDbAdapter.MESSAGE_STATUS_QUEUED) {
697+
// queued messages should be converted back to
698+
// draft
699+
if (!dbMessage.updateDraftMessage(failMsg.getRowId(), null, failMsg)) {
700+
showNote(R.string.error_UnableToUpdateMessageInDB);
701+
}
702+
}
702703

703-
// queued draft should be removed
704-
dbMessage.deleteMessage(sendMsg.getRowId());
704+
if (!TextUtils.isEmpty(failMsg.getFileType())) {
705+
// we can remove failed introductions, it is
706+
// better if the user starts over
707+
String[] types = failMsg.getFileType().split("/");
708+
if (types.length == 2) {
709+
if (types[1]
710+
.compareToIgnoreCase(SafeSlingerConfig.MIMETYPE_FUNC_SECINTRO) == 0) {
711+
712+
// queued draft should be removed
713+
dbMessage.deleteMessage(failMsg.getRowId());
714+
}
705715
}
706716
}
707-
} catch (OutOfMemoryError e) {
708-
e.printStackTrace();
709717
}
718+
710719
}
711720
c.close();
712721
}

safeslinger-messenger/src/edu/cmu/cylab/starslinger/model/MessageDbAdapter.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -432,15 +432,19 @@ public Cursor fetchAllMessagesUpgradeTo6() {
432432
}
433433
}
434434

435-
public Cursor fetchAllMessagesQueued() {
435+
public Cursor fetchAllMessagesQueuedDraft() {
436436
synchronized (SafeSlinger.sDataLock) {
437-
String where = KEY_STATUS + "=" + MESSAGE_STATUS_QUEUED;
437+
StringBuilder where = new StringBuilder();
438+
where.append(KEY_STATUS + "=" + MESSAGE_STATUS_DRAFT);
439+
where.append(" OR ");
440+
where.append(KEY_STATUS + "=" + MESSAGE_STATUS_QUEUED);
441+
438442
Cursor c = query(true, DATABASE_TABLE, new String[] {
439443
KEY_ROWID, KEY_DATE_RECV, KEY_DATE_SENT, KEY_ENCBODY, KEY_FILEDIR,
440444
KEY_MSGHASH_BLOB, KEY_FILELEN, KEY_FILENAME, KEY_FILETYPE, KEY_KEYIDLONG,
441445
KEY_PERSON, KEY_READ, KEY_SEEN, KEY_STATUS, KEY_TEXT, KEY_TYPE, KEY_KEYID,
442446
KEY_MSGHASH, KEY_RETNOTIFY, KEY_RETPUSHTOKEN, KEY_RETRECEIPT
443-
}, where, null, null, null, null, null);
447+
}, where.toString(), null, null, null, null, null);
444448
if (c != null) {
445449
if (c.moveToFirst()) {
446450
return c;

safeslinger-messenger/src/edu/cmu/cylab/starslinger/view/MessagesAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,9 @@ private void drawMessageItem(View convertView, MessageRow msg) {
177177
StringBuilder fileInfo = new StringBuilder();
178178
if (!TextUtils.isEmpty(msg.getFileName()) || msg.getFileSize() > 0) {
179179
fileInfo.append(msg.getFileName());
180-
if (msg.isInbox() && TextUtils.isEmpty(msg.getFileDir())) {
180+
if (msg.isInbox() && TextUtils.isEmpty(msg.getFileDir())
181+
&& msg.getStatus() != MessageDbAdapter.MESSAGE_STATUS_FILE_DECRYPTED) {
182+
// time to expire/expired only needed before download
181183
fileInfo.append(timeLeft);
182184
}
183185
}

0 commit comments

Comments
 (0)