That fuck shit the fascists are using
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}