don't ask for 24h if user cancels dialog (eg clicking outside)

This commit is contained in:
Vincent Breitmoser
2018-07-16 11:58:26 +02:00
parent c5d7e482e0
commit 73a4dcdcb7
3 changed files with 20 additions and 1 deletions

View File

@@ -160,6 +160,7 @@ public final class Constants {
public static final String KEY_ANALYTICS_ASKED_POLITELY = "analytics_asked";
public static final String KEY_ANALYTICS_CONSENT = "analytics_consent";
public static final String KEY_ANALYTICS_LAST_ASKED = "analytics_last_asked";
public static final class Theme {
public static final String LIGHT = "light";

View File

@@ -284,7 +284,8 @@ public class KeyListFragment extends RecyclerFragment<FlexibleAdapter<FlexibleKe
}
Preferences preferences = Preferences.getPreferences(context);
if (!Constants.DEBUG && !preferences.isAnalyticsHasConsent() && preferences.isAnalyticsAskedPolitely()) {
boolean askedBeforeAndWasRejected = preferences.isAnalyticsAskedPolitely() && !preferences.isAnalyticsHasConsent();
if (!Constants.DEBUG && askedBeforeAndWasRejected) {
return;
}
@@ -299,6 +300,14 @@ public class KeyListFragment extends RecyclerFragment<FlexibleAdapter<FlexibleKe
return;
}
long twentyFourHoursAgo = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1);
boolean askedLessThan24HoursAgo = preferences.getAnalyticsLastAsked() > twentyFourHoursAgo;
if (askedLessThan24HoursAgo) {
return;
}
preferences.setAnalyticsLastAskedNow();
TrackingManager trackingManager = ((KeychainApplication) requireActivity().getApplication()).getTrackingManager();
AlertDialog show = new Builder(context)
.setMessage(R.string.dialog_analytics_text)

View File

@@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.util;
import java.net.Proxy;
import java.util.ArrayList;
import java.util.Date;
import java.util.ListIterator;
import android.annotation.SuppressLint;
@@ -369,6 +370,14 @@ public class Preferences {
mSharedPreferences.edit().putBoolean(Pref.KEY_ANALYTICS_CONSENT, hasUserConsent).apply();
}
public void setAnalyticsLastAskedNow() {
mSharedPreferences.edit().putLong(Pref.KEY_ANALYTICS_LAST_ASKED, System.currentTimeMillis()).apply();
}
public long getAnalyticsLastAsked() {
return mSharedPreferences.getLong(Pref.KEY_ANALYTICS_LAST_ASKED, 0);
}
@AutoValue
public static abstract class CloudSearchPrefs implements Parcelable {
public abstract boolean isKeyserverEnabled();