Fixing potantial context leak code path

The javadoc in createUserEventDispatcher suggested that it can be used
as a singleton. But it was being constructed as an inner class which
would cause context leak when used as singleton

Change-Id: I706018d4ab26b506ac936fe1a7304d9b530b820c
This commit is contained in:
Sunny Goyal
2016-06-20 14:56:28 -07:00
parent 91f3b1c0b8
commit 64976d5a56
2 changed files with 20 additions and 27 deletions

View File

@@ -18,6 +18,7 @@ package com.android.launcher3.logging;
import android.content.ComponentName;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.view.ViewParent;
@@ -28,11 +29,14 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import com.android.launcher3.util.ComponentKey;
import java.util.List;
import java.util.Locale;
/**
* Manages the creation of {@link LauncherEvent}.
*/
public abstract class UserEventDispatcher {
public class UserEventDispatcher {
private static final boolean DEBUG_LOGGING = false;
private final static int MAXIMUM_VIEW_HIERARCHY_LEVEL = 5;
/**
@@ -155,7 +159,17 @@ public abstract class UserEventDispatcher {
mActionDurationMillis = System.currentTimeMillis();
}
public abstract void dispatchUserEvent(LauncherEvent ev, Intent intent);
public void dispatchUserEvent(LauncherEvent ev, Intent intent) {
if (DEBUG_LOGGING) {
Log.d("UserEvent", 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[0]),
LoggerUtils.getTargetStr(ev.srcTarget[1]),
ev.elapsedContainerMillis,
ev.elapsedSessionMillis));
}
}
public int getPredictedRank(ComponentKey key) {
if (mPredictedApps == null) return -1;