Use system-api lib to get badged, shadowed icons(2/n)

In order to prevent DoS attack from icon size, we're using
a system lib to help convert any loaded drawable into a flattened
bitmap with an appropriate size.

Test: Open recent app screen and then no crash
Bug: 33646131
Change-Id: Ib7eae56e19cd86667bd63b6061000c6a92deaf3b
This commit is contained in:
Tsung-Mao Fang
2020-02-06 18:30:13 +08:00
parent 203b9e974f
commit dbecbe6f61
7 changed files with 18 additions and 26 deletions

View File

@@ -20,11 +20,11 @@ import static com.android.settings.widget.EntityHeaderController.ActionType;
import android.app.Activity;
import android.os.Bundle;
import android.util.IconDrawableFactory;
import android.util.Log;
import androidx.preference.Preference;
import com.android.settings.Utils;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.applications.AppUtils;
@@ -47,8 +47,7 @@ public abstract class AppInfoWithHeader extends AppInfoBase {
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* header */)
.setRecyclerView(getListView(), getSettingsLifecycle())
.setIcon(IconDrawableFactory.newInstance(getContext())
.getBadgedIcon(mPackageInfo.applicationInfo))
.setIcon(Utils.getBadgedIcon(getContext(), mPackageInfo.applicationInfo))
.setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
.setSummary(mPackageInfo)
.setIsInstantApp(AppUtils.isInstant(mPackageInfo.applicationInfo))