am 970683c5: Merge "Further fixup of migration to global settings" into jb-mr1-dev

* commit '970683c5d42a1d8588d656d4e570ce4f0f6e0abc':
  Further fixup of migration to global settings
This commit is contained in:
Christopher Tate
2012-09-07 12:58:15 -07:00
committed by Android Git Automerger
3 changed files with 38 additions and 17 deletions

View File

@@ -878,6 +878,8 @@ public final class Settings {
private static final HashSet<String> MOVED_TO_GLOBAL; private static final HashSet<String> MOVED_TO_GLOBAL;
static { static {
MOVED_TO_GLOBAL = new HashSet<String>(); MOVED_TO_GLOBAL = new HashSet<String>();
// these were originally in system but migrated to secure in the past,
// so are duplicated in the Secure.* namespace
MOVED_TO_GLOBAL.add(Global.ADB_ENABLED); MOVED_TO_GLOBAL.add(Global.ADB_ENABLED);
MOVED_TO_GLOBAL.add(Global.BLUETOOTH_ON); MOVED_TO_GLOBAL.add(Global.BLUETOOTH_ON);
MOVED_TO_GLOBAL.add(Global.DATA_ROAMING); MOVED_TO_GLOBAL.add(Global.DATA_ROAMING);
@@ -885,6 +887,7 @@ public final class Settings {
MOVED_TO_GLOBAL.add(Global.INSTALL_NON_MARKET_APPS); MOVED_TO_GLOBAL.add(Global.INSTALL_NON_MARKET_APPS);
MOVED_TO_GLOBAL.add(Global.USB_MASS_STORAGE_ENABLED); MOVED_TO_GLOBAL.add(Global.USB_MASS_STORAGE_ENABLED);
// these are moving directly from system to global
MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_ON); MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_ON);
MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_RADIOS); MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_RADIOS);
MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS);

View File

