2323import io .getstream .chat .android .models .Channel ;
2424import io .getstream .chat .android .models .Message ;
2525import io .getstream .chat .android .models .TypingEvent ;
26- import io .getstream .chat .android .state . extensions .ChatClientExtensions ;
26+ import io .getstream .chat .android .client . api . state .ChatClientExtensions ;
2727import io .getstream .chat .android .ui .common .state .messages .Edit ;
2828import io .getstream .chat .android .ui .common .state .messages .MessageMode ;
29- import io .getstream .chat .android .ui .feature .messages .header .MessageListHeaderView ;
29+ import io .getstream .chat .android .ui .feature .messages .header .ChannelHeaderView ;
3030import io .getstream .chat .android .ui .feature .messages .list .adapter .viewholder .attachment .AttachmentFactoryManager ;
3131import io .getstream .chat .android .ui .viewmodel .messages .MessageComposerViewModel ;
3232import io .getstream .chat .android .ui .viewmodel .messages .MessageComposerViewModelBinding ;
33- import io .getstream .chat .android .ui .viewmodel .messages .MessageListHeaderViewModel ;
34- import io .getstream .chat .android .ui .viewmodel .messages .MessageListHeaderViewModelBinding ;
33+ import io .getstream .chat .android .ui .viewmodel .messages .ChannelHeaderViewModel ;
34+ import io .getstream .chat .android .ui .viewmodel .messages .ChannelHeaderViewModelBinding ;
3535import io .getstream .chat .android .ui .viewmodel .messages .MessageListViewModel ;
3636import io .getstream .chat .android .ui .viewmodel .messages .MessageListViewModelBinding ;
37- import io .getstream .chat .android .ui .viewmodel .messages .MessageListViewModelFactory ;
37+ import io .getstream .chat .android .ui .viewmodel .messages .ChannelViewModelFactory ;
3838import kotlinx .coroutines .flow .Flow ;
3939
4040public class ChannelActivity3 extends AppCompatActivity {
@@ -55,18 +55,20 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
5555 ActivityChannel3Binding binding = ActivityChannel3Binding .inflate (getLayoutInflater ());
5656 setContentView (binding .getRoot ());
5757
58+ EdgeToEdge .applySystemBarInsetsAsPadding (binding .getRoot ());
59+
5860 String cid = getIntent ().getStringExtra (CID_KEY );
5961 if (cid == null ) {
6062 throw new IllegalStateException ("Specifying a channel id is required when starting ChannelActivity3" );
6163 }
6264
6365 // Step 1 - Create three separate ViewModels for the views so it's easy
6466 // to customize them individually
65- ViewModelProvider .Factory factory = new MessageListViewModelFactory .Builder (this )
67+ ViewModelProvider .Factory factory = new ChannelViewModelFactory .Builder (this )
6668 .cid (cid )
6769 .build ();
6870 ViewModelProvider provider = new ViewModelProvider (this , factory );
69- MessageListHeaderViewModel messageListHeaderViewModel = provider .get (MessageListHeaderViewModel .class );
71+ ChannelHeaderViewModel channelHeaderViewModel = provider .get (ChannelHeaderViewModel .class );
7072 MessageListViewModel messageListViewModel = provider .get (MessageListViewModel .class );
7173 MessageComposerViewModel messageComposerViewModel = provider .get (MessageComposerViewModel .class );
7274
@@ -80,18 +82,18 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8082 binding .messageListView .setAttachmentFactoryManager (attachmentFactoryManager );
8183
8284 // Step 2 - Bind the view and ViewModels, they are loosely coupled so it's easy to customize
83- MessageListHeaderViewModelBinding .bind (messageListHeaderViewModel , binding .messageListHeaderView , this );
85+ ChannelHeaderViewModelBinding .bind (channelHeaderViewModel , binding .channelHeaderView , this );
8486 MessageListViewModelBinding .bind (messageListViewModel , binding .messageListView , this );
8587 MessageComposerViewModelBinding .bind (messageComposerViewModel , binding .messageComposerView , this );
8688
87- // Step 3 - Let both MessageListHeaderView and MessageComposerView know when we open a thread
89+ // Step 3 - Let both ChannelHeaderView and MessageComposerView know when we open a thread
8890 messageListViewModel .getMode ().observe (this , mode -> {
8991 if (mode instanceof MessageMode .MessageThread ) {
9092 Message parentMessage = ((MessageMode .MessageThread ) mode ).getParentMessage ();
91- messageListHeaderViewModel .setActiveThread (parentMessage );
93+ channelHeaderViewModel .setActiveThread (parentMessage );
9294 messageComposerViewModel .setMessageMode (new MessageMode .MessageThread (parentMessage ));
9395 } else if (mode instanceof MessageMode .Normal ) {
94- messageListHeaderViewModel .resetThread ();
96+ channelHeaderViewModel .resetThread ();
9597 messageComposerViewModel .leaveThread ();
9698 }
9799 });
@@ -109,8 +111,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
109111 });
110112
111113 // Step 6 - Handle back button behaviour correctly when you're in a thread
112- MessageListHeaderView .OnClickListener backHandler = () -> messageListViewModel .onEvent (MessageListViewModel .Event .BackButtonPressed .INSTANCE );
113- binding .messageListHeaderView .setBackButtonClickListener (backHandler );
114+ ChannelHeaderView .OnClickListener backHandler = () -> messageListViewModel .onEvent (MessageListViewModel .Event .BackButtonPressed .INSTANCE );
115+ binding .channelHeaderView .setBackButtonClickListener (backHandler );
114116 getOnBackPressedDispatcher ().addCallback (this , new OnBackPressedCallback (true ) {
115117 @ Override
116118 public void handleOnBackPressed () {
0 commit comments