From 337d2c350767e5f18cb799e0fcdeb789dca4bbc3 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Fri, 15 Nov 2024 15:24:03 +0100 Subject: [PATCH] Fix a couple of entry equality checks in the adapter With the introduction of DiffUtil, an entry might not be the same instance in the in-memory vault as in the shown entry list of the adapter. --- .../aegis/ui/views/EntryAdapter.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java index a811f027f..480ba2670 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java @@ -433,9 +433,9 @@ public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) int index = _entryList.translateEntryPosToIndex(position); VaultEntry entry = _entryList.getShownEntries().get(index); - boolean hidden = _tapToReveal && entry != _focusedEntry; - boolean paused = _pauseFocused && entry == _focusedEntry; - boolean dimmed = (_highlightEntry || _tempHighlightEntry) && _focusedEntry != null && _focusedEntry != entry; + boolean hidden = _tapToReveal && !entry.equals(_focusedEntry); + boolean paused = _pauseFocused && entry.equals(_focusedEntry); + boolean dimmed = (_highlightEntry || _tempHighlightEntry) && _focusedEntry != null && !_focusedEntry.equals(entry); boolean showProgress = entry.getInfo() instanceof TotpInfo && ((TotpInfo) entry.getInfo()).getPeriod() != getMostFrequentPeriod(); boolean showAccountName = true; if (_onlyShowNecessaryAccountNames) { @@ -461,7 +461,7 @@ public void onClick(View v) { if (_selectedEntries.isEmpty()) { if (_highlightEntry || _tempHighlightEntry || _tapToReveal) { - if (_focusedEntry == entry) { + if (_focusedEntry != null && _focusedEntry.equals(entry)) { resetFocus(); } else { focusEntry(entry, _tapToRevealTime); @@ -628,7 +628,7 @@ public void focusEntry(VaultEntry entry, int secondsToFocus) { _dimHandler.removeCallbacksAndMessages(null); for (EntryHolder holder : _holders) { - if (holder.getEntry() != _focusedEntry) { + if (!holder.getEntry().equals(_focusedEntry)) { if (_highlightEntry || _tempHighlightEntry) { holder.dim(); } @@ -703,7 +703,7 @@ public List selectAllEntries() { for (VaultEntry entry: _entryList.getShownEntries()) { for (EntryHolder holder: _holders) { - if (holder.getEntry() == entry) { + if (holder.getEntry().equals(entry)) { holder.setFocused(true); } } @@ -718,7 +718,7 @@ public List selectAllEntries() { public void deselectAllEntries() { for (VaultEntry entry: _selectedEntries) { for (EntryHolder holder : _holders) { - if (holder.getEntry() == entry) { + if (holder.getEntry().equals(entry)) { holder.setFocusedAndAnimate(false); break; }