@@ -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