From d0715acdfc1aee0c20950741dc15d30abd18d2f2 Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Mon, 12 May 2014 10:52:32 -0700 Subject: Removing highlighting of missed calls and voicemails in the call log. Also fixing some broken unit tests. Bug: 13962594 Change-Id: I3ca2d72b3013b6324da19717dbc984f3e7e576e2 --- src/com/android/dialer/PhoneCallDetailsHelper.java | 29 +++------------------- src/com/android/dialer/calllog/CallLogAdapter.java | 21 ++++++++++------ .../dialer/calllog/CallLogListItemHelper.java | 10 ++------ .../dialer/calllog/CallLogListItemViews.java | 7 +++++- .../android/dialer/PhoneCallDetailsHelperTest.java | 17 ++++++------- .../dialer/calllog/CallLogFragmentTest.java | 26 +++++++++---------- .../dialer/calllog/CallLogListItemHelperTest.java | 12 ++++----- 7 files changed, 53 insertions(+), 69 deletions(-) diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java index edd083117..ab599725e 100644 --- a/src/com/android/dialer/PhoneCallDetailsHelper.java +++ b/src/com/android/dialer/PhoneCallDetailsHelper.java @@ -75,8 +75,7 @@ public class PhoneCallDetailsHelper { } /** Fills the call details views with content. */ - public void setPhoneCallDetails(PhoneCallDetailsViews views, PhoneCallDetails details, - boolean isHighlighted) { + public void setPhoneCallDetails(PhoneCallDetailsViews views, PhoneCallDetails details) { // Display up to a given number of icons. views.callTypeIcons.clear(); int count = details.callTypes.length; @@ -93,14 +92,11 @@ public class PhoneCallDetailsHelper { } else { callCount = null; } - // The color to highlight the count and date in, if any. This is based on the first call. - Integer highlightColor = - isHighlighted ? mCallTypeHelper.getHighlightedColor(details.callTypes[0]) : null; CharSequence callLocationAndDate = getCallLocationAndDate(details); // Set the call count, location and date. - setCallCountAndDate(views, callCount, callLocationAndDate, highlightColor); + setCallCountAndDate(views, callCount, callLocationAndDate); final CharSequence nameText; final CharSequence displayNumber = @@ -224,7 +220,7 @@ public class PhoneCallDetailsHelper { /** Sets the call count and date. */ private void setCallCountAndDate(PhoneCallDetailsViews views, Integer callCount, - CharSequence dateText, Integer highlightColor) { + CharSequence dateText) { // Combine the count (if present) and the date. final CharSequence text; if (callCount != null) { @@ -234,23 +230,6 @@ public class PhoneCallDetailsHelper { text = dateText; } - // Apply the highlight color if present. - final CharSequence formattedText; - if (highlightColor != null) { - formattedText = addBoldAndColor(text, highlightColor); - } else { - formattedText = text; - } - - views.callLocationAndDate.setText(formattedText); - } - - /** Creates a SpannableString for the given text which is bold and in the given color. */ - private CharSequence addBoldAndColor(CharSequence text, int color) { - int flags = Spanned.SPAN_INCLUSIVE_INCLUSIVE; - SpannableString result = new SpannableString(text); - result.setSpan(new StyleSpan(Typeface.BOLD), 0, text.length(), flags); - result.setSpan(new ForegroundColorSpan(color), 0, text.length(), flags); - return result; + views.callLocationAndDate.setText(text); } } diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index a8cd72a39..44fad2225 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -28,7 +28,6 @@ import android.os.Message; import android.provider.CallLog.Calls; import android.provider.ContactsContract.PhoneLookup; import android.text.TextUtils; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -42,7 +41,6 @@ import com.android.common.widget.GroupingListAdapter; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; import com.android.contacts.common.util.UriUtils; -import com.android.dialer.CallDetailActivity; import com.android.dialer.PhoneCallDetails; import com.android.dialer.PhoneCallDetailsHelper; import com.android.dialer.R; @@ -55,7 +53,6 @@ import com.google.common.base.Objects; import java.util.HashMap; import java.util.LinkedList; -import java.util.Map; /** * Adapter class to fill in data for the Call Log. @@ -686,10 +683,7 @@ public class CallLogAdapter extends GroupingListAdapter duration, name, ntype, label, lookupUri, photoUri, sourceType); } - 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); int contactType = ContactPhotoManager.TYPE_DEFAULT; @@ -1080,6 +1074,19 @@ public class CallLogAdapter extends GroupingListAdapter false /* darkTheme */, true /* isCircular */, request); } + /** + * Bind a call log entry view for testing purposes. Also inflates the action view stub so + * unit tests can access the buttons contained within. + * + * @param view The current call log row. + * @param context The current context. + * @param cursor The cursor to bind from. + */ + @VisibleForTesting + void bindViewForTest(View view, Context context, Cursor cursor) { + bindStandAloneView(view, context, cursor); + inflateActionViewStub(view); + } /** * Sets whether processing of requests for contact details should be enabled. diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java index 81d1a2711..976726d28 100644 --- a/src/com/android/dialer/calllog/CallLogListItemHelper.java +++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java @@ -17,15 +17,12 @@ package com.android.dialer.calllog; import android.content.res.Resources; -import android.provider.CallLog; import android.provider.CallLog.Calls; import android.text.TextUtils; -import android.view.View; import com.android.dialer.PhoneCallDetails; import com.android.dialer.PhoneCallDetailsHelper; import com.android.dialer.R; -import com.android.internal.util.CharSequences; /** * Helper class to fill in the views of a call log entry. @@ -56,12 +53,9 @@ import com.android.internal.util.CharSequences; * * @param views the views to populate * @param details the details of a phone call needed to fill in the data - * @param isHighlighted whether to use the highlight text for the call */ - public void setPhoneCallDetails(CallLogListItemViews views, PhoneCallDetails details, - boolean isHighlighted) { - mPhoneCallDetailsHelper.setPhoneCallDetails(views.phoneCallDetailsViews, details, - isHighlighted); + public void setPhoneCallDetails(CallLogListItemViews views, PhoneCallDetails details) { + mPhoneCallDetailsHelper.setPhoneCallDetails(views.phoneCallDetailsViews, details); // Set the accessibility text for the contact badge views.quickContactView.setContentDescription(getContactBadgeDescription(details)); diff --git a/src/com/android/dialer/calllog/CallLogListItemViews.java b/src/com/android/dialer/calllog/CallLogListItemViews.java index 879647f15..333769d7e 100644 --- a/src/com/android/dialer/calllog/CallLogListItemViews.java +++ b/src/com/android/dialer/calllog/CallLogListItemViews.java @@ -109,10 +109,15 @@ public final class CallLogListItemViews { @NeededForTesting public static CallLogListItemViews createForTest(Context context) { - return new CallLogListItemViews( + CallLogListItemViews views = new CallLogListItemViews( new QuickContactBadge(context), new View(context), PhoneCallDetailsViews.createForTest(context), new TextView(context)); + views.callBackButtonView = new TextView(context); + views.deleteButtonView = new TextView(context); + views.voicemailButtonView = new TextView(context); + views.actionsView = new View(context); + return views; } } diff --git a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java index 626ff1686..30fd0e2a7 100644 --- a/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java +++ b/tests/src/com/android/dialer/PhoneCallDetailsHelperTest.java @@ -22,7 +22,6 @@ import android.provider.CallLog.Calls; import android.test.AndroidTestCase; import android.text.Html; import android.text.Spanned; -import android.util.Log; import android.view.View; import android.widget.TextView; @@ -293,8 +292,8 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase { mHelper.setPhoneCallDetails(mViews, new PhoneCallDetails(number, presentation, formattedNumber, TEST_COUNTRY_ISO, TEST_GEOCODE, - new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION), - true); + new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION) + ); } /** Sets the phone call details with default values and the given number. */ @@ -303,8 +302,8 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase { mHelper.setPhoneCallDetails(mViews, new PhoneCallDetails(number, Calls.PRESENTATION_ALLOWED, formattedNumber, TEST_COUNTRY_ISO, geocodedLocation, - new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION), - true); + new int[]{ Calls.VOICEMAIL_TYPE }, TEST_DATE, TEST_DURATION) + ); } /** Sets the phone call details with default values and the given date. */ @@ -312,8 +311,8 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase { mHelper.setPhoneCallDetails(mViews, new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE, - new int[]{ Calls.INCOMING_TYPE }, date, TEST_DURATION), - false); + new int[]{ Calls.INCOMING_TYPE }, date, TEST_DURATION) + ); } /** Sets the phone call details with default values and the given call types using icons. */ @@ -321,8 +320,8 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase { mHelper.setPhoneCallDetails(mViews, new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE, - callTypes, TEST_DATE, TEST_DURATION), - false); + callTypes, TEST_DATE, TEST_DURATION) + ); } private void setCallDetailsHeaderWithNumber(String number, int presentation) { diff --git a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java index a423cde21..2c0fe0e23 100644 --- a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java +++ b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java @@ -182,7 +182,7 @@ public class CallLogFragmentTest extends ActivityInstrumentationTestCase2