Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7dbd023 authored by Becca Hughes's avatar Becca Hughes Committed by Automerger Merge Worker
Browse files

Merge "Add extra null checks" into udc-dev am: 598ff21b am: 93c34078

parents 8c4f831c 93c34078
Loading
Loading
Loading
Loading
+24 −14
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ public final class CombinedProviderInfo {
            @Nullable List<CredentialProviderInfo> cpis,
            @Nullable AutofillServiceInfo asi,
            boolean isDefaultAutofillProvider,
            boolean IsPrimaryCredmanProvider) {
            boolean isPrimaryCredmanProvider) {
        if (cpis == null) {
            mCredentialProviderInfos = new ArrayList<>();
        } else {
@@ -59,11 +59,11 @@ public final class CombinedProviderInfo {
        }
        mAutofillServiceInfo = asi;
        mIsDefaultAutofillProvider = isDefaultAutofillProvider;
        mIsPrimaryCredmanProvider = IsPrimaryCredmanProvider;
        mIsPrimaryCredmanProvider = isPrimaryCredmanProvider;
    }

    /** Returns the credential provider info. */
    @Nullable
    @NonNull
    public List<CredentialProviderInfo> getCredentialProviderInfos() {
        return mCredentialProviderInfos;
    }
@@ -85,11 +85,13 @@ public final class CombinedProviderInfo {
    /** Returns the app icon. */
    @Nullable
    public Drawable getAppIcon(@NonNull Context context, int userId) {
        IconDrawableFactory factory = IconDrawableFactory.newInstance(context);
        final IconDrawableFactory factory = IconDrawableFactory.newInstance(context);
        final ServiceInfo brandingService = getBrandingService();
        final ApplicationInfo appInfo = getApplicationInfo();

        Drawable icon = null;
        ServiceInfo brandingService = getBrandingService();
        if (brandingService != null) {
            icon = factory.getBadgedIcon(brandingService, getApplicationInfo(), userId);
        if (brandingService != null && appInfo != null) {
            icon = factory.getBadgedIcon(brandingService, appInfo, userId);
        }

        // If the branding service gave us a icon then use that.
@@ -98,7 +100,10 @@ public final class CombinedProviderInfo {
        }

        // Otherwise fallback to the app icon and then the package name.
        return factory.getBadgedIcon(getApplicationInfo(), userId);
        if (appInfo != null) {
            return factory.getBadgedIcon(appInfo, userId);
        }
        return null;
    }

    /** Returns the app name. */
@@ -116,11 +121,14 @@ public final class CombinedProviderInfo {
        }

        // Otherwise fallback to the app label and then the package name.
        name = getApplicationInfo().loadLabel(context.getPackageManager());
        final ApplicationInfo appInfo = getApplicationInfo();
        if (appInfo != null) {
            name = appInfo.loadLabel(context.getPackageManager());
            if (TextUtils.isEmpty(name)) {
            name = getApplicationInfo().packageName;
                return appInfo.packageName;
            }
        return name;
        }
        return "";
    }

    /** Gets the service to use for branding (name, icons). */
@@ -245,8 +253,10 @@ public final class CombinedProviderInfo {
        // Now go through and build the joint datasets.
        List<CombinedProviderInfo> cmpi = new ArrayList<>();
        for (String packageName : packageNames) {
            List<AutofillServiceInfo> asi = autofillServices.get(packageName);
            List<CredentialProviderInfo> cpi = credmanServices.get(packageName);
            List<AutofillServiceInfo> asi =
                    autofillServices.getOrDefault(packageName, new ArrayList<>());
            List<CredentialProviderInfo> cpi =
                    credmanServices.getOrDefault(packageName, new ArrayList<>());

            // If there are multiple autofill services then pick the first one.
            AutofillServiceInfo selectedAsi = null;
+8 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.view.autofill.AutofillManager;
import com.android.settings.applications.defaultapps.DefaultAppPreferenceController;
import com.android.settingslib.applications.DefaultAppInfo;

import java.util.ArrayList;
import java.util.List;

public class DefaultCombinedPreferenceController extends DefaultAppPreferenceController {
@@ -110,15 +111,19 @@ public class DefaultCombinedPreferenceController extends DefaultAppPreferenceCon
    private List<CombinedProviderInfo> getAllProviders(int userId) {
        final List<AutofillServiceInfo> autofillProviders =
                AutofillServiceInfo.getAvailableServices(mContext, userId);
        final List<CredentialProviderInfo> credManProviders =
                mCredentialManager.getCredentialProviderServices(
                        userId, CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_ONLY);
        final String selectedAutofillProvider =
                Settings.Secure.getStringForUser(
                        mContext.getContentResolver(),
                        DefaultCombinedPicker.AUTOFILL_SETTING,
                        userId);

        final List<CredentialProviderInfo> credManProviders = new ArrayList<>();
        if (mCredentialManager != null) {
            credManProviders.addAll(
                    mCredentialManager.getCredentialProviderServices(
                            userId, CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_ONLY));
        }

        return CombinedProviderInfo.buildMergedList(
                autofillProviders, credManProviders, selectedAutofillProvider);
    }