Merge "Making talkback announce title for account view" into ub-contactsdialer-f-dev
diff --git a/res/drawable-hdpi/ic_google_plus_24dp.png b/res/drawable-hdpi/ic_google_plus_24dp.png
deleted file mode 100644
index af17f2b..0000000
--- a/res/drawable-hdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_google_plus_24dp.png b/res/drawable-mdpi/ic_google_plus_24dp.png
deleted file mode 100644
index d8eacf0..0000000
--- a/res/drawable-mdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_google_plus_24dp.png b/res/drawable-xhdpi/ic_google_plus_24dp.png
deleted file mode 100644
index ea352d3..0000000
--- a/res/drawable-xhdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_google_plus_24dp.png b/res/drawable-xxhdpi/ic_google_plus_24dp.png
deleted file mode 100644
index 933cd62..0000000
--- a/res/drawable-xxhdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_google_plus_24dp.png b/res/drawable-xxxhdpi/ic_google_plus_24dp.png
deleted file mode 100644
index dcd6c97..0000000
--- a/res/drawable-xxxhdpi/ic_google_plus_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_google_plus_black_24dp.xml b/res/drawable/ic_google_plus_black_24dp.xml
new file mode 100644
index 0000000..398b0ad
--- /dev/null
+++ b/res/drawable/ic_google_plus_black_24dp.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+
+<!-- G+ icon -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportHeight="24.0"
+        android:viewportWidth="24.0">
+    <path
+            android:fillColor="#000000"
+            android:pathData="M23 11h-2V9h-2v2h-2v2h2v2h2v-2h2zM8 11v2.4h3.97c-.16 1.03-1.2 3.02-3.97 3.02-2.39 0-4.34-1.98-4.34-4.42S5.61 7.58 8 7.58c1.36 0 2.27.58 2.79 1.08l1.9-1.83C11.47 5.69 9.89 5 8 5c-3.87 0-7 3.13-7 7s3.13 7 7 7c4.04 0 6.72-2.84 6.72-6.84 0-.46-.05-.81-.11-1.16H8z" />
+</vector>
\ No newline at end of file
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index dae57fc..d1f05f6 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -41,6 +41,7 @@
 import com.android.contacts.common.list.DirectoryListLoader;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.common.list.PhoneNumberPickerFragment;
+import com.android.contacts.common.logging.ListEvent;
 import com.android.contacts.common.util.ViewUtil;
 import com.android.contacts.editor.EditorIntents;
 import com.android.contacts.list.ContactPickerFragment;
@@ -261,6 +262,7 @@
                 fragment.setEditMode(true);
                 fragment.setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
                 fragment.setCreateContactEnabled(!mRequest.isSearchMode());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
                 mListFragment = fragment;
                 break;
             }
@@ -269,6 +271,7 @@
             case ContactsRequest.ACTION_PICK_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
                 fragment.setIncludeFavorites(mRequest.shouldIncludeFavorites());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
                 mListFragment = fragment;
                 break;
             }
@@ -276,6 +279,7 @@
             case ContactsRequest.ACTION_PICK_OR_CREATE_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
                 fragment.setCreateContactEnabled(!mRequest.isSearchMode());
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT);
                 mListFragment = fragment;
                 break;
             }
@@ -283,25 +287,28 @@
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CONTACT: {
                 ContactPickerFragment fragment = new ContactPickerFragment();
                 fragment.setShortcutRequested(true);
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
                 mListFragment = fragment;
                 break;
             }
 
             case ContactsRequest.ACTION_PICK_PHONE: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
+                fragment.setListType(ListEvent.ListType.PICK_PHONE);
                 mListFragment = fragment;
                 break;
             }
 
             case ContactsRequest.ACTION_PICK_EMAIL: {
                 mListFragment = new EmailAddressPickerFragment();
+                mListFragment.setListType(ListEvent.ListType.PICK_EMAIL);
                 break;
             }
 
             case ContactsRequest.ACTION_CREATE_SHORTCUT_CALL: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
                 fragment.setShortcutAction(Intent.ACTION_CALL);
-
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
                 mListFragment = fragment;
                 break;
             }
@@ -309,14 +316,14 @@
             case ContactsRequest.ACTION_CREATE_SHORTCUT_SMS: {
                 PhoneNumberPickerFragment fragment = getPhoneNumberPickerFragment(mRequest);
                 fragment.setShortcutAction(Intent.ACTION_SENDTO);
-
+                fragment.setListType(ListEvent.ListType.PICK_CONTACT_FOR_SHORTCUT);
                 mListFragment = fragment;
                 break;
             }
 
             case ContactsRequest.ACTION_PICK_POSTAL: {
                 PostalAddressPickerFragment fragment = new PostalAddressPickerFragment();
-
+                fragment.setListType(ListEvent.ListType.PICK_POSTAL);
                 mListFragment = fragment;
                 break;
             }
