Loading protos/launcher_atom.proto +10 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import "launcher_atom_extension.proto"; // // // ItemInfos // ItemInfos message ItemInfo { message ItemInfo { reserved 8; oneof Item { oneof Item { Application application = 1; Application application = 1; Task task = 2; Task task = 2; Loading @@ -42,7 +44,14 @@ message ItemInfo { optional ContainerInfo container_info = 7; optional ContainerInfo container_info = 7; // Stores the origin of the Item // Stores the origin of the Item optional Attribute attribute = 8; repeated Attribute item_attributes = 12; } message LauncherAttributes{ // Integer value of item attribute enum // (e.g. SUGGESTED_LABEL, ALL_APPS_SEARCH_RESULT_SETTING etc) repeated int32 item_attributes = 1; } } // Represents various launcher surface where items are placed. // Represents various launcher surface where items are placed. Loading quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +17 −12 Original line number Original line Diff line number Diff line Loading @@ -42,10 +42,12 @@ import androidx.slice.SliceItem; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherAppState; import com.android.launcher3.Utilities; import com.android.launcher3.Utilities; import com.android.launcher3.logger.LauncherAtom; import com.android.launcher3.logger.LauncherAtom; import com.android.launcher3.logger.LauncherAtom.Attribute; import com.android.launcher3.logger.LauncherAtom.ContainerInfo; import com.android.launcher3.logger.LauncherAtom.ContainerInfo; import com.android.launcher3.logger.LauncherAtom.FolderContainer.ParentContainerCase; import com.android.launcher3.logger.LauncherAtom.FolderContainer.ParentContainerCase; import com.android.launcher3.logger.LauncherAtom.FolderIcon; import com.android.launcher3.logger.LauncherAtom.FolderIcon; import com.android.launcher3.logger.LauncherAtom.FromState; import com.android.launcher3.logger.LauncherAtom.FromState; import com.android.launcher3.logger.LauncherAtom.LauncherAttributes; import com.android.launcher3.logger.LauncherAtom.ToState; import com.android.launcher3.logger.LauncherAtom.ToState; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer.SearchAttributes; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer.SearchAttributes; Loading Loading @@ -88,7 +90,6 @@ public class StatsLogCompatManager extends StatsLogManager { private static final int FOLDER_HIERARCHY_OFFSET = 100; private static final int FOLDER_HIERARCHY_OFFSET = 100; private static final int SEARCH_RESULT_HIERARCHY_OFFSET = 200; private static final int SEARCH_RESULT_HIERARCHY_OFFSET = 200; private static final int EXTENDED_CONTAINERS_HIERARCHY_OFFSET = 300; private static final int EXTENDED_CONTAINERS_HIERARCHY_OFFSET = 300; private static final int ATTRIBUTE_MULTIPLIER = 100; /** /** * Flags for converting SearchAttribute to integer value. * Flags for converting SearchAttribute to integer value. Loading Loading @@ -130,8 +131,7 @@ public class StatsLogCompatManager extends StatsLogManager { } } SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, LAUNCHER_WORKSPACE_SNAPSHOT.getId() /* event_id */, LAUNCHER_WORKSPACE_SNAPSHOT.getId() /* event_id */, info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER info.getItemCase().getNumber() /* target_id */, + info.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id */, instanceId.getId() /* instance_id */, 0 /* uid */, 0 /* uid */, getPackageName(info) /* package_name */, getPackageName(info) /* package_name */, Loading @@ -144,15 +144,22 @@ public class StatsLogCompatManager extends StatsLogManager { getParentPageId(info) /* page_id_parent */, getParentPageId(info) /* page_id_parent */, getHierarchy(info) /* hierarchy */, getHierarchy(info) /* hierarchy */, info.getIsWork() /* is_work_profile */, info.getIsWork() /* is_work_profile */, info.getAttribute().getNumber() /* origin */, 0 /* origin */, getCardinality(info) /* cardinality */, getCardinality(info) /* cardinality */, info.getWidget().getSpanX(), info.getWidget().getSpanX(), info.getWidget().getSpanY(), info.getWidget().getSpanY(), getFeatures(info), getFeatures(info), null /* attributes */ getAttributes(info) /* attributes */ ); ); } } private static byte[] getAttributes(LauncherAtom.ItemInfo itemInfo) { LauncherAttributes.Builder responseBuilder = LauncherAttributes.newBuilder(); itemInfo.getItemAttributesList().stream().map(Attribute::getNumber).forEach( responseBuilder::addItemAttributes); return responseBuilder.build().toByteArray(); } /** /** * Builds {@link StatsEvent} from {@link LauncherAtom.ItemInfo}. Used for pulled atom callback * Builds {@link StatsEvent} from {@link LauncherAtom.ItemInfo}. Used for pulled atom callback * implementation. * implementation. Loading @@ -162,8 +169,7 @@ public class StatsLogCompatManager extends StatsLogManager { return SysUiStatsLog.buildStatsEvent( return SysUiStatsLog.buildStatsEvent( SysUiStatsLog.LAUNCHER_LAYOUT_SNAPSHOT, // atom ID, SysUiStatsLog.LAUNCHER_LAYOUT_SNAPSHOT, // atom ID, LAUNCHER_WORKSPACE_SNAPSHOT.getId(), // event_id = 1; LAUNCHER_WORKSPACE_SNAPSHOT.getId(), // event_id = 1; info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER info.getItemCase().getNumber(), // item_id = 2; + info.getItemCase().getNumber(), // item_id = 2; instanceId == null ? 0 : instanceId.getId(), //instance_id = 3; instanceId == null ? 0 : instanceId.getId(), //instance_id = 3; 0, //uid = 4 [(is_uid) = true]; 0, //uid = 4 [(is_uid) = true]; getPackageName(info), // package_name = 5; getPackageName(info), // package_name = 5; Loading @@ -176,11 +182,11 @@ public class StatsLogCompatManager extends StatsLogManager { getParentPageId(info), //page_id_parent = 12 [default = -2]; getParentPageId(info), //page_id_parent = 12 [default = -2]; getHierarchy(info), // container_id = 13; getHierarchy(info), // container_id = 13; info.getIsWork(), // is_work_profile = 14; info.getIsWork(), // is_work_profile = 14; info.getAttribute().getNumber(), // attribute_id = 15; 0, // attribute_id = 15; getCardinality(info), // cardinality = 16; getCardinality(info), // cardinality = 16; info.getWidget().getSpanX(), // span_x = 17 [default = 1]; info.getWidget().getSpanX(), // span_x = 17 [default = 1]; info.getWidget().getSpanY(), // span_y = 18 [default = 1]; info.getWidget().getSpanY(), // span_y = 18 [default = 1]; null /* attributes */ getAttributes(info) /* attributes */ ); ); } } Loading Loading @@ -403,8 +409,7 @@ public class StatsLogCompatManager extends StatsLogManager { null /* launcher extensions, deprecated */, null /* launcher extensions, deprecated */, false /* quickstep_enabled, deprecated */, false /* quickstep_enabled, deprecated */, event.getId() /* event_id */, event.getId() /* event_id */, atomInfo.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER atomInfo.getItemCase().getNumber() /* target_id */, + atomInfo.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id TODO */, instanceId.getId() /* instance_id TODO */, 0 /* uid TODO */, 0 /* uid TODO */, getPackageName(atomInfo) /* package_name */, getPackageName(atomInfo) /* package_name */, Loading @@ -424,7 +429,7 @@ public class StatsLogCompatManager extends StatsLogManager { getCardinality(atomInfo) /* cardinality */, getCardinality(atomInfo) /* cardinality */, getFeatures(atomInfo) /* features */, getFeatures(atomInfo) /* features */, getSearchAttributes(atomInfo) /* searchAttributes */, getSearchAttributes(atomInfo) /* searchAttributes */, null /* attributes */ getAttributes(atomInfo) /* attributes */ ); ); } } } } Loading src/com/android/launcher3/model/data/FolderInfo.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -217,7 +217,7 @@ public class FolderInfo extends ItemInfo { return getDefaultItemInfoBuilder() return getDefaultItemInfoBuilder() .setFolderIcon(folderIcon) .setFolderIcon(folderIcon) .setRank(rank) .setRank(rank) .setAttribute(getLabelState().mLogAttribute) .addItemAttributes(getLabelState().mLogAttribute) .setContainerInfo(getContainerInfo()) .setContainerInfo(getContainerInfo()) .build(); .build(); } } Loading src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -288,7 +288,7 @@ public class LauncherAppWidgetInfo extends ItemInfo { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() return info.toBuilder() .setWidget(info.getWidget().toBuilder().setWidgetFeatures(widgetFeatures)) .setWidget(info.getWidget().toBuilder().setWidgetFeatures(widgetFeatures)) .setAttribute(getAttribute(sourceContainer)) .addItemAttributes(getAttribute(sourceContainer)) .build(); .build(); } } } } src/com/android/launcher3/widget/PendingAddWidgetInfo.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -70,7 +70,7 @@ public class PendingAddWidgetInfo extends PendingAddItemInfo { public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() return info.toBuilder() .setAttribute(LauncherAppWidgetInfo.getAttribute(sourceContainer)) .addItemAttributes(LauncherAppWidgetInfo.getAttribute(sourceContainer)) .build(); .build(); } } } } Loading
protos/launcher_atom.proto +10 −1 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import "launcher_atom_extension.proto"; // // // ItemInfos // ItemInfos message ItemInfo { message ItemInfo { reserved 8; oneof Item { oneof Item { Application application = 1; Application application = 1; Task task = 2; Task task = 2; Loading @@ -42,7 +44,14 @@ message ItemInfo { optional ContainerInfo container_info = 7; optional ContainerInfo container_info = 7; // Stores the origin of the Item // Stores the origin of the Item optional Attribute attribute = 8; repeated Attribute item_attributes = 12; } message LauncherAttributes{ // Integer value of item attribute enum // (e.g. SUGGESTED_LABEL, ALL_APPS_SEARCH_RESULT_SETTING etc) repeated int32 item_attributes = 1; } } // Represents various launcher surface where items are placed. // Represents various launcher surface where items are placed. Loading
quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +17 −12 Original line number Original line Diff line number Diff line Loading @@ -42,10 +42,12 @@ import androidx.slice.SliceItem; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherAppState; import com.android.launcher3.Utilities; import com.android.launcher3.Utilities; import com.android.launcher3.logger.LauncherAtom; import com.android.launcher3.logger.LauncherAtom; import com.android.launcher3.logger.LauncherAtom.Attribute; import com.android.launcher3.logger.LauncherAtom.ContainerInfo; import com.android.launcher3.logger.LauncherAtom.ContainerInfo; import com.android.launcher3.logger.LauncherAtom.FolderContainer.ParentContainerCase; import com.android.launcher3.logger.LauncherAtom.FolderContainer.ParentContainerCase; import com.android.launcher3.logger.LauncherAtom.FolderIcon; import com.android.launcher3.logger.LauncherAtom.FolderIcon; import com.android.launcher3.logger.LauncherAtom.FromState; import com.android.launcher3.logger.LauncherAtom.FromState; import com.android.launcher3.logger.LauncherAtom.LauncherAttributes; import com.android.launcher3.logger.LauncherAtom.ToState; import com.android.launcher3.logger.LauncherAtom.ToState; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer.SearchAttributes; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer.SearchAttributes; Loading Loading @@ -88,7 +90,6 @@ public class StatsLogCompatManager extends StatsLogManager { private static final int FOLDER_HIERARCHY_OFFSET = 100; private static final int FOLDER_HIERARCHY_OFFSET = 100; private static final int SEARCH_RESULT_HIERARCHY_OFFSET = 200; private static final int SEARCH_RESULT_HIERARCHY_OFFSET = 200; private static final int EXTENDED_CONTAINERS_HIERARCHY_OFFSET = 300; private static final int EXTENDED_CONTAINERS_HIERARCHY_OFFSET = 300; private static final int ATTRIBUTE_MULTIPLIER = 100; /** /** * Flags for converting SearchAttribute to integer value. * Flags for converting SearchAttribute to integer value. Loading Loading @@ -130,8 +131,7 @@ public class StatsLogCompatManager extends StatsLogManager { } } SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, LAUNCHER_WORKSPACE_SNAPSHOT.getId() /* event_id */, LAUNCHER_WORKSPACE_SNAPSHOT.getId() /* event_id */, info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER info.getItemCase().getNumber() /* target_id */, + info.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id */, instanceId.getId() /* instance_id */, 0 /* uid */, 0 /* uid */, getPackageName(info) /* package_name */, getPackageName(info) /* package_name */, Loading @@ -144,15 +144,22 @@ public class StatsLogCompatManager extends StatsLogManager { getParentPageId(info) /* page_id_parent */, getParentPageId(info) /* page_id_parent */, getHierarchy(info) /* hierarchy */, getHierarchy(info) /* hierarchy */, info.getIsWork() /* is_work_profile */, info.getIsWork() /* is_work_profile */, info.getAttribute().getNumber() /* origin */, 0 /* origin */, getCardinality(info) /* cardinality */, getCardinality(info) /* cardinality */, info.getWidget().getSpanX(), info.getWidget().getSpanX(), info.getWidget().getSpanY(), info.getWidget().getSpanY(), getFeatures(info), getFeatures(info), null /* attributes */ getAttributes(info) /* attributes */ ); ); } } private static byte[] getAttributes(LauncherAtom.ItemInfo itemInfo) { LauncherAttributes.Builder responseBuilder = LauncherAttributes.newBuilder(); itemInfo.getItemAttributesList().stream().map(Attribute::getNumber).forEach( responseBuilder::addItemAttributes); return responseBuilder.build().toByteArray(); } /** /** * Builds {@link StatsEvent} from {@link LauncherAtom.ItemInfo}. Used for pulled atom callback * Builds {@link StatsEvent} from {@link LauncherAtom.ItemInfo}. Used for pulled atom callback * implementation. * implementation. Loading @@ -162,8 +169,7 @@ public class StatsLogCompatManager extends StatsLogManager { return SysUiStatsLog.buildStatsEvent( return SysUiStatsLog.buildStatsEvent( SysUiStatsLog.LAUNCHER_LAYOUT_SNAPSHOT, // atom ID, SysUiStatsLog.LAUNCHER_LAYOUT_SNAPSHOT, // atom ID, LAUNCHER_WORKSPACE_SNAPSHOT.getId(), // event_id = 1; LAUNCHER_WORKSPACE_SNAPSHOT.getId(), // event_id = 1; info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER info.getItemCase().getNumber(), // item_id = 2; + info.getItemCase().getNumber(), // item_id = 2; instanceId == null ? 0 : instanceId.getId(), //instance_id = 3; instanceId == null ? 0 : instanceId.getId(), //instance_id = 3; 0, //uid = 4 [(is_uid) = true]; 0, //uid = 4 [(is_uid) = true]; getPackageName(info), // package_name = 5; getPackageName(info), // package_name = 5; Loading @@ -176,11 +182,11 @@ public class StatsLogCompatManager extends StatsLogManager { getParentPageId(info), //page_id_parent = 12 [default = -2]; getParentPageId(info), //page_id_parent = 12 [default = -2]; getHierarchy(info), // container_id = 13; getHierarchy(info), // container_id = 13; info.getIsWork(), // is_work_profile = 14; info.getIsWork(), // is_work_profile = 14; info.getAttribute().getNumber(), // attribute_id = 15; 0, // attribute_id = 15; getCardinality(info), // cardinality = 16; getCardinality(info), // cardinality = 16; info.getWidget().getSpanX(), // span_x = 17 [default = 1]; info.getWidget().getSpanX(), // span_x = 17 [default = 1]; info.getWidget().getSpanY(), // span_y = 18 [default = 1]; info.getWidget().getSpanY(), // span_y = 18 [default = 1]; null /* attributes */ getAttributes(info) /* attributes */ ); ); } } Loading Loading @@ -403,8 +409,7 @@ public class StatsLogCompatManager extends StatsLogManager { null /* launcher extensions, deprecated */, null /* launcher extensions, deprecated */, false /* quickstep_enabled, deprecated */, false /* quickstep_enabled, deprecated */, event.getId() /* event_id */, event.getId() /* event_id */, atomInfo.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER atomInfo.getItemCase().getNumber() /* target_id */, + atomInfo.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id TODO */, instanceId.getId() /* instance_id TODO */, 0 /* uid TODO */, 0 /* uid TODO */, getPackageName(atomInfo) /* package_name */, getPackageName(atomInfo) /* package_name */, Loading @@ -424,7 +429,7 @@ public class StatsLogCompatManager extends StatsLogManager { getCardinality(atomInfo) /* cardinality */, getCardinality(atomInfo) /* cardinality */, getFeatures(atomInfo) /* features */, getFeatures(atomInfo) /* features */, getSearchAttributes(atomInfo) /* searchAttributes */, getSearchAttributes(atomInfo) /* searchAttributes */, null /* attributes */ getAttributes(atomInfo) /* attributes */ ); ); } } } } Loading
src/com/android/launcher3/model/data/FolderInfo.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -217,7 +217,7 @@ public class FolderInfo extends ItemInfo { return getDefaultItemInfoBuilder() return getDefaultItemInfoBuilder() .setFolderIcon(folderIcon) .setFolderIcon(folderIcon) .setRank(rank) .setRank(rank) .setAttribute(getLabelState().mLogAttribute) .addItemAttributes(getLabelState().mLogAttribute) .setContainerInfo(getContainerInfo()) .setContainerInfo(getContainerInfo()) .build(); .build(); } } Loading
src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -288,7 +288,7 @@ public class LauncherAppWidgetInfo extends ItemInfo { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() return info.toBuilder() .setWidget(info.getWidget().toBuilder().setWidgetFeatures(widgetFeatures)) .setWidget(info.getWidget().toBuilder().setWidgetFeatures(widgetFeatures)) .setAttribute(getAttribute(sourceContainer)) .addItemAttributes(getAttribute(sourceContainer)) .build(); .build(); } } } }
src/com/android/launcher3/widget/PendingAddWidgetInfo.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -70,7 +70,7 @@ public class PendingAddWidgetInfo extends PendingAddItemInfo { public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() return info.toBuilder() .setAttribute(LauncherAppWidgetInfo.getAttribute(sourceContainer)) .addItemAttributes(LauncherAppWidgetInfo.getAttribute(sourceContainer)) .build(); .build(); } } } }