@@ -2070,13 +2070,20 @@ private void setupSnackBar() {
2070
2070
TypedValue tv = new TypedValue ();
2071
2071
if (getTheme ().resolveAttribute (android .R .attr .actionBarSize , tv , true ))
2072
2072
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
+ });
2073
2080
}
2074
2081
2075
2082
NarrowFilter narrowFilter ;
2076
-
2083
+ String prevId = null ;
2084
+ int prevMessageSameCount = -1 ;
2077
2085
private void showSnackbarNotification (Message [] messages ) {
2078
2086
MutedTopics mutedTopics = MutedTopics .get ();
2079
- String prevId = null ;
2080
2087
int nonMutedMessagesCount = 0 ;
2081
2088
Message tempMessage = null ; //Stores a temporary message which is non-muted, later used for retrieving Stream/Topic
2082
2089
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) {
2086
2093
if (prevId != null && !prevId .equals (message .getIdForHolder ())) {
2087
2094
prevId = null ;
2088
2095
tempMessage = null ;
2096
+ prevMessageSameCount = 0 ;
2089
2097
break ;
2098
+ } else {
2099
+ prevMessageSameCount ++;
2090
2100
}
2091
2101
prevId = message .getIdForHolder ();
2092
2102
if (tempMessage == null ) tempMessage = message ;
2093
2103
}
2094
2104
if (nonMutedMessagesCount == 0 ) return ;
2095
- if (prevId == null ) {
2105
+ if (prevId == null && messages . length > 1 ) {
2096
2106
snackbar .setText (getResources ().getQuantityString (R .plurals .new_message_mul_sender , nonMutedMessagesCount , nonMutedMessagesCount ));
2097
2107
narrowFilter = null ;
2098
2108
if (narrowedList != null ) {
@@ -2107,7 +2117,9 @@ public void onClick(View view) {
2107
2117
}
2108
2118
});
2109
2119
} else {
2120
+ if (messages .length == 1 ) tempMessage = messages [0 ];
2110
2121
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 + ")" ;
2111
2123
snackbar .setText (getResources ().getQuantityString (R .plurals .new_message , nonMutedMessagesCount , nonMutedMessagesCount , name ));
2112
2124
narrowFilter = (tempMessage .getType () == MessageType .PRIVATE_MESSAGE ) ? new NarrowFilterPM (Arrays .asList (tempMessage .getRecipients (app ))) : new NarrowFilterStream (tempMessage .getStream (), tempMessage .getSubject ());
2113
2125
snackbar .setAction (R .string .SHOW , new View .OnClickListener () {
0 commit comments