Auto cancel error notifications

This commit is contained in:
M66B 2018-11-19 18:10:55 +01:00
parent 335d51a4df
commit d7bb43f167
2 changed files with 12 additions and 2 deletions

View File

@ -20,6 +20,7 @@ package eu.faircode.email;
*/ */
import android.Manifest; import android.Manifest;
import android.app.NotificationManager;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
@ -1244,9 +1245,12 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
db.beginTransaction(); db.beginTransaction();
EntityMessage message = db.message().getMessage(id); EntityMessage message = db.message().getMessage(id);
if (message.uid == null && !TextUtils.isEmpty(message.error)) // outbox if (message.uid == null && !TextUtils.isEmpty(message.error)) {
// outbox
db.message().deleteMessage(id); db.message().deleteMessage(id);
else { NotificationManager nm = context.getSystemService(NotificationManager.class);
nm.cancel("send", message.account.intValue());
} else {
db.message().setMessageUiHide(message.id, true); db.message().setMessageUiHide(message.id, true);
EntityOperation.queue(db, message, EntityOperation.DELETE); EntityOperation.queue(db, message, EntityOperation.DELETE);
} }

View File

@ -25,6 +25,7 @@ import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback; import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture; import android.accounts.AccountManagerFuture;
import android.app.Activity; import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
@ -778,6 +779,11 @@ public class FragmentAccount extends FragmentEx {
if (reload) if (reload)
ServiceSynchronize.reload(getContext(), "save account"); ServiceSynchronize.reload(getContext(), "save account");
if (!synchronize) {
NotificationManager nm = getContext().getSystemService(NotificationManager.class);
nm.cancel("receive", account.id.intValue());
}
return null; return null;
} }