package org.onebrick.android.helpers; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; public class LoginManager { private static final String PREF_ENCRYPTED_KEY = "encrupted_key"; private static LoginManager instance; private Context mContext; private String mCurrentUserKey; private LoginManager(Context context) { mContext = context.getApplicationContext(); } public static LoginManager getInstance(Context context) { if (instance == null) { if (context == null) { throw new IllegalStateException("Login manager should have initialized by now!"); } instance = new LoginManager(context.getApplicationContext()); } return instance; } public boolean isLoggedIn() { return !TextUtils.isEmpty(getCurrentUserKey()); } public void setCurrentUserKey(@NonNull String key) { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(mContext); sharedPref.edit().putString(PREF_ENCRYPTED_KEY, key).apply(); mCurrentUserKey = key; } @Nullable public String getCurrentUserKey() { if (TextUtils.isEmpty(mCurrentUserKey)) { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(mContext); mCurrentUserKey = sharedPref.getString(PREF_ENCRYPTED_KEY, ""); } return mCurrentUserKey; } public void logout(){ setCurrentUserKey(""); instance = null; } }