Delete call log list item extras.

- Remove isCallLog specific code from adapter; now everything will
always be in the call log.
- Remove unneeded adapter bits from ListsFragment; there is now no
shortcut card shown in the lists fragment.
- Remove call log list item extra. We won't bind badges using this
any more. This will be superseded by the actions. Remove
badge-related code in CallLogAdapter.
+ Leaving the add-person icon, since it will be used in the future.

Bug: 19372817
Bug: 19627987
Change-Id: I4db8149761b017e02e89c081930a05f3aafe9606
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index db59b74..910e78f 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -155,9 +155,5 @@
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"/>
     </LinearLayout>
-    <!-- Displays the extra link section -->
-    <ViewStub android:id="@+id/link_stub"
-              android:layout="@layout/call_log_list_item_extra"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"/>
+
 </LinearLayout>
diff --git a/res/layout/call_log_list_item_extra.xml b/res/layout/call_log_list_item_extra.xml
deleted file mode 100644
index 87b932b..0000000
--- a/res/layout/call_log_list_item_extra.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<!-- Can't use merge here because this is referenced via a ViewStub -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/badge_container"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <View android:layout_width="match_parent"
-        android:layout_height="1px"
-        android:background="@color/favorite_contacts_separator_color" />
-
-    <LinearLayout android:id="@+id/badge_link_container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingStart="@dimen/call_log_outer_margin"
-        android:paddingEnd="@dimen/call_log_outer_margin"
-        android:paddingTop="@dimen/call_log_item_extra_padding_vertical"
-        android:paddingBottom="@dimen/call_log_item_extra_padding_vertical"
-        android:background="?android:attr/selectableItemBackground"
-        android:clickable="true">
-
-        <ImageView android:id="@+id/badge_image"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:tint="@color/call_log_extras_text_color"
-            android:padding="@dimen/call_log_outer_margin" />
-
-        <TextView android:id="@+id/badge_text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingStart="@dimen/call_log_start_margin"
-            android:textColor="@color/call_log_extras_text_color"
-            android:layout_gravity="center_vertical"
-            android:layout_weight="1" />
-
-        <ImageView android:id="@+id/dismiss_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:padding="@dimen/icon_padding"
-            android:layout_gravity="center_vertical"
-            android:layout_marginEnd="@dimen/call_log_icon_margin"
-            android:src="@drawable/ic_close_dk"
-            android:tint="@color/recent_call_log_item_phone_icon_tint"
-            android:alpha="0.3"
-            android:background="?android:attr/selectableItemBackground"
-            android:visibility="gone"
-            android:contentDescription="@string/description_dismiss" />
-
-    </LinearLayout>
-
-</FrameLayout>
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index cd3a804..f697cc8 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -38,7 +38,6 @@
 
     <!-- Tint of the recent card phone icon -->
     <color name="recent_call_log_item_phone_icon_tint">#000000</color>
-    <color name="call_log_extras_text_color">#0277bd</color>
 
     <!--
          Colour of voicemail progress bar to the right of position indicator.
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index e4097e3..9de20f3 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -64,9 +64,6 @@
     <dimen name="favorites_row_end_padding">0dp</dimen>
     <dimen name="favorites_row_undo_text_side_padding">32dp</dimen>
 
-    <dimen name="call_log_item_extra_padding_vertical">4dp</dimen>
-
-
     <!-- Size of the star icon on the favorites tile. -->
     <dimen name="favorites_star_icon_size">12dp</dimen>
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 78b74e6..13bf845 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -526,9 +526,6 @@
     -->
     <string name="contact_tooltip">Touch image to see all numbers or touch &amp; hold to reorder</string>
 
-    <!-- Content description for dismiss button on badge. [CHAR LIMIT=NONE] -->
-    <string name="description_dismiss">Dismiss</string>
-
     <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
     <string name="remove_contact">Remove</string>
 
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 914520e..c4f6e89 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -266,12 +266,6 @@
     /** Can be set to true by tests to disable processing of requests. */
     private volatile boolean mRequestProcessingDisabled = false;
 
