summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2016-08-01 16:42:19 -0700
committerTony Wickham <twickham@google.com>2016-08-01 17:55:07 -0700
commit55c6691e3a2e953dc9882ad0bc0a4c1ee2d42e67 (patch)
tree66845106a3105299b4eed61030699b3d9292b66b
parent0843675e939088d7974616f442ab8cad03f286e3 (diff)
downloadandroid_packages_apps_Trebuchet-55c6691e3a2e953dc9882ad0bc0a4c1ee2d42e67.tar.gz
android_packages_apps_Trebuchet-55c6691e3a2e953dc9882ad0bc0a4c1ee2d42e67.tar.bz2
android_packages_apps_Trebuchet-55c6691e3a2e953dc9882ad0bc0a4c1ee2d42e67.zip
Add logging for shortcuts opening.
- Log as long press with child type DEEPSHORTCUTS container - Parent type can be one of WORKSPACE, HOTSEAT, FOLDER, ALLAPPS, PREDICTION, or SEARCHRESULT. Bug: 30537079 Change-Id: Ie62e4889ee06c845f959ca998781787a7fdaf00e
-rw-r--r--src/com/android/launcher3/allapps/AllAppsRecyclerView.java14
-rw-r--r--src/com/android/launcher3/folder/Folder.java1
-rw-r--r--src/com/android/launcher3/logging/LoggerUtils.java4
-rw-r--r--src/com/android/launcher3/logging/UserEventDispatcher.java14
-rw-r--r--src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java27
5 files changed, 52 insertions, 8 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
index 641656c90..55f544caa 100644
--- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
@@ -29,10 +29,10 @@ import com.android.launcher3.BubbleTextView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.R;
-import com.android.launcher3.Utilities;
import com.android.launcher3.logging.UserEventDispatcher.LaunchSourceProvider;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
+
import java.util.List;
/**
@@ -208,8 +208,12 @@ public class AllAppsRecyclerView extends BaseRecyclerView
@Override
public void fillInLaunchSourceData(View v, ItemInfo info, Target target, Target targetParent) {
+ targetParent.containerType = getContainerType(v);
+ }
+
+ public int getContainerType(View v) {
if (mApps.hasFilter()) {
- targetParent.containerType = LauncherLogProto.SEARCHRESULT;
+ return LauncherLogProto.SEARCHRESULT;
} else {
if (v instanceof BubbleTextView) {
BubbleTextView icon = (BubbleTextView) v;
@@ -218,13 +222,11 @@ public class AllAppsRecyclerView extends BaseRecyclerView
List<AlphabeticalAppsList.AdapterItem> items = mApps.getAdapterItems();
AlphabeticalAppsList.AdapterItem item = items.get(position);
if (item.viewType == AllAppsGridAdapter.VIEW_TYPE_PREDICTION_ICON) {
- targetParent.containerType = LauncherLogProto.PREDICTION;
- return;
+ return LauncherLogProto.PREDICTION;
}
}
}
-
- targetParent.containerType = LauncherLogProto.ALLAPPS;
+ return LauncherLogProto.ALLAPPS;
}
}
diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java
index fdbb21430..368413663 100644
--- a/src/com/android/launcher3/folder/Folder.java
+++ b/src/com/android/launcher3/folder/Folder.java
@@ -585,6 +585,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
public void run() {
mContent.setLayerType(LAYER_TYPE_NONE, null);
mFooter.setLayerType(LAYER_TYPE_NONE, null);
+ mLauncher.getUserEventDispatcher().resetElapsedContainerMillis();
}
};
}
diff --git a/src/com/android/launcher3/logging/LoggerUtils.java b/src/com/android/launcher3/logging/LoggerUtils.java
index 9e927218b..aad266b7b 100644
--- a/src/com/android/launcher3/logging/LoggerUtils.java
+++ b/src/com/android/launcher3/logging/LoggerUtils.java
@@ -50,6 +50,7 @@ public class LoggerUtils {
case LauncherLogProto.APP_ICON: typeStr = "ICON"; break;
case LauncherLogProto.SHORTCUT: typeStr = "SHORTCUT"; break;
case LauncherLogProto.WIDGET: typeStr = "WIDGET"; break;
+ case LauncherLogProto.DEEPSHORTCUT: typeStr = "DEEPSHORTCUT"; break;
default: typeStr = "UNKNOWN";
}
@@ -106,6 +107,9 @@ public class LoggerUtils {
case LauncherLogProto.SEARCHRESULT:
str = "SEARCHRESULT";
break;
+ case LauncherLogProto.DEEPSHORTCUTS:
+ str = "DEEPSHORTCUTS";
+ break;
default:
str = "UNKNOWN";
}
diff --git a/src/com/android/launcher3/logging/UserEventDispatcher.java b/src/com/android/launcher3/logging/UserEventDispatcher.java
index f67f48791..e780cc91b 100644
--- a/src/com/android/launcher3/logging/UserEventDispatcher.java
+++ b/src/com/android/launcher3/logging/UserEventDispatcher.java
@@ -23,6 +23,7 @@ import android.view.View;
import android.view.ViewParent;
import com.android.launcher3.ItemInfo;
+import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
import com.android.launcher3.userevent.nano.LauncherLogProto.LauncherEvent;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
@@ -146,6 +147,17 @@ public class UserEventDispatcher {
dispatchUserEvent(event, null);
}
+ public void logDeepShortcutsOpen(int containerType) {
+ LauncherEvent event = LoggerUtils.initLauncherEvent(
+ Action.TOUCH, Target.ITEM, Target.CONTAINER);
+ event.action.touch = Action.LONGPRESS;
+ event.srcTarget[0].itemType = LauncherLogProto.DEEPSHORTCUT;
+ event.srcTarget[1].containerType = containerType;
+ event.elapsedContainerMillis = System.currentTimeMillis() - mElapsedContainerMillis;
+ event.elapsedSessionMillis = System.currentTimeMillis() - mElapsedSessionMillis;
+ dispatchUserEvent(event, null);
+ }
+
public void logDragNDrop() {
// TODO
}
@@ -172,7 +184,7 @@ public class UserEventDispatcher {
public void dispatchUserEvent(LauncherEvent ev, Intent intent) {
if (DEBUG_LOGGING) {
- Log.d("UserEvent", String.format(Locale.US,
+ Log.d(TAG, String.format(Locale.US,
"action:%s\nchild:%s\nparent:%s\nelapsed container %d ms session %d ms",
LoggerUtils.getActionStr(ev.action),
LoggerUtils.getTargetStr(ev.srcTarget != null ? ev.srcTarget[0] : null),
diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java
index 819a65332..53a28de42 100644
--- a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java
+++ b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java
@@ -27,13 +27,13 @@ import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.Gravity;
import android.view.HapticFeedbackConstants;
import android.view.LayoutInflater;
@@ -53,6 +53,7 @@ import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAnimUtils;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherModel;
+import com.android.launcher3.LauncherSettings;
import com.android.launcher3.LauncherViewPropertyAnimator;
import com.android.launcher3.LogAccelerateInterpolator;
import com.android.launcher3.R;
@@ -60,10 +61,12 @@ import com.android.launcher3.ShortcutInfo;
import com.android.launcher3.Utilities;
import com.android.launcher3.Workspace;
import com.android.launcher3.accessibility.ShortcutMenuAccessibilityDelegate;
+import com.android.launcher3.allapps.AllAppsRecyclerView;
import com.android.launcher3.compat.UserHandleCompat;
import com.android.launcher3.dragndrop.DragController;
import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.dragndrop.DragView;
+import com.android.launcher3.folder.Folder;
import com.android.launcher3.graphics.TriangleShape;
import com.android.launcher3.logging.UserEventDispatcher;
import com.android.launcher3.userevent.nano.LauncherLogProto;
@@ -734,11 +737,33 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
container.populateAndShow(icon, ids);
icon.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
+ logOpen(launcher, icon);
return container;
}
return null;
}
+ private static void logOpen(Launcher launcher, View icon) {
+ ItemInfo info = (ItemInfo) icon.getTag();
+ long iconContainer = info.container;
+ Folder openFolder = launcher.getWorkspace().getOpenFolder();
+ int containerType;
+ if (iconContainer == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ containerType = LauncherLogProto.WORKSPACE;
+ } else if (iconContainer == LauncherSettings.Favorites.CONTAINER_HOTSEAT) {
+ containerType = LauncherLogProto.HOTSEAT;
+ } else if (openFolder != null && iconContainer == openFolder.getInfo().id) {
+ containerType = LauncherLogProto.FOLDER;
+ } else if (icon.getParent() instanceof AllAppsRecyclerView) {
+ containerType = ((AllAppsRecyclerView) icon.getParent()).getContainerType(icon);
+ } else {
+ // This should not happen.
+ Log.w(TAG, "Couldn't determine parent of shortcut container");
+ containerType = LauncherLogProto.DEFAULT_CONTAINERTYPE;
+ }
+ launcher.getUserEventDispatcher().logDeepShortcutsOpen(containerType);
+ }
+
/**
* Extension of {@link ShortcutInfo} which does not badge the icons.
*/