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