-    private boolean mIsCallLog = true;
-
-    private View mBadgeContainer;
-    private ImageView mBadgeImageView;
-    private TextView mBadgeText;
-
     private int mCallLogBackgroundColor;
     private int mExpandedBackgroundColor;
     private float mExpandedTranslationZ;
@@ -353,13 +347,12 @@
 
     public CallLogAdapter(Context context, CallFetcher callFetcher,
             ContactInfoHelper contactInfoHelper, CallItemExpandedListener callItemExpandedListener,
-            OnReportButtonClickListener onReportButtonClickListener, boolean isCallLog) {
+            OnReportButtonClickListener onReportButtonClickListener) {
         super(context);
 
         mContext = context;
         mCallFetcher = callFetcher;
         mContactInfoHelper = contactInfoHelper;
-        mIsCallLog = isCallLog;
         mCallItemExpandedListener = callItemExpandedListener;
 
         mOnReportButtonClickListener = onReportButtonClickListener;
@@ -659,17 +652,12 @@
         final long rowId = c.getLong(CallLogQuery.ID);
         views.rowId = rowId;
 
-        // For entries in the call log, check if the day group has changed and display a header
-        // if necessary.
-        if (mIsCallLog) {
-            int currentGroup = getDayGroupForCall(rowId);
-            int previousGroup = getPreviousDayGroup(c);
-            if (currentGroup != previousGroup) {
-                views.dayGroupHeader.setVisibility(View.VISIBLE);
-                views.dayGroupHeader.setText(getGroupDescription(currentGroup));
-            } else {
-                views.dayGroupHeader.setVisibility(View.GONE);
-            }
+        // Check if the day group has changed and display a header if necessary.
+        int currentGroup = getDayGroupForCall(rowId);
+        int previousGroup = getPreviousDayGroup(c);
+        if (currentGroup != previousGroup) {
+            views.dayGroupHeader.setVisibility(View.VISIBLE);
+            views.dayGroupHeader.setText(getGroupDescription(currentGroup));
         } else {
             views.dayGroupHeader.setVisibility(View.GONE);
         }
@@ -689,33 +677,11 @@
         final boolean isVoicemailNumber =
                 mPhoneNumberUtilsWrapper.isVoicemailNumber(accountHandle, number);
 
-        // Where binding and not in the call log, use default behaviour of invoking a call when
-        // tapping the primary view.
-        if (!mIsCallLog) {
-            views.primaryActionView.setOnClickListener(this.mActionListener);
+        // Expand/collapse an actions section for the call log entry when the primary view is tapped.
+        views.primaryActionView.setOnClickListener(this.mExpandCollapseListener);
 
-            // Set return call intent, otherwise null.
-            if (PhoneNumberUtilsWrapper.canPlaceCallsTo(number, numberPresentation)) {
-                // Sets the primary action to call the number.
-                if (isVoicemailNumber) {
-                    views.primaryActionView.setTag(
-                            IntentProvider.getReturnVoicemailCallIntentProvider());
-                } else {
-                    views.primaryActionView.setTag(
-                            IntentProvider.getReturnCallIntentProvider(number));
-                }
-            } else {
-                // Number is not callable, so hide button.
-                views.primaryActionView.setTag(null);
-            }
-        } else {
-            // In the call log, expand/collapse an actions section for the call log entry when
-            // the primary view is tapped.
-            views.primaryActionView.setOnClickListener(this.mExpandCollapseListener);
-
-            // Note: Binding of the action buttons is done as required in configureActionViews
-            // when the user expands the actions ViewStub.
-        }
+        // Note: Binding of the action buttons is done as required in configureActionViews when the
+        // user expands the actions ViewStub.
 
         // Lookup contacts with this number
         NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso);
@@ -828,8 +794,6 @@
             mViewTreeObserver = callLogItemView.getViewTreeObserver();
             mViewTreeObserver.addOnPreDrawListener(this);
         }
