Merge "RRO: Fix black screen flashes for splits" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
deffd0963f
@@ -389,16 +389,11 @@ public final class OverlayManagerService extends SystemService {
|
||||
final PackageInfo pi = mPackageManager.getPackageInfo(packageName, userId,
|
||||
false);
|
||||
if (pi != null) {
|
||||
/*
|
||||
* Only update overlay settings when an overlay becomes enabled or disabled.
|
||||
* Enabling or disabling components of a target should not change the
|
||||
* target's overlays. Since, overlays do not have components, this will only
|
||||
* update overlay settings if an overlay package becomes enabled or
|
||||
* disabled.
|
||||
*/
|
||||
mPackageManager.cachePackageInfo(packageName, userId, pi);
|
||||
if (pi.isOverlayPackage()) {
|
||||
mImpl.onOverlayPackageChanged(packageName, userId);
|
||||
} else {
|
||||
mImpl.onTargetPackageChanged(packageName, userId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,15 +212,21 @@ final class OverlayManagerServiceImpl {
|
||||
}
|
||||
}
|
||||
|
||||
void onTargetPackageChanged(@NonNull final String packageName, final int userId) {
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, "onTargetPackageChanged packageName=" + packageName + " userId=" + userId);
|
||||
}
|
||||
|
||||
updateAllOverlaysForTarget(packageName, userId, 0);
|
||||
}
|
||||
|
||||
void onTargetPackageUpgrading(@NonNull final String packageName, final int userId) {
|
||||
if (DEBUG) {
|
||||
Slog.d(TAG, "onTargetPackageUpgrading packageName=" + packageName + " userId="
|
||||
+ userId);
|
||||
}
|
||||
|
||||
if (updateAllOverlaysForTarget(packageName, userId, FLAG_TARGET_IS_UPGRADING)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
updateAllOverlaysForTarget(packageName, userId, FLAG_TARGET_IS_UPGRADING);
|
||||
}
|
||||
|
||||
void onTargetPackageUpgraded(@NonNull final String packageName, final int userId) {
|
||||
@@ -228,9 +234,7 @@ final class OverlayManagerServiceImpl {
|
||||
Slog.d(TAG, "onTargetPackageUpgraded packageName=" + packageName + " userId=" + userId);
|
||||
}
|
||||
|
||||
if (updateAllOverlaysForTarget(packageName, userId, 0)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
updateAllOverlaysForTarget(packageName, userId, 0);
|
||||
}
|
||||
|
||||
void onTargetPackageRemoved(@NonNull final String packageName, final int userId) {
|
||||
@@ -688,6 +692,11 @@ final class OverlayManagerServiceImpl {
|
||||
}
|
||||
|
||||
interface OverlayChangeListener {
|
||||
|
||||
/**
|
||||
* An event triggered by changes made to overlay state or settings as well as changes that
|
||||
* add or remove target packages of overlays.
|
||||
**/
|
||||
void onOverlaysChanged(@NonNull String targetPackage, int userId);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user