Merge "Migrate launcher home settings button tap/longpress logging to WW" into ub-launcher3-rvc-dev
This commit is contained in:
commit
2911c56a80
|
@ -65,10 +65,10 @@ public class StatsLogCompatManager extends StatsLogManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs a {@link LauncherEvent}.
|
* Logs a {@link EventEnum}.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void log(LauncherEvent event) {
|
public void log(EventEnum event) {
|
||||||
log(event, DEFAULT_INSTANCE_ID, LauncherAtom.ItemInfo.getDefaultInstance());
|
log(event, DEFAULT_INSTANCE_ID, LauncherAtom.ItemInfo.getDefaultInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ public class StatsLogCompatManager extends StatsLogManager {
|
||||||
* Logs an event and accompanying {@link InstanceId}.
|
* Logs an event and accompanying {@link InstanceId}.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void log(LauncherEvent event, InstanceId instanceId) {
|
public void log(EventEnum event, InstanceId instanceId) {
|
||||||
log(event, instanceId, LauncherAtom.ItemInfo.getDefaultInstance());
|
log(event, instanceId, LauncherAtom.ItemInfo.getDefaultInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ public class StatsLogCompatManager extends StatsLogManager {
|
||||||
* Logs an event and accompanying {@link ItemInfo}.
|
* Logs an event and accompanying {@link ItemInfo}.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void log(LauncherEvent event, @Nullable LauncherAtom.ItemInfo info) {
|
public void log(EventEnum event, @Nullable LauncherAtom.ItemInfo info) {
|
||||||
log(event, DEFAULT_INSTANCE_ID, info);
|
log(event, DEFAULT_INSTANCE_ID, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ public class StatsLogCompatManager extends StatsLogManager {
|
||||||
* Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}.
|
* Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void log(LauncherEvent event, InstanceId instanceId,
|
public void log(EventEnum event, InstanceId instanceId,
|
||||||
@Nullable LauncherAtom.ItemInfo info) {
|
@Nullable LauncherAtom.ItemInfo info) {
|
||||||
logInternal(event, instanceId, info,
|
logInternal(event, instanceId, info,
|
||||||
LAUNCHER_UICHANGED__DST_STATE__HOME,
|
LAUNCHER_UICHANGED__DST_STATE__HOME,
|
||||||
|
@ -102,14 +102,17 @@ public class StatsLogCompatManager extends StatsLogManager {
|
||||||
/**
|
/**
|
||||||
* Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}.
|
* Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}.
|
||||||
*/
|
*/
|
||||||
private void logInternal(LauncherEvent event, InstanceId instanceId,
|
private void logInternal(EventEnum event, InstanceId instanceId,
|
||||||
@Nullable LauncherAtom.ItemInfo info, int startState, int endState) {
|
@Nullable LauncherAtom.ItemInfo info, int startState, int endState) {
|
||||||
info = info == null ? LauncherAtom.ItemInfo.getDefaultInstance() : info;
|
info = info == null ? LauncherAtom.ItemInfo.getDefaultInstance() : info;
|
||||||
|
|
||||||
if (IS_VERBOSE) {
|
if (IS_VERBOSE) {
|
||||||
|
String name = (event instanceof LauncherEvent) ? ((LauncherEvent) event).name() :
|
||||||
|
event.getId() + "";
|
||||||
|
|
||||||
Log.d(TAG, instanceId == DEFAULT_INSTANCE_ID
|
Log.d(TAG, instanceId == DEFAULT_INSTANCE_ID
|
||||||
? String.format("\n%s\n%s", event.name(), info)
|
? String.format("\n%s\n%s", name, info)
|
||||||
: String.format("%s(InstanceId:%s)\n%s", event.name(), instanceId, info));
|
: String.format("%s(InstanceId:%s)\n%s", name, instanceId, info));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Utilities.ATLEAST_R) {
|
if (!Utilities.ATLEAST_R) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ import com.android.launcher3.util.ResourceBasedOverride;
|
||||||
*/
|
*/
|
||||||
public class StatsLogManager implements ResourceBasedOverride {
|
public class StatsLogManager implements ResourceBasedOverride {
|
||||||
|
|
||||||
interface EventEnum {
|
public interface EventEnum {
|
||||||
int getId();
|
int getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,6 +63,18 @@ public class StatsLogManager implements ResourceBasedOverride {
|
||||||
+ "new/same value.")
|
+ "new/same value.")
|
||||||
LAUNCHER_FOLDER_LABEL_UPDATED(460),
|
LAUNCHER_FOLDER_LABEL_UPDATED(460),
|
||||||
|
|
||||||
|
@UiEvent(doc = "User long pressed on the workspace empty space.")
|
||||||
|
LAUNCHER_WORKSPACE_LONGPRESS(461),
|
||||||
|
|
||||||
|
@UiEvent(doc = "User tapped or long pressed on a wallpaper icon inside launcher settings.")
|
||||||
|
LAUNCHER_WALLPAPER_BUTTON_TAP_OR_LONGPRESS(462),
|
||||||
|
|
||||||
|
@UiEvent(doc = "User tapped or long pressed on settings icon inside launcher settings.")
|
||||||
|
LAUNCHER_SETTINGS_BUTTON_TAP_OR_LONGPRESS(463),
|
||||||
|
|
||||||
|
@UiEvent(doc = "User tapped or long pressed on widget tray icon inside launcher settings.")
|
||||||
|
LAUNCHER_WIDGETSTRAY_BUTTON_TAP_OR_LONGPRESS(464),
|
||||||
|
|
||||||
@UiEvent(doc = "A dragged item is dropped on 'Remove' button in the target bar")
|
@UiEvent(doc = "A dragged item is dropped on 'Remove' button in the target bar")
|
||||||
LAUNCHER_ITEM_DROPPED_ON_REMOVE(465),
|
LAUNCHER_ITEM_DROPPED_ON_REMOVE(465),
|
||||||
|
|
||||||
|
@ -113,27 +125,27 @@ public class StatsLogManager implements ResourceBasedOverride {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs a {@link LauncherEvent}.
|
* Logs a {@link EventEnum}.
|
||||||
*/
|
*/
|
||||||
public void log(LauncherEvent event) {
|
public void log(EventEnum event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs an event and accompanying {@link InstanceId}.
|
* Logs an event and accompanying {@link InstanceId}.
|
||||||
*/
|
*/
|
||||||
public void log(LauncherEvent event, InstanceId instanceId) {
|
public void log(EventEnum event, InstanceId instanceId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs an event and accompanying {@link ItemInfo}.
|
* Logs an event and accompanying {@link ItemInfo}.
|
||||||
*/
|
*/
|
||||||
public void log(LauncherEvent event, @Nullable ItemInfo info) {
|
public void log(EventEnum event, @Nullable ItemInfo itemInfo) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs an event and accompanying {@link InstanceId} and {@link ItemInfo}.
|
* Logs an event and accompanying {@link InstanceId} and {@link ItemInfo}.
|
||||||
*/
|
*/
|
||||||
public void log(LauncherEvent event, InstanceId instanceId, @Nullable ItemInfo info) {
|
public void log(EventEnum event, InstanceId instanceId, @Nullable ItemInfo itemInfo) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_POINTER_UP;
|
||||||
import static android.view.MotionEvent.ACTION_UP;
|
import static android.view.MotionEvent.ACTION_UP;
|
||||||
|
|
||||||
import static com.android.launcher3.LauncherState.NORMAL;
|
import static com.android.launcher3.LauncherState.NORMAL;
|
||||||
|
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WORKSPACE_LONGPRESS;
|
||||||
|
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
@ -41,8 +42,6 @@ import com.android.launcher3.dragndrop.DragLayer;
|
||||||
import com.android.launcher3.testing.TestLogging;
|
import com.android.launcher3.testing.TestLogging;
|
||||||
import com.android.launcher3.testing.TestProtocol;
|
import com.android.launcher3.testing.TestProtocol;
|
||||||
import com.android.launcher3.views.OptionsPopupView;
|
import com.android.launcher3.views.OptionsPopupView;
|
||||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
|
|
||||||
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper class to handle touch on empty space in workspace and show options popup on long press
|
* Helper class to handle touch on empty space in workspace and show options popup on long press
|
||||||
|
@ -175,9 +174,7 @@ public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListe
|
||||||
|
|
||||||
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
|
mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
|
||||||
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
|
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
|
||||||
mLauncher.getUserEventDispatcher().logActionOnContainer(Action.Touch.LONGPRESS,
|
mLauncher.getStatsLogManager().log(LAUNCHER_WORKSPACE_LONGPRESS);
|
||||||
Action.Direction.NONE, ContainerType.WORKSPACE,
|
|
||||||
mWorkspace.getCurrentPage());
|
|
||||||
OptionsPopupView.showDefaultOptions(mLauncher, mTouchDownPoint.x, mTouchDownPoint.y);
|
OptionsPopupView.showDefaultOptions(mLauncher, mTouchDownPoint.x, mTouchDownPoint.y);
|
||||||
} else {
|
} else {
|
||||||
cancelLongPress();
|
cancelLongPress();
|
||||||
|
|
|
@ -17,6 +17,9 @@ package com.android.launcher3.views;
|
||||||
|
|
||||||
import static com.android.launcher3.Utilities.EXTRA_WALLPAPER_FLAVOR;
|
import static com.android.launcher3.Utilities.EXTRA_WALLPAPER_FLAVOR;
|
||||||
import static com.android.launcher3.Utilities.EXTRA_WALLPAPER_OFFSET;
|
import static com.android.launcher3.Utilities.EXTRA_WALLPAPER_OFFSET;
|
||||||
|
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SETTINGS_BUTTON_TAP_OR_LONGPRESS;
|
||||||
|
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WALLPAPER_BUTTON_TAP_OR_LONGPRESS;
|
||||||
|
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGETSTRAY_BUTTON_TAP_OR_LONGPRESS;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -37,13 +40,12 @@ import androidx.annotation.VisibleForTesting;
|
||||||
import com.android.launcher3.Launcher;
|
import com.android.launcher3.Launcher;
|
||||||
import com.android.launcher3.R;
|
import com.android.launcher3.R;
|
||||||
import com.android.launcher3.Utilities;
|
import com.android.launcher3.Utilities;
|
||||||
|
import com.android.launcher3.logging.StatsLogManager.EventEnum;
|
||||||
import com.android.launcher3.model.WidgetsModel;
|
import com.android.launcher3.model.WidgetsModel;
|
||||||
import com.android.launcher3.popup.ArrowPopup;
|
import com.android.launcher3.popup.ArrowPopup;
|
||||||
import com.android.launcher3.shortcuts.DeepShortcutView;
|
import com.android.launcher3.shortcuts.DeepShortcutView;
|
||||||
import com.android.launcher3.testing.TestLogging;
|
import com.android.launcher3.testing.TestLogging;
|
||||||
import com.android.launcher3.testing.TestProtocol;
|
import com.android.launcher3.testing.TestProtocol;
|
||||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
|
|
||||||
import com.android.launcher3.userevent.nano.LauncherLogProto.ControlType;
|
|
||||||
import com.android.launcher3.widget.WidgetsFullSheet;
|
import com.android.launcher3.widget.WidgetsFullSheet;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -68,21 +70,21 @@ public class OptionsPopupView extends ArrowPopup
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
handleViewClick(view, Action.Touch.TAP);
|
handleViewClick(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onLongClick(View view) {
|
public boolean onLongClick(View view) {
|
||||||
return handleViewClick(view, Action.Touch.LONGPRESS);
|
return handleViewClick(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean handleViewClick(View view, int action) {
|
private boolean handleViewClick(View view) {
|
||||||
OptionItem item = mItemMap.get(view);
|
OptionItem item = mItemMap.get(view);
|
||||||
if (item == null) {
|
if (item == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (item.mControlTypeForLog > 0) {
|
if (item.mEventId.getId() > 0) {
|
||||||
logTap(action, item.mControlTypeForLog);
|
mLauncher.getStatsLogManager().log(item.mEventId);
|
||||||
}
|
}
|
||||||
if (item.mClickListener.onLongClick(view)) {
|
if (item.mClickListener.onLongClick(view)) {
|
||||||
close(true);
|
close(true);
|
||||||
|
@ -91,10 +93,6 @@ public class OptionsPopupView extends ArrowPopup
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void logTap(int action, int controlType) {
|
|
||||||
mLauncher.getUserEventDispatcher().logActionOnControl(action, controlType);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onControllerInterceptTouchEvent(MotionEvent ev) {
|
public boolean onControllerInterceptTouchEvent(MotionEvent ev) {
|
||||||
if (ev.getAction() != MotionEvent.ACTION_DOWN) {
|
if (ev.getAction() != MotionEvent.ACTION_DOWN) {
|
||||||
|
@ -159,13 +157,16 @@ public class OptionsPopupView extends ArrowPopup
|
||||||
int resDrawable = Utilities.existsStyleWallpapers(launcher) ?
|
int resDrawable = Utilities.existsStyleWallpapers(launcher) ?
|
||||||
R.drawable.ic_palette : R.drawable.ic_wallpaper;
|
R.drawable.ic_palette : R.drawable.ic_wallpaper;
|
||||||
options.add(new OptionItem(resString, resDrawable,
|
options.add(new OptionItem(resString, resDrawable,
|
||||||
ControlType.WALLPAPER_BUTTON, OptionsPopupView::startWallpaperPicker));
|
LAUNCHER_WALLPAPER_BUTTON_TAP_OR_LONGPRESS,
|
||||||
|
OptionsPopupView::startWallpaperPicker));
|
||||||
if (!WidgetsModel.GO_DISABLE_WIDGETS) {
|
if (!WidgetsModel.GO_DISABLE_WIDGETS) {
|
||||||
options.add(new OptionItem(R.string.widget_button_text, R.drawable.ic_widget,
|
options.add(new OptionItem(R.string.widget_button_text, R.drawable.ic_widget,
|
||||||
ControlType.WIDGETS_BUTTON, OptionsPopupView::onWidgetsClicked));
|
LAUNCHER_WIDGETSTRAY_BUTTON_TAP_OR_LONGPRESS,
|
||||||
|
OptionsPopupView::onWidgetsClicked));
|
||||||
}
|
}
|
||||||
options.add(new OptionItem(R.string.settings_button_text, R.drawable.ic_setting,
|
options.add(new OptionItem(R.string.settings_button_text, R.drawable.ic_setting,
|
||||||
ControlType.SETTINGS_BUTTON, OptionsPopupView::startSettings));
|
LAUNCHER_SETTINGS_BUTTON_TAP_OR_LONGPRESS,
|
||||||
|
OptionsPopupView::startSettings));
|
||||||
|
|
||||||
show(launcher, target, options);
|
show(launcher, target, options);
|
||||||
}
|
}
|
||||||
|
@ -224,14 +225,14 @@ public class OptionsPopupView extends ArrowPopup
|
||||||
|
|
||||||
private final int mLabelRes;
|
private final int mLabelRes;
|
||||||
private final int mIconRes;
|
private final int mIconRes;
|
||||||
private final int mControlTypeForLog;
|
private final EventEnum mEventId;
|
||||||
private final OnLongClickListener mClickListener;
|
private final OnLongClickListener mClickListener;
|
||||||
|
|
||||||
public OptionItem(int labelRes, int iconRes, int controlTypeForLog,
|
public OptionItem(int labelRes, int iconRes, EventEnum eventId,
|
||||||
OnLongClickListener clickListener) {
|
OnLongClickListener clickListener) {
|
||||||
mLabelRes = labelRes;
|
mLabelRes = labelRes;
|
||||||
mIconRes = iconRes;
|
mIconRes = iconRes;
|
||||||
mControlTypeForLog = controlTypeForLog;
|
mEventId = eventId;
|
||||||
mClickListener = clickListener;
|
mClickListener = clickListener;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue