Skip to content

Commit fce3cfa

Browse files
Fix lint errors and run spotless
1 parent e945bfa commit fce3cfa

File tree

6 files changed

+111
-68
lines changed

6 files changed

+111
-68
lines changed

stream-android-core/src/main/java/io/getstream/android/core/internal/observers/network/StreamNetworkMonitorCallback.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,12 @@ internal class StreamNetworkMonitorCallback(
7474
}
7575

7676
private fun resolveInitialState(): ActiveNetworkState? {
77-
val defaultNetwork = resolveDefaultNetwork() ?: run {
78-
logger.v { "No active network available at start" }
79-
return null
80-
}
77+
val defaultNetwork =
78+
resolveDefaultNetwork()
79+
?: run {
80+
logger.v { "No active network available at start" }
81+
return null
82+
}
8183
val capabilities = connectivityManager.getNetworkCapabilities(defaultNetwork)
8284
val linkProperties = connectivityManager.getLinkProperties(defaultNetwork)
8385
val snapshot = buildSnapshot(defaultNetwork, capabilities, linkProperties) ?: return null
@@ -96,12 +98,10 @@ internal class StreamNetworkMonitorCallback(
9698
capabilities: NetworkCapabilities?,
9799
linkProperties: LinkProperties?,
98100
): StreamNetworkInfo.Snapshot? =
99-
snapshotBuilder
100-
.build(network, capabilities, linkProperties)
101-
.getOrElse { throwable ->
102-
logger.e(throwable) { "Failed to assemble network snapshot" }
103-
null
104-
}
101+
snapshotBuilder.build(network, capabilities, linkProperties).getOrElse { throwable ->
102+
logger.e(throwable) { "Failed to assemble network snapshot" }
103+
null
104+
}
105105

106106
private fun handleUpdate(
107107
network: Network,

stream-android-core/src/main/java/io/getstream/android/core/internal/observers/network/StreamNetworkSnapshotBuilder.kt

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import android.net.Network
2020
import android.net.NetworkCapabilities
2121
import android.net.wifi.WifiManager
2222
import android.os.Build
23+
import android.os.ext.SdkExtensions
2324
import android.telephony.TelephonyManager
2425
import io.getstream.android.core.api.model.connection.network.StreamNetworkInfo
2526
import io.getstream.android.core.api.model.connection.network.StreamNetworkInfo.Bandwidth
@@ -69,9 +70,11 @@ internal class StreamNetworkSnapshotBuilder(
6970
when {
7071
networkCapabilities.flag(NetworkCapabilities.NET_CAPABILITY_NOT_METERED) == true ->
7172
Metered.NOT_METERED
73+
7274
networkCapabilities.flag(
7375
NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED
7476
) == true -> Metered.TEMPORARILY_NOT_METERED
77+
7578
else -> Metered.UNKNOWN_OR_METERED
7679
}
7780

@@ -93,26 +96,31 @@ internal class StreamNetworkSnapshotBuilder(
9396
} else {
9497
null
9598
}
96-
when (networkCapabilities.flag(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED)) {
97-
true -> false
98-
else -> null
99-
}
10099
val bandwidthConstrained =
101-
when (
102-
networkCapabilities.flag(
103-
NetworkCapabilities.NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
104-
)
100+
if (
101+
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R &&
102+
SdkExtensions.getExtensionVersion(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) >= 16
105103
) {
106-
true -> false
107-
else -> null
104+
when (
105+
networkCapabilities.flag(
106+
NetworkCapabilities.NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
107+
)
108+
) {
109+
true -> false
110+
else -> null
111+
}
112+
} else {
113+
null
108114
}
109115

110116
val priority =
111117
when {
112118
networkCapabilities.flag(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY) ==
113119
true -> PriorityHint.LATENCY
120+
114121
networkCapabilities.flag(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH) ==
115122
true -> PriorityHint.BANDWIDTH
123+
116124
else -> PriorityHint.NONE
117125
}
118126

stream-android-core/src/test/java/io/getstream/android/core/api/observers/network/StreamNetworkMonitorFactoryTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ internal class StreamNetworkMonitorFactoryTest {
3131
@Test
3232
fun `factory creates monitor instance`() {
3333
val logger = mockk<StreamLogger>(relaxed = true)
34-
val subscriptionManager = mockk<StreamSubscriptionManager<StreamNetworkMonitorListener>>(relaxed = true)
34+
val subscriptionManager =
35+
mockk<StreamSubscriptionManager<StreamNetworkMonitorListener>>(relaxed = true)
3536
val scope = TestScope(StandardTestDispatcher())
3637
val connectivityManager = mockk<ConnectivityManager>()
3738

stream-android-core/src/test/java/io/getstream/android/core/internal/observers/network/StreamNetworkMonitorCallbackTest.kt

Lines changed: 57 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ import io.getstream.android.core.api.observers.network.StreamNetworkMonitorListe
2626
import io.getstream.android.core.api.subscribe.StreamSubscription
2727
import io.getstream.android.core.api.subscribe.StreamSubscriptionManager
2828
import io.mockk.MockKAnnotations
29-
import io.mockk.coVerify
3029
import io.mockk.clearMocks
3130
import io.mockk.coEvery
31+
import io.mockk.coVerify
3232
import io.mockk.every
3333
import io.mockk.impl.annotations.MockK
3434
import io.mockk.just
@@ -103,7 +103,8 @@ internal class StreamNetworkMonitorCallbackTest {
103103
every { connectivityManager.activeNetwork } returns network
104104
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
105105
every { connectivityManager.getLinkProperties(network) } returns linkProperties
106-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
106+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
107+
Result.success(snapshot)
107108

108109
callback.onRegistered()
109110
scope.advanceUntilIdle()
@@ -150,7 +151,8 @@ internal class StreamNetworkMonitorCallbackTest {
150151
every { connectivityManager.activeNetwork } returns network
151152
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
152153
every { connectivityManager.getLinkProperties(network) } returns linkProperties
153-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
154+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
155+
Result.success(snapshot)
154156

155157
callback.onAvailable(network)
156158
scope.advanceUntilIdle()
@@ -169,12 +171,18 @@ internal class StreamNetworkMonitorCallbackTest {
169171
every { connectivityManager.activeNetwork } returns network
170172
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
171173
every { connectivityManager.getLinkProperties(network) } returns linkProperties
172-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.failure(error)
174+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
175+
Result.failure(error)
173176

174177
callback.onAvailable(network)
175178
scope.advanceUntilIdle()
176179

177-
verify { logger.e(error, match { it?.invoke()?.contains("Failed to assemble network snapshot") == true }) }
180+
verify {
181+
logger.e(
182+
error,
183+
match { it?.invoke()?.contains("Failed to assemble network snapshot") == true },
184+
)
185+
}
178186
coVerify(exactly = 0) { primaryListener.onNetworkConnected(any()) }
179187
}
180188

@@ -189,9 +197,8 @@ internal class StreamNetworkMonitorCallbackTest {
189197
every { connectivityManager.activeNetwork } returns network
190198
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
191199
every { connectivityManager.getLinkProperties(network) } returns linkProperties
192-
every {
193-
snapshotBuilder.build(network, capabilities, linkProperties)
194-
} returnsMany listOf(Result.success(initialSnapshot), Result.success(updatedSnapshot))
200+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returnsMany
201+
listOf(Result.success(initialSnapshot), Result.success(updatedSnapshot))
195202

196203
callback.onAvailable(network)
197204
scope.advanceUntilIdle()
@@ -214,9 +221,8 @@ internal class StreamNetworkMonitorCallbackTest {
214221
every { connectivityManager.activeNetwork } returns network
215222
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
216223
every { connectivityManager.getLinkProperties(network) } returns linkProperties
217-
every {
218-
snapshotBuilder.build(network, capabilities, linkProperties)
219-
} returnsMany listOf(Result.success(snapshot), Result.success(snapshot))
224+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returnsMany
225+
listOf(Result.success(snapshot), Result.success(snapshot))
220226

221227
callback.onAvailable(network)
222228
scope.advanceUntilIdle()
@@ -239,10 +245,10 @@ internal class StreamNetworkMonitorCallbackTest {
239245

240246
every { connectivityManager.activeNetwork } returns network
241247
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
242-
every { connectivityManager.getLinkProperties(network) } returnsMany listOf(initialLink, updatedLink)
243-
every {
244-
snapshotBuilder.build(network, capabilities, any())
245-
} returnsMany listOf(Result.success(initialSnapshot), Result.success(updatedSnapshot))
248+
every { connectivityManager.getLinkProperties(network) } returnsMany
249+
listOf(initialLink, updatedLink)
250+
every { snapshotBuilder.build(network, capabilities, any()) } returnsMany
251+
listOf(Result.success(initialSnapshot), Result.success(updatedSnapshot))
246252

247253
callback.onAvailable(network)
248254
scope.advanceUntilIdle()
@@ -263,7 +269,8 @@ internal class StreamNetworkMonitorCallbackTest {
263269
every { connectivityManager.activeNetwork } returns network
264270
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
265271
every { connectivityManager.getLinkProperties(network) } returns linkProperties
266-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
272+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
273+
Result.success(snapshot)
267274

268275
callback.onAvailable(network)
269276
scope.advanceUntilIdle()
@@ -291,7 +298,8 @@ internal class StreamNetworkMonitorCallbackTest {
291298
every { connectivityManager.activeNetwork } returns network
292299
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
293300
every { connectivityManager.getLinkProperties(network) } returns linkProperties
294-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
301+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
302+
Result.success(snapshot)
295303

296304
callback.onAvailable(network)
297305
scope.advanceUntilIdle()
@@ -317,7 +325,8 @@ internal class StreamNetworkMonitorCallbackTest {
317325
every { connectivityManager.activeNetwork } returns network
318326
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
319327
every { connectivityManager.getLinkProperties(network) } returns linkProperties
320-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
328+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
329+
Result.success(snapshot)
321330

322331
callback.onAvailable(network)
323332
scope.advanceUntilIdle()
@@ -347,14 +356,20 @@ internal class StreamNetworkMonitorCallbackTest {
347356
every { connectivityManager.activeNetwork } returns network
348357
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
349358
every { connectivityManager.getLinkProperties(network) } returns linkProperties
350-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
359+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
360+
Result.success(snapshot)
351361
coEvery { failingListener.onNetworkConnected(snapshot) } throws error
352362
coEvery { healthyListener.onNetworkConnected(snapshot) } just runs
353363

354364
callback.onAvailable(network)
355365
scope.advanceUntilIdle()
356366

357-
verify { logger.e(error, match { it?.invoke()?.contains("Network monitor listener failure") == true }) }
367+
verify {
368+
logger.e(
369+
error,
370+
match { it?.invoke()?.contains("Network monitor listener failure") == true },
371+
)
372+
}
358373
coVerify { healthyListener.onNetworkConnected(snapshot) }
359374
}
360375

@@ -369,18 +384,27 @@ internal class StreamNetworkMonitorCallbackTest {
369384
every { connectivityManager.activeNetwork } returns network
370385
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
371386
every { connectivityManager.getLinkProperties(network) } returns linkProperties
372-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
387+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
388+
Result.success(snapshot)
373389

374390
subscriptionManager.forEachFailure = error
375391

376392
callback.onAvailable(network)
377393
scope.advanceUntilIdle()
378394

379-
verify { logger.e(error, match { it?.invoke()?.contains("Failed to iterate network monitor listeners") == true }) }
395+
verify {
396+
logger.e(
397+
error,
398+
match {
399+
it?.invoke()?.contains("Failed to iterate network monitor listeners") == true
400+
},
401+
)
402+
}
380403
coVerify(exactly = 0) { primaryListener.onNetworkConnected(any()) }
381404
}
382405

383-
private class RecordingSubscriptionManager : StreamSubscriptionManager<StreamNetworkMonitorListener> {
406+
private class RecordingSubscriptionManager :
407+
StreamSubscriptionManager<StreamNetworkMonitorListener> {
384408
private val listeners = linkedSetOf<StreamNetworkMonitorListener>()
385409
var forEachFailure: Throwable? = null
386410

@@ -389,15 +413,18 @@ internal class StreamNetworkMonitorCallbackTest {
389413
options: StreamSubscriptionManager.Options,
390414
): Result<StreamSubscription> {
391415
listeners += listener
392-
return Result.success(object : StreamSubscription {
393-
private var cancelled = false
394-
override fun cancel() {
395-
if (!cancelled) {
396-
cancelled = true
397-
listeners -= listener
416+
return Result.success(
417+
object : StreamSubscription {
418+
private var cancelled = false
419+
420+
override fun cancel() {
421+
if (!cancelled) {
422+
cancelled = true
423+
listeners -= listener
424+
}
398425
}
399426
}
400-
})
427+
)
401428
}
402429

403430
override fun clear(): Result<Unit> {

stream-android-core/src/test/java/io/getstream/android/core/internal/observers/network/StreamNetworkMonitorImplTest.kt

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ import kotlinx.coroutines.test.StandardTestDispatcher
4141
import kotlinx.coroutines.test.TestScope
4242
import kotlinx.coroutines.test.advanceUntilIdle
4343
import kotlinx.coroutines.test.runTest
44+
import org.junit.runner.RunWith
4445
import org.robolectric.RobolectricTestRunner
4546
import org.robolectric.annotation.Config
46-
import org.junit.runner.RunWith
4747

4848
@OptIn(ExperimentalCoroutinesApi::class)
4949
@RunWith(RobolectricTestRunner::class)
@@ -86,10 +86,12 @@ internal class StreamNetworkMonitorImplTest {
8686
every { connectivityManager.activeNetwork } returns network
8787
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
8888
every { connectivityManager.getLinkProperties(network) } returns linkProperties
89-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
89+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
90+
Result.success(snapshot)
9091

9192
val callbackSlot = slot<StreamNetworkMonitorCallback>()
92-
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just runs
93+
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just
94+
runs
9395

9496
monitor.start().getOrThrow()
9597
callbackSlot.captured.onAvailable(network)
@@ -109,12 +111,12 @@ internal class StreamNetworkMonitorImplTest {
109111
every { connectivityManager.activeNetwork } returns network
110112
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
111113
every { connectivityManager.getLinkProperties(network) } returns linkProperties
112-
every {
113-
snapshotBuilder.build(network, capabilities, linkProperties)
114-
} returnsMany listOf(Result.success(initialSnapshot), Result.failure(IllegalStateException("boom")))
114+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returnsMany
115+
listOf(Result.success(initialSnapshot), Result.failure(IllegalStateException("boom")))
115116

116117
val callbackSlot = slot<StreamNetworkMonitorCallback>()
117-
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just runs
118+
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just
119+
runs
118120

119121
monitor.start()
120122
callbackSlot.captured.onAvailable(network)
@@ -136,10 +138,12 @@ internal class StreamNetworkMonitorImplTest {
136138
every { connectivityManager.activeNetwork } returns network
137139
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
138140
every { connectivityManager.getLinkProperties(network) } returns linkProperties
139-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
141+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
142+
Result.success(snapshot)
140143

141144
val callbackSlot = slot<StreamNetworkMonitorCallback>()
142-
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just runs
145+
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just
146+
runs
143147

144148
monitor.start()
145149
val callback = callbackSlot.captured
@@ -167,11 +171,17 @@ internal class StreamNetworkMonitorImplTest {
167171
every { connectivityManager.activeNetwork } returns network
168172
every { connectivityManager.getNetworkCapabilities(network) } returns capabilities
169173
every { connectivityManager.getLinkProperties(network) } returns linkProperties
170-
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns Result.success(snapshot)
174+
every { snapshotBuilder.build(network, capabilities, linkProperties) } returns
175+
Result.success(snapshot)
171176

172177
val callbackSlot = slot<StreamNetworkMonitorCallback>()
173-
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just runs
174-
every { connectivityManager.unregisterNetworkCallback(any<ConnectivityManager.NetworkCallback>()) } just runs
178+
every { connectivityManager.registerDefaultNetworkCallback(capture(callbackSlot)) } just
179+
runs
180+
every {
181+
connectivityManager.unregisterNetworkCallback(
182+
any<ConnectivityManager.NetworkCallback>()
183+
)
184+
} just runs
175185

176186
monitor.start()
177187
val callback = callbackSlot.captured
@@ -180,7 +190,8 @@ internal class StreamNetworkMonitorImplTest {
180190
verify { connectivityManager.unregisterNetworkCallback(callback) }
181191
}
182192

183-
private class RecordingSubscriptionManager : StreamSubscriptionManager<StreamNetworkMonitorListener> {
193+
private class RecordingSubscriptionManager :
194+
StreamSubscriptionManager<StreamNetworkMonitorListener> {
184195
private val listeners = mutableSetOf<StreamNetworkMonitorListener>()
185196

186197
override fun subscribe(

0 commit comments

Comments
 (0)