From e5e149a9dfd5cbcd75e060e379938388047e7ef7 Mon Sep 17 00:00:00 2001 From: DAMLA YILDIZ <56313500+damlayildiz@users.noreply.github.com> Date: Sat, 10 Oct 2020 23:07:26 +0300 Subject: Added in-app review (#4489) --- .../de/danoeh/antennapod/dialog/RatingDialog.java | 113 --------------------- 1 file changed, 113 deletions(-) delete mode 100644 app/src/main/java/de/danoeh/antennapod/dialog/RatingDialog.java (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/RatingDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/RatingDialog.java deleted file mode 100644 index 7cb274708..000000000 --- a/app/src/main/java/de/danoeh/antennapod/dialog/RatingDialog.java +++ /dev/null @@ -1,113 +0,0 @@ -package de.danoeh.antennapod.dialog; - -import android.app.Dialog; -import android.content.Context; -import android.content.SharedPreferences; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import android.util.Log; - -import java.lang.ref.WeakReference; -import java.util.concurrent.TimeUnit; - -import androidx.appcompat.app.AlertDialog; -import de.danoeh.antennapod.R; -import de.danoeh.antennapod.core.util.IntentUtils; - -public class RatingDialog { - - private RatingDialog(){} - - private static final String TAG = RatingDialog.class.getSimpleName(); - private static final int AFTER_DAYS = 7; - - private static WeakReference mContext; - private static SharedPreferences mPreferences; - private static Dialog mDialog; - - private static final String PREFS_NAME = "RatingPrefs"; - private static final String KEY_RATED = "KEY_WAS_RATED"; - private static final String KEY_FIRST_START_DATE = "KEY_FIRST_HIT_DATE"; - - public static void init(Context context) { - mContext = new WeakReference<>(context); - mPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); - - long firstDate = mPreferences.getLong(KEY_FIRST_START_DATE, 0); - if (firstDate == 0) { - resetStartDate(); - } - } - - public static void check() { - if (mDialog != null && mDialog.isShowing()) { - return; - } - if (shouldShow()) { - try { - mDialog = createDialog(); - if (mDialog != null) { - mDialog.show(); - } - } catch (Exception e) { - Log.e(TAG, Log.getStackTraceString(e)); - } - } - } - - private static void rateNow() { - Context context = mContext.get(); - if (context == null) { - return; - } - IntentUtils.openInBrowser(context, "https://play.google.com/store/apps/details?id=de.danoeh.antennapod"); - saveRated(); - } - - private static boolean rated() { - return mPreferences.getBoolean(KEY_RATED, false); - } - - @VisibleForTesting - public static void saveRated() { - mPreferences - .edit() - .putBoolean(KEY_RATED, true) - .apply(); - } - - private static void resetStartDate() { - mPreferences - .edit() - .putLong(KEY_FIRST_START_DATE, System.currentTimeMillis()) - .apply(); - } - - private static boolean shouldShow() { - if (rated()) { - return false; - } - - long now = System.currentTimeMillis(); - long firstDate = mPreferences.getLong(KEY_FIRST_START_DATE, now); - long diff = now - firstDate; - long diffDays = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); - return diffDays >= AFTER_DAYS; - } - - @Nullable - private static AlertDialog createDialog() { - Context context = mContext.get(); - if (context == null) { - return null; - } - return new AlertDialog.Builder(context) - .setTitle(R.string.rating_title) - .setMessage(R.string.rating_message) - .setPositiveButton(R.string.rating_now_label, (dialog, which) -> rateNow()) - .setNegativeButton(R.string.rating_never_label, (dialog, which) -> saveRated()) - .setNeutralButton(R.string.rating_later_label, (dialog, which) -> resetStartDate()) - .setOnCancelListener(dialog1 -> resetStartDate()) - .create(); - } -} -- cgit v1.2.3