package fr.paug.androidmakers.util;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import java.util.HashSet;
import java.util.Set;
public final class SessionSelector {
private static final String PREF_SELECTED_SESSIONS = "selected_sessions";
private SharedPreferences mSharedPreferences;
private Set<String> mSessionsSelected;
private SessionSelector() {
// no instance
}
public static SessionSelector getInstance() {
return SingletonHolder.instance;
}
public void init(Context context) {
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
mSessionsSelected = new HashSet<>();
Set<String> prefSet = mSharedPreferences.getStringSet(PREF_SELECTED_SESSIONS, null);
if (prefSet != null) {
mSessionsSelected.addAll(prefSet);
}
}
public void setSessionSelected(int id, boolean selected) {
String idString = Integer.toString(id);
if (selected) {
mSessionsSelected.add(idString);
} else {
mSessionsSelected.remove(idString);
}
save();
}
public boolean hasSelected() {
return !mSessionsSelected.isEmpty();
}
public boolean isSelected(int id) {
return mSessionsSelected.contains(Integer.toString(id));
}
public Set<String> getSessionsSelected() {
return mSessionsSelected;
}
public void setSessionsSelected(Set<String> sessionsSelected) {
mSessionsSelected = sessionsSelected;
}
private void save() {
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putStringSet(PREF_SELECTED_SESSIONS, mSessionsSelected);
editor.apply();
}
private static class SingletonHolder {
private final static SessionSelector instance = new SessionSelector();
}
}