/*
 * Copyright (C) 2010 Google Inc.
 *
 * 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.inputmethod.voice;

/**
 * Logging event constants used for Voice Search and VoiceIME. These are the keys and values of
 * extras to be specified in logging broadcast intents to the {@link LoggingReceiver}.
 * 
 * This class is duplicated between VoiceSearch and LatinIME. Please keep both versions
 * in sync.
 */
public class LoggingEvents {
    // The name of the broadcast intent for logging.
    public static final String ACTION_LOG_EVENT = "com.google.android.voicesearch.LOG_EVENT";
    
    // The extra key used for the name of the app being logged.
    public static final String EXTRA_APP_NAME = "app_name";

    // The extra key used for the event value. The possible event values depend on the
    // app being logged for, and are defined in the subclasses below.
    public static final String EXTRA_EVENT = "extra_event";
    
    // The extra key used (with a boolean value of 'true') as a way to trigger a flush
    // of the log events to the server.
    public static final String EXTRA_FLUSH = "flush";
    
    /**
     * Logging event constants for VoiceIME. Below are the extra values for
     * {@link LoggingEvents#EXTRA_EVENT}, clustered with keys to additional extras
     * for some events that need to be included as additional fields in the event.
     */
    public class VoiceIme {
        // The app name to be used for logging VoiceIME events.
        public static final String APP_NAME = "voiceime"; 
        
        public static final int KEYBOARD_WARNING_DIALOG_SHOWN = 0;
        
        public static final int KEYBOARD_WARNING_DIALOG_DISMISSED = 1;
        
        public static final int KEYBOARD_WARNING_DIALOG_OK = 2;
        
        public static final int KEYBOARD_WARNING_DIALOG_CANCEL = 3;
        
        public static final int SETTINGS_WARNING_DIALOG_SHOWN = 4;
        
        public static final int SETTINGS_WARNING_DIALOG_DISMISSED = 5;
        
        public static final int SETTINGS_WARNING_DIALOG_OK = 6;
        
        public static final int SETTINGS_WARNING_DIALOG_CANCEL = 7;
        
        public static final int SWIPE_HINT_DISPLAYED = 8;
        
        public static final int PUNCTUATION_HINT_DISPLAYED = 9;
        
        public static final int CANCEL_DURING_LISTENING = 10;
        
        public static final int CANCEL_DURING_WORKING = 11;
        
        public static final int CANCEL_DURING_ERROR = 12;
        
        public static final int ERROR = 13;
        public static final String EXTRA_ERROR_CODE = "code";  // value should be int
        
        public static final int START = 14;
        public static final String EXTRA_START_LOCALE = "locale";  // value should be String
        public static final String EXTRA_START_SWIPE = "swipe";  // value should be boolean
        
        public static final int VOICE_INPUT_DELIVERED = 15;
        
        public static final int N_BEST_CHOOSE = 16;
        public static final String EXTRA_N_BEST_CHOOSE_INDEX = "index";  // value should be int 
        
        public static final int TEXT_MODIFIED = 17;
        
        public static final int INPUT_ENDED = 18;
        
        public static final int VOICE_INPUT_SETTING_ENABLED = 19;
        
        public static final int VOICE_INPUT_SETTING_DISABLED = 20;
    }
}

@@ -856,16 +856,20 @@
 between 
+the 
 VoiceSea
@@ -871,20 +871,17 @@
 ceSearch
- and
+,
  LatinIM
@@ -881,16 +881,38 @@
 LatinIME
+, and Browser packages
 . Please
@@ -920,13 +920,15 @@
 keep
- both
+%0A * all
  ver
@@ -932,19 +932,16 @@
 versions
-%0A *
  in sync
@@ -1601,16 +1601,16 @@
 server.%0A
-
     publ
@@ -1668,16 +1668,1062 @@
     /**%0A
+     * Logging event constants for voice search. Below are the extra values for%0A     * %7B@link LoggingEvents#EXTRA_EVENT%7D, clustered with keys to additional extras%0A     * for some events that need to be included as additional fields in the event.%0A     * %0A     * Note that this is not representative of *all* voice search events - only the ones%0A     * that need to be reported from outside the voice search app, such as from Browser.%0A     */%0A    public class VoiceSearch %7B%0A        // The app name to be used for logging VoiceSearch events.%0A        public static final String APP_NAME = %22googlemobile%22;%0A        %0A        public static final int RETRY = 0;%0A        %0A        public static final int N_BEST_REVEAL = 1;%0A        %0A        public static final int N_BEST_CHOOSE = 2;%0A        public static final String EXTRA_N_BEST_CHOOSE_INDEX = %22index%22;  // value should be int%0A        %0A        public static final int QUERY_UPDATED = 3;%0A        public static final String EXTRA_QUERY_UPDATED_VALUE = %22value%22;  // value should be String%0A    %7D%0A    %0A    /**%0A
      * L

Put the LoggingEvents class in sync with latest - adds some VoiceSearch events which won't be used by LatinIME.