Legacy expiration type ui default tweaks

This commit is contained in:
charles 2022-12-15 10:05:07 +11:00
parent 23c881f3ce
commit 48a99a85c3
3 changed files with 16 additions and 7 deletions

View File

@ -34,8 +34,8 @@ class ExpirationSettingsViewModel(
private val _recipient = MutableStateFlow<Recipient?>(null) private val _recipient = MutableStateFlow<Recipient?>(null)
val recipient: StateFlow<Recipient?> = _recipient val recipient: StateFlow<Recipient?> = _recipient
private val _selectedExpirationType = MutableStateFlow<Int?>(null) private val _selectedExpirationType = MutableStateFlow(-1)
val selectedExpirationType: StateFlow<Int?> = _selectedExpirationType val selectedExpirationType: StateFlow<Int> = _selectedExpirationType
private val _selectedExpirationTimer = MutableStateFlow(afterSendOptions.firstOrNull()) private val _selectedExpirationTimer = MutableStateFlow(afterSendOptions.firstOrNull())
val selectedExpirationTimer: StateFlow<RadioOption?> = _selectedExpirationTimer val selectedExpirationTimer: StateFlow<RadioOption?> = _selectedExpirationTimer
@ -52,7 +52,16 @@ class ExpirationSettingsViewModel(
if (ExpirationConfiguration.isNewConfigEnabled && (recipient?.isLocalNumber == true || recipient?.isClosedGroupRecipient == true)) { if (ExpirationConfiguration.isNewConfigEnabled && (recipient?.isLocalNumber == true || recipient?.isClosedGroupRecipient == true)) {
_selectedExpirationType.value = ExpirationType.DELETE_AFTER_SEND.number _selectedExpirationType.value = ExpirationType.DELETE_AFTER_SEND.number
} else { } else {
_selectedExpirationType.value = expirationConfig?.expirationTypeValue _selectedExpirationType.value = expirationConfig?.expirationTypeValue ?: -1
}
_selectedExpirationType.value = if (ExpirationConfiguration.isNewConfigEnabled) {
if (recipient?.isLocalNumber == true || recipient?.isClosedGroupRecipient == true) {
ExpirationType.DELETE_AFTER_SEND.number
} else {
expirationConfig?.expirationTypeValue ?: -1
}
} else {
expirationConfig?.expirationTypeValue?.let { 0 /* Legacy */ } ?: -1
} }
_selectedExpirationTimer.value = when(expirationConfig?.expirationType) { _selectedExpirationTimer.value = when(expirationConfig?.expirationType) {
ExpirationType.DELETE_AFTER_SEND -> afterSendOptions.find { it.value.toIntOrNull() == expirationConfig?.durationSeconds } ExpirationType.DELETE_AFTER_SEND -> afterSendOptions.find { it.value.toIntOrNull() == expirationConfig?.durationSeconds }
@ -76,7 +85,7 @@ class ExpirationSettingsViewModel(
} }
fun onExpirationTypeSelected(option: RadioOption) { fun onExpirationTypeSelected(option: RadioOption) {
_selectedExpirationType.value = option.value.toIntOrNull() _selectedExpirationType.value = option.value.toIntOrNull() ?: -1
} }
fun onExpirationTimerSelected(option: RadioOption) { fun onExpirationTimerSelected(option: RadioOption) {

View File

@ -5,11 +5,11 @@ import org.session.libsignal.protos.SignalServiceProtos.Content.ExpirationType
class ExpirationConfiguration( class ExpirationConfiguration(
val threadId: Long = -1, val threadId: Long = -1,
val durationSeconds: Int = 0, val durationSeconds: Int = 0,
val expirationTypeValue: Int? = null, val expirationTypeValue: Int = -1,
val updatedTimestampMs: Long = 0 val updatedTimestampMs: Long = 0
) { ) {
val isEnabled = durationSeconds > 0 val isEnabled = durationSeconds > 0
val expirationType = expirationTypeValue?.let { ExpirationType.valueOf(it) } val expirationType: ExpirationType? = ExpirationType.valueOf(expirationTypeValue)
companion object { companion object {
val isNewConfigEnabled = System.currentTimeMillis() > 1_674_000_000_000 // 18/01/2023 val isNewConfigEnabled = System.currentTimeMillis() > 1_674_000_000_000 // 18/01/2023

View File

@ -98,7 +98,7 @@ fun updateExpirationConfigurationIfNeeded(message: Message, proto: SignalService
val remoteConfig = ExpirationConfiguration( val remoteConfig = ExpirationConfiguration(
threadID, threadID,
durationSeconds, durationSeconds,
type?.number, type?.number ?: -1,
proto.lastDisappearingMessageChangeTimestamp proto.lastDisappearingMessageChangeTimestamp
) )
storage.setExpirationConfiguration(remoteConfig) storage.setExpirationConfiguration(remoteConfig)