2016-04-12 18:32:04 -07:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) 2012 The Android Open Source Project
|
|
|
|
|
*
|
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
|
*
|
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
*
|
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
*/
|
|
|
|
|
|
2016-03-04 11:02:40 -08:00
|
|
|
package com.android.launcher3.logging;
|
|
|
|
|
|
2018-05-09 16:18:58 -07:00
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newAction;
|
2018-04-06 12:25:10 -07:00
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newCommandAction;
|
|
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newContainerTarget;
|
2018-05-09 16:18:58 -07:00
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newControlTarget;
|
2018-04-06 12:25:10 -07:00
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newDropTarget;
|
|
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newItemTarget;
|
|
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newLauncherEvent;
|
|
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newTarget;
|
|
|
|
|
import static com.android.launcher3.logging.LoggerUtils.newTouchAction;
|
|
|
|
|
|
2017-02-01 09:13:24 -08:00
|
|
|
import android.app.PendingIntent;
|
2016-05-10 16:59:55 -07:00
|
|
|
import android.content.ComponentName;
|
2017-02-27 10:07:13 -08:00
|
|
|
import android.content.Context;
|
2016-04-12 18:32:04 -07:00
|
|
|
import android.content.Intent;
|
2017-07-05 13:45:50 -07:00
|
|
|
import android.content.SharedPreferences;
|
2016-09-01 12:47:12 -07:00
|
|
|
import android.os.SystemClock;
|
2016-06-20 14:56:28 -07:00
|
|
|
import android.util.Log;
|
2016-04-12 18:32:04 -07:00
|
|
|
import android.view.View;
|
2019-04-02 15:09:36 -07:00
|
|
|
|
2019-11-11 15:55:27 -08:00
|
|
|
import androidx.annotation.NonNull;
|
2019-04-02 15:09:36 -07:00
|
|
|
import androidx.annotation.Nullable;
|
2016-03-08 16:55:47 -08:00
|
|
|
|
2016-09-01 12:47:12 -07:00
|
|
|
import com.android.launcher3.DropTarget;
|
2016-04-12 18:32:04 -07:00
|
|
|
import com.android.launcher3.ItemInfo;
|
2017-02-27 10:07:13 -08:00
|
|
|
import com.android.launcher3.R;
|
2016-09-01 12:47:12 -07:00
|
|
|
import com.android.launcher3.Utilities;
|
2017-03-06 16:56:39 -08:00
|
|
|
import com.android.launcher3.config.FeatureFlags;
|
2018-10-25 14:09:50 -07:00
|
|
|
import com.android.launcher3.logging.StatsLogUtils.LogContainerProvider;
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto;
|
2016-04-15 13:01:40 -07:00
|
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
|
2016-04-12 18:32:04 -07:00
|
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto.LauncherEvent;
|
|
|
|
|
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
|
2018-04-06 12:25:10 -07:00
|
|
|
import com.android.launcher3.util.ComponentKey;
|
2018-03-29 21:12:12 +02:00
|
|
|
import com.android.launcher3.util.InstantAppResolver;
|
2017-01-30 15:11:27 -08:00
|
|
|
import com.android.launcher3.util.LogConfig;
|
2018-06-27 15:47:49 -07:00
|
|
|
import com.android.launcher3.util.ResourceBasedOverride;
|
2016-04-12 18:32:04 -07:00
|
|
|
|
2016-06-20 14:56:28 -07:00
|
|
|
import java.util.Locale;
|
2017-07-05 13:45:50 -07:00
|
|
|
import java.util.UUID;
|
2016-03-08 16:55:47 -08:00
|
|
|
|
2016-04-19 18:30:24 -07:00
|
|
|
/**
|
|
|
|
|
* Manages the creation of {@link LauncherEvent}.
|
2016-10-05 16:27:48 -07:00
|
|
|
* To debug this class, execute following command before side loading a new apk.
|
2016-09-27 18:07:00 -07:00
|
|
|
*
|
|
|
|
|
* $ adb shell setprop log.tag.UserEvent VERBOSE
|
2016-04-19 18:30:24 -07:00
|
|
|
*/
|
2018-06-27 15:47:49 -07:00
|
|
|
public class UserEventDispatcher implements ResourceBasedOverride {
|
2016-06-20 14:56:28 -07:00
|
|
|
|
2016-11-23 02:24:32 +05:30
|
|
|
private static final String TAG = "UserEvent";
|
|
|
|
|
private static final boolean IS_VERBOSE =
|
2017-03-06 16:56:39 -08:00
|
|
|
FeatureFlags.IS_DOGFOOD_BUILD && Utilities.isPropertyEnabled(LogConfig.USEREVENT);
|
2017-07-05 13:45:50 -07:00
|
|
|
private static final String UUID_STORAGE = "uuid";
|
2016-09-01 12:47:12 -07:00
|
|
|
|
2018-07-02 13:17:32 -07:00
|
|
|
public static UserEventDispatcher newInstance(Context context,
|
2018-05-22 15:41:25 -07:00
|
|
|
UserEventDelegate delegate) {
|
2017-07-05 13:45:50 -07:00
|
|
|
SharedPreferences sharedPrefs = Utilities.getDevicePrefs(context);
|
|
|
|
|
String uuidStr = sharedPrefs.getString(UUID_STORAGE, null);
|
|
|
|
|
if (uuidStr == null) {
|
|
|
|
|
uuidStr = UUID.randomUUID().toString();
|
|
|
|
|
sharedPrefs.edit().putString(UUID_STORAGE, uuidStr).apply();
|
|
|
|
|
}
|
2018-06-27 15:47:49 -07:00
|
|
|
UserEventDispatcher ued = Overrides.getObject(UserEventDispatcher.class,
|
2017-03-22 10:25:17 -07:00
|
|
|
context.getApplicationContext(), R.string.user_event_dispatcher_class);
|
2018-05-22 15:41:25 -07:00
|
|
|
ued.mDelegate = delegate;
|
2017-07-05 13:45:50 -07:00
|
|
|
ued.mUuidStr = uuidStr;
|
2018-03-29 21:12:12 +02:00
|
|
|
ued.mInstantAppResolver = InstantAppResolver.newInstance(context);
|
2017-03-22 10:25:17 -07:00
|
|
|
return ued;
|
2017-02-27 10:07:13 -08:00
|
|
|
}
|
|
|
|
|
|
2018-07-02 13:17:32 -07:00
|
|
|
public static UserEventDispatcher newInstance(Context context) {
|
|
|
|
|
return newInstance(context, null);
|
2018-05-22 15:41:25 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public interface UserEventDelegate {
|
|
|
|
|
void modifyUserEvent(LauncherEvent event);
|
|
|
|
|
}
|
|
|
|
|
|
2016-04-12 18:32:04 -07:00
|
|
|
/**
|
2018-10-25 14:09:50 -07:00
|
|
|
* Fills in the container data on the given event if the given view is not null.
|
|
|
|
|
* @return whether container data was added.
|
2016-04-12 18:32:04 -07:00
|
|
|
*/
|
2019-11-11 15:55:27 -08:00
|
|
|
public boolean fillInLogContainerData(LauncherLogProto.LauncherEvent event, @Nullable View v) {
|
2018-10-25 14:09:50 -07:00
|
|
|
// Fill in grid(x,y), pageIndex of the child and container type of the parent
|
|
|
|
|
LogContainerProvider provider = StatsLogUtils.getLaunchProviderRecursive(v);
|
|
|
|
|
if (v == null || !(v.getTag() instanceof ItemInfo) || provider == null) {
|
|
|
|
|
return false;
|
2016-04-12 18:32:04 -07:00
|
|
|
}
|
2019-11-11 15:55:27 -08:00
|
|
|
final ItemInfo itemInfo = (ItemInfo) v.getTag();
|
|
|
|
|
final Target target = event.srcTarget[0];
|
|
|
|
|
final Target targetParent = event.srcTarget[1];
|
|
|
|
|
onFillInLogContainerData(itemInfo, target, targetParent);
|
|
|
|
|
provider.fillInLogContainerData(v, itemInfo, target, targetParent);
|
2018-10-25 14:09:50 -07:00
|
|
|
return true;
|
2016-04-12 18:32:04 -07:00
|
|
|
}
|
|
|
|
|
|
2019-11-11 15:55:27 -08:00
|
|
|
protected void onFillInLogContainerData(
|
|
|
|
|
@NonNull ItemInfo itemInfo, @NonNull Target target, @NonNull Target targetParent) { }
|
|
|
|
|
|
2018-05-16 15:54:31 -07:00
|
|
|
private boolean mSessionStarted;
|
2016-03-08 16:55:47 -08:00
|
|
|
private long mElapsedContainerMillis;
|
|
|
|
|
private long mElapsedSessionMillis;
|
|
|
|
|
private long mActionDurationMillis;
|
2017-07-05 13:45:50 -07:00
|
|
|
private String mUuidStr;
|
2018-03-29 21:12:12 +02:00
|
|
|
protected InstantAppResolver mInstantAppResolver;
|
2018-05-15 21:46:51 -07:00
|
|
|
private boolean mAppOrTaskLaunch;
|
2018-05-22 15:41:25 -07:00
|
|
|
private UserEventDelegate mDelegate;
|
2019-07-22 16:04:30 -07:00
|
|
|
private boolean mPreviousHomeGesture;
|
2016-03-08 16:55:47 -08:00
|
|
|
|
2016-04-12 18:32:04 -07:00
|
|
|
// APP_ICON SHORTCUT WIDGET
|
|
|
|
|
// --------------------------------------------------------------
|
|
|
|
|
// packageNameHash required optional required
|
|
|
|
|
// componentNameHash required required
|
|
|
|
|
// intentHash required
|
|
|
|
|
// --------------------------------------------------------------
|
2016-03-08 16:55:47 -08:00
|
|
|
|
2018-10-25 14:09:50 -07:00
|
|
|
@Deprecated
|
2016-04-19 18:30:24 -07:00
|
|
|
public void logAppLaunch(View v, Intent intent) {
|
2017-07-18 04:25:55 -07:00
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.TAP),
|
2018-03-29 21:12:12 +02:00
|
|
|
newItemTarget(v, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
2017-07-18 04:25:55 -07:00
|
|
|
|
|
|
|
|
if (fillInLogContainerData(event, v)) {
|
2018-05-22 15:41:25 -07:00
|
|
|
if (mDelegate != null) {
|
|
|
|
|
mDelegate.modifyUserEvent(event);
|
|
|
|
|
}
|
2017-07-18 04:25:55 -07:00
|
|
|
fillIntentInfo(event.srcTarget[0], intent);
|
|
|
|
|
}
|
|
|
|
|
dispatchUserEvent(event, intent);
|
2018-05-15 21:46:51 -07:00
|
|
|
mAppOrTaskLaunch = true;
|
2017-07-18 04:25:55 -07:00
|
|
|
}
|
|
|
|
|
|
2018-05-09 16:18:58 -07:00
|
|
|
public void logActionTip(int actionType, int viewType) { }
|
|
|
|
|
|
2018-10-25 14:09:50 -07:00
|
|
|
@Deprecated
|
2018-05-15 21:46:51 -07:00
|
|
|
public void logTaskLaunchOrDismiss(int action, int direction, int taskIndex,
|
|
|
|
|
ComponentKey componentKey) {
|
2018-04-06 12:25:10 -07:00
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(action), // TAP or SWIPE or FLING
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
newTarget(Target.Type.ITEM));
|
|
|
|
|
if (action == Action.Touch.SWIPE || action == Action.Touch.FLING) {
|
2018-04-06 12:25:10 -07:00
|
|
|
// Direction DOWN means the task was launched, UP means it was dismissed.
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
event.action.dir = direction;
|
|
|
|
|
}
|
|
|
|
|
event.srcTarget[0].itemType = LauncherLogProto.ItemType.TASK;
|
2018-05-15 21:46:51 -07:00
|
|
|
event.srcTarget[0].pageIndex = taskIndex;
|
2018-04-06 12:25:10 -07:00
|
|
|
fillComponentInfo(event.srcTarget[0], componentKey.componentName);
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
dispatchUserEvent(event, null);
|
2018-05-15 21:46:51 -07:00
|
|
|
mAppOrTaskLaunch = true;
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
}
|
|
|
|
|
|
2017-07-18 04:25:55 -07:00
|
|
|
protected void fillIntentInfo(Target target, Intent intent) {
|
|
|
|
|
target.intentHash = intent.hashCode();
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
fillComponentInfo(target, intent.getComponent());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void fillComponentInfo(Target target, ComponentName cn) {
|
2017-07-18 04:25:55 -07:00
|
|
|
if (cn != null) {
|
|
|
|
|
target.packageNameHash = (mUuidStr + cn.getPackageName()).hashCode();
|
|
|
|
|
target.componentHash = (mUuidStr + cn.flattenToString()).hashCode();
|
2016-08-15 16:22:20 -07:00
|
|
|
}
|
2016-04-12 18:32:04 -07:00
|
|
|
}
|
|
|
|
|
|
2017-02-01 09:13:24 -08:00
|
|
|
public void logNotificationLaunch(View v, PendingIntent intent) {
|
2017-07-18 04:25:55 -07:00
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.TAP),
|
2018-03-29 21:12:12 +02:00
|
|
|
newItemTarget(v, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
2017-07-18 04:25:55 -07:00
|
|
|
if (fillInLogContainerData(event, v)) {
|
|
|
|
|
event.srcTarget[0].packageNameHash = (mUuidStr + intent.getCreatorPackage()).hashCode();
|
2017-02-01 09:13:24 -08:00
|
|
|
}
|
2017-07-18 04:25:55 -07:00
|
|
|
dispatchUserEvent(event, null);
|
2017-02-01 09:13:24 -08:00
|
|
|
}
|
|
|
|
|
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
public void logActionCommand(int command, Target srcTarget) {
|
|
|
|
|
logActionCommand(command, srcTarget, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void logActionCommand(int command, int srcContainerType, int dstContainerType) {
|
|
|
|
|
logActionCommand(command, newContainerTarget(srcContainerType),
|
|
|
|
|
dstContainerType >=0 ? newContainerTarget(dstContainerType) : null);
|
2016-10-06 10:53:29 -07:00
|
|
|
}
|
|
|
|
|
|
2019-08-01 11:09:38 -07:00
|
|
|
public void logActionCommand(int command, int srcContainerType, int dstContainerType,
|
|
|
|
|
int pageIndex) {
|
|
|
|
|
Target srcTarget = newContainerTarget(srcContainerType);
|
|
|
|
|
srcTarget.pageIndex = pageIndex;
|
|
|
|
|
logActionCommand(command, srcTarget,
|
|
|
|
|
dstContainerType >=0 ? newContainerTarget(dstContainerType) : null);
|
|
|
|
|
}
|
|
|
|
|
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
public void logActionCommand(int command, Target srcTarget, Target dstTarget) {
|
|
|
|
|
LauncherEvent event = newLauncherEvent(newCommandAction(command), srcTarget);
|
2018-05-16 15:54:31 -07:00
|
|
|
if (command == Action.Command.STOP) {
|
|
|
|
|
if (mAppOrTaskLaunch || !mSessionStarted) {
|
|
|
|
|
mSessionStarted = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
2018-05-15 21:46:51 -07:00
|
|
|
}
|
|
|
|
|
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
if (dstTarget != null) {
|
|
|
|
|
event.destTarget = new Target[1];
|
|
|
|
|
event.destTarget[0] = dstTarget;
|
|
|
|
|
event.action.isStateChange = true;
|
|
|
|
|
}
|
2016-10-06 10:53:29 -07:00
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* TODO: Make this function work when a container view is passed as the 2nd param.
|
|
|
|
|
*/
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
public void logActionCommand(int command, View itemView, int srcContainerType) {
|
2016-11-23 02:24:32 +05:30
|
|
|
LauncherEvent event = newLauncherEvent(newCommandAction(command),
|
2018-03-29 21:12:12 +02:00
|
|
|
newItemTarget(itemView, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
2016-11-22 23:49:52 +05:30
|
|
|
|
2016-10-06 10:53:29 -07:00
|
|
|
if (fillInLogContainerData(event, itemView)) {
|
|
|
|
|
// TODO: Remove the following two lines once fillInLogContainerData can take in a
|
|
|
|
|
// container view.
|
2016-11-23 02:24:32 +05:30
|
|
|
event.srcTarget[0].type = Target.Type.CONTAINER;
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
event.srcTarget[0].containerType = srcContainerType;
|
2016-10-06 10:53:29 -07:00
|
|
|
}
|
2016-09-27 18:07:00 -07:00
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
2016-07-21 11:48:37 -07:00
|
|
|
public void logActionOnControl(int action, int controlType) {
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
logActionOnControl(action, controlType, null, -1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void logActionOnControl(int action, int controlType, int parentContainerType) {
|
|
|
|
|
logActionOnControl(action, controlType, null, parentContainerType);
|
Log when App info or Widgets system shortcuts are tapped
Sample output:
D/UserEvent: action:LONGPRESS
Source child:APP_ICON, grid(1,3), span(1,1), pageIdx=0 parent:WORKSPACE id=0
Elapsed container 135 ms session 7984 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
D/UserEvent: action:TAP
Source child:WIDGETS_BUTTON parent:DEEPSHORTCUTS
Elapsed container 41 ms session 8906 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
D/UserEvent: action:LONGPRESS
Source child:APP_ICON, grid(1,3), span(1,1), pageIdx=0 parent:WORKSPACE id=0
Elapsed container 184 ms session 11297 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
D/UserEvent: action:TAP
Source child:APPINFO_TARGET parent:DEEPSHORTCUTS
Elapsed container 678 ms session 11976 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
Bug: 37430954
Change-Id: I526edbf1eea551eb8eaddbb27e52058804fee874
2017-05-19 19:02:03 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void logActionOnControl(int action, int controlType, @Nullable View controlInContainer) {
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
logActionOnControl(action, controlType, controlInContainer, -1);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-09 16:18:58 -07:00
|
|
|
public void logActionOnControl(int action, int controlType, int parentContainer,
|
|
|
|
|
int grandParentContainer){
|
|
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(action),
|
|
|
|
|
newControlTarget(controlType),
|
|
|
|
|
newContainerTarget(parentContainer),
|
|
|
|
|
newContainerTarget(grandParentContainer));
|
|
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
public void logActionOnControl(int action, int controlType, @Nullable View controlInContainer,
|
|
|
|
|
int parentContainerType) {
|
2018-02-22 11:31:31 -08:00
|
|
|
final LauncherEvent event = (controlInContainer == null && parentContainerType < 0)
|
Log when App info or Widgets system shortcuts are tapped
Sample output:
D/UserEvent: action:LONGPRESS
Source child:APP_ICON, grid(1,3), span(1,1), pageIdx=0 parent:WORKSPACE id=0
Elapsed container 135 ms session 7984 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
D/UserEvent: action:TAP
Source child:WIDGETS_BUTTON parent:DEEPSHORTCUTS
Elapsed container 41 ms session 8906 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
D/UserEvent: action:LONGPRESS
Source child:APP_ICON, grid(1,3), span(1,1), pageIdx=0 parent:WORKSPACE id=0
Elapsed container 184 ms session 11297 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
D/UserEvent: action:TAP
Source child:APPINFO_TARGET parent:DEEPSHORTCUTS
Elapsed container 678 ms session 11976 ms action 0 ms
isInLandscapeMode false
isInMultiWindowMode false
Bug: 37430954
Change-Id: I526edbf1eea551eb8eaddbb27e52058804fee874
2017-05-19 19:02:03 -07:00
|
|
|
? newLauncherEvent(newTouchAction(action), newTarget(Target.Type.CONTROL))
|
|
|
|
|
: newLauncherEvent(newTouchAction(action), newTarget(Target.Type.CONTROL),
|
|
|
|
|
newTarget(Target.Type.CONTAINER));
|
2016-07-21 11:48:37 -07:00
|
|
|
event.srcTarget[0].controlType = controlType;
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
if (controlInContainer != null) {
|
|
|
|
|
fillInLogContainerData(event, controlInContainer);
|
|
|
|
|
}
|
|
|
|
|
if (parentContainerType >= 0) {
|
|
|
|
|
event.srcTarget[1].containerType = parentContainerType;
|
|
|
|
|
}
|
|
|
|
|
if (action == Action.Touch.DRAGDROP) {
|
|
|
|
|
event.actionDurationMillis = SystemClock.uptimeMillis() - mActionDurationMillis;
|
|
|
|
|
}
|
2016-07-21 11:48:37 -07:00
|
|
|
dispatchUserEvent(event, null);
|
2016-04-12 18:32:04 -07:00
|
|
|
}
|
|
|
|
|
|
2017-02-07 17:12:36 -08:00
|
|
|
public void logActionTapOutside(Target target) {
|
|
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Type.TOUCH),
|
|
|
|
|
target);
|
|
|
|
|
event.action.isOutside = true;
|
|
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-09 16:18:58 -07:00
|
|
|
public void logActionBounceTip(int containerType) {
|
|
|
|
|
LauncherEvent event = newLauncherEvent(newAction(Action.Type.TIP),
|
|
|
|
|
newContainerTarget(containerType));
|
|
|
|
|
event.srcTarget[0].tipType = LauncherLogProto.TipType.BOUNCE;
|
|
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
2016-07-21 11:48:37 -07:00
|
|
|
public void logActionOnContainer(int action, int dir, int containerType) {
|
2016-10-05 14:08:11 -07:00
|
|
|
logActionOnContainer(action, dir, containerType, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void logActionOnContainer(int action, int dir, int containerType, int pageIndex) {
|
2016-11-22 23:49:52 +05:30
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(action),
|
|
|
|
|
newContainerTarget(containerType));
|
2016-07-21 11:48:37 -07:00
|
|
|
event.action.dir = dir;
|
2016-10-05 14:08:11 -07:00
|
|
|
event.srcTarget[0].pageIndex = pageIndex;
|
2016-07-21 11:48:37 -07:00
|
|
|
dispatchUserEvent(event, null);
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
}
|
2017-10-17 15:39:46 -07:00
|
|
|
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
/**
|
|
|
|
|
* Used primarily for swipe up and down when state changes when swipe up happens from the
|
|
|
|
|
* navbar bezel, the {@param srcChildContainerType} is NAVBAR and
|
|
|
|
|
* {@param srcParentContainerType} is either one of the two
|
2018-05-01 16:46:59 -07:00
|
|
|
* (1) WORKSPACE: if the launcher is the foreground activity
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
* (2) APP: if another app was the foreground activity
|
|
|
|
|
*/
|
2019-04-24 11:32:20 -07:00
|
|
|
public void logStateChangeAction(int action, int dir, int downX, int downY, int srcChildTargetType,
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
int srcParentContainerType, int dstContainerType,
|
|
|
|
|
int pageIndex) {
|
|
|
|
|
LauncherEvent event;
|
|
|
|
|
if (srcChildTargetType == LauncherLogProto.ItemType.TASK) {
|
|
|
|
|
event = newLauncherEvent(newTouchAction(action),
|
|
|
|
|
newItemTarget(srcChildTargetType),
|
|
|
|
|
newContainerTarget(srcParentContainerType));
|
|
|
|
|
} else {
|
|
|
|
|
event = newLauncherEvent(newTouchAction(action),
|
|
|
|
|
newContainerTarget(srcChildTargetType),
|
|
|
|
|
newContainerTarget(srcParentContainerType));
|
2017-10-17 15:39:46 -07:00
|
|
|
}
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
event.destTarget = new Target[1];
|
|
|
|
|
event.destTarget[0] = newContainerTarget(dstContainerType);
|
|
|
|
|
event.action.dir = dir;
|
|
|
|
|
event.action.isStateChange = true;
|
|
|
|
|
event.srcTarget[0].pageIndex = pageIndex;
|
2019-04-24 11:32:20 -07:00
|
|
|
event.srcTarget[0].spanX = downX;
|
|
|
|
|
event.srcTarget[0].spanY = downY;
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
resetElapsedContainerMillis("state changed");
|
2016-04-12 18:32:04 -07:00
|
|
|
}
|
|
|
|
|
|
2017-02-01 09:13:24 -08:00
|
|
|
public void logActionOnItem(int action, int dir, int itemType) {
|
|
|
|
|
Target itemTarget = newTarget(Target.Type.ITEM);
|
|
|
|
|
itemTarget.itemType = itemType;
|
|
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(action), itemTarget);
|
|
|
|
|
event.action.dir = dir;
|
|
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
2016-08-10 16:06:22 -07:00
|
|
|
public void logDeepShortcutsOpen(View icon) {
|
2018-10-25 14:09:50 -07:00
|
|
|
LogContainerProvider provider = StatsLogUtils.getLaunchProviderRecursive(icon);
|
2019-04-24 11:32:20 -07:00
|
|
|
if (icon == null || !(icon.getTag() instanceof ItemInfo || provider == null)) {
|
2016-08-15 16:22:20 -07:00
|
|
|
return;
|
|
|
|
|
}
|
2016-08-10 16:06:22 -07:00
|
|
|
ItemInfo info = (ItemInfo) icon.getTag();
|
2016-11-23 02:24:32 +05:30
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.LONGPRESS),
|
2018-03-29 21:12:12 +02:00
|
|
|
newItemTarget(info, mInstantAppResolver), newTarget(Target.Type.CONTAINER));
|
2016-10-06 17:52:22 -07:00
|
|
|
provider.fillInLogContainerData(icon, info, event.srcTarget[0], event.srcTarget[1]);
|
2016-08-01 16:42:19 -07:00
|
|
|
dispatchUserEvent(event, null);
|
2016-10-05 14:08:11 -07:00
|
|
|
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
resetElapsedContainerMillis("deep shortcut open");
|
2016-08-01 16:42:19 -07:00
|
|
|
}
|
|
|
|
|
|
2016-09-01 12:47:12 -07:00
|
|
|
public void logDragNDrop(DropTarget.DragObject dragObj, View dropTargetAsView) {
|
2016-11-23 02:24:32 +05:30
|
|
|
LauncherEvent event = newLauncherEvent(newTouchAction(Action.Touch.DRAGDROP),
|
2018-03-29 21:12:12 +02:00
|
|
|
newItemTarget(dragObj.originalDragInfo, mInstantAppResolver),
|
|
|
|
|
newTarget(Target.Type.CONTAINER));
|
2016-11-23 02:24:32 +05:30
|
|
|
event.destTarget = new Target[] {
|
2018-03-29 21:12:12 +02:00
|
|
|
newItemTarget(dragObj.originalDragInfo, mInstantAppResolver),
|
|
|
|
|
newDropTarget(dropTargetAsView)
|
2016-11-22 23:49:52 +05:30
|
|
|
};
|
2016-09-01 12:47:12 -07:00
|
|
|
|
2016-10-06 17:52:22 -07:00
|
|
|
dragObj.dragSource.fillInLogContainerData(null, dragObj.originalDragInfo,
|
2016-09-01 12:47:12 -07:00
|
|
|
event.srcTarget[0], event.srcTarget[1]);
|
|
|
|
|
|
2016-10-06 17:52:22 -07:00
|
|
|
if (dropTargetAsView instanceof LogContainerProvider) {
|
|
|
|
|
((LogContainerProvider) dropTargetAsView).fillInLogContainerData(null,
|
2016-09-01 12:47:12 -07:00
|
|
|
dragObj.dragInfo, event.destTarget[0], event.destTarget[1]);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
event.actionDurationMillis = SystemClock.uptimeMillis() - mActionDurationMillis;
|
|
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
2019-04-02 15:09:36 -07:00
|
|
|
public void logActionBack(boolean completed, int downX, int downY, boolean isButton,
|
|
|
|
|
boolean gestureSwipeLeft, int containerType) {
|
|
|
|
|
int actionTouch = isButton ? Action.Touch.TAP : Action.Touch.SWIPE;
|
|
|
|
|
Action action = newCommandAction(actionTouch);
|
|
|
|
|
action.command = Action.Command.BACK;
|
|
|
|
|
action.dir = isButton
|
|
|
|
|
? Action.Direction.NONE
|
|
|
|
|
: gestureSwipeLeft
|
|
|
|
|
? Action.Direction.LEFT
|
|
|
|
|
: Action.Direction.RIGHT;
|
|
|
|
|
Target target = newControlTarget(isButton
|
|
|
|
|
? LauncherLogProto.ControlType.BACK_BUTTON
|
|
|
|
|
: LauncherLogProto.ControlType.BACK_GESTURE);
|
|
|
|
|
target.spanX = downX;
|
|
|
|
|
target.spanY = downY;
|
|
|
|
|
target.cardinality = completed ? 1 : 0;
|
|
|
|
|
LauncherEvent event = newLauncherEvent(action, target, newContainerTarget(containerType));
|
|
|
|
|
|
|
|
|
|
dispatchUserEvent(event, null);
|
|
|
|
|
}
|
|
|
|
|
|
2016-03-08 16:55:47 -08:00
|
|
|
/**
|
|
|
|
|
* Currently logs following containers: workspace, allapps, widget tray.
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
* @param reason
|
2016-03-08 16:55:47 -08:00
|
|
|
*/
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
public final void resetElapsedContainerMillis(String reason) {
|
2016-09-01 12:47:12 -07:00
|
|
|
mElapsedContainerMillis = SystemClock.uptimeMillis();
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
if (!IS_VERBOSE) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Log.d(TAG, "resetElapsedContainerMillis reason=" + reason);
|
|
|
|
|
|
2016-03-08 16:55:47 -08:00
|
|
|
}
|
|
|
|
|
|
2018-05-16 15:54:31 -07:00
|
|
|
public final void startSession() {
|
|
|
|
|
mSessionStarted = true;
|
2016-09-01 12:47:12 -07:00
|
|
|
mElapsedSessionMillis = SystemClock.uptimeMillis();
|
|
|
|
|
mElapsedContainerMillis = SystemClock.uptimeMillis();
|
2016-03-08 16:55:47 -08:00
|
|
|
}
|
|
|
|
|
|
2019-07-22 16:04:30 -07:00
|
|
|
public final void setPreviousHomeGesture(boolean homeGesture) {
|
|
|
|
|
mPreviousHomeGesture = homeGesture;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public final boolean isPreviousHomeGesture() {
|
|
|
|
|
return mPreviousHomeGesture;
|
|
|
|
|
}
|
|
|
|
|
|
2016-03-08 16:55:47 -08:00
|
|
|
public final void resetActionDurationMillis() {
|
2016-09-01 12:47:12 -07:00
|
|
|
mActionDurationMillis = SystemClock.uptimeMillis();
|
2016-03-08 16:55:47 -08:00
|
|
|
}
|
|
|
|
|
|
2016-06-20 14:56:28 -07:00
|
|
|
public void dispatchUserEvent(LauncherEvent ev, Intent intent) {
|
2019-07-22 16:04:30 -07:00
|
|
|
if (mPreviousHomeGesture) {
|
|
|
|
|
mPreviousHomeGesture = false;
|
|
|
|
|
}
|
2018-05-15 21:46:51 -07:00
|
|
|
mAppOrTaskLaunch = false;
|
2016-10-03 14:01:25 -07:00
|
|
|
ev.elapsedContainerMillis = SystemClock.uptimeMillis() - mElapsedContainerMillis;
|
|
|
|
|
ev.elapsedSessionMillis = SystemClock.uptimeMillis() - mElapsedSessionMillis;
|
2016-11-23 02:24:32 +05:30
|
|
|
if (!IS_VERBOSE) {
|
2016-09-01 12:47:12 -07:00
|
|
|
return;
|
|
|
|
|
}
|
2019-09-03 14:39:50 -07:00
|
|
|
Log.d(TAG, generateLog(ev));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns a human-readable log for given user event.
|
|
|
|
|
*/
|
|
|
|
|
public static String generateLog(LauncherEvent ev) {
|
2018-05-15 21:46:51 -07:00
|
|
|
String log = "\n-----------------------------------------------------"
|
|
|
|
|
+ "\naction:" + LoggerUtils.getActionStr(ev.action);
|
2016-11-23 02:24:32 +05:30
|
|
|
if (ev.srcTarget != null && ev.srcTarget.length > 0) {
|
|
|
|
|
log += "\n Source " + getTargetsStr(ev.srcTarget);
|
|
|
|
|
}
|
2016-09-01 12:47:12 -07:00
|
|
|
if (ev.destTarget != null && ev.destTarget.length > 0) {
|
2016-11-23 02:24:32 +05:30
|
|
|
log += "\n Destination " + getTargetsStr(ev.destTarget);
|
2016-06-20 14:56:28 -07:00
|
|
|
}
|
2016-11-23 02:24:32 +05:30
|
|
|
log += String.format(Locale.US,
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
"\n Elapsed container %d ms, session %d ms, action %d ms",
|
2016-09-01 12:47:12 -07:00
|
|
|
ev.elapsedContainerMillis,
|
|
|
|
|
ev.elapsedSessionMillis,
|
2016-11-23 02:24:32 +05:30
|
|
|
ev.actionDurationMillis);
|
Quick step/scrub/switch logging
- state transition happening due to Home and back is handled by
specifying src target as 'from' container and dst target as the 'to'
container
- Source and Destination container shows FROM and TO state for SWIPE/FLING
- event.isStateChange = true indicates that an action resulted in
state transition
- Elapsed container millis is the screen time on the source container
Bug: 70181187
- logcat printout with setprop log.tag.UserEvent VERBOSE
1) State: WORKSPACE -> ALLAPPS
action:FLING direction=UP
Source child:HOTSEAT id=0 parent:WORKSPACE id=0
Destination child:ALLAPPS
Elapsed container 1225 ms, session 1225 ms, action 0 ms
2) ALLAPPS -> HOMESCREEN
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:WORKSPACE id=0
Elapsed container 971 ms, session 2197 ms, action 0 ms
3) HOMESCREEN -> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:WORKSPACE id=0
Destination child:TASKSWITCHER
Elapsed container 4834 ms, session 4834 ms, action 0 ms
4) OVERVIEW-> ALLAPPS
action:FLING direction=UP
Source child:TASK parent:TASKSWITCHER
Destination child:ALLAPPS
Elapsed container 2176 ms, session 7010 ms, action 0 ms
5) ALLAPPS->OVERVIEW
action:FLING direction=DOWN
Source child:ALLAPPS parent:ALLAPPS
Destination child:TASKSWITCHER
Elapsed container 3683 ms, session 10693 ms, action 0 ms
6) OVERVIEW-> HOMESCREEN
action:FLING direction=DOWN
Source child:TASK parent:TASKSWITCHER
Destination child:WORKSPACE id=0
Elapsed container 2108 ms, session 12801 ms, action 0 ms
7) APPS-> OVERVIEW
action:FLING direction=UP
Source child:NAVBAR parent:APP
Destination child:TASKSWITCHER
Elapsed container 104 ms, session 104 ms, action 0 ms
8) Quickscrub: action:DRAGANDDROP Source child: QUICK
9) Quickswitch: action:FLING Source child: QUICK
Change-Id: I5898230859ff600f48a2a873a40b670fe4d39a0d
2018-02-14 13:40:25 -08:00
|
|
|
log += "\n\n";
|
2019-09-03 14:39:50 -07:00
|
|
|
return log;
|
2016-11-23 02:24:32 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static String getTargetsStr(Target[] targets) {
|
2017-07-18 04:25:55 -07:00
|
|
|
String result = "child:" + LoggerUtils.getTargetStr(targets[0]);
|
|
|
|
|
for (int i = 1; i < targets.length; i++) {
|
|
|
|
|
result += "\tparent:" + LoggerUtils.getTargetStr(targets[i]);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
2016-06-20 14:56:28 -07:00
|
|
|
}
|
2016-04-12 18:32:04 -07:00
|
|
|
}
|