Highlight selected conversation

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

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

@ -1444,6 +1444,21 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
values.get(name).add(id);
} else
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

Loading…
Cancel
Save