<lambda>null1 package com.android.server.connectivity
2 
3 import android.content.res.Resources
4 import android.provider.DeviceConfig
5 import android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY
6 import android.provider.DeviceConfig.OnPropertiesChangedListener
7 import com.android.internal.annotations.GuardedBy
8 import com.android.server.connectivity.MultinetworkPolicyTracker.CONFIG_ACTIVELY_PREFER_BAD_WIFI
9 import java.util.concurrent.Executor
10 
11 class MultinetworkPolicyTrackerTestDependencies(private val resources: Resources) :
12         MultinetworkPolicyTracker.Dependencies() {
13     @GuardedBy("listeners")
14     private var configActivelyPreferBadWifi = 0
15     // TODO : move this to an actual fake device config object
16     @GuardedBy("listeners")
17     private val listeners = mutableListOf<Pair<Executor, OnPropertiesChangedListener>>()
18 
19     fun putConfigActivelyPreferBadWifi(value: Int) {
20         synchronized(listeners) {
21             if (value == configActivelyPreferBadWifi) return
22             configActivelyPreferBadWifi = value
23             val p = DeviceConfig.Properties(NAMESPACE_CONNECTIVITY,
24                     mapOf(CONFIG_ACTIVELY_PREFER_BAD_WIFI to value.toString()))
25             listeners.forEach { (executor, listener) ->
26                 executor.execute { listener.onPropertiesChanged(p) }
27             }
28         }
29     }
30 
31     override fun getConfigActivelyPreferBadWifi(): Int {
32         return synchronized(listeners) { configActivelyPreferBadWifi }
33     }
34 
35     override fun addOnDevicePropertiesChangedListener(
36         e: Executor,
37         listener: OnPropertiesChangedListener
38     ) {
39         synchronized(listeners) {
40             listeners.add(e to listener)
41         }
42     }
43 
44     override fun getResourcesForActiveSubId(res: ConnectivityResources, id: Int): Resources =
45             resources
46 }
47