Merge "Unregister transport when user disables corresponding package. Register transport when user puts package in default enable state."
This commit is contained in:
committed by
Android (Google) Code Review
commit
b633647667
@@ -16,7 +16,9 @@
|
||||
|
||||
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_DISABLED_USER;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
@@ -166,6 +168,17 @@ public class TransportManager {
|
||||
onPackageEnabled(packageName);
|
||||
return;
|
||||
}
|
||||
case COMPONENT_ENABLED_STATE_DEFAULT: {
|
||||
// Package is set to its default enabled state (as specified in its manifest).
|
||||
// Unless explicitly specified in manifest, the default enabled state
|
||||
// is 'enabled'. Here, we assume that default state always means enabled.
|
||||
if (MORE_DEBUG) {
|
||||
Slog.d(TAG, "Package " + packageName
|
||||
+ " was put in default enabled state.");
|
||||
}
|
||||
onPackageEnabled(packageName);
|
||||
return;
|
||||
}
|
||||
case COMPONENT_ENABLED_STATE_DISABLED: {
|
||||
if (MORE_DEBUG) {
|
||||
Slog.d(TAG, "Package " + packageName + " was disabled.");
|
||||
@@ -173,6 +186,13 @@ public class TransportManager {
|
||||
onPackageDisabled(packageName);
|
||||
return;
|
||||
}
|
||||
case COMPONENT_ENABLED_STATE_DISABLED_USER: {
|
||||
if (MORE_DEBUG) {
|
||||
Slog.d(TAG, "Package " + packageName + " was disabled by user.");
|
||||
}
|
||||
onPackageDisabled(packageName);
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
Slog.w(TAG, "Package " + packageName + " enabled setting: " + enabled);
|
||||
return;
|
||||
|
||||
@@ -18,6 +18,7 @@ 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_DISABLED_USER;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||
|
||||
import static com.android.server.backup.testing.TransportData.genericTransport;
|
||||
@@ -326,7 +327,25 @@ public class TransportManagerTest {
|
||||
.setApplicationEnabledSetting(
|
||||
PACKAGE_A,
|
||||
Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED),
|
||||
0 /*flags*/);
|
||||
/* flags */ 0);
|
||||
transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
|
||||
|
||||
assertRegisteredTransports(transportManager, singletonList(mTransportB1));
|
||||
verify(mListener, never()).onTransportRegistered(any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnPackageChanged_whenPackageChanged_packageDisabledByUserUnregistersTransport()
|
||||
throws Exception {
|
||||
TransportManager transportManager =
|
||||
createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
|
||||
reset(mListener);
|
||||
|
||||
mContext.getPackageManager()
|
||||
.setApplicationEnabledSetting(
|
||||
PACKAGE_A,
|
||||
Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED_USER),
|
||||
/* flags */ 0);
|
||||
transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
|
||||
|
||||
assertRegisteredTransports(transportManager, singletonList(mTransportB1));
|
||||
@@ -344,7 +363,7 @@ public class TransportManagerTest {
|
||||
.setApplicationEnabledSetting(
|
||||
PACKAGE_A,
|
||||
Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED),
|
||||
0 /*flags*/);
|
||||
/* flags */ 0);
|
||||
transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
|
||||
|
||||
assertRegisteredTransports(transportManager, singletonList(mTransportB1));
|
||||
@@ -354,7 +373,7 @@ public class TransportManagerTest {
|
||||
.setApplicationEnabledSetting(
|
||||
PACKAGE_A,
|
||||
Integer.valueOf(COMPONENT_ENABLED_STATE_ENABLED),
|
||||
0 /*flags*/);
|
||||
/* flags */ 0);
|
||||
transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
|
||||
|
||||
assertRegisteredTransports(transportManager, asList(mTransportA1, mTransportB1));
|
||||
@@ -363,21 +382,32 @@ public class TransportManagerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnPackageChanged_whenPackageChanged_unknownComponentStateIsIgnored()
|
||||
public void testOnPackageChanged_whenPackageChanged_packageDefaultEnabledRegistersTransport()
|
||||
throws Exception {
|
||||
TransportManager transportManager =
|
||||
createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
|
||||
reset(mListener);
|
||||
|
||||
mContext.getPackageManager()
|
||||
.setApplicationEnabledSetting(
|
||||
PACKAGE_A,
|
||||
Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED_USER),
|
||||
/* flags */ 0);
|
||||
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_DEFAULT),
|
||||
0 /*flags*/);
|
||||
/* flags */ 0);
|
||||
transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);
|
||||
|
||||
assertRegisteredTransports(transportManager, asList(mTransportA1, mTransportB1));
|
||||
verify(mListener, never()).onTransportRegistered(any(), any());
|
||||
verify(mListener)
|
||||
.onTransportRegistered(mTransportA1.transportName, mTransportA1.transportDirName);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user