From 7030a12a15e565521ffb220c00a0251e47bd3a93 Mon Sep 17 00:00:00 2001 From: Christine Chen Date: Wed, 14 Aug 2013 21:44:19 +0200 Subject: Change primary actions of the CallLog items. - When the CallLog item is in the CallLog fragment, the primary action remains to be opening the call detail page. - When the CallLog item is in the Favorite fragment, the primary action changes to be calling the number directly. The secondary action is hidden unless it is to play a voicemail. Bug: 10308694 Change-Id: I28ca7aa783bcca35eb8b41f6e8508d08062dd253 --- src/com/android/dialer/calllog/CallLogAdapter.java | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'src/com/android/dialer/calllog/CallLogAdapter.java') diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index 2c81f46fe..15c9b05a6 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -178,6 +178,10 @@ public class CallLogAdapter extends GroupingListAdapter /** Can be set to true by tests to disable processing of requests. */ private volatile boolean mRequestProcessingDisabled = false; + /** True if CallLogAdapter is created from the PhoneFavoriteFragment, where the primary + * action should be set to call a number instead of opening the detail page. */ + private boolean mUseCallAsPrimaryAction = false; + /** Listener for the primary action in the list, opens the call details. */ private final View.OnClickListener mPrimaryActionListener = new View.OnClickListener() { @Override @@ -228,12 +232,13 @@ public class CallLogAdapter extends GroupingListAdapter }; public CallLogAdapter(Context context, CallFetcher callFetcher, - ContactInfoHelper contactInfoHelper) { + ContactInfoHelper contactInfoHelper, boolean useCallAsPrimaryAction) { super(context); mContext = context; mCallFetcher = callFetcher; mContactInfoHelper = contactInfoHelper; + mUseCallAsPrimaryAction = useCallAsPrimaryAction; mContactInfoCache = ExpirableCache.create(CONTACT_INFO_CACHE_SIZE); mRequests = new LinkedList(); @@ -515,9 +520,15 @@ public class CallLogAdapter extends GroupingListAdapter final ContactInfo cachedContactInfo = getContactInfoFromCallLog(c); - views.primaryActionView.setTag( - IntentProvider.getCallDetailIntentProvider( - getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count)); + if (!mUseCallAsPrimaryAction) { + // Sets the primary action to open call detail page. + views.primaryActionView.setTag( + IntentProvider.getCallDetailIntentProvider( + getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count)); + } else { + // Sets the primary action to call the number. + views.primaryActionView.setTag(IntentProvider.getReturnCallIntentProvider(number)); + } // Store away the voicemail information so we can play it directly. if (callType == Calls.VOICEMAIL_TYPE) { @@ -594,7 +605,8 @@ public class CallLogAdapter extends GroupingListAdapter final boolean isNew = c.getInt(CallLogQuery.IS_READ) == 0; // New items also use the highlighted version of the text. final boolean isHighlighted = isNew; - mCallLogViewsHelper.setPhoneCallDetails(views, details, isHighlighted); + mCallLogViewsHelper.setPhoneCallDetails(views, details, isHighlighted, + mUseCallAsPrimaryAction); setPhoto(views, photoId, lookupUri); // Listen for the first draw -- cgit v1.2.3