diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 0eb27731ec..eee5042826 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -2658,16 +2658,13 @@ public class ConversationParentFragment extends Fragment TextView message = smsExportStub.get().findViewById(R.id.export_sms_message); MaterialButton actionButton = smsExportStub.get().findViewById(R.id.export_sms_button); - boolean isPhase1 = SignalStore.misc().getSmsExportPhase() == SmsExportPhase.PHASE_1; if (conversationSecurityInfo.getHasUnexportedInsecureMessages()) { - message.setText(isPhase1 ? R.string.ConversationActivity__sms_messaging_is_currently_disabled_you_can_export_your_messages_to_another_app_on_your_phone - : R.string.ConversationActivity__sms_messaging_is_no_longer_supported_in_signal_you_can_export_your_messages_to_another_app_on_your_phone); + message.setText(R.string.ConversationActivity__sms_messaging_is_no_longer_supported_in_signal_you_can_export_your_messages_to_another_app_on_your_phone); actionButton.setText(R.string.ConversationActivity__export_sms_messages); actionButton.setOnClickListener(v -> startActivity(SmsExportActivity.createIntent(requireContext()))); } else { - message.setText(requireContext().getString(isPhase1 ? R.string.ConversationActivity__sms_messaging_is_currently_disabled_invite_s_to_to_signal_to_keep_the_conversation_here - : R.string.ConversationActivity__sms_messaging_is_no_longer_supported_in_signal_invite_s_to_to_signal_to_keep_the_conversation_here, + message.setText(requireContext().getString(R.string.ConversationActivity__sms_messaging_is_no_longer_supported_in_signal_invite_s_to_to_signal_to_keep_the_conversation_here, recipient.getDisplayName(requireContext()))); actionButton.setText(R.string.ConversationActivity__invite_to_signal); actionButton.setOnClickListener(v -> handleInviteLink()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index 895d78a174..9dff9c0bf5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -699,7 +699,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - if (requestCode == SmsExportMegaphoneActivity.REQUEST_CODE && SignalStore.misc().getSmsExportPhase().isFullscreen()) { + if (requestCode == SmsExportMegaphoneActivity.REQUEST_CODE) { ApplicationDependencies.getMegaphoneRepository().markSeen(Megaphones.Event.SMS_EXPORT); if (resultCode == RESULT_CANCELED) { Snackbar.make(fab, R.string.ConversationActivity__you_will_be_reminded_again_soon, Snackbar.LENGTH_LONG).show(); 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 f5ce62664f..b36a45d2c3 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,11 +9,8 @@ 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. @@ -42,8 +39,7 @@ 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.bullet1Text.text = getString(R.string.SmsRemoval_info_bullet_1) 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 87160543c6..72975261ee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.java @@ -232,24 +232,12 @@ public final class MiscellaneousValues extends SignalStoreValues { putBoolean(PNI_INITIALIZED_DEVICES, value); } - public void startSmsPhase1() { - if (!getStore().containsKey(SMS_PHASE_1_START_MS)) { - putLong(SMS_PHASE_1_START_MS, System.currentTimeMillis()); - } - } - public @NonNull SmsExportPhase getSmsExportPhase() { long now = System.currentTimeMillis(); 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(); - } - public void setHasLinkedDevices(boolean value) { putBoolean(HAS_LINKED_DEVICES, value); } 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 7d60b7c463..8f604243ca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SmsExportPhase.kt @@ -5,8 +5,7 @@ import org.thoughtcrime.securesms.util.Util import kotlin.time.Duration.Companion.days enum class SmsExportPhase(val duration: Long) { - PHASE_1(0.days.inWholeMilliseconds), - PHASE_2(21.days.inWholeMilliseconds), + PHASE_2(0.days.inWholeMilliseconds), PHASE_3(51.days.inWholeMilliseconds); fun allowSmsFeatures(): Boolean { @@ -17,10 +16,6 @@ enum class SmsExportPhase(val duration: Long) { return this != PHASE_3 } - fun isFullscreen(): Boolean { - return this.ordinal > PHASE_1.ordinal - } - fun isBlockingUi(): Boolean { return this == PHASE_3 } 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 b2ade31a82..4bf6816fca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -368,33 +368,19 @@ public final class Megaphones { private static @NonNull Megaphone buildSmsExportMegaphone(@NonNull Context context) { SmsExportPhase phase = SignalStore.misc().getSmsExportPhase(); - if (phase == SmsExportPhase.PHASE_1) { - return new Megaphone.Builder(Event.SMS_EXPORT, Megaphone.Style.BASIC) - .setTitle(R.string.SmsExportMegaphone__sms_support_going_away) - .setImage(R.drawable.sms_megaphone) - .setBody(R.string.SmsExportMegaphone__dont_worry_encrypted_signal_messages_will_continue_to_work) - .setActionButton(R.string.SmsExportMegaphone__continue, (megaphone, controller) -> { - controller.onMegaphoneSnooze(Event.SMS_EXPORT); - controller.onMegaphoneNavigationRequested(SmsExportActivity.createIntent(context, true), SmsExportMegaphoneActivity.REQUEST_CODE); - }) - .setSecondaryButton(R.string.Megaphones_remind_me_later, (megaphone, controller) -> controller.onMegaphoneSnooze(Event.SMS_EXPORT)) - .setOnVisibleListener((megaphone, controller) -> SignalStore.misc().startSmsPhase1()) - .build(); - } else { - Megaphone.Builder builder = new Megaphone.Builder(Event.SMS_EXPORT, Megaphone.Style.FULLSCREEN) - .setOnVisibleListener((megaphone, controller) -> { - if (phase.isBlockingUi()) { - SmsExportReminderSchedule.setShowPhase3Megaphone(false); - } - controller.onMegaphoneNavigationRequested(new Intent(context, SmsExportMegaphoneActivity.class), SmsExportMegaphoneActivity.REQUEST_CODE); - }); + Megaphone.Builder builder = new Megaphone.Builder(Event.SMS_EXPORT, Megaphone.Style.FULLSCREEN) + .setOnVisibleListener((megaphone, controller) -> { + if (phase.isBlockingUi()) { + SmsExportReminderSchedule.setShowPhase3Megaphone(false); + } + controller.onMegaphoneNavigationRequested(new Intent(context, SmsExportMegaphoneActivity.class), SmsExportMegaphoneActivity.REQUEST_CODE); + }); - if (phase.isBlockingUi()) { - builder.disableSnooze(); - } - - return builder.build(); + if (phase.isBlockingUi()) { + builder.disableSnooze(); } + + return builder.build(); } public static @NonNull Megaphone buildSetUpYourUsernameMegaphone(@NonNull Context context) { 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 f3a740b3a0..10c418ae19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportMegaphoneActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportMegaphoneActivity.kt @@ -12,11 +12,9 @@ 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() { @@ -55,8 +53,7 @@ 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.bullet1Text.text = getString(R.string.SmsRemoval_info_bullet_1) binding.headline.setText(R.string.SmsExportMegaphoneActivity__signal_will_no_longer_support_sms) binding.laterButton.setOnClickListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportReminderSchedule.kt b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportReminderSchedule.kt index 17426e73c0..b1c6ee6df0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportReminderSchedule.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SmsExportReminderSchedule.kt @@ -14,14 +14,12 @@ class SmsExportReminderSchedule(private val context: Context) : MegaphoneSchedul var showPhase3Megaphone = true } - private val basicMegaphoneSchedule = RecurringSchedule(3.days.inWholeMilliseconds) private val fullScreenSchedule = RecurringSchedule(1.days.inWholeMilliseconds) @WorkerThread override fun shouldDisplay(seenCount: Int, lastSeen: Long, firstVisible: Long, currentTime: Long): Boolean { return if (Util.isDefaultSmsProvider(context)) { when (SignalStore.misc().smsExportPhase) { - SmsExportPhase.PHASE_1 -> basicMegaphoneSchedule.shouldDisplay(seenCount, lastSeen, firstVisible, currentTime) SmsExportPhase.PHASE_2 -> fullScreenSchedule.shouldDisplay(seenCount, lastSeen, firstVisible, currentTime) SmsExportPhase.PHASE_3 -> showPhase3Megaphone } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 481ea5636d..6e826c07b2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5896,7 +5896,7 @@ SMS support is going away - SMS messaging in the Signal app will soon no longer be supported on %1$s. + SMS messaging in the Signal app will soon no longer be supported. SMS messages are different than Signal messages. This does not affect encrypted Signal messaging which will continue to work.