@@ -67,7 +67,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion' // database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'
// is properly propagated through your change. Not doing so will result in a loss of user // is properly propagated through your change. Not doing so will result in a loss of user
// settings. // settings.
private static final int DATABASE_VERSION = 85; private static final int DATABASE_VERSION = 86;
private Context mContext; private Context mContext;
private int mUserHandle; private int mUserHandle;
@@ -308,7 +308,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
Settings.Secure.WIFI_WATCHDOG_PING_DELAY_MS, Settings.Secure.WIFI_WATCHDOG_PING_DELAY_MS,
Settings.Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS, Settings.Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS,
}; };
moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove); moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false);
upgradeVersion = 28; upgradeVersion = 28;
} }
@@ -674,7 +674,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
"lockscreen.lockedoutpermanently", "lockscreen.lockedoutpermanently",
"lockscreen.password_salt" "lockscreen.password_salt"
}; };
moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove); moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false);
upgradeVersion = 52; upgradeVersion = 52;
} }
@@ -724,7 +724,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
Secure.SET_INSTALL_LOCATION, Secure.SET_INSTALL_LOCATION,
Secure.DEFAULT_INSTALL_LOCATION Secure.DEFAULT_INSTALL_LOCATION
}; };
moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove); moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false);
db.beginTransaction(); db.beginTransaction();
SQLiteStatement stmt = null; SQLiteStatement stmt = null;
try { try {
@@ -1209,9 +1209,9 @@ public class DatabaseHelper extends SQLiteOpenHelper {
// new users can be created. // new users can be created.
createGlobalTable(db); createGlobalTable(db);
String[] settingsToMove = hashsetToStringArray(SettingsProvider.sSystemGlobalKeys); String[] settingsToMove = hashsetToStringArray(SettingsProvider.sSystemGlobalKeys);
moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove); moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove, false);
settingsToMove = hashsetToStringArray(SettingsProvider.sSecureGlobalKeys); settingsToMove = hashsetToStringArray(SettingsProvider.sSecureGlobalKeys);
moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove); moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, false);
db.setTransactionSuccessful(); db.setTransactionSuccessful();
} finally { } finally {
@@ -1254,7 +1254,8 @@ public class DatabaseHelper extends SQLiteOpenHelper {
db.beginTransaction(); db.beginTransaction();
SQLiteStatement stmt = null; SQLiteStatement stmt = null;
try { try {
// Patch up the slightly-wrong key migration from 82 -> 83 // Patch up the slightly-wrong key migration from 82 -> 83 for those
// devices that missed it, ignoring if the move is redundant
String[] settingsToMove = { String[] settingsToMove = {
Settings.Secure.ADB_ENABLED, Settings.Secure.ADB_ENABLED,
Settings.Secure.BLUETOOTH_ON, Settings.Secure.BLUETOOTH_ON,
@@ -1263,7 +1264,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
Settings.Secure.INSTALL_NON_MARKET_APPS, Settings.Secure.INSTALL_NON_MARKET_APPS,
Settings.Secure.USB_MASS_STORAGE_ENABLED Settings.Secure.USB_MASS_STORAGE_ENABLED
}; };
moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove); moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true);
db.setTransactionSuccessful(); db.setTransactionSuccessful();
} finally { } finally {
db.endTransaction(); db.endTransaction();
@@ -1272,6 +1273,21 @@ public class DatabaseHelper extends SQLiteOpenHelper {
upgradeVersion = 85; upgradeVersion = 85;
} }
if (upgradeVersion == 85) {
db.beginTransaction();
try {
// Fix up the migration, ignoring already-migrated elements, to snap up to
// date with new changes to the set of global versus system/secure settings
String[] settingsToMove = { Settings.System.STAY_ON_WHILE_PLUGGED_IN };
moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove, true);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
upgradeVersion = 86;
}
// *** Remember to update DATABASE_VERSION above! // *** Remember to update DATABASE_VERSION above!
if (upgradeVersion != currentVersion) { if (upgradeVersion != currentVersion) {
@@ -1306,15 +1322,16 @@ public class DatabaseHelper extends SQLiteOpenHelper {
private void moveSettingsToNewTable(SQLiteDatabase db, private void moveSettingsToNewTable(SQLiteDatabase db,
String sourceTable, String destTable, String sourceTable, String destTable,
String[] settingsToMove) { String[] settingsToMove, boolean doIgnore) {
// Copy settings values from the source table to the dest, and remove from the source // Copy settings values from the source table to the dest, and remove from the source
SQLiteStatement insertStmt = null; SQLiteStatement insertStmt = null;
SQLiteStatement deleteStmt = null; SQLiteStatement deleteStmt = null;
db.beginTransaction(); db.beginTransaction();
try { try {
insertStmt = db.compileStatement("INSERT INTO " insertStmt = db.compileStatement("INSERT "
+ destTable + " (name,value) SELECT name,value FROM " + (doIgnore ? " OR IGNORE " : "")
+ " INTO " + destTable + " (name,value) SELECT name,value FROM "
+ sourceTable + " WHERE name=?"); + sourceTable + " WHERE name=?");
deleteStmt = db.compileStatement("DELETE FROM " + sourceTable + " WHERE name=?"); deleteStmt = db.compileStatement("DELETE FROM " + sourceTable + " WHERE name=?");

View File

@@ -113,17 +113,22 @@ public class SettingsProvider extends ContentProvider {
// table, shared across all users // table, shared across all users
// These must match Settings.Secure.MOVED_TO_GLOBAL // These must match Settings.Secure.MOVED_TO_GLOBAL
sSecureGlobalKeys = new HashSet<String>(); sSecureGlobalKeys = new HashSet<String>();
sSecureGlobalKeys.add(Settings.Secure.ADB_ENABLED);
sSecureGlobalKeys.add(Settings.Secure.ASSISTED_GPS_ENABLED); sSecureGlobalKeys.add(Settings.Secure.ASSISTED_GPS_ENABLED);
sSecureGlobalKeys.add(Settings.Secure.BLUETOOTH_ON);
sSecureGlobalKeys.add(Settings.Secure.CDMA_CELL_BROADCAST_SMS); sSecureGlobalKeys.add(Settings.Secure.CDMA_CELL_BROADCAST_SMS);
sSecureGlobalKeys.add(Settings.Secure.CDMA_ROAMING_MODE); sSecureGlobalKeys.add(Settings.Secure.CDMA_ROAMING_MODE);
sSecureGlobalKeys.add(Settings.Secure.CDMA_SUBSCRIPTION_MODE); sSecureGlobalKeys.add(Settings.Secure.CDMA_SUBSCRIPTION_MODE);
sSecureGlobalKeys.add(Settings.Secure.DATA_ACTIVITY_TIMEOUT_MOBILE); sSecureGlobalKeys.add(Settings.Secure.DATA_ACTIVITY_TIMEOUT_MOBILE);
sSecureGlobalKeys.add(Settings.Secure.DATA_ACTIVITY_TIMEOUT_WIFI); sSecureGlobalKeys.add(Settings.Secure.DATA_ACTIVITY_TIMEOUT_WIFI);
sSecureGlobalKeys.add(Settings.Secure.DATA_ROAMING);
sSecureGlobalKeys.add(Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED); sSecureGlobalKeys.add(Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED);
sSecureGlobalKeys.add(Settings.Secure.DEVICE_PROVISIONED);
sSecureGlobalKeys.add(Settings.Secure.DISPLAY_DENSITY_FORCED); sSecureGlobalKeys.add(Settings.Secure.DISPLAY_DENSITY_FORCED);
sSecureGlobalKeys.add(Settings.Secure.DISPLAY_SIZE_FORCED); sSecureGlobalKeys.add(Settings.Secure.DISPLAY_SIZE_FORCED);
sSecureGlobalKeys.add(Settings.Secure.DOWNLOAD_MAX_BYTES_OVER_MOBILE); sSecureGlobalKeys.add(Settings.Secure.DOWNLOAD_MAX_BYTES_OVER_MOBILE);
sSecureGlobalKeys.add(Settings.Secure.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE); sSecureGlobalKeys.add(Settings.Secure.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE);
sSecureGlobalKeys.add(Settings.Secure.INSTALL_NON_MARKET_APPS);
sSecureGlobalKeys.add(Settings.Secure.MOBILE_DATA); sSecureGlobalKeys.add(Settings.Secure.MOBILE_DATA);
sSecureGlobalKeys.add(Settings.Secure.NETSTATS_DEV_BUCKET_DURATION); sSecureGlobalKeys.add(Settings.Secure.NETSTATS_DEV_BUCKET_DURATION);
sSecureGlobalKeys.add(Settings.Secure.NETSTATS_DEV_DELETE_AGE); sSecureGlobalKeys.add(Settings.Secure.NETSTATS_DEV_DELETE_AGE);
@@ -167,6 +172,7 @@ public class SettingsProvider extends ContentProvider {
sSecureGlobalKeys.add(Settings.Secure.THROTTLE_RESET_DAY); sSecureGlobalKeys.add(Settings.Secure.THROTTLE_RESET_DAY);
sSecureGlobalKeys.add(Settings.Secure.THROTTLE_THRESHOLD_BYTES); sSecureGlobalKeys.add(Settings.Secure.THROTTLE_THRESHOLD_BYTES);
sSecureGlobalKeys.add(Settings.Secure.THROTTLE_VALUE_KBITSPS); sSecureGlobalKeys.add(Settings.Secure.THROTTLE_VALUE_KBITSPS);
sSecureGlobalKeys.add(Settings.Secure.USB_MASS_STORAGE_ENABLED);
sSecureGlobalKeys.add(Settings.Secure.USE_GOOGLE_MAIL); sSecureGlobalKeys.add(Settings.Secure.USE_GOOGLE_MAIL);
sSecureGlobalKeys.add(Settings.Secure.WEB_AUTOFILL_QUERY_URL); sSecureGlobalKeys.add(Settings.Secure.WEB_AUTOFILL_QUERY_URL);
sSecureGlobalKeys.add(Settings.Secure.WIFI_COUNTRY_CODE); sSecureGlobalKeys.add(Settings.Secure.WIFI_COUNTRY_CODE);
@@ -193,12 +199,6 @@ public class SettingsProvider extends ContentProvider {
// Keys from the 'system' table now moved to 'global' // Keys from the 'system' table now moved to 'global'
// These must match Settings.System.MOVED_TO_GLOBAL // These must match Settings.System.MOVED_TO_GLOBAL
sSystemGlobalKeys = new HashSet<String>(); sSystemGlobalKeys = new HashSet<String>();
sSystemGlobalKeys.add(Settings.Secure.ADB_ENABLED);
sSystemGlobalKeys.add(Settings.Secure.BLUETOOTH_ON);
sSystemGlobalKeys.add(Settings.Secure.DATA_ROAMING);
sSystemGlobalKeys.add(Settings.Secure.DEVICE_PROVISIONED);
sSystemGlobalKeys.add(Settings.Secure.INSTALL_NON_MARKET_APPS);
sSystemGlobalKeys.add(Settings.Secure.USB_MASS_STORAGE_ENABLED);
sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_ON); sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_ON);
sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_RADIOS); sSystemGlobalKeys.add(Settings.System.AIRPLANE_MODE_RADIOS);
@@ -214,6 +214,7 @@ public class SettingsProvider extends ContentProvider {
sSystemGlobalKeys.add(Settings.System.UNLOCK_SOUND); sSystemGlobalKeys.add(Settings.System.UNLOCK_SOUND);
sSystemGlobalKeys.add(Settings.System.LOW_BATTERY_SOUND); sSystemGlobalKeys.add(Settings.System.LOW_BATTERY_SOUND);
sSystemGlobalKeys.add(Settings.System.POWER_SOUNDS_ENABLED); sSystemGlobalKeys.add(Settings.System.POWER_SOUNDS_ENABLED);
sSystemGlobalKeys.add(Settings.System.STAY_ON_WHILE_PLUGGED_IN);
sSystemGlobalKeys.add(Settings.System.WIFI_SLEEP_POLICY); sSystemGlobalKeys.add(Settings.System.WIFI_SLEEP_POLICY);
} }