Make settings backup/restore work in the new multi-user world

1) Properly handle restores of settings elements that have been migrated
   to the new global namespace

1) Back up and restore the new global settings namespace

3) Make sure to back up / restore the global entity
   ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED

Bug 7249405

Change-Id: Ibfa9930ea4d0e16c7635697e8c631b155e4c0cb2
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index cc6656d..ad35f7f 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -110,158 +110,12 @@
         // table, shared across all users
         // These must match Settings.Secure.MOVED_TO_GLOBAL
         sSecureGlobalKeys = new HashSet<String>();
-        sSecureGlobalKeys.add(Settings.Global.ADB_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.ASSISTED_GPS_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.BLUETOOTH_ON);
-        sSecureGlobalKeys.add(Settings.Global.CDMA_CELL_BROADCAST_SMS);
-        sSecureGlobalKeys.add(Settings.Global.CDMA_ROAMING_MODE);
-        sSecureGlobalKeys.add(Settings.Global.CDMA_SUBSCRIPTION_MODE);
-        sSecureGlobalKeys.add(Settings.Global.DATA_ACTIVITY_TIMEOUT_MOBILE);
-        sSecureGlobalKeys.add(Settings.Global.DATA_ACTIVITY_TIMEOUT_WIFI);
-        sSecureGlobalKeys.add(Settings.Global.DATA_ROAMING);
-        sSecureGlobalKeys.add(Settings.Global.DEVELOPMENT_SETTINGS_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.DEVICE_PROVISIONED);
-        sSecureGlobalKeys.add(Settings.Global.DISPLAY_DENSITY_FORCED);
-        sSecureGlobalKeys.add(Settings.Global.DISPLAY_SIZE_FORCED);
-        sSecureGlobalKeys.add(Settings.Global.DOWNLOAD_MAX_BYTES_OVER_MOBILE);
-        sSecureGlobalKeys.add(Settings.Global.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE);
-        sSecureGlobalKeys.add(Settings.Global.INSTALL_NON_MARKET_APPS);
-        sSecureGlobalKeys.add(Settings.Global.MOBILE_DATA);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_DEV_BUCKET_DURATION);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_DEV_DELETE_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_DEV_PERSIST_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_DEV_ROTATE_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_GLOBAL_ALERT_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_POLL_INTERVAL);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_REPORT_XT_OVER_DEV);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_SAMPLE_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_BUCKET_DURATION);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_DELETE_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_PERSIST_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_ROTATE_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_TAG_BUCKET_DURATION);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_TAG_DELETE_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_TAG_PERSIST_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.NETSTATS_UID_TAG_ROTATE_AGE);
-        sSecureGlobalKeys.add(Settings.Global.NETWORK_PREFERENCE);
-        sSecureGlobalKeys.add(Settings.Global.NITZ_UPDATE_DIFF);
-        sSecureGlobalKeys.add(Settings.Global.NITZ_UPDATE_SPACING);
-        sSecureGlobalKeys.add(Settings.Global.NTP_SERVER);
-        sSecureGlobalKeys.add(Settings.Global.NTP_TIMEOUT);
-        sSecureGlobalKeys.add(Settings.Global.PDP_WATCHDOG_ERROR_POLL_COUNT);
-        sSecureGlobalKeys.add(Settings.Global.PDP_WATCHDOG_LONG_POLL_INTERVAL_MS);
-        sSecureGlobalKeys.add(Settings.Global.PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT);
-        sSecureGlobalKeys.add(Settings.Global.PDP_WATCHDOG_POLL_INTERVAL_MS);
-        sSecureGlobalKeys.add(Settings.Global.PDP_WATCHDOG_TRIGGER_PACKET_COUNT);
-        sSecureGlobalKeys.add(Settings.Global.SAMPLING_PROFILER_MS);
-        sSecureGlobalKeys.add(Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
-        sSecureGlobalKeys.add(Settings.Global.SETUP_PREPAID_DETECTION_REDIR_HOST);
-        sSecureGlobalKeys.add(Settings.Global.SETUP_PREPAID_DETECTION_TARGET_URL);
-        sSecureGlobalKeys.add(Settings.Global.TETHER_DUN_APN);
-        sSecureGlobalKeys.add(Settings.Global.TETHER_DUN_REQUIRED);
-        sSecureGlobalKeys.add(Settings.Global.TETHER_SUPPORTED);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_HELP_URI);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_MAX_NTP_CACHE_AGE_SEC);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_NOTIFICATION_TYPE);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_POLLING_SEC);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_RESET_DAY);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_THRESHOLD_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.THROTTLE_VALUE_KBITSPS);
-        sSecureGlobalKeys.add(Settings.Global.USB_MASS_STORAGE_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.USE_GOOGLE_MAIL);
-        sSecureGlobalKeys.add(Settings.Global.WEB_AUTOFILL_QUERY_URL);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_COUNTRY_CODE);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_FRAMEWORK_SCAN_INTERVAL_MS);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_FREQUENCY_BAND);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_IDLE_MS);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_MAX_DHCP_RETRY_COUNT);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_NUM_OPEN_NETWORKS_KEPT);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_ON);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_P2P_DEVICE_NAME);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_SAVED_STATE);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_SUSPEND_OPTIMIZATIONS_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_WATCHDOG_ON);
-        sSecureGlobalKeys.add(Settings.Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON);
-        sSecureGlobalKeys.add(Settings.Global.PACKAGE_VERIFIER_ENABLE);
-        sSecureGlobalKeys.add(Settings.Global.PACKAGE_VERIFIER_TIMEOUT);
-        sSecureGlobalKeys.add(Settings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE);
-        sSecureGlobalKeys.add(Settings.Global.DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS);
-        sSecureGlobalKeys.add(Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS);
-        sSecureGlobalKeys.add(Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS);
-        sSecureGlobalKeys.add(Settings.Global.WTF_IS_FATAL);
-        sSecureGlobalKeys.add(Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD);
-        sSecureGlobalKeys.add(Settings.Global.BATTERY_DISCHARGE_THRESHOLD);
-        sSecureGlobalKeys.add(Settings.Global.SEND_ACTION_APP_ERROR);
-        sSecureGlobalKeys.add(Settings.Global.DROPBOX_AGE_SECONDS);
-        sSecureGlobalKeys.add(Settings.Global.DROPBOX_MAX_FILES);
-        sSecureGlobalKeys.add(Settings.Global.DROPBOX_QUOTA_KB);
-        sSecureGlobalKeys.add(Settings.Global.DROPBOX_QUOTA_PERCENT);
-        sSecureGlobalKeys.add(Settings.Global.DROPBOX_RESERVE_PERCENT);
-        sSecureGlobalKeys.add(Settings.Global.DROPBOX_TAG_PREFIX);
-        sSecureGlobalKeys.add(Settings.Global.ERROR_LOGCAT_PREFIX);
-        sSecureGlobalKeys.add(Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL);
-        sSecureGlobalKeys.add(Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD);
-        sSecureGlobalKeys.add(Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE);
-        sSecureGlobalKeys.add(Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES);
-        sSecureGlobalKeys.add(Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS);
-        sSecureGlobalKeys.add(Settings.Global.CONNECTIVITY_CHANGE_DELAY);
-        sSecureGlobalKeys.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED);
-        sSecureGlobalKeys.add(Settings.Global.CAPTIVE_PORTAL_SERVER);
-        sSecureGlobalKeys.add(Settings.Global.NSD_ON);
-        sSecureGlobalKeys.add(Settings.Global.SET_INSTALL_LOCATION);
-        sSecureGlobalKeys.add(Settings.Global.DEFAULT_INSTALL_LOCATION);
-        sSecureGlobalKeys.add(Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY);
-        sSecureGlobalKeys.add(Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY);
-        sSecureGlobalKeys.add(Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT);
-        sSecureGlobalKeys.add(Settings.Global.HTTP_PROXY);
-        sSecureGlobalKeys.add(Settings.Global.GLOBAL_HTTP_PROXY_HOST);
-        sSecureGlobalKeys.add(Settings.Global.GLOBAL_HTTP_PROXY_PORT);
-        sSecureGlobalKeys.add(Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST);
-        sSecureGlobalKeys.add(Settings.Global.SET_GLOBAL_HTTP_PROXY);
-        sSecureGlobalKeys.add(Settings.Global.DEFAULT_DNS_SERVER);
-        sSecureGlobalKeys.add(Settings.Global.PREFERRED_NETWORK_MODE);
-        sSecureGlobalKeys.add(Settings.Global.PREFERRED_CDMA_SUBSCRIPTION);
+        Settings.Secure.getMovedKeys(sSecureGlobalKeys);
 
         // Keys from the 'system' table now moved to 'global'
         // These must match Settings.System.MOVED_TO_GLOBAL
         sSystemGlobalKeys = new HashSet<String>();
