From 686219d47381075bd026793d1f16e01b36bd08d8 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 18 Nov 2021 14:02:55 -0400 Subject: [PATCH] Remove old donate megaphone and replace with sustainer megaphone. --- .../securesms/megaphone/Megaphones.java | 33 +++++-------------- .../securesms/util/FeatureFlags.java | 8 +---- .../main/res/drawable/ic_donate_megaphone.xml | 12 ------- app/src/main/res/values/strings.xml | 7 ---- 4 files changed, 9 insertions(+), 51 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_donate_megaphone.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java index 1c943657e..09afe9e48 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -13,6 +13,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.TranslationDetection; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.badges.models.Badge; import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity; import org.thoughtcrime.securesms.conversationlist.ConversationListFragment; import org.thoughtcrime.securesms.database.model.MegaphoneRecord; @@ -102,13 +103,12 @@ public final class Megaphones { put(Event.LINK_PREVIEWS, shouldShowLinkPreviewsMegaphone(context) ? ALWAYS : NEVER); put(Event.CLIENT_DEPRECATED, SignalStore.misc().isClientDeprecated() ? ALWAYS : NEVER); put(Event.RESEARCH, shouldShowResearchMegaphone(context) ? ShowForDurationSchedule.showForDays(7) : NEVER); - put(Event.DONATE, shouldShowDonateMegaphone(context) ? ShowForDurationSchedule.showForDays(7) : NEVER); put(Event.GROUP_CALLING, shouldShowGroupCallingMegaphone() ? ALWAYS : NEVER); put(Event.ONBOARDING, shouldShowOnboardingMegaphone(context) ? ALWAYS : NEVER); put(Event.NOTIFICATIONS, shouldShowNotificationsMegaphone(context) ? RecurringSchedule.every(TimeUnit.DAYS.toMillis(30)) : NEVER); put(Event.CHAT_COLORS, ALWAYS); put(Event.ADD_A_PROFILE_PHOTO, shouldShowAddAProfilePhotoMegaphone(context) ? ALWAYS : NEVER); - put(Event.BECOME_A_SUSTAINER, shouldShowBecomeASustainerMegaphone() ? ALWAYS : NEVER); + put(Event.BECOME_A_SUSTAINER, shouldShowDonateMegaphone(context) ? ShowForDurationSchedule.showForDays(7) : NEVER); }}; } @@ -128,8 +128,6 @@ public final class Megaphones { return buildClientDeprecatedMegaphone(context); case RESEARCH: return buildResearchMegaphone(context); - case DONATE: - return buildDonateMegaphone(context); case GROUP_CALLING: return buildGroupCallingMegaphone(context); case ONBOARDING: @@ -253,21 +251,6 @@ public final class Megaphones { .build(); } - private static @NonNull Megaphone buildDonateMegaphone(@NonNull Context context) { - return new Megaphone.Builder(Event.DONATE, Megaphone.Style.BASIC) - .disableSnooze() - .setTitle(R.string.DonateMegaphone_donate_to_signal) - .setBody(R.string.DonateMegaphone_Signal_is_powered_by_people_like_you_show_your_support_today) - .setImage(R.drawable.ic_donate_megaphone) - .setActionButton(R.string.DonateMegaphone_donate, (megaphone, controller) -> { - controller.onMegaphoneCompleted(megaphone.getEvent()); - CommunicationActions.openBrowserLink(controller.getMegaphoneActivity(), context.getString(R.string.donate_url)); - }) - .setSecondaryButton(R.string.DonateMegaphone_no_thanks, (megaphone, controller) -> controller.onMegaphoneCompleted(megaphone.getEvent())) - .setPriority(Megaphone.Priority.DEFAULT) - .build(); - } - private static @NonNull Megaphone buildGroupCallingMegaphone(@NonNull Context context) { return new Megaphone.Builder(Event.GROUP_CALLING, Megaphone.Style.BASIC) .disableSnooze() @@ -368,7 +351,12 @@ public final class Megaphones { } private static boolean shouldShowDonateMegaphone(@NonNull Context context) { - return VersionTracker.getDaysSinceFirstInstalled(context) > 7 && LocaleFeatureFlags.isInDonateMegaphone(); + return VersionTracker.getDaysSinceFirstInstalled(context) > 7 && LocaleFeatureFlags.isInDonateMegaphone() && + Recipient.self() + .getBadges() + .stream() + .filter(Objects::nonNull) + .noneMatch(badge -> badge.getCategory() == Badge.Category.Donor); } private static boolean shouldShowLinkPreviewsMegaphone(@NonNull Context context) { @@ -383,10 +371,6 @@ public final class Megaphones { return SignalStore.onboarding().hasOnboarding(context); } - private static boolean shouldShowBecomeASustainerMegaphone() { - return FeatureFlags.donorBadgesMegaphone(); - } - private static boolean shouldShowNotificationsMegaphone(@NonNull Context context) { boolean shouldShow = !SignalStore.settings().isMessageNotificationsEnabled() || !NotificationChannels.isMessageChannelEnabled(context) || @@ -428,7 +412,6 @@ public final class Megaphones { LINK_PREVIEWS("link_previews"), CLIENT_DEPRECATED("client_deprecated"), RESEARCH("research"), - DONATE("donate"), GROUP_CALLING("group_calling"), ONBOARDING("onboarding"), NOTIFICATIONS("notifications"), diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index 66d53a8af..8a3470069 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -61,7 +61,7 @@ public final class FeatureFlags { private static final String VERIFY_V2 = "android.verifyV2"; private static final String PHONE_NUMBER_PRIVACY_VERSION = "android.phoneNumberPrivacyVersion"; private static final String CLIENT_EXPIRATION = "android.clientExpiration"; - public static final String DONATE_MEGAPHONE = "android.donate"; + public static final String DONATE_MEGAPHONE = "android.donate.2"; private static final String CUSTOM_VIDEO_MUXER = "android.customVideoMuxer"; private static final String CDS_REFRESH_INTERVAL = "cds.syncInterval.seconds"; private static final String AUTOMATIC_SESSION_RESET = "android.automaticSessionReset.2"; @@ -85,7 +85,6 @@ public final class FeatureFlags { private static final String GROUP_CALL_RINGING = "android.calling.groupCallRinging"; private static final String CHANGE_NUMBER_ENABLED = "android.changeNumber"; private static final String DONOR_BADGES = "android.donorBadges.6"; - private static final String DONOR_BADGES_MEGAPHONE = "android.donorBadges.megaphone.3"; private static final String DONOR_BADGES_DISPLAY = "android.donorBadges.display.4"; private static final String CDSH = "android.cdsh"; @@ -127,7 +126,6 @@ public final class FeatureFlags { CDSH, SENDER_KEY_MAX_AGE, DONOR_BADGES, - DONOR_BADGES_MEGAPHONE, DONOR_BADGES_DISPLAY ); @@ -419,10 +417,6 @@ public final class FeatureFlags { } } - public static boolean donorBadgesMegaphone() { - return getBoolean(DONOR_BADGES_MEGAPHONE, false); - } - /** * Whether or not donor badges should be displayed throughout the app. */ diff --git a/app/src/main/res/drawable/ic_donate_megaphone.xml b/app/src/main/res/drawable/ic_donate_megaphone.xml deleted file mode 100644 index 6f2160559..000000000 --- a/app/src/main/res/drawable/ic_donate_megaphone.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e11617b7d..430cd278a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -505,13 +505,6 @@ Unnamed file - - - Donate to Signal - Signal is powered by people like you. Show your support today! - Donate - No Thanks - Introducing Group Calls Open a New Group to start a free encrypted group call