From 1f31f4a50a0a49c80070913c593b85f2ff715a13 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 3 Feb 2023 19:25:40 -0500 Subject: [PATCH] Adjust SMS phases and show Phase 3 start date. --- .../exporter/flow/SmsRemovalInformationFragment.kt | 6 ++++++ .../securesms/keyvalue/MiscellaneousValues.java | 6 ++++++ .../org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt | 4 ++-- .../securesms/megaphone/SmsExportMegaphoneActivity.kt | 5 +++++ .../java/org/thoughtcrime/securesms/util/DateUtils.java | 4 ++++ .../main/res/layout/sms_removal_information_fragment.xml | 4 ++-- app/src/main/res/values/strings.xml | 4 ++-- 7 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/exporter/flow/SmsRemovalInformationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/exporter/flow/SmsRemovalInformationFragment.kt index 8803776009..f5ce62664f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/exporter/flow/SmsRemovalInformationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/exporter/flow/SmsRemovalInformationFragment.kt @@ -9,8 +9,11 @@ import androidx.navigation.fragment.findNavController import org.thoughtcrime.securesms.LoggingFragment import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.databinding.SmsRemovalInformationFragmentBinding +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.CommunicationActions +import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.navigation.safeNavigate +import java.util.Locale /** * Fragment shown when entering the sms export flow from the basic megaphone. @@ -39,6 +42,9 @@ class SmsRemovalInformationFragment : LoggingFragment() { } } + val phase3Start = DateUtils.formatDateWithMonthAndDay(Locale.getDefault(), SignalStore.misc().smsPhase3Start) + binding.bullet1Text.text = getString(R.string.SmsRemoval_info_bullet_1_s, phase3Start) + binding.toolbar.setNavigationOnClickListener(goBackClickListener) binding.laterButton.setOnClickListener(goBackClickListener) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.java index 4ebde083c4..907b1698d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.java @@ -236,4 +236,10 @@ public final class MiscellaneousValues extends SignalStoreValues { long phase1StartMs = getLong(SMS_PHASE_1_START_MS, now); return SmsExportPhase.getCurrentPhase(now - phase1StartMs); } + + public long getSmsPhase3Start() { + long now = System.currentTimeMillis(); + long phase1StartMs = getLong(SMS_PHASE_1_START_MS, now); + return phase1StartMs + SmsExportPhase.PHASE_3.getDuration(); + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt index 106aeacb42..7d60b7c463 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt @@ -6,8 +6,8 @@ import kotlin.time.Duration.Companion.days enum class SmsExportPhase(val duration: Long) { PHASE_1(0.days.inWholeMilliseconds), - PHASE_2(45.days.inWholeMilliseconds), - PHASE_3(105.days.inWholeMilliseconds); + PHASE_2(21.days.inWholeMilliseconds), + PHASE_3(51.days.inWholeMilliseconds); fun allowSmsFeatures(): Boolean { return Util.isDefaultSmsProvider(ApplicationDependencies.getApplication()) && SignalStore.misc().smsExportPhase.isSmsSupported() diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportMegaphoneActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportMegaphoneActivity.kt index c9a70573c9..f3a740b3a0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportMegaphoneActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportMegaphoneActivity.kt @@ -12,9 +12,11 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.exporter.flow.SmsExportActivity import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.CommunicationActions +import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme import org.thoughtcrime.securesms.util.DynamicTheme import org.thoughtcrime.securesms.util.visible +import java.util.Locale class SmsExportMegaphoneActivity : PassphraseRequiredActivity() { @@ -53,6 +55,9 @@ class SmsExportMegaphoneActivity : PassphraseRequiredActivity() { binding.laterButton.visible = false binding.bullet1Text.setText(R.string.SmsRemoval_info_bullet_1_phase_3) } else { + val phase3Start = DateUtils.formatDateWithMonthAndDay(Locale.getDefault(), SignalStore.misc().smsPhase3Start) + binding.bullet1Text.text = getString(R.string.SmsRemoval_info_bullet_1_s, phase3Start) + binding.headline.setText(R.string.SmsExportMegaphoneActivity__signal_will_no_longer_support_sms) binding.laterButton.setOnClickListener { onBackPressed() diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.java b/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.java index 4775c657e4..6c6c91bb2f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.java @@ -259,6 +259,10 @@ public class DateUtils extends android.text.format.DateUtils { return getFormattedDateTime(timestamp, "EEE, MMM d, yyyy", locale); } + public static String formatDateWithMonthAndDay(@NonNull Locale locale, long timestamp) { + return getFormattedDateTime(timestamp, "MMMM dd", locale); + } + public static String formatDateWithoutDayOfWeek(@NonNull Locale locale, long timestamp) { return getFormattedDateTime(timestamp, "MMM d yyyy", locale); } diff --git a/app/src/main/res/layout/sms_removal_information_fragment.xml b/app/src/main/res/layout/sms_removal_information_fragment.xml index 6fe358578a..dbc59e9b67 100644 --- a/app/src/main/res/layout/sms_removal_information_fragment.xml +++ b/app/src/main/res/layout/sms_removal_information_fragment.xml @@ -52,13 +52,13 @@ android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="32dp" - android:text="@string/SmsRemoval_info_bullet_1" android:textAlignment="viewStart" android:textAppearance="@style/Signal.Text.BodyLarge" android:textColor="@color/signal_colorOnSurfaceVariant" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/bullet_1" - app:layout_constraintTop_toBottomOf="@id/headline" /> + app:layout_constraintTop_toBottomOf="@id/headline" + tools:text="@string/SmsRemoval_info_bullet_1_s" /> SMS support is going away - - SMS messaging in the Signal app will soon no longer be supported. + + SMS messaging in the Signal app will soon no longer be supported on %1$s. SMS messages are different than Signal messages. This does not affect encrypted Signal messaging which will continue to work.