Merge "Moving IconProvider extensions to a separate subclass instead of routing via APIWrapper" into main
This commit is contained in:
@@ -16,25 +16,17 @@
|
||||
package com.android.launcher3.icons;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.XmlResourceParser;
|
||||
import android.graphics.drawable.AdaptiveIconDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.dagger.ApplicationContext;
|
||||
import com.android.launcher3.dagger.LauncherAppSingleton;
|
||||
import com.android.launcher3.graphics.ShapeDelegate;
|
||||
import com.android.launcher3.graphics.ThemeManager;
|
||||
import com.android.launcher3.util.ApiWrapper;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
@@ -58,17 +50,14 @@ public class LauncherIconProvider extends IconProvider {
|
||||
|
||||
private Map<String, ThemeData> mThemedIconMap;
|
||||
|
||||
private final ApiWrapper mApiWrapper;
|
||||
private final ThemeManager mThemeManager;
|
||||
protected final ThemeManager mThemeManager;
|
||||
|
||||
@Inject
|
||||
public LauncherIconProvider(
|
||||
@ApplicationContext Context context,
|
||||
ThemeManager themeManager,
|
||||
ApiWrapper apiWrapper) {
|
||||
ThemeManager themeManager) {
|
||||
super(context);
|
||||
mThemeManager = themeManager;
|
||||
mApiWrapper = apiWrapper;
|
||||
mThemedIconMap = FeatureFlags.USE_LOCAL_ICON_OVERRIDES.get() ? null : DISABLED_MAP;
|
||||
}
|
||||
|
||||
@@ -83,29 +72,6 @@ public class LauncherIconProvider extends IconProvider {
|
||||
mSystemState += "," + mThemeManager.getIconState().toUniqueId();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getApplicationInfoHash(@NonNull ApplicationInfo appInfo) {
|
||||
return mApiWrapper.getApplicationInfoHash(appInfo);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
protected Drawable loadAppInfoIcon(ApplicationInfo info, Resources resources, int density) {
|
||||
// Tries to load the round icon res, if the app defines it as an adaptive icon
|
||||
if (mThemeManager.getIconShape() instanceof ShapeDelegate.Circle) {
|
||||
int roundIconRes = mApiWrapper.getRoundIconRes(info);
|
||||
if (roundIconRes != 0 && roundIconRes != info.icon) {
|
||||
try {
|
||||
Drawable d = resources.getDrawableForDensity(roundIconRes, density);
|
||||
if (d instanceof AdaptiveIconDrawable) {
|
||||
return d;
|
||||
}
|
||||
} catch (Resources.NotFoundException exc) { }
|
||||
}
|
||||
}
|
||||
return super.loadAppInfoIcon(info, resources, density);
|
||||
}
|
||||
|
||||
private Map<String, ThemeData> getThemedIconMap() {
|
||||
if (mThemedIconMap != null) {
|
||||
return mThemedIconMap;
|
||||
|
||||
@@ -23,7 +23,6 @@ import android.app.Person;
|
||||
import android.app.role.RoleManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.LauncherActivityInfo;
|
||||
import android.content.pm.ShortcutInfo;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
@@ -201,21 +200,6 @@ public class ApiWrapper {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a hash to uniquely identify a particular version of appInfo
|
||||
*/
|
||||
public String getApplicationInfoHash(@NonNull ApplicationInfo appInfo) {
|
||||
// The hashString in source dir changes with every install
|
||||
return appInfo.sourceDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the round icon resource Id if defined by the app
|
||||
*/
|
||||
public int getRoundIconRes(@NonNull ApplicationInfo appInfo) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the shortcut is using an icon with file or URI source
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user