That fuck shit the fascists are using
at master 63 lines 2.5 kB view raw
1package org.tm.archive.components; 2 3import android.content.Context; 4import android.content.DialogInterface; 5 6import com.google.android.material.dialog.MaterialAlertDialogBuilder; 7 8import org.signal.core.util.logging.Log; 9import org.tm.archive.BuildConfig; 10import org.tm.archive.R; 11import org.tm.archive.util.PlayStoreUtil; 12import org.tm.archive.util.TextSecurePreferences; 13import org.tm.archive.util.VersionTracker; 14 15import java.util.concurrent.TimeUnit; 16 17public class RatingManager { 18 19 private static final int DAYS_SINCE_INSTALL_THRESHOLD = 7; 20 private static final int DAYS_UNTIL_REPROMPT_THRESHOLD = 4; 21 22 private static final String TAG = Log.tag(RatingManager.class); 23 24 public static void showRatingDialogIfNecessary(Context context) { 25 if (!TextSecurePreferences.isRatingEnabled(context) || BuildConfig.MANAGES_APP_UPDATES) return; 26 27 long daysSinceInstall = VersionTracker.getDaysSinceFirstInstalled(context); 28 long laterTimestamp = TextSecurePreferences.getRatingLaterTimestamp(context); 29 30 if (daysSinceInstall >= DAYS_SINCE_INSTALL_THRESHOLD && 31 System.currentTimeMillis() >= laterTimestamp) 32 { 33 showRatingDialog(context); 34 } 35 } 36 37 private static void showRatingDialog(final Context context) { 38 new MaterialAlertDialogBuilder(context) 39 .setTitle(R.string.RatingManager_rate_this_app) 40 .setMessage(R.string.RatingManager_if_you_enjoy_using_this_app_please_take_a_moment) 41 .setPositiveButton(R.string.RatingManager_rate_now, new DialogInterface.OnClickListener() { 42 @Override 43 public void onClick(DialogInterface dialog, int which) { 44 TextSecurePreferences.setRatingEnabled(context, false); 45 PlayStoreUtil.openPlayStoreOrOurApkDownloadPage(context); 46 } 47 }) 48 .setNegativeButton(R.string.RatingManager_no_thanks, new DialogInterface.OnClickListener() { 49 @Override 50 public void onClick(DialogInterface dialog, int which) { 51 TextSecurePreferences.setRatingEnabled(context, false); 52 } 53 }) 54 .setNeutralButton(R.string.RatingManager_later, new DialogInterface.OnClickListener() { 55 @Override 56 public void onClick(DialogInterface dialog, int which) { 57 long waitUntil = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(DAYS_UNTIL_REPROMPT_THRESHOLD); 58 TextSecurePreferences.setRatingLaterTimestamp(context, waitUntil); 59 } 60 }) 61 .show(); 62 } 63}