@@ -324,6 +331,7 @@
             case ContactsRequest.ACTION_PICK_JOIN: {
                 JoinContactListFragment joinFragment = new JoinContactListFragment();
                 joinFragment.setTargetContactId(getTargetContactId());
+                joinFragment.setListType(ListEvent.ListType.PICK_JOIN);
                 mListFragment = joinFragment;
                 break;
             }
@@ -339,6 +347,7 @@
                         UiIntentActions.GROUP_CONTACT_IDS);
                 mListFragment = GroupMemberPickerFragment.newInstance(
                         accountName, accountType, accountDataSet, contactIds);
+                mListFragment.setListType(ListEvent.ListType.PICK_GROUP_MEMBERS);
                 break;
             }
 
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index ba1fa51..8429d2a 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -337,7 +337,7 @@
 
         mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
         mAllFragment.setCheckBoxListListener(new CheckBoxListListener());
-        mAllFragment.setListType(ListEvent.ListType.ALL_CONTACTS);
+        mAllFragment.setListType(mContactListFilterController.getFilterListType());
 
         // Hide all fragments for now.  We adjust visibility when we get onSelectedTabChanged()
         // from ActionBarAdapter.
@@ -1393,9 +1393,8 @@
 
     private void setFilterAndUpdateTitle(ContactListFilter filter, boolean restoreSelectedUri) {
         mAllFragment.setFilter(filter, restoreSelectedUri);
-        final int listType = isAllContactsFilter(filter)
-                ? ListEvent.ListType.ALL_CONTACTS : ListEvent.ListType.ACCOUNT;
-        mAllFragment.setListType(listType);
+
+        mAllFragment.setListType(mContactListFilterController.getFilterListType());
 
         updateFilterMenu(filter);
 
diff --git a/src/com/android/contacts/list/JoinContactListFragment.java b/src/com/android/contacts/list/JoinContactListFragment.java
index 89b02da..d961f34 100644
--- a/src/com/android/contacts/list/JoinContactListFragment.java
+++ b/src/com/android/contacts/list/JoinContactListFragment.java
@@ -34,6 +34,7 @@
 import com.android.contacts.R;
 import com.android.contacts.common.list.ContactEntryListFragment;
 import com.android.contacts.common.list.ContactListItemView;
+import com.android.contacts.common.logging.ListEvent;
 import com.android.contacts.list.JoinContactLoader.JoinContactLoaderResult;
 
 /**
@@ -85,6 +86,7 @@
                         final Cursor suggestionsCursor =
                                 ((JoinContactLoaderResult) data).suggestionCursor;
                         onContactListLoaded(suggestionsCursor, data);
+                        maybeLogListEvent();
                     }
                     break;
                 }
@@ -101,6 +103,8 @@
         setSectionHeaderDisplayEnabled(true);
         setVisibleScrollbarEnabled(false);
         setQuickContactEnabled(false);
+        setListType(ListEvent.ListType.PICK_JOIN);
+        setLogListEvents(true);
     }
 
     public void setOnContactPickerActionListener(OnContactPickerActionListener listener) {
diff --git a/src/com/android/contacts/list/MultiSelectContactsListFragment.java b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
index 6fd15e9..2612cf2 100644
--- a/src/com/android/contacts/list/MultiSelectContactsListFragment.java
+++ b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
@@ -309,7 +309,7 @@
 
         final ImageView accountFilterHeaderIcon = (ImageView) accountFilterContainer
                 .findViewById(R.id.account_filter_icon);
-        accountFilterHeaderIcon.setVisibility(View.INVISIBLE);
+        accountFilterHeaderIcon.setVisibility(View.GONE);
     }
 
     /**
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 07720f2..7a01ede 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -2106,7 +2106,7 @@
                         // If a secondDataItem is available, use it to build an entry with
                         // alternate actions
                         if (secondDataItem != null) {
-                            icon = res.getDrawable(R.drawable.ic_google_plus_24dp);
+                            icon = res.getDrawable(R.drawable.ic_google_plus_black_24dp);
                             alternateIcon = res.getDrawable(R.drawable.ic_add_to_circles_black_24);
                             final GPlusOrHangoutsDataItemModel itemModel =
                                     new GPlusOrHangoutsDataItemModel(intent, alternateIntent,
@@ -2124,7 +2124,7 @@
                                     intent.getDataString())) {
                                 icon = res.getDrawable(R.drawable.ic_add_to_circles_black_24);
                             } else {
-                                icon = res.getDrawable(R.drawable.ic_google_plus_24dp);
+                                icon = res.getDrawable(R.drawable.ic_google_plus_black_24dp);
                             }
                         }
                         break;