Loading packages/SettingsLib/Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ android_library { "androidx.appcompat_appcompat", "androidx.appcompat_appcompat", "androidx.lifecycle_lifecycle-runtime", "androidx.lifecycle_lifecycle-runtime", "androidx.mediarouter_mediarouter-nodeps", "androidx.mediarouter_mediarouter-nodeps", "iconloader", "SettingsLibHelpUtils", "SettingsLibHelpUtils", "SettingsLibRestrictedLockUtils", "SettingsLibRestrictedLockUtils", Loading packages/SettingsLib/src/com/android/settingslib/Utils.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,7 @@ package com.android.settingslib; import android.annotation.ColorInt; import android.annotation.ColorInt; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException; Loading @@ -13,6 +14,7 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.location.LocationManager; import android.media.AudioManager; import android.media.AudioManager; Loading @@ -27,8 +29,11 @@ import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.ServiceState; import androidx.annotation.NonNull; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.UserIcons; import com.android.internal.util.UserIcons; import com.android.launcher3.icons.IconFactory; import com.android.settingslib.drawable.UserIconDrawable; import com.android.settingslib.drawable.UserIconDrawable; import java.text.NumberFormat; import java.text.NumberFormat; Loading Loading @@ -424,6 +429,19 @@ public class Utils { return state; return state; } } /** * Get the {@link Drawable} that represents the app icon */ public static @NonNull Drawable getBadgedIcon( @NonNull Context context, @NonNull ApplicationInfo appInfo) { final UserHandle user = UserHandle.getUserHandleForUid(appInfo.uid); try (IconFactory iconFactory = IconFactory.obtain(context)) { final Bitmap iconBmp = iconFactory.createBadgedIconBitmap( appInfo.loadUnbadgedIcon(context.getPackageManager()), user, false).icon; return new BitmapDrawable(context.getResources(), iconBmp); } } private static boolean isNotInIwlan(ServiceState serviceState) { private static boolean isNotInIwlan(ServiceState serviceState) { final NetworkRegistrationInfo networkRegWlan = serviceState.getNetworkRegistrationInfo( final NetworkRegistrationInfo networkRegWlan = serviceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, NetworkRegistrationInfo.DOMAIN_PS, Loading packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +6 −5 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,7 @@ import androidx.lifecycle.OnLifecycleEvent; import com.android.internal.R; import com.android.internal.R; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils; import com.android.settingslib.Utils; import java.io.File; import java.io.File; import java.io.IOException; import java.io.IOException; Loading Loading @@ -495,7 +496,7 @@ public class ApplicationsState { return; return; } } synchronized (entry) { synchronized (entry) { entry.ensureIconLocked(mContext, mDrawableFactory); entry.ensureIconLocked(mContext); } } } } Loading Loading @@ -1216,7 +1217,7 @@ public class ApplicationsState { AppEntry entry = mAppEntries.get(i); AppEntry entry = mAppEntries.get(i); if (entry.icon == null || !entry.mounted) { if (entry.icon == null || !entry.mounted) { synchronized (entry) { synchronized (entry) { if (entry.ensureIconLocked(mContext, mDrawableFactory)) { if (entry.ensureIconLocked(mContext)) { if (!mRunning) { if (!mRunning) { mRunning = true; mRunning = true; Message m = mMainHandler.obtainMessage( Message m = mMainHandler.obtainMessage( Loading Loading @@ -1587,10 +1588,10 @@ public class ApplicationsState { } } } } boolean ensureIconLocked(Context context, IconDrawableFactory drawableFactory) { boolean ensureIconLocked(Context context) { if (this.icon == null) { if (this.icon == null) { if (this.apkFile.exists()) { if (this.apkFile.exists()) { this.icon = drawableFactory.getBadgedIcon(info); this.icon = Utils.getBadgedIcon(context, info); return true; return true; } else { } else { this.mounted = false; this.mounted = false; Loading @@ -1601,7 +1602,7 @@ public class ApplicationsState { // its icon. // its icon. if (this.apkFile.exists()) { if (this.apkFile.exists()) { this.mounted = true; this.mounted = true; this.icon = drawableFactory.getBadgedIcon(info); this.icon = Utils.getBadgedIcon(context, info); return true; return true; } } } } Loading Loading
packages/SettingsLib/Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ android_library { "androidx.appcompat_appcompat", "androidx.appcompat_appcompat", "androidx.lifecycle_lifecycle-runtime", "androidx.lifecycle_lifecycle-runtime", "androidx.mediarouter_mediarouter-nodeps", "androidx.mediarouter_mediarouter-nodeps", "iconloader", "SettingsLibHelpUtils", "SettingsLibHelpUtils", "SettingsLibRestrictedLockUtils", "SettingsLibRestrictedLockUtils", Loading
packages/SettingsLib/src/com/android/settingslib/Utils.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -3,6 +3,7 @@ package com.android.settingslib; import android.annotation.ColorInt; import android.annotation.ColorInt; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException; Loading @@ -13,6 +14,7 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.location.LocationManager; import android.media.AudioManager; import android.media.AudioManager; Loading @@ -27,8 +29,11 @@ import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.ServiceState; import androidx.annotation.NonNull; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.UserIcons; import com.android.internal.util.UserIcons; import com.android.launcher3.icons.IconFactory; import com.android.settingslib.drawable.UserIconDrawable; import com.android.settingslib.drawable.UserIconDrawable; import java.text.NumberFormat; import java.text.NumberFormat; Loading Loading @@ -424,6 +429,19 @@ public class Utils { return state; return state; } } /** * Get the {@link Drawable} that represents the app icon */ public static @NonNull Drawable getBadgedIcon( @NonNull Context context, @NonNull ApplicationInfo appInfo) { final UserHandle user = UserHandle.getUserHandleForUid(appInfo.uid); try (IconFactory iconFactory = IconFactory.obtain(context)) { final Bitmap iconBmp = iconFactory.createBadgedIconBitmap( appInfo.loadUnbadgedIcon(context.getPackageManager()), user, false).icon; return new BitmapDrawable(context.getResources(), iconBmp); } } private static boolean isNotInIwlan(ServiceState serviceState) { private static boolean isNotInIwlan(ServiceState serviceState) { final NetworkRegistrationInfo networkRegWlan = serviceState.getNetworkRegistrationInfo( final NetworkRegistrationInfo networkRegWlan = serviceState.getNetworkRegistrationInfo( NetworkRegistrationInfo.DOMAIN_PS, NetworkRegistrationInfo.DOMAIN_PS, Loading
packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +6 −5 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,7 @@ import androidx.lifecycle.OnLifecycleEvent; import com.android.internal.R; import com.android.internal.R; import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils; import com.android.settingslib.Utils; import java.io.File; import java.io.File; import java.io.IOException; import java.io.IOException; Loading Loading @@ -495,7 +496,7 @@ public class ApplicationsState { return; return; } } synchronized (entry) { synchronized (entry) { entry.ensureIconLocked(mContext, mDrawableFactory); entry.ensureIconLocked(mContext); } } } } Loading Loading @@ -1216,7 +1217,7 @@ public class ApplicationsState { AppEntry entry = mAppEntries.get(i); AppEntry entry = mAppEntries.get(i); if (entry.icon == null || !entry.mounted) { if (entry.icon == null || !entry.mounted) { synchronized (entry) { synchronized (entry) { if (entry.ensureIconLocked(mContext, mDrawableFactory)) { if (entry.ensureIconLocked(mContext)) { if (!mRunning) { if (!mRunning) { mRunning = true; mRunning = true; Message m = mMainHandler.obtainMessage( Message m = mMainHandler.obtainMessage( Loading Loading @@ -1587,10 +1588,10 @@ public class ApplicationsState { } } } } boolean ensureIconLocked(Context context, IconDrawableFactory drawableFactory) { boolean ensureIconLocked(Context context) { if (this.icon == null) { if (this.icon == null) { if (this.apkFile.exists()) { if (this.apkFile.exists()) { this.icon = drawableFactory.getBadgedIcon(info); this.icon = Utils.getBadgedIcon(context, info); return true; return true; } else { } else { this.mounted = false; this.mounted = false; Loading @@ -1601,7 +1602,7 @@ public class ApplicationsState { // its icon. // its icon. if (this.apkFile.exists()) { if (this.apkFile.exists()) { this.mounted = true; this.mounted = true; this.icon = drawableFactory.getBadgedIcon(info); this.icon = Utils.getBadgedIcon(context, info); return true; return true; } } } } Loading