Skip to content

Commit fe6ae7e

Browse files
Don't show donate or research megaphones on new app installs.
1 parent 0da6c83 commit fe6ae7e

3 files changed

Lines changed: 25 additions & 20 deletions

File tree

app/src/main/java/org/thoughtcrime/securesms/components/RatingManager.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import org.thoughtcrime.securesms.R;
1414
import org.thoughtcrime.securesms.util.TextSecurePreferences;
15+
import org.thoughtcrime.securesms.util.VersionTracker;
1516

1617
import java.util.concurrent.TimeUnit;
1718

@@ -25,7 +26,7 @@ public class RatingManager {
2526
public static void showRatingDialogIfNecessary(Context context) {
2627
if (!TextSecurePreferences.isRatingEnabled(context)) return;
2728

28-
long daysSinceInstall = getDaysSinceInstalled(context);
29+
long daysSinceInstall = VersionTracker.getDaysSinceFirstInstalled(context);
2930
long laterTimestamp = TextSecurePreferences.getRatingLaterTimestamp(context);
3031

3132
if (daysSinceInstall >= DAYS_SINCE_INSTALL_THRESHOLD &&
@@ -72,17 +73,4 @@ private static void startPlayStore(Context context) {
7273
}
7374
}
7475

75-
private static long getDaysSinceInstalled(Context context) {
76-
try {
77-
long installTimestamp = context.getPackageManager()
78-
.getPackageInfo(context.getPackageName(), 0)
79-
.firstInstallTime;
80-
81-
return TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis() - installTimestamp);
82-
} catch (PackageManager.NameNotFoundException e) {
83-
Log.w(TAG, e);
84-
return 0;
85-
}
86-
}
87-
8876
}

app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.thoughtcrime.securesms.util.FeatureFlags;
2727
import org.thoughtcrime.securesms.util.PopulationFeatureFlags;
2828
import org.thoughtcrime.securesms.util.TextSecurePreferences;
29+
import org.thoughtcrime.securesms.util.VersionTracker;
2930

3031
import java.util.LinkedHashMap;
3132
import java.util.List;
@@ -89,8 +90,8 @@ private static Map<Event, MegaphoneSchedule> buildDisplayOrder(@NonNull Context
8990
put(Event.MESSAGE_REQUESTS, shouldShowMessageRequestsMegaphone() ? ALWAYS : NEVER);
9091
put(Event.LINK_PREVIEWS, shouldShowLinkPreviewsMegaphone(context) ? ALWAYS : NEVER);
9192
put(Event.CLIENT_DEPRECATED, SignalStore.misc().isClientDeprecated() ? ALWAYS : NEVER);
92-
put(Event.RESEARCH, shouldShowResearchMegaphone() ? ShowForDurationSchedule.showForDays(7) : NEVER);
93-
put(Event.DONATE, shouldShowDonateMegaphone() ? ShowForDurationSchedule.showForDays(7) : NEVER);
93+
put(Event.RESEARCH, shouldShowResearchMegaphone(context) ? ShowForDurationSchedule.showForDays(7) : NEVER);
94+
put(Event.DONATE, shouldShowDonateMegaphone(context) ? ShowForDurationSchedule.showForDays(7) : NEVER);
9495
}};
9596
}
9697

@@ -242,12 +243,12 @@ private static boolean shouldShowMessageRequestsMegaphone() {
242243
return Recipient.self().getProfileName() == ProfileName.EMPTY;
243244
}
244245

245-
private static boolean shouldShowResearchMegaphone() {
246-
return PopulationFeatureFlags.isInResearchMegaphone();
246+
private static boolean shouldShowResearchMegaphone(@NonNull Context context) {
247+
return VersionTracker.getDaysSinceFirstInstalled(context) > 7 && PopulationFeatureFlags.isInResearchMegaphone();
247248
}
248249

249-
private static boolean shouldShowDonateMegaphone() {
250-
return PopulationFeatureFlags.isInDonateMegaphone();
250+
private static boolean shouldShowDonateMegaphone(@NonNull Context context) {
251+
return VersionTracker.getDaysSinceFirstInstalled(context) > 7 && PopulationFeatureFlags.isInDonateMegaphone();
251252
}
252253

253254
private static boolean shouldShowLinkPreviewsMegaphone(@NonNull Context context) {

app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package org.thoughtcrime.securesms.util;
22

33
import android.content.Context;
4+
import android.content.pm.PackageManager;
5+
46
import androidx.annotation.NonNull;
57

68
import org.thoughtcrime.securesms.keyvalue.SignalStore;
79
import org.thoughtcrime.securesms.logging.Log;
810

911
import java.io.IOException;
12+
import java.util.concurrent.TimeUnit;
1013

1114
public class VersionTracker {
1215

@@ -30,4 +33,17 @@ public static void updateLastSeenVersion(@NonNull Context context) {
3033
throw new AssertionError(ioe);
3134
}
3235
}
36+
37+
public static long getDaysSinceFirstInstalled(Context context) {
38+
try {
39+
long installTimestamp = context.getPackageManager()
40+
.getPackageInfo(context.getPackageName(), 0)
41+
.firstInstallTime;
42+
43+
return TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis() - installTimestamp);
44+
} catch (PackageManager.NameNotFoundException e) {
45+
Log.w(TAG, e);
46+
return 0;
47+
}
48+
}
3349
}

0 commit comments

Comments
 (0)