summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authoruabdullah <uabdullah@google.com>2017-11-18 11:14:52 -0800
committerCopybara-Service <copybara-piper@google.com>2017-11-18 11:50:05 -0800
commit26b3f3d71b4cae4ee234081ea6da82eb44e88ee6 (patch)
treee627c98006a66bb5cb02d0a6b56d16c6bd5fe91b /java
parent6da64281890bf79e78a19c7dc363570bbc13f0f2 (diff)
When an expanded NUI VM is collapsed, ensure it remains collapsed when recycling views.
The adapter maintains the state of those voicemails that were expanded. When the views are recycled we ensure that the expanded view holder whenever visible is expanded. However when an expanded viewholder is collapsed, taken out of view and then brought back into view (recycled), the expanded state is preserved. This CL ensures that this no longer happens. Bug: 64882313,68382421 Test: Unit test PiperOrigin-RevId: 176233960 Change-Id: Ib57859a287ec0c4f9e955a0fc01a49f093023fd1
Diffstat (limited to 'java')
-rw-r--r--java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java13
-rw-r--r--java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java9
2 files changed, 21 insertions, 1 deletions
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java b/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java
index 6f6a87cef..1c53e3801 100644
--- a/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java
+++ b/java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java
@@ -102,4 +102,17 @@ final class NewVoicemailAdapter extends RecyclerView.Adapter<NewVoicemailViewHol
}
}
}
+
+ /**
+ * Ensures that when we collapse the expanded view, we don't expand it again when we are recycling
+ * the viewholders.
+ *
+ * @param collapseViewHolder is the view holder that is currently collapsed.
+ */
+ @Override
+ public void onViewHolderCollapsed(NewVoicemailViewHolder collapseViewHolder) {
+ if (collapseViewHolder.getViewHolderId() == currentlyExpandedViewHolderId) {
+ currentlyExpandedViewHolderId = -1;
+ }
+ }
}
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
index f8de01f58..f08e6bfd7 100644
--- a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
+++ b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
@@ -119,13 +119,20 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On
interface NewVoicemailViewHolderListener {
void onViewHolderExpanded(NewVoicemailViewHolder expandedViewHolder);
+
+ void onViewHolderCollapsed(NewVoicemailViewHolder expandedViewHolder);
}
@Override
public void onClick(View v) {
- LogUtil.i("NewVoicemailViewHolder.onClick", "voicemail id: %d", viewHolderId);
+ LogUtil.i(
+ "NewVoicemailViewHolder.onClick",
+ "voicemail id: %d, isViewHolderExpanded:%b",
+ viewHolderId,
+ isViewHolderExpanded);
if (isViewHolderExpanded) {
collapseViewHolder();
+ voicemailViewHolderListener.onViewHolderCollapsed(this);
} else {
expandViewHolder();
voicemailViewHolderListener.onViewHolderExpanded(this);