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);