Newer
Older
SmartKitchen / app / src / main / java / com / casic / br / fragment / DevicePageFragment.kt
package com.casic.br.fragment

import android.graphics.Typeface
import com.casic.br.R
import com.casic.br.adapter.AddedDeviceAdapter
import com.casic.br.adapter.RecommendAdapter
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.model.AddedDeviceModel
import com.casic.br.model.RecommendModel
import com.casic.br.view.AddDeviceActivity
import com.casic.br.view.AllDeviceActivity
import com.casic.br.view.device.FireplaceActivity
import com.casic.br.view.device.RangeHoodActivity
import com.casic.br.view.device.WaterHeaterActivity
import com.pengxh.kt.lite.base.KotlinBaseFragment
import com.pengxh.kt.lite.extensions.navigatePageTo
import kotlinx.android.synthetic.main.fragment_device.*
import kotlinx.android.synthetic.main.include_main_title.*
import java.util.*

class DevicePageFragment : KotlinBaseFragment() {

    override fun initLayoutView(): Int = R.layout.fragment_device

    override fun setupTopBarLayout() {
        requireContext().initLayoutImmersionBar(rootView)
        leftTitleView.text = "设备"
        leftTitleView.typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD)
    }

    override fun initData() {
        //TODO 模拟数据
        val deviceModels = ArrayList<AddedDeviceModel>()

        val model1 = AddedDeviceModel()
        model1.deviceName = "万家乐热水器"
        model1.deviceModel = "D40-DM1"
        model1.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
        deviceModels.add(model1)
        val model2 = AddedDeviceModel()
        model2.deviceName = "万家乐油烟机"
        model2.deviceModel = "CXW-320-W7"
        model2.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
        deviceModels.add(model2)
        val model3 = AddedDeviceModel()
        model3.deviceName = "万家乐壁挂炉"
        model3.deviceModel = "26-13A3L"
        model3.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天"
        deviceModels.add(model3)

        val addedDeviceAdapter = AddedDeviceAdapter(requireContext())
        addedDeviceAdapter.setupDevice(deviceModels)
        deviceRecyclerView.adapter = addedDeviceAdapter
        addedDeviceAdapter.setOnItemClickListener(object :
            AddedDeviceAdapter.OnItemClickListener {
            override fun onAddDeviceClick() {
                requireContext().navigatePageTo<AddDeviceActivity>()
            }

            override fun onItemClick(position: Int) {
                //TODO 需要根据设备类型显示不同的页面
                val deviceModel = deviceModels[position]
                when {
                    deviceModel.deviceName.contains("热水器") -> {
                        requireContext().navigatePageTo<WaterHeaterActivity>(deviceModel.deviceName)
                    }
                    deviceModel.deviceName.contains("油烟机") -> {
                        requireContext().navigatePageTo<RangeHoodActivity>()
                    }
                    deviceModel.deviceName.contains("壁挂炉") -> {
                        requireContext().navigatePageTo<FireplaceActivity>()
                    }
                }
            }

            override fun onButtonClick(position: Int) {

            }
        })

        //热门推荐
        //TODO 模拟数据 只显示前三个设备
        val recommendModels = ArrayList<RecommendModel>()
        for (i in 0..2) {
            val model = RecommendModel()
            model.imageLink = "https://img95.699pic.com/photo/40006/1412.jpg_wh860.jpg"

            recommendModels.add(model)
        }
        val recommendAdapter = RecommendAdapter(requireContext(), recommendModels)
        recommendRecyclerView.adapter = recommendAdapter
        recommendAdapter.setOnItemClickListener(object : RecommendAdapter.OnItemClickListener {

            override fun onItemClick(position: Int) {

            }
        })
    }

    override fun observeRequestState() {

    }

    override fun initEvent() {
        showAllDeviceLayout.setOnClickListener {
            requireContext().navigatePageTo<AllDeviceActivity>()
        }
    }
}