summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2016-03-15 00:32:17 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-03-15 00:32:19 +0000
commitdeee942be151fec441a912dbb6e500a191762a8c (patch)
tree832fd6c5df59fa3ca6bdeed175ffdcb5c177c7fc
parent84dce8cba90ca7f5042c6a45dc2caed711ab6081 (diff)
parente89eeac54766633e482b51c15e99d2d93843ce26 (diff)
Merge "Added input freeze reason string." into nyc-dev
-rw-r--r--services/core/java/com/android/server/wm/InputMonitor.java18
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java3
2 files changed, 20 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index e42658e5a2f7..b70218059b74 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -24,6 +24,7 @@ import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import android.app.ActivityManagerNative;
import android.graphics.Rect;
+import android.os.Debug;
import android.os.RemoteException;
import android.util.Log;
import android.util.Slog;
@@ -36,6 +37,7 @@ import com.android.server.input.InputApplicationHandle;
import com.android.server.input.InputManagerService;
import com.android.server.input.InputWindowHandle;
+import java.io.PrintWriter;
import java.util.Arrays;
final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
@@ -47,6 +49,9 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
// When true, prevents input dispatch from proceeding until set to false again.
private boolean mInputDispatchFrozen;
+ // The reason the input is currently frozen or null if the input isn't frozen.
+ private String mInputFreezeReason = null;
+
// When true, input dispatch proceeds normally. Otherwise all events are dropped.
// Initially false, so that input does not get dispatched until boot is finished at
// which point the ActivityManager will enable dispatching.
@@ -474,12 +479,16 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
}
public void freezeInputDispatchingLw() {
- if (! mInputDispatchFrozen) {
+ if (!mInputDispatchFrozen) {
if (DEBUG_INPUT) {
Slog.v(TAG_WM, "Freezing input dispatching");
}
mInputDispatchFrozen = true;
+
+ if (DEBUG_INPUT || true) {
+ mInputFreezeReason = Debug.getCallers(6);
+ }
updateInputDispatchModeLw();
}
}
@@ -491,6 +500,7 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
}
mInputDispatchFrozen = false;
+ mInputFreezeReason = null;
updateInputDispatchModeLw();
}
}
@@ -509,4 +519,10 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
private void updateInputDispatchModeLw() {
mService.mInputManager.setInputDispatchMode(mInputDispatchEnabled, mInputDispatchFrozen);
}
+
+ void dump(PrintWriter pw, String prefix) {
+ if (mInputFreezeReason != null) {
+ pw.println(prefix + "mInputFreezeReason=" + mInputFreezeReason);
+ }
+ }
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index ab6e94c56e3f..755851de4c53 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -9913,6 +9913,9 @@ public class WindowManagerService extends IWindowManager.Stub
pw.print(mLastFinishedFreezeSource);
}
pw.println();
+
+ mInputMonitor.dump(pw, " ");
+
if (dumpAll) {
pw.print(" mSystemDecorLayer="); pw.print(mSystemDecorLayer);
pw.print(" mScreenRect="); pw.println(mScreenRect.toShortString());