From 5a4f238c7421b348e253850fc82d6a890670eade Mon Sep 17 00:00:00 2001 From: Anton Weber <anton@antweb.me> Date: Thu, 22 Aug 2019 14:33:42 +0200 Subject: [PATCH] ScannerListAdapter: Fix jumpy UI. --- .../ccc/events/badge/card10/scanner/ScannerListAdapter.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerListAdapter.kt b/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerListAdapter.kt index 7818d6c..b9deeaf 100644 --- a/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerListAdapter.kt +++ b/app/src/main/java/de/ccc/events/badge/card10/scanner/ScannerListAdapter.kt @@ -26,10 +26,12 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import java.util.* +import kotlin.collections.HashSet class ScannerListAdapter(val clickListener: (Device) -> Unit) : RecyclerView.Adapter<DeviceViewHolder>() { private val list = LinkedList<Device>() + private val foundDevices = mutableSetOf<String>() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DeviceViewHolder { val inflater = LayoutInflater.from(parent.context) @@ -44,6 +46,12 @@ class ScannerListAdapter(val clickListener: (Device) -> Unit) : RecyclerView.Ada override fun getItemCount(): Int = list.size fun put(device: Device) { + if (foundDevices.contains(device.btMac)) { + return + } else { + foundDevices.add(device.btMac) + } + list.remove(device) list.add(device) notifyDataSetChanged() -- GitLab