public final UserEventDispatcher getUserEventDispatcher() {
if (mUserEventDispatcher == null) {
- mUserEventDispatcher = UserEventDispatcher.get(this);
+ mUserEventDispatcher = UserEventDispatcher.newInstance(this,
+ isInMultiWindowModeCompat());
}
return mUserEventDispatcher;
}
+ public boolean isInMultiWindowModeCompat() {
+ return Utilities.ATLEAST_NOUGAT && isInMultiWindowMode();
+ }
+
public static BaseActivity fromContext(Context context) {
if (context instanceof BaseActivity) {
return (BaseActivity) context;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.config.ProviderConfig;
-import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.userevent.nano.LauncherLogProto.LauncherEvent;
private static final boolean IS_VERBOSE =
ProviderConfig.IS_DOGFOOD_BUILD && Utilities.isPropertyEnabled(LogConfig.USEREVENT);
- private static UserEventDispatcher sInstance;
- private static final Object LOCK = new Object();
-
- public static UserEventDispatcher get(Context context) {
- synchronized (LOCK) {
- if (sInstance == null) {
- sInstance = Utilities.getOverrideObject(UserEventDispatcher.class,
- context.getApplicationContext(), R.string.user_event_dispatcher_class);
- }
- return sInstance;
- }
+ public static UserEventDispatcher newInstance(Context context, boolean isInMultiWindowMode) {
+ UserEventDispatcher ued = Utilities.getOverrideObject(UserEventDispatcher.class,
+ context.getApplicationContext(), R.string.user_event_dispatcher_class);
+ ued.mIsInMultiWindowMode = isInMultiWindowMode;
+ return ued;
}
/**
private long mElapsedContainerMillis;
private long mElapsedSessionMillis;
private long mActionDurationMillis;
+ private boolean mIsInMultiWindowMode;
// Used for filling in predictedRank on {@link Target}s.
private List<ComponentKey> mPredictedApps;
}
public void dispatchUserEvent(LauncherEvent ev, Intent intent) {
+ ev.isInMultiWindowMode = mIsInMultiWindowMode;
ev.elapsedContainerMillis = SystemClock.uptimeMillis() - mElapsedContainerMillis;
ev.elapsedSessionMillis = SystemClock.uptimeMillis() - mElapsedSessionMillis;
ev.elapsedContainerMillis,
ev.elapsedSessionMillis,
ev.actionDurationMillis);
+ log += "\n isInMultiWindowMode " + ev.isInMultiWindowMode;
Log.d(TAG, log);
}