diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt new file mode 100644 index 0000000..66cb1a4 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 热水器 + * */ +class WaterHeaterActivity { +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt new file mode 100644 index 0000000..66cb1a4 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 热水器 + * */ +class WaterHeaterActivity { +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_device.xml b/app/src/main/res/drawable/ic_add_device.xml new file mode 100644 index 0000000..14c8ec9 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_device.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt new file mode 100644 index 0000000..66cb1a4 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 热水器 + * */ +class WaterHeaterActivity { +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_device.xml b/app/src/main/res/drawable/ic_add_device.xml new file mode 100644 index 0000000..14c8ec9 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_device.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml index 6020f09..de4d3b2 100644 --- a/app/src/main/res/drawable/ic_right.xml +++ b/app/src/main/res/drawable/ic_right.xml @@ -1,6 +1,6 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt new file mode 100644 index 0000000..66cb1a4 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 热水器 + * */ +class WaterHeaterActivity { +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_device.xml b/app/src/main/res/drawable/ic_add_device.xml new file mode 100644 index 0000000..14c8ec9 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_device.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml index 6020f09..de4d3b2 100644 --- a/app/src/main/res/drawable/ic_right.xml +++ b/app/src/main/res/drawable/ic_right.xml @@ -1,6 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt new file mode 100644 index 0000000..66cb1a4 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 热水器 + * */ +class WaterHeaterActivity { +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_device.xml b/app/src/main/res/drawable/ic_add_device.xml new file mode 100644 index 0000000..14c8ec9 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_device.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml index 6020f09..de4d3b2 100644 --- a/app/src/main/res/drawable/ic_right.xml +++ b/app/src/main/res/drawable/ic_right.xml @@ -1,6 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_device.xml b/app/src/main/res/layout/fragment_device.xml index a97ec1b..a19fe53 100644 --- a/app/src/main/res/layout/fragment_device.xml +++ b/app/src/main/res/layout/fragment_device.xml @@ -1,5 +1,6 @@ + android:layout_marginTop="1dp" + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 611e149..7c387fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt new file mode 100644 index 0000000..48321ae --- /dev/null +++ b/app/src/main/java/com/casic/br/adapter/AddedDeviceAdapter.kt @@ -0,0 +1,49 @@ +package com.casic.br.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.casic.br.R +import com.casic.br.model.AddedDeviceModel + +class AddedDeviceAdapter( + private val context: Context, + private val dataRows: MutableList +) : RecyclerView.Adapter() { + + private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder( + layoutInflater.inflate(R.layout.item_added_device_rv_l, parent, false) + ) + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.deviceNameView.text = dataRows[position].deviceName + holder.deviceUsedTimeView.text = dataRows[position].deviceUsedTime + holder.itemView.setOnClickListener { + clickListener?.onItemClick(position) + } + } + + override fun getItemCount(): Int = dataRows.size + + private var clickListener: OnItemClickListener? = null + + interface OnItemClickListener { + fun onItemClick(position: Int) + } + + fun setOnItemClickListener(clickListener: OnItemClickListener?) { + this.clickListener = clickListener + } + + class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val imageView: ImageView = itemView.findViewById(R.id.imageView) + val deviceNameView: TextView = itemView.findViewById(R.id.deviceNameView) + val deviceUsedTimeView: TextView = itemView.findViewById(R.id.deviceUsedTimeView) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt index 29b7b3f..3b2dd90 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextGridAdapter.kt @@ -18,8 +18,7 @@ private val context: Context, private val icons: IntArray, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt index 1a4e58a..260be96 100644 --- a/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt +++ b/app/src/main/java/com/casic/br/adapter/IconTextListAdapter.kt @@ -15,8 +15,7 @@ class IconTextListAdapter( private val context: Context, private val titles: Array -) : - RecyclerView.Adapter() { +) : RecyclerView.Adapter() { private var layoutInflater: LayoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt index 2d32a78..9857505 100644 --- a/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/DevicePageFragment.kt @@ -1,21 +1,57 @@ package com.casic.br.fragment +import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.casic.br.view.AllDeviceActivity import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.extensions.navigatePageTo +import com.pengxh.kt.lite.extensions.show +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() { - + leftTitleView.text = "设备" } override fun initData() { + //TODO 模拟数据 只显示前三个设备 + val deviceModels = ArrayList() + for (i in 0..2) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(requireContext(), deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(requireContext()) + } + }) } override fun initEvent() { + showAllDeviceLayout.setOnClickListener { + requireContext().navigatePageTo() + } + addDeviceLayout.setOnClickListener { + + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/model/AddedDeviceModel.java b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java new file mode 100644 index 0000000..40a545c --- /dev/null +++ b/app/src/main/java/com/casic/br/model/AddedDeviceModel.java @@ -0,0 +1,43 @@ +package com.casic.br.model; + +/** + * 已添加设备(Iot和非Iot设备)数据模型 + */ +public class AddedDeviceModel { + private String deviceImage; + private String deviceName; + private String deviceType; + private String deviceUsedTime; + + public String getDeviceImage() { + return deviceImage; + } + + public void setDeviceImage(String deviceImage) { + this.deviceImage = deviceImage; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getDeviceType() { + return deviceType; + } + + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; + } + + public String getDeviceUsedTime() { + return deviceUsedTime; + } + + public void setDeviceUsedTime(String deviceUsedTime) { + this.deviceUsedTime = deviceUsedTime; + } +} diff --git a/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt new file mode 100644 index 0000000..bafd851 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/AllDeviceActivity.kt @@ -0,0 +1,56 @@ +package com.casic.br.view + +import androidx.recyclerview.widget.DividerItemDecoration +import com.casic.br.R +import com.casic.br.adapter.AddedDeviceAdapter +import com.casic.br.model.AddedDeviceModel +import com.gyf.immersionbar.ImmersionBar +import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import kotlinx.android.synthetic.main.fragment_device.* +import kotlinx.android.synthetic.main.include_base_title.* +import java.util.* + +class AllDeviceActivity : KotlinBaseActivity() { + + override fun initLayoutView(): Int = R.layout.activity_all_device + + override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this)) + + leftBackView.setOnClickListener { finish() } + titleView.text = "全部设备" + } + + override fun initData() { + //TODO 模拟数据 + val deviceModels = ArrayList() + for (i in 0..9) { + val model = AddedDeviceModel() + model.deviceName = "*****热水器" + model.deviceUsedTime = "已使用${Random().nextInt(12)}个月${Random().nextInt(31)}天" + + deviceModels.add(model) + } + val addedDeviceAdapter = AddedDeviceAdapter(this, deviceModels) + deviceRecyclerView.addItemDecoration( + DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + ) + deviceRecyclerView.adapter = addedDeviceAdapter + addedDeviceAdapter.setOnItemClickListener(object : + AddedDeviceAdapter.OnItemClickListener { + override fun onItemClick(position: Int) { + //TODO 需要根据设备类型显示不同的页面 + val deviceModel = deviceModels[position] + deviceModel.deviceName.show(this@AllDeviceActivity) + } + }) + } + + override fun initEvent() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/CookerActivity.kt b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt new file mode 100644 index 0000000..23c7a55 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/CookerActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 灶具 + * */ +class CookerActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt new file mode 100644 index 0000000..139cb18 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/FireplaceActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 壁挂炉 + * */ +class FireplaceActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt new file mode 100644 index 0000000..838bde6 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/RangeHoodActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 油烟机 + * */ +class RangeHoodActivity { +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt new file mode 100644 index 0000000..66cb1a4 --- /dev/null +++ b/app/src/main/java/com/casic/br/view/device/WaterHeaterActivity.kt @@ -0,0 +1,7 @@ +package com.casic.br.view.device + +/** + * 热水器 + * */ +class WaterHeaterActivity { +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_device.xml b/app/src/main/res/drawable/ic_add_device.xml new file mode 100644 index 0000000..14c8ec9 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_device.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml index 6020f09..de4d3b2 100644 --- a/app/src/main/res/drawable/ic_right.xml +++ b/app/src/main/res/drawable/ic_right.xml @@ -1,6 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_device.xml b/app/src/main/res/layout/fragment_device.xml index a97ec1b..a19fe53 100644 --- a/app/src/main/res/layout/fragment_device.xml +++ b/app/src/main/res/layout/fragment_device.xml @@ -1,5 +1,6 @@ + android:layout_marginTop="1dp" + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_added_device_rv_l.xml b/app/src/main/res/layout/item_added_device_rv_l.xml new file mode 100644 index 0000000..9132614 --- /dev/null +++ b/app/src/main/res/layout/item_added_device_rv_l.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + \ No newline at end of file