summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java2
-rw-r--r--services/java/com/android/server/wm/WindowAnimator.java4
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java24
-rw-r--r--services/java/com/android/server/wm/WindowStateAnimator.java4
4 files changed, 21 insertions, 13 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 186460d..78b441a 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -3181,7 +3181,7 @@ public final class ActivityManagerService extends ActivityManagerNative
}
// Log the ANR to the main log.
- StringBuilder info = mStringBuilder;
+ StringBuilder info = new StringBuilder();
info.setLength(0);
info.append("ANR in ").append(app.processName);
if (activity != null && activity.shortComponentName != null) {
diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java
index 0d64b68..1198a77 100644
--- a/services/java/com/android/server/wm/WindowAnimator.java
+++ b/services/java/com/android/server/wm/WindowAnimator.java
@@ -471,9 +471,7 @@ public class WindowAnimator {
Surface.closeTransaction();
}
- if (mBulkUpdateParams != 0) {
- mService.bulkSetParameters(mBulkUpdateParams);
- }
+ mService.bulkSetParameters(mBulkUpdateParams);
}
WindowState mCurrentFocus;
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 00972fa..8d65dc3 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -6882,22 +6882,33 @@ public class WindowManagerService extends IWindowManager.Stub
case BULK_UPDATE_PARAMETERS: {
// Used to send multiple changes from the animation side to the layout side.
synchronized (mWindowMap) {
+ boolean doRequest = false;
// TODO(cmautner): As the number of bits grows, use masks of bit groups to
// eliminate unnecessary tests.
if ((msg.arg1 & LayoutFields.SET_UPDATE_ROTATION) != 0) {
mInnerFields.mUpdateRotation = true;
+ doRequest = true;
}
if ((msg.arg1 & LayoutFields.SET_WALLPAPER_MAY_CHANGE) != 0) {
mInnerFields.mWallpaperMayChange = true;
+ doRequest = true;
}
if ((msg.arg1 & LayoutFields.SET_FORCE_HIDING_CHANGED) != 0) {
mInnerFields.mWallpaperForceHidingChanged = true;
+ doRequest = true;
}
if ((msg.arg1 & LayoutFields.CLEAR_ORIENTATION_CHANGE_COMPLETE) != 0) {
mInnerFields.mOrientationChangeComplete = false;
+ } else {
+ mInnerFields.mOrientationChangeComplete = true;
+ if (mWindowsFreezingScreen) {
+ doRequest = true;
+ }
}
- requestTraversalLocked();
+ if (doRequest) {
+ requestTraversalLocked();
+ }
}
break;
}
@@ -6908,8 +6919,6 @@ public class WindowManagerService extends IWindowManager.Stub
(Pair<WindowStateAnimator, Region>) msg.obj;
final WindowStateAnimator winAnimator = pair.first;
winAnimator.setTransparentRegionHint(pair.second);
-
- scheduleAnimationLocked();
break;
}
@@ -8472,11 +8481,13 @@ public class WindowManagerService extends IWindowManager.Stub
!mInnerFields.mUpdateRotation) {
checkDrawnWindowsLocked();
}
- mInnerFields.mOrientationChangeComplete = true;
// Check to see if we are now in a state where the screen should
// be enabled, because the window obscured flags have changed.
enableScreenIfNeededLocked();
+// Slog.e(TAG, "performLayoutAndPlaceSurfacesLockedInner exit: mPendingLayoutChanges="
+// + Integer.toHexString(mPendingLayoutChanges) + " mLayoutNeeded=" + mLayoutNeeded
+// + " animating=" + mAnimator.mAnimating);
}
void checkDrawnWindowsLocked() {
@@ -9512,11 +9523,6 @@ public class WindowManagerService extends IWindowManager.Stub
public void onHardKeyboardStatusChange(boolean available, boolean enabled);
}
- void notifyAnimationChangedLayout(final int pendingLayoutChanges) {
- mPendingLayoutChanges |= pendingLayoutChanges;
- requestTraversalLocked();
- }
-
void debugLayoutRepeats(final String msg, int pendingLayoutChanges) {
if (mLayoutRepeatCount >= LAYOUT_REPEAT_THRESHOLD) {
Slog.v(TAG, "Layouts looping: " + msg + ", mPendingLayoutChanges = 0x" +
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 220f5e0..941a5e1 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -943,6 +943,10 @@ class WindowStateAnimator {
}
void setTransparentRegionHint(final Region region) {
+ if (mSurface == null) {
+ Slog.w(TAG, "setTransparentRegionHint: null mSurface after mHasSurface true");
+ return;
+ }
if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG,
">>> OPEN TRANSACTION setTransparentRegion");
Surface.openTransaction();