Skip to content

Commit

Permalink
Delete messages from pending list from the background
Browse files Browse the repository at this point in the history
  • Loading branch information
eyedol committed Mar 27, 2015
1 parent a2846da commit 88f9eac
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 24 deletions.
6 changes: 3 additions & 3 deletions changelog.json
Expand Up @@ -13,9 +13,9 @@
},
{
"version": "v2.8.0-alpha.2",
"date": "Mar 23, 2015",
"date": "March 23, 2015",
"features": [
"Add Japanese, German and Indonesian translations"
"Add Japanese German and Indonesian translations"
],
"bugs": [
"Fix inconsistency with message result API codes.",
Expand All @@ -25,7 +25,7 @@
},
{
"version": "v2.8.0-alpha.1",
"date": "Mar 23, 2015",
"date": "March 23, 2015",
"features": [
"Add Android 5.1 support.",
"Enable auto delete of pending of message after a configured number of retry is exceed.",
Expand Down
Expand Up @@ -136,27 +136,37 @@ public void run() {
});
}

public void updateSentFields(final Message message){
if (!isClosed()) {
public void updateSentFields(final Message message, final DatabaseCallback<Void> callback){
asyncRun(new Runnable() {
@Override
public void run() {
if (!isClosed()) {
try {
final String whereClause = "message_uuid = ?";
final String whereArgs[] = {message.getUuid()};
ContentValues values = new ContentValues();
values.put("message_type", message.getType().name());
values.put("sent_result_message", message.getSentResultMessage());
values.put("sent_result_code", message.getSentResultCode());
values.put("status", message.getStatus().name());
values.put("retries", message.getRetries());
Logger.log("Updated ", " update " + values);

final String whereClause = "message_uuid = ?";
final String whereArgs[] = {message.getUuid()};
ContentValues values = new ContentValues();
values.put("message_type", message.getType().name());
values.put("sent_result_message", message.getSentResultMessage());
values.put("sent_result_code", message.getSentResultCode());
values.put("status", message.getStatus().name());
values.put("retries", message.getRetries());
Logger.log("Updated ", " update " + values);

// Update sent fields if message already exist in the db
int rows = cupboard().withDatabase(getWritableDatabase()).update(Message.class, values,
whereClause, whereArgs);
// Message doesn't exist in the db, add it as a new entry
if (rows == 0) {
cupboard().withDatabase(getWritableDatabase()).put(message);
// Update sent fields if message already exist in the db
int rows = cupboard().withDatabase(getWritableDatabase()).update(Message.class, values,
whereClause, whereArgs);
// Message doesn't exist in the db, add it as a new entry
if(rows == 0) {
cupboard().withDatabase(getWritableDatabase()).put(message);
}
callback.onFinished(null);

} catch (Exception e) {
callback.onError(e);
}
}
}
}
});
}

@Override
Expand Down
Expand Up @@ -71,7 +71,18 @@ public void onReceive(final Context context, Intent intent) {
Logger.log("Sent", "message sent "+message);
if (sentSuccess) {
message.setStatus(Message.Status.SENT);
App.getDatabaseInstance().getMessageInstance().updateSentFields(message);
App.getDatabaseInstance().getMessageInstance().updateSentFields(message,
new BaseDatabseHelper.DatabaseCallback<Void>() {
@Override
public void onFinished(Void result) {
// Save details to sent inbox
}

@Override
public void onError(Exception exception) {

}
});

} else {
//TODO: Renable if alert is made configurable.
Expand Down Expand Up @@ -110,7 +121,18 @@ public void run() {
if (!deleted) {
message.setStatus(Message.Status.FAILED);
Logger.log(SmsSentReceiver.class.getSimpleName(), "messages "+message);
App.getDatabaseInstance().getMessageInstance().updateSentFields(message);
App.getDatabaseInstance().getMessageInstance().updateSentFields(message,
new BaseDatabseHelper.DatabaseCallback<Void>() {
@Override
public void onFinished(Void result) {

}

@Override
public void onError(Exception exception) {

}
});
}
}
}
Expand Down

0 comments on commit 88f9eac

Please sign in to comment.