From b211c8bffb499fa7c7927984716fb4069fb1b034 Mon Sep 17 00:00:00 2001 From: andrew Date: Mon, 9 Oct 2023 12:44:48 +1030 Subject: [PATCH] Rename ExpirationSettings to DisappearingMessages --- app/src/main/AndroidManifest.xml | 2 +- .../conversation/ConversationActionBarView.kt | 4 +- .../DisappearingMessagesActivity.kt} | 21 ++++--- .../DisappearingMessagesViewModel.kt} | 15 +++-- .../ui/DisappearingMessages.kt} | 60 +++--------------- .../ui/DisappearingMessagesPreview.kt | 63 +++++++++++++++++++ .../conversation/v2/ConversationActivityV2.kt | 17 +++-- .../v2/menus/ConversationMenuHelper.kt | 8 +-- .../securesms/database/Storage.kt | 1 - .../thoughtcrime/securesms/ui/Components.kt | 2 +- ...xml => activity_disappearing_messages.xml} | 4 +- app/src/main/res/values/strings.xml | 17 +++-- .../DisappearingMessagesViewModelTest.kt} | 36 +++++------ 13 files changed, 134 insertions(+), 116 deletions(-) rename app/src/main/java/org/thoughtcrime/securesms/conversation/{expiration/ExpirationSettingsActivity.kt => disappearingmessages/DisappearingMessagesActivity.kt} (75%) rename app/src/main/java/org/thoughtcrime/securesms/conversation/{expiration/ExpirationSettingsViewModel.kt => disappearingmessages/DisappearingMessagesViewModel.kt} (96%) rename app/src/main/java/org/thoughtcrime/securesms/conversation/{expiration/ExpirationSettings.kt => disappearingmessages/ui/DisappearingMessages.kt} (64%) create mode 100644 app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessagesPreview.kt rename app/src/main/res/layout/{activity_expiration_settings.xml => activity_disappearing_messages.xml} (83%) rename app/src/test/java/org/thoughtcrime/securesms/conversation/{expiration/ExpirationSettingsViewModelTest.kt => disappearingmessages/DisappearingMessagesViewModelTest.kt} (93%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 05365abab..55032d4b9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -176,7 +176,7 @@ android:screenOrientation="portrait" /> - diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt index 00b29fe39..0afea86b5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt @@ -41,7 +41,7 @@ class ConversationActionBarView : LinearLayout { private val settingsAdapter = ConversationSettingsAdapter { setting -> if (setting.settingType == ConversationSettingType.EXPIRATION) { - delegate?.onExpirationSettingClicked() + delegate?.onDisappearingMessagesClicked() } } @@ -202,7 +202,7 @@ class ConversationActionBarView : LinearLayout { fun interface ConversationActionBarDelegate { - fun onExpirationSettingClicked() + fun onDisappearingMessagesClicked() } data class ConversationSetting( diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesActivity.kt similarity index 75% rename from app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsActivity.kt rename to app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesActivity.kt index 3339bd78b..86e651574 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesActivity.kt @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.conversation.expiration +package org.thoughtcrime.securesms.conversation.disappearingmessages import android.os.Bundle import android.widget.Toast @@ -12,33 +12,34 @@ import androidx.lifecycle.repeatOnLifecycle import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import network.loki.messenger.R -import network.loki.messenger.databinding.ActivityExpirationSettingsBinding +import network.loki.messenger.databinding.ActivityDisappearingMessagesBinding import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity +import org.thoughtcrime.securesms.conversation.disappearingmessages.ui.DisappearingMessages import org.thoughtcrime.securesms.database.RecipientDatabase import org.thoughtcrime.securesms.database.ThreadDatabase import org.thoughtcrime.securesms.ui.AppTheme import javax.inject.Inject @AndroidEntryPoint -class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() { +class DisappearingMessagesActivity: PassphraseRequiredActionBarActivity() { - private lateinit var binding : ActivityExpirationSettingsBinding + private lateinit var binding : ActivityDisappearingMessagesBinding @Inject lateinit var recipientDb: RecipientDatabase @Inject lateinit var threadDb: ThreadDatabase - @Inject lateinit var viewModelFactory: ExpirationSettingsViewModel.AssistedFactory + @Inject lateinit var viewModelFactory: DisappearingMessagesViewModel.AssistedFactory private val threadId: Long by lazy { intent.getLongExtra(THREAD_ID, -1) } - private val viewModel: ExpirationSettingsViewModel by viewModels { + private val viewModel: DisappearingMessagesViewModel by viewModels { viewModelFactory.create(threadId) } override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) { super.onCreate(savedInstanceState, ready) - binding = ActivityExpirationSettingsBinding.inflate(layoutInflater) + binding = ActivityDisappearingMessagesBinding.inflate(layoutInflater) setContentView(binding.root) setUpToolbar() @@ -50,7 +51,7 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() { viewModel.event.collect { when (it) { Event.SUCCESS -> finish() - Event.FAIL -> showToast(getString(R.string.ExpirationSettingsActivity_settings_not_updated)) + Event.FAIL -> showToast(getString(R.string.DisappearingMessagesActivity_settings_not_updated)) } } } @@ -59,7 +60,7 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() { lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { viewModel.state.collect { state -> - supportActionBar?.subtitle = state.subtitle(this@ExpirationSettingsActivity) + supportActionBar?.subtitle = state.subtitle(this@DisappearingMessagesActivity) } } } @@ -72,7 +73,7 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() { private fun setUpToolbar() { setSupportActionBar(binding.toolbar) val actionBar = supportActionBar ?: return - actionBar.title = getString(R.string.activity_expiration_settings_title) + actionBar.title = getString(R.string.activity_disappearing_messages_title) actionBar.setDisplayHomeAsUpEnabled(true) actionBar.setHomeButtonEnabled(true) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsViewModel.kt rename to app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt index 4ffa5cdf2..8babbb55f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.conversation.expiration +package org.thoughtcrime.securesms.conversation.disappearingmessages import android.app.Application import androidx.annotation.StringRes @@ -25,7 +25,6 @@ import org.session.libsession.messaging.messages.control.ExpirationTimerUpdate import org.session.libsession.messaging.sending_receiving.MessageSender import org.session.libsession.snode.SnodeAPI import org.session.libsession.utilities.Address -import org.session.libsession.utilities.ExpirationUtil import org.session.libsession.utilities.SSKEnvironment.MessageExpirationManagerProtocol import org.session.libsession.utilities.TextSecurePreferences import org.thoughtcrime.securesms.database.GroupDatabase @@ -54,8 +53,8 @@ data class State( val showDebugOptions: Boolean = false ) { val subtitle get() = when { - isGroup || isNoteToSelf -> GetString(R.string.activity_expiration_settings_subtitle_sent) - else -> GetString(R.string.activity_expiration_settings_subtitle) + isGroup || isNoteToSelf -> GetString(R.string.activity_disappearing_messages_subtitle_sent) + else -> GetString(R.string.activity_disappearing_messages_subtitle) } val typeOptionsHidden get() = isNoteToSelf || (isGroup && isNewConfigEnabled) @@ -76,7 +75,7 @@ object NoOpCallbacks: Callbacks { override fun setMode(mode: ExpiryMode) {} } -class ExpirationSettingsViewModel( +class DisappearingMessagesViewModel( private val threadId: Long, private val application: Application, private val textSecurePreferences: TextSecurePreferences, @@ -166,7 +165,7 @@ class ExpirationSettingsViewModel( private val storage: Storage ) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T = ExpirationSettingsViewModel( + override fun create(modelClass: Class): T = DisappearingMessagesViewModel( threadId, application, textSecurePreferences, @@ -187,8 +186,8 @@ data class UiState( ) { constructor(state: State): this( cards = listOfNotNull( - typeOptions(state)?.let { CardModel(GetString(R.string.activity_expiration_settings_delete_type), it) }, - timeOptions(state)?.let { CardModel(GetString(R.string.activity_expiration_settings_timer), it) } + typeOptions(state)?.let { CardModel(GetString(R.string.activity_disappearing_messages_delete_type), it) }, + timeOptions(state)?.let { CardModel(GetString(R.string.activity_disappearing_messages_timer), it) } ), showGroupFooter = state.isGroup && state.isNewConfigEnabled, showSetButton = state.isSelfAdmin diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettings.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt similarity index 64% rename from app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettings.kt rename to app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt index 8da4b0c6b..997be5382 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettings.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.conversation.expiration +package org.thoughtcrime.securesms.conversation.disappearingmessages.ui import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -27,6 +27,12 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import network.loki.messenger.R import network.loki.messenger.libsession_util.util.ExpiryMode +import org.thoughtcrime.securesms.conversation.disappearingmessages.Callbacks +import org.thoughtcrime.securesms.conversation.disappearingmessages.CardModel +import org.thoughtcrime.securesms.conversation.disappearingmessages.ExpiryType +import org.thoughtcrime.securesms.conversation.disappearingmessages.NoOpCallbacks +import org.thoughtcrime.securesms.conversation.disappearingmessages.State +import org.thoughtcrime.securesms.conversation.disappearingmessages.UiState import org.thoughtcrime.securesms.ui.CellNoMargin import org.thoughtcrime.securesms.ui.Divider import org.thoughtcrime.securesms.ui.OutlineButton @@ -56,7 +62,7 @@ fun DisappearingMessages( OptionsCard(it, callbacks) } - if (state.showGroupFooter) Text(text = stringResource(R.string.activity_expiration_settings_group_footer), + if (state.showGroupFooter) Text(text = stringResource(R.string.activity_disappearing_messages_group_footer), style = TextStyle( fontSize = 11.sp, fontWeight = FontWeight(400), @@ -67,7 +73,7 @@ fun DisappearingMessages( } if (state.showSetButton) OutlineButton( - stringResource(R.string.expiration_settings_set_button_title), + stringResource(R.string.disappearing_messages_set_button_title), modifier = Modifier .align(Alignment.CenterHorizontally) .padding(bottom = 20.dp), @@ -90,51 +96,3 @@ fun OptionsCard(card: CardModel, callbacks: Callbacks) { } } } - -@Preview(widthDp = 450, heightDp = 700) -@Composable -fun PreviewStates( - @PreviewParameter(StatePreviewParameterProvider::class) state: State -) { - PreviewTheme(R.style.Classic_Dark) { - DisappearingMessages( - UiState(state) - ) - } -} - -class StatePreviewParameterProvider : PreviewParameterProvider { - override val values = newConfigValues.filter { it.expiryType != ExpiryType.LEGACY } + newConfigValues.map { it.copy(isNewConfigEnabled = false) } - - private val newConfigValues get() = sequenceOf( - // new 1-1 - State(expiryMode = ExpiryMode.NONE), - State(expiryMode = ExpiryMode.Legacy(43200)), - State(expiryMode = ExpiryMode.AfterRead(300)), - State(expiryMode = ExpiryMode.AfterSend(43200)), - // new group non-admin - State(isGroup = true, isSelfAdmin = false), - State(isGroup = true, isSelfAdmin = false, expiryMode = ExpiryMode.Legacy(43200)), - State(isGroup = true, isSelfAdmin = false, expiryMode = ExpiryMode.AfterSend(43200)), - // new group admin - State(isGroup = true), - State(isGroup = true, expiryMode = ExpiryMode.Legacy(43200)), - State(isGroup = true, expiryMode = ExpiryMode.AfterSend(43200)), - // new note-to-self - State(isNoteToSelf = true), - ) -} - - -@Preview -@Composable -fun PreviewThemes( - @PreviewParameter(ThemeResPreviewParameterProvider::class) themeResId: Int -) { - PreviewTheme(themeResId) { - DisappearingMessages( - UiState(State(expiryMode = ExpiryMode.AfterSend(43200))), - modifier = Modifier.size(400.dp, 600.dp) - ) - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessagesPreview.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessagesPreview.kt new file mode 100644 index 000000000..5a166f74d --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessagesPreview.kt @@ -0,0 +1,63 @@ +package org.thoughtcrime.securesms.conversation.disappearingmessages.ui + +import androidx.compose.foundation.layout.size +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import androidx.compose.ui.unit.dp +import network.loki.messenger.R +import network.loki.messenger.libsession_util.util.ExpiryMode +import org.thoughtcrime.securesms.conversation.disappearingmessages.ExpiryType +import org.thoughtcrime.securesms.conversation.disappearingmessages.State +import org.thoughtcrime.securesms.conversation.disappearingmessages.UiState +import org.thoughtcrime.securesms.ui.PreviewTheme +import org.thoughtcrime.securesms.ui.ThemeResPreviewParameterProvider + +@Preview(widthDp = 450, heightDp = 700) +@Composable +fun PreviewStates( + @PreviewParameter(StatePreviewParameterProvider::class) state: State +) { + PreviewTheme(R.style.Classic_Dark) { + DisappearingMessages( + UiState(state) + ) + } +} + +class StatePreviewParameterProvider : PreviewParameterProvider { + override val values = newConfigValues.filter { it.expiryType != ExpiryType.LEGACY } + newConfigValues.map { it.copy(isNewConfigEnabled = false) } + + private val newConfigValues get() = sequenceOf( + // new 1-1 + State(expiryMode = ExpiryMode.NONE), + State(expiryMode = ExpiryMode.Legacy(43200)), + State(expiryMode = ExpiryMode.AfterRead(300)), + State(expiryMode = ExpiryMode.AfterSend(43200)), + // new group non-admin + State(isGroup = true, isSelfAdmin = false), + State(isGroup = true, isSelfAdmin = false, expiryMode = ExpiryMode.Legacy(43200)), + State(isGroup = true, isSelfAdmin = false, expiryMode = ExpiryMode.AfterSend(43200)), + // new group admin + State(isGroup = true), + State(isGroup = true, expiryMode = ExpiryMode.Legacy(43200)), + State(isGroup = true, expiryMode = ExpiryMode.AfterSend(43200)), + // new note-to-self + State(isNoteToSelf = true), + ) +} + +@Preview +@Composable +fun PreviewThemes( + @PreviewParameter(ThemeResPreviewParameterProvider::class) themeResId: Int +) { + PreviewTheme(themeResId) { + DisappearingMessages( + UiState(State(expiryMode = ExpiryMode.AfterSend(43200))), + modifier = Modifier.size(400.dp, 600.dp) + ) + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index 729d739b9..82df37b9f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -106,7 +106,7 @@ import org.thoughtcrime.securesms.attachments.ScreenshotObserver import org.thoughtcrime.securesms.audio.AudioRecorder import org.thoughtcrime.securesms.contacts.SelectContactsActivity.Companion.selectedContactsKey import org.thoughtcrime.securesms.conversation.ConversationActionBarDelegate -import org.thoughtcrime.securesms.conversation.expiration.ExpirationSettingsActivity +import org.thoughtcrime.securesms.conversation.disappearingmessages.DisappearingMessagesActivity import org.thoughtcrime.securesms.conversation.v2.ConversationReactionOverlay.OnActionSelectedListener import org.thoughtcrime.securesms.conversation.v2.ConversationReactionOverlay.OnReactionSelectedListener import org.thoughtcrime.securesms.conversation.v2.MessageDetailActivity.Companion.MESSAGE_TIMESTAMP @@ -1123,8 +1123,8 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe // endregion // region Interaction - override fun onExpirationSettingClicked() { - viewModel.recipient?.let { showExpirationSettings(it) } + override fun onDisappearingMessagesClicked() { + viewModel.recipient?.let { showDisappearingMessages(it) } } override fun onOptionsItemSelected(item: MenuItem): Boolean { @@ -1170,14 +1170,13 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe Toast.makeText(this, R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show() } - override fun showExpirationSettings(thread: Recipient) { + override fun showDisappearingMessages(thread: Recipient) { if (thread.isClosedGroupRecipient) { - val group = groupDb.getGroup(thread.address.toGroupString()).orNull() - if (group?.isActive == false) { return } + groupDb.getGroup(thread.address.toGroupString()).orNull()?.run { if (isActive) return } } - val expirationIntent = Intent(this, ExpirationSettingsActivity::class.java) - expirationIntent.putExtra(ExpirationSettingsActivity.THREAD_ID, viewModel.threadId) - show(expirationIntent, true) + Intent(this, DisappearingMessagesActivity::class.java) + .apply { putExtra(DisappearingMessagesActivity.THREAD_ID, viewModel.threadId) } + .also { show(it, true) } } override fun unblock() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt index c3b702f43..dadf138ea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt @@ -131,7 +131,7 @@ object ConversationMenuHelper { R.id.menu_view_all_media -> { showAllMedia(context, thread) } R.id.menu_search -> { search(context) } R.id.menu_add_shortcut -> { addShortcut(context, thread) } - R.id.menu_expiring_messages -> { showExpirationSettings(context, thread) } + R.id.menu_expiring_messages -> { showDisappearingMessages(context, thread) } R.id.menu_unblock -> { unblock(context, thread) } R.id.menu_block -> { block(context, thread, deleteThread = false) } R.id.menu_block_delete -> { blockAndDelete(context, thread) } @@ -223,9 +223,9 @@ object ConversationMenuHelper { }.execute() } - private fun showExpirationSettings(context: Context, thread: Recipient) { + private fun showDisappearingMessages(context: Context, thread: Recipient) { val listener = context as? ConversationMenuListener ?: return - listener.showExpirationSettings(thread) + listener.showDisappearingMessages(thread) } private fun unblock(context: Context, thread: Recipient) { @@ -327,7 +327,7 @@ object ConversationMenuHelper { fun unblock() fun copySessionID(sessionId: String) fun copyOpenGroupUrl(thread: Recipient) - fun showExpirationSettings(thread: Recipient) + fun showDisappearingMessages(thread: Recipient) } } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index 9d3baefc5..ded0941fb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -78,7 +78,6 @@ import org.session.libsignal.utilities.IdPrefix import org.session.libsignal.utilities.KeyHelper import org.session.libsignal.utilities.Log import org.session.libsignal.utilities.guava.Optional -import org.thoughtcrime.securesms.conversation.expiration.type import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.ReactionRecord diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt index e30ba8938..9c72cbb78 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt @@ -54,7 +54,7 @@ import kotlinx.coroutines.launch import network.loki.messenger.R import org.session.libsession.utilities.recipients.Recipient import org.thoughtcrime.securesms.components.ProfilePictureView -import org.thoughtcrime.securesms.conversation.expiration.OptionModel +import org.thoughtcrime.securesms.conversation.disappearingmessages.OptionModel import kotlin.math.min @Composable diff --git a/app/src/main/res/layout/activity_expiration_settings.xml b/app/src/main/res/layout/activity_disappearing_messages.xml similarity index 83% rename from app/src/main/res/layout/activity_expiration_settings.xml rename to app/src/main/res/layout/activity_disappearing_messages.xml index 4ea3966d0..810129773 100644 --- a/app/src/main/res/layout/activity_expiration_settings.xml +++ b/app/src/main/res/layout/activity_disappearing_messages.xml @@ -12,9 +12,9 @@ android:layout_height="wrap_content" android:background="?colorPrimary" app:contentInsetStart="0dp" - app:subtitle="@string/activity_expiration_settings_subtitle" + app:subtitle="@string/activity_disappearing_messages_subtitle" app:subtitleTextAppearance="@style/TextAppearance.Session.ToolbarSubtitle" - app:title="@string/activity_expiration_settings_title" /> + app:title="@string/activity_disappearing_messages_title" /> Join Navigate Back Close Dialog - Disappearing Messages - This setting applies to everyone in this conversation. + Disappearing Messages + This setting applies to everyone in this conversation. Original version of disappearing messages. Legacy - Messages disappear after they have been sent. + Messages disappear after they have been sent. Disappear After Read Messages delete after they have been read. Disappear After Send Messages delete after they have been sent. - Set - Delete Type - Timer - This setting applies to everyone in this conversation.\nOnly group admins can change this setting. + Set + Delete Type + Timer + This setting applies to everyone in this conversation.\nOnly group admins can change this setting. %s is using an outdated client. Disappearing messages may not work as expected. - Settings updated - Settings not updated and please try again + Settings not updated and please try again Database Upgrade Failed Please contact support to report the error. Syncing diff --git a/app/src/test/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsViewModelTest.kt b/app/src/test/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModelTest.kt similarity index 93% rename from app/src/test/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsViewModelTest.kt rename to app/src/test/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModelTest.kt index 7061a81a6..2666ac846 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/conversation/expiration/ExpirationSettingsViewModelTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModelTest.kt @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.conversation.expiration +package org.thoughtcrime.securesms.conversation.disappearingmessages import android.app.Application import com.google.common.truth.Truth.assertThat @@ -41,7 +41,7 @@ private val GROUP_ADDRESS = Address.fromSerialized(GROUP_NUMBER) @OptIn(ExperimentalCoroutinesApi::class) @RunWith(MockitoJUnitRunner::class) -class ExpirationSettingsViewModelTest { +class DisappearingMessagesViewModelTest { @ExperimentalCoroutinesApi @get:Rule @@ -84,7 +84,7 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_timer, + R.string.activity_disappearing_messages_timer, typeOption(ExpiryMode.NONE, selected = true), timeOption(ExpiryType.AFTER_SEND, 12.hours), timeOption(ExpiryType.AFTER_SEND, 1.days), @@ -123,7 +123,7 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_timer, + R.string.activity_disappearing_messages_timer, typeOption(ExpiryMode.NONE, selected = true), timeOption(ExpiryType.LEGACY, 12.hours), timeOption(ExpiryType.LEGACY, 1.days), @@ -162,7 +162,7 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_timer, + R.string.activity_disappearing_messages_timer, typeOption(ExpiryMode.NONE, selected = true), timeOption(ExpiryType.AFTER_SEND, 12.hours), timeOption(ExpiryType.AFTER_SEND, 1.days), @@ -202,7 +202,7 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_timer, + R.string.activity_disappearing_messages_timer, typeOption(ExpiryMode.NONE, enabled = false, selected = true), timeOption(ExpiryType.AFTER_SEND, 12.hours, enabled = false), timeOption(ExpiryType.AFTER_SEND, 1.days, enabled = false), @@ -244,7 +244,7 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_delete_type, + R.string.activity_disappearing_messages_delete_type, typeOption(ExpiryMode.NONE, selected = true), typeOption(12.hours, ExpiryType.AFTER_READ), typeOption(1.days, ExpiryType.AFTER_SEND) @@ -283,13 +283,13 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_delete_type, + R.string.activity_disappearing_messages_delete_type, typeOption(ExpiryMode.NONE), typeOption(time, ExpiryType.AFTER_READ), typeOption(time, ExpiryType.AFTER_SEND, selected = true) ), CardModel( - GetString(R.string.activity_expiration_settings_timer), + GetString(R.string.activity_disappearing_messages_timer), timeOption(ExpiryType.AFTER_SEND, 12.hours, selected = true), timeOption(ExpiryType.AFTER_SEND, 1.days), timeOption(ExpiryType.AFTER_SEND, 7.days), @@ -329,14 +329,14 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_delete_type, + R.string.activity_disappearing_messages_delete_type, typeOption(ExpiryMode.NONE), typeOption(time, ExpiryType.LEGACY, selected = true), typeOption(12.hours, ExpiryType.AFTER_READ, enabled = false), typeOption(1.days, ExpiryType.AFTER_SEND, enabled = false) ), CardModel( - GetString(R.string.activity_expiration_settings_timer), + GetString(R.string.activity_disappearing_messages_timer), timeOption(ExpiryType.LEGACY, 12.hours, selected = true), timeOption(ExpiryType.LEGACY, 1.days), timeOption(ExpiryType.LEGACY, 7.days), @@ -376,13 +376,13 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_delete_type, + R.string.activity_disappearing_messages_delete_type, typeOption(ExpiryMode.NONE), typeOption(12.hours, ExpiryType.AFTER_READ), typeOption(time, ExpiryType.AFTER_SEND, selected = true) ), CardModel( - GetString(R.string.activity_expiration_settings_timer), + GetString(R.string.activity_disappearing_messages_timer), timeOption(ExpiryType.AFTER_SEND, 12.hours), timeOption(ExpiryType.AFTER_SEND, 1.days, selected = true), timeOption(ExpiryType.AFTER_SEND, 7.days), @@ -423,13 +423,13 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_delete_type, + R.string.activity_disappearing_messages_delete_type, typeOption(ExpiryMode.NONE), typeOption(1.days, ExpiryType.AFTER_READ, selected = true), typeOption(time, ExpiryType.AFTER_SEND) ), CardModel( - GetString(R.string.activity_expiration_settings_timer), + GetString(R.string.activity_disappearing_messages_timer), timeOption(ExpiryType.AFTER_READ, 5.minutes), timeOption(ExpiryType.AFTER_READ, 1.hours), timeOption(ExpiryType.AFTER_READ, 12.hours), @@ -476,13 +476,13 @@ class ExpirationSettingsViewModelTest { ).isEqualTo( UiState( CardModel( - R.string.activity_expiration_settings_delete_type, + R.string.activity_disappearing_messages_delete_type, typeOption(ExpiryMode.NONE), typeOption(12.hours, ExpiryType.AFTER_READ), typeOption(1.days, ExpiryType.AFTER_SEND, selected = true) ), CardModel( - GetString(R.string.activity_expiration_settings_timer), + GetString(R.string.activity_disappearing_messages_timer), timeOption(ExpiryType.AFTER_SEND, 12.hours), timeOption(ExpiryType.AFTER_SEND, 1.days, selected = true), timeOption(ExpiryType.AFTER_SEND, 7.days), @@ -547,7 +547,7 @@ class ExpirationSettingsViewModelTest { updatedTimestampMs = 0 ) - private fun createViewModel(isNewConfigEnabled: Boolean = true) = ExpirationSettingsViewModel( + private fun createViewModel(isNewConfigEnabled: Boolean = true) = DisappearingMessagesViewModel( THREAD_ID, application, textSecurePreferences,