Legacy expiration type ui default tweaks

pull/1014/head
charles 2 years ago
parent 23c881f3ce
commit 48a99a85c3

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

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

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

Loading…
Cancel
Save