/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.gecko; import org.mozilla.gecko.annotation.RobocopTarget; /** * Holds data definitions for our UI Telemetry implementation. * * Note that enum values of "_TEST*" are reserved for testing and * should not be changed without changing the associated tests. * * See mobile/android/base/docs/index.rst for a full dictionary. */ @RobocopTarget public interface TelemetryContract { /** * Holds event names. Intended for use with * Telemetry.sendUIEvent() as the "action" parameter. * * Please keep this list sorted. */ public enum Event { // Generic action, usually for tracking menu and toolbar actions. ACTION("action.1"), // Cancel a state, action, etc. CANCEL("cancel.1"), // Start casting a video. // Note: Only used in JavaScript for now, but here for completeness. CAST("cast.1"), // Editing an item. EDIT("edit.1"), // Launching (opening) an external application. // Note: Only used in JavaScript for now, but here for completeness. LAUNCH("launch.1"), // Loading a URL. LOAD_URL("loadurl.1"), LOCALE_BROWSER_RESET("locale.browser.reset.1"), LOCALE_BROWSER_SELECTED("locale.browser.selected.1"), LOCALE_BROWSER_UNSELECTED("locale.browser.unselected.1"), // Hide a built-in home panel. PANEL_HIDE("panel.hide.1"), // Move a home panel up or down. PANEL_MOVE("panel.move.1"), // Remove a custom home panel. PANEL_REMOVE("panel.remove.1"), // Set default home panel. PANEL_SET_DEFAULT("panel.setdefault.1"), // Show a hidden built-in home panel. PANEL_SHOW("panel.show.1"), // Pinning an item. PIN("pin.1"), // Outcome of data policy notification: can be true or false. POLICY_NOTIFICATION_SUCCESS("policynotification.success.1"), // Sanitizing private data. SANITIZE("sanitize.1"), // Saving a resource (reader, bookmark, etc) for viewing later. SAVE("save.1"), // Perform a search -- currently used when starting a search in the search activity. SEARCH("search.1"), // Remove a search engine. SEARCH_REMOVE("search.remove.1"), // Restore default search engines. SEARCH_RESTORE_DEFAULTS("search.restoredefaults.1"), // Set default search engine. SEARCH_SET_DEFAULT("search.setdefault.1"), // Sharing content. SHARE("share.1"), // Show a UI element. SHOW("show.1"), // Undoing a user action. // Note: Only used in JavaScript for now, but here for completeness. UNDO("undo.1"), // Unpinning an item. UNPIN("unpin.1"), // Stop holding a resource (reader, bookmark, etc) for viewing later. UNSAVE("unsave.1"), // When the user performs actions on the in-content network error page. NETERROR("neterror.1"), // VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING. _TEST1("_test_event_1.1"), _TEST2("_test_event_2.1"), _TEST3("_test_event_3.1"), _TEST4("_test_event_4.1"), ; private final String string; Event(final String string) { this.string = string; } @Override public String toString() { return string; } } /** * Holds event methods. Intended for use in * Telemetry.sendUIEvent() as the "method" parameter. * * Please keep this list sorted. */ public enum Method { // Action triggered from the action bar (including the toolbar). ACTIONBAR("actionbar"), // Action triggered by hitting the Android back button. BACK("back"), // Action triggered from a button. BUTTON("button"), // Action taken from a content page -- for example, a search results web page. CONTENT("content"), // Action occurred via a context menu. CONTEXT_MENU("contextmenu"), // Action triggered from a dialog. DIALOG("dialog"), // Action triggered from a doorhanger popup prompt. DOORHANGER("doorhanger"), // Action triggered from a view grid item, like a thumbnail. GRID_ITEM("griditem"), // Action occurred via an intent. INTENT("intent"), // Action occurred via a homescreen launcher. HOMESCREEN("homescreen"), // Action triggered from a list. LIST("list"), // Action triggered from a view list item, like a row of a list. LIST_ITEM("listitem"), // Action occurred via the main menu. MENU("menu"), // No method is specified. NONE(null), // Action triggered from a notification in the Android notification bar. NOTIFICATION("notification"), // Action triggered from a pageaction in the URLBar. // Note: Only used in JavaScript for now, but here for completeness. PAGEACTION("pageaction"), // Action triggered from one of a series of views, such as ViewPager. PANEL("panel"), // Action triggered by a background service / automatic system making a decision. SERVICE("service"), // Action triggered from a settings screen. SETTINGS("settings"), // Actions triggered from the share overlay. SHARE_OVERLAY("shareoverlay"), // Action triggered from a suggestion provided to the user. SUGGESTION("suggestion"), // Action triggered from an OS system action. SYSTEM("system"), // Action triggered from a SuperToast. // Note: Only used in JavaScript for now, but here for completeness. TOAST("toast"), // Action triggerred by pressing a SearchWidget button WIDGET("widget"), // VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING. _TEST1("_test_method_1"), _TEST2("_test_method_2"), ; private final String string; Method(final String string) { this.string = string; } @Override public String toString() { return string; } } /** * Holds session names. Intended for use with * Telemetry.startUISession() as the "sessionName" parameter. * * Please keep this list sorted. */ public enum Session { // Awesomescreen (including frecency search) is active. AWESOMESCREEN("awesomescreen.1"), // Used to tag experiments being run. EXPERIMENT("experiment.1"), // Started the very first time we believe the application has been launched. FIRSTRUN("firstrun.1"), // Awesomescreen frecency search is active. FRECENCY("frecency.1"), // Started when a user enters a given home panel. // Session name is dynamic, encoded as "homepanel.1:" HOME_PANEL("homepanel.1"), // Started when a Reader viewer becomes active in the foreground. // Note: Only used in JavaScript for now, but here for completeness. READER("reader.1"), // Started when the search activity launches. SEARCH_ACTIVITY("searchactivity.1"), // Settings activity is active. SETTINGS("settings.1"), // VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING. _TEST_STARTED_TWICE("_test_session_started_twice.1"), _TEST_STOPPED_TWICE("_test_session_stopped_twice.1"), ; private final String string; Session(final String string) { this.string = string; } @Override public String toString() { return string; } } /** * Holds reasons for stopping a session. Intended for use in * Telemetry.stopUISession() as the "reason" parameter. * * Please keep this list sorted. */ public enum Reason { // Changes were committed. COMMIT("commit"), // No reason is specified. NONE(null), // VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING. _TEST1("_test_reason_1"), _TEST2("_test_reason_2"), _TEST_IGNORED("_test_reason_ignored"), ; private final String string; Reason(final String string) { this.string = string; } @Override public String toString() { return string; } } }