Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ class ConnectivityServiceImpl(
init {
connectivityManager.registerDefaultNetworkCallback(networkCallback)
updateConnectivity()
Log_OC.d(TAG, "connectivity service constructed")
}

// region overridden methods
Expand Down
40 changes: 0 additions & 40 deletions app/src/main/java/com/nextcloud/client/network/NetworkModule.java

This file was deleted.

37 changes: 37 additions & 0 deletions app/src/main/java/com/nextcloud/client/network/NetworkModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Nextcloud - Android Client
*
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
* 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
)
Comment on lines +19 to +32

@Provides
@Singleton
fun clientFactory(context: Context): ClientFactory = ClientFactoryImpl(context)
}
20 changes: 8 additions & 12 deletions app/src/main/java/com/nextcloud/client/network/WalledCheckCache.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,45 +3,41 @@
*
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
* SPDX-FileCopyrightText: 2022 Álvaro Brey <alvaro@alvarobrey.com>
* 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<ConnectivityKey, Connectivity>()
private val walledStatusCache = mutableMapOf<ConnectivityKey, Pair<Long, Boolean>>()
class WalledCheckCache @Inject constructor() {
private val clock = ClockImpl()
Comment thread
alperozturk96 marked this conversation as resolved.

private val connectivityCache = ConcurrentHashMap<ConnectivityKey, Connectivity>()
private val walledStatusCache = ConcurrentHashMap<ConnectivityKey, Pair<Long, Boolean>>()

@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
}
Comment thread
alperozturk96 marked this conversation as resolved.

@Synchronized
fun putConnectivityValue(key: ConnectivityKey, connectivity: Connectivity) {
connectivityCache[key] = connectivity
}
Comment thread
alperozturk96 marked this conversation as resolved.

@Synchronized
fun getConnectivity(key: ConnectivityKey): Connectivity? = connectivityCache[key]

companion object {
private const val CACHE_TIME_MS = 10 * 60 * 1000
}
Expand Down
Loading