Skip to content

Commit 6d7accf

Browse files
committed
Migrate SchedulingServiceImpl to ConnectivityStatus
1 parent c923770 commit 6d7accf

File tree

13 files changed

+481
-290
lines changed

13 files changed

+481
-290
lines changed

embrace-android-core/src/test/kotlin/io/embrace/android/embracesdk/internal/capture/connectivity/EmbraceNetworkConnectivityServiceTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ internal class EmbraceNetworkConnectivityServiceTest {
7777
override fun onNetworkConnectivityStatusChanged(status: NetworkStatus) {
7878
networkStatus = status
7979
}
80+
81+
override fun onNetworkConnectivityStatusChanged(status: ConnectivityStatus) {
82+
networkStatus = status.toNetworkStatus()
83+
}
8084
}
8185
service.addNetworkConnectivityListener(testListener)
8286
}

embrace-android-core/src/test/kotlin/io/embrace/android/embracesdk/internal/capture/connectivity/NetworkCallbackConnectivityServiceTest.kt

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import android.os.Build
1515
import androidx.test.core.app.ApplicationProvider.getApplicationContext
1616
import androidx.test.ext.junit.runners.AndroidJUnit4
1717
import io.embrace.android.embracesdk.fakes.fakeBackgroundWorker
18-
import io.embrace.android.embracesdk.internal.comms.delivery.NetworkStatus
1918
import io.embrace.android.embracesdk.internal.logging.InternalLoggerImpl
2019
import org.junit.Assert.assertEquals
2120
import org.junit.Assert.assertFalse
@@ -41,9 +40,6 @@ internal class NetworkCallbackConnectivityServiceTest {
4140
private lateinit var receivedConnectivityStatuses: MutableList<ConnectivityStatus>
4241

4342
private val networkConnectivityListener = object : NetworkConnectivityListener {
44-
override fun onNetworkConnectivityStatusChanged(status: NetworkStatus) {
45-
}
46-
4743
override fun onNetworkConnectivityStatusChanged(status: ConnectivityStatus) {
4844
receivedConnectivityStatuses.add(status)
4945
}
@@ -249,22 +245,6 @@ internal class NetworkCallbackConnectivityServiceTest {
249245
assertFalse(shadowConnectivityManager.networkCallbacks.contains(service))
250246
}
251247

252-
@Test
253-
fun `legacy listener receives bridged NetworkStatus via default overload`() {
254-
val receivedStatuses = mutableListOf<NetworkStatus>()
255-
val legacyListener = object : NetworkConnectivityListener {
256-
override fun onNetworkConnectivityStatusChanged(status: NetworkStatus) {
257-
receivedStatuses.add(status)
258-
}
259-
}
260-
service.register()
261-
service.addNetworkConnectivityListener(legacyListener)
262-
val newNetwork = setActiveNetwork(connectedWifi)
263-
service.onAvailable(newNetwork)
264-
service.onCapabilitiesChanged(newNetwork, connectedWifi.getNetworkCapabilities())
265-
assertEquals(listOf(NetworkStatus.UNKNOWN, NetworkStatus.WIFI), receivedStatuses)
266-
}
267-
268248
private fun initWithNetwork(network: NetworkInfo): Network {
269249
val newNetwork = setActiveNetwork(network)
270250
initService()

embrace-android-delivery-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeSchedulingService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.embrace.android.embracesdk.fakes
22

3-
import io.embrace.android.embracesdk.internal.comms.delivery.NetworkStatus
3+
import io.embrace.android.embracesdk.internal.capture.connectivity.ConnectivityStatus
44
import io.embrace.android.embracesdk.internal.delivery.scheduling.SchedulingService
55

66
class FakeSchedulingService : SchedulingService {
@@ -21,6 +21,6 @@ class FakeSchedulingService : SchedulingService {
2121
resurrectionCompleteCount++
2222
}
2323

24-
override fun onNetworkConnectivityStatusChanged(status: NetworkStatus) {
24+
override fun onNetworkConnectivityStatusChanged(status: ConnectivityStatus) {
2525
}
2626
}

embrace-android-delivery/src/main/kotlin/io/embrace/android/embracesdk/internal/delivery/scheduling/SchedulingServiceImpl.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.embrace.android.embracesdk.internal.delivery.scheduling
22

3+
import io.embrace.android.embracesdk.internal.capture.connectivity.ConnectivityStatus
34
import io.embrace.android.embracesdk.internal.clock.Clock
45
import io.embrace.android.embracesdk.internal.comms.api.Endpoint
5-
import io.embrace.android.embracesdk.internal.comms.delivery.NetworkStatus
66
import io.embrace.android.embracesdk.internal.delivery.StoredTelemetryMetadata
77
import io.embrace.android.embracesdk.internal.delivery.SupportedEnvelopeType
88
import io.embrace.android.embracesdk.internal.delivery.debug.DeliveryTracer
@@ -74,11 +74,11 @@ class SchedulingServiceImpl(
7474
deliveryWorker.shutdownAndWait(0)
7575
}
7676

77-
override fun onNetworkConnectivityStatusChanged(status: NetworkStatus) {
78-
val networkAcquired = connectionStatus.updateNetworkStatus(status.isReachable)
79-
// Schedule an unblock of the connection and schedule a delivery if we have recently connected
80-
// to a potentially connected network OR if the connection was previously blocked
81-
if (networkAcquired || connectionStatus.isBlocked()) {
77+
override fun onNetworkConnectivityStatusChanged(status: ConnectivityStatus) {
78+
val networkAcquired = connectionStatus.updateConnectivityStatus(status.isConnected)
79+
// Schedule a delivery attempt if we got confirmation the current connection is connected to the internet
80+
// OR if the connection is currently blocked and the new connectivity status indicates that we are connected to the internet
81+
if (networkAcquired || (connectionStatus.isBlocked() && status.isConnected)) {
8282
schedulingWorker.submit {
8383
connectionStatus.unblock()
8484
queueDeliveryAttempt()
@@ -331,7 +331,7 @@ class SchedulingServiceImpl(
331331
*
332332
* Called on main thread
333333
*/
334-
fun updateNetworkStatus(newStatus: Boolean): Boolean =
334+
fun updateConnectivityStatus(newStatus: Boolean): Boolean =
335335
if (!hasNetworkConnection.getAndSet(newStatus)) {
336336
newStatus
337337
} else {

0 commit comments

Comments
 (0)