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

Commit 2911c56a authored by Hyunyoung Song's avatar Hyunyoung Song Committed by Android (Google) Code Review
Browse files

Merge "Migrate launcher home settings button tap/longpress logging to WW" into ub-launcher3-rvc-dev

parents 6d9e0c4a b117a922
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -65,10 +65,10 @@ public class StatsLogCompatManager extends StatsLogManager {
    }

    /**
     * Logs a {@link LauncherEvent}.
     * Logs a {@link EventEnum}.
     */
    @Override
    public void log(LauncherEvent event) {
    public void log(EventEnum event) {
        log(event, DEFAULT_INSTANCE_ID, LauncherAtom.ItemInfo.getDefaultInstance());
    }

@@ -76,7 +76,7 @@ public class StatsLogCompatManager extends StatsLogManager {
     * Logs an event and accompanying {@link InstanceId}.
     */
    @Override
    public void log(LauncherEvent event, InstanceId instanceId) {
    public void log(EventEnum event, InstanceId instanceId) {
        log(event, instanceId, LauncherAtom.ItemInfo.getDefaultInstance());
    }

@@ -84,7 +84,7 @@ public class StatsLogCompatManager extends StatsLogManager {
     * Logs an event and accompanying {@link ItemInfo}.
     */
    @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);
    }

@@ -92,7 +92,7 @@ public class StatsLogCompatManager extends StatsLogManager {
     * Logs an event and accompanying {@link InstanceId} and {@link LauncherAtom.ItemInfo}.
     */
    @Override
    public void log(LauncherEvent event, InstanceId instanceId,
    public void log(EventEnum event, InstanceId instanceId,
            @Nullable LauncherAtom.ItemInfo info) {
        logInternal(event, instanceId, info,
                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}.
     */
    private void logInternal(LauncherEvent event, InstanceId instanceId,
    private void logInternal(EventEnum event, InstanceId instanceId,
            @Nullable LauncherAtom.ItemInfo info, int startState, int endState) {
        info = info == null ? LauncherAtom.ItemInfo.getDefaultInstance() : info;

        if (IS_VERBOSE) {
            String name = (event instanceof LauncherEvent) ? ((LauncherEvent) event).name() :
                    event.getId() + "";

            Log.d(TAG, instanceId == DEFAULT_INSTANCE_ID
                    ? String.format("\n%s\n%s", event.name(), info)
                    : String.format("%s(InstanceId:%s)\n%s", event.name(), instanceId, info));
                    ? String.format("\n%s\n%s", name, info)
                    : String.format("%s(InstanceId:%s)\n%s", name, instanceId, info));
        }

        if (!Utilities.ATLEAST_R) {
+18 −6
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ import com.android.launcher3.util.ResourceBasedOverride;
 */
public class StatsLogManager implements ResourceBasedOverride {

    interface EventEnum {
    public interface EventEnum {
        int getId();
    }

@@ -63,6 +63,18 @@ public class StatsLogManager implements ResourceBasedOverride {
                + "new/same value.")
        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")
        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}.
     */
    public void log(LauncherEvent event, InstanceId instanceId) {
    public void log(EventEnum event, InstanceId instanceId) {
    }

    /**
     * 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}.
     */
    public void log(LauncherEvent event, InstanceId instanceId, @Nullable ItemInfo info) {
    public void log(EventEnum event, InstanceId instanceId, @Nullable ItemInfo itemInfo) {
    }

    /**
+2 −5
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_POINTER_UP;
import static android.view.MotionEvent.ACTION_UP;

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.Rect;
@@ -41,8 +42,6 @@ import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.testing.TestLogging;
import com.android.launcher3.testing.TestProtocol;
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
@@ -175,9 +174,7 @@ public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListe

                mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
                        HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
                mLauncher.getUserEventDispatcher().logActionOnContainer(Action.Touch.LONGPRESS,
                        Action.Direction.NONE, ContainerType.WORKSPACE,
                        mWorkspace.getCurrentPage());
                mLauncher.getStatsLogManager().log(LAUNCHER_WORKSPACE_LONGPRESS);
                OptionsPopupView.showDefaultOptions(mLauncher, mTouchDownPoint.x, mTouchDownPoint.y);
            } else {
                cancelLongPress();
+18 −17
Original line number Diff line number Diff line
@@ -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_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.Intent;
@@ -37,13 +40,12 @@ import androidx.annotation.VisibleForTesting;
import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.logging.StatsLogManager.EventEnum;
import com.android.launcher3.model.WidgetsModel;
import com.android.launcher3.popup.ArrowPopup;
import com.android.launcher3.shortcuts.DeepShortcutView;
import com.android.launcher3.testing.TestLogging;
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 java.util.ArrayList;
@@ -68,21 +70,21 @@ public class OptionsPopupView extends ArrowPopup

    @Override
    public void onClick(View view) {
        handleViewClick(view, Action.Touch.TAP);
        handleViewClick(view);
    }

    @Override
    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);
        if (item == null) {
            return false;
        }
        if (item.mControlTypeForLog > 0) {
            logTap(action, item.mControlTypeForLog);
        if (item.mEventId.getId() > 0) {
            mLauncher.getStatsLogManager().log(item.mEventId);
        }
        if (item.mClickListener.onLongClick(view)) {
            close(true);
@@ -91,10 +93,6 @@ public class OptionsPopupView extends ArrowPopup
        return false;
    }

    private void logTap(int action, int controlType) {
        mLauncher.getUserEventDispatcher().logActionOnControl(action, controlType);
    }

    @Override
    public boolean onControllerInterceptTouchEvent(MotionEvent ev) {
        if (ev.getAction() != MotionEvent.ACTION_DOWN) {
@@ -159,13 +157,16 @@ public class OptionsPopupView extends ArrowPopup
        int resDrawable = Utilities.existsStyleWallpapers(launcher) ?
                R.drawable.ic_palette : R.drawable.ic_wallpaper;
        options.add(new OptionItem(resString, resDrawable,
                ControlType.WALLPAPER_BUTTON, OptionsPopupView::startWallpaperPicker));
                LAUNCHER_WALLPAPER_BUTTON_TAP_OR_LONGPRESS,
                OptionsPopupView::startWallpaperPicker));
        if (!WidgetsModel.GO_DISABLE_WIDGETS) {
            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,
                ControlType.SETTINGS_BUTTON, OptionsPopupView::startSettings));
                LAUNCHER_SETTINGS_BUTTON_TAP_OR_LONGPRESS,
                OptionsPopupView::startSettings));

        show(launcher, target, options);
    }
@@ -224,14 +225,14 @@ public class OptionsPopupView extends ArrowPopup

        private final int mLabelRes;
        private final int mIconRes;
        private final int mControlTypeForLog;
        private final EventEnum mEventId;
        private final OnLongClickListener mClickListener;

        public OptionItem(int labelRes, int iconRes, int controlTypeForLog,
        public OptionItem(int labelRes, int iconRes, EventEnum eventId,
                OnLongClickListener clickListener) {
            mLabelRes = labelRes;
            mIconRes = iconRes;
            mControlTypeForLog = controlTypeForLog;
            mEventId = eventId;
            mClickListener = clickListener;
        }
    }