<lambda>null1package 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