1 /* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.quicksearchbox; 18 19 20 21 /** 22 * Interface for logging implementations. 23 */ 24 public interface Logger { 25 26 public static final int SEARCH_METHOD_BUTTON = 0; 27 public static final int SEARCH_METHOD_KEYBOARD = 1; 28 29 public static final int SUGGESTION_CLICK_TYPE_LAUNCH = 0; 30 public static final int SUGGESTION_CLICK_TYPE_REFINE = 1; 31 public static final int SUGGESTION_CLICK_TYPE_QUICK_CONTACT = 2; 32 33 /** 34 * Called when QSB has started. 35 * 36 * @param latency User-visible start-up latency in milliseconds. 37 */ logStart(int onCreateLatency, int latency, String intentSource)38 void logStart(int onCreateLatency, int latency, String intentSource); 39 40 /** 41 * Called when a suggestion is clicked. 42 * 43 * @param suggestionId Suggestion ID; 0-based position of the suggestion in the UI if the list 44 * is flat. 45 * @param suggestionCursor all the suggestions shown in the UI. 46 * @param clickType One of the SUGGESTION_CLICK_TYPE constants. 47 */ logSuggestionClick(long suggestionId, SuggestionCursor suggestionCursor, int clickType)48 void logSuggestionClick(long suggestionId, SuggestionCursor suggestionCursor, int clickType); 49 50 /** 51 * The user launched a search. 52 * 53 * @param startMethod One of {@link #SEARCH_METHOD_BUTTON} or {@link #SEARCH_METHOD_KEYBOARD}. 54 * @param numChars The number of characters in the query. 55 */ logSearch(int startMethod, int numChars)56 void logSearch(int startMethod, int numChars); 57 58 /** 59 * The user launched a voice search. 60 */ logVoiceSearch()61 void logVoiceSearch(); 62 63 /** 64 * The user left QSB without performing any action (click suggestions, search or voice search). 65 * 66 * @param suggestionCursor all the suggestions shown in the UI when the user left 67 * @param numChars The number of characters in the query typed when the user left. 68 */ logExit(SuggestionCursor suggestionCursor, int numChars)69 void logExit(SuggestionCursor suggestionCursor, int numChars); 70 71 /** 72 * Logs the latency of a suggestion query to a specific source. 73 * 74 * @param result The result of the query. 75 */ logLatency(SourceResult result)76 void logLatency(SourceResult result); 77 78 } 79