BootAnimation: Fix boot animation with hidden cutout

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
This commit is contained in:
Adrian Roos
2018-08-22 20:19:49 +02:00
committed by Michael Wright
parent 2c9fd5fbbb
commit 9ee5dff83c
7 changed files with 152 additions and 5 deletions

View File

@@ -146,6 +146,7 @@ import com.android.internal.os.RuntimeInit;
import com.android.internal.os.SomeArgs;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.internal.util.function.pooled.PooledLambda;
import com.android.org.conscrypt.OpenSSLSocketImpl;
import com.android.org.conscrypt.TrustedCertificateStore;
@@ -5144,6 +5145,16 @@ public final class ActivityThread extends ClientTransactionHandler {
}
}
/**
* Updates the application info.
*
* This only works in the system process. Must be called on the main thread.
*/
public void handleSystemApplicationInfoChanged(@NonNull ApplicationInfo ai) {
Preconditions.checkState(mSystemThread, "Must only be called in the system process");
handleApplicationInfoChanged(ai);
}
void handleApplicationInfoChanged(@NonNull final ApplicationInfo ai) {
// Updates triggered by package installation go through a package update
// receiver. Here we try to capture ApplicationInfo changes that are