@@ -4,29 +4,32 @@ import android.os.Bundle
44import androidx.activity.viewModels
55import androidx.appcompat.app.AppCompatActivity
66import com.getstream.sdk.chat.Chat
7+ import com.getstream.sdk.chat.ChatUI
78import com.getstream.sdk.chat.viewmodel.channels.ChannelsViewModel
89import com.getstream.sdk.chat.viewmodel.channels.bindView
910import com.getstream.sdk.chat.viewmodel.factory.ChannelsViewModelFactory
11+ import io.getstream.chat.android.client.ChatClient
1012import io.getstream.chat.android.client.logger.ChatLogLevel
1113import io.getstream.chat.android.client.models.Filters
1214import io.getstream.chat.android.client.models.User
15+ import io.getstream.chat.android.livedata.ChatDomain
1316import kotlinx.android.synthetic.main.activity_main.*
1417
1518class MainActivity : AppCompatActivity (R .layout.activity_main) {
1619 override fun onCreate (savedInstanceState : Bundle ? ) {
1720 super .onCreate(savedInstanceState)
1821
19- // step 1 - setup the Chat Client
20- Chat . Builder (apiKey = " b67pax5b2wdq" , context = applicationContext)
21- . apply { chatLogLevel = ChatLogLevel . ALL }
22- .build()
22+ // step 1 - setup the client for API calls, the chatDomain for offline storage and the UX components
23+ val client = ChatClient . Builder ( " b67pax5b2wdq" , applicationContext).logLevel( ChatLogLevel . ALL ).build( )
24+ val domain = ChatDomain . Builder (client, applicationContext).build()
25+ ChatUI . Builder (client, domain, applicationContext) .build()
2326
2427 val user = User (" summer-brook-2" ).apply {
2528 extraData[" name" ] = " Paranoid Android"
2629 extraData[" image" ] = " https://bit.ly/2TIt8NR"
2730 }
2831 // step 2 - Authenticate and connect the user
29- Chat .instance().setUser(
32+ ChatClient .instance().setUser(
3033 user = user,
3134 token = " eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoic3VtbWVyLWJyb29rLTIifQ.CzyOx8kgrc61qVbzWvhV1WD3KPEo5ZFZH-326hIdKz0"
3235 )
@@ -38,13 +41,8 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) {
3841 Filters .eq(" type" , " messaging" ),
3942 Filters .`in `(" members" , listOf (user.id))
4043 )
41-
42- val viewModel: ChannelsViewModel by viewModels {
43- ChannelsViewModelFactory (
44- filter,
45- ChannelsViewModel .DEFAULT_SORT
46- )
47- }
44+ val viewModelFactory = ChannelsViewModelFactory (filter, ChannelsViewModel .DEFAULT_SORT )
45+ val viewModel: ChannelsViewModel by viewModels {viewModelFactory}
4846
4947 // step 4 - connect the ChannelsViewModel to the channelsView, loose coupling make it easy to customize
5048 viewModel.bindView(channelsView, this )
0 commit comments