Merge "Remove unused audio source"
diff --git a/core/java/android/webkit/GeolocationPermissions.java b/core/java/android/webkit/GeolocationPermissions.java
index 9c0f754..bc3d035 100644
--- a/core/java/android/webkit/GeolocationPermissions.java
+++ b/core/java/android/webkit/GeolocationPermissions.java
@@ -61,7 +61,8 @@
};
/**
- * Gets the singleton instance of this class.
+ * Gets the singleton instance of this class. This method cannot be
+ * called before the application instantiates a {@link WebView} instance.
*
* @return the singleton {@link GeolocationPermissions} instance
*/
diff --git a/services/java/com/android/server/wm/AppWindowAnimator.java b/services/java/com/android/server/wm/AppWindowAnimator.java
index 34513a1..ad68307 100644
--- a/services/java/com/android/server/wm/AppWindowAnimator.java
+++ b/services/java/com/android/server/wm/AppWindowAnimator.java
@@ -58,9 +58,9 @@
}
public void setAnimation(Animation anim, int width, int height) {
- if (WindowManagerService.localLOGV) Slog.v(
- TAG, "Setting animation in " + mAppToken + ": " + anim
- + " wxh=" + width + "x" + height);
+ if (WindowManagerService.localLOGV) Slog.v(TAG, "Setting animation in " + mAppToken
+ + ": " + anim + " wxh=" + width + "x" + height
+ + " isVisible=" + mAppToken.isVisible());
animation = anim;
animating = false;
if (!anim.isInitialized()) {
@@ -82,16 +82,17 @@
}
// Start out animation gone if window is gone, or visible if window is visible.
transformation.clear();
- transformation.setAlpha(mAppToken.reportedVisible ? 1 : 0);
+ transformation.setAlpha(mAppToken.isVisible() ? 1 : 0);
hasTransformation = true;
}
public void setDummyAnimation() {
- if (WindowManagerService.localLOGV) Slog.v(TAG, "Setting dummy animation in " + mAppToken);
+ if (WindowManagerService.localLOGV) Slog.v(TAG, "Setting dummy animation in " + mAppToken
+ + " isVisible=" + mAppToken.isVisible());
animation = sDummyAnimation;
hasTransformation = true;
transformation.clear();
- transformation.setAlpha(mAppToken.reportedVisible ? 1 : 0);
+ transformation.setAlpha(mAppToken.isVisible() ? 1 : 0);
}
public void clearAnimation() {
diff --git a/services/java/com/android/server/wm/AppWindowToken.java b/services/java/com/android/server/wm/AppWindowToken.java
index 275c9bf..adad09d8 100644
--- a/services/java/com/android/server/wm/AppWindowToken.java
+++ b/services/java/com/android/server/wm/AppWindowToken.java
@@ -223,6 +223,22 @@
return null;
}
+ boolean isVisible() {
+ final int N = allAppWindows.size();
+ // TODO: Consider using allDrawn instead of a single window.
+ for (int i=0; i<N; i++) {
+ WindowState win = allAppWindows.get(i);
+ if (!win.mAppFreezing
+ && (win.mViewVisibility == View.VISIBLE ||
+ (win.mWinAnimator.isAnimating() &&
+ !service.mAppTransition.isTransitionSet()))
+ && !win.mDestroying && win.isDrawnLw()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Override
void dump(PrintWriter pw, String prefix) {
super.dump(pw, prefix);
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 3e506145..c67a465 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -4476,8 +4476,7 @@
if (DEBUG_TOKEN_MOVEMENT || DEBUG_REORDER) Slog.v(TAG,
"Start moving token " + wtoken + " initially at "
+ oldIndex);
- if (oldIndex > index && mAppTransition.isTransitionSet()
- && !mAppTransition.isRunning()) {
+ if (oldIndex > index && mAppTransition.isTransitionSet()) {
// animation towards back has not started, copy old list for duration of animation.
mAnimatingAppTokens.clear();
mAnimatingAppTokens.addAll(mAppTokens);
@@ -4491,7 +4490,7 @@
if (DEBUG_REORDER) Slog.v(TAG, "Moved " + token + " to " + index + ":");
else if (DEBUG_TOKEN_MOVEMENT) Slog.v(TAG, "Moved " + token + " to " + index);
if (DEBUG_REORDER) dumpAppTokensLocked();
- if (!mAppTransition.isTransitionSet() && !mAppTransition.isRunning()) {
+ if (!mAppTransition.isTransitionSet()) {
// Not animating, bring animating app list in line with mAppTokens.
mAnimatingAppTokens.clear();
mAnimatingAppTokens.addAll(mAppTokens);
@@ -4612,11 +4611,9 @@
}
}
- if (!mAppTransition.isRunning()) {
- mAnimatingAppTokens.clear();
- mAnimatingAppTokens.addAll(mAppTokens);
- moveAppWindowsLocked(tokens, mAppTokens.size());
- }
+ mAnimatingAppTokens.clear();
+ mAnimatingAppTokens.addAll(mAppTokens);
+ moveAppWindowsLocked(tokens, mAppTokens.size());
}
Binder.restoreCallingIdentity(origId);
}
@@ -4631,7 +4628,7 @@
final long origId = Binder.clearCallingIdentity();
synchronized(mWindowMap) {
final int N = tokens.size();
- if (N > 0 && !mAppTransition.isRunning()) {
+ if (N > 0) {
// animating towards back, hang onto old list for duration of animation.
mAnimatingAppTokens.clear();
mAnimatingAppTokens.addAll(mAppTokens);
@@ -4651,11 +4648,9 @@
}
}
- if (!mAppTransition.isRunning()) {
- mAnimatingAppTokens.clear();
- mAnimatingAppTokens.addAll(mAppTokens);
- moveAppWindowsLocked(tokens, 0);
- }
+ mAnimatingAppTokens.clear();
+ mAnimatingAppTokens.addAll(mAppTokens);
+ moveAppWindowsLocked(tokens, 0);
}
Binder.restoreCallingIdentity(origId);
}
@@ -7949,7 +7944,6 @@
final AppWindowAnimator appAnimator = wtoken.mAppAnimator;
if (DEBUG_APP_TRANSITIONS) Slog.v(TAG, "Now opening app" + wtoken);
appAnimator.clearThumbnail();
- wtoken.reportedVisible = false;
wtoken.inPendingTransaction = false;
appAnimator.animation = null;
setTokenVisibilityLocked(wtoken, animLp, true, transit, false);
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 9acdd49..5b7cb99 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -1223,7 +1223,7 @@
if (mIsWallpaper && !mWin.mWallpaperVisible) {
// Wallpaper is no longer visible and there is no wp target => hide it.
hide();
- } else if (w.mAttachedHidden || !w.isReadyForDisplay()) {
+ } else if (w.mAttachedHidden || !w.isOnScreen()) {
hide();
mAnimator.hideWallpapersLocked(w);