summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/calllog/CallLogAdapter.java
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-06-15 16:06:14 -0700
committerAndrew Lee <anwlee@google.com>2015-06-15 17:43:52 -0700
commitbae7b937b6cf6e7eb26d07bec95de38083923614 (patch)
tree6662774c617e202e85bea437ea503ba78923247d /src/com/android/dialer/calllog/CallLogAdapter.java
parentbecbb119bdcd96257106b990ce84bac99388deac (diff)
Add play voicemail primary action to call log.
+ Add voicemail primary action button, which expands the call log and plays immediately when clicked. + Pass expand/collapse listener into the view holder. This is necessary because it needs to be triggered when the "play" primary action is clicked so that the CallLogAdapter correctly registers what has been added and binded. + Update primary action button state when showing or hiding actions, so the visibility of the voicemail play button is managed properly. + Ensure voicemail playback state is consistent between multiple call log items when the user initiates a collapse or expand. Add reset function to help manage this. + With the reset, protect against the possibility of functions in the presenter being called when no voicemail playback view is set. Bug: 21654755 Change-Id: I7bcf67d27fa08fe77d1334dc084b52effe8d3ccc
Diffstat (limited to 'src/com/android/dialer/calllog/CallLogAdapter.java')
-rw-r--r--src/com/android/dialer/calllog/CallLogAdapter.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 3c7e080b4..4304002da 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -116,9 +116,13 @@ public class CallLogAdapter extends GroupingListAdapter
return;
}
+ // Always reset the voicemail playback state on expand or collapse.
+ mVoicemailPlaybackPresenter.reset();
+
if (viewHolder.getAdapterPosition() == mCurrentlyExpandedPosition) {
// Hide actions, if the clicked item is the expanded item.
viewHolder.showActions(false);
+
mCurrentlyExpandedPosition = RecyclerView.NO_POSITION;
mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;
} else {
@@ -289,6 +293,7 @@ public class CallLogAdapter extends GroupingListAdapter
CallLogListItemViewHolder viewHolder = CallLogListItemViewHolder.create(
view,
mContext,
+ mExpandCollapseListener,
mPhoneNumberUtilsWrapper,
mCallLogViewsHelper,
mVoicemailPlaybackPresenter);
@@ -297,7 +302,6 @@ public class CallLogAdapter extends GroupingListAdapter
viewHolder.callLogEntryView.setAccessibilityDelegate(mAccessibilityDelegate);
viewHolder.primaryActionView.setTag(viewHolder);
- viewHolder.primaryActionView.setOnClickListener(mExpandCollapseListener);
return viewHolder;
}
@@ -402,7 +406,6 @@ public class CallLogAdapter extends GroupingListAdapter
mCurrentlyExpandedPosition = position;
}
views.showActions(mCurrentlyExpandedPosition == position);
- views.updatePrimaryActionButton();
String nameForDefaultImage = null;
if (TextUtils.isEmpty(info.name)) {