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

Commit 1b67a6b8 authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Badge ChooserActivity choices with their app icon for disambig" into mnc-dr-dev

parents 896f738c 00f4aad7
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -647,7 +647,8 @@ public class ChooserActivity extends ResolverActivity {

        @Override
        public CharSequence getExtendedInfo() {
            return mSourceInfo != null ? mSourceInfo.getExtendedInfo() : null;
            // ChooserTargets have badge icons, so we won't show the extended info to disambiguate.
            return null;
        }

        @Override
@@ -740,9 +741,8 @@ public class ChooserActivity extends ResolverActivity {

        @Override
        public boolean showsExtendedInfo(TargetInfo info) {
            // Reserve space to show extended info if any one of the items in the adapter has
            // extended info. This keeps grid item sizes uniform.
            return hasExtendedInfo();
            // We have badges so we don't need this text shown.
            return false;
        }

        @Override
+22 −3
Original line number Diff line number Diff line
@@ -896,6 +896,7 @@ public class ResolverActivity extends Activity {
        private final ResolveInfo mResolveInfo;
        private final CharSequence mDisplayLabel;
        private Drawable mDisplayIcon;
        private Drawable mBadge;
        private final CharSequence mExtendedInfo;
        private final Intent mResolvedIntent;
        private final List<Intent> mSourceIntents = new ArrayList<>();
@@ -940,9 +941,27 @@ public class ResolverActivity extends Activity {
        }

        public Drawable getBadgeIcon() {
            // We only expose a badge if we have extended info.
            // The badge is a higher-priority disambiguation signal
            // but we don't need one if we wouldn't show extended info at all.
            if (TextUtils.isEmpty(getExtendedInfo())) {
                return null;
            }

            if (mBadge == null && mResolveInfo != null && mResolveInfo.activityInfo != null
                    && mResolveInfo.activityInfo.applicationInfo != null) {
                if (mResolveInfo.activityInfo.icon == 0 || mResolveInfo.activityInfo.icon
                        == mResolveInfo.activityInfo.applicationInfo.icon) {
                    // Badging an icon with exactly the same icon is silly.
                    // If the activityInfo icon resid is 0 it will fall back
                    // to the application's icon, making it a match.
                    return null;
                }
                mBadge = mResolveInfo.activityInfo.applicationInfo.loadIcon(mPm);
            }
            return mBadge;
        }

        @Override
        public CharSequence getBadgeContentDescription() {
            return null;
@@ -1378,8 +1397,8 @@ public class ResolverActivity extends Activity {
            } else {
                mHasExtendedInfo = true;
                boolean usePkg = false;
                CharSequence startApp = ro.getResolveInfoAt(0).activityInfo.applicationInfo
                        .loadLabel(mPm);
                final ApplicationInfo ai = ro.getResolveInfoAt(0).activityInfo.applicationInfo;
                final CharSequence startApp = ai.loadLabel(mPm);
                if (startApp == null) {
                    usePkg = true;
                }