From 722b6cc06db8e487929f77a8a707f6de24d2b1fe Mon Sep 17 00:00:00 2001 From: aminecmi Date: Sun, 13 Jan 2019 13:47:46 +0100 Subject: [PATCH] Fixed issue with read/unread cont when swiping. --- .../amine/bou/readerforselfoss/HomeActivity.kt | 14 +++++++++----- .../bou/readerforselfoss/adapters/ItemsAdapter.kt | 8 +++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/HomeActivity.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/HomeActivity.kt index f8d72b9..1da4bb6 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/HomeActivity.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/HomeActivity.kt @@ -247,14 +247,18 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener { val i = items.elementAtOrNull(position) if (i != null) { - val adapter = recyclerView.adapter + val adapter = recyclerView.adapter as ItemsAdapter<*> - when (adapter) { - is ItemCardAdapter -> adapter.handleItemAtIndex(position) - is ItemListAdapter -> adapter.handleItemAtIndex(position) + val wasItemUnread = adapter.unreadItemStatusAtIndex(position) + + adapter.handleItemAtIndex(position) + + if (wasItemUnread) { + badgeNew-- + } else { + badgeNew++ } - badgeNew-- reloadBadgeContent() val tagHashes = i.tags.tags.split(",").map { it.longHash() } diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemsAdapter.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemsAdapter.kt index 054db7f..63d9a3f 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemsAdapter.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemsAdapter.kt @@ -132,15 +132,17 @@ abstract class ItemsAdapter : RecyclerView.Adapte } fun handleItemAtIndex(position: Int) { - val i = items[position] - - if (i.unread) { + if (unreadItemStatusAtIndex(position)) { readItemAtIndex(position) } else { unreadItemAtIndex(position) } } + fun unreadItemStatusAtIndex(position: Int): Boolean { + return items[position].unread + } + private fun readItemAtIndex(position: Int) { val i = items[position] items.remove(i)