Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6dd3fc94 authored by Thiru Ramasamy's avatar Thiru Ramasamy Committed by Android (Google) Code Review
Browse files

Merge "Add support for logging multiple attributes per item." into tm-dev

parents a4babdb6 d7af3cc7
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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.
+17 −12
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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.
@@ -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 */,
@@ -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.
@@ -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;
@@ -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 */
        );
        );
    }
    }


@@ -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 */,
@@ -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 */
            );
            );
        }
        }
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -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();
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -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();
    }
    }
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -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();
    }
    }
}
}