OMS: fix listener callbacks triggered by changes to target package
The OverlayManagerListener connected to the OverlayManagerServiceImpl
should be notified when and only when the overlay settings have been
modified. The pattern used to fulfill this contract as a result of a
change to a target package is as follows:
if (updateAllOverlaysForTarget(...)) {
mListener.onOverlaysChanged(...);
}
Fix two violations of this pattern:
- The listener was always notified
- The listener was never notified
Test: manual
Change-Id: Id24a439e2eaaf976e8c7d650af36d58632cfb4ba
This commit is contained in:
@@ -169,8 +169,9 @@ final class OverlayManagerServiceImpl {
|
||||
}
|
||||
|
||||
final PackageInfo targetPackage = mPackageManager.getPackageInfo(packageName, userId);
|
||||
updateAllOverlaysForTarget(packageName, userId, targetPackage);
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
if (updateAllOverlaysForTarget(packageName, userId, targetPackage)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
}
|
||||
|
||||
void onTargetPackageChanged(@NonNull final String packageName, final int userId) {
|
||||
@@ -210,7 +211,9 @@ final class OverlayManagerServiceImpl {
|
||||
Slog.d(TAG, "onTargetPackageRemoved packageName=" + packageName + " userId=" + userId);
|
||||
}
|
||||
|
||||
updateAllOverlaysForTarget(packageName, userId, null);
|
||||
if (updateAllOverlaysForTarget(packageName, userId, null)) {
|
||||
mListener.onOverlaysChanged(packageName, userId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user