package com.moez.QKSMS.common; import android.content.SharedPreferences; import android.preference.PreferenceManager; import com.moez.QKSMS.R; import org.ligi.snackengage.SnackContext; import org.ligi.snackengage.conditions.AfterNumberOfOpportunities; import org.ligi.snackengage.conditions.NeverAgainWhenClickedOnce; import org.ligi.snackengage.conditions.SnackCondition; import org.ligi.snackengage.snacks.RateSnack; import org.ligi.snackengage.snacks.Snack; /* https://github.com/ligi/SnackEngage * "This shows a snackbar after MainActivity was created *10* times and never again when once clicked on Rate" */ public class QKRateSnack extends RateSnack { private final String SNACK_COUNT = "snack_count"; public QKRateSnack() { withConditions(new NeverAgainWhenClickedOnce(), new AfterNumberOfOpportunities(10), new OnlyThreeTimes()); } @Override public String getText() { return getString(R.string.rate_title); } @Override public String getActionText() { return getString(R.string.rate_action); } @Override public boolean opportunity(SnackContext snackContext) { boolean result = super.opportunity(snackContext); if (result) { SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(snackContext.getAndroidContext()); mPrefs.edit().putInt(SNACK_COUNT, mPrefs.getInt(SNACK_COUNT, 0) + 1).apply(); } return result; } private class OnlyThreeTimes implements SnackCondition { @Override public boolean isAppropriate(SnackContext context, Snack snack) { SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context.getAndroidContext()); return mPrefs.getInt(SNACK_COUNT, 0) < 3; } } }