We do this by storing the masking inset in a persistent property.
The boot animation then animates itself to where it would be if that
masking inset were applied, then changes the viewport.
For this to work, we also need to make sure the DisplayManagerService
has the right overlay right at the start.
Bug: 112876936
Test: Hide cutout, then reboot. Verify boot animation is smooth.
Change-Id: I3e988b2340b2e0d2be3939bdc6878704c234ccc8
Previously, you could not use references to colors in places that
expected a Drawable. This new class, ColorStateListDrawable bridges the
gap by attaching a ColorStateList to a ColorDrawable, and hooks it into
resource loading wherever you might expect a Drawable.
Fixes: 18126411
Test: Unit tests to be added to CTS
Change-Id: I0ff9a089669da96e6b22b214f04d6726bc278152
This isn't something apps generally can handle, so we kill all of
them for now.
Test: Change cutout overlay that changes display size
Test: Rotate screen
Bug: 112876936
Change-Id: Ic3b0f1b3ae1e9bd93ac8f2c6952aa093878602b8
This will be used by the runtime to limit access to APIs based on their
targetSdkVersion in the manifest.
When adding new maxTargetSdk values to non-SDK interfaces, we use the
SDK version of the latest major (i.e. new letter) release of Android
that has been made public. e.g. while Q is in development, we add new
maxTargetSdk values of 28 (Build.VERSION_CODES.P), even if a P MR1 has
already been released.
We do this because:
- It reduces the number of distinct SDK levels that have to be
considered and enforced in the runtime.
- Using past releases means that there is always a well established
value to use.
See go/hidden-api-annotations for more context.
Test: m
Bug: 110868826
Change-Id: Idbe78510acf538ce941a9a61a64fcc0bdc4de38e
For some timing cases client side may not get desired display with old
displayId.
For this issue, client side has just received configuration change and
handle it in ActivityThread#handleActivityConfigurationChanged. At the
same time, DisplayManagerService was about to destory display. When
ViewRootImpl want to update display with new DisplayAdjustments, it got
null because the old displayId was removed.
For this scenario, fallback to use default display. Usually there should
be other displayId change event comes from server side to ask client update.
Change-Id: Ifb843f82b753761cb6306e7482b38a0ffd89498d
Fix: 73558361
Test: atest CtsWindowManagerDeviceTestCases
Test: atest CtsActivityManagerDeviceTestCases
I added a reference to a view in a pooled object,
but did not clear the reference to it when releasing it.
Thus the links to the View (and its Context) live as long
at the static object.
This code is only called when accessibility is on.
Bug: 112792715
Test: make
Change-Id: If716c33b91aac3a1da5fd4a857daa5b4b9b7e151
Continue trying to reduce the size of PackageManagerService by
extracting intent queries to a separate class. This is the first,
low hanging fruit, pass.
Test: Manual
Fixes: 110090130
Change-Id: I89f6968b3460ad9d64cdac75bea1eac8a9c90599