-
-        sSystemGlobalKeys.add(Settings.Global.AIRPLANE_MODE_ON);
-        sSystemGlobalKeys.add(Settings.Global.AIRPLANE_MODE_RADIOS);
-        sSystemGlobalKeys.add(Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
-        sSystemGlobalKeys.add(Settings.Global.AUTO_TIME);
-        sSystemGlobalKeys.add(Settings.Global.AUTO_TIME_ZONE);
-        sSystemGlobalKeys.add(Settings.Global.CAR_DOCK_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.CAR_UNDOCK_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.DESK_DOCK_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.DESK_UNDOCK_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.DOCK_SOUNDS_ENABLED);
-        sSystemGlobalKeys.add(Settings.Global.LOCK_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.UNLOCK_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.LOW_BATTERY_SOUND);
-        sSystemGlobalKeys.add(Settings.Global.POWER_SOUNDS_ENABLED);
-        sSystemGlobalKeys.add(Settings.Global.STAY_ON_WHILE_PLUGGED_IN);
-        sSystemGlobalKeys.add(Settings.Global.WIFI_SLEEP_POLICY);
-        sSystemGlobalKeys.add(Settings.Global.MODE_RINGER);
-        sSystemGlobalKeys.add(Settings.Global.WINDOW_ANIMATION_SCALE);
-        sSystemGlobalKeys.add(Settings.Global.TRANSITION_ANIMATION_SCALE);
-        sSystemGlobalKeys.add(Settings.Global.ANIMATOR_DURATION_SCALE);
-        sSystemGlobalKeys.add(Settings.Global.FANCY_IME_ANIMATIONS);
-        sSystemGlobalKeys.add(Settings.Global.COMPATIBILITY_MODE);
-        sSystemGlobalKeys.add(Settings.Global.EMERGENCY_TONE);
-        sSystemGlobalKeys.add(Settings.Global.CALL_AUTO_RETRY);
-        sSystemGlobalKeys.add(Settings.Global.DEBUG_APP);
-        sSystemGlobalKeys.add(Settings.Global.WAIT_FOR_DEBUGGER);
-        sSystemGlobalKeys.add(Settings.Global.SHOW_PROCESSES);
-        sSystemGlobalKeys.add(Settings.Global.ALWAYS_FINISH_ACTIVITIES);
+        Settings.System.getNonLegacyMovedKeys(sSystemGlobalKeys);
     }
 
     private boolean settingMovedToGlobal(final String name) {