1+ /*
2+ * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved.
3+ *
4+ * Licensed under the Stream License;
5+ * you may not use this file except in compliance with the License.
6+ * You may obtain a copy of the License at
7+ *
8+ * https://github.com/GetStream/stream-android-base/blob/main/LICENSE
9+ *
10+ * Unless required by applicable law or agreed to in writing, software
11+ * distributed under the License is distributed on an "AS IS" BASIS,
12+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ * See the License for the specific language governing permissions and
14+ * limitations under the License.
15+ */
116package io.getstream.android.core.sample.client
217
318import io.getstream.android.core.api.StreamClient
419import io.getstream.android.core.api.authentication.StreamTokenManager
520import io.getstream.android.core.api.authentication.StreamTokenProvider
621import io.getstream.android.core.api.log.StreamLogger
722import io.getstream.android.core.api.log.StreamLoggerProvider
8- import io.getstream.android.core.api.model.config.StreamClientSerializationConfig
923import io.getstream.android.core.api.model.value.StreamApiKey
1024import io.getstream.android.core.api.model.value.StreamHttpClientInfoHeader
1125import io.getstream.android.core.api.model.value.StreamUserId
@@ -14,15 +28,13 @@ import io.getstream.android.core.api.processing.StreamBatcher
1428import io.getstream.android.core.api.processing.StreamRetryProcessor
1529import io.getstream.android.core.api.processing.StreamSerialProcessingQueue
1630import io.getstream.android.core.api.processing.StreamSingleFlightProcessor
17- import io.getstream.android.core.api.serialization.StreamJsonSerialization
1831import io.getstream.android.core.api.socket.StreamConnectionIdHolder
1932import io.getstream.android.core.api.socket.StreamWebSocketFactory
2033import io.getstream.android.core.api.socket.listeners.StreamClientListener
2134import io.getstream.android.core.api.socket.monitor.StreamHealthMonitor
2235import io.getstream.android.core.api.subscribe.StreamSubscriptionManager
2336import kotlinx.coroutines.CoroutineScope
2437
25-
2638/* *
2739 * Creates a [createStreamClient] instance with the given configuration and dependencies.
2840 *
@@ -43,25 +55,26 @@ fun createStreamClient(
4355 clientInfoHeader : StreamHttpClientInfoHeader ,
4456 tokenProvider : StreamTokenProvider ,
4557 module : StreamClientModule = StreamClientModule .defaults(scope, userId, tokenProvider),
46- ): StreamClient = StreamClient (
47- scope = scope,
48- apiKey = apiKey,
49- userId = userId,
50- wsUrl = wsUrl,
51- products = listOf (" feeds" ),
52- clientInfoHeader = clientInfoHeader,
53- tokenProvider = tokenProvider,
54- logProvider = module.logProvider,
55- clientSubscriptionManager = module.clientSubscriptionManager,
56- tokenManager = module.tokenManager,
57- singleFlight = module.singleFlight,
58- serialQueue = module.serialQueue,
59- retryProcessor = module.retryProcessor,
60- connectionIdHolder = module.connectionIdHolder,
61- socketFactory = module.socketFactory,
62- healthMonitor = module.healthMonitor,
63- batcher = module.batcher,
64- )
58+ ): StreamClient =
59+ StreamClient (
60+ scope = scope,
61+ apiKey = apiKey,
62+ userId = userId,
63+ wsUrl = wsUrl,
64+ products = listOf (" feeds" ),
65+ clientInfoHeader = clientInfoHeader,
66+ tokenProvider = tokenProvider,
67+ logProvider = module.logProvider,
68+ clientSubscriptionManager = module.clientSubscriptionManager,
69+ tokenManager = module.tokenManager,
70+ singleFlight = module.singleFlight,
71+ serialQueue = module.serialQueue,
72+ retryProcessor = module.retryProcessor,
73+ connectionIdHolder = module.connectionIdHolder,
74+ socketFactory = module.socketFactory,
75+ healthMonitor = module.healthMonitor,
76+ batcher = module.batcher,
77+ )
6578
6679/* *
6780 * Holds configuration and dependencies for the Stream client, including logging, coroutine scope,
@@ -83,48 +96,41 @@ fun createStreamClient(
8396 * @property batcher Batches socket events for batch processing.
8497 */
8598@ConsistentCopyVisibility
86- data class StreamClientModule private constructor(
87- val logProvider : StreamLoggerProvider = StreamLoggerProvider .Companion .defaultAndroidLogger(
88- minLevel = StreamLogger .LogLevel .Verbose ,
89- honorAndroidIsLoggable = false,
90- ),
99+ data class StreamClientModule
100+ private constructor (
101+ val logProvider: StreamLoggerProvider =
102+ StreamLoggerProvider .Companion .defaultAndroidLogger(
103+ minLevel = StreamLogger .LogLevel .Verbose ,
104+ honorAndroidIsLoggable = false ,
105+ ),
91106 val scope: CoroutineScope ,
92- val clientSubscriptionManager : StreamSubscriptionManager <StreamClientListener > = StreamSubscriptionManager (
93- logger = logProvider.taggedLogger("SCClientSubscriptions "),
94- maxStrongSubscriptions = 250,
95- maxWeakSubscriptions = 250,
96- ),
107+ val clientSubscriptionManager: StreamSubscriptionManager <StreamClientListener > =
108+ StreamSubscriptionManager (
109+ logger = logProvider.taggedLogger(" SCClientSubscriptions" ),
110+ maxStrongSubscriptions = 250 ,
111+ maxWeakSubscriptions = 250 ,
112+ ),
97113 val tokenManager: StreamTokenManager ,
98- val singleFlight : StreamSingleFlightProcessor = StreamSingleFlightProcessor (
99- scope = scope,
100- ),
101- val serialQueue : StreamSerialProcessingQueue = StreamSerialProcessingQueue (
102- logger = logProvider.taggedLogger("SCSerialProcessing "),
103- scope = scope,
104- ),
105- val retryProcessor : StreamRetryProcessor = StreamRetryProcessor (
106- logger = logProvider.taggedLogger("SCRetryProcessor ")
107- ),
114+ val singleFlight: StreamSingleFlightProcessor = StreamSingleFlightProcessor (scope = scope),
115+ val serialQueue: StreamSerialProcessingQueue =
116+ StreamSerialProcessingQueue (
117+ logger = logProvider.taggedLogger(" SCSerialProcessing" ),
118+ scope = scope,
119+ ),
120+ val retryProcessor: StreamRetryProcessor =
121+ StreamRetryProcessor (logger = logProvider.taggedLogger(" SCRetryProcessor" )),
108122 val connectionIdHolder: StreamConnectionIdHolder = StreamConnectionIdHolder (),
109- val socketFactory : StreamWebSocketFactory = StreamWebSocketFactory (
110- logger = logProvider.taggedLogger("SCWebSocketFactory ")
111- ),
112- val healthMonitor : StreamHealthMonitor = StreamHealthMonitor (
113- logger = logProvider.taggedLogger("SCHealthMonitor "),
114- scope = scope,
115- ),
123+ val socketFactory: StreamWebSocketFactory =
124+ StreamWebSocketFactory (logger = logProvider.taggedLogger(" SCWebSocketFactory" )),
125+ val healthMonitor: StreamHealthMonitor =
126+ StreamHealthMonitor (logger = logProvider.taggedLogger(" SCHealthMonitor" ), scope = scope),
116127 val batcher: StreamBatcher <String > =
117- StreamBatcher (
118- scope = scope,
119- batchSize = 10,
120- initialDelayMs = 100L,
121- maxDelayMs = 1_000L,
122- )
128+ StreamBatcher (scope = scope, batchSize = 10 , initialDelayMs = 100L , maxDelayMs = 1_000L ),
123129) {
124-
125130 companion object {
126131 /* *
127- * Creates a default [StreamClientModule] instance with recommended settings and dependencies.
132+ * Creates a default [StreamClientModule] instance with recommended settings and
133+ * dependencies.
128134 *
129135 * @param scope Coroutine scope for async operations.
130136 * @param userId The user ID for authentication.
@@ -134,7 +140,7 @@ data class StreamClientModule private constructor(
134140 fun defaults (
135141 scope : CoroutineScope ,
136142 userId : StreamUserId ,
137- tokenProvider : StreamTokenProvider
143+ tokenProvider : StreamTokenProvider ,
138144 ): StreamClientModule {
139145 val singleFlight = StreamSingleFlightProcessor (scope)
140146 return StreamClientModule (
@@ -144,4 +150,4 @@ data class StreamClientModule private constructor(
144150 )
145151 }
146152 }
147- }
153+ }
0 commit comments