Highlight selected conversation

pull/178/head
M66B 5 years ago
parent 72aac8ef90
commit e9c206c2e3

@ -1022,6 +1022,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
} else { } else {
tvCount.setText(NF.format(message.visible)); tvCount.setText(NF.format(message.visible));
ivThread.setVisibility(View.VISIBLE); ivThread.setVisibility(View.VISIBLE);
if (properties.getValue("selected", message.id))
ivThread.setColorFilter(colorAccent);
else
ivThread.clearColorFilter();
} }
// Starred // Starred
@ -2738,12 +2742,13 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
if (EntityFolder.DRAFTS.equals(message.folderType) && message.visible == 1 && if (EntityFolder.DRAFTS.equals(message.folderType) && message.visible == 1 &&
!EntityMessage.PGP_SIGNENCRYPT.equals(message.encrypt) && !EntityMessage.PGP_SIGNENCRYPT.equals(message.encrypt) &&
!EntityMessage.SMIME_SIGNENCRYPT.equals(message.encrypt)) !EntityMessage.SMIME_SIGNENCRYPT.equals(message.encrypt)) {
context.startActivity( context.startActivity(
new Intent(context, ActivityCompose.class) new Intent(context, ActivityCompose.class)
.putExtra("action", "edit") .putExtra("action", "edit")
.putExtra("id", message.id)); .putExtra("id", message.id));
else { properties.setValue("selected", message.id, true);
} else {
final LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); final LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
final Intent viewThread = new Intent(ActivityView.ACTION_VIEW_THREAD) final Intent viewThread = new Intent(ActivityView.ACTION_VIEW_THREAD)
.putExtra("account", message.account) .putExtra("account", message.account)
@ -2759,6 +2764,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
(message.uid == null && message.accountProtocol == EntityAccount.TYPE_IMAP) || (message.uid == null && message.accountProtocol == EntityAccount.TYPE_IMAP) ||
EntityFolder.OUTBOX.equals(message.folderType)) { EntityFolder.OUTBOX.equals(message.folderType)) {
lbm.sendBroadcast(viewThread); lbm.sendBroadcast(viewThread);
properties.setValue("selected", message.id, true);
return; return;
} }
@ -2770,6 +2776,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
if (firstClick) { if (firstClick) {
firstClick = false; firstClick = false;
lbm.sendBroadcast(viewThread); lbm.sendBroadcast(viewThread);
properties.setValue("selected", message.id, true);
} }
} }
}, ViewConfiguration.getDoubleTapTimeout()); }, ViewConfiguration.getDoubleTapTimeout());

@ -1444,6 +1444,21 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
values.get(name).add(id); values.get(name).add(id);
} else } else
values.get(name).remove(id); values.get(name).remove(id);
if ("selected".equals(name) && enabled) {
int pos = adapter.getPositionForKey(id);
if (pos != NO_POSITION)
adapter.notifyItemChanged(pos);
for (Long other : new ArrayList<>(values.get("selected")))
if (!other.equals(id)) {
values.get(name).remove(other);
pos = adapter.getPositionForKey(other);
if (pos != NO_POSITION)
adapter.notifyItemChanged(pos);
}
}
} }
@Override @Override

Loading…
Cancel
Save