From e3d4cf025fafe875a77f84e809da67eaec0f2ac5 Mon Sep 17 00:00:00 2001 From: Varun Anand Date: Wed, 18 Mar 2020 17:49:20 -0700 Subject: [PATCH] Fix NetworkScoreService#getActiveScorer. Also fix its variant that returns package name for active scorer. These were previously returning values from cached NetworkScoreAppData that was created when ScoringServiceConnection was created. Which means it does not correctly reflects the current state of NetworkScoreAppData#mEnableUseOpenWifiActivity which could have been disabled by USE_OPEN_WIFI_PACKAGE app to hide toggles. I'm changing this to return dynamic values using NetworkScorerAppManager methods. Bug: 151160317 Bug: 150773571 Test: manual - verified that toggle is hidden if useOpenWifiActivity component is disabled by USE_OPEN_WIFI_PACKAGE app. Test: atest FrameworksNetTests Test: atest NetworkScoreManagerTest Change-Id: If76b1f03a1bf64a39063ac1fe0674be8b0131d3c --- .../com/android/server/NetworkScoreService.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java index d1d1cb3566d2e..3443918df6aba 100644 --- a/services/core/java/com/android/server/NetworkScoreService.java +++ b/services/core/java/com/android/server/NetworkScoreService.java @@ -760,12 +760,11 @@ public class NetworkScoreService extends INetworkScoreService.Stub { @Override public String getActiveScorerPackage() { enforceSystemOrHasScoreNetworks(); - synchronized (mServiceConnectionLock) { - if (mServiceConnection != null) { - return mServiceConnection.getPackageName(); - } + NetworkScorerAppData appData = mNetworkScorerAppManager.getActiveScorer(); + if (appData == null) { + return null; } - return null; + return appData.getRecommendationServicePackageName(); } /** @@ -775,13 +774,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub { public NetworkScorerAppData getActiveScorer() { // Only the system can access this data. enforceSystemOnly(); - synchronized (mServiceConnectionLock) { - if (mServiceConnection != null) { - return mServiceConnection.getAppData(); - } - } - - return null; + return mNetworkScorerAppManager.getActiveScorer(); } /**