Revert "Add receiver for app install/uninstall events"

This reverts commit 86e092d84a.

Reason for revert: Probable culprit for b/278615544.

Change-Id: I5ff8730ab3e1974967b8c9f840f0ee3110dad483
This commit is contained in:
Priyanka Advani
2023-04-17 23:05:32 +00:00
committed by Android (Google) Code Review
parent 86e092d84a
commit 57a077f8a5
2 changed files with 2 additions and 110 deletions

View File

@@ -22,12 +22,10 @@ import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
@@ -65,7 +63,6 @@ import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@@ -80,13 +77,6 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
private static final String TAG = "CredentialManagerPreferenceController"; private static final String TAG = "CredentialManagerPreferenceController";
private static final String ALTERNATE_INTENT = "android.settings.SYNC_SETTINGS"; private static final String ALTERNATE_INTENT = "android.settings.SYNC_SETTINGS";
private static final int MAX_SELECTABLE_PROVIDERS = 5; private static final int MAX_SELECTABLE_PROVIDERS = 5;
private static final Set<String> REFRESH_CONTENTS_INTENTS =
new HashSet<>(
Arrays.asList(
Intent.ACTION_PACKAGE_REMOVED,
Intent.ACTION_PACKAGE_REPLACED,
Intent.ACTION_PACKAGE_ADDED,
Intent.ACTION_PACKAGE_CHANGED));
private final PackageManager mPm; private final PackageManager mPm;
private final IconDrawableFactory mIconFactory; private final IconDrawableFactory mIconFactory;
@@ -96,7 +86,6 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
private final Executor mExecutor; private final Executor mExecutor;
private final Map<String, SwitchPreference> mPrefs = new HashMap<>(); // key is package name private final Map<String, SwitchPreference> mPrefs = new HashMap<>(); // key is package name
private final List<ServiceInfo> mPendingServiceInfos = new ArrayList<>(); private final List<ServiceInfo> mPendingServiceInfos = new ArrayList<>();
private final RefreshContentsReceiver mReceiver = new RefreshContentsReceiver();
private @Nullable FragmentManager mFragmentManager = null; private @Nullable FragmentManager mFragmentManager = null;
private @Nullable Delegate mDelegate = null; private @Nullable Delegate mDelegate = null;
@@ -111,14 +100,6 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
mExecutor = ContextCompat.getMainExecutor(mContext); mExecutor = ContextCompat.getMainExecutor(mContext);
mCredentialManager = mCredentialManager =
getCredentialManager(context, preferenceKey.equals("credentials_test")); getCredentialManager(context, preferenceKey.equals("credentials_test"));
// Register the receiver
final IntentFilter packageIntentFilter = new IntentFilter();
for (String action : REFRESH_CONTENTS_INTENTS) {
packageIntentFilter.addAction(action);
}
packageIntentFilter.addDataScheme("package");
context.registerReceiver(mReceiver, packageIntentFilter, Context.RECEIVER_EXPORTED);
} }
private @Nullable CredentialManager getCredentialManager(Context context, boolean isTest) { private @Nullable CredentialManager getCredentialManager(Context context, boolean isTest) {
@@ -175,6 +156,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
TextUtils.equals(action, Settings.ACTION_CREDENTIAL_PROVIDER); TextUtils.equals(action, Settings.ACTION_CREDENTIAL_PROVIDER);
final boolean isExistingAction = TextUtils.equals(action, ALTERNATE_INTENT); final boolean isExistingAction = TextUtils.equals(action, ALTERNATE_INTENT);
final boolean isValid = isCredProviderAction || isExistingAction; final boolean isValid = isCredProviderAction || isExistingAction;
if (!isValid) { if (!isValid) {
return false; return false;
} }
@@ -271,10 +253,6 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
List<CredentialProviderInfo> availableServices, List<CredentialProviderInfo> availableServices,
String flagOverrideForTest) { String flagOverrideForTest) {
mFlagOverrideForTest = flagOverrideForTest; mFlagOverrideForTest = flagOverrideForTest;
setAvailableServicesInternal(availableServices);
}
private void setAvailableServicesInternal(List<CredentialProviderInfo> availableServices) {
mServices.clear(); mServices.clear();
mServices.addAll(availableServices); mServices.addAll(availableServices);
@@ -781,24 +759,4 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
getDialogHost().onDialogClick(which); getDialogHost().onDialogClick(which);
} }
} }
@VisibleForTesting
public boolean handleRefreshIntent(Intent intent) {
if (!REFRESH_CONTENTS_INTENTS.contains(intent.getAction())) {
return false;
}
setAvailableServicesInternal(
mCredentialManager.getCredentialProviderServices(
getUser(), CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_ONLY));
return true;
}
private class RefreshContentsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
handleRefreshIntent(intent);
}
}
} }

View File

@@ -368,71 +368,6 @@ public class CredentialManagerPreferenceControllerTest {
assertThat(pref3.isChecked()).isTrue(); 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 @Test
public void handleIntentWithProviderServiceInfo_handleBadIntent_missingData() { public void handleIntentWithProviderServiceInfo_handleBadIntent_missingData() {
CredentialProviderInfo cpi = createCredentialProviderInfo(); CredentialProviderInfo cpi = createCredentialProviderInfo();
@@ -509,8 +444,7 @@ public class CredentialManagerPreferenceControllerTest {
CredentialManagerPreferenceController controller = CredentialManagerPreferenceController controller =
new CredentialManagerPreferenceController( new CredentialManagerPreferenceController(
mContext, mCredentialsPreferenceCategory.getKey()); mContext, mCredentialsPreferenceCategory.getKey());
controller.setAvailableServices( controller.setAvailableServices(() -> mock(Lifecycle.class), availableServices, addServiceOverride);
() -> mock(Lifecycle.class), availableServices, addServiceOverride);
controller.setDelegate(mDelegate); controller.setDelegate(mDelegate);
return controller; return controller;
} }