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