package jonathanfinerty.once; import android.content.Context; import android.content.SharedPreferences; import java.util.HashSet; import java.util.Set; public class PersistedSet { private static final String STRING_SET_KEY = "PersistedSetValues"; private final SharedPreferences preferences; private Set<String> set = new HashSet<String>(); public PersistedSet(Context context, String setName) { preferences = context.getSharedPreferences(PersistedSet.class.getSimpleName() + setName, Context.MODE_PRIVATE); set = preferences.getStringSet(STRING_SET_KEY, new HashSet<String>()); } public void put(String tag) { set.add(tag); updatePreferences(); } public boolean contains(String tag) { return set.contains(tag); } public void remove(String tag) { set.remove(tag); updatePreferences(); } public void clear() { set.clear(); updatePreferences(); } private void updatePreferences() { SharedPreferences.Editor edit = preferences.edit(); edit.putStringSet(STRING_SET_KEY, set); edit.apply(); } }