From 84b44f6093a69b84b537d583d3191f2f1994cc8a Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Thu, 14 Oct 2021 12:24:06 +0100 Subject: [PATCH] using generic list for the circular cache instead of a fixed string array --- .../{CircularStringCache.kt => CircularCache.kt} | 8 ++++---- .../features/notifications/NotificationDrawerManager.kt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) rename vector/src/main/java/im/vector/app/features/notifications/{CircularStringCache.kt => CircularCache.kt} (82%) diff --git a/vector/src/main/java/im/vector/app/features/notifications/CircularStringCache.kt b/vector/src/main/java/im/vector/app/features/notifications/CircularCache.kt similarity index 82% rename from vector/src/main/java/im/vector/app/features/notifications/CircularStringCache.kt rename to vector/src/main/java/im/vector/app/features/notifications/CircularCache.kt index 97b40daf46..9a979a2ec8 100644 --- a/vector/src/main/java/im/vector/app/features/notifications/CircularStringCache.kt +++ b/vector/src/main/java/im/vector/app/features/notifications/CircularCache.kt @@ -19,14 +19,14 @@ package im.vector.app.features.notifications /** * A FIFO circular buffer of strings */ -class CircularStringCache(cacheSize: Int) { +class CircularCache(cacheSize: Int) { - private val cache = Array(cacheSize) { "" } + private val cache = ArrayList(initialCapacity = cacheSize) private var writeIndex = 0 - fun contains(key: String): Boolean = cache.contains(key) + fun contains(key: T): Boolean = cache.contains(key) - fun put(key: String) { + fun put(key: T) { if (writeIndex == cache.size - 1) { writeIndex = 0 } diff --git a/vector/src/main/java/im/vector/app/features/notifications/NotificationDrawerManager.kt b/vector/src/main/java/im/vector/app/features/notifications/NotificationDrawerManager.kt index 2df093b615..ff44ac4035 100644 --- a/vector/src/main/java/im/vector/app/features/notifications/NotificationDrawerManager.kt +++ b/vector/src/main/java/im/vector/app/features/notifications/NotificationDrawerManager.kt @@ -89,7 +89,7 @@ class NotificationDrawerManager @Inject constructor(private val context: Context * Acts as a notification debouncer to stop already dismissed push notifications from * displaying again when the /sync response is delayed. */ - private val seenEventIds = CircularStringCache(cacheSize = 25) + private val seenEventIds = CircularCache(cacheSize = 25) /** Should be called as soon as a new event is ready to be displayed.