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 b3773e3bcb534..fd573d5e06658 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 @@ import java.util.function.Predicate; /** 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 @@ public class TransportManager { } } - 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 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 fc36655bf516c..42115d437ee06 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; @@ -315,71 +311,6 @@ public class TransportManagerTest { .onTransportRegistered(mTransportA2.transportName, mTransportA2.transportDirName); } - @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 = 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 e4c34a307568f..aea36e555ad7b 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 @@ public class ShadowApplicationPackageManager private static final List sInstalledPackages = new ArrayList<>(); private static final Map sPackageUids = new ArrayMap<>(); private static final Map> sUserPackageUids = new ArrayMap<>(); - private static final Map sPackageAppEnabledStates = new ArrayMap<>(); /** * Registers the package {@code packageName} to be returned when invoking {@link @@ -55,7 +53,6 @@ public class ShadowApplicationPackageManager public static void addInstalledPackage(String packageName, PackageInfo packageInfo) { sPackageInfos.put(packageName, packageInfo); sInstalledPackages.add(packageInfo); - sPackageAppEnabledStates.put(packageName, Integer.valueOf(COMPONENT_ENABLED_STATE_DEFAULT)); } /** @@ -79,19 +76,6 @@ public class ShadowApplicationPackageManager sUserPackageUids.put(userId, userPackageUids); } - @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 { @@ -131,7 +115,6 @@ public class ShadowApplicationPackageManager public static void reset() { sPackageInfos.clear(); sInstalledPackages.clear(); - sPackageAppEnabledStates.clear(); org.robolectric.shadows.ShadowApplicationPackageManager.reset(); } }