diff options
5 files changed, 45 insertions, 21 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 2936dfb59184..38f384fd6f07 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -48,6 +48,7 @@ import android.database.Cursor; import android.database.SQLException; import android.location.LocationManager; import android.net.ConnectivityManager; +import android.net.NetworkScoreManager; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.BatteryManager; @@ -8220,6 +8221,19 @@ public final class Settings { "network_recommendations_enabled"; /** + * Which package name to use for network recommendations. If null, network recommendations + * will neither be requested nor accepted. + * + * Use {@link NetworkScoreManager#getActiveScorerPackage()} to read this value and + * {@link NetworkScoreManager#setActiveScorer(String)} to write it. + * + * Type: string - package name + * @hide + */ + public static final String NETWORK_RECOMMENDATIONS_PACKAGE = + "network_recommendations_package"; + + /** * Value to specify if the Wi-Fi Framework should defer to * {@link com.android.server.NetworkScoreService} for evaluating saved open networks. * diff --git a/core/proto/android/providers/settings.proto b/core/proto/android/providers/settings.proto index 7674d7a524a0..ee50c294df73 100644 --- a/core/proto/android/providers/settings.proto +++ b/core/proto/android/providers/settings.proto @@ -328,6 +328,7 @@ message GlobalSettingsProto { SettingProto enable_cellular_on_boot = 283; SettingProto max_notification_enqueue_rate = 284; SettingProto cell_on = 285; + SettingProto network_recommendations_package = 286; } message SecureSettingsProto { diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index 136f17e5a77c..499b6ae0f5d3 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -227,4 +227,7 @@ <!-- default setting for Settings.System.END_BUTTON_BEHAVIOR : END_BUTTON_BEHAVIOR_SLEEP --> <integer name="def_end_button_behavior">0x2</integer> + + <!--Default settings for network recommendations. --> + <string name="def_network_recommendations_package" translatable="false">com.android.networkrecommendation</string> </resources> diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index 4ddafac1aca5..43b5bc7dd313 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -495,6 +495,9 @@ class SettingsProtoDumpUtil { Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, GlobalSettingsProto.NETWORK_RECOMMENDATIONS_ENABLED); dumpSetting(s, p, + Settings.Global.NETWORK_RECOMMENDATIONS_PACKAGE, + GlobalSettingsProto.NETWORK_RECOMMENDATIONS_PACKAGE); + dumpSetting(s, p, Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, GlobalSettingsProto.BLE_SCAN_ALWAYS_AVAILABLE); dumpSetting(s, p, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 229979489855..edcb9b51fceb 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -2735,7 +2735,7 @@ public class SettingsProvider extends ContentProvider { } private final class UpgradeController { - private static final int SETTINGS_VERSION = 138; + private static final int SETTINGS_VERSION = 139; private final int mUserId; @@ -3118,26 +3118,7 @@ public class SettingsProvider extends ContentProvider { } if (currentVersion == 135) { - // Version 135: Migrating the NETWORK_SCORER_APP setting to the - // NETWORK_RECOMMENDATIONS_ENABLED setting. - if (userId == UserHandle.USER_SYSTEM) { - final SettingsState globalSettings = getGlobalSettingsLocked(); - Setting currentSetting = globalSettings.getSettingLocked( - Global.NETWORK_SCORER_APP); - if (!currentSetting.isNull()) { - // A scorer was set so enable recommendations. - globalSettings.insertSettingLocked( - Global.NETWORK_RECOMMENDATIONS_ENABLED, - "1", null, true, - SettingsState.SYSTEM_PACKAGE_NAME); - - // and clear the scorer setting since it's no longer needed. - globalSettings.insertSettingLocked( - Global.NETWORK_SCORER_APP, - null, null, true, - SettingsState.SYSTEM_PACKAGE_NAME); - } - } + // Version 135 no longer used. currentVersion = 136; } @@ -3200,6 +3181,28 @@ public class SettingsProvider extends ContentProvider { currentVersion = 138; } + if (currentVersion == 138) { + // Version 139: Applying the default to NETWORK_RECOMMENDATIONS_PACKAGE + if (userId == UserHandle.USER_SYSTEM) { + final SettingsState globalSettings = getGlobalSettingsLocked(); + final String defaultAppPackage = getContext().getResources() + .getString(R.string.def_network_recommendations_package); + + // Set the network recommendations package name + globalSettings.insertSettingLocked( + Global.NETWORK_RECOMMENDATIONS_PACKAGE, + defaultAppPackage, null, true, + SettingsState.SYSTEM_PACKAGE_NAME); + + // Clear the scorer setting since it's no longer needed. + globalSettings.insertSettingLocked( + Global.NETWORK_SCORER_APP, + null, null, true, + SettingsState.SYSTEM_PACKAGE_NAME); + } + currentVersion = 139; + } + if (currentVersion != newVersion) { Slog.wtf("SettingsProvider", "warning: upgrading settings database to version " + newVersion + " left it at " |