kopia lustrzana https://github.com/ryukoposting/Signal-Android
57 wiersze
1.6 KiB
Kotlin
57 wiersze
1.6 KiB
Kotlin
package org.thoughtcrime.securesms.mediasend.v2
|
|
|
|
import android.net.Uri
|
|
import org.thoughtcrime.securesms.conversation.MessageSendType
|
|
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
|
import org.thoughtcrime.securesms.mediasend.Media
|
|
import org.thoughtcrime.securesms.mediasend.MediaSendConstants
|
|
import org.thoughtcrime.securesms.mms.SentMediaQuality
|
|
import org.thoughtcrime.securesms.recipients.Recipient
|
|
|
|
data class MediaSelectionState(
|
|
val sendType: MessageSendType,
|
|
val selectedMedia: List<Media> = listOf(),
|
|
val focusedMedia: Media? = null,
|
|
val recipient: Recipient? = null,
|
|
val quality: SentMediaQuality = SignalStore.settings().sentMediaQuality,
|
|
val message: CharSequence? = null,
|
|
val viewOnceToggleState: ViewOnceToggleState = ViewOnceToggleState.INFINITE,
|
|
val isTouchEnabled: Boolean = true,
|
|
val isSent: Boolean = false,
|
|
val isPreUploadEnabled: Boolean = false,
|
|
val isMeteredConnection: Boolean = false,
|
|
val editorStateMap: Map<Uri, Any> = mapOf(),
|
|
val cameraFirstCapture: Media? = null,
|
|
val isStory: Boolean
|
|
) {
|
|
|
|
val maxSelection = if (sendType.usesSmsTransport) {
|
|
MediaSendConstants.MAX_SMS
|
|
} else {
|
|
MediaSendConstants.MAX_PUSH
|
|
}
|
|
|
|
val canSend = !isSent && selectedMedia.isNotEmpty()
|
|
|
|
enum class ViewOnceToggleState(val code: Int) {
|
|
INFINITE(0),
|
|
ONCE(1);
|
|
|
|
fun next(): ViewOnceToggleState {
|
|
return when (this) {
|
|
INFINITE -> ONCE
|
|
ONCE -> INFINITE
|
|
}
|
|
}
|
|
|
|
companion object {
|
|
fun fromCode(code: Int): ViewOnceToggleState {
|
|
return when (code) {
|
|
1 -> ONCE
|
|
else -> INFINITE
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|