1818import com .getstream .sdk .chat .viewmodel .messages .MessageListViewModel .Mode .Thread ;
1919import com .getstream .sdk .chat .viewmodel .messages .MessageListViewModel .State .NavigateUp ;
2020
21- import java .util .ArrayList ;
21+ import java .util .LinkedList ;
2222import java .util .List ;
2323
2424import io .getstream .chat .android .client .models .Channel ;
@@ -84,16 +84,16 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8484 }
8585 });
8686
87- // Step 4 - Handle navigate up state
87+ // Step 4 - Let the message input know when we are editing a message
88+ binding .messageListView .setMessageEditHandler (messageInputViewModel ::postMessageToEdit );
89+
90+ // Step 5 - Handle navigate up state
8891 messageListViewModel .getState ().observe (this , state -> {
8992 if (state instanceof NavigateUp ) {
9093 finish ();
9194 }
9295 });
9396
94- // Step 5 - Let the message input know when we are editing a message
95- binding .messageListView .setMessageEditHandler (messageInputViewModel ::postMessageToEdit );
96-
9797 // Step 6 - Handle back button behaviour correctly when you're in a thread
9898 MessageListHeaderView .OnClickListener backHandler = () -> {
9999 messageListViewModel .onEvent (MessageListViewModel .Event .BackButtonPressed .INSTANCE );
@@ -119,12 +119,11 @@ public void handleOnBackPressed() {
119119
120120 // Observe typing users
121121 channelController .getTyping ().observe (this , typingState -> {
122- final List <User > users = typingState .getUsers ();
123- if (users .isEmpty ()) {
122+ if (typingState .getUsers ().isEmpty ()) {
124123 typingHeaderView .setText (nobodyTyping );
125124 } else {
126- List <String > userNames = new ArrayList <>(users . size () );
127- for (User user : users ) {
125+ List <String > userNames = new LinkedList <>();
126+ for (User user : typingState . getUsers () ) {
128127 userNames .add ((String ) user .getExtraData ().get ("name" ));
129128 }
130129 String typing = "typing: " + TextUtils .join (", " , userNames );
0 commit comments