Add a SCORER_CHANGED broadcast.
Sent whenever the active network scorer is changed.
Bug: 16007033
Change-Id: Ib71e89e2cc98fa424db7e489445ec03edefb6880
diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java
index 1b71518..538501b 100644
--- a/services/core/java/com/android/server/NetworkScoreService.java
+++ b/services/core/java/com/android/server/NetworkScoreService.java
@@ -18,10 +18,12 @@
import android.Manifest.permission;
import android.content.Context;
+import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.INetworkScoreCache;
import android.net.INetworkScoreService;
+import android.net.NetworkScoreManager;
import android.net.NetworkScorerAppManager;
import android.net.NetworkScorerAppManager.NetworkScorerAppData;
import android.net.ScoredNetwork;
@@ -133,7 +135,13 @@
// as scores should never be compared across apps; in practice, Settings should only be
// allowing valid apps to be set as scorers, so failure here should be rare.
clearInternal();
- return NetworkScorerAppManager.setActiveScorer(mContext, packageName);
+ boolean result = NetworkScorerAppManager.setActiveScorer(mContext, packageName);
+ if (result) {
+ Intent intent = new Intent(NetworkScoreManager.ACTION_SCORER_CHANGED);
+ intent.putExtra(NetworkScoreManager.EXTRA_NEW_SCORER, packageName);
+ mContext.sendBroadcast(intent);
+ }
+ return result;
}
/** Clear scores. Callers are responsible for checking permissions as appropriate. */