diff options
author | Jeff Davidson <jpd@google.com> | 2014-08-14 16:47:23 -0700 |
---|---|---|
committer | Jeff Davidson <jpd@google.com> | 2014-08-14 16:47:23 -0700 |
commit | 56f9f73a5aad38aa777ec9a42c859e687f2d2af1 (patch) | |
tree | cfcf50000169de2d3dc34873f6b3ff89df4b7e65 | |
parent | f2546bf4235d0c875e9394986535febf068b6101 (diff) | |
download | frameworks_base-56f9f73a5aad38aa777ec9a42c859e687f2d2af1.zip frameworks_base-56f9f73a5aad38aa777ec9a42c859e687f2d2af1.tar.gz frameworks_base-56f9f73a5aad38aa777ec9a42c859e687f2d2af1.tar.bz2 |
Fix default scorer provisioning.
Use Settings.Global instead of SharedPreferences (which don't work) to
track whether we've run the one-time provisioning step of activating
the build-time configured default scorer.
Bug: 16980605
Change-Id: I093cdd6f4f1110960078a186191c4e02b5543d6a
-rw-r--r-- | core/java/android/provider/Settings.java | 8 | ||||
-rw-r--r-- | services/core/java/com/android/server/NetworkScoreService.java | 12 |
2 files changed, 13 insertions, 7 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 55ba9e9..6e5c992 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -6411,6 +6411,14 @@ public final class Settings { public static final String GUEST_USER_ENABLED = "guest_user_enabled"; /** + * Whether the NetworkScoringService has been first initialized. + * <p> + * Type: int (0 for false, 1 for true) + * @hide + */ + public static final String NETWORK_SCORING_PROVISIONED = "network_scoring_provisioned"; + + /** * Settings to backup. This is here so that it's in the same place as the settings * keys and easy to update. * diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java index ab4d4dc..395e365 100644 --- a/services/core/java/com/android/server/NetworkScoreService.java +++ b/services/core/java/com/android/server/NetworkScoreService.java @@ -17,9 +17,9 @@ package com.android.server; import android.Manifest.permission; +import android.content.ContentResolver; 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; @@ -30,6 +30,7 @@ import android.net.ScoredNetwork; import android.os.Binder; import android.os.RemoteException; import android.os.UserHandle; +import android.provider.Settings; import android.text.TextUtils; import android.util.Log; @@ -51,9 +52,6 @@ import java.util.Set; public class NetworkScoreService extends INetworkScoreService.Stub { private static final String TAG = "NetworkScoreService"; - /** SharedPreference bit set to true after the service is first initialized. */ - private static final String PREF_SCORING_PROVISIONED = "is_provisioned"; - private final Context mContext; private final Map<Integer, INetworkScoreCache> mScoreCaches; @@ -65,8 +63,8 @@ public class NetworkScoreService extends INetworkScoreService.Stub { /** Called when the system is ready to run third-party code but before it actually does so. */ void systemReady() { - SharedPreferences prefs = mContext.getSharedPreferences(TAG, Context.MODE_PRIVATE); - if (!prefs.getBoolean(PREF_SCORING_PROVISIONED, false)) { + ContentResolver cr = mContext.getContentResolver(); + if (Settings.Global.getInt(cr, Settings.Global.NETWORK_SCORING_PROVISIONED, 0) == 0) { // On first run, we try to initialize the scorer to the one configured at build time. // This will be a no-op if the scorer isn't actually valid. String defaultPackage = mContext.getResources().getString( @@ -74,7 +72,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub { if (!TextUtils.isEmpty(defaultPackage)) { NetworkScorerAppManager.setActiveScorer(mContext, defaultPackage); } - prefs.edit().putBoolean(PREF_SCORING_PROVISIONED, true).apply(); + Settings.Global.putInt(cr, Settings.Global.NETWORK_SCORING_PROVISIONED, 1); } } |