summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/logging
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/logging')
-rw-r--r--java/com/android/dialer/logging/Logger.java49
-rw-r--r--java/com/android/dialer/logging/LoggingBindings.java59
-rw-r--r--java/com/android/dialer/logging/LoggingBindingsFactory.java24
-rw-r--r--java/com/android/dialer/logging/LoggingBindingsStub.java36
-rw-r--r--java/com/android/dialer/logging/nano/ContactLookupResult.java91
-rw-r--r--java/com/android/dialer/logging/nano/ContactSource.java90
-rw-r--r--java/com/android/dialer/logging/nano/DialerImpression.java178
-rw-r--r--java/com/android/dialer/logging/nano/InteractionEvent.java95
-rw-r--r--java/com/android/dialer/logging/nano/ReportingLocation.java87
-rw-r--r--java/com/android/dialer/logging/nano/ScreenEvent.java104
10 files changed, 813 insertions, 0 deletions
diff --git a/java/com/android/dialer/logging/Logger.java b/java/com/android/dialer/logging/Logger.java
new file mode 100644
index 000000000..207c35d9c
--- /dev/null
+++ b/java/com/android/dialer/logging/Logger.java
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+
+package com.android.dialer.logging;
+
+import android.content.Context;
+import java.util.Objects;
+
+/** Single entry point for all logging/analytics-related work for all user interactions. */
+public class Logger {
+
+ private static LoggingBindings loggingBindings;
+
+ private Logger() {}
+
+ public static LoggingBindings get(Context context) {
+ Objects.requireNonNull(context);
+ if (loggingBindings != null) {
+ return loggingBindings;
+ }
+
+ Context application = context.getApplicationContext();
+ if (application instanceof LoggingBindingsFactory) {
+ loggingBindings = ((LoggingBindingsFactory) application).newLoggingBindings();
+ }
+
+ if (loggingBindings == null) {
+ loggingBindings = new LoggingBindingsStub();
+ }
+ return loggingBindings;
+ }
+
+ public static void setForTesting(LoggingBindings loggingBindings) {
+ Logger.loggingBindings = loggingBindings;
+ }
+}
diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java
new file mode 100644
index 000000000..cf921c3fa
--- /dev/null
+++ b/java/com/android/dialer/logging/LoggingBindings.java
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ */
+
+package com.android.dialer.logging;
+
+import android.app.Activity;
+
+/** Allows the container application to gather analytics. */
+public interface LoggingBindings {
+
+ /**
+ * Logs an impression for a general dialer event that's not associated with a specific call.
+ *
+ * @param dialerImpression an integer representing what event occurred.
+ * @see com.android.dialer.logging.nano.DialerImpression
+ */
+ void logImpression(int dialerImpression);
+
+ /**
+ * Logs an impression for a general dialer event that's associated with a specific call.
+ *
+ * @param dialerImpression an integer representing what event occurred.
+ * @param callId unique ID of the call.
+ * @param callStartTimeMillis the absolute time when the call started.
+ * @see com.android.dialer.logging.nano.DialerImpression
+ */
+ void logCallImpression(int dialerImpression, String callId, long callStartTimeMillis);
+
+ /**
+ * Logs an interaction that occurred.
+ *
+ * @param interaction an integer representing what interaction occurred.
+ * @see com.android.dialer.logging.nano.InteractionEvent
+ */
+ void logInteraction(int interaction);
+
+ /**
+ * Logs an event indicating that a screen was displayed.
+ *
+ * @param screenEvent an integer representing the displayed screen.
+ * @param activity Parent activity of the displayed screen.
+ * @see com.android.dialer.logging.nano.ScreenEvent
+ */
+ void logScreenView(int screenEvent, Activity activity);
+
+ /** Logs a hit event to the analytics server. */
+ void sendHitEventAnalytics(String category, String action, String label, long value);
+}
diff --git a/java/com/android/dialer/logging/LoggingBindingsFactory.java b/java/com/android/dialer/logging/LoggingBindingsFactory.java
new file mode 100644
index 000000000..0722cf453
--- /dev/null
+++ b/java/com/android/dialer/logging/LoggingBindingsFactory.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+package com.android.dialer.logging;
+
+/**
+ * This interface should be implementated by the Application subclass. It allows this module to get
+ * references to the LoggingBindings.
+ */
+public interface LoggingBindingsFactory {
+
+ LoggingBindings newLoggingBindings();
+}
diff --git a/java/com/android/dialer/logging/LoggingBindingsStub.java b/java/com/android/dialer/logging/LoggingBindingsStub.java
new file mode 100644
index 000000000..89c56eb91
--- /dev/null
+++ b/java/com/android/dialer/logging/LoggingBindingsStub.java
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+package com.android.dialer.logging;
+
+import android.app.Activity;
+
+/** Default implementation for logging bindings. */
+public class LoggingBindingsStub implements LoggingBindings {
+
+ @Override
+ public void logImpression(int dialerImpression) {}
+
+ @Override
+ public void logCallImpression(int dialerImpression, String callId, long callStartTimeMillis) {}
+
+ @Override
+ public void logInteraction(int interaction) {}
+
+ @Override
+ public void logScreenView(int screenEvent, Activity activity) {}
+
+ @Override
+ public void sendHitEventAnalytics(String category, String action, String label, long value) {}
+}
diff --git a/java/com/android/dialer/logging/nano/ContactLookupResult.java b/java/com/android/dialer/logging/nano/ContactLookupResult.java
new file mode 100644
index 000000000..8960560fb
--- /dev/null
+++ b/java/com/android/dialer/logging/nano/ContactLookupResult.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 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
+ */
+
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+package com.android.dialer.logging.nano;
+
+@SuppressWarnings("hiding")
+public final class ContactLookupResult extends
+ com.google.protobuf.nano.ExtendableMessageNano<ContactLookupResult> {
+
+ // enum Type
+ public interface Type {
+ public static final int UNKNOWN_LOOKUP_RESULT_TYPE = 0;
+ public static final int NOT_FOUND = 1;
+ public static final int LOCAL_CONTACT = 2;
+ public static final int LOCAL_CACHE = 3;
+ public static final int REMOTE = 4;
+ public static final int EMERGENCY = 5;
+ public static final int VOICEMAIL = 6;
+ }
+
+ private static volatile ContactLookupResult[] _emptyArray;
+ public static ContactLookupResult[] emptyArray() {
+ // Lazily initializes the empty array
+ if (_emptyArray == null) {
+ synchronized (
+ com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
+ if (_emptyArray == null) {
+ _emptyArray = new ContactLookupResult[0];
+ }
+ }
+ }
+ return _emptyArray;
+ }
+
+ // @@protoc_insertion_point(class_scope:com.android.dialer.logging.ContactLookupResult)
+
+ public ContactLookupResult() {
+ clear();
+ }
+
+ public ContactLookupResult clear() {
+ unknownFieldData = null;
+ cachedSize = -1;
+ return this;
+ }
+
+ @Override
+ public ContactLookupResult mergeFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!super.storeUnknownField(input, tag)) {
+ return this;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ public static ContactLookupResult parseFrom(byte[] data)
+ throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
+ return com.google.protobuf.nano.MessageNano.mergeFrom(new ContactLookupResult(), data);
+ }
+
+ public static ContactLookupResult parseFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ return new ContactLookupResult().mergeFrom(input);
+ }
+}
diff --git a/java/com/android/dialer/logging/nano/ContactSource.java b/java/com/android/dialer/logging/nano/ContactSource.java
new file mode 100644
index 000000000..35d8b8ca1
--- /dev/null
+++ b/java/com/android/dialer/logging/nano/ContactSource.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2017 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
+ */
+
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+package com.android.dialer.logging.nano;
+
+@SuppressWarnings("hiding")
+public final class ContactSource extends
+ com.google.protobuf.nano.ExtendableMessageNano<ContactSource> {
+
+ // enum Type
+ public interface Type {
+ public static final int UNKNOWN_SOURCE_TYPE = 0;
+ public static final int SOURCE_TYPE_DIRECTORY = 1;
+ public static final int SOURCE_TYPE_EXTENDED = 2;
+ public static final int SOURCE_TYPE_PLACES = 3;
+ public static final int SOURCE_TYPE_PROFILE = 4;
+ public static final int SOURCE_TYPE_CNAP = 5;
+ }
+
+ private static volatile ContactSource[] _emptyArray;
+ public static ContactSource[] emptyArray() {
+ // Lazily initializes the empty array
+ if (_emptyArray == null) {
+ synchronized (
+ com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
+ if (_emptyArray == null) {
+ _emptyArray = new ContactSource[0];
+ }
+ }
+ }
+ return _emptyArray;
+ }
+
+ // @@protoc_insertion_point(class_scope:com.android.dialer.logging.ContactSource)
+
+ public ContactSource() {
+ clear();
+ }
+
+ public ContactSource clear() {
+ unknownFieldData = null;
+ cachedSize = -1;
+ return this;
+ }
+
+ @Override
+ public ContactSource mergeFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!super.storeUnknownField(input, tag)) {
+ return this;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ public static ContactSource parseFrom(byte[] data)
+ throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
+ return com.google.protobuf.nano.MessageNano.mergeFrom(new ContactSource(), data);
+ }
+
+ public static ContactSource parseFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ return new ContactSource().mergeFrom(input);
+ }
+}
diff --git a/java/com/android/dialer/logging/nano/DialerImpression.java b/java/com/android/dialer/logging/nano/DialerImpression.java
new file mode 100644
index 000000000..6bb56751f
--- /dev/null
+++ b/java/com/android/dialer/logging/nano/DialerImpression.java
@@ -0,0 +1,178 @@
+/*
+ * 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.
+ */
+
+package com.android.dialer.logging.nano;
+
+@SuppressWarnings("hiding")
+public final class DialerImpression extends
+ com.google.protobuf.nano.ExtendableMessageNano<DialerImpression> {
+
+ // enum Type
+ public interface Type {
+ public static final int UNKNOWN_AOSP_EVENT_TYPE = 1000;
+ public static final int APP_LAUNCHED = 1001;
+ public static final int IN_CALL_SCREEN_TURN_ON_SPEAKERPHONE = 1002;
+ public static final int IN_CALL_SCREEN_TURN_ON_WIRED_OR_EARPIECE = 1003;
+ public static final int CALL_LOG_BLOCK_REPORT_SPAM = 1004;
+ public static final int CALL_LOG_BLOCK_NUMBER = 1005;
+ public static final int CALL_LOG_UNBLOCK_NUMBER = 1006;
+ public static final int CALL_LOG_REPORT_AS_NOT_SPAM = 1007;
+ public static final int DIALOG_ACTION_CONFIRM_NUMBER_NOT_SPAM = 1008;
+ public static final int REPORT_AS_NOT_SPAM_VIA_UNBLOCK_NUMBER = 1009;
+ public static final int DIALOG_ACTION_CONFIRM_NUMBER_SPAM_INDIRECTLY_VIA_BLOCK_NUMBER = 1010;
+ public static final int REPORT_CALL_AS_SPAM_VIA_CALL_LOG_BLOCK_REPORT_SPAM_SENT_VIA_BLOCK_NUMBER_DIALOG = 1011;
+ public static final int USER_ACTION_BLOCKED_NUMBER = 1012;
+ public static final int USER_ACTION_UNBLOCKED_NUMBER = 1013;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_BLOCK_NUMBER = 1014;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_SHOW_SPAM_DIALOG = 1015;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_SHOW_NON_SPAM_DIALOG = 1016;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_ADD_TO_CONTACTS = 1019;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_MARKED_NUMBER_AS_SPAM = 1020;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_MARKED_NUMBER_AS_NOT_SPAM_AND_BLOCKED = 1021;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_REPORT_NUMBER_AS_NOT_SPAM = 1022;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_ON_DISMISS_SPAM_DIALOG = 1024;
+ public static final int SPAM_AFTER_CALL_NOTIFICATION_ON_DISMISS_NON_SPAM_DIALOG = 1025;
+ public static final int SPAM_NOTIFICATION_SERVICE_ACTION_MARK_NUMBER_AS_SPAM = 1026;
+ public static final int SPAM_NOTIFICATION_SERVICE_ACTION_MARK_NUMBER_AS_NOT_SPAM = 1027;
+ public static final int USER_PARTICIPATED_IN_A_CALL = 1028;
+ public static final int INCOMING_SPAM_CALL = 1029;
+ public static final int INCOMING_NON_SPAM_CALL = 1030;
+ public static final int SPAM_NOTIFICATION_SHOWN_AFTER_THROTTLE = 1041;
+ public static final int SPAM_NOTIFICATION_NOT_SHOWN_AFTER_THROTTLE = 1042;
+ public static final int NON_SPAM_NOTIFICATION_SHOWN_AFTER_THROTTLE = 1043;
+ public static final int NON_SPAM_NOTIFICATION_NOT_SHOWN_AFTER_THROTTLE = 1044;
+ public static final int VOICEMAIL_ALERT_SET_PIN_SHOWN = 1045;
+ public static final int VOICEMAIL_ALERT_SET_PIN_CLICKED = 1046;
+ public static final int USER_DID_NOT_PARTICIPATE_IN_CALL = 1047;
+ public static final int USER_DELETED_CALL_LOG_ITEM = 1048;
+ public static final int CALL_LOG_SEND_MESSAGE = 1049;
+ public static final int CALL_LOG_ADD_TO_CONTACT = 1050;
+ public static final int CALL_LOG_CREATE_NEW_CONTACT = 1051;
+ public static final int VOICEMAIL_DELETE_ENTRY = 1052;
+ public static final int VOICEMAIL_EXPAND_ENTRY = 1053;
+ public static final int VOICEMAIL_PLAY_AUDIO_DIRECTLY = 1054;
+ public static final int VOICEMAIL_PLAY_AUDIO_AFTER_EXPANDING_ENTRY = 1055;
+ public static final int REJECT_INCOMING_CALL_FROM_NOTIFICATION = 1056;
+ public static final int REJECT_INCOMING_CALL_FROM_ANSWER_SCREEN = 1057;
+ public static final int CALL_LOG_CONTEXT_MENU_BLOCK_REPORT_SPAM = 1058;
+ public static final int CALL_LOG_CONTEXT_MENU_BLOCK_NUMBER = 1059;
+ public static final int CALL_LOG_CONTEXT_MENU_UNBLOCK_NUMBER = 1060;
+ public static final int CALL_LOG_CONTEXT_MENU_REPORT_AS_NOT_SPAM = 1061;
+ public static final int NEW_CONTACT_OVERFLOW = 1062;
+ public static final int NEW_CONTACT_FAB = 1063;
+ public static final int VOICEMAIL_VVM3_TOS_SHOWN = 1064;
+ public static final int VOICEMAIL_VVM3_TOS_ACCEPTED = 1065;
+ public static final int VOICEMAIL_VVM3_TOS_DECLINED = 1066;
+ public static final int VOICEMAIL_VVM3_TOS_DECLINE_CLICKED = 1067;
+ public static final int VOICEMAIL_VVM3_TOS_DECLINE_CHANGE_PIN_SHOWN = 1068;
+ public static final int STORAGE_PERMISSION_DISPLAYED = 1069;
+ public static final int CAMERA_PERMISSION_DISPLAYED = 1074;
+ public static final int STORAGE_PERMISSION_REQUESTED = 1070;
+ public static final int CAMERA_PERMISSION_REQUESTED = 1075;
+ public static final int STORAGE_PERMISSION_SETTINGS = 1071;
+ public static final int CAMERA_PERMISSION_SETTINGS = 1076;
+ public static final int STORAGE_PERMISSION_GRANTED = 1072;
+ public static final int CAMERA_PERMISSION_GRANTED = 1077;
+ public static final int STORAGE_PERMISSION_DENIED = 1073;
+ public static final int CAMERA_PERMISSION_DENIED = 1078;
+ public static final int VOICEMAIL_CONFIGURATION_STATE_CORRUPTION_DETECTED_FROM_ACTIVITY = 1079;
+ public static final int VOICEMAIL_CONFIGURATION_STATE_CORRUPTION_DETECTED_FROM_NOTIFICATION = 1080;
+ public static final int BACKUP_ON_BACKUP = 1081;
+ public static final int BACKUP_ON_FULL_BACKUP = 1082;
+ public static final int BACKUP_ON_BACKUP_DISABLED = 1083;
+ public static final int BACKUP_VOICEMAIL_BACKED_UP = 1084;
+ public static final int BACKUP_FULL_BACKED_UP = 1085;
+ public static final int BACKUP_ON_BACKUP_JSON_EXCEPTION = 1086;
+ public static final int BACKUP_ON_QUOTA_EXCEEDED = 1087;
+ public static final int BACKUP_ON_RESTORE = 1088;
+ public static final int BACKUP_RESTORED_FILE = 1089;
+ public static final int BACKUP_RESTORED_VOICEMAIL = 1090;
+ public static final int BACKUP_ON_RESTORE_FINISHED = 1091;
+ public static final int BACKUP_ON_RESTORE_DISABLED = 1092;
+ public static final int BACKUP_ON_RESTORE_JSON_EXCEPTION = 1093;
+ public static final int BACKUP_ON_RESTORE_IO_EXCEPTION = 1094;
+ public static final int BACKUP_MAX_VM_BACKUP_REACHED = 1095;
+ public static final int EVENT_ANSWER_HINT_ACTIVATED = 1096;
+ public static final int EVENT_ANSWER_HINT_DEACTIVATED = 1097;
+ public static final int VVM_TAB_VISIBLE = 1098;
+ public static final int VVM_SHARE_VISIBLE = 1099;
+ public static final int VVM_SHARE_PRESSED = 1100;
+ public static final int OUTGOING_VIDEO_CALL = 1101;
+ public static final int INCOMING_VIDEO_CALL = 1102;
+ public static final int USER_PARTICIPATED_IN_A_VIDEO_CALL = 1103;
+ public static final int BACKUP_ON_RESTORE_VM_DUPLICATE_NOT_RESTORING = 1104;
+ public static final int CALL_LOG_SHARE_AND_CALL = 1105;
+ public static final int CALL_COMPOSER_ACTIVITY_PLACE_RCS_CALL = 1106;
+ public static final int CALL_COMPOSER_ACTIVITY_SEND_AND_CALL_PRESSED_WHEN_SESSION_NOT_READY = 1107;
+ }
+
+ private static volatile DialerImpression[] _emptyArray;
+ public static DialerImpression[] emptyArray() {
+ // Lazily initializes the empty array
+ if (_emptyArray == null) {
+ synchronized (
+ com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
+ if (_emptyArray == null) {
+ _emptyArray = new DialerImpression[0];
+ }
+ }
+ }
+ return _emptyArray;
+ }
+
+ // @@protoc_insertion_point(class_scope:com.android.dialer.logging.DialerImpression)
+
+ public DialerImpression() {
+ clear();
+ }
+
+ public DialerImpression clear() {
+ unknownFieldData = null;
+ cachedSize = -1;
+ return this;
+ }
+
+ @Override
+ public DialerImpression mergeFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!super.storeUnknownField(input, tag)) {
+ return this;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ public static DialerImpression parseFrom(byte[] data)
+ throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
+ return com.google.protobuf.nano.MessageNano.mergeFrom(new DialerImpression(), data);
+ }
+
+ public static DialerImpression parseFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ return new DialerImpression().mergeFrom(input);
+ }
+}
+
diff --git a/java/com/android/dialer/logging/nano/InteractionEvent.java b/java/com/android/dialer/logging/nano/InteractionEvent.java
new file mode 100644
index 000000000..8d9430be9
--- /dev/null
+++ b/java/com/android/dialer/logging/nano/InteractionEvent.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+package com.android.dialer.logging.nano;
+
+/** This file is autogenerated, but javadoc required. */
+@SuppressWarnings("hiding")
+public final class InteractionEvent
+ extends com.google.protobuf.nano.ExtendableMessageNano<InteractionEvent> {
+
+ // enum Type
+ /** This file is autogenerated, but javadoc required. */
+ public interface Type {
+ public static final int UNKNOWN = 0;
+ public static final int CALL_BLOCKED = 15;
+ public static final int BLOCK_NUMBER_CALL_LOG = 16;
+ public static final int BLOCK_NUMBER_CALL_DETAIL = 17;
+ public static final int BLOCK_NUMBER_MANAGEMENT_SCREEN = 18;
+ public static final int UNBLOCK_NUMBER_CALL_LOG = 19;
+ public static final int UNBLOCK_NUMBER_CALL_DETAIL = 20;
+ public static final int UNBLOCK_NUMBER_MANAGEMENT_SCREEN = 21;
+ public static final int IMPORT_SEND_TO_VOICEMAIL = 22;
+ public static final int UNDO_BLOCK_NUMBER = 23;
+ public static final int UNDO_UNBLOCK_NUMBER = 24;
+ }
+
+ private static volatile InteractionEvent[] _emptyArray;
+ public static InteractionEvent[] emptyArray() {
+ // Lazily initializes the empty array
+ if (_emptyArray == null) {
+ synchronized (com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
+ if (_emptyArray == null) {
+ _emptyArray = new InteractionEvent[0];
+ }
+ }
+ }
+ return _emptyArray;
+ }
+
+ // @@protoc_insertion_point(class_scope:com.android.dialer.logging.InteractionEvent)
+
+ public InteractionEvent() {
+ clear();
+ }
+
+ public InteractionEvent clear() {
+ unknownFieldData = null;
+ cachedSize = -1;
+ return this;
+ }
+
+ @Override
+ public InteractionEvent mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default:
+ {
+ if (!super.storeUnknownField(input, tag)) {
+ return this;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ public static InteractionEvent parseFrom(byte[] data)
+ throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
+ return com.google.protobuf.nano.MessageNano.mergeFrom(new InteractionEvent(), data);
+ }
+
+ public static InteractionEvent parseFrom(com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ return new InteractionEvent().mergeFrom(input);
+ }
+}
diff --git a/java/com/android/dialer/logging/nano/ReportingLocation.java b/java/com/android/dialer/logging/nano/ReportingLocation.java
new file mode 100644
index 000000000..1f05ce414
--- /dev/null
+++ b/java/com/android/dialer/logging/nano/ReportingLocation.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2017 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
+ */
+
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+package com.android.dialer.logging.nano;
+
+@SuppressWarnings("hiding")
+public final class ReportingLocation extends
+ com.google.protobuf.nano.ExtendableMessageNano<ReportingLocation> {
+
+ // enum Type
+ public interface Type {
+ public static final int UNKNOWN_REPORTING_LOCATION = 0;
+ public static final int CALL_LOG_HISTORY = 1;
+ public static final int FEEDBACK_PROMPT = 2;
+ }
+
+ private static volatile ReportingLocation[] _emptyArray;
+ public static ReportingLocation[] emptyArray() {
+ // Lazily initializes the empty array
+ if (_emptyArray == null) {
+ synchronized (
+ com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
+ if (_emptyArray == null) {
+ _emptyArray = new ReportingLocation[0];
+ }
+ }
+ }
+ return _emptyArray;
+ }
+
+ // @@protoc_insertion_point(class_scope:com.android.dialer.logging.ReportingLocation)
+
+ public ReportingLocation() {
+ clear();
+ }
+
+ public ReportingLocation clear() {
+ unknownFieldData = null;
+ cachedSize = -1;
+ return this;
+ }
+
+ @Override
+ public ReportingLocation mergeFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default: {
+ if (!super.storeUnknownField(input, tag)) {
+ return this;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ public static ReportingLocation parseFrom(byte[] data)
+ throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
+ return com.google.protobuf.nano.MessageNano.mergeFrom(new ReportingLocation(), data);
+ }
+
+ public static ReportingLocation parseFrom(
+ com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ return new ReportingLocation().mergeFrom(input);
+ }
+}
diff --git a/java/com/android/dialer/logging/nano/ScreenEvent.java b/java/com/android/dialer/logging/nano/ScreenEvent.java
new file mode 100644
index 000000000..be4e5eb9e
--- /dev/null
+++ b/java/com/android/dialer/logging/nano/ScreenEvent.java
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ */
+
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+package com.android.dialer.logging.nano;
+
+/** This file is autogenerated, but javadoc required. */
+@SuppressWarnings("hiding")
+public final class ScreenEvent extends com.google.protobuf.nano.ExtendableMessageNano<ScreenEvent> {
+
+ // enum Type
+ /** This file is autogenerated, but javadoc required. */
+ public interface Type {
+ public static final int UNKNOWN = 0;
+ public static final int DIALPAD = 1;
+ public static final int SPEED_DIAL = 2;
+ public static final int CALL_LOG = 3;
+ public static final int VOICEMAIL_LOG = 4;
+ public static final int ALL_CONTACTS = 5;
+ public static final int REGULAR_SEARCH = 6;
+ public static final int SMART_DIAL_SEARCH = 7;
+ public static final int CALL_LOG_FILTER = 8;
+ public static final int SETTINGS = 9;
+ public static final int IMPORT_EXPORT_CONTACTS = 10;
+ public static final int CLEAR_FREQUENTS = 11;
+ public static final int SEND_FEEDBACK = 12;
+ public static final int INCALL = 13;
+ public static final int INCOMING_CALL = 14;
+ public static final int CONFERENCE_MANAGEMENT = 15;
+ public static final int INCALL_DIALPAD = 16;
+ public static final int CALL_LOG_CONTEXT_MENU = 17;
+ public static final int BLOCKED_NUMBER_MANAGEMENT = 18;
+ public static final int BLOCKED_NUMBER_ADD_NUMBER = 19;
+ public static final int CALL_DETAILS = 20;
+ }
+
+ private static volatile ScreenEvent[] _emptyArray;
+ public static ScreenEvent[] emptyArray() {
+ // Lazily initializes the empty array
+ if (_emptyArray == null) {
+ synchronized (com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
+ if (_emptyArray == null) {
+ _emptyArray = new ScreenEvent[0];
+ }
+ }
+ }
+ return _emptyArray;
+ }
+
+ // @@protoc_insertion_point(class_scope:com.android.dialer.logging.ScreenEvent)
+
+ public ScreenEvent() {
+ clear();
+ }
+
+ public ScreenEvent clear() {
+ unknownFieldData = null;
+ cachedSize = -1;
+ return this;
+ }
+
+ @Override
+ public ScreenEvent mergeFrom(com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ return this;
+ default:
+ {
+ if (!super.storeUnknownField(input, tag)) {
+ return this;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ public static ScreenEvent parseFrom(byte[] data)
+ throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
+ return com.google.protobuf.nano.MessageNano.mergeFrom(new ScreenEvent(), data);
+ }
+
+ public static ScreenEvent parseFrom(com.google.protobuf.nano.CodedInputByteBufferNano input)
+ throws java.io.IOException {
+ return new ScreenEvent().mergeFrom(input);
+ }
+}