diff options
author | 2016-03-15 00:32:17 +0000 | |
---|---|---|
committer | 2016-03-15 00:32:19 +0000 | |
commit | deee942be151fec441a912dbb6e500a191762a8c (patch) | |
tree | 832fd6c5df59fa3ca6bdeed175ffdcb5c177c7fc | |
parent | 84dce8cba90ca7f5042c6a45dc2caed711ab6081 (diff) | |
parent | e89eeac54766633e482b51c15e99d2d93843ce26 (diff) |
Merge "Added input freeze reason string." into nyc-dev
-rw-r--r-- | services/core/java/com/android/server/wm/InputMonitor.java | 18 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 3 |
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()); |