1c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang/* 2c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * Copyright (C) 2016 The Android Open Source Project 3c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * 4c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * you may not use this file except in compliance with the License. 6c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * You may obtain a copy of the License at 7c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * 8c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * http://www.apache.org/licenses/LICENSE-2.0 9c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * 10c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * Unless required by applicable law or agreed to in writing, software 11c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * distributed under the License is distributed on an "AS IS" BASIS, 12c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * See the License for the specific language governing permissions and 14c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * limitations under the License. 15c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang */ 1669c182afb0e6d82a341a28b4317aa703af768906Gary Maipackage com.android.contacts.logging; 17c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 181a9b44e3fde8e30a3a0f9429bf2f727a89691947Walter Jangimport com.google.common.base.MoreObjects; 19c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 20c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang/** 21c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang * Describes how user view and use a list 22c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang */ 23c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wangpublic final class ListEvent { 24c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 25c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang /** The type of action taken by the user. **/ 26c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public int actionType; 27c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 28c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang /** The type of list the user is viewing. **/ 29c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public int listType; 30c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 31c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang /** The number of contacts in the list. **/ 32c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public int count; 33c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 34c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang /** The index of contact clicked by user. **/ 35c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public int clickedIndex = -1; 36c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 37c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang /** The number of contact selected when user takes an action (link, delete, share, etc). **/ 38c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public int numSelected; 39c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 40c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang // Should match ContactsExtension.ListEvent.ActionType values in 41c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang // http://cs/google3/logs/proto/wireless/android/contacts/contacts_extensions.proto 42c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final class ActionType { 43c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int UNKNOWN = 0; 44c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int LOAD = 1; 45c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int CLICK = 2; 46c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int SELECT = 3; 47c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int SHARE = 4; 48c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int DELETE = 5; 49c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int LINK = 6; 50c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int REMOVE_LABEL = 7; 51c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 52c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang private ActionType() { 53c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang } 54c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang } 55c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 56c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang // Should match ContactsExtension.ListEvent.ListType values in 57c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang // http://cs/google3/logs/proto/wireless/android/contacts/contacts_extensions.proto 58c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final class ListType { 59c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int UNKNOWN_LIST = 0; 60c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int ALL_CONTACTS = 1; 61c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int ACCOUNT = 2; 62c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int GROUP = 3; 63c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public static final int SEARCH_RESULT = 4; 641bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int DEVICE = 5; 651bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int CUSTOM = 6; 661bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int STARRED = 7; 671bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PHONE_NUMBERS = 8; 681bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int SINGLE_CONTACT = 9; 691bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_CONTACT = 10; 701bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_CONTACT_FOR_SHORTCUT = 11; 711bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_PHONE = 12; 721bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_EMAIL = 13; 731bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_POSTAL = 14; 741bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_JOIN = 15; 751bdef2f43675c9fcd4385acfda7779bcfe257cb8Walter Jang public static final int PICK_GROUP_MEMBERS = 16; 76c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 77c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang private ListType() { 78c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang } 79c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang } 80c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 81c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public ListEvent() { 82c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang } 83c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang 84c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang @Override 85c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang public String toString() { 861a9b44e3fde8e30a3a0f9429bf2f727a89691947Walter Jang return MoreObjects.toStringHelper(this) 87c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang .add("actionType", actionType) 88c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang .add("listType", listType) 89c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang .add("count", count) 90c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang .add("clickedIndex", clickedIndex) 91c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang .add("numSelected", numSelected) 92c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang .toString(); 93c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang } 94c9ad9b1d95e0d9486ca16c1f98e946b2c87b6292Wenyi Wang} 95