refactor: making radio options and adapter and list items generic

This commit is contained in:
0x330a
2023-08-09 16:36:19 +10:00
parent 9dc8f18b86
commit 317ecf6cee
7 changed files with 141 additions and 83 deletions

View File

@@ -10,8 +10,7 @@ data class ExpirationConfiguration(
val isEnabled = expiryMode != null && expiryMode.expirySeconds > 0
companion object {
val isNewConfigEnabled = false /* TODO: System.currentTimeMillis() > 1_676_851_200_000 // 13/02/2023 */
const val LAST_READ_TEST = 1673587663000L
val isNewConfigEnabled = true /* TODO: System.currentTimeMillis() > 1_676_851_200_000 // 13/02/2023 */
}
}

View File

@@ -70,7 +70,7 @@ abstract class Message {
when (expiryMode) {
is ExpiryMode.AfterSend -> expirationType = ExpirationType.DELETE_AFTER_SEND
is ExpiryMode.AfterRead -> expirationType = ExpirationType.DELETE_AFTER_READ
ExpiryMode.NONE -> { /* do nothing */ }
is ExpiryMode.Legacy, ExpiryMode.NONE -> { /* do nothing */ }
}
}
}

View File

@@ -8,6 +8,7 @@ fun ExpiryMode?.typeRadioIndex(): Int {
return when (this) {
is ExpiryMode.AfterRead -> SignalServiceProtos.Content.ExpirationType.DELETE_AFTER_READ_VALUE
is ExpiryMode.AfterSend -> SignalServiceProtos.Content.ExpirationType.DELETE_AFTER_SEND_VALUE
is ExpiryMode.Legacy -> SignalServiceProtos.Content.ExpirationType.UNKNOWN_VALUE
else -> -1
}
}
@@ -16,7 +17,7 @@ fun SignalServiceProtos.Content.ExpirationType?.expiryMode(durationSeconds: Long
null -> null
SignalServiceProtos.Content.ExpirationType.DELETE_AFTER_READ -> ExpiryMode.AfterRead(durationSeconds)
SignalServiceProtos.Content.ExpirationType.DELETE_AFTER_SEND -> ExpiryMode.AfterSend(durationSeconds)
SignalServiceProtos.Content.ExpirationType.UNKNOWN -> null
SignalServiceProtos.Content.ExpirationType.UNKNOWN -> ExpiryMode.Legacy(durationSeconds)
}
fun Int.expiryType(): KClass<out ExpiryMode>? {
@@ -24,6 +25,7 @@ fun Int.expiryType(): KClass<out ExpiryMode>? {
return when (this) {
SignalServiceProtos.Content.ExpirationType.DELETE_AFTER_READ_VALUE -> ExpiryMode.AfterSend::class
SignalServiceProtos.Content.ExpirationType.DELETE_AFTER_SEND_VALUE -> ExpiryMode.AfterRead::class
SignalServiceProtos.Content.ExpirationType.UNKNOWN_VALUE -> ExpiryMode.Legacy::class
else -> ExpiryMode.NONE::class
}
}