diff options
| author | Andrew Lee <anwlee@google.com> | 2015-05-19 12:17:26 -0700 |
|---|---|---|
| committer | Andrew Lee <anwlee@google.com> | 2015-05-19 18:14:53 -0700 |
| commit | 49efd91e50a11dc7bdef8382a0ceac01bc060f77 (patch) | |
| tree | 1968b01c927c95d5359022af481c56fea2a22f78 /src/com/android/dialer/calllog/CallLogAdapter.java | |
| parent | d9602d00913bfc8e93444ac70645bc82cff7db69 (diff) | |
| download | packages_apps_Dialer-49efd91e50a11dc7bdef8382a0ceac01bc060f77.tar.gz packages_apps_Dialer-49efd91e50a11dc7bdef8382a0ceac01bc060f77.tar.bz2 packages_apps_Dialer-49efd91e50a11dc7bdef8382a0ceac01bc060f77.zip | |
Performance improvements to call log scrolling.
- Remove call to CallUtil to check if video is enabled. It seems
like it's fine to include the content description of what the
call was, if it was a video call, even if there is not a
video-enabled call account.
- Factor out PhoneNumberDisplayHelper so it doesn't need to be
an instance. This reduces some extra calls to getDisplayNameHelper.
Probably a marginal difference, performance-wise, but it probably
helps a smidgen and also simplifies the need for creating and
passing or recalculating various instances of things.
TODO: It'd be much better if PhoneCallDetails had a builder.
It's terribly painful to fix all the tests when adding fields...
Change-Id: I6da13dc8b6b047043aba871796a8ed13b112a227
Diffstat (limited to 'src/com/android/dialer/calllog/CallLogAdapter.java')
| -rw-r--r-- | src/com/android/dialer/calllog/CallLogAdapter.java | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index b4fed867f..608475e0b 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.database.Cursor; import android.net.Uri; import android.support.v7.widget.RecyclerView; +import android.os.Trace; import android.support.v7.widget.RecyclerView.ViewHolder; import android.telecom.PhoneAccountHandle; import android.telephony.PhoneNumberUtils; @@ -98,8 +99,6 @@ public class CallLogAdapter extends GroupingListAdapter /** Instance of helper class for managing views. */ private final CallLogListItemHelper mCallLogViewsHelper; - /** Helper to parse and process phone numbers. */ - private PhoneNumberDisplayHelper mPhoneNumberHelper; /** Helper to access Telephony phone number utils class */ protected final PhoneNumberUtilsWrapper mPhoneNumberUtilsWrapper; /** Helper to group call log entries. */ @@ -210,12 +209,10 @@ public class CallLogAdapter extends GroupingListAdapter Resources resources = mContext.getResources(); CallTypeHelper callTypeHelper = new CallTypeHelper(resources); - mPhoneNumberHelper = new PhoneNumberDisplayHelper(mContext, resources); mPhoneNumberUtilsWrapper = new PhoneNumberUtilsWrapper(mContext); PhoneCallDetailsHelper phoneCallDetailsHelper = new PhoneCallDetailsHelper(mContext, resources, mPhoneNumberUtilsWrapper); - mCallLogViewsHelper = - new CallLogListItemHelper(phoneCallDetailsHelper, mPhoneNumberHelper, resources); + mCallLogViewsHelper = new CallLogListItemHelper(phoneCallDetailsHelper, resources); mCallLogGroupBuilder = new CallLogGroupBuilder(this); } @@ -312,9 +309,10 @@ public class CallLogAdapter extends GroupingListAdapter if (getItemViewType(position) == VIEW_TYPE_SHOW_CALL_HISTORY_LIST_ITEM) { return; } - + Trace.beginSection("onBindViewHolder: " + position); Cursor c = (Cursor) getItem(position); if (c == null) { + Trace.endSection(); return; } int count = getGroupSize(position); @@ -408,21 +406,21 @@ public class CallLogAdapter extends GroupingListAdapter views.showActions(mCurrentlyExpandedPosition == position, mOnReportButtonClickListener); if (TextUtils.isEmpty(name)) { - details = new PhoneCallDetails(number, numberPresentation, formattedNumber, countryIso, - geocode, callTypes, date, duration, accountHandle, features, dataUsage, - transcription); + details = new PhoneCallDetails(mContext, number, numberPresentation, formattedNumber, + countryIso, geocode, callTypes, date, duration, accountHandle, features, + dataUsage, transcription, isVoicemailNumber); } else { - details = new PhoneCallDetails(number, numberPresentation, formattedNumber, countryIso, - geocode, callTypes, date, duration, name, ntype, label, lookupUri, photoUri, - sourceType, accountHandle, features, dataUsage, transcription); + details = new PhoneCallDetails(mContext, number, numberPresentation, formattedNumber, + countryIso, geocode, callTypes, date, duration, name, ntype, label, lookupUri, + photoUri, sourceType, accountHandle, features, dataUsage, transcription, + isVoicemailNumber); } mCallLogViewsHelper.setPhoneCallDetails(mContext, views, details); String nameForDefaultImage = null; if (TextUtils.isEmpty(name)) { - nameForDefaultImage = mPhoneNumberHelper.getDisplayNumber(details.accountHandle, - details.number, details.numberPresentation, details.formattedNumber).toString(); + nameForDefaultImage = details.displayNumber; } else { nameForDefaultImage = name; } @@ -437,6 +435,7 @@ public class CallLogAdapter extends GroupingListAdapter mViewTreeObserver = views.rootView.getViewTreeObserver(); mViewTreeObserver.addOnPreDrawListener(this); } + Trace.endSection(); } @Override |