-
-        bindBadge(callLogItemView, info, details, callType);
     }
 
     /**
@@ -1073,54 +1037,6 @@
         mCallLogViewsHelper.setActionContentDescriptions(views);
     }
 
-    protected void bindBadge(
-            View view, final ContactInfo info, final PhoneCallDetails details, int callType) {
-        // Do not show badge in call log.
-        if (!mIsCallLog) {
-            final ViewStub stub = (ViewStub) view.findViewById(R.id.link_stub);
-            if (UriUtils.isEncodedContactUri(info.lookupUri)) {
-                if (stub != null) {
-                    mBadgeContainer = stub.inflate();
-                } else {
-                    mBadgeContainer = view.findViewById(R.id.badge_container);
-                }
-
-                mBadgeContainer.setVisibility(View.VISIBLE);
-                mBadgeImageView = (ImageView) mBadgeContainer.findViewById(R.id.badge_image);
-                mBadgeText = (TextView) mBadgeContainer.findViewById(R.id.badge_text);
-
-                final View clickableArea = mBadgeContainer.findViewById(R.id.badge_link_container);
-                if (clickableArea != null) {
-                    clickableArea.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View v) {
-                            // If no lookup uri is provided, we need to rely on what information
-                            // we have available; namely the phone number and name.
-                            if (info.lookupUri == null) {
-                                final Intent intent =
-                                        DialtactsActivity.getAddToContactIntent(details.name,
-                                                details.number,
-                                                details.numberType);
-                                DialerUtils.startActivityWithErrorToast(mContext, intent,
-                                        R.string.add_contact_not_available);
-                            } else {
-                                addContactFromLookupUri(info.lookupUri);
-                            }
-                        }
-                    });
-                }
-                mBadgeImageView.setImageResource(R.drawable.ic_person_add_24dp);
-                mBadgeText.setText(R.string.recentCalls_addToContact);
-            } else {
-                // Hide badge if it was previously shown.
-                mBadgeContainer = view.findViewById(R.id.badge_container);
-                if (mBadgeContainer != null) {
-                    mBadgeContainer.setVisibility(View.GONE);
-                }
-            }
-        }
-    }
-
     /** Checks whether the contact info from the call log matches the one from the contacts db. */
     private boolean callLogInfoMatches(ContactInfo callLogInfo, ContactInfo info) {
         // The call log only contains a subset of the fields in the contacts db.
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index 9c95d3e..34dd137 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -192,7 +192,7 @@
 
         String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
         mAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this,
-                new ContactInfoHelper(getActivity(), currentCountryIso), this, this, true);
+                new ContactInfoHelper(getActivity(), currentCountryIso), this, this);
         setListAdapter(mAdapter);
         mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(),
                 this, mLogLimit);
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 0410814..0e558bf 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -24,9 +24,7 @@
 import com.android.contacts.commonbind.analytics.AnalyticsUtil;
 import com.android.dialer.DialtactsActivity;
 import com.android.dialer.R;
-import com.android.dialer.calllog.CallLogAdapter;
 import com.android.dialer.calllog.CallLogFragment;
-import com.android.dialer.calllog.CallLogQuery;
 import com.android.dialer.calllog.CallLogQueryHandler;
 import com.android.dialer.calllog.ContactInfoHelper;
 import com.android.dialer.util.DialerUtils;
@@ -43,8 +41,7 @@
  * ViewPager containing the lists up above the search bar and pin it against the top of the
  * screen.
  */
