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. */