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:
committed by
Michael Wright
parent
2c9fd5fbbb
commit
9ee5dff83c
@@ -29,6 +29,7 @@ import android.content.res.Configuration;
|
||||
import android.content.res.Resources.Theme;
|
||||
import android.database.sqlite.SQLiteCompatibilityWalFlags;
|
||||
import android.database.sqlite.SQLiteGlobal;
|
||||
import android.hardware.display.DisplayManagerInternal;
|
||||
import android.os.BaseBundle;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
@@ -677,9 +678,17 @@ public final class SystemServer {
|
||||
|
||||
// Manages Overlay packages
|
||||
traceBeginAndSlog("StartOverlayManagerService");
|
||||
mSystemServiceManager.startService(new OverlayManagerService(mSystemContext, installer));
|
||||
OverlayManagerService overlayManagerService = new OverlayManagerService(
|
||||
mSystemContext, installer);
|
||||
mSystemServiceManager.startService(overlayManagerService);
|
||||
traceEnd();
|
||||
|
||||
if (SystemProperties.getInt("persist.sys.displayinset.top", 0) > 0) {
|
||||
// DisplayManager needs the overlay immediately.
|
||||
overlayManagerService.updateSystemUiContext();
|
||||
LocalServices.getService(DisplayManagerInternal.class).onOverlayChanged();
|
||||
}
|
||||
|
||||
// The sensor service needs access to package manager service, app ops
|
||||
// service, and permissions service, therefore we start it after them.
|
||||
// Start sensor service in a separate thread. Completion should be checked
|
||||
|
||||
Reference in New Issue
Block a user