| | |
| | | import kotlinx.coroutines.launch |
| | | import com.example.firstapp.view.UnderlineTextView |
| | | import com.example.firstapp.activity.ReminderListActivity |
| | | import android.graphics.Color |
| | | import android.view.Gravity |
| | | import android.widget.FrameLayout |
| | | |
| | | class HomeFragment : Fragment() { |
| | | |
| | |
| | | |
| | | // 设置点击监听 |
| | | expressAdapter.setOnPackageClickListener { group, pack -> |
| | | // 根据驿站名称设置相应的图标 |
| | | 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 |
| | | } |
| | | // 跳转到取件页面 |
| | | val intent = Intent(requireContext(), PickupActivity::class.java).apply { |
| | | putExtra("station_name", group.stationName) |
| | | putExtra("company", pack.company) |
| | | putExtra("page_type", PickupActivity.TYPE_EXPRESS) |
| | | putExtra("station_icon_res_id", stationIconResId) // 添加图标资源ID |
| | | } |
| | | startActivity(intent) |
| | | } |
| | |
| | | |
| | | // 设置点击监听 |
| | | financeAdapter.setOnPackageClickListener { group, pack -> |
| | | val stationName = group.stationName.lowercase() |
| | | val stationIconResId = when { |
| | | stationName.isEmpty() || stationName == "未知" -> R.drawable.finance_huankuan_normal |
| | | stationName.contains("安逸花") -> R.drawable.finance_anyihua |
| | | stationName.contains("房贷") -> R.drawable.finance_fangdai |
| | | stationName.contains("还款") -> R.drawable.finance_huankuan |
| | | stationName.contains("花呗") -> R.drawable.finance_huabei |
| | | stationName.contains("借呗") -> R.drawable.finance_jiebei |
| | | stationName.contains("京东白条") -> R.drawable.finance_jingdongbaitiao |
| | | stationName.contains("京东金条") -> R.drawable.finance_jingdongjintiao |
| | | stationName.contains("汽车分期") -> R.drawable.finance_qichefenqi |
| | | stationName.contains("省呗") -> R.drawable.finance_shenbei |
| | | stationName.contains("信用卡") -> R.drawable.finance_xingyongka |
| | | stationName.contains("支付宝") -> R.drawable.finance_zhifubao |
| | | else -> R.drawable.finance_huankuan_normal |
| | | } |
| | | // 跳转到取件页面 |
| | | val intent = Intent(requireContext(), PickupActivity::class.java).apply { |
| | | putExtra("station_name", group.stationName) |
| | | putExtra("company", pack.company) |
| | | putExtra("page_type", PickupActivity.TYPE_REPAYMENT) |
| | | putExtra("station_icon_res_id", stationIconResId) // 添加图标资源ID |
| | | |
| | | } |
| | | startActivity(intent) |
| | |
| | | |
| | | // 设置点击监听 |
| | | incomeAdapter.setOnPackageClickListener { group, pack -> |
| | | |
| | | val stationName = group.stationName.lowercase() |
| | | val stationIconResId = when { |
| | | stationName.isEmpty() || stationName == "未知" -> R.drawable.finance_income_bank_normal |
| | | stationName.contains("工商银行") -> R.drawable.bank_gongshang |
| | | stationName.contains("光大银行") -> R.drawable.bank_guangda |
| | | stationName.contains("国家开发银行") -> R.drawable.bank_guojiakaifa |
| | | stationName.contains("恒丰银行") -> R.drawable.bank_hengfeng |
| | | stationName.contains("华夏银行") -> R.drawable.bank_huaxia |
| | | stationName.contains("花呗分期") -> R.drawable.bank_huabeifenqi |
| | | stationName.contains("建设银行") -> R.drawable.bank_jianshe |
| | | stationName.contains("交通银行") -> R.drawable.bank_jiaotong |
| | | stationName.contains("民生银行") -> R.drawable.bank_mingsheng |
| | | stationName.contains("南京银行") -> R.drawable.bank_nanjing |
| | | stationName.contains("农商银行") -> R.drawable.bank_nongshang |
| | | stationName.contains("农业银行") -> R.drawable.bank_nongye |
| | | stationName.contains("平安银行") -> R.drawable.bank_pingan |
| | | stationName.contains("浦发银行") -> R.drawable.bank_pufa |
| | | stationName.contains("苏州银行") -> R.drawable.bank_suzhou |
| | | stationName.contains("邮储银行") -> R.drawable.bank_youzheng |
| | | stationName.contains("招商银行") -> R.drawable.bank_zhaoshang |
| | | stationName.contains("中国银行") -> R.drawable.bank_zhongguo |
| | | stationName.contains("中信银行") -> R.drawable.bank_zhongxin |
| | | stationName.contains("中原银行") -> R.drawable.bank_zhongyuan |
| | | else -> R.drawable.finance_income_bank_normal |
| | | } |
| | | // 跳转到取件页面 |
| | | val intent = Intent(requireContext(), PickupActivity::class.java).apply { |
| | | putExtra("station_name", group.stationName) |
| | | putExtra("company", pack.company) |
| | | putExtra("page_type", PickupActivity.TYPE_INCOME) |
| | | putExtra("station_icon_res_id", stationIconResId) // 添加图标资源ID |
| | | } |
| | | startActivity(intent) |
| | | } |
| | |
| | | flightAdapter = FlightAdapter() |
| | | adapter = flightAdapter |
| | | visibility = View.GONE |
| | | |
| | | |
| | | // 设置点击监听 |
| | | flightAdapter.setOnPackageClickListener { group, pack -> |
| | | // 跳转到航班处理页面 |
| | |
| | | trainAdapter = TrainAdapter() |
| | | adapter = trainAdapter |
| | | visibility = View.GONE |
| | | |
| | | |
| | | // 设置点击监听 |
| | | trainAdapter.setOnPackageClickListener { group, pack -> |
| | | // 跳转到火车票页面 |
| | |
| | | // 其他标签点击事件需要检查会员状态 |
| | | val memberOnlyTabs = mapOf( |
| | | tabIncome to { homeViewModel.loadIncomeData() }, |
| | | tabFlight to { homeViewModel.loadFlightData() }, |
| | | tabTrain to { homeViewModel.loadTrainData() } |
| | | // tabFlight to { homeViewModel.loadFlightData() }, |
| | | // tabTrain to { homeViewModel.loadTrainData() } |
| | | ) |
| | | |
| | | memberOnlyTabs.forEach { (tab, loadAction) -> |
| | |
| | | hideAllRecyclers() |
| | | when (tab) { |
| | | tabIncome -> incomeRecycler.visibility = View.VISIBLE |
| | | tabFlight -> flightRecycler.visibility = View.VISIBLE |
| | | tabTrain -> trainRecycler.visibility = View.VISIBLE |
| | | // tabFlight -> flightRecycler.visibility = View.VISIBLE |
| | | // tabTrain -> trainRecycler.visibility = View.VISIBLE |
| | | } |
| | | updateTabStyles(tab) |
| | | loadAction() |
| | |
| | | |
| | | private fun updateTabStyles(selectedTab: UnderlineTextView) { |
| | | binding.apply { |
| | | val tabs = listOf(tabExpress, tabFinance, tabIncome, tabFlight, tabTrain) |
| | | // val tabs = listOf(tabExpress, tabFinance, tabIncome, tabFlight, tabTrain) |
| | | val tabs = listOf(tabExpress, tabFinance, tabIncome) |
| | | tabs.forEach { tab -> |
| | | // 设置文字颜色为黑色或灰色 |
| | | tab.setTextColor(ContextCompat.getColor(requireContext(), |
| | |
| | | tabExpress.visibility = View.GONE |
| | | tabFinance.visibility = View.GONE |
| | | tabIncome.visibility = View.GONE |
| | | tabFlight.visibility = View.GONE |
| | | tabTrain.visibility = View.GONE |
| | | // tabFlight.visibility = View.GONE |
| | | // tabTrain.visibility = View.GONE |
| | | |
| | | // 获取用户信息判断是否是会员 |
| | | val savedPhone = PreferencesManager.getPhone() |
| | |
| | | tabIncome.visibility = if (category.isEnabled) View.VISIBLE else View.GONE |
| | | if (categories.indexOf(category) == 0 && category.isEnabled) tabIncome.performClick() |
| | | } |
| | | "航班" -> { |
| | | tabFlight.visibility = if (category.isEnabled) View.VISIBLE else View.GONE |
| | | if (categories.indexOf(category) == 0 && category.isEnabled) tabFlight.performClick() |
| | | } |
| | | "火车票" -> { |
| | | tabTrain.visibility = if (category.isEnabled) View.VISIBLE else View.GONE |
| | | if (categories.indexOf(category) == 0 && category.isEnabled) tabTrain.performClick() |
| | | } |
| | | // "航班" -> { |
| | | // tabFlight.visibility = if (category.isEnabled) View.VISIBLE else View.GONE |
| | | // if (categories.indexOf(category) == 0 && category.isEnabled) tabFlight.performClick() |
| | | // } |
| | | // "火车票" -> { |
| | | // tabTrain.visibility = if (category.isEnabled) View.VISIBLE else View.GONE |
| | | // if (categories.indexOf(category) == 0 && category.isEnabled) tabTrain.performClick() |
| | | // } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | if (isMember) { |
| | | // 会员可以看到所有分类 |
| | | adapter.setCategories(categories) |
| | | val serverCategories = RetrofitClient.apiService.getUserCategories(response.data?.id.toString()) |
| | | if(serverCategories.size==2 && serverCategories[0].name=="快递"&&serverCategories[1].name=="还款"){ |
| | | // 将 serverCategories 转换为可变列表 |
| | | val mutableServerCategories = serverCategories.toMutableList() |
| | | |
| | | // 添加多个新分类 |
| | | mutableServerCategories.add(CategoryConfig( |
| | | id = 5, |
| | | name = "火车票", |
| | | order = 4, |
| | | isEnabled = false |
| | | )) |
| | | mutableServerCategories.add(CategoryConfig( |
| | | id = 4, |
| | | name = "航班", |
| | | order = 3, |
| | | isEnabled = false |
| | | )) |
| | | mutableServerCategories.add(CategoryConfig( |
| | | id = 3, |
| | | name = "收入", |
| | | order = 2, |
| | | isEnabled = false |
| | | )) |
| | | |
| | | // 设置适配器的分类列表 |
| | | adapter.setCategories(mutableServerCategories) |
| | | |
| | | }else { |
| | | adapter.setCategories(serverCategories) |
| | | } |
| | | } else { |
| | | // 非会员只能看到快递和还款 |
| | | val limitedCategories = categories.filter { |
| | |
| | | // 直接使用布局中定义的小红点 |
| | | reminderBadge = binding.reminderBadge |
| | | } |
| | | |
| | | |
| | | // 更新未读提醒徽章 |
| | | private fun updateReminderBadge(unreadCount: Int) { |
| | | reminderBadge?.apply { |