Refactor UserEventLogging, Add predictedRank, replace Bundle with Proto

b/26494415
- Removed bundle object that became redundant now that we have LauncherEvent proto
- Combined Stats and UserEventLogger as they are effectively doing same thing
- Removed parent field inside Target
- added predictedRank target inside Target

b/27967359
- make com.android.launcher3.action.LAUNCH broadcast explicit
Later CL: finish packageName/intent/componentHash/predictedRank fields

Change-Id: I441fb46c834f73e58a4d2324e8da7971e8713ec8
diff --git a/protos/launcher_log.proto b/protos/launcher_log.proto
index a7b6429..eae02ca 100644
--- a/protos/launcher_log.proto
+++ b/protos/launcher_log.proto
@@ -32,59 +32,66 @@
 
   // For container type and item type
   // Used mainly for ContainerType.FOLDER, ItemType.*
-  optional Target parent = 2;
-  optional int32 page_index = 3;
-  optional int32 rank = 4;
-  optional int32 grid_x = 5;
-  optional int32 grid_y = 6;
+  optional int32 page_index = 2;
+  optional int32 rank = 3;
+  optional int32 grid_x = 4;
+  optional int32 grid_y = 5;
 
   // For container types only
-  optional ContainerType container_type = 7;
-  optional int32 cardinality = 8;
+  optional ContainerType container_type = 6;
+  optional int32 cardinality = 7;
 
   // For control types only
-  optional ControlType control_type = 9;
+  optional ControlType control_type = 8;
 
   // For item types only
-  optional ItemType item_type = 10;
-  optional int32 package_name_hash = 11;
-  optional int32 component_hash = 12;      // Used for ItemType.WIDGET
-  optional int32 intent_hash = 13;         // Used for ItemType.SHORTCUT
-  optional int32 span_x = 14 [default = 1];// Used for ItemType.WIDGET
-  optional int32 span_y = 15 [default = 1];// Used for ItemType.WIDGET
+  optional ItemType item_type = 9;
+  optional int32 package_name_hash = 10;
+  optional int32 component_hash = 11;      // Used for ItemType.WIDGET
+  optional int32 intent_hash = 12;         // Used for ItemType.SHORTCUT
+  optional int32 span_x = 13 [default = 1];// Used for ItemType.WIDGET
+  optional int32 span_y = 14 [default = 1];// Used for ItemType.WIDGET
+  optional int32 predictedRank = 15;
 }
 
+// Used to define what type of item a Target would represent.
 enum ItemType {
-  APP_ICON = 0;
-  SHORTCUT = 1;
-  WIDGET = 2;
-  FOLDER_ICON = 3;
+  DEFAULT_ITEMTYPE = 0;
+  APP_ICON = 1;
+  SHORTCUT = 2;
+  WIDGET = 3;
+  FOLDER_ICON = 4;
 }
 
+// Used to define what type of container a Target would represent.
 enum ContainerType {
-  WORKSPACE = 0;
-  HOTSEAT = 1;
-  FOLDER = 2;
-  ALLAPPS = 3;
-  WIDGETS = 4;
-  OVERVIEW = 5;
-  PREDICTION = 6;
-  SEARCHRESULT = 7;
+  DEFAULT_CONTAINERTYPE = 0;
+  WORKSPACE = 1;
+  HOTSEAT = 2;
+  FOLDER = 3;
+  ALLAPPS = 4;
+  WIDGETS = 5;
+  OVERVIEW = 6;
+  PREDICTION = 7;
+  SEARCHRESULT = 8;
 }
 
+// Used to define what type of control a Target would represent.
 enum ControlType {
-  ALL_APPS_BUTTON = 0;
-  WIDGETS_BUTTON = 1;
-  WALLPAPER_BUTTON = 2;
-  SETTINGS_BUTTON = 3;
-  REMOVE_TARGET = 4;
-  UNINSTALL_TARGET = 5;
-  APPINFO_TARGET = 6;
-  RESIZE_HANDLE = 7;
-  FAST_SCROLL_HANDLE = 8;
+  DEFAULT_CONTROLTYPE = 0;
+  ALL_APPS_BUTTON = 1;
+  WIDGETS_BUTTON = 2;
+  WALLPAPER_BUTTON = 3;
+  SETTINGS_BUTTON = 4;
+  REMOVE_TARGET = 5;
+  UNINSTALL_TARGET = 6;
+  APPINFO_TARGET = 7;
+  RESIZE_HANDLE = 8;
+  VERTICAL_SCROLL = 9;
   // HOME, BACK, GO_TO_PLAYSTORE
 }
 
+// Used to define the action component of the LauncherEvent.
 message Action {
   enum Type {
     TOUCH = 0;
@@ -113,10 +120,10 @@
   required Action action = 1;
 
   // List of targets that touch actions can be operated on.
-  optional Target src_target = 2;
-  optional Target dest_target = 3;
+  repeated Target src_target = 2;
+  repeated Target dest_target = 3;
 
   optional int64 action_duration_millis = 4;
   optional int64 elapsed_container_millis = 5;
   optional int64 elapsed_session_millis = 6;
-}
+}
\ No newline at end of file