Revert "Fix onPackageChanged handling of disabled packages"
This reverts commit 33139c16611fed10883afe8cae5f03c8a69570b4.
Reason for revert: A CTS test is now flaky, see b/197093424
Change-Id: Ife432938448cc24bb2a61fa30873270bcf2ee1a7
diff --git a/services/backup/backuplib/java/com/android/server/backup/TransportManager.java b/services/backup/backuplib/java/com/android/server/backup/TransportManager.java
index b3773e3..fd573d5 100644
--- a/services/backup/backuplib/java/com/android/server/backup/TransportManager.java
+++ b/services/backup/backuplib/java/com/android/server/backup/TransportManager.java
@@ -16,9 +16,6 @@
package com.android.server.backup;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.annotation.WorkerThread;
@@ -60,7 +57,6 @@
/** Handles in-memory bookkeeping of all BackupTransport objects. */
public class TransportManager {
private static final String TAG = "BackupTransportManager";
- private static final boolean MORE_DEBUG = false;
@VisibleForTesting
public static final String SERVICE_ACTION_TRANSPORT_HOST = "android.backup.TRANSPORT_HOST";
@@ -132,52 +128,14 @@
}
}
- void onPackageEnabled(String packageName) {
- onPackageAdded(packageName);
- }
-
- void onPackageDisabled(String packageName) {
- onPackageRemoved(packageName);
- }
-
@WorkerThread
void onPackageChanged(String packageName, String... components) {
- // Determine if the overall package has changed and not just its
- // components - see {@link EXTRA_CHANGED_COMPONENT_NAME_LIST}. When we
- // know a package was enabled/disabled we'll handle that directly and
- // not continue with onPackageChanged.
- if (components.length == 1 && components[0].equals(packageName)) {
- final int enabled = mPackageManager.getApplicationEnabledSetting(packageName);
- switch (enabled) {
- case COMPONENT_ENABLED_STATE_ENABLED: {
- if (MORE_DEBUG) {
- Slog.d(TAG, "Package " + packageName + " was enabled.");
- }
- onPackageEnabled(packageName);
- return;
- }
- case COMPONENT_ENABLED_STATE_DISABLED: {
- if (MORE_DEBUG) {
- Slog.d(TAG, "Package " + packageName + " was disabled.");
- }
- onPackageDisabled(packageName);
- return;
- }
- default: {
- Slog.w(TAG, "Package " + packageName + " enabled setting: " + enabled);
- return;
- }
- }
- }
// Unfortunately this can't be atomic because we risk a deadlock if
// registerTransportsFromPackage() is put inside the synchronized block
Set<ComponentName> transportComponents = new ArraySet<>(components.length);
for (String componentName : components) {
transportComponents.add(new ComponentName(packageName, componentName));
}
- if (transportComponents.isEmpty()) {
- return;
- }
synchronized (mTransportLock) {
mRegisteredTransportsDescriptionMap.keySet().removeIf(transportComponents::contains);
}
diff --git a/services/robotests/backup/src/com/android/server/backup/TransportManagerTest.java b/services/robotests/backup/src/com/android/server/backup/TransportManagerTest.java
index fc36655..42115d4 100644
--- a/services/robotests/backup/src/com/android/server/backup/TransportManagerTest.java
+++ b/services/robotests/backup/src/com/android/server/backup/TransportManagerTest.java
@@ -16,10 +16,6 @@
package com.android.server.backup;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-
import static com.android.server.backup.testing.TransportData.genericTransport;
import static com.android.server.backup.testing.TransportTestUtils.mockTransport;
import static com.android.server.backup.testing.TransportTestUtils.setUpTransportsForTransportManager;
@@ -316,71 +312,6 @@
}
@Test
- public void testOnPackageChanged_onPackageChanged_packageDisabledUnregistersTransport()
- throws Exception {
- TransportManager transportManager =
- createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
- reset(mListener);
-
- mContext.getPackageManager()
- .setApplicationEnabledSetting(
- PACKAGE_A,
- Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED),
- 0 /*flags*/);
- transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
-
- assertRegisteredTransports(transportManager, singletonList(mTransportB1));
- verify(mListener, never()).onTransportRegistered(any(), any());
- }
-
- @Test
- public void testOnPackageChanged_onPackageChanged_packageEnabledRegistersTransport()
- throws Exception {
- TransportManager transportManager =
- createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
- reset(mListener);
-
- mContext.getPackageManager()
- .setApplicationEnabledSetting(
- PACKAGE_A,
- Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED),
- 0 /*flags*/);
- transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
-
- assertRegisteredTransports(transportManager, singletonList(mTransportB1));
- verify(mListener, never()).onTransportRegistered(any(), any());
-
- mContext.getPackageManager()
- .setApplicationEnabledSetting(
- PACKAGE_A,
- Integer.valueOf(COMPONENT_ENABLED_STATE_ENABLED),
- 0 /*flags*/);
- transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
-
- assertRegisteredTransports(transportManager, asList(mTransportA1, mTransportB1));
- verify(mListener)
- .onTransportRegistered(mTransportA1.transportName, mTransportA1.transportDirName);
- }
-
- @Test
- public void testOnPackageChanged_onPackageChanged_unknownComponentStateIsIgnored()
- throws Exception {
- TransportManager transportManager =
- createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
- reset(mListener);
-
- mContext.getPackageManager()
- .setApplicationEnabledSetting(
- PACKAGE_A,
- Integer.valueOf(COMPONENT_ENABLED_STATE_DEFAULT),
- 0 /*flags*/);
- transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
-
- assertRegisteredTransports(transportManager, asList(mTransportA1, mTransportB1));
- verify(mListener, never()).onTransportRegistered(any(), any());
- }
-
- @Test
public void testRegisterAndSelectTransport_whenTransportRegistered() throws Exception {
TransportManager transportManager =
createTransportManagerWithRegisteredTransports(null, mTransportA1);
diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowApplicationPackageManager.java b/services/robotests/src/com/android/server/testing/shadows/ShadowApplicationPackageManager.java
index e4c34a3..aea36e5 100644
--- a/services/robotests/src/com/android/server/testing/shadows/ShadowApplicationPackageManager.java
+++ b/services/robotests/src/com/android/server/testing/shadows/ShadowApplicationPackageManager.java
@@ -16,7 +16,6 @@
package com.android.server.testing.shadows;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.NameNotFoundException;
import android.app.ApplicationPackageManager;
@@ -45,7 +44,6 @@
private static final List<PackageInfo> sInstalledPackages = new ArrayList<>();
private static final Map<String, Integer> sPackageUids = new ArrayMap<>();
private static final Map<Integer, Map<String, Integer>> sUserPackageUids = new ArrayMap<>();
- private static final Map<String, Integer> sPackageAppEnabledStates = new ArrayMap<>();
/**
* Registers the package {@code packageName} to be returned when invoking {@link
@@ -55,7 +53,6 @@
public static void addInstalledPackage(String packageName, PackageInfo packageInfo) {
sPackageInfos.put(packageName, packageInfo);
sInstalledPackages.add(packageInfo);
- sPackageAppEnabledStates.put(packageName, Integer.valueOf(COMPONENT_ENABLED_STATE_DEFAULT));
}
/**
@@ -80,19 +77,6 @@
}
@Override
- protected int getApplicationEnabledSetting(String packageName) {
- if (!sPackageAppEnabledStates.containsKey(packageName)) {
- return COMPONENT_ENABLED_STATE_DEFAULT;
- }
- return sPackageAppEnabledStates.get(packageName);
- }
-
- @Override
- protected void setApplicationEnabledSetting(String packageName, int newState, int flags) {
- sPackageAppEnabledStates.put(packageName, Integer.valueOf(newState)); // flags unused here.
- }
-
- @Override
protected PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId)
throws NameNotFoundException {
if (!sPackageInfos.containsKey(packageName)) {
@@ -131,7 +115,6 @@
public static void reset() {
sPackageInfos.clear();
sInstalledPackages.clear();
- sPackageAppEnabledStates.clear();
org.robolectric.shadows.ShadowApplicationPackageManager.reset();
}
}