From 2f80e7f1ffbc86725c6e2813cbdde43895adf02c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 18 May 2021 19:26:25 -0400 Subject: [PATCH] Put the default message timer behind a feature flag. --- .../app/privacy/PrivacySettingsFragment.kt | 26 ++++++++++--------- .../securesms/keyvalue/SettingsValues.java | 7 ++++- .../securesms/util/FeatureFlags.java | 11 ++++++-- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt index 947d3fb42..5ccf54ece 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsFragment.kt @@ -138,22 +138,24 @@ class PrivacySettingsFragment : DSLSettingsFragment(R.string.preferences__privac } ) - dividerPref() + if (FeatureFlags.defaultMessageTimer()) { + dividerPref() - sectionHeaderPref(R.string.PrivacySettingsFragment__disappearing_messages) + sectionHeaderPref(R.string.PrivacySettingsFragment__disappearing_messages) - customPref( - ValueClickPreference( - value = DSLSettingsText.from(ExpirationUtil.getExpirationAbbreviatedDisplayValue(requireContext(), state.universalExpireTimer)), - clickPreference = ClickPreference( - title = DSLSettingsText.from(R.string.PrivacySettingsFragment__default_timer_for_new_changes), - summary = DSLSettingsText.from(R.string.PrivacySettingsFragment__set_a_default_disappearing_message_timer_for_all_new_chats_started_by_you), - onClick = { - NavHostFragment.findNavController(this@PrivacySettingsFragment).navigate(R.id.action_privacySettingsFragment_to_disappearingMessagesTimerSelectFragment) - } + customPref( + ValueClickPreference( + value = DSLSettingsText.from(ExpirationUtil.getExpirationAbbreviatedDisplayValue(requireContext(), state.universalExpireTimer)), + clickPreference = ClickPreference( + title = DSLSettingsText.from(R.string.PrivacySettingsFragment__default_timer_for_new_changes), + summary = DSLSettingsText.from(R.string.PrivacySettingsFragment__set_a_default_disappearing_message_timer_for_all_new_chats_started_by_you), + onClick = { + NavHostFragment.findNavController(this@PrivacySettingsFragment).navigate(R.id.action_privacySettingsFragment_to_disappearingMessagesTimerSelectFragment) + } + ) ) ) - ) + } dividerPref() diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java index 615a583b1..76ab7d769 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java @@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.storage.StorageSyncHelper; +import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.SingleLiveEvent; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.signal.core.util.logging.Log; @@ -380,7 +381,11 @@ public final class SettingsValues extends SignalStoreValues { } public int getUniversalExpireTimer() { - return getInteger(UNIVERSAL_EXPIRE_TIMER, 0); + if (FeatureFlags.defaultMessageTimer()) { + return getInteger(UNIVERSAL_EXPIRE_TIMER, 0); + } else { + return 0; + } } private @Nullable Uri getUri(@NonNull String key) { 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 970831be9..06ff65f1d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -81,6 +81,7 @@ public final class FeatureFlags { private static final String MP4_GIF_SEND_SUPPORT = "android.mp4GifSendSupport"; private static final String MEDIA_QUALITY_LEVELS = "android.mediaQuality.levels"; private static final String GROUPS_V2_DESCRIPTION_VERSION = "android.groupsv2.descriptionVersion"; + private static final String DEFAULT_MESSAGE_TIMER = "android.defaultMessageTimer"; /** * We will only store remote values for flags in this set. If you want a flag to be controllable @@ -115,7 +116,8 @@ public final class FeatureFlags { NOTIFICATION_REWRITE, MP4_GIF_SEND_SUPPORT, MEDIA_QUALITY_LEVELS, - GROUPS_V2_DESCRIPTION_VERSION + GROUPS_V2_DESCRIPTION_VERSION, + DEFAULT_MESSAGE_TIMER ); @VisibleForTesting @@ -162,7 +164,8 @@ public final class FeatureFlags { NOTIFICATION_REWRITE, MP4_GIF_SEND_SUPPORT, MEDIA_QUALITY_LEVELS, - GROUPS_V2_DESCRIPTION_VERSION + GROUPS_V2_DESCRIPTION_VERSION, + DEFAULT_MESSAGE_TIMER ); /** @@ -366,6 +369,10 @@ public final class FeatureFlags { return getVersionFlag(GROUPS_V2_DESCRIPTION_VERSION) == VersionFlag.ON; } + public static boolean defaultMessageTimer() { + return getBoolean(DEFAULT_MESSAGE_TIMER, false); + } + /** Only for rendering debug info. */ public static synchronized @NonNull Map getMemoryValues() { return new TreeMap<>(REMOTE_VALUES);