From 73a4dcdcb72fcd45d683c2c60296defe3d586566 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Mon, 16 Jul 2018 11:58:26 +0200 Subject: [PATCH] don't ask for 24h if user cancels dialog (eg clicking outside) --- .../org/sufficientlysecure/keychain/Constants.java | 1 + .../keychain/ui/KeyListFragment.java | 11 ++++++++++- .../sufficientlysecure/keychain/util/Preferences.java | 9 +++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java index 6da7283a1..0cc871a3a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java @@ -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"; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 3ed742297..289d492c4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -284,7 +284,8 @@ public class KeyListFragment extends RecyclerFragment twentyFourHoursAgo; + if (askedLessThan24HoursAgo) { + return; + } + + preferences.setAnalyticsLastAskedNow(); + TrackingManager trackingManager = ((KeychainApplication) requireActivity().getApplication()).getTrackingManager(); AlertDialog show = new Builder(context) .setMessage(R.string.dialog_analytics_text) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index f73baf6c3..26a8d05d7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -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();