diff options
5 files changed, 17 insertions, 26 deletions
diff --git a/service/java/com/android/server/wifi/ExternalScoreEvaluator.java b/service/java/com/android/server/wifi/ExternalScoreEvaluator.java index 2cd4755de..ec0d46bea 100644 --- a/service/java/com/android/server/wifi/ExternalScoreEvaluator.java +++ b/service/java/com/android/server/wifi/ExternalScoreEvaluator.java @@ -46,19 +46,18 @@ public class ExternalScoreEvaluator implements WifiNetworkSelector.NetworkEvalua private final NetworkScoreManager mScoreManager; private final WifiNetworkScoreCache mScoreCache; - ExternalScoreEvaluator(Context context, WifiConfigManager configManager, Clock clock, - LocalLog localLog) { + ExternalScoreEvaluator(Context context, WifiConfigManager configManager, + WifiNetworkScoreCache scoreCache, Clock clock, LocalLog localLog) { mWifiConfigManager = configManager; mClock = clock; mLocalLog = localLog; + mScoreCache = scoreCache; mScoreManager = (NetworkScoreManager) context.getSystemService(Context.NETWORK_SCORE_SERVICE); if (mScoreManager != null) { - mScoreCache = new WifiNetworkScoreCache(context); mScoreManager.registerNetworkScoreCache(NetworkKey.TYPE_WIFI, mScoreCache); } else { localLog("Couldn't get NETWORK_SCORE_SERVICE."); - mScoreCache = null; } } diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java index 2f7081dab..fa4ee077c 100644 --- a/service/java/com/android/server/wifi/WifiConnectivityManager.java +++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java @@ -467,8 +467,9 @@ public class WifiConnectivityManager { */ WifiConnectivityManager(Context context, WifiStateMachine stateMachine, WifiScanner scanner, WifiConfigManager configManager, WifiInfo wifiInfo, - WifiNetworkSelector networkSelector, WifiLastResortWatchdog wifiLastResortWatchdog, - WifiMetrics wifiMetrics, Looper looper, Clock clock, boolean enable) { + WifiNetworkSelector networkSelector, WifiNetworkScoreCache scoreCache, + WifiLastResortWatchdog wifiLastResortWatchdog, WifiMetrics wifiMetrics, + Looper looper, Clock clock, boolean enable) { mStateMachine = stateMachine; mScanner = scanner; mConfigManager = configManager; @@ -519,7 +520,7 @@ public class WifiConnectivityManager { SAVED_NETWORK_EVALUATOR_PRIORITY); ExternalScoreEvaluator externalScoreEvaluator = new ExternalScoreEvaluator(context, - mConfigManager, mClock, mLocalLog); + mConfigManager, scoreCache, mClock, mLocalLog); mNetworkSelector.registerNetworkEvaluator(externalScoreEvaluator, EXTERNAL_SCORE_EVALUATOR_PRIORITY); diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 48e0b98e8..baf75a7f0 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -90,6 +90,7 @@ public class WifiInjector { private final WifiConfigStoreLegacy mWifiConfigStoreLegacy; private final WifiConfigManager mWifiConfigManager; private final WifiNetworkSelector mWifiNetworkSelector; + private final WifiNetworkScoreCache mWifiNetworkScoreCache; private WifiScanner mWifiScanner; private final WifiPermissionsWrapper mWifiPermissionsWrapper; private final WifiPermissionsUtil mWifiPermissionsUtil; @@ -175,6 +176,7 @@ public class WifiInjector { mSimAccessor = new SIMAccessor(mContext); mPasspointManager = new PasspointManager(mContext, mWifiNative, mWifiKeyStore, mClock, mSimAccessor, new PasspointObjectFactory()); + mWifiNetworkScoreCache = new WifiNetworkScoreCache(mContext); } /** @@ -372,9 +374,9 @@ public class WifiInjector { boolean hasConnectionRequests) { return new WifiConnectivityManager(mContext, mWifiStateMachine, getWifiScanner(), mWifiConfigManager, wifiInfo, mWifiNetworkSelector, - mWifiLastResortWatchdog, mWifiMetrics, - mWifiStateMachineHandlerThread.getLooper(), mClock, - hasConnectionRequests); + mWifiNetworkScoreCache, mWifiLastResortWatchdog, + mWifiMetrics, mWifiStateMachineHandlerThread.getLooper(), + mClock, hasConnectionRequests); } public WifiPermissionsUtil getWifiPermissionsUtil() { diff --git a/tests/wifitests/src/com/android/server/wifi/ExternalScoreEvaluatorTest.java b/tests/wifitests/src/com/android/server/wifi/ExternalScoreEvaluatorTest.java index ada21461f..238930d1b 100644 --- a/tests/wifitests/src/com/android/server/wifi/ExternalScoreEvaluatorTest.java +++ b/tests/wifitests/src/com/android/server/wifi/ExternalScoreEvaluatorTest.java @@ -22,10 +22,8 @@ import static com.android.server.wifi.WifiConfigurationTestUtil.SECURITY_PSK; import static org.junit.Assert.*; import static org.mockito.Mockito.*; -import android.app.test.MockAnswerUtil.AnswerWithArguments; import android.content.Context; import android.content.res.Resources; -import android.net.INetworkScoreCache; import android.net.NetworkScoreManager; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; @@ -51,8 +49,9 @@ public class ExternalScoreEvaluatorTest { @Before public void setUp() throws Exception { mResource = getResource(); - mScoreManager = getScoreManager(); + mScoreManager = mock(NetworkScoreManager.class); mContext = getContext(); + mScoreCache = new WifiNetworkScoreCache(mContext); mWifiConfigManager = getWifiConfigManager(); when(mClock.getElapsedSinceBootMillis()).thenReturn(SystemClock.elapsedRealtime()); @@ -62,7 +61,7 @@ public class ExternalScoreEvaluatorTest { R.integer.config_wifi_framework_wifi_score_low_rssi_threshold_5GHz); mExternalScoreEvaluator = new ExternalScoreEvaluator(mContext, mWifiConfigManager, - mClock, null); + mScoreCache, mClock, null); } /** Cleans up test. */ @@ -82,17 +81,6 @@ public class ExternalScoreEvaluatorTest { private int mThresholdQualifiedRssi5G; private static final String TAG = "External Score Evaluator Unit Test"; - NetworkScoreManager getScoreManager() { - NetworkScoreManager scoreManager = mock(NetworkScoreManager.class); - - doAnswer(new AnswerWithArguments() { - public void answer(int networkType, INetworkScoreCache scoreCache) { - mScoreCache = (WifiNetworkScoreCache) scoreCache; - }}).when(scoreManager).registerNetworkScoreCache(anyInt(), anyObject()); - - return scoreManager; - } - Context getContext() { Context context = mock(Context.class); diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java index 2a57a6a78..cb50471d2 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java @@ -105,6 +105,7 @@ public class WifiConnectivityManagerTest { @Mock private Clock mClock; @Mock private WifiLastResortWatchdog mWifiLastResortWatchdog; @Mock private WifiMetrics mWifiMetrics; + @Mock private WifiNetworkScoreCache mScoreCache; private MockResources mResources; private static final int CANDIDATE_NETWORK_ID = 0; @@ -252,7 +253,7 @@ public class WifiConnectivityManagerTest { WifiConnectivityManager createConnectivityManager() { return new WifiConnectivityManager(mContext, mWifiStateMachine, mWifiScanner, - mWifiConfigManager, mWifiInfo, mWifiNS, mWifiLastResortWatchdog, + mWifiConfigManager, mWifiInfo, mWifiNS, mScoreCache, mWifiLastResortWatchdog, mWifiMetrics, mLooper.getLooper(), mClock, true); } |