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

Commit 39fe4d24 authored by Beverly Tai's avatar Beverly Tai Committed by Automerger Merge Worker
Browse files

Merge "Don't show toast icon for system apps" into sc-dev am: 11891c76

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13816889

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1d8af57b90ba05e52604893e3f6c1c1816cac1d5
parents 345abdfe 11891c76
Loading
Loading
Loading
Loading
+23 −15
Original line number Diff line number Diff line
@@ -19,14 +19,13 @@ package com.android.systemui.toast;
import android.animation.Animator;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.Application;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
@@ -35,6 +34,8 @@ import android.widget.ToastPresenter;

import com.android.internal.R;
import com.android.launcher3.icons.IconFactory;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.systemui.plugins.ToastPlugin;

/**
@@ -170,8 +171,13 @@ public class SystemUIToast implements ToastPlugin.Toast {
                    com.android.systemui.R.layout.text_toast, null);
            ((TextView) toastView.findViewById(com.android.systemui.R.id.text)).setText(mText);

            Drawable icon = getBadgedIcon(mContext, mPackageName, mUserId);
            if (icon == null) {
                toastView.findViewById(com.android.systemui.R.id.icon).setVisibility(View.GONE);
            } else {
                ((ImageView) toastView.findViewById(com.android.systemui.R.id.icon))
                    .setImageDrawable(getBadgedIcon(mContext, mPackageName, mUserId));
                        .setImageDrawable(icon);
            }
        } else {
            toastView = ToastPresenter.getTextToastView(mContext, mText);
        }
@@ -217,18 +223,20 @@ public class SystemUIToast implements ToastPlugin.Toast {
     */
    public static Drawable getBadgedIcon(@NonNull Context context, String packageName,
            int userId) {
        final PackageManager packageManager = context.getPackageManager();
        try {
            final ApplicationInfo appInfo = packageManager.getApplicationInfoAsUser(
                    packageName, PackageManager.GET_META_DATA, userId);
        final ApplicationsState appState =
                ApplicationsState.getInstance((Application) context.getApplicationContext());
        final AppEntry appEntry = appState.getEntry(packageName, userId);

        if (!ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER.filterApp(appEntry)) {
            return null;
        }

        final ApplicationInfo appInfo = appEntry.info;
        UserHandle user = UserHandle.getUserHandleForUid(appInfo.uid);
        IconFactory iconFactory = IconFactory.obtain(context);
        Bitmap iconBmp = iconFactory.createBadgedIconBitmap(
                    appInfo.loadUnbadgedIcon(packageManager), user, false).icon;
                appInfo.loadUnbadgedIcon(context.getPackageManager()), user, true).icon;
        return new BitmapDrawable(context.getResources(), iconBmp);
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("SystemUIToast", "could not load icon for package=" + packageName + " e=" + e);
            return null;
        }

    }
}