Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 317e8d35 authored by Wenyi Wang's avatar Wenyi Wang Committed by Android (Google) Code Review
Browse files

Merge "Add list event clearcut logging (1/3)"

parents dbb45858 2b943999
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ import com.android.contacts.GroupMemberLoader;
import com.android.contacts.GroupMemberLoader.GroupEditorQuery;
import com.android.contacts.R;
import com.android.contacts.common.editor.SelectAccountDialogFragment;
import com.android.contacts.common.logging.Logger;
import com.android.contacts.common.logging.ListEvent;
import com.android.contacts.common.logging.ScreenEvent.ScreenType;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
@@ -347,6 +350,15 @@ public class GroupMembersActivity extends AppCompatContactsActivity implements
                return true;
            }
            case R.id.menu_remove_from_group: {
                if (mMembersListFragment == null) {
                    return false;
                }
                final int count = mMembersListFragment.getAdapter().getCount();
                final int numSelected =
                        mMembersListFragment.getAdapter().getSelectedContactIdsArray().length;
                Logger.logListEvent(ListEvent.ActionType.REMOVE_LABEL,
                        mMembersListFragment.getListType(), count, /* clickedIndex */ -1,
                        numSelected);
                removeSelectedContacts();
                return true;
            }
@@ -570,8 +582,13 @@ public class GroupMembersActivity extends AppCompatContactsActivity implements
    }

    @Override
    public void onGroupMemberListItemClicked(Uri contactLookupUri) {
        startActivity(ImplicitIntentsUtil.composeQuickContactIntent(
                contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED));
    public void onGroupMemberListItemClicked(int position, Uri contactLookupUri) {
        final int count = mMembersListFragment.getAdapter().getCount();
        Logger.logListEvent(ListEvent.ActionType.CLICK, ListEvent.ListType.GROUP, count,
                /* clickedIndex */ position, /* numSelected */ 0);
        final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
                contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED);
        intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.LIST_GROUP);
        startActivity(intent);
    }
}
+58 −4
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.ContactListFilterController;
import com.android.contacts.common.list.DirectoryListLoader;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.contacts.common.logging.ListEvent;
import com.android.contacts.common.logging.Logger;
import com.android.contacts.common.logging.ScreenEvent.ScreenType;
import com.android.contacts.common.preference.ContactsPreferenceActivity;
@@ -129,6 +130,8 @@ public class PeopleActivity extends AppCompatContactsActivity implements

    private static final String ENABLE_DEBUG_OPTIONS_HIDDEN_CODE = "debug debug!";

    private static final int ACTIVITY_REQUEST_CODE_SHARE = 0;

    private final DialogManager mDialogManager = new DialogManager(this);

    private ContactsIntentResolver mIntentResolver;
@@ -398,6 +401,10 @@ public class PeopleActivity extends AppCompatContactsActivity implements

        mAllFragment.setOnContactListActionListener(new ContactBrowserActionListener());
        mAllFragment.setCheckBoxListListener(new CheckBoxListListener());
        final int listType =  mContactListFilterController.getFilter().filterType ==
                ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
                ? ListEvent.ListType.ALL_CONTACTS : ListEvent.ListType.ACCOUNT;
        mAllFragment.setListType(listType);

        if (areGroupWritableAccountsAvailable() && mGroupsFragment != null) {
            mGroupsFragment.setListener(this);
@@ -1028,7 +1035,8 @@ public class PeopleActivity extends AppCompatContactsActivity implements
        }

        @Override
        public void onViewContactAction(Uri contactLookupUri, boolean isEnterpriseContact) {
        public void onViewContactAction(int position, Uri contactLookupUri,
                boolean isEnterpriseContact) {
            if (isEnterpriseContact) {
                // No implicit intent as user may have a different contacts app in work profile.
                QuickContact.showQuickContact(PeopleActivity.this, new Rect(), contactLookupUri,
@@ -1036,8 +1044,26 @@ public class PeopleActivity extends AppCompatContactsActivity implements
            } else {
                final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
                        contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED);
                intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
                        mAllFragment.isSearchMode() ? ScreenType.SEARCH : ScreenType.ALL_CONTACTS);
                final int previousScreen;
                if (mAllFragment.isSearchMode()) {
                    previousScreen = ScreenType.SEARCH;
                } else {
                    if (mAllFragment.getFilter().filterType ==
                            ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
                        if (position < mAllFragment.getAdapter().getNumberOfFavorites()) {
                            previousScreen = ScreenType.FAVORITES;
                        } else {
                            previousScreen = ScreenType.ALL_CONTACTS;
                        }
                    } else {
                        previousScreen = ScreenType.LIST_ACCOUNT;
                    }
                }
                Logger.logListEvent(ListEvent.ActionType.CLICK,
                        /* listType */ getListTypeIncludingSearch(),
                        /* count */ mAllFragment.getAdapter().getCount(),
                        /* clickedIndex */ position, /* numSelected */ 0);
                intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, previousScreen);
                ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
            }
        }
@@ -1208,6 +1234,10 @@ public class PeopleActivity extends AppCompatContactsActivity implements
                return true;
            }
            case R.id.menu_join: {
                Logger.logListEvent(ListEvent.ActionType.LINK,
                        /* listType */ getListTypeIncludingSearch(),
                        /* count */ mAllFragment.getAdapter().getCount(), /* clickedIndex */ -1,
                        /* numSelected */ mAllFragment.getAdapter().getSelectedContactIds().size());
                joinSelectedContacts();
                return true;
            }
