package pl.pola_app.helpers;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import java.util.UUID;
/**
* Creates GUID.
* It's stored in app's shared preferences so it's recreated when data are cleared.
*/
public class SessionId {
private static final String PREF_SESSION_GUID = "session_guid";
private static final Object lock = new Object();
private final String sessionId;
public static SessionId create(Context context) {
return new SessionId(context);
}
private SessionId(Context context) {
sessionId = init(context);
}
public String get() {
return sessionId;
}
private static SharedPreferences getDefaultSharedPreferences(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
private static String init(Context context) {
synchronized (lock) {
SharedPreferences pref = getDefaultSharedPreferences(context);
String sessionGuid = pref.getString(PREF_SESSION_GUID, null);
if (sessionGuid == null) {
sessionGuid = UUID.randomUUID().toString();
final SharedPreferences.Editor editor = pref.edit();
editor.putString(PREF_SESSION_GUID, sessionGuid);
editor.apply();
}
return sessionGuid;
}
}
}