summaryrefslogtreecommitdiffstats
path: root/src/com/android/dialer/calllog/CallLogAdapter.java
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-05-19 12:17:26 -0700
committerAndrew Lee <anwlee@google.com>2015-05-19 18:14:53 -0700
commit49efd91e50a11dc7bdef8382a0ceac01bc060f77 (patch)
tree1968b01c927c95d5359022af481c56fea2a22f78 /src/com/android/dialer/calllog/CallLogAdapter.java
parentd9602d00913bfc8e93444ac70645bc82cff7db69 (diff)
downloadpackages_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.java27
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