1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 * in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the License 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 * or implied. See the License for the specific language governing permissions and limitations under 12 * the License. 13 */ 14 15 package com.android.dialer.logging; 16 17 import android.app.Activity; 18 import android.widget.QuickContactBadge; 19 20 /** Allows the container application to gather analytics. */ 21 public interface LoggingBindings { 22 23 /** 24 * Logs an DialerImpression event that's not associated with a specific call. 25 * 26 * @param dialerImpression an integer representing what event occurred. 27 */ logImpression(DialerImpression.Type dialerImpression)28 void logImpression(DialerImpression.Type dialerImpression); 29 30 /** 31 * Logs an impression for a general dialer event that's not associated with a specific call. 32 * 33 * @param dialerImpression an integer representing what event occurred. 34 */ 35 @Deprecated logImpression(int dialerImpression)36 void logImpression(int dialerImpression); 37 38 /** 39 * Logs an impression for a general dialer event that's associated with a specific call. 40 * 41 * @param dialerImpression an integer representing what event occurred. 42 * @param callId unique ID of the call. 43 * @param callStartTimeMillis the absolute time when the call started. 44 */ logCallImpression( DialerImpression.Type dialerImpression, String callId, long callStartTimeMillis)45 void logCallImpression( 46 DialerImpression.Type dialerImpression, String callId, long callStartTimeMillis); 47 48 /** 49 * Logs an interaction that occurred. 50 * 51 * @param interaction an integer representing what interaction occurred. 52 * @see com.android.dialer.logging.InteractionEvent 53 */ logInteraction(InteractionEvent.Type interaction)54 void logInteraction(InteractionEvent.Type interaction); 55 56 /** 57 * Logs an event indicating that a screen was displayed. 58 * 59 * @param screenEvent an integer representing the displayed screen. 60 * @param activity Parent activity of the displayed screen. 61 * @see com.android.dialer.logging.ScreenEvent 62 */ logScreenView(com.android.dialer.logging.ScreenEvent.Type screenEvent, Activity activity)63 void logScreenView(com.android.dialer.logging.ScreenEvent.Type screenEvent, Activity activity); 64 65 /** Logs the composition of contact tiles in the speed dial tab. */ logSpeedDialContactComposition( int counter, int starredContactsCount, int pinnedContactsCount, int multipleNumbersContactsCount, int contactsWithPhotoCount, int contactsWithNameCount, int lightbringerReachableContactsCount)66 void logSpeedDialContactComposition( 67 int counter, 68 int starredContactsCount, 69 int pinnedContactsCount, 70 int multipleNumbersContactsCount, 71 int contactsWithPhotoCount, 72 int contactsWithNameCount, 73 int lightbringerReachableContactsCount); 74 75 /** Logs a hit event to the analytics server. */ sendHitEventAnalytics(String category, String action, String label, long value)76 void sendHitEventAnalytics(String category, String action, String label, long value); 77 78 /** Logs where a quick contact badge is clicked */ logQuickContactOnTouch( QuickContactBadge quickContact, InteractionEvent.Type interactionEvent, boolean shouldPerformClick)79 void logQuickContactOnTouch( 80 QuickContactBadge quickContact, 81 InteractionEvent.Type interactionEvent, 82 boolean shouldPerformClick); 83 84 /** Logs People Api lookup result with error */ logPeopleApiLookupReportWithError( long latency, int httpResponseCode, PeopleApiLookupError.Type errorType)85 void logPeopleApiLookupReportWithError( 86 long latency, int httpResponseCode, PeopleApiLookupError.Type errorType); 87 88 /** Logs successful People Api lookup result */ logSuccessfulPeopleApiLookupReport(long latency, int httpResponseCode)89 void logSuccessfulPeopleApiLookupReport(long latency, int httpResponseCode); 90 } 91