diff options
author | uabdullah <uabdullah@google.com> | 2017-11-18 11:14:52 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2017-11-18 11:50:05 -0800 |
commit | 26b3f3d71b4cae4ee234081ea6da82eb44e88ee6 (patch) | |
tree | e627c98006a66bb5cb02d0a6b56d16c6bd5fe91b | |
parent | 6da64281890bf79e78a19c7dc363570bbc13f0f2 (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
-rw-r--r-- | java/com/android/dialer/voicemail/listui/NewVoicemailAdapter.java | 13 | ||||
-rw-r--r-- | java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java | 9 |
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); |