@@ -1236,6 +1266,8 @@ public class PeopleActivity extends AppCompatContactsActivity implements
                    ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
            intent.putExtra(ContactsPreferenceActivity.EXTRA_MODE_FULLY_EXPANDED,
                    QuickContactActivity.MODE_FULLY_EXPANDED);
            intent.putExtra(ContactsPreferenceActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
                    QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE);
            startActivity(intent);
        } else if (id == R.id.nav_help) {
            HelpUtils.launchHelpAndFeedbackForMainScreen(this);
@@ -1312,7 +1344,13 @@ public class PeopleActivity extends AppCompatContactsActivity implements
        final Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType(Contacts.CONTENT_VCARD_TYPE);
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        ImplicitIntentsUtil.startActivityOutsideApp(this, intent);
        try {
            // TODO(wenyiw): show different strings based on number of contacts.
            startActivityForResult(Intent.createChooser(intent, getText(R.string.share_via)),
                    ACTIVITY_REQUEST_CODE_SHARE);
        } catch (final ActivityNotFoundException ex) {
            Toast.makeText(this, R.string.share_error, Toast.LENGTH_SHORT).show();
        }
    }

    private void joinSelectedContacts() {
@@ -1330,9 +1368,19 @@ public class PeopleActivity extends AppCompatContactsActivity implements

    @Override
    public void onDeletionFinished() {
        // The parameters count and numSelected are both the number of contacts before deletion.
        Logger.logListEvent(ListEvent.ActionType.DELETE,
                /* listType */ getListTypeIncludingSearch(),
                /* count */ mAllFragment.getAdapter().getCount(), /* clickedIndex */ -1,
                /* numSelected */ mAllFragment.getSelectedContactIds().size());
        mActionBarAdapter.setSelectionMode(false);
    }

    private int getListTypeIncludingSearch() {
        return mAllFragment.isSearchMode()
                ? ListEvent.ListType.SEARCH_RESULT : mAllFragment.getListType();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
@@ -1342,6 +1390,12 @@ public class PeopleActivity extends AppCompatContactsActivity implements
                if (resultCode == RESULT_OK) {
                    mAllFragment.onPickerResult(data);
                }
            case ACTIVITY_REQUEST_CODE_SHARE:
                Logger.logListEvent(ListEvent.ActionType.SHARE,
                    /* listType */ getListTypeIncludingSearch(),
                    /* count */ mAllFragment.getAdapter().getCount(), /* clickedIndex */ -1,
                    /* numSelected */ mAllFragment.getAdapter().getSelectedContactIds().size());


// TODO fix or remove multipicker code
//                else if (resultCode == RESULT_CANCELED && mMode == MODE_PICK_MULTIPLE_PHONES) {
+4 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import com.android.contacts.GroupMetaDataLoader;
import com.android.contacts.R;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.logging.ListEvent.ListType;
import com.android.contacts.list.MultiSelectContactsListFragment;

/** Displays the members of a group. */
@@ -58,7 +59,7 @@ public class GroupMembersListFragment extends MultiSelectContactsListFragment {
        void onGroupMetadataLoadFailed();

        /** Invoked when a group member in the list is clicked. */
        void onGroupMemberListItemClicked(Uri contactLookupUri);
        void onGroupMemberListItemClicked(int position, Uri contactLookupUri);
    }

    /** Step 1 of loading group metadata. */
@@ -158,6 +159,7 @@ public class GroupMembersListFragment extends MultiSelectContactsListFragment {
        // Don't show the scrollbar until after group members have been loaded
        setVisibleScrollbarEnabled(false);
        setQuickContactEnabled(false);
        setListType(ListType.GROUP);
    }

    public void setListener(GroupMembersListListener listener) {
@@ -268,7 +270,7 @@ public class GroupMembersListFragment extends MultiSelectContactsListFragment {
        }
        if (mListener != null) {
            final Uri contactLookupUri = getAdapter().getContactLookupUri(position);
            mListener.onGroupMemberListItemClicked(contactLookupUri);
            mListener.onGroupMemberListItemClicked(position, contactLookupUri);
        }
    }
}
+9 −2
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.contacts.common.list.AutoScrollListView;
import com.android.contacts.common.list.ContactListAdapter;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.DirectoryPartition;
import com.android.contacts.common.logging.ListEvent.ListType;
import com.android.contacts.common.util.ContactLoaderUtils;

import java.util.List;
@@ -203,11 +204,16 @@ public abstract class ContactBrowseListFragment extends
        }

        if (mFilter != null && mFilter.equals(filter)) {
            setLogListEvents(false);
            return;
        }

        Log.v(TAG, "New filter: " + filter);

        setListType(filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
                ? ListType.ALL_CONTACTS : ListType.ACCOUNT);
        setLogListEvents(true);

        mFilter = filter;
        mLastSelectedPosition = -1;
        saveFilter();
@@ -604,9 +610,10 @@ public abstract class ContactBrowseListFragment extends
        mListener = listener;
    }

    public void viewContact(Uri contactUri, boolean isEnterpriseContact) {
    public void viewContact(int position, Uri contactUri, boolean isEnterpriseContact) {
        setSelectedContactUri(contactUri, false, false, true, false);
        if (mListener != null) mListener.onViewContactAction(contactUri, isEnterpriseContact);
        if (mListener != null) mListener.onViewContactAction(position, contactUri,
                isEnterpriseContact);
    }

    public void deleteContact(Uri contactUri) {
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ public class DefaultContactBrowseListFragment extends ContactBrowseListFragment
            super.onItemClick(position, id);
            return;
        }
        viewContact(uri, getAdapter().isEnterpriseContact(position));
        viewContact(position, uri, getAdapter().isEnterpriseContact(position));
    }

    @Override
Loading