package com.malmstein.yahnac.data.updater; import android.content.Context; import android.content.SharedPreferences; import com.malmstein.yahnac.BuildConfig; import com.malmstein.yahnac.HNewsApplication; public class AppInviteSharedPreferences { private static final String PREFERENCE_NAME = BuildConfig.APPLICATION_ID + ".INVITE_PREFERENCES"; private static final String KEY_PROMPTED = BuildConfig.APPLICATION_ID + ".KEY_PROMPTED"; private static final String KEY_TIMES_REMINDED = BuildConfig.APPLICATION_ID + ".KEY_TIMES_REMINDED"; private static final String KEY_REMINDED = BuildConfig.APPLICATION_ID + ".KEY_REMINDED"; private static int timesToRemind = 5; private final SharedPreferences preferences; private AppInviteSharedPreferences(SharedPreferences preferences) { this.preferences = preferences; } public static AppInviteSharedPreferences newInstance() { SharedPreferences preferences = HNewsApplication.context().getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); return new AppInviteSharedPreferences(preferences); } private boolean hasBeenPrompted() { return preferences.getBoolean(KEY_PROMPTED, false); } public boolean hasBeenReminded() { return preferences.getBoolean(KEY_REMINDED, false); } public void setPrompted() { preferences.edit().putBoolean(KEY_PROMPTED, true).apply(); } public void setReminded() { preferences.edit().putBoolean(KEY_REMINDED, true).apply(); } private int timesReminded() { return preferences.getInt(KEY_TIMES_REMINDED, 0); } private void addReminded() { int reminded = timesReminded() + 1; preferences.edit().putInt(KEY_TIMES_REMINDED, reminded).apply(); } public boolean isFirstTime() { if (!hasBeenPrompted()) { setPrompted(); return true; } else { return false; } } public boolean shouldBeReminded() { if (!hasBeenReminded()) { if (timesReminded() >= timesToRemind) { setReminded(); return true; } else { addReminded(); return false; } } else { return false; } } }