Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit a4374c1

Browse files
kunall17timabbott
authored andcommitted
Show counts if message is received from same private/stream
1 parent 568c360 commit a4374c1

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

app/src/main/java/com/zulip/android/activities/ZulipActivity.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2070,13 +2070,20 @@ private void setupSnackBar() {
20702070
TypedValue tv = new TypedValue();
20712071
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
20722072
mToolbarHeightInPx = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics());
2073+
snackbar.setCallback(new Snackbar.Callback() {
2074+
@Override
2075+
public void onDismissed(Snackbar snackbar, int event) {
2076+
super.onDismissed(snackbar, event);
2077+
if (event == Snackbar.Callback.DISMISS_EVENT_TIMEOUT) prevMessageSameCount = -1;
2078+
}
2079+
});
20732080
}
20742081

20752082
NarrowFilter narrowFilter;
2076-
2083+
String prevId = null;
2084+
int prevMessageSameCount = -1;
20772085
private void showSnackbarNotification(Message[] messages) {
20782086
MutedTopics mutedTopics = MutedTopics.get();
2079-
String prevId = null;
20802087
int nonMutedMessagesCount = 0;
20812088
Message tempMessage = null; //Stores a temporary message which is non-muted, later used for retrieving Stream/Topic
20822089
for (Message message : messages) { //Check if all messages from same topic/private and remove all the muted messages
@@ -2086,13 +2093,16 @@ private void showSnackbarNotification(Message[] messages) {
20862093
if (prevId != null && !prevId.equals(message.getIdForHolder())) {
20872094
prevId = null;
20882095
tempMessage = null;
2096+
prevMessageSameCount = 0;
20892097
break;
2098+
} else {
2099+
prevMessageSameCount++;
20902100
}
20912101
prevId = message.getIdForHolder();
20922102
if (tempMessage == null) tempMessage = message;
20932103
}
20942104
if (nonMutedMessagesCount == 0) return;
2095-
if (prevId == null) {
2105+
if (prevId == null && messages.length > 1) {
20962106
snackbar.setText(getResources().getQuantityString(R.plurals.new_message_mul_sender, nonMutedMessagesCount, nonMutedMessagesCount));
20972107
narrowFilter = null;
20982108
if (narrowedList != null) {
@@ -2107,7 +2117,9 @@ public void onClick(View view) {
21072117
}
21082118
});
21092119
} else {
2120+
if (messages.length == 1) tempMessage = messages[0];
21102121
String name = (tempMessage.getType() == MessageType.PRIVATE_MESSAGE) ? getString(R.string.notify_private, tempMessage.getSenderFullName()) : getString(R.string.notify_stream, tempMessage.getStream().getName() , tempMessage.getSubject());
2122+
if (prevMessageSameCount > 0) name += " (" + prevMessageSameCount + ")";
21112123
snackbar.setText(getResources().getQuantityString(R.plurals.new_message, nonMutedMessagesCount, nonMutedMessagesCount, name));
21122124
narrowFilter = (tempMessage.getType() == MessageType.PRIVATE_MESSAGE) ? new NarrowFilterPM(Arrays.asList(tempMessage.getRecipients(app))) : new NarrowFilterStream(tempMessage.getStream(), tempMessage.getSubject());
21132125
snackbar.setAction(R.string.SHOW, new View.OnClickListener() {

0 commit comments

Comments
 (0)