diff --git a/library/src/androidTest/java/in/co/ophio/secure/core/ObscuredSharedPreferencesTest.java b/library/src/androidTest/java/in/co/ophio/secure/core/ObscuredSharedPreferencesTest.java index 0fa4a4c..48704f0 100644 --- a/library/src/androidTest/java/in/co/ophio/secure/core/ObscuredSharedPreferencesTest.java +++ b/library/src/androidTest/java/in/co/ophio/secure/core/ObscuredSharedPreferencesTest.java @@ -2,6 +2,7 @@ import android.content.SharedPreferences; import android.test.AndroidTestCase; +import org.mockito.internal.util.collections.Sets; import java.util.HashSet; import java.util.Map; @@ -99,4 +100,18 @@ public void testRemove() throws Exception { obscuredSharedPreferences.edit().remove(KEY_STRING); assertThat(obscuredSharedPreferences.contains(KEY_STRING), is(true)); } + + public void testSetNulls() throws Exception { + obscuredSharedPreferences.edit().putString(KEY_STRING, "test").commit(); + assertNotNull(obscuredSharedPreferences.getString(KEY_STRING, null)); + + obscuredSharedPreferences.edit().putString(KEY_STRING, null).commit(); + assertNull(obscuredSharedPreferences.getString(KEY_STRING, null)); + + obscuredSharedPreferences.edit().putStringSet(KEY_STRINGSET, Sets.newSet("one", "two")).commit(); + assertNotNull(obscuredSharedPreferences.getStringSet(KEY_STRINGSET, null)); + + obscuredSharedPreferences.edit().putStringSet(KEY_STRINGSET, null).commit(); + assertNull(obscuredSharedPreferences.getStringSet(KEY_STRINGSET, null)); + } } diff --git a/library/src/main/java/in/co/ophio/secure/core/ObscuredSharedPreferences.java b/library/src/main/java/in/co/ophio/secure/core/ObscuredSharedPreferences.java index d74198d..e83a979 100644 --- a/library/src/main/java/in/co/ophio/secure/core/ObscuredSharedPreferences.java +++ b/library/src/main/java/in/co/ophio/secure/core/ObscuredSharedPreferences.java @@ -283,13 +283,13 @@ public Editor putLong(String key, long value) { @Override public Editor putString(String key, String value) { - delegate.putString(encryptKey(key), encrypt(value)); + delegate.putString(encryptKey(key), value != null ? encrypt(value) : null); return this; } @Override public SharedPreferences.Editor putStringSet(String key, Set values) { - delegate.putStringSet(encryptKey(key), encryptSet(values)); + delegate.putStringSet(encryptKey(key), values != null ? encryptSet(values) : null); return this; }