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..0f59b20edf84 100644 --- a/app/src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.kt +++ b/app/src/main/java/com/nextcloud/client/network/ConnectivityServiceImpl.kt @@ -69,7 +69,6 @@ class ConnectivityServiceImpl( init { connectivityManager.registerDefaultNetworkCallback(networkCallback) updateConnectivity() - Log_OC.d(TAG, "connectivity service constructed") } // 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 deleted file mode 100644 index 73edbf57706a..000000000000 --- a/app/src/main/java/com/nextcloud/client/network/NetworkModule.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Nextcloud - Android Client - * - * SPDX-FileCopyrightText: 2019 Chris Narkiewicz - * SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only - */ -package com.nextcloud.client.network; - -import android.content.Context; - -import com.nextcloud.client.account.UserAccountManager; -import com.nextcloud.operations.GetMethod; - -import javax.inject.Singleton; - -import dagger.Module; -import dagger.Provides; - -@Module -public class NetworkModule { - - @Provides - ConnectivityService connectivityService(Context context, - UserAccountManager accountManager, - ClientFactory clientFactory, - WalledCheckCache walledCheckCache) { - return new ConnectivityServiceImpl(context, - accountManager, - clientFactory, - url -> new GetMethod(url, false), - walledCheckCache - ); - } - - @Provides - @Singleton - ClientFactory clientFactory(Context context) { - return new ClientFactoryImpl(context); - } -} diff --git a/app/src/main/java/com/nextcloud/client/network/NetworkModule.kt b/app/src/main/java/com/nextcloud/client/network/NetworkModule.kt new file mode 100644 index 000000000000..22ea9244f8a3 --- /dev/null +++ b/app/src/main/java/com/nextcloud/client/network/NetworkModule.kt @@ -0,0 +1,37 @@ +/* + * Nextcloud - Android Client + * + * SPDX-FileCopyrightText: 2026 Alper Ozturk + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +package com.nextcloud.client.network + +import android.content.Context +import com.nextcloud.client.account.UserAccountManager +import com.nextcloud.operations.GetMethod +import dagger.Module +import dagger.Provides +import javax.inject.Singleton + +@Module +class NetworkModule { + + @Provides + @Singleton + fun connectivityService( + context: Context, + accountManager: UserAccountManager, + clientFactory: ClientFactory, + walledCheckCache: WalledCheckCache + ): ConnectivityService = ConnectivityServiceImpl( + context, + accountManager, + clientFactory, + { GetMethod(it, false) }, + walledCheckCache + ) + + @Provides + @Singleton + fun clientFactory(context: Context): ClientFactory = ClientFactoryImpl(context) +} diff --git a/app/src/main/java/com/nextcloud/client/network/WalledCheckCache.kt b/app/src/main/java/com/nextcloud/client/network/WalledCheckCache.kt index bea36139774c..f4b0a9de8902 100644 --- a/app/src/main/java/com/nextcloud/client/network/WalledCheckCache.kt +++ b/app/src/main/java/com/nextcloud/client/network/WalledCheckCache.kt @@ -3,45 +3,41 @@ * * SPDX-FileCopyrightText: 2026 Alper Ozturk * SPDX-FileCopyrightText: 2022 Álvaro Brey - * SPDX-FileCopyrightText: 2022 Nextcloud GmbH + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH * SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only */ package com.nextcloud.client.network -import com.nextcloud.client.core.Clock +import com.nextcloud.client.core.ClockImpl +import java.util.concurrent.ConcurrentHashMap import javax.inject.Inject import javax.inject.Singleton @Singleton -class WalledCheckCache @Inject constructor(private val clock: Clock) { - private var connectivityCache = mutableMapOf() - private val walledStatusCache = mutableMapOf>() +class WalledCheckCache @Inject constructor() { + private val clock = ClockImpl() + + private val connectivityCache = ConcurrentHashMap() + private val walledStatusCache = ConcurrentHashMap>() - @Synchronized fun setValue(key: ConnectivityKey, isWalled: Boolean) { walledStatusCache[key] = Pair(clock.currentTime, isWalled) } - @Synchronized fun clear(key: ConnectivityKey) { walledStatusCache.remove(key) } - @Synchronized fun getValue(key: ConnectivityKey): Boolean? { val entry = walledStatusCache[key] ?: return null val isExpired = (clock.currentTime - entry.first) >= CACHE_TIME_MS return if (isExpired) null else entry.second } - @Synchronized fun putConnectivityValue(key: ConnectivityKey, connectivity: Connectivity) { connectivityCache[key] = connectivity } - @Synchronized - fun getConnectivity(key: ConnectivityKey): Connectivity? = connectivityCache[key] - companion object { private const val CACHE_TIME_MS = 10 * 60 * 1000 }