-public class ListsFragment extends Fragment implements CallLogQueryHandler.Listener,
-        CallLogAdapter.CallFetcher, ViewPager.OnPageChangeListener {
+public class ListsFragment extends Fragment implements ViewPager.OnPageChangeListener {
 
     private static final boolean DEBUG = DialtactsActivity.DEBUG;
     private static final String TAG = "ListsFragment";
@@ -82,9 +79,6 @@
     private String[] mTabTitles;
     private int[] mTabIcons;
 
-    private CallLogAdapter mCallLogAdapter;
-    private CallLogQueryHandler mCallLogQueryHandler;
-
     /**
      * Call shortcuts older than this date (persisted in shared preferences) will not show up in
      * at the top of the screen
@@ -157,17 +151,10 @@
         Trace.beginSection(TAG + " onCreate");
         super.onCreate(savedInstanceState);
 
-        mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(),
-                this, 1);
         Trace.beginSection(TAG + " getCurrentCountryIso");
         final String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
         Trace.endSection();
 
-        Trace.beginSection(TAG + " create adapters");
-        mCallLogAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this,
-                new ContactInfoHelper(getActivity(), currentCountryIso), null, null, false);
-
-        Trace.endSection();
         Trace.endSection();
     }
 
@@ -179,8 +166,6 @@
                 DialtactsActivity.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
         mLastCallShortcutDate = prefs.getLong(KEY_LAST_DISMISSED_CALL_SHORTCUT_DATE, 0);
         mActionBar = getActivity().getActionBar();
-        fetchCalls();
-        mCallLogAdapter.setLoading(true);
         if (getUserVisibleHint()) {
             sendScreenViewForPosition(mViewPager.getCurrentItem());
         }
@@ -188,20 +173,6 @@
     }
 
     @Override
-    public void onPause() {
-        // Wipe the cache to refresh the call shortcut item. This is not that expensive because
-        // it only contains one item.
-        mCallLogAdapter.invalidateCache();
-        super.onPause();
-    }
-
-    @Override
-    public void onDestroy() {
-        mCallLogAdapter.stopRequestProcessing();
-        super.onDestroy();
-    }
-
-    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         Trace.beginSection(TAG + " onCreateView");
@@ -239,31 +210,6 @@
         return parentView;
     }
 
-    @Override
-    public void onVoicemailStatusFetched(Cursor statusCursor) {
-        // no-op
-    }
-
-    @Override
-    public boolean onCallsFetched(Cursor cursor) {
-        mCallLogAdapter.setLoading(false);
-
-        // Save the date of the most recent call log item
-        if (cursor != null && cursor.moveToFirst()) {
-            mCurrentCallShortcutDate = cursor.getLong(CallLogQuery.DATE);
-        }
-
-        mCallLogAdapter.changeCursor(cursor);
-
-        // Return true; took ownership of cursor
-        return true;
-    }
-
-    @Override
-    public void fetchCalls() {
-        mCallLogQueryHandler.fetchCalls(CallLogQueryHandler.CALL_TYPE_ALL, mLastCallShortcutDate);
-    }
-
     public void addOnPageChangeListener(OnPageChangeListener onPageChangeListener) {
         if (!mOnPageChangeListeners.contains(onPageChangeListener)) {
             mOnPageChangeListeners.add(onPageChangeListener);
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index 54a5821..e5c39d07 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -48,9 +48,9 @@
     public static CallLogAdapter newCallLogAdapter(Context context,
             CallFetcher callFetcher, ContactInfoHelper contactInfoHelper,
             CallItemExpandedListener callItemExpandedListener,
-            OnReportButtonClickListener onReportButtonClickListener, boolean isCallLog) {
+            OnReportButtonClickListener onReportButtonClickListener) {
         return new CallLogAdapter(context, callFetcher, contactInfoHelper,
-                callItemExpandedListener, onReportButtonClickListener, isCallLog);
+                callItemExpandedListener, onReportButtonClickListener);
     }
 
     public static DialogFragment getReportDialogFragment(String number) {
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index 9b3e6bc..0f17511 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -213,7 +213,7 @@
 
         public TestCallLogAdapter(Context context, CallFetcher callFetcher,
                 ContactInfoHelper contactInfoHelper) {
-            super(context, callFetcher, contactInfoHelper, null, null, false);
+            super(context, callFetcher, contactInfoHelper, null, null);
         }
 
         @Override