From 80755d85d6b5765eb8ddc0e0d764af9ca81ad0eb Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 1 Sep 2018 06:27:13 +0000 Subject: [PATCH] Long press to mark read/unread --- .../eu/faircode/email/AdapterMessage.java | 38 ++++++++++-- .../eu/faircode/email/FragmentMessage.java | 53 ----------------- .../eu/faircode/email/FragmentMessages.java | 10 ++-- app/src/main/res/layout/fragment_messages.xml | 16 ++--- app/src/main/res/menu/menu_view.xml | 6 -- app/src/main/res/values-af/strings.xml | 4 +- app/src/main/res/values-ar-rBH/strings.xml | 4 +- app/src/main/res/values-ar-rEG/strings.xml | 4 +- app/src/main/res/values-ar-rSA/strings.xml | 4 +- app/src/main/res/values-ar-rYE/strings.xml | 4 +- app/src/main/res/values-ar/strings.xml | 4 +- app/src/main/res/values-ca/strings.xml | 4 +- app/src/main/res/values-cs/strings.xml | 4 +- app/src/main/res/values-da/strings.xml | 58 +++++++++---------- app/src/main/res/values-de/strings.xml | 6 +- app/src/main/res/values-el/strings.xml | 4 +- app/src/main/res/values-en/strings.xml | 4 +- app/src/main/res/values-es-rES/strings.xml | 4 +- app/src/main/res/values-fi/strings.xml | 4 +- app/src/main/res/values-fr/strings.xml | 6 +- app/src/main/res/values-he/strings.xml | 4 +- app/src/main/res/values-hu/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values-iw/strings.xml | 4 +- app/src/main/res/values-ja/strings.xml | 4 +- app/src/main/res/values-ko/strings.xml | 4 +- app/src/main/res/values-nb/strings.xml | 4 +- app/src/main/res/values-nl/strings.xml | 4 +- app/src/main/res/values-no/strings.xml | 4 +- app/src/main/res/values-pl/strings.xml | 22 +++---- app/src/main/res/values-pt-rBR/strings.xml | 4 +- app/src/main/res/values-pt-rPT/strings.xml | 4 +- app/src/main/res/values-ro/strings.xml | 14 ++--- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-sr/strings.xml | 4 +- app/src/main/res/values-sv-rSE/strings.xml | 4 +- app/src/main/res/values-tr/strings.xml | 4 +- app/src/main/res/values-uk/strings.xml | 4 +- app/src/main/res/values-vi/strings.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 4 +- app/src/main/res/values-zh-rTW/strings.xml | 4 +- app/src/main/res/values/strings.xml | 2 +- 42 files changed, 163 insertions(+), 192 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 0facb2ffea..48bce38763 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -22,6 +22,7 @@ package eu.faircode.email; import android.content.Context; import android.content.Intent; import android.graphics.Typeface; +import android.os.Bundle; import android.preference.PreferenceManager; import android.text.format.DateUtils; import android.view.LayoutInflater; @@ -30,6 +31,7 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import android.widget.Toast; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -202,10 +204,38 @@ public class AdapterMessage extends PagedListAdapter() { + @Override + protected Void onLoad(Context context, Bundle args) { + long id = args.getLong("id"); + DB db = DB.getInstance(context); + try { + db.beginTransaction(); + + EntityMessage message = db.message().getMessage(id); + for (EntityMessage tmessage : db.message().getMessageByThread(message.account, message.thread)) { + db.message().setMessageUiSeen(tmessage.id, !message.ui_seen); + EntityOperation.queue(db, tmessage, EntityOperation.SEEN, !tmessage.ui_seen); + } + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + + EntityOperation.process(context); + + return null; + } + + @Override + public void onException(Bundle args, Throwable ex) { + Toast.makeText(context, ex.toString(), Toast.LENGTH_LONG).show(); + } + }.load(context, owner, args); return true; } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java index 02a137742e..3f7955966f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessage.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -651,16 +651,9 @@ public class FragmentMessage extends FragmentEx { menu.findItem(R.id.menu_addresses).setVisible(!free); menu.findItem(R.id.menu_thread).setVisible(!free && !message.virtual && message.count > 1); - menu.findItem(R.id.menu_seen).setVisible(!free && !message.virtual && !inOutbox); menu.findItem(R.id.menu_forward).setVisible(!free && !message.virtual && !inOutbox); menu.findItem(R.id.menu_reply_all).setVisible(!free && !message.virtual && message.cc != null && !inOutbox); menu.findItem(R.id.menu_decrypt).setVisible(decrypted == null); - - MenuItem menuSeen = menu.findItem(R.id.menu_seen); - menuSeen.setIcon(message.ui_seen - ? R.drawable.baseline_visibility_off_24 - : R.drawable.baseline_visibility_24); - menuSeen.setTitle(message.ui_seen ? R.string.title_unseen : R.string.title_seen); } @Override @@ -672,9 +665,6 @@ public class FragmentMessage extends FragmentEx { case R.id.menu_thread: onMenuThread(); return true; - case R.id.menu_seen: - onMenuSeen(); - return true; case R.id.menu_forward: onMenuForward(); return true; @@ -710,49 +700,6 @@ public class FragmentMessage extends FragmentEx { fragmentTransaction.commit(); } - private void onMenuSeen() { - Helper.setViewsEnabled(view, false); - - Bundle args = new Bundle(); - args.putLong("id", message.id); - - new SimpleTask() { - @Override - protected Void onLoad(Context context, Bundle args) { - long id = args.getLong("id"); - DB db = DB.getInstance(context); - try { - db.beginTransaction(); - - EntityMessage message = db.message().getMessage(id); - for (EntityMessage tmessage : db.message().getMessageByThread(message.account, message.thread)) { - db.message().setMessageUiSeen(tmessage.id, !message.ui_seen); - EntityOperation.queue(db, tmessage, EntityOperation.SEEN, !tmessage.ui_seen); - } - - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - - EntityOperation.process(context); - - return null; - } - - @Override - protected void onLoaded(Bundle args, Void data) { - Helper.setViewsEnabled(view, true); - } - - @Override - public void onException(Bundle args, Throwable ex) { - Helper.setViewsEnabled(view, true); - Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show(); - } - }.load(this, args); - } - private void onMenuForward() { startActivity(new Intent(getContext(), ActivityCompose.class) .putExtra("action", "forward") diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 974ef336e4..c2725e431e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -58,7 +58,7 @@ import androidx.recyclerview.widget.RecyclerView; public class FragmentMessages extends FragmentEx { private ViewGroup view; - private Button btnHintSwipe; + private Button btnHintActions; private RecyclerView rvMessage; private TextView tvNoEmail; private ProgressBar pbWait; @@ -99,7 +99,7 @@ public class FragmentMessages extends FragmentEx { setHasOptionsMenu(true); // Get controls - btnHintSwipe = view.findViewById(R.id.btnHintSwipe); + btnHintActions = view.findViewById(R.id.btnHintActions); rvMessage = view.findViewById(R.id.rvFolder); tvNoEmail = view.findViewById(R.id.tvNoEmail); pbWait = view.findViewById(R.id.pbWait); @@ -110,10 +110,10 @@ public class FragmentMessages extends FragmentEx { // Wire controls final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - btnHintSwipe.setOnClickListener(new View.OnClickListener() { + btnHintActions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - prefs.edit().putBoolean("understood_swipe", true).apply(); + prefs.edit().putBoolean("understood_actions", true).apply(); grpHintSwipe.setVisibility(View.GONE); } }); @@ -243,7 +243,7 @@ public class FragmentMessages extends FragmentEx { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - grpHintSwipe.setVisibility(prefs.getBoolean("understood_swipe", false) ? View.GONE : View.VISIBLE); + grpHintSwipe.setVisibility(prefs.getBoolean("understood_actions", false) ? View.GONE : View.VISIBLE); final DB db = DB.getInstance(getContext()); diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml index 82acf0a1a4..4c8a2dca96 100644 --- a/app/src/main/res/layout/fragment_messages.xml +++ b/app/src/main/res/layout/fragment_messages.xml @@ -18,28 +18,28 @@ app:layout_constraintTop_toTopOf="parent" />