Merge "Adds westworld logging events for drag and drop on target bar buttons." into ub-launcher3-rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0276b7e2a7
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.launcher3;
|
||||
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_DROPPED_ON_CANCEL;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_DROPPED_ON_REMOVE;
|
||||
import static com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch.TAP;
|
||||
import static com.android.launcher3.userevent.nano.LauncherLogProto.ControlType.UNDO;
|
||||
|
||||
@@ -27,6 +29,7 @@ import android.view.View;
|
||||
import com.android.launcher3.accessibility.LauncherAccessibilityDelegate;
|
||||
import com.android.launcher3.dragndrop.DragOptions;
|
||||
import com.android.launcher3.logging.LoggerUtils;
|
||||
import com.android.launcher3.logging.StatsLogManager;
|
||||
import com.android.launcher3.model.ModelWriter;
|
||||
import com.android.launcher3.model.data.FolderInfo;
|
||||
import com.android.launcher3.model.data.ItemInfo;
|
||||
@@ -38,6 +41,8 @@ import com.android.launcher3.views.Snackbar;
|
||||
|
||||
public class DeleteDropTarget extends ButtonDropTarget {
|
||||
|
||||
private final StatsLogManager mStatsLogManager;
|
||||
|
||||
private int mControlType = ControlType.DEFAULT_CONTROLTYPE;
|
||||
|
||||
public DeleteDropTarget(Context context, AttributeSet attrs) {
|
||||
@@ -46,6 +51,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
|
||||
public DeleteDropTarget(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
this.mStatsLogManager = StatsLogManager.newInstance(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -120,6 +126,11 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
d.dragInfo.container = NO_ID;
|
||||
}
|
||||
super.onDrop(d, options);
|
||||
mStatsLogManager.log(
|
||||
mControlType == ControlType.REMOVE_TARGET
|
||||
? LAUNCHER_ITEM_DROPPED_ON_REMOVE
|
||||
: LAUNCHER_ITEM_DROPPED_ON_CANCEL,
|
||||
d.logInstanceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,6 +7,10 @@ import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP
|
||||
import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.DISMISS_PREDICTION;
|
||||
import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.RECONFIGURE;
|
||||
import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.UNINSTALL;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_DROPPED_ON_DONT_SUGGEST;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_DROPPED_ON_UNINSTALL;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_UNINSTALL_CANCELLED;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_UNINSTALL_COMPLETED;
|
||||
import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_SYSTEM_MASK;
|
||||
import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_SYSTEM_NO;
|
||||
|
||||
@@ -34,6 +38,7 @@ import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.dragndrop.DragOptions;
|
||||
import com.android.launcher3.logging.FileLog;
|
||||
import com.android.launcher3.logging.LoggerUtils;
|
||||
import com.android.launcher3.logging.StatsLogManager;
|
||||
import com.android.launcher3.model.AppLaunchTracker;
|
||||
import com.android.launcher3.model.data.ItemInfo;
|
||||
import com.android.launcher3.model.data.ItemInfoWithIcon;
|
||||
@@ -58,7 +63,7 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList
|
||||
|
||||
private static final long CACHE_EXPIRE_TIMEOUT = 5000;
|
||||
private final ArrayMap<UserHandle, Boolean> mUninstallDisabledCache = new ArrayMap<>(1);
|
||||
|
||||
private final StatsLogManager mStatsLogManager;
|
||||
private final Alarm mCacheExpireAlarm;
|
||||
private boolean mHadPendingAlarm;
|
||||
|
||||
@@ -69,8 +74,8 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList
|
||||
|
||||
public SecondaryDropTarget(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
|
||||
mCacheExpireAlarm = new Alarm();
|
||||
mStatsLogManager = StatsLogManager.newInstance(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -214,6 +219,11 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList
|
||||
// Defer onComplete
|
||||
d.dragSource = new DeferredOnComplete(d.dragSource, getContext());
|
||||
super.onDrop(d, options);
|
||||
if (mCurrentAccessibilityAction == UNINSTALL) {
|
||||
mStatsLogManager.log(LAUNCHER_ITEM_DROPPED_ON_UNINSTALL, d.logInstanceId);
|
||||
} else if (mCurrentAccessibilityAction == DISMISS_PREDICTION) {
|
||||
mStatsLogManager.log(LAUNCHER_ITEM_DROPPED_ON_DONT_SUGGEST, d.logInstanceId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -338,8 +348,10 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList
|
||||
mDragObject.dragInfo.user, PackageManager.MATCH_UNINSTALLED_PACKAGES) == null) {
|
||||
mDragObject.dragSource = mOriginal;
|
||||
mOriginal.onDropCompleted(SecondaryDropTarget.this, mDragObject, true);
|
||||
mStatsLogManager.log(LAUNCHER_ITEM_UNINSTALL_COMPLETED, mDragObject.logInstanceId);
|
||||
} else {
|
||||
sendFailure();
|
||||
mStatsLogManager.log(LAUNCHER_ITEM_UNINSTALL_CANCELLED, mDragObject.logInstanceId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,20 +16,24 @@
|
||||
package com.android.launcher3.logging;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.logger.LauncherAtom;
|
||||
import com.android.launcher3.logger.LauncherAtom.ItemInfo;
|
||||
import com.android.launcher3.logging.StatsLogUtils.LogStateProvider;
|
||||
import com.android.launcher3.util.ResourceBasedOverride;
|
||||
|
||||
/**
|
||||
* Handles the user event logging in R+.
|
||||
* All of the event id is defined here.
|
||||
* All of the event ids are defined here.
|
||||
* Most of the methods are dummy methods for Launcher3
|
||||
* Actual call happens only for Launcher variant that implements QuickStep.
|
||||
*/
|
||||
public class StatsLogManager implements ResourceBasedOverride {
|
||||
|
||||
private static final String TAG = "StatsLogManager";
|
||||
|
||||
interface EventEnum {
|
||||
int getId();
|
||||
}
|
||||
@@ -37,19 +41,46 @@ public class StatsLogManager implements ResourceBasedOverride {
|
||||
public enum LauncherEvent implements EventEnum {
|
||||
@LauncherUiEvent(doc = "App launched from workspace, hotseat or folder in launcher")
|
||||
LAUNCHER_APP_LAUNCH_TAP(338),
|
||||
|
||||
@LauncherUiEvent(doc = "Task launched from overview using TAP")
|
||||
LAUNCHER_TASK_LAUNCH_TAP(339),
|
||||
|
||||
@LauncherUiEvent(doc = "Task launched from overview using SWIPE DOWN")
|
||||
LAUNCHER_TASK_LAUNCH_SWIPE_DOWN(340),
|
||||
|
||||
@LauncherUiEvent(doc = "TASK dismissed from overview using SWIPE UP")
|
||||
LAUNCHER_TASK_DISMISS_SWIPE_UP(341),
|
||||
|
||||
@LauncherUiEvent(doc = "User dragged a launcher item")
|
||||
LAUNCHER_ITEM_DRAG_STARTED(383),
|
||||
|
||||
@LauncherUiEvent(doc = "A dragged launcher item is successfully dropped")
|
||||
LAUNCHER_ITEM_DROP_COMPLETED(385),
|
||||
|
||||
@LauncherUiEvent(doc = "A dragged launcher item is successfully dropped on another item "
|
||||
+ "resulting in new folder creation")
|
||||
LAUNCHER_ITEM_DROP_FOLDER_CREATED(386);
|
||||
+ "resulting in a new folder creation")
|
||||
LAUNCHER_ITEM_DROP_FOLDER_CREATED(386),
|
||||
|
||||
@LauncherUiEvent(doc = "A dragged item is dropped on 'Remove' button in the target bar")
|
||||
LAUNCHER_ITEM_DROPPED_ON_REMOVE(465),
|
||||
|
||||
@LauncherUiEvent(doc = "A dragged item is dropped on 'Cancel' button in the target bar")
|
||||
LAUNCHER_ITEM_DROPPED_ON_CANCEL(466),
|
||||
|
||||
@LauncherUiEvent(doc = "A predicted item is dragged and dropped on 'Don't suggest app'"
|
||||
+ " button in the target bar")
|
||||
LAUNCHER_ITEM_DROPPED_ON_DONT_SUGGEST(467),
|
||||
|
||||
@LauncherUiEvent(doc = "A dragged item is dropped on 'Uninstall' button in target bar")
|
||||
LAUNCHER_ITEM_DROPPED_ON_UNINSTALL(468),
|
||||
|
||||
@LauncherUiEvent(doc = "User completed uninstalling the package after dropping on "
|
||||
+ "the icon onto 'Uninstall' button in the target bar")
|
||||
LAUNCHER_ITEM_UNINSTALL_COMPLETED(469),
|
||||
|
||||
@LauncherUiEvent(doc = "User cancelled uninstalling the package after dropping on "
|
||||
+ "the icon onto 'Uninstall' button in the target bar")
|
||||
LAUNCHER_ITEM_UNINSTALL_CANCELLED(470);
|
||||
// ADD MORE
|
||||
|
||||
private final int mId;
|
||||
@@ -77,6 +108,14 @@ public class StatsLogManager implements ResourceBasedOverride {
|
||||
return mgr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an event and accompanying {@link ItemInfo}
|
||||
*/
|
||||
public void log(LauncherEvent event, InstanceId instanceId) {
|
||||
Log.d(TAG, String.format("%s(InstanceId:%s)", event.name(), instanceId));
|
||||
// Call StatsLog method
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs an event and accompanying {@link LauncherAtom.ItemInfo}
|
||||
*/
|
||||
|
||||
@@ -303,7 +303,7 @@ public class ItemInfo {
|
||||
break;
|
||||
}
|
||||
itemBuilder.setContainerInfo(ContainerInfo.newBuilder().setFolder(folderBuilder));
|
||||
} else {
|
||||
} else if (getContainerInfo().getContainerCase().getNumber() > 0) {
|
||||
itemBuilder.setContainerInfo(getContainerInfo());
|
||||
}
|
||||
return itemBuilder.build();
|
||||
|
||||
Reference in New Issue
Block a user