package com.notifyhub.viewer.ui import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.notifyhub.viewer.NotizViewerApp import com.notifyhub.viewer.R import com.notifyhub.viewer.databinding.ActivityMessageDetailBinding import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class MessageDetailActivity : AppCompatActivity() { private lateinit var binding: ActivityMessageDetailBinding private lateinit var app: NotizViewerApp override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) app = application as NotizViewerApp val id = intent.getIntExtra(EXTRA_ID, 0) binding = ActivityMessageDetailBinding.inflate(layoutInflater) setContentView(binding.root) lifecycleScope.launch { try { val response = withContext(Dispatchers.IO) { app.api.message(id) } if (response.isSuccessful && response.body() != null) { val detail = response.body()!! binding.senderText.text = detail.sender ?: "—" binding.typeText.text = detail.messageType ?: "—" binding.timeText.text = detail.receivedAt ?: "—" binding.deviceText.text = detail.device?.deviceName ?: "—" if (detail.messageRedacted || detail.message == null) { binding.bodyText.text = getString(R.string.message_redacted) } else { binding.bodyText.text = detail.message } } else { binding.bodyText.text = getString(R.string.no_messages) } } catch (e: Exception) { binding.bodyText.text = e.message ?: getString(R.string.no_messages) } } } companion object { const val EXTRA_ID = "extra_id" } }