From 256a7350cef055c58a95c902abdb25c2557097c9 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Fri, 6 May 2016 09:21:00 -0700 Subject: [PATCH] CMSettings: don't trample user metrics setting on upgrade During an upgrade, we try to migrate values which are considered to be LEGACY settings to the new provider, however because of a bad upgrade path, we need to check if the key exists in the new database AND the old database, and then we can skip it in that case. Ticket: CYNGNOS-2740 Change-Id: I5d6bc8399ccc328f4190ed7508c27bd9d5de1b9d Signed-off-by: Roman Birg --- .../org/cyanogenmod/cmsettings/CMSettingsProvider.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java index bd011b7..d730584 100644 --- a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java +++ b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java @@ -208,6 +208,14 @@ public class CMSettingsProvider extends ContentProvider { else if (tableName.equals(CMDatabaseHelper.CMTableNames.TABLE_SECURE)) { settingsValue = Settings.Secure.getStringForUser(contentResolver, settingsKey, userId); + if (settingsValue != null && settingsKey.equals(CMSettings.Secure.STATS_COLLECTION) + && CMSettings.Secure.getStringForUser(contentResolver, settingsKey, userId) + != null) { + // incorrect migration from YOG4P -> YOG7D failed to remove + // Settings.Secure.STATS_COLLECTION after migration; so it may exist in both + // providers; so if it exists in the new database, prefer it. + continue; + } // insert dnd, edit tiles for upgrade from 12.1 -> 13.0 if (CMSettings.Secure.QS_TILES.equals(settingsKey) && (settingsValue != null