diff options
| author | Christopher Tate <ctate@android.com> | 2009-09-15 13:20:14 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-09-15 13:20:14 -0700 |
| commit | 553ebbf53f80aca19623856b80e73ed0a00d5e60 (patch) | |
| tree | 2430918a7a68bfe8db757d130449553bbd94ec4f | |
| parent | c126c4b49caf25fb852e863ff6c1e28aff80e35e (diff) | |
| parent | 3c7318756617c346162e511aff71b889879495d8 (diff) | |
| download | frameworks_base-553ebbf53f80aca19623856b80e73ed0a00d5e60.zip frameworks_base-553ebbf53f80aca19623856b80e73ed0a00d5e60.tar.gz frameworks_base-553ebbf53f80aca19623856b80e73ed0a00d5e60.tar.bz2 | |
am 3c731875: am 38eeac30: Merge change 24797 into eclair
Merge commit '3c7318756617c346162e511aff71b889879495d8'
* commit '3c7318756617c346162e511aff71b889879495d8':
Don't backup/restore telephony material from secure settings
| -rw-r--r-- | core/java/android/provider/Settings.java | 5 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java | 24 |
2 files changed, 24 insertions, 5 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 97955ae..688f377 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -2401,11 +2401,6 @@ public final class Settings { WIFI_NUM_ALLOWED_CHANNELS, WIFI_NUM_OPEN_NETWORKS_KEPT, BACKGROUND_DATA, - PREFERRED_NETWORK_MODE, - PREFERRED_TTY_MODE, - CDMA_CELL_BROADCAST_SMS, - PREFERRED_CDMA_SUBSCRIPTION, - ENHANCED_VOICE_PRIVACY_ENABLED }; /** diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index 13db005..8cfd956 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -50,6 +50,7 @@ import android.util.Log; * List of settings that are backed up are stored in the Settings.java file */ public class SettingsBackupAgent extends BackupHelperAgent { + private static final boolean DEBUG = true; private static final String KEY_SYSTEM = "system"; private static final String KEY_SECURE = "secure"; @@ -242,6 +243,13 @@ public class SettingsBackupAgent extends BackupHelperAgent { pos += length; if (!TextUtils.isEmpty(settingName) && !TextUtils.isEmpty(settingValue)) { //Log.i(TAG, "Restore " + settingName + " = " + settingValue); + + // TODO: versioning rather than just an ad hoc blacklist to handle + // older varieties of backed-up data + if (invalidSavedSetting(contentUri, settingName, settingValue)) { + continue; + } + if (mSettingsHelper.restoreValue(settingName, settingValue)) { cv.clear(); cv.put(Settings.NameValueTable.NAME, settingName); @@ -252,6 +260,22 @@ public class SettingsBackupAgent extends BackupHelperAgent { } } + private boolean invalidSavedSetting(Uri contentUri, String settingName, String settingValue) { + // Even if these settings were stored, don't use them on restore + if (contentUri.equals(Settings.Secure.CONTENT_URI)) { + if (settingName.equals(Settings.Secure.PREFERRED_NETWORK_MODE) + || settingName.equals(Settings.Secure.PREFERRED_TTY_MODE) + || settingName.equals(Settings.Secure.CDMA_CELL_BROADCAST_SMS) + || settingName.equals(Settings.Secure.PREFERRED_CDMA_SUBSCRIPTION) + || settingName.equals(Settings.Secure.ENHANCED_VOICE_PRIVACY_ENABLED)) { + if (DEBUG) Log.v(TAG, "Ignoring restore datum: " + settingName); + return true; + } + } + + return false; + } + private String[] copyAndSort(String[] keys) { String[] sortedKeys = new String[keys.length]; System.arraycopy(keys, 0, sortedKeys, 0, keys.length); |
