Как получить правильное время из базы данных postgresql, когда сообщение отправлено/отправлено?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как получить правильное время из базы данных postgresql, когда сообщение отправлено/отправлено?

Сообщение Anonymous »

Моя цель — получить правильное время (для каждого сообщения) и отобразить его пользователям при отправке сообщения. Проект подключен к базе данных postgresql! Я настроил для него класс данных (см. ниже), userAPI, репозиторий, модель представления. Я использую модель представления в компоновке и извлекаю оттуда данные. Однако при этом отображается одинаковое время для всех сообщений и отображается фактическое время только тогда, когда я отправил сообщение.
Как я могу получить правильное время для каждого сообщения
Как я могу получить правильное время для каждого сообщения
strong> в базе данных и отображать его соответствующим образом
когда пользователь отправляет сообщение/отправлял сообщение раньше?
Ценим обратную связь !
База данных Postgresql:
Изображение

Функция чата:
Изображение

Пользовательский интерфейс ( Обновлять код):

@FormUrlEncoded
@POST("send_message")
suspend fun sendMessage(
@Field("receiver_email") receiverEmail: String,
@Field("sender_email") senderEmail: String,
@Field("message") message: String,

// I added timestamp
@Field("timestamp") timestamp: String

): Response

// I added this
@GET("send_message")
suspend fun getTimeStamp(
@Field("timestamp") time: LocalDateTime
)

Класс данных:
@Serializable
data class MessageModel(
val sender_id: Int?,
val receiver_id: Int?,
val receiver_email: String?="",
val sender_email: String?="",
val message: String?="",
val timestamp: String? = null
)


Пользовательский API:

suspend fun sendMessage(messageModel: MessageModel): Response {
return userService.sendMessage(
receiverEmail = messageModel.receiver_email ?: "",
senderEmail = messageModel.sender_email ?: "",
message = messageModel.message ?: "",

// I added this timestamp
timestamp = messageModel.timestamp ?: ""
)
}

Репозиторий пользователей:
suspend fun sendMessage(message: MessageModel) {
userApi.sendMessage(message)
}

Функция sendMessage в модели представления:
fun sendMessage(message: MessageModel) {
viewModelScope.launch {
try {
repo.sendMessage(message)
Log.d("chat_feature", "Success")
} catch (e: Exception) {
Log.d("chat_feature", "Error: ${e.message}")
e.printStackTrace()
}
}
}

Код внутри составного объекта для получения и отображения информации:
val messageModel = MessageModel(
receiver_email = currentActiveUser?.email ?: "",
sender_email = selectedUser?.email ?: "",
message = inputText,

receiver_id = currentActiveUser?.id ?: 0,
sender_id = selectedUser?.id ?: 0,
timestamp = SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.getDefault()).format(Date())

)

....

Text(
text = messageModel.timestamp.toString(), // Use the timestamp in the correct format
color = Color.Black,
fontSize = 10.sp,
fontWeight = FontWeight.SemiBold,
modifier = Modifier
.align(Alignment.End) // Align timestamp to the right
.padding(end = 5.dp)

)


Подробнее здесь: https://stackoverflow.com/questions/793 ... sent-has-b
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»