From f9039d670f752d4b6e7690c115b5b79dd60dc9ca Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Sun, 23 Feb 2020 17:45:26 +0000 Subject: [PATCH] Added SatEntry data class and SatEntryAdapter --- .../com/rtbishop/look4sat/repo/SatEntry.kt | 3 + .../look4sat/ui/adapters/SatEntryAdapter.kt | 57 +++++++++++++++++++ app/src/main/res/layout/dialog_sat_entry.xml | 3 +- 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100755 app/src/main/java/com/rtbishop/look4sat/repo/SatEntry.kt create mode 100755 app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt diff --git a/app/src/main/java/com/rtbishop/look4sat/repo/SatEntry.kt b/app/src/main/java/com/rtbishop/look4sat/repo/SatEntry.kt new file mode 100755 index 00000000..7896333f --- /dev/null +++ b/app/src/main/java/com/rtbishop/look4sat/repo/SatEntry.kt @@ -0,0 +1,3 @@ +package com.rtbishop.look4sat.repo + +data class SatEntry(val id: Int, val name: String, var isSelected: Boolean = false) \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt new file mode 100755 index 00000000..6b1f1dfd --- /dev/null +++ b/app/src/main/java/com/rtbishop/look4sat/ui/adapters/SatEntryAdapter.kt @@ -0,0 +1,57 @@ +package com.rtbishop.look4sat.ui.adapters + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CheckBox +import androidx.recyclerview.widget.RecyclerView +import com.rtbishop.look4sat.R +import com.rtbishop.look4sat.repo.SatEntry +import com.rtbishop.look4sat.ui.SatEntryDialog + +internal class SatEntryAdapter(private var entriesList: MutableList) : + RecyclerView.Adapter() { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SatEntryHolder { + val view = LayoutInflater + .from(parent.context) + .inflate(R.layout.sat_entry_item, parent, false) + return SatEntryHolder(view) + } + + override fun onBindViewHolder(holder: SatEntryHolder, position: Int) { + holder.bind(entriesList[position]) + } + + override fun getItemCount(): Int { + return entriesList.size + } + + fun setEntries(entries: MutableList) { + entriesList = entries + notifyDataSetChanged() + } + + internal inner class SatEntryHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + private val satEntryItem: CheckBox = itemView.findViewById(R.id.sat_entry_item) + + fun bind(satEntry: SatEntry) { + satEntryItem.text = satEntry.name + satEntryItem.isChecked = SatEntryDialog.tempSelectionList.contains(satEntry.id) + + itemView.setOnClickListener { + if (satEntryItem.isChecked) { + if (!SatEntryDialog.tempSelectionList.contains(satEntry.id)) { + SatEntryDialog.tempSelectionList.add(satEntry.id) + satEntry.isSelected = true + } + } else { + if (SatEntryDialog.tempSelectionList.contains(satEntry.id)) { + SatEntryDialog.tempSelectionList.remove(satEntry.id) + satEntry.isSelected = false + } + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_sat_entry.xml b/app/src/main/res/layout/dialog_sat_entry.xml index 08b98117..fbde448e 100644 --- a/app/src/main/res/layout/dialog_sat_entry.xml +++ b/app/src/main/res/layout/dialog_sat_entry.xml @@ -8,7 +8,7 @@