[settings-pixel-search] Add ww logging to track slice fetching timeout

Test: https://paste.googleplex.com/6310936320147456
Bug: 191297465
Change-Id: I0a4a65295e7290b55dccdb63830ff60c6838fbb2
This commit is contained in:
Hilary Huo 2021-06-22 13:03:44 -07:00
parent d27f127b3a
commit e83189593a
2 changed files with 31 additions and 7 deletions

View File

@ -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;
@ -193,7 +194,7 @@ public class StatsLogCompatManager extends StatsLogManager {
@Override
public StatsLogger withContainerInfo(ContainerInfo containerInfo) {
checkState(mItemInfo == DEFAULT_ITEM_INFO,
"ItemInfo and ContainerInfo are mutual exclusive; cannot log both.");
"ItemInfo and ContainerInfo are mutual exclusive; cannot log both.");
this.mContainerInfo = Optional.of(containerInfo);
return this;
}
@ -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()));
});

View File

@ -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}.
*/