Merge "Use the WS hidden flag instead of WSA for dim check"
This commit is contained in:
committed by
Android (Google) Code Review
commit
508be2ef35
@@ -265,7 +265,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
// This is a non-system overlay window that is currently force hidden.
|
||||
private boolean mForceHideNonSystemOverlayWindow;
|
||||
boolean mAppFreezing;
|
||||
boolean mHidden; // Used to determine if to show child windows.
|
||||
boolean mHidden = true; // Used to determine if to show child windows.
|
||||
boolean mWallpaperVisible; // for wallpaper, what was last vis report?
|
||||
private boolean mDragResizing;
|
||||
private boolean mDragResizingChangeReported = true;
|
||||
@@ -4505,13 +4505,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
if (!mAnimatingExit && mAppDied) {
|
||||
mIsDimming = true;
|
||||
dimmer.dimAbove(getPendingTransaction(), this, DEFAULT_DIM_AMOUNT_DEAD_WINDOW);
|
||||
} else if ((mAttrs.flags & FLAG_DIM_BEHIND) != 0 && isVisibleNow()
|
||||
&& !mWinAnimator.mLastHidden) {
|
||||
} else if ((mAttrs.flags & FLAG_DIM_BEHIND) != 0 && isVisibleNow() && !mHidden) {
|
||||
// Only show a dim behind when the following is satisfied:
|
||||
// 1. The window has the flag FLAG_DIM_BEHIND
|
||||
// 2. The WindowToken is not hidden so dims aren't shown when the window is exiting.
|
||||
// 3. The WS is considered visible according to the isVisible() method
|
||||
// 4. The WSA is not hidden.
|
||||
// 4. The WS is not hidden.
|
||||
mIsDimming = true;
|
||||
dimmer.dimBelow(getPendingTransaction(), this, mAttrs.dimAmount);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
|
||||
import static com.android.server.wm.WindowContainer.POSITION_TOP;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -38,7 +39,6 @@ import org.junit.runner.RunWith;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Path;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.os.SystemClock;
|
||||
import android.platform.test.annotations.Presubmit;
|
||||
@@ -166,6 +166,7 @@ public class DisplayContentTests extends WindowTestsBase {
|
||||
assertTrue(appWin.canBeImeTarget());
|
||||
WindowState imeTarget = mDisplayContent.computeImeTarget(false /* updateImeTarget */);
|
||||
assertEquals(appWin, imeTarget);
|
||||
appWin.mHidden = false;
|
||||
|
||||
// Verify that an child window can be an ime target.
|
||||
final WindowState childWin = createWindow(appWin,
|
||||
|
||||
@@ -36,6 +36,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA_OVERLAY;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
@@ -57,15 +58,17 @@ public class WindowStateTests extends WindowTestsBase {
|
||||
final WindowState child1 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child1");
|
||||
final WindowState child2 = createWindow(parentWindow, FIRST_SUB_WINDOW, "child2");
|
||||
|
||||
assertFalse(parentWindow.mHidden);
|
||||
// parentWindow is initially set to hidden.
|
||||
assertTrue(parentWindow.mHidden);
|
||||
assertFalse(parentWindow.isParentWindowHidden());
|
||||
assertTrue(child1.isParentWindowHidden());
|
||||
assertTrue(child2.isParentWindowHidden());
|
||||
|
||||
parentWindow.mHidden = false;
|
||||
assertFalse(parentWindow.isParentWindowHidden());
|
||||
assertFalse(child1.isParentWindowHidden());
|
||||
assertFalse(child2.isParentWindowHidden());
|
||||
|
||||
parentWindow.mHidden = true;
|
||||
assertFalse(parentWindow.isParentWindowHidden());
|
||||
assertTrue(child1.isParentWindowHidden());
|
||||
assertTrue(child2.isParentWindowHidden());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user