Merge "Fix ScreenDecorWindowTests." into rvc-dev am: a43cf97450 am: c2ec566060

Change-Id: Idf3f508b08150f3f7db293bdd15729960236c6ec
This commit is contained in:
Yuncheol Heo
2020-04-16 20:59:06 +00:00
committed by Automerger Merge Worker

View File

@@ -25,6 +25,8 @@ import static android.view.Gravity.BOTTOM;
import static android.view.Gravity.LEFT; import static android.view.Gravity.LEFT;
import static android.view.Gravity.RIGHT; import static android.view.Gravity.RIGHT;
import static android.view.Gravity.TOP; import static android.view.Gravity.TOP;
import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
import static android.view.InsetsState.ITYPE_STATUS_BAR;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
@@ -60,7 +62,6 @@ import android.view.WindowInsets;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.TextView; import android.widget.TextView;
import androidx.test.filters.FlakyTest;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import org.junit.After; import org.junit.After;
@@ -78,8 +79,6 @@ import java.util.function.BooleanSupplier;
*/ */
// TODO: Add test for FLAG_FULLSCREEN which hides the status bar and also other flags. // TODO: Add test for FLAG_FULLSCREEN which hides the status bar and also other flags.
// TODO: Test non-Activity windows. // TODO: Test non-Activity windows.
@FlakyTest(detail = "TODO (b/145242835): Re-enable once type mapping is implemented for "
+ "PRIVATE_FLAG_IS_SCREEN_DECOR")
@SmallTest @SmallTest
@Presubmit @Presubmit
public class ScreenDecorWindowTests { public class ScreenDecorWindowTests {
@@ -187,13 +186,24 @@ public class ScreenDecorWindowTests {
assertTopInsetEquals(mTestActivity, initialInsets.getSystemWindowInsetTop()); assertTopInsetEquals(mTestActivity, initialInsets.getSystemWindowInsetTop());
} }
@Test
public void testProvidesInsetsTypes() {
int[] providesInsetsTypes = new int[]{ITYPE_STATUS_BAR};
final View win = createWindow("StatusBarSubPanel", TOP, MATCH_PARENT, mDecorThickness, RED,
FLAG_LAYOUT_IN_SCREEN, 0, providesInsetsTypes);
assertInsetGreaterOrEqual(mTestActivity, TOP, mDecorThickness);
}
private View createDecorWindow(int gravity, int width, int height) { private View createDecorWindow(int gravity, int width, int height) {
int[] providesInsetsTypes =
new int[]{gravity == TOP ? ITYPE_STATUS_BAR : ITYPE_NAVIGATION_BAR};
return createWindow("decorWindow", gravity, width, height, RED, return createWindow("decorWindow", gravity, width, height, RED,
FLAG_LAYOUT_IN_SCREEN, PRIVATE_FLAG_IS_SCREEN_DECOR); FLAG_LAYOUT_IN_SCREEN, PRIVATE_FLAG_IS_SCREEN_DECOR, providesInsetsTypes);
} }
private View createWindow(String name, int gravity, int width, int height, int color, int flags, private View createWindow(String name, int gravity, int width, int height, int color, int flags,
int privateFlags) { int privateFlags, int[] providesInsetsTypes) {
final View[] viewHolder = new View[1]; final View[] viewHolder = new View[1];
final int finalFlag = flags final int finalFlag = flags
@@ -205,6 +215,7 @@ public class ScreenDecorWindowTests {
width, height, TYPE_APPLICATION_OVERLAY, finalFlag, PixelFormat.OPAQUE); width, height, TYPE_APPLICATION_OVERLAY, finalFlag, PixelFormat.OPAQUE);
lp.gravity = gravity; lp.gravity = gravity;
lp.privateFlags |= privateFlags; lp.privateFlags |= privateFlags;
lp.providesInsetsTypes = providesInsetsTypes;
final TextView view = new TextView(mContext); final TextView view = new TextView(mContext);
view.setText("ScreenDecorWindowTests - " + name); view.setText("ScreenDecorWindowTests - " + name);