Add receiver for app install/uninstall events
In order to keep the settings list up to date we are listening to package manager broadcasts so when an app is installed, etc it will trigger a refresh Bug: 264420106 Test: ondevice & atest Change-Id: I83be80e88dd03ebce1cb97a66fb759e1ef2537e8
This commit is contained in:
@@ -368,6 +368,71 @@ public class CredentialManagerPreferenceControllerTest {
|
||||
assertThat(pref3.isChecked()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRefreshIntent_packageAdded() {
|
||||
CredentialProviderInfo cpi = createCredentialProviderInfo();
|
||||
CredentialManagerPreferenceController controller =
|
||||
createControllerWithServices(Lists.newArrayList(cpi));
|
||||
String packageName = cpi.getServiceInfo().packageName;
|
||||
|
||||
// Create an intent with valid data.
|
||||
Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
assertThat(controller.handleRefreshIntent(intent)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRefreshIntent_packageRemoved() {
|
||||
CredentialProviderInfo cpi = createCredentialProviderInfo();
|
||||
CredentialManagerPreferenceController controller =
|
||||
createControllerWithServices(Lists.newArrayList(cpi));
|
||||
String packageName = cpi.getServiceInfo().packageName;
|
||||
|
||||
// Create an intent with valid data.
|
||||
Intent intent = new Intent(Intent.ACTION_PACKAGE_REMOVED);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
assertThat(controller.handleRefreshIntent(intent)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRefreshIntent_packageReplaced() {
|
||||
CredentialProviderInfo cpi = createCredentialProviderInfo();
|
||||
CredentialManagerPreferenceController controller =
|
||||
createControllerWithServices(Lists.newArrayList(cpi));
|
||||
String packageName = cpi.getServiceInfo().packageName;
|
||||
|
||||
// Create an intent with valid data.
|
||||
Intent intent = new Intent(Intent.ACTION_PACKAGE_REPLACED);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
assertThat(controller.handleRefreshIntent(intent)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRefreshIntent_packageChanged() {
|
||||
CredentialProviderInfo cpi = createCredentialProviderInfo();
|
||||
CredentialManagerPreferenceController controller =
|
||||
createControllerWithServices(Lists.newArrayList(cpi));
|
||||
String packageName = cpi.getServiceInfo().packageName;
|
||||
|
||||
// Create an intent with valid data.
|
||||
Intent intent = new Intent(Intent.ACTION_PACKAGE_CHANGED);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
assertThat(controller.handleRefreshIntent(intent)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleRefreshIntent_badData() {
|
||||
CredentialProviderInfo cpi = createCredentialProviderInfo();
|
||||
CredentialManagerPreferenceController controller =
|
||||
createControllerWithServices(Lists.newArrayList(cpi));
|
||||
String packageName = cpi.getServiceInfo().packageName;
|
||||
|
||||
// Create an intent with valid data.
|
||||
Intent intent = new Intent(Intent.ACTION_PACKAGE_ENABLE_ROLLBACK);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
assertThat(controller.handleRefreshIntent(intent)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleIntentWithProviderServiceInfo_handleBadIntent_missingData() {
|
||||
CredentialProviderInfo cpi = createCredentialProviderInfo();
|
||||
@@ -444,7 +509,8 @@ public class CredentialManagerPreferenceControllerTest {
|
||||
CredentialManagerPreferenceController controller =
|
||||
new CredentialManagerPreferenceController(
|
||||
mContext, mCredentialsPreferenceCategory.getKey());
|
||||
controller.setAvailableServices(() -> mock(Lifecycle.class), availableServices, addServiceOverride);
|
||||
controller.setAvailableServices(
|
||||
() -> mock(Lifecycle.class), availableServices, addServiceOverride);
|
||||
controller.setDelegate(mDelegate);
|
||||
return controller;
|
||||
}
|
||||
|
Reference in New Issue
Block a user