From ad6f85c69ee2fde7b12f78c88c2e966e2dae7a46 Mon Sep 17 00:00:00 2001 From: Adnan Begovic Date: Tue, 26 Jan 2016 11:08:31 -0800 Subject: [PATCH] CMSettingsProvider: Don't trample default values on migrate. Since the migration is invoked even on a clean flash, with no means of knowing what scenario we're coming from. Assume that all null values are to be dropped and default values are to be given precedence. Change-Id: I10eb2f4650c379422268423dbc011b49f77ed910 TICKET: CYNGNOS-1721 --- .../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 6104ba4..196c942 100644 --- a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java +++ b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java @@ -213,6 +213,14 @@ public class CMSettingsProvider extends ContentProvider { if (LOCAL_LOGV) Log.d(TAG, "Table: " + tableName + ", Key: " + settingsKey + ", Value: " + settingsValue); + // Don't trample defaults with null values. This is the only scenario where defaults + // take precedence over migration values. + if (settingsValue == null) { + if (LOCAL_LOGV) Log.d(TAG, "Skipping migrating " + settingsKey + + " because of null value"); + continue; + } + ContentValues contentValue = new ContentValues(); contentValue.put(Settings.NameValueTable.NAME, settingsKey); contentValue.put(Settings.NameValueTable.VALUE, settingsValue);