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

Commit 87df629d authored by Doris Ling's avatar Doris Ling Committed by Android (Google) Code Review
Browse files

Merge "Get app info with correct user id."

parents 0d0eec6d b9ff5892
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -30,7 +30,8 @@ public class DefaultBrowserShortcutPreferenceController

    @Override
    protected boolean hasAppCapability() {
        return DefaultBrowserPreferenceController.hasBrowserPreference(mPackageName, mContext);
        return DefaultBrowserPreferenceController
                .hasBrowserPreference(mPackageName, mContext, UserHandle.myUserId());
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ public class DefaultBrowserPicker extends DefaultAppPickerFragment {

        for (ResolveInfo info : list) {
            try {
                candidates.add(new DefaultAppInfo(context, mPm,
                candidates.add(new DefaultAppInfo(context, mPm, mUserId,
                        mPm.getApplicationInfoAsUser(info.activityInfo.packageName, 0, mUserId)));
            } catch (PackageManager.NameNotFoundException e) {
                // Skip unknown packages.
+9 −7
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.util.ArraySet;
import android.util.IconDrawableFactory;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;

import com.android.settingslib.applications.DefaultAppInfo;
@@ -75,8 +76,8 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont
        try {
            final String packageName = mPackageManager.getDefaultBrowserPackageNameAsUser(mUserId);
            Log.d(TAG, "Get default browser package: " + packageName);
            return new DefaultAppInfo(mContext, mPackageManager,
                    mPackageManager.getApplicationInfo(packageName, 0));
            return new DefaultAppInfo(mContext, mPackageManager, mUserId,
                    mPackageManager.getApplicationInfoAsUser(packageName, 0, mUserId));
        } catch (PackageManager.NameNotFoundException e) {
            return null;
        }
@@ -143,7 +144,8 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont
        return null;
    }

    private Drawable getOnlyAppIcon() {
    @VisibleForTesting
    Drawable getOnlyAppIcon() {
        final List<ResolveInfo> list = getCandidates(mPackageManager, mUserId);
        if (list != null && list.size() == 1) {
            final ResolveInfo info = list.get(0);
@@ -154,7 +156,7 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont
            }
            final ApplicationInfo appInfo;
            try {
                appInfo = mPackageManager.getApplicationInfo(packageName, 0);
                appInfo = mPackageManager.getApplicationInfoAsUser(packageName, 0, mUserId);
            } catch (PackageManager.NameNotFoundException e) {
                Log.w(TAG, "Error getting app info for " + packageName);
                return null;
@@ -169,11 +171,11 @@ public class DefaultBrowserPreferenceController extends DefaultAppPreferenceCont
    /**
     * Whether or not the pkg contains browser capability
     */
    public static boolean hasBrowserPreference(String pkg, Context context) {
    public static boolean hasBrowserPreference(String pkg, Context context, int userId) {
        final Intent intent = new Intent(BROWSE_PROBE);
        intent.setPackage(pkg);
        final List<ResolveInfo> resolveInfos =
                context.getPackageManager().queryIntentActivities(intent, 0);
        final List<ResolveInfo> resolveInfos = context.getPackageManager()
                .queryIntentActivitiesAsUser(intent, 0 /* flags */, userId);
        return resolveInfos != null && resolveInfos.size() != 0;
    }

+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ public class DefaultEmergencyPicker extends DefaultAppPickerFragment {
                final PackageInfo packageInfo =
                        mPm.getPackageInfo(info.activityInfo.packageName, 0);
                final ApplicationInfo appInfo = packageInfo.applicationInfo;
                candidates.add(new DefaultAppInfo(context, mPm, appInfo));
                candidates.add(new DefaultAppInfo(context, mPm, mUserId, appInfo));
                // Get earliest installed system app.
                if (isSystemApp(appInfo) && (bestMatch == null ||
                        bestMatch.firstInstallTime > packageInfo.firstInstallTime)) {
+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ public class DefaultPhonePicker extends DefaultAppPickerFragment {
        final Context context = getContext();
        for (String packageName : dialerPackages) {
            try {
                candidates.add(new DefaultAppInfo(context, mPm,
                candidates.add(new DefaultAppInfo(context, mPm, mUserId,
                        mPm.getApplicationInfoAsUser(packageName, 0, mUserId)));
            } catch (PackageManager.NameNotFoundException e) {
                // Skip unknown packages.
Loading