package uk.beads.manager import android.os.Bundle import android.widget.ImageView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import uk.beads.manager.databinding.ActivityOrderDetailBinding class OrderDetailActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = ActivityOrderDetailBinding.inflate(layoutInflater) setContentView(binding.root) val orderId = intent.getIntExtra("order_id", 0) SessionInitializer.init(this) { Thread { try { val order = ApiClient.fetchOrder(this@OrderDetailActivity, orderId) runOnUiThread { bindOrder(binding, order) } } catch (e: Exception) { runOnUiThread { finish() } } }.start() } } private fun bindOrder(binding: ActivityOrderDetailBinding, order: OrderDto) { binding.textOrderNumber.text = "Order #${order.orderNumber}" binding.textCustomer.text = "${order.customer.firstName} ${order.customer.lastName}" binding.textEmail.text = order.customer.email binding.textPhone.text = order.customer.phone ?: "-" binding.textAddress.text = buildString { append(order.deliveryAddress.line1) order.deliveryAddress.line2?.let { append("\n$it") } append("\n${order.deliveryAddress.city}, ${order.deliveryAddress.postcode}") append("\n${order.deliveryAddress.country}") } binding.textSubtotal.text = "£${"%.2f".format(order.subtotal)}" binding.textDeliveryFee.text = "£${"%.2f".format(order.deliveryFee)}" binding.textVat.text = "£${"%.2f".format(order.vatAmount)}" binding.textTotal.text = "£${"%.2f".format(order.total)} GBP" val firstItem = order.items.firstOrNull() if (firstItem != null) { binding.textItemName.text = firstItem.productName binding.textItemPrice.text = "£${"%.2f".format(firstItem.unitPrice)} × ${firstItem.quantity}" if (!firstItem.productImage.isNullOrBlank()) { loadImage(binding.imageProduct, firstItem.productImage) } } } private fun loadImage(imageView: ImageView, url: String) { Thread { try { val stream = java.net.URL(url).openStream() val bitmap = android.graphics.BitmapFactory.decodeStream(stream) runOnUiThread { imageView.setImageBitmap(bitmap) } } catch (_: Exception) { } }.start() } }