diff --git a/app/src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.kt b/app/src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.kt index 8dd24f24d145..0d6b4e978fef 100644 --- a/app/src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.kt +++ b/app/src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.kt @@ -36,6 +36,10 @@ class ConnectivityServiceImpl( ) : ConnectivityService { companion object { + var instance: ConnectivityServiceImpl? = null + + // todo: remove + private var initCount = 0 private const val TAG = "ConnectivityServiceImpl" private const val CONNECTIVITY_CHECK_ROUTE = "/index.php/204" } @@ -66,10 +70,13 @@ class ConnectivityServiceImpl( } // endregion + + init { + initCount += 1 connectivityManager.registerDefaultNetworkCallback(networkCallback) updateConnectivity() - Log_OC.d(TAG, "connectivity service constructed") + Log_OC.d(TAG, "connectivity service constructed: " + initCount) } // region overridden methods diff --git a/app/src/main/java/com/nextcloud/client/network/NetworkModule.java b/app/src/main/java/com/nextcloud/client/network/NetworkModule.java index 73edbf57706a..7dd0bc22ff1f 100644 --- a/app/src/main/java/com/nextcloud/client/network/NetworkModule.java +++ b/app/src/main/java/com/nextcloud/client/network/NetworkModule.java @@ -19,17 +19,26 @@ @Module public class NetworkModule { + // todo: check 429, remove manual instance... @Provides + @Singleton ConnectivityService connectivityService(Context context, UserAccountManager accountManager, ClientFactory clientFactory, WalledCheckCache walledCheckCache) { - return new ConnectivityServiceImpl(context, - accountManager, - clientFactory, - url -> new GetMethod(url, false), - walledCheckCache + var instance = ConnectivityServiceImpl.Companion.getInstance(); + if (instance != null) { + return instance; + } + + instance = new ConnectivityServiceImpl(context, + accountManager, + clientFactory, + url -> new GetMethod(url, false), + walledCheckCache ); + ConnectivityServiceImpl.Companion.setInstance(instance); + return instance; } @Provides