Improve ui vm separation

This commit is contained in:
andrew
2023-10-09 16:33:54 +10:30
parent b211c8bffb
commit 17f41d76b8
10 changed files with 377 additions and 351 deletions

View File

@@ -24,6 +24,9 @@ import org.session.libsession.utilities.TextSecurePreferences
import org.session.libsession.utilities.recipients.Recipient
import org.session.libsignal.utilities.guava.Optional
import org.thoughtcrime.securesms.MainCoroutineRule
import org.thoughtcrime.securesms.conversation.disappearingmessages.ui.ExpiryRadioOption
import org.thoughtcrime.securesms.conversation.disappearingmessages.ui.OptionsCard
import org.thoughtcrime.securesms.conversation.disappearingmessages.ui.UiState
import org.thoughtcrime.securesms.database.GroupDatabase
import org.thoughtcrime.securesms.database.Storage
import org.thoughtcrime.securesms.database.ThreadDatabase
@@ -83,7 +86,7 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
R.string.activity_disappearing_messages_timer,
typeOption(ExpiryMode.NONE, selected = true),
timeOption(ExpiryType.AFTER_SEND, 12.hours),
@@ -122,7 +125,7 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
R.string.activity_disappearing_messages_timer,
typeOption(ExpiryMode.NONE, selected = true),
timeOption(ExpiryType.LEGACY, 12.hours),
@@ -161,7 +164,7 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
R.string.activity_disappearing_messages_timer,
typeOption(ExpiryMode.NONE, selected = true),
timeOption(ExpiryType.AFTER_SEND, 12.hours),
@@ -201,7 +204,7 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
R.string.activity_disappearing_messages_timer,
typeOption(ExpiryMode.NONE, enabled = false, selected = true),
timeOption(ExpiryType.AFTER_SEND, 12.hours, enabled = false),
@@ -243,7 +246,7 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
R.string.activity_disappearing_messages_delete_type,
typeOption(ExpiryMode.NONE, selected = true),
typeOption(12.hours, ExpiryType.AFTER_READ),
@@ -282,14 +285,14 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
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_disappearing_messages_timer),
OptionsCard(
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),
@@ -328,15 +331,15 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
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_disappearing_messages_timer),
OptionsCard(
R.string.activity_disappearing_messages_timer,
timeOption(ExpiryType.LEGACY, 12.hours, selected = true),
timeOption(ExpiryType.LEGACY, 1.days),
timeOption(ExpiryType.LEGACY, 7.days),
@@ -375,14 +378,14 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
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_disappearing_messages_timer),
OptionsCard(
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),
@@ -422,14 +425,14 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
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_disappearing_messages_timer),
OptionsCard(
R.string.activity_disappearing_messages_timer,
timeOption(ExpiryType.AFTER_READ, 5.minutes),
timeOption(ExpiryType.AFTER_READ, 1.hours),
timeOption(ExpiryType.AFTER_READ, 12.hours),
@@ -452,7 +455,7 @@ class DisappearingMessagesViewModelTest {
advanceUntilIdle()
viewModel.setMode(afterSendMode(1.days))
viewModel.setValue(afterSendMode(1.days))
advanceUntilIdle()
@@ -475,14 +478,14 @@ class DisappearingMessagesViewModelTest {
viewModel.uiState.value
).isEqualTo(
UiState(
CardModel(
OptionsCard(
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_disappearing_messages_timer),
OptionsCard(
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),
@@ -497,7 +500,7 @@ class DisappearingMessagesViewModelTest {
time: Duration,
enabled: Boolean = true,
selected: Boolean = false
) = OptionModel(
) = ExpiryRadioOption(
value = type.mode(time),
title = GetString(time),
enabled = enabled,
@@ -564,7 +567,7 @@ fun typeOption(time: Duration, type: ExpiryType, selected: Boolean = false, enab
typeOption(type.mode(time), selected, enabled)
fun typeOption(mode: ExpiryMode, selected: Boolean = false, enabled: Boolean = true) =
OptionModel(
ExpiryRadioOption(
mode,
GetString(mode.type.title),
mode.type.subtitle?.let(::GetString),