ursus
07/08/2019, 4:42 PMprotected fun mapState(message: FileDetailMessage): State {
val toolbarTitle = message.userRealName ?: message.username
val toolbarSubtitle =
message.channelName?.let { resourceHelper.getString(R.string.shared_in, message.channelName ?: "") }
val fileState = message.fileState
val title = message.fileTitle
val formattedFileSize = Utils.formatFileSize(message.fileSize)
val subtitle = when {
message.messageState == MessageState.SENDING -> resourceHelper.getString(
R.string.file_state_uploading,
message.fileProgress,
formattedFileSize
)
message.messageState == MessageState.SENT && message.fileState == FileDownloadState.DOWNLOADING -> resourceHelper.getString(
R.string.file_state_downloading,
message.fileProgress,
formattedFileSize
)
else -> formattedFileSize
}
val action = resourceHelper.getString(
when (message.messageState) {
MessageState.SENDING -> R.string.action_cancel
MessageState.ERROR -> R.string.action_retry
MessageState.SENT -> when (fileState) {
FileDownloadState.DOWNLOADING -> R.string.action_cancel
FileDownloadState.DOWNLOADED -> R.string.action_open
else -> R.string.action_download
}
}
)
return State(
message.userImageUrl,
toolbarTitle,
toolbarSubtitle,
title,
subtitle,
message.userRealName,
message.username,
Utils.getFileTypeIcon(message.fileMimeType),
action
)
}