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

Commit eb6195c7 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android Git Automerger
Browse files

am eaa25779: am a0fa30dc: am a408061c: Merge "Use the intent filter icon in...

am eaa25779: am a0fa30dc: am a408061c: Merge "Use the intent filter icon in ResolveInfo for managed profile." into mnc-dev

* commit 'eaa25779':
  Use the intent filter icon in ResolveInfo for managed profile.
parents b1056623 eaa25779
Loading
Loading
Loading
Loading
+41 −29
Original line number Original line Diff line number Diff line
@@ -116,7 +116,8 @@ public class ResolveInfo implements Parcelable {


    /**
    /**
     * A drawable resource identifier (in the package's resources) of this
     * A drawable resource identifier (in the package's resources) of this
     * match's icon.  From the "icon" attribute or, if not set, 0.
     * match's icon.  From the "icon" attribute or, if not set, 0. It is
     * set only if the icon can be obtained by resource id alone.
     */
     */
    public int icon;
    public int icon;


@@ -134,10 +135,20 @@ public class ResolveInfo implements Parcelable {
    public int targetUserId;
    public int targetUserId;


    /**
    /**
     * Set to true if the icon cannot be obtained by resource ids alone.
     * It is set to true for ResolveInfos from the managed profile: They need to
     * have their icon badged, so it cannot be obtained by resource ids alone.
     * @hide
     * @hide
     */
     */
    public boolean noResourceId;
    public boolean noResourceId;


    /**
     * Same as {@link #icon} but it will always correspond to "icon" attribute
     * regardless of {@link #noResourceId} value.
     * @hide
     */
    public int iconResourceId;

    /**
    /**
     * @hide Target comes from system process?
     * @hide Target comes from system process?
     */
     */
@@ -204,20 +215,17 @@ public class ResolveInfo implements Parcelable {
     * item does not have an icon, the default activity icon is returned.
     * item does not have an icon, the default activity icon is returned.
     */
     */
    public Drawable loadIcon(PackageManager pm) {
    public Drawable loadIcon(PackageManager pm) {
        Drawable dr;
        Drawable dr = null;
        if (resolvePackageName != null && icon != 0) {
        if (resolvePackageName != null && iconResourceId != 0) {
            dr = pm.getDrawable(resolvePackageName, icon, null);
            dr = pm.getDrawable(resolvePackageName, iconResourceId, null);
            if (dr != null) {
                return dr;
            }
        }
        }
        ComponentInfo ci = getComponentInfo();
        ComponentInfo ci = getComponentInfo();
        if (dr == null && iconResourceId != 0) {
            ApplicationInfo ai = ci.applicationInfo;
            ApplicationInfo ai = ci.applicationInfo;
        if (icon != 0) {
            dr = pm.getDrawable(ci.packageName, iconResourceId, ai);
            dr = pm.getDrawable(ci.packageName, icon, ai);
            if (dr != null) {
                return dr;
        }
        }
        if (dr != null) {
            return pm.getUserBadgedIcon(dr, new UserHandle(UserHandle.myUserId()));
        }
        }
        return ci.loadIcon(pm);
        return ci.loadIcon(pm);
    }
    }
@@ -231,7 +239,7 @@ public class ResolveInfo implements Parcelable {
     * @return The icon associated with this match.
     * @return The icon associated with this match.
     */
     */
    final int getIconResourceInternal() {
    final int getIconResourceInternal() {
        if (icon != 0) return icon;
        if (iconResourceId != 0) return iconResourceId;
        final ComponentInfo ci = getComponentInfo();
        final ComponentInfo ci = getComponentInfo();
        if (ci != null) {
        if (ci != null) {
            return ci.getIconResource();
            return ci.getIconResource();
@@ -298,6 +306,8 @@ public class ResolveInfo implements Parcelable {
        nonLocalizedLabel = orig.nonLocalizedLabel;
        nonLocalizedLabel = orig.nonLocalizedLabel;
        icon = orig.icon;
        icon = orig.icon;
        resolvePackageName = orig.resolvePackageName;
        resolvePackageName = orig.resolvePackageName;
        noResourceId = orig.noResourceId;
        iconResourceId = orig.iconResourceId;
        system = orig.system;
        system = orig.system;
        targetUserId = orig.targetUserId;
        targetUserId = orig.targetUserId;
        handleAllWebDataURI = orig.handleAllWebDataURI;
        handleAllWebDataURI = orig.handleAllWebDataURI;
@@ -362,6 +372,7 @@ public class ResolveInfo implements Parcelable {
        dest.writeInt(targetUserId);
        dest.writeInt(targetUserId);
        dest.writeInt(system ? 1 : 0);
        dest.writeInt(system ? 1 : 0);
        dest.writeInt(noResourceId ? 1 : 0);
        dest.writeInt(noResourceId ? 1 : 0);
        dest.writeInt(iconResourceId);
        dest.writeInt(handleAllWebDataURI ? 1 : 0);
        dest.writeInt(handleAllWebDataURI ? 1 : 0);
    }
    }


@@ -408,6 +419,7 @@ public class ResolveInfo implements Parcelable {
        targetUserId = source.readInt();
        targetUserId = source.readInt();
        system = source.readInt() != 0;
        system = source.readInt() != 0;
        noResourceId = source.readInt() != 0;
        noResourceId = source.readInt() != 0;
        iconResourceId = source.readInt();
        handleAllWebDataURI = source.readInt() != 0;
        handleAllWebDataURI = source.readInt() != 0;
    }
    }


+5 −3
Original line number Original line Diff line number Diff line
@@ -613,15 +613,17 @@ public class ChooserActivity extends ResolverActivity {
                    ri.activityInfo = ai;
                    ri.activityInfo = ai;
                    UserManager userManager =
                    UserManager userManager =
                            (UserManager) getSystemService(Context.USER_SERVICE);
                            (UserManager) getSystemService(Context.USER_SERVICE);
                    if (userManager.isManagedProfile()) {
                        ri.noResourceId = true;
                    }
                    if (ii instanceof LabeledIntent) {
                    if (ii instanceof LabeledIntent) {
                        LabeledIntent li = (LabeledIntent)ii;
                        LabeledIntent li = (LabeledIntent)ii;
                        ri.resolvePackageName = li.getSourcePackage();
                        ri.resolvePackageName = li.getSourcePackage();
                        ri.labelRes = li.getLabelResource();
                        ri.labelRes = li.getLabelResource();
                        ri.nonLocalizedLabel = li.getNonLocalizedLabel();
                        ri.nonLocalizedLabel = li.getNonLocalizedLabel();
                        ri.icon = li.getIconResource();
                        ri.icon = li.getIconResource();
                        ri.iconResourceId = ri.icon;
                    }
                    if (userManager.isManagedProfile()) {
                        ri.noResourceId = true;
                        ri.icon = 0;
                    }
                    }
                    mCallerTargets.add(new DisplayResolveInfo(ii, ri,
                    mCallerTargets.add(new DisplayResolveInfo(ii, ri,
                            ri.loadLabel(pm), null, ii));
                            ri.loadLabel(pm), null, ii));
+5 −3
Original line number Original line Diff line number Diff line
@@ -1186,15 +1186,17 @@ public class ResolverActivity extends Activity {
                        ri.activityInfo = ai;
                        ri.activityInfo = ai;
                        UserManager userManager =
                        UserManager userManager =
                                (UserManager) getSystemService(Context.USER_SERVICE);
                                (UserManager) getSystemService(Context.USER_SERVICE);
                        if (userManager.isManagedProfile()) {
                            ri.noResourceId = true;
                        }
                        if (ii instanceof LabeledIntent) {
                        if (ii instanceof LabeledIntent) {
                            LabeledIntent li = (LabeledIntent)ii;
                            LabeledIntent li = (LabeledIntent)ii;
                            ri.resolvePackageName = li.getSourcePackage();
                            ri.resolvePackageName = li.getSourcePackage();
                            ri.labelRes = li.getLabelResource();
                            ri.labelRes = li.getLabelResource();
                            ri.nonLocalizedLabel = li.getNonLocalizedLabel();
                            ri.nonLocalizedLabel = li.getNonLocalizedLabel();
                            ri.icon = li.getIconResource();
                            ri.icon = li.getIconResource();
                            ri.iconResourceId = ri.icon;
                        }
                        if (userManager.isManagedProfile()) {
                            ri.noResourceId = true;
                            ri.icon = 0;
                        }
                        }
                        addResolveInfo(new DisplayResolveInfo(ii, ri,
                        addResolveInfo(new DisplayResolveInfo(ii, ri,
                                ri.loadLabel(getPackageManager()), null, ii));
                                ri.loadLabel(getPackageManager()), null, ii));
+1 −0
Original line number Original line Diff line number Diff line
@@ -8251,6 +8251,7 @@ public class PackageManagerService extends IPackageManager.Stub {
            } else {
            } else {
                res.icon = info.icon;
                res.icon = info.icon;
            }
            }
            res.iconResourceId = info.icon;
            res.system = res.activityInfo.applicationInfo.isSystemApp();
            res.system = res.activityInfo.applicationInfo.isSystemApp();
            return res;
            return res;
        }
        }