Loading build.gradle +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0' } } Loading src/com/android/launcher3/AllAppsList.java +8 −8 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ package com.android.launcher3; import android.content.ComponentName; import android.content.Context; import android.os.UserHandle; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.util.FlagOp; import com.android.launcher3.util.ItemInfoMatcher; Loading Loading @@ -95,7 +95,7 @@ public class AllAppsList { /** * Add the icons for the supplied apk called packageName. */ public void addPackage(Context context, String packageName, UserHandleCompat user) { public void addPackage(Context context, String packageName, UserHandle user) { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(context); final List<LauncherActivityInfoCompat> matches = launcherApps.getActivityList(packageName, user); Loading @@ -108,7 +108,7 @@ public class AllAppsList { /** * Remove the apps for the given apk identified by packageName. */ public void removePackage(String packageName, UserHandleCompat user) { public void removePackage(String packageName, UserHandle user) { final List<AppInfo> data = this.data; for (int i = data.size() - 1; i >= 0; i--) { AppInfo info = data.get(i); Loading @@ -133,7 +133,7 @@ public class AllAppsList { } } public void updateIconsAndLabels(HashSet<String> packages, UserHandleCompat user, public void updateIconsAndLabels(HashSet<String> packages, UserHandle user, ArrayList<AppInfo> outUpdates) { for (AppInfo info : data) { if (info.user.equals(user) && packages.contains(info.componentName.getPackageName())) { Loading @@ -146,7 +146,7 @@ public class AllAppsList { /** * Add and remove icons for this package which has been updated. */ public void updatePackage(Context context, String packageName, UserHandleCompat user) { public void updatePackage(Context context, String packageName, UserHandle user) { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(context); final List<LauncherActivityInfoCompat> matches = launcherApps.getActivityList(packageName, user); Loading Loading @@ -210,7 +210,7 @@ public class AllAppsList { * MAIN/LAUNCHER activities in the supplied package. */ static boolean packageHasActivities(Context context, String packageName, UserHandleCompat user) { UserHandle user) { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(context); return launcherApps.getActivityList(packageName, user).size() > 0; } Loading @@ -219,7 +219,7 @@ public class AllAppsList { * Returns whether <em>apps</em> contains <em>component</em>. */ private static boolean findActivity(ArrayList<AppInfo> apps, ComponentName component, UserHandleCompat user) { UserHandle user) { final int N = apps.size(); for (int i = 0; i < N; i++) { final AppInfo info = apps.get(i); Loading @@ -233,7 +233,7 @@ public class AllAppsList { /** * Find an ApplicationInfo object for the given packageName and className. */ private AppInfo findApplicationInfoLocked(String packageName, UserHandleCompat user, private AppInfo findApplicationInfoLocked(String packageName, UserHandle user, String className) { for (AppInfo info: data) { if (user.equals(info.user) && packageName.equals(info.componentName.getPackageName()) Loading src/com/android/launcher3/AppInfo.java +5 −5 Original line number Diff line number Diff line Loading @@ -20,10 +20,10 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.UserHandle; import android.util.Log; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.PackageManagerHelper; Loading Loading @@ -73,18 +73,18 @@ public class AppInfo extends ItemInfo { /** * Must not hold the Context. */ public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandleCompat user, public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandle user, IconCache iconCache) { this(context, info, user, iconCache, UserManagerCompat.getInstance(context).isQuietModeEnabled(user)); } public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandleCompat user, public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandle user, IconCache iconCache, boolean quietModeEnabled) { this(context, info, user, iconCache, quietModeEnabled, true /* useLowResIcon */); } public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandleCompat user, public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandle user, IconCache iconCache, boolean quietModeEnabled, boolean useLowResIcon) { this.componentName = info.getComponentName(); this.container = ItemInfo.NO_ID; Loading Loading @@ -134,7 +134,7 @@ public class AppInfo extends ItemInfo { } public static Intent makeLaunchIntent(Context context, LauncherActivityInfoCompat info, UserHandleCompat user) { UserHandle user) { long serialNumber = UserManagerCompat.getInstance(context).getSerialNumberForUser(user); return new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER) Loading src/com/android/launcher3/FolderInfo.java +2 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ package com.android.launcher3; import android.content.Context; import android.os.Process; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.util.ContentWriter; import java.util.ArrayList; Loading Loading @@ -56,7 +56,7 @@ public class FolderInfo extends ItemInfo { public FolderInfo() { itemType = LauncherSettings.Favorites.ITEM_TYPE_FOLDER; user = UserHandleCompat.myUserHandle(); user = Process.myUserHandle(); } /** Loading src/com/android/launcher3/IconCache.java +23 −22 Original line number Diff line number Diff line Loading @@ -38,13 +38,14 @@ import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Process; import android.os.SystemClock; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.graphics.LauncherIcons; Loading Loading @@ -86,7 +87,7 @@ public class IconCache { public boolean isLowResIcon; } private final HashMap<UserHandleCompat, Bitmap> mDefaultIcons = new HashMap<>(); private final HashMap<UserHandle, Bitmap> mDefaultIcons = new HashMap<>(); @Thunk final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor(); private final Context mContext; Loading Loading @@ -185,7 +186,7 @@ public class IconCache { return getFullResDefaultActivityIcon(); } private Bitmap makeDefaultIcon(UserHandleCompat user) { private Bitmap makeDefaultIcon(UserHandle user) { Drawable unbadged = getFullResDefaultActivityIcon(); return LauncherIcons.createBadgedIconBitmap(unbadged, user, mContext); } Loading @@ -193,14 +194,14 @@ public class IconCache { /** * Remove any records for the supplied ComponentName. */ public synchronized void remove(ComponentName componentName, UserHandleCompat user) { public synchronized void remove(ComponentName componentName, UserHandle user) { mCache.remove(new ComponentKey(componentName, user)); } /** * Remove any records for the supplied package name from memory. */ private void removeFromMemCacheLocked(String packageName, UserHandleCompat user) { private void removeFromMemCacheLocked(String packageName, UserHandle user) { HashSet<ComponentKey> forDeletion = new HashSet<ComponentKey>(); for (ComponentKey key: mCache.keySet()) { if (key.componentName.getPackageName().equals(packageName) Loading @@ -216,7 +217,7 @@ public class IconCache { /** * Updates the entries related to the given package in memory and persistent DB. */ public synchronized void updateIconsForPkg(String packageName, UserHandleCompat user) { public synchronized void updateIconsForPkg(String packageName, UserHandle user) { removeIconsForPkg(packageName, user); try { PackageInfo info = mPackageManager.getPackageInfo(packageName, Loading @@ -234,7 +235,7 @@ public class IconCache { /** * Removes the entries related to the given package in memory and persistent DB. */ public synchronized void removeIconsForPkg(String packageName, UserHandleCompat user) { public synchronized void removeIconsForPkg(String packageName, UserHandle user) { removeFromMemCacheLocked(packageName, user); long userSerial = mUserManager.getSerialNumberForUser(user); mIconDb.delete( Loading @@ -247,7 +248,7 @@ public class IconCache { mWorkerHandler.removeCallbacksAndMessages(ICON_UPDATE_TOKEN); mIconProvider.updateSystemStateString(); for (UserHandleCompat user : mUserManager.getUserProfiles()) { for (UserHandle user : mUserManager.getUserProfiles()) { // Query for the set of apps final List<LauncherActivityInfoCompat> apps = mLauncherApps.getActivityList(null, user); // Fail if we don't have any apps Loading @@ -258,7 +259,7 @@ public class IconCache { // Update icon cache. This happens in segments and {@link #onPackageIconsUpdated} // is called by the icon cache when the job is complete. updateDBIcons(user, apps, UserHandleCompat.myUserHandle().equals(user) updateDBIcons(user, apps, Process.myUserHandle().equals(user) ? ignorePackagesForMainUser : Collections.<String>emptySet()); } } Loading @@ -268,7 +269,7 @@ public class IconCache { * the DB and are updated. * @return The set of packages for which icons have updated. */ private void updateDBIcons(UserHandleCompat user, List<LauncherActivityInfoCompat> apps, private void updateDBIcons(UserHandle user, List<LauncherActivityInfoCompat> apps, Set<String> ignorePackages) { long userSerial = mUserManager.getSerialNumberForUser(user); PackageManager pm = mContext.getPackageManager(); Loading Loading @@ -432,7 +433,7 @@ public class IconCache { return new IconLoadRequest(request, mWorkerHandler); } private Bitmap getNonNullIcon(CacheEntry entry, UserHandleCompat user) { private Bitmap getNonNullIcon(CacheEntry entry, UserHandle user) { return entry.icon == null ? getDefaultIcon(user) : entry.icon; } Loading @@ -441,7 +442,7 @@ public class IconCache { */ public synchronized void getTitleAndIcon(AppInfo application, LauncherActivityInfoCompat info, boolean useLowResIcon) { UserHandleCompat user = info == null ? application.user : info.getUser(); UserHandle user = info == null ? application.user : info.getUser(); CacheEntry entry = cacheLocked(application.componentName, info, user, false, useLowResIcon); application.title = Utilities.trim(entry.title); Loading @@ -467,7 +468,7 @@ public class IconCache { /** * Returns a high res icon for the given intent and user */ public synchronized Bitmap getIcon(Intent intent, UserHandleCompat user) { public synchronized Bitmap getIcon(Intent intent, UserHandle user) { ComponentName component = intent.getComponent(); // null info means not installed, but if we have a component from the intent then // we should still look in the cache for restored app icons. Loading @@ -485,7 +486,7 @@ public class IconCache { * corresponding activity is not found, it reverts to the package icon. */ public synchronized void getTitleAndIcon(ShortcutInfo shortcutInfo, Intent intent, UserHandleCompat user, boolean useLowResIcon) { UserHandle user, boolean useLowResIcon) { ComponentName component = intent.getComponent(); // null info means not installed, but if we have a component from the intent then // we should still look in the cache for restored app icons. Loading @@ -505,7 +506,7 @@ public class IconCache { */ public synchronized void getTitleAndIcon( ShortcutInfo shortcutInfo, ComponentName component, LauncherActivityInfoCompat info, UserHandleCompat user, boolean usePkgIcon, boolean useLowResIcon) { UserHandle user, boolean usePkgIcon, boolean useLowResIcon) { CacheEntry entry = cacheLocked(component, info, user, usePkgIcon, useLowResIcon); shortcutInfo.iconBitmap = getNonNullIcon(entry, user); shortcutInfo.title = Utilities.trim(entry.title); Loading @@ -526,14 +527,14 @@ public class IconCache { infoInOut.usingLowResIcon = entry.isLowResIcon; } public synchronized Bitmap getDefaultIcon(UserHandleCompat user) { public synchronized Bitmap getDefaultIcon(UserHandle user) { if (!mDefaultIcons.containsKey(user)) { mDefaultIcons.put(user, makeDefaultIcon(user)); } return mDefaultIcons.get(user); } public boolean isDefaultIcon(Bitmap icon, UserHandleCompat user) { public boolean isDefaultIcon(Bitmap icon, UserHandle user) { return mDefaultIcons.get(user) == icon; } Loading @@ -542,7 +543,7 @@ public class IconCache { * This method is not thread safe, it must be called from a synchronized method. */ protected CacheEntry cacheLocked(ComponentName componentName, LauncherActivityInfoCompat info, UserHandleCompat user, boolean usePackageIcon, boolean useLowResIcon) { UserHandle user, boolean usePackageIcon, boolean useLowResIcon) { ComponentKey cacheKey = new ComponentKey(componentName, user); CacheEntry entry = mCache.get(cacheKey); if (entry == null || (entry.isLowResIcon && !useLowResIcon)) { Loading Loading @@ -587,7 +588,7 @@ public class IconCache { * Adds a default package entry in the cache. This entry is not persisted and will be removed * when the cache is flushed. */ public synchronized void cachePackageInstallInfo(String packageName, UserHandleCompat user, public synchronized void cachePackageInstallInfo(String packageName, UserHandle user, Bitmap icon, CharSequence title) { removeFromMemCacheLocked(packageName, user); Loading @@ -607,7 +608,7 @@ public class IconCache { } } private static ComponentKey getPackageKey(String packageName, UserHandleCompat user) { private static ComponentKey getPackageKey(String packageName, UserHandle user) { ComponentName cn = new ComponentName(packageName, packageName + EMPTY_CLASS_NAME); return new ComponentKey(cn, user); } Loading @@ -616,7 +617,7 @@ public class IconCache { * Gets an entry for the package, which can be used as a fallback entry for various components. * This method is not thread safe, it must be called from a synchronized method. */ private CacheEntry getEntryForPackageLocked(String packageName, UserHandleCompat user, private CacheEntry getEntryForPackageLocked(String packageName, UserHandle user, boolean useLowResIcon) { ComponentKey cacheKey = getPackageKey(packageName, user); CacheEntry entry = mCache.get(cacheKey); Loading @@ -628,7 +629,7 @@ public class IconCache { // Check the DB first. if (!getEntryFromDB(cacheKey, entry, useLowResIcon)) { try { int flags = UserHandleCompat.myUserHandle().equals(user) ? 0 : int flags = Process.myUserHandle().equals(user) ? 0 : PackageManager.GET_UNINSTALLED_PACKAGES; PackageInfo info = mPackageManager.getPackageInfo(packageName, flags); ApplicationInfo appInfo = info.applicationInfo; Loading Loading
build.gradle +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0' } } Loading
src/com/android/launcher3/AllAppsList.java +8 −8 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ package com.android.launcher3; import android.content.ComponentName; import android.content.Context; import android.os.UserHandle; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.util.FlagOp; import com.android.launcher3.util.ItemInfoMatcher; Loading Loading @@ -95,7 +95,7 @@ public class AllAppsList { /** * Add the icons for the supplied apk called packageName. */ public void addPackage(Context context, String packageName, UserHandleCompat user) { public void addPackage(Context context, String packageName, UserHandle user) { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(context); final List<LauncherActivityInfoCompat> matches = launcherApps.getActivityList(packageName, user); Loading @@ -108,7 +108,7 @@ public class AllAppsList { /** * Remove the apps for the given apk identified by packageName. */ public void removePackage(String packageName, UserHandleCompat user) { public void removePackage(String packageName, UserHandle user) { final List<AppInfo> data = this.data; for (int i = data.size() - 1; i >= 0; i--) { AppInfo info = data.get(i); Loading @@ -133,7 +133,7 @@ public class AllAppsList { } } public void updateIconsAndLabels(HashSet<String> packages, UserHandleCompat user, public void updateIconsAndLabels(HashSet<String> packages, UserHandle user, ArrayList<AppInfo> outUpdates) { for (AppInfo info : data) { if (info.user.equals(user) && packages.contains(info.componentName.getPackageName())) { Loading @@ -146,7 +146,7 @@ public class AllAppsList { /** * Add and remove icons for this package which has been updated. */ public void updatePackage(Context context, String packageName, UserHandleCompat user) { public void updatePackage(Context context, String packageName, UserHandle user) { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(context); final List<LauncherActivityInfoCompat> matches = launcherApps.getActivityList(packageName, user); Loading Loading @@ -210,7 +210,7 @@ public class AllAppsList { * MAIN/LAUNCHER activities in the supplied package. */ static boolean packageHasActivities(Context context, String packageName, UserHandleCompat user) { UserHandle user) { final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(context); return launcherApps.getActivityList(packageName, user).size() > 0; } Loading @@ -219,7 +219,7 @@ public class AllAppsList { * Returns whether <em>apps</em> contains <em>component</em>. */ private static boolean findActivity(ArrayList<AppInfo> apps, ComponentName component, UserHandleCompat user) { UserHandle user) { final int N = apps.size(); for (int i = 0; i < N; i++) { final AppInfo info = apps.get(i); Loading @@ -233,7 +233,7 @@ public class AllAppsList { /** * Find an ApplicationInfo object for the given packageName and className. */ private AppInfo findApplicationInfoLocked(String packageName, UserHandleCompat user, private AppInfo findApplicationInfoLocked(String packageName, UserHandle user, String className) { for (AppInfo info: data) { if (user.equals(info.user) && packageName.equals(info.componentName.getPackageName()) Loading
src/com/android/launcher3/AppInfo.java +5 −5 Original line number Diff line number Diff line Loading @@ -20,10 +20,10 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.UserHandle; import android.util.Log; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.PackageManagerHelper; Loading Loading @@ -73,18 +73,18 @@ public class AppInfo extends ItemInfo { /** * Must not hold the Context. */ public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandleCompat user, public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandle user, IconCache iconCache) { this(context, info, user, iconCache, UserManagerCompat.getInstance(context).isQuietModeEnabled(user)); } public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandleCompat user, public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandle user, IconCache iconCache, boolean quietModeEnabled) { this(context, info, user, iconCache, quietModeEnabled, true /* useLowResIcon */); } public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandleCompat user, public AppInfo(Context context, LauncherActivityInfoCompat info, UserHandle user, IconCache iconCache, boolean quietModeEnabled, boolean useLowResIcon) { this.componentName = info.getComponentName(); this.container = ItemInfo.NO_ID; Loading Loading @@ -134,7 +134,7 @@ public class AppInfo extends ItemInfo { } public static Intent makeLaunchIntent(Context context, LauncherActivityInfoCompat info, UserHandleCompat user) { UserHandle user) { long serialNumber = UserManagerCompat.getInstance(context).getSerialNumberForUser(user); return new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER) Loading
src/com/android/launcher3/FolderInfo.java +2 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ package com.android.launcher3; import android.content.Context; import android.os.Process; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.util.ContentWriter; import java.util.ArrayList; Loading Loading @@ -56,7 +56,7 @@ public class FolderInfo extends ItemInfo { public FolderInfo() { itemType = LauncherSettings.Favorites.ITEM_TYPE_FOLDER; user = UserHandleCompat.myUserHandle(); user = Process.myUserHandle(); } /** Loading
src/com/android/launcher3/IconCache.java +23 −22 Original line number Diff line number Diff line Loading @@ -38,13 +38,14 @@ import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Process; import android.os.SystemClock; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; import com.android.launcher3.compat.LauncherActivityInfoCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.graphics.LauncherIcons; Loading Loading @@ -86,7 +87,7 @@ public class IconCache { public boolean isLowResIcon; } private final HashMap<UserHandleCompat, Bitmap> mDefaultIcons = new HashMap<>(); private final HashMap<UserHandle, Bitmap> mDefaultIcons = new HashMap<>(); @Thunk final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor(); private final Context mContext; Loading Loading @@ -185,7 +186,7 @@ public class IconCache { return getFullResDefaultActivityIcon(); } private Bitmap makeDefaultIcon(UserHandleCompat user) { private Bitmap makeDefaultIcon(UserHandle user) { Drawable unbadged = getFullResDefaultActivityIcon(); return LauncherIcons.createBadgedIconBitmap(unbadged, user, mContext); } Loading @@ -193,14 +194,14 @@ public class IconCache { /** * Remove any records for the supplied ComponentName. */ public synchronized void remove(ComponentName componentName, UserHandleCompat user) { public synchronized void remove(ComponentName componentName, UserHandle user) { mCache.remove(new ComponentKey(componentName, user)); } /** * Remove any records for the supplied package name from memory. */ private void removeFromMemCacheLocked(String packageName, UserHandleCompat user) { private void removeFromMemCacheLocked(String packageName, UserHandle user) { HashSet<ComponentKey> forDeletion = new HashSet<ComponentKey>(); for (ComponentKey key: mCache.keySet()) { if (key.componentName.getPackageName().equals(packageName) Loading @@ -216,7 +217,7 @@ public class IconCache { /** * Updates the entries related to the given package in memory and persistent DB. */ public synchronized void updateIconsForPkg(String packageName, UserHandleCompat user) { public synchronized void updateIconsForPkg(String packageName, UserHandle user) { removeIconsForPkg(packageName, user); try { PackageInfo info = mPackageManager.getPackageInfo(packageName, Loading @@ -234,7 +235,7 @@ public class IconCache { /** * Removes the entries related to the given package in memory and persistent DB. */ public synchronized void removeIconsForPkg(String packageName, UserHandleCompat user) { public synchronized void removeIconsForPkg(String packageName, UserHandle user) { removeFromMemCacheLocked(packageName, user); long userSerial = mUserManager.getSerialNumberForUser(user); mIconDb.delete( Loading @@ -247,7 +248,7 @@ public class IconCache { mWorkerHandler.removeCallbacksAndMessages(ICON_UPDATE_TOKEN); mIconProvider.updateSystemStateString(); for (UserHandleCompat user : mUserManager.getUserProfiles()) { for (UserHandle user : mUserManager.getUserProfiles()) { // Query for the set of apps final List<LauncherActivityInfoCompat> apps = mLauncherApps.getActivityList(null, user); // Fail if we don't have any apps Loading @@ -258,7 +259,7 @@ public class IconCache { // Update icon cache. This happens in segments and {@link #onPackageIconsUpdated} // is called by the icon cache when the job is complete. updateDBIcons(user, apps, UserHandleCompat.myUserHandle().equals(user) updateDBIcons(user, apps, Process.myUserHandle().equals(user) ? ignorePackagesForMainUser : Collections.<String>emptySet()); } } Loading @@ -268,7 +269,7 @@ public class IconCache { * the DB and are updated. * @return The set of packages for which icons have updated. */ private void updateDBIcons(UserHandleCompat user, List<LauncherActivityInfoCompat> apps, private void updateDBIcons(UserHandle user, List<LauncherActivityInfoCompat> apps, Set<String> ignorePackages) { long userSerial = mUserManager.getSerialNumberForUser(user); PackageManager pm = mContext.getPackageManager(); Loading Loading @@ -432,7 +433,7 @@ public class IconCache { return new IconLoadRequest(request, mWorkerHandler); } private Bitmap getNonNullIcon(CacheEntry entry, UserHandleCompat user) { private Bitmap getNonNullIcon(CacheEntry entry, UserHandle user) { return entry.icon == null ? getDefaultIcon(user) : entry.icon; } Loading @@ -441,7 +442,7 @@ public class IconCache { */ public synchronized void getTitleAndIcon(AppInfo application, LauncherActivityInfoCompat info, boolean useLowResIcon) { UserHandleCompat user = info == null ? application.user : info.getUser(); UserHandle user = info == null ? application.user : info.getUser(); CacheEntry entry = cacheLocked(application.componentName, info, user, false, useLowResIcon); application.title = Utilities.trim(entry.title); Loading @@ -467,7 +468,7 @@ public class IconCache { /** * Returns a high res icon for the given intent and user */ public synchronized Bitmap getIcon(Intent intent, UserHandleCompat user) { public synchronized Bitmap getIcon(Intent intent, UserHandle user) { ComponentName component = intent.getComponent(); // null info means not installed, but if we have a component from the intent then // we should still look in the cache for restored app icons. Loading @@ -485,7 +486,7 @@ public class IconCache { * corresponding activity is not found, it reverts to the package icon. */ public synchronized void getTitleAndIcon(ShortcutInfo shortcutInfo, Intent intent, UserHandleCompat user, boolean useLowResIcon) { UserHandle user, boolean useLowResIcon) { ComponentName component = intent.getComponent(); // null info means not installed, but if we have a component from the intent then // we should still look in the cache for restored app icons. Loading @@ -505,7 +506,7 @@ public class IconCache { */ public synchronized void getTitleAndIcon( ShortcutInfo shortcutInfo, ComponentName component, LauncherActivityInfoCompat info, UserHandleCompat user, boolean usePkgIcon, boolean useLowResIcon) { UserHandle user, boolean usePkgIcon, boolean useLowResIcon) { CacheEntry entry = cacheLocked(component, info, user, usePkgIcon, useLowResIcon); shortcutInfo.iconBitmap = getNonNullIcon(entry, user); shortcutInfo.title = Utilities.trim(entry.title); Loading @@ -526,14 +527,14 @@ public class IconCache { infoInOut.usingLowResIcon = entry.isLowResIcon; } public synchronized Bitmap getDefaultIcon(UserHandleCompat user) { public synchronized Bitmap getDefaultIcon(UserHandle user) { if (!mDefaultIcons.containsKey(user)) { mDefaultIcons.put(user, makeDefaultIcon(user)); } return mDefaultIcons.get(user); } public boolean isDefaultIcon(Bitmap icon, UserHandleCompat user) { public boolean isDefaultIcon(Bitmap icon, UserHandle user) { return mDefaultIcons.get(user) == icon; } Loading @@ -542,7 +543,7 @@ public class IconCache { * This method is not thread safe, it must be called from a synchronized method. */ protected CacheEntry cacheLocked(ComponentName componentName, LauncherActivityInfoCompat info, UserHandleCompat user, boolean usePackageIcon, boolean useLowResIcon) { UserHandle user, boolean usePackageIcon, boolean useLowResIcon) { ComponentKey cacheKey = new ComponentKey(componentName, user); CacheEntry entry = mCache.get(cacheKey); if (entry == null || (entry.isLowResIcon && !useLowResIcon)) { Loading Loading @@ -587,7 +588,7 @@ public class IconCache { * Adds a default package entry in the cache. This entry is not persisted and will be removed * when the cache is flushed. */ public synchronized void cachePackageInstallInfo(String packageName, UserHandleCompat user, public synchronized void cachePackageInstallInfo(String packageName, UserHandle user, Bitmap icon, CharSequence title) { removeFromMemCacheLocked(packageName, user); Loading @@ -607,7 +608,7 @@ public class IconCache { } } private static ComponentKey getPackageKey(String packageName, UserHandleCompat user) { private static ComponentKey getPackageKey(String packageName, UserHandle user) { ComponentName cn = new ComponentName(packageName, packageName + EMPTY_CLASS_NAME); return new ComponentKey(cn, user); } Loading @@ -616,7 +617,7 @@ public class IconCache { * Gets an entry for the package, which can be used as a fallback entry for various components. * This method is not thread safe, it must be called from a synchronized method. */ private CacheEntry getEntryForPackageLocked(String packageName, UserHandleCompat user, private CacheEntry getEntryForPackageLocked(String packageName, UserHandle user, boolean useLowResIcon) { ComponentKey cacheKey = getPackageKey(packageName, user); CacheEntry entry = mCache.get(cacheKey); Loading @@ -628,7 +629,7 @@ public class IconCache { // Check the DB first. if (!getEntryFromDB(cacheKey, entry, useLowResIcon)) { try { int flags = UserHandleCompat.myUserHandle().equals(user) ? 0 : int flags = Process.myUserHandle().equals(user) ? 0 : PackageManager.GET_UNINSTALLED_PACKAGES; PackageInfo info = mPackageManager.getPackageInfo(packageName, flags); ApplicationInfo appInfo = info.applicationInfo; Loading