From 88b00f3fc74446a1727c93722c7b64179b45a9db Mon Sep 17 00:00:00 2001
From: zhujie <leon.zhu@cloudroam.com.cn>
Date: 星期五, 18 四月 2025 17:40:45 +0800
Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/FirstApp2

---
 app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt |   75 ++++++++++++++++++++++++++++++-------
 1 files changed, 60 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt
index 0c74eb3..8db9999 100644
--- a/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt
+++ b/app/src/main/java/com/example/firstapp/adapter/ExpressAdapter.kt
@@ -14,7 +14,7 @@
 import com.example.firstapp.databinding.ItemExpressPackageHomeBinding
 
 class ExpressAdapter : ListAdapter<ExpressGroup, ExpressAdapter.ViewHolder>(ExpressGroupDiffCallback()) {
-    
+
     private var onPackageClickListener: (ExpressGroup, ExpressPackage) -> Unit = { _, _ -> }
 
     fun setOnPackageClickListener(listener: (ExpressGroup, ExpressPackage) -> Unit) {
@@ -34,7 +34,7 @@
         holder.setOnPackageClickListener(onPackageClickListener)
     }
 
-    inner class ViewHolder(private val binding: ItemExpressGroupBinding) : 
+    inner class ViewHolder(private val binding: ItemExpressGroupBinding) :
         RecyclerView.ViewHolder(binding.root) {
         private val packagesAdapter = ExpressPackageHomeAdapter { pack ->
             currentGroup?.let { group ->
@@ -51,7 +51,7 @@
                         // 禁用内部RecyclerView的垂直滚动
                         return false
                     }
-                    
+
                     // 确保测量所有子项,防止部分内容不可见
                     override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) {
                         try {
@@ -74,11 +74,26 @@
             currentGroup = group
             binding.tvStationName.text = group.stationName
             binding.tvPackageCount.text = "共${group.packages.size}个包裹"
-            
+
+            // 根据驿站名称设置相应的图标
+            val stationName = group.stationName.lowercase()
+            val stationIconResId = when {
+                stationName.isEmpty() || stationName == "未知" -> R.drawable.express_normal
+                stationName.contains("菜鸟") -> R.drawable.express_cainiao
+                stationName.contains("多多") -> R.drawable.express_duoduo
+                stationName.contains("兔喜") -> R.drawable.express_tuxi
+                stationName.contains("妈妈") -> R.drawable.express_mama
+                stationName.contains("小兵") -> R.drawable.express_xiaobing
+                stationName.contains("蓝店") -> R.drawable.express_landian
+                else -> R.drawable.express_normal
+            }
+
+            binding.ivStationIcon.setImageResource(stationIconResId)
+
             // 确保所有数据都被更新
             packagesAdapter.submitList(null)
             packagesAdapter.submitList(group.packages)
-            
+
             // 请求布局刷新
             binding.rvPackages.requestLayout()
         }
@@ -91,9 +106,9 @@
 }
 
 // 首页使用的包裹适配器 - 简化版本
-class ExpressPackageHomeAdapter(private val onPackageClick: (ExpressPackage) -> Unit) : 
+class ExpressPackageHomeAdapter(private val onPackageClick: (ExpressPackage) -> Unit) :
     ListAdapter<ExpressPackage, ExpressPackageHomeAdapter.ViewHolder>(ExpressPackageDiffCallback()) {
-    
+
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
         val binding = ItemExpressPackageHomeBinding.inflate(
             LayoutInflater.from(parent.context), parent, false
@@ -111,9 +126,9 @@
         return currentList.size
     }
 
-    inner class ViewHolder(private val binding: ItemExpressPackageHomeBinding) : 
+    inner class ViewHolder(private val binding: ItemExpressPackageHomeBinding) :
         RecyclerView.ViewHolder(binding.root) {
-        
+
         init {
             binding.root.setOnClickListener {
                 val position = adapterPosition
@@ -128,14 +143,29 @@
             binding.tvCompany.text = pack.company
             binding.tvCreateTime.text = pack.createTime
             binding.tvTrackingNumber.text = pack.trackingNumber
+
+            // 根据快递公司名称设置相应的图标
+            val companyName = pack.company.lowercase()
+            val logoResId = when {
+                companyName.isEmpty() || companyName == "未知" -> R.drawable.reminder_package_express
+                companyName.contains("顺丰") -> R.drawable.express_package_shunfeng
+                companyName.contains("韵达") -> R.drawable.express_package_yunda
+                companyName.contains("圆通") -> R.drawable.express_package_yuantong
+                companyName.contains("申通") -> R.drawable.express_package_shentong
+                companyName.contains("邮政") || companyName.contains("ems") -> R.drawable.express_package_youzheng
+                companyName.contains("极兔") -> R.drawable.express_package_jitu
+                else -> R.drawable.express_normal
+            }
+
+            binding.ivCompanyLogo.setImageResource(logoResId)
         }
     }
 }
 
 // 取件页面使用的包裹适配器
-class ExpressPackageAdapter(private val onPackagePickup: (ExpressPackage) -> Unit = { _ -> }) : 
+class ExpressPackageAdapter(private val onPackagePickup: (ExpressPackage) -> Unit = { _ -> }) :
     ListAdapter<ExpressPackage, ExpressPackageAdapter.ViewHolder>(ExpressPackageDiffCallback()) {
-    
+
     private var onPackageClickListener: (ExpressPackage) -> Unit = {}
     private var stationName: String = ""
 
@@ -164,9 +194,9 @@
         return currentList.size
     }
 
-    inner class ViewHolder(private val binding: ItemPackageBinding) : 
+    inner class ViewHolder(private val binding: ItemPackageBinding) :
         RecyclerView.ViewHolder(binding.root) {
-        
+
         init {
             binding.ivPackageStatus.setOnClickListener {
                 val position = adapterPosition
@@ -175,7 +205,7 @@
                     onPackagePickup(pack)
                 }
             }
-            
+
             binding.root.setOnClickListener(null)
         }
 
@@ -189,6 +219,21 @@
 //                else R.drawable.circle
                 R.drawable.circle
             )
+
+            // 根据快递公司名称设置相应的图标
+            val companyName = pack.company.lowercase()
+            val logoResId = when {
+                companyName.isEmpty() || companyName == "未知" -> R.drawable.reminder_package_express
+                companyName.contains("顺丰") -> R.drawable.express_package_shunfeng
+                companyName.contains("韵达") -> R.drawable.express_package_yunda
+                companyName.contains("圆通") -> R.drawable.express_package_yuantong
+                companyName.contains("申通") -> R.drawable.express_package_shentong
+                companyName.contains("邮政") || companyName.contains("ems") -> R.drawable.express_package_youzheng
+                companyName.contains("极兔") -> R.drawable.express_package_jitu
+                else -> R.drawable.express_normal
+            }
+
+            binding.ivCompanyLogo.setImageResource(logoResId)
         }
     }
 }
@@ -211,4 +256,4 @@
     override fun areContentsTheSame(oldItem: ExpressPackage, newItem: ExpressPackage): Boolean {
         return oldItem == newItem
     }
-} 
\ No newline at end of file
+}
\ No newline at end of file

--
Gitblit v1.9.3