1616
1717package io.getstream.android.core.sample
1818
19- import android.os.Build
2019import android.os.Bundle
2120import android.util.Log
2221import androidx.activity.ComponentActivity
@@ -40,27 +39,17 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
4039import androidx.lifecycle.lifecycleScope
4140import androidx.lifecycle.repeatOnLifecycle
4241import io.getstream.android.core.api.StreamClient
43- import io.getstream.android.core.api.authentication.StreamTokenProvider
4442import io.getstream.android.core.api.model.connection.StreamConnectionState
4543import io.getstream.android.core.api.model.connection.recovery.Recovery
46- import io.getstream.android.core.api.model.value.StreamApiKey
47- import io.getstream.android.core.api.model.value.StreamHttpClientInfoHeader
48- import io.getstream.android.core.api.model.value.StreamToken
49- import io.getstream.android.core.api.model.value.StreamUserId
50- import io.getstream.android.core.api.model.value.StreamWsUrl
5144import io.getstream.android.core.api.socket.listeners.StreamClientListener
5245import io.getstream.android.core.api.subscribe.StreamSubscription
5346import io.getstream.android.core.api.subscribe.StreamSubscriptionManager
54- import io.getstream.android.core.sample.client.createStreamClient
5547import io.getstream.android.core.sample.ui.ConnectionStateCard
5648import io.getstream.android.core.sample.ui.theme.StreamandroidcoreTheme
5749import kotlinx.coroutines.launch
5850
5951class SampleActivity : ComponentActivity (), StreamClientListener {
6052
61- val userId = StreamUserId .fromString(" petar" )
62- var streamClient: StreamClient ? = null
63-
6453 var handle: StreamSubscription ? = null
6554
6655 override fun onRecovery (recovery : Recovery ) {
@@ -75,43 +64,13 @@ class SampleActivity : ComponentActivity(), StreamClientListener {
7564
7665 override fun onCreate (savedInstanceState : Bundle ? ) {
7766 super .onCreate(savedInstanceState)
78- val streamClient2 =
79- createStreamClient(
80- context = this .applicationContext,
81- scope = lifecycleScope,
82- apiKey = StreamApiKey .fromString(" pd67s34fzpgw" ),
83- userId = userId,
84- wsUrl =
85- StreamWsUrl .fromString(
86- " wss://chat-edge-frankfurt-ce1.stream-io-api.com/api/v2/connect"
87- ),
88- clientInfoHeader =
89- StreamHttpClientInfoHeader .create(
90- product = " android-core" ,
91- productVersion = " 1.0.0" ,
92- os = " Android" ,
93- apiLevel = Build .VERSION .SDK_INT ,
94- deviceModel = " Pixel 7 Pro" ,
95- app = " Stream Android Core Sample" ,
96- appVersion = " 1.0.0" ,
97- ),
98- tokenProvider =
99- object : StreamTokenProvider {
100- override suspend fun loadToken (userId : StreamUserId ): StreamToken {
101- return StreamToken .fromString(
102- " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoicGV0YXIifQ.mZFi4iSblaIoyo9JDdcxIkGkwI-tuApeSBawxpz42rs"
103- )
104- }
105- },
106- )
107- streamClient = streamClient2
67+ val streamClient = SampleApp .instance.streamClient
10868 lifecycleScope.launch {
109- repeatOnLifecycle(Lifecycle .State .CREATED ) { streamClient? .connect() }
69+ repeatOnLifecycle(Lifecycle .State .CREATED ) { streamClient.connect() }
11070 }
111-
11271 if (handle == null ) {
11372 handle =
114- streamClient2
73+ streamClient
11574 .subscribe(
11675 this ,
11776 options =
@@ -136,16 +95,16 @@ class SampleActivity : ComponentActivity(), StreamClientListener {
13695 verticalArrangement = Arrangement .spacedBy(16 .dp),
13796 ) {
13897 Greeting (name = " Android" )
139- ClientInfo (streamClient = streamClient2 )
140- val state = streamClient? .connectionState?.collectAsStateWithLifecycle()
98+ ClientInfo (streamClient = streamClient )
99+ val state = streamClient.connectionState?.collectAsStateWithLifecycle()
141100 val buttonState =
142101 when (state?.value) {
143102 is StreamConnectionState .Connected -> {
144103 Triple (
145104 " Disconnect" ,
146105 true ,
147106 {
148- lifecycleScope.launch { streamClient? .disconnect() }
107+ lifecycleScope.launch { streamClient.disconnect() }
149108 Unit
150109 },
151110 )
@@ -174,6 +133,11 @@ class SampleActivity : ComponentActivity(), StreamClientListener {
174133 }
175134 }
176135 }
136+
137+ override fun onDestroy () {
138+ super .onDestroy()
139+ handle?.cancel()
140+ }
177141}
178142
179143@Composable
0 commit comments