Added message warnings

pull/147/head
M66B 6 years ago
parent e36427894c
commit 69b5448859

File diff suppressed because it is too large Load Diff

@ -517,8 +517,15 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
ivThread.setVisibility(View.VISIBLE); ivThread.setVisibility(View.VISIBLE);
} }
String error = message.error;
if (message.warning != null)
if (error == null)
error = message.warning;
else
error += " " + message.warning;
if (debug) { if (debug) {
String text = "error=" + message.error + String text = "error=" + error +
"\nuid=" + message.uid + " id=" + message.id + " " + df.format(new Date(message.received)) + "\nuid=" + message.uid + " id=" + message.id + " " + df.format(new Date(message.received)) +
"\n" + (message.ui_hide ? "HIDDEN " : "") + "\n" + (message.ui_hide ? "HIDDEN " : "") +
"seen=" + message.seen + "/" + message.ui_seen + "seen=" + message.seen + "/" + message.ui_seen +
@ -532,8 +539,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvError.setText(text); tvError.setText(text);
tvError.setVisibility(View.VISIBLE); tvError.setVisibility(View.VISIBLE);
} else { } else {
tvError.setText(message.error); tvError.setText(error);
tvError.setVisibility(message.error == null ? View.GONE : View.VISIBLE); tvError.setVisibility(error == null ? View.GONE : View.VISIBLE);
} }
// Unseen // Unseen

@ -49,7 +49,7 @@ import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory;
// https://developer.android.com/topic/libraries/architecture/room.html // https://developer.android.com/topic/libraries/architecture/room.html
@Database( @Database(
version = 35, version = 36,
entities = { entities = {
EntityIdentity.class, EntityIdentity.class,
EntityAccount.class, EntityAccount.class,
@ -426,6 +426,13 @@ public abstract class DB extends RoomDatabase {
db.execSQL("ALTER TABLE `attachment` ADD COLUMN `error` TEXT"); db.execSQL("ALTER TABLE `attachment` ADD COLUMN `error` TEXT");
} }
}) })
.addMigrations(new Migration(35, 36) {
@Override
public void migrate(SupportSQLiteDatabase db) {
Log.i("DB migration from version " + startVersion + " to " + endVersion);
db.execSQL("ALTER TABLE `message` ADD COLUMN `warning` TEXT");
}
})
.build(); .build();
} }

@ -296,6 +296,9 @@ public interface DaoMessage {
@Query("UPDATE message SET ui_ignored = :ui_ignored WHERE id = :id") @Query("UPDATE message SET ui_ignored = :ui_ignored WHERE id = :id")
int setMessageUiIgnored(long id, boolean ui_ignored); int setMessageUiIgnored(long id, boolean ui_ignored);
@Query("UPDATE message SET warning = :warning WHERE id = :id")
int setMessageWarning(long id, String warning);
@Query("UPDATE message SET error = :error WHERE id = :id") @Query("UPDATE message SET error = :error WHERE id = :id")
int setMessageError(long id, String error); int setMessageError(long id, String error);

@ -148,7 +148,8 @@ public class EntityMessage implements Serializable {
@NonNull @NonNull
public Boolean ui_browsed = false; public Boolean ui_browsed = false;
public Long ui_snoozed; public Long ui_snoozed;
public String error; public String warning; // persistent
public String error; // volatile
public Long last_attempt; // send public Long last_attempt; // send
@Ignore @Ignore
@ -346,6 +347,7 @@ public class EntityMessage implements Serializable {
this.ui_ignored.equals(other.ui_ignored) && this.ui_ignored.equals(other.ui_ignored) &&
//this.ui_browsed.equals(other.ui_browsed) && //this.ui_browsed.equals(other.ui_browsed) &&
(this.ui_snoozed == null ? other.ui_snoozed == null : this.ui_snoozed.equals(other.ui_snoozed)) && (this.ui_snoozed == null ? other.ui_snoozed == null : this.ui_snoozed.equals(other.ui_snoozed)) &&
(this.warning == null ? other.warning == null : this.warning.equals(other.warning)) &&
(this.error == null ? other.error == null : this.error.equals(other.error))); (this.error == null ? other.error == null : this.error.equals(other.error)));
} }
return false; return false;
@ -393,6 +395,7 @@ public class EntityMessage implements Serializable {
this.ui_ignored.equals(other.ui_ignored) && this.ui_ignored.equals(other.ui_ignored) &&
this.ui_browsed.equals(other.ui_browsed) && this.ui_browsed.equals(other.ui_browsed) &&
(this.ui_snoozed == null ? other.ui_snoozed == null : this.ui_snoozed.equals(other.ui_snoozed)) && (this.ui_snoozed == null ? other.ui_snoozed == null : this.ui_snoozed.equals(other.ui_snoozed)) &&
(this.warning == null ? other.warning == null : this.warning.equals(other.warning)) &&
(this.error == null ? other.error == null : this.error.equals(other.error))); (this.error == null ? other.error == null : this.error.equals(other.error)));
} }
return false; return false;

@ -1967,6 +1967,7 @@ public class ServiceSynchronize extends LifecycleService {
String preview = HtmlHelper.getPreview(body); String preview = HtmlHelper.getPreview(body);
message.write(this, body); message.write(this, body);
db.message().setMessageContent(message.id, true, preview); db.message().setMessageContent(message.id, true, preview);
db.message().setMessageWarning(message.id, parts.getWarnings());
} }
private void doAttachment(EntityFolder folder, EntityOperation op, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws JSONException, MessagingException, IOException { private void doAttachment(EntityFolder folder, EntityOperation op, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws JSONException, MessagingException, IOException {
@ -2628,9 +2629,7 @@ public class ServiceSynchronize extends LifecycleService {
String body = parts.getHtml(context); String body = parts.getHtml(context);
message.write(context, body); message.write(context, body);
db.message().setMessageContent(message.id, true, HtmlHelper.getPreview(body)); db.message().setMessageContent(message.id, true, HtmlHelper.getPreview(body));
String warnings = parts.getWarnings(); db.message().setMessageWarning(message.id, parts.getWarnings());
if (warnings != null)
db.message().setMessageError(message.id, warnings);
Log.i(folder.name + " downloaded message id=" + message.id + " size=" + message.size); Log.i(folder.name + " downloaded message id=" + message.id + " size=" + message.size);
} }

Loading…
Cancel
Save