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

Commit 08843d8e authored by Hilary Huo's avatar Hilary Huo Committed by Android (Google) Code Review
Browse files

Merge "[settings-pixel-search] Add ww logging to track slice fetching timeout" into sc-dev

parents fa9f70be e8318959
Loading
Loading
Loading
Loading
+23 −7
Original line number Diff line number Diff line
@@ -151,6 +151,7 @@ public class StatsLogCompatManager extends StatsLogManager {
        private Optional<ToState> mToState = Optional.empty();
        private Optional<String> mEditText = Optional.empty();
        private SliceItem mSliceItem;
        private LauncherAtom.Slice mSlice;

        StatsCompatLogger(Context context) {
            mContext = context;
@@ -218,9 +219,21 @@ public class StatsLogCompatManager extends StatsLogManager {

        @Override
        public StatsLogger withSliceItem(@NonNull SliceItem sliceItem) {
            checkState(mItemInfo == DEFAULT_ITEM_INFO && mSlice == null,
                    "ItemInfo, Slice and SliceItem are mutual exclusive; cannot set more than one"
                            + " of them.");
            this.mSliceItem = checkNotNull(sliceItem, "expected valid sliceItem but received null");
            checkState(mItemInfo == DEFAULT_ITEM_INFO,
                    "ItemInfo and SliceItem are mutual exclusive; cannot log both.");
            return this;
        }

        @Override
        public StatsLogger withSlice(LauncherAtom.Slice slice) {
            checkState(mItemInfo == DEFAULT_ITEM_INFO && mSliceItem == null,
                    "ItemInfo, Slice and SliceItem are mutual exclusive; cannot set more than one"
                            + " of them.");
            checkNotNull(slice, "expected valid slice but received null");
            checkNotNull(slice.getUri(), "expected valid slice uri but received null");
            this.mSlice = slice;
            return this;
        }

@@ -231,13 +244,16 @@ public class StatsLogCompatManager extends StatsLogManager {
            }
            LauncherAppState appState = LauncherAppState.getInstanceNoCreate();

            if (mSliceItem != null) {
            if (mSlice == null && mSliceItem != null) {
                mSlice = LauncherAtom.Slice.newBuilder().setUri(
                        mSliceItem.getSlice().getUri().toString()).build();
            }

            if (mSlice != null) {
                Executors.MODEL_EXECUTOR.execute(
                        () -> {
                            LauncherAtom.ItemInfo.Builder itemInfoBuilder =
                                    LauncherAtom.ItemInfo.newBuilder().setSlice(
                                            LauncherAtom.Slice.newBuilder().setUri(
                                                    mSliceItem.getSlice().getUri().toString()));
                                    LauncherAtom.ItemInfo.newBuilder().setSlice(mSlice);
                            mContainerInfo.ifPresent(itemInfoBuilder::setContainerInfo);
                            write(event, applyOverwrites(itemInfoBuilder.build()));
                        });
+8 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import androidx.annotation.Nullable;
import androidx.slice.SliceItem;

import com.android.launcher3.R;
import com.android.launcher3.logger.LauncherAtom;
import com.android.launcher3.logger.LauncherAtom.ContainerInfo;
import com.android.launcher3.logger.LauncherAtom.FromState;
import com.android.launcher3.logger.LauncherAtom.ToState;
@@ -599,6 +600,13 @@ public class StatsLogManager implements ResourceBasedOverride {
            return this;
        }

        /**
         * Sets logging fields from provided {@link LauncherAtom.Slice}.
         */
        default StatsLogger withSlice(LauncherAtom.Slice slice) {
            return this;
        }

        /**
         * Builds the final message and logs it as {@link EventEnum}.
         */