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