diff options
Diffstat (limited to 'services/java/com/android/server/wm/InputMonitor.java')
-rw-r--r-- | services/java/com/android/server/wm/InputMonitor.java | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/services/java/com/android/server/wm/InputMonitor.java b/services/java/com/android/server/wm/InputMonitor.java index 47cd34a..285d230 100644 --- a/services/java/com/android/server/wm/InputMonitor.java +++ b/services/java/com/android/server/wm/InputMonitor.java @@ -87,26 +87,29 @@ final class InputMonitor implements InputManagerService.Callbacks { public long notifyANR(InputApplicationHandle inputApplicationHandle, InputWindowHandle inputWindowHandle) { AppWindowToken appWindowToken = null; - if (inputWindowHandle != null) { - synchronized (mService.mWindowMap) { - WindowState windowState = (WindowState) inputWindowHandle.windowState; + synchronized (mService.mWindowMap) { + WindowState windowState = null; + if (inputWindowHandle != null) { + windowState = (WindowState) inputWindowHandle.windowState; if (windowState != null) { - Slog.i(WindowManagerService.TAG, "Input event dispatching timed out sending to " - + windowState.mAttrs.getTitle()); appWindowToken = windowState.mAppToken; - mService.saveANRStateLocked(appWindowToken, windowState); } } - } - - if (appWindowToken == null && inputApplicationHandle != null) { - appWindowToken = (AppWindowToken)inputApplicationHandle.appWindowToken; - if (appWindowToken != null) { - Slog.i(WindowManagerService.TAG, - "Input event dispatching timed out sending to application " - + appWindowToken.stringName); - mService.saveANRStateLocked(appWindowToken, null); + if (appWindowToken == null && inputApplicationHandle != null) { + appWindowToken = (AppWindowToken)inputApplicationHandle.appWindowToken; } + + if (windowState != null) { + Slog.i(WindowManagerService.TAG, "Input event dispatching timed out " + + "sending to " + windowState.mAttrs.getTitle()); + } else if (appWindowToken != null) { + Slog.i(WindowManagerService.TAG, "Input event dispatching timed out " + + "sending to application " + appWindowToken.stringName); + } else { + Slog.i(WindowManagerService.TAG, "Input event dispatching timed out."); + } + + mService.saveANRStateLocked(appWindowToken, windowState); } if (appWindowToken != null && appWindowToken.appToken != null) { |