Merge "OMS: always update overlays.xml when overlay is removed" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-12 19:46:30 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 4 deletions

View File

@@ -163,6 +163,20 @@ public class InstallOverlayTests extends BaseHostJUnit4Test {
assertTrue(overlayManagerContainsPackage(APP_OVERLAY_PACKAGE_NAME));
}
@Test
public void changesPersistedWhenUninstallingDisabledOverlay() throws Exception {
getDevice().enableAdbRoot();
assertFalse(getDevice().executeShellCommand("cat /data/system/overlays.xml")
.contains(APP_OVERLAY_PACKAGE_NAME));
installPackage("OverlayHostTests_AppOverlayV1.apk");
assertTrue(getDevice().executeShellCommand("cat /data/system/overlays.xml")
.contains(APP_OVERLAY_PACKAGE_NAME));
uninstallPackage(APP_OVERLAY_PACKAGE_NAME);
delay();
assertFalse(getDevice().executeShellCommand("cat /data/system/overlays.xml")
.contains(APP_OVERLAY_PACKAGE_NAME));
}
private void delay() {
try {
Thread.sleep(1000);

View File

@@ -452,10 +452,7 @@ final class OverlayManagerServiceImpl {
final OverlayInfo overlayInfo = mSettings.getOverlayInfo(packageName, userId);
if (mSettings.remove(packageName, userId)) {
removeIdmapIfPossible(overlayInfo);
if (overlayInfo.isEnabled()) {
// Only trigger updates if the overlay was enabled.
mListener.onOverlaysChanged(overlayInfo.targetPackageName, userId);
}
mListener.onOverlaysChanged(overlayInfo.targetPackageName, userId);
}
} catch (OverlayManagerSettings.BadKeyException e) {
Slog.e(TAG, "failed to remove overlay", e);