Adding WEB_APP item type for logging.
Set in LoggerUtils.newItemTarget if instant app Bug:67049361 Change-Id: I8e99e5c60bf1a2083f898e8978d403138f803276
This commit is contained in:
parent
86d7b2d81d
commit
d2e3c5de56
|
@ -69,6 +69,7 @@ enum ItemType {
|
|||
EDITTEXT = 7;
|
||||
NOTIFICATION = 8;
|
||||
TASK = 9; // Each page of Recents UI (QuickStep)
|
||||
WEB_APP = 10;
|
||||
}
|
||||
|
||||
// Used to define what type of container a Target would represent.
|
||||
|
|
|
@ -53,6 +53,7 @@ import com.android.launcher3.model.WidgetItem;
|
|||
import com.android.launcher3.shortcuts.ShortcutInfoCompat;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
|
||||
import com.android.launcher3.util.InstantAppResolver;
|
||||
import com.android.launcher3.widget.PendingAddShortcutInfo;
|
||||
import com.android.launcher3.widget.PendingAddWidgetInfo;
|
||||
import com.android.launcher3.widget.WidgetHostViewLoader;
|
||||
|
@ -82,6 +83,7 @@ public class AddItemActivity extends BaseActivity implements OnLongClickListener
|
|||
private Bundle mWidgetOptions;
|
||||
|
||||
private boolean mFinishOnPause = false;
|
||||
private InstantAppResolver mInstantAppResolver;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -95,6 +97,7 @@ public class AddItemActivity extends BaseActivity implements OnLongClickListener
|
|||
|
||||
mApp = LauncherAppState.getInstance(this);
|
||||
mIdp = mApp.getInvariantDeviceProfile();
|
||||
mInstantAppResolver = InstantAppResolver.newInstance(this);
|
||||
|
||||
// Use the application context to get the device profile, as in multiwindow-mode, the
|
||||
// confirmation activity might be rotated.
|
||||
|
@ -298,7 +301,7 @@ public class AddItemActivity extends BaseActivity implements OnLongClickListener
|
|||
private void logCommand(int command) {
|
||||
getUserEventDispatcher().dispatchUserEvent(newLauncherEvent(
|
||||
newCommandAction(command),
|
||||
newItemTarget(mWidgetCell.getWidgetView()),
|
||||
newItemTarget(mWidgetCell.getWidgetView(), mInstantAppResolver),
|
||||
newContainerTarget(ContainerType.PINITEM)), null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,10 +15,12 @@
|
|||
*/
|
||||
package com.android.launcher3.logging;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.SparseArray;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.launcher3.AppInfo;
|
||||
import com.android.launcher3.ButtonDropTarget;
|
||||
import com.android.launcher3.ItemInfo;
|
||||
import com.android.launcher3.LauncherSettings;
|
||||
|
@ -29,6 +31,7 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.ControlType;
|
|||
import com.android.launcher3.userevent.nano.LauncherLogProto.ItemType;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.LauncherEvent;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
|
||||
import com.android.launcher3.util.InstantAppResolver;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
|
@ -127,18 +130,21 @@ public class LoggerUtils {
|
|||
return t;
|
||||
}
|
||||
|
||||
public static Target newItemTarget(View v) {
|
||||
public static Target newItemTarget(View v, InstantAppResolver instantAppResolver) {
|
||||
return (v.getTag() instanceof ItemInfo)
|
||||
? newItemTarget((ItemInfo) v.getTag())
|
||||
? newItemTarget((ItemInfo) v.getTag(), instantAppResolver)
|
||||
: newTarget(Target.Type.ITEM);
|
||||
}
|
||||
|
||||
public static Target newItemTarget(ItemInfo info) {
|
||||
public static Target newItemTarget(ItemInfo info, InstantAppResolver instantAppResolver) {
|
||||
Target t = newTarget(Target.Type.ITEM);
|
||||
|
||||
switch (info.itemType) {
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_APPLICATION:
|
||||
t.itemType = ItemType.APP_ICON;
|
||||
t.itemType = (instantAppResolver != null && info instanceof AppInfo
|
||||
&& instantAppResolver.isInstantApp(((AppInfo) info)) )
|
||||
? ItemType.WEB_APP
|
||||
: ItemType.APP_ICON;
|
||||
t.predictedRank = -100; // Never assigned
|
||||
break;
|
||||
case LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT:
|
||||
|
|
|
@ -38,6 +38,7 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
|
|||
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.LauncherEvent;
|
||||
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
|
||||
import com.android.launcher3.util.InstantAppResolver;
|
||||
import com.android.launcher3.util.LogConfig;
|
||||
|
||||
import java.util.Locale;
|
||||
|
@ -78,6 +79,7 @@ public class UserEventDispatcher {
|
|||
ued.mIsInLandscapeMode = dp.isVerticalBarLayout();
|
||||
ued.mIsInMultiWindowMode = dp.isMultiWindowMode;
|
||||
ued.mUuidStr = uuidStr;
|
||||
ued.mInstantAppResolver = InstantAppResolver.newInstance(context);
|
||||
return ued;
|
||||
}
|
||||
|
||||
|
@ -126,6 +128,7 @@ public class UserEventDispatcher {
|
|||
private boolean mIsInMultiWindowMode;
|
||||
private boolean mIsInLandscapeMode;
|
||||
private String mUuidStr;
|
||||
protected InstantAppResolver mInstantAppResolver;
|
||||
|
||||
// APP_ICON SHORTCUT WIDGET
|
||||
// --------------------------------------------------------------
|
||||
|
@ -151,7 +154,7 @@ public class UserEventDispatcher {
|
|||
|
||||
public void logAppLaunch(View v, Intent intent) {
|
||||
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.TAP),
|
||||
newItemTarget(v), newTarget(Target.Type.CONTAINER));
|
||||
newItemTarget(v, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
||||
|
||||
if (fillInLogContainerData(event, v)) {
|
||||
fillIntentInfo(event.srcTarget[0], intent);
|
||||
|
@ -184,7 +187,7 @@ public class UserEventDispatcher {
|
|||
|
||||
public void logNotificationLaunch(View v, PendingIntent intent) {
|
||||
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.TAP),
|
||||
newItemTarget(v), newTarget(Target.Type.CONTAINER));
|
||||
newItemTarget(v, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
||||
if (fillInLogContainerData(event, v)) {
|
||||
event.srcTarget[0].packageNameHash = (mUuidStr + intent.getCreatorPackage()).hashCode();
|
||||
}
|
||||
|
@ -215,7 +218,7 @@ public class UserEventDispatcher {
|
|||
*/
|
||||
public void logActionCommand(int command, View itemView, int srcContainerType) {
|
||||
LauncherEvent event = newLauncherEvent(newCommandAction(command),
|
||||
newItemTarget(itemView), newTarget(Target.Type.CONTAINER));
|
||||
newItemTarget(itemView, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
||||
|
||||
if (fillInLogContainerData(event, itemView)) {
|
||||
// TODO: Remove the following two lines once fillInLogContainerData can take in a
|
||||
|
@ -320,7 +323,7 @@ public class UserEventDispatcher {
|
|||
}
|
||||
ItemInfo info = (ItemInfo) icon.getTag();
|
||||
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.LONGPRESS),
|
||||
newItemTarget(info), newTarget(Target.Type.CONTAINER));
|
||||
newItemTarget(info, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
||||
provider.fillInLogContainerData(icon, info, event.srcTarget[0], event.srcTarget[1]);
|
||||
dispatchUserEvent(event, null);
|
||||
|
||||
|
@ -338,9 +341,11 @@ public class UserEventDispatcher {
|
|||
|
||||
public void logDragNDrop(DropTarget.DragObject dragObj, View dropTargetAsView) {
|
||||
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.DRAGDROP),
|
||||
newItemTarget(dragObj.originalDragInfo), newTarget(Target.Type.CONTAINER));
|
||||
newItemTarget(dragObj.originalDragInfo, mInstantAppResolver),
|
||||
newTarget(Target.Type.CONTAINER));
|
||||
event.destTarget = new Target[] {
|
||||
newItemTarget(dragObj.originalDragInfo), newDropTarget(dropTargetAsView)
|
||||
newItemTarget(dragObj.originalDragInfo, mInstantAppResolver),
|
||||
newDropTarget(dropTargetAsView)
|
||||
};
|
||||
|
||||
dragObj.dragSource.fillInLogContainerData(null, dragObj.originalDragInfo,
|
||||
|
|
Loading…
Reference in New Issue