summaryrefslogtreecommitdiffstats
path: root/core/java/android/content
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2014-04-25 23:04:26 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-04-25 23:04:27 +0000
commit0150b48c4c4876a90b74826f864a4d864921166e (patch)
tree634e9459b6d90e00b60b87510ac8452f4db939c7 /core/java/android/content
parentaf6f910de73bfa4fc27c389eea3dbf608bbb72e1 (diff)
parent30acde7e90105d15b1639a24db3f9978e664dded (diff)
downloadframeworks_base-0150b48c4c4876a90b74826f864a4d864921166e.zip
frameworks_base-0150b48c4c4876a90b74826f864a4d864921166e.tar.gz
frameworks_base-0150b48c4c4876a90b74826f864a4d864921166e.tar.bz2
Merge "Handle density request in LauncherActivityInfo"
Diffstat (limited to 'core/java/android/content')
-rw-r--r--core/java/android/content/pm/LauncherActivityInfo.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/core/java/android/content/pm/LauncherActivityInfo.java b/core/java/android/content/pm/LauncherActivityInfo.java
index 6bf3638..9087338 100644
--- a/core/java/android/content/pm/LauncherActivityInfo.java
+++ b/core/java/android/content/pm/LauncherActivityInfo.java
@@ -19,6 +19,8 @@ package android.content.pm;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Bitmap.Config;
@@ -37,6 +39,8 @@ import android.util.Log;
*/
public class LauncherActivityInfo {
private static final boolean DEBUG = false;
+ private static final String TAG = "LauncherActivityInfo";
+
private final PackageManager mPm;
private final UserManager mUm;
@@ -134,20 +138,29 @@ public class LauncherActivityInfo {
* @return A badged icon for the activity.
*/
public Drawable getBadgedIcon(int density) {
- // TODO: Handle density
- if (mUser.equals(android.os.Process.myUserHandle())) {
- return mActivityInfo.loadIcon(mPm);
+ int iconRes = mActivityInfo.getIconResource();
+ Resources resources = null;
+ Drawable originalIcon = null;
+ try {
+ resources = mPm.getResourcesForApplication(mActivityInfo.applicationInfo);
+ try {
+ if (density != 0) {
+ originalIcon = resources.getDrawableForDensity(iconRes, density);
+ }
+ } catch (Resources.NotFoundException e) {
+ }
+ } catch (NameNotFoundException nnfe) {
}
- Drawable originalIcon = mActivityInfo.loadIcon(mPm);
+
if (originalIcon == null) {
- if (DEBUG) {
- Log.w("LauncherActivityInfo", "Couldn't find icon for activity");
- }
- originalIcon = mPm.getDefaultActivityIcon();
+ originalIcon = mActivityInfo.loadIcon(mPm);
}
+
if (originalIcon instanceof BitmapDrawable) {
return mUm.getBadgedDrawableForUser(
originalIcon, mUser);
+ } else {
+ Log.e(TAG, "Unable to create badged icon for " + mActivityInfo);
}
return originalIcon;
}