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

am: ba20ba17e0

Change-Id: I247ddee6ed2cdfde739beb84ec4b91a656c8be8f
This commit is contained in:
Mårten Kongstad
2019-04-12 13:25:11 -07:00
committed by android-build-merger
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)); 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() { private void delay() {
try { try {
Thread.sleep(1000); Thread.sleep(1000);

View File

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