From 805c9ef06802b732ef37f68f545f8967005bc2d4 Mon Sep 17 00:00:00 2001 From: maxinyu Date: Tue, 28 Apr 2026 11:06:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=8A=9F=E8=83=BD=E4=BA=A4?= =?UTF-8?q?=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/DeviceAdapter.kt | 49 +++++++++++++++ .../res/drawable/bg_capture_face_button.xml | 6 ++ .../res/drawable/bg_home_top_icon_green.xml | 5 ++ .../res/drawable/bg_home_top_icon_light.xml | 5 ++ app/src/main/res/drawable/ic_back_arrow.xml | 10 +++ app/src/main/res/drawable/ic_red_dot.xml | 8 +++ app/src/main/res/layout/item_device.xml | 61 +++++++++++++++++++ app/src/main/res/layout/item_family.xml | 11 ++++ 8 files changed, 155 insertions(+) create mode 100644 app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt create mode 100644 app/src/main/res/drawable/bg_capture_face_button.xml create mode 100644 app/src/main/res/drawable/bg_home_top_icon_green.xml create mode 100644 app/src/main/res/drawable/bg_home_top_icon_light.xml create mode 100644 app/src/main/res/drawable/ic_back_arrow.xml create mode 100644 app/src/main/res/drawable/ic_red_dot.xml create mode 100644 app/src/main/res/layout/item_device.xml create mode 100644 app/src/main/res/layout/item_family.xml diff --git a/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt b/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt new file mode 100644 index 0000000..ed86fb8 --- /dev/null +++ b/app/src/main/java/com/example/defenseapplication/adapter/DeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.example.defenseapplication.adapter + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.example.defenseapplication.R +import com.example.defenseapplication.databinding.ItemDeviceBinding + +data class DeviceUi( + val name: String, + val isOnline: Boolean +) + +class DeviceAdapter : RecyclerView.Adapter() { + + private val items = mutableListOf() + + fun submitList(deviceList: List) { + items.clear() + items.addAll(deviceList) + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DeviceViewHolder { + val binding = ItemDeviceBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return DeviceViewHolder(binding) + } + + override fun onBindViewHolder(holder: DeviceViewHolder, position: Int) { + holder.bind(items[position]) + } + + override fun getItemCount(): Int = items.size + + inner class DeviceViewHolder(private val binding: ItemDeviceBinding) : + RecyclerView.ViewHolder(binding.root) { + + fun bind(item: DeviceUi) { + binding.tvDeviceName.text = item.name + if (item.isOnline) { + binding.tvDeviceStatus.text = "\u25CF 正在运行" + binding.tvDeviceStatus.setTextColor(binding.root.context.getColor(R.color.green)) + } else { + binding.tvDeviceStatus.text = "\u25CF 离线" + binding.tvDeviceStatus.setTextColor(binding.root.context.getColor(R.color.red)) + } + } + } +} diff --git a/app/src/main/res/drawable/bg_capture_face_button.xml b/app/src/main/res/drawable/bg_capture_face_button.xml new file mode 100644 index 0000000..fc10719 --- /dev/null +++ b/app/src/main/res/drawable/bg_capture_face_button.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_home_top_icon_green.xml b/app/src/main/res/drawable/bg_home_top_icon_green.xml new file mode 100644 index 0000000..61d653a --- /dev/null +++ b/app/src/main/res/drawable/bg_home_top_icon_green.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_home_top_icon_light.xml b/app/src/main/res/drawable/bg_home_top_icon_light.xml new file mode 100644 index 0000000..52b5d38 --- /dev/null +++ b/app/src/main/res/drawable/bg_home_top_icon_light.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back_arrow.xml b/app/src/main/res/drawable/ic_back_arrow.xml new file mode 100644 index 0000000..2f8d112 --- /dev/null +++ b/app/src/main/res/drawable/ic_back_arrow.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/drawable/ic_red_dot.xml b/app/src/main/res/drawable/ic_red_dot.xml new file mode 100644 index 0000000..1942a58 --- /dev/null +++ b/app/src/main/res/drawable/ic_red_dot.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/layout/item_device.xml b/app/src/main/res/layout/item_device.xml new file mode 100644 index 0000000..ea9490f --- /dev/null +++ b/app/src/main/res/layout/item_device.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_family.xml b/app/src/main/res/layout/item_family.xml new file mode 100644 index 0000000..276fa5b --- /dev/null +++ b/app/src/main/res/layout/item_family.xml @@ -0,0 +1,11 @@ + +