import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
-import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
packageName,
componentName,
appName,
- ((BitmapDrawable) throwaway.resolveActivityInfo(getPackageManager(), 0).loadIcon(getPackageManager())).getBitmap(),
+ throwaway.resolveActivityInfo(getPackageManager(), 0).loadIcon(getPackageManager()),
true));
}
break;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
import android.hardware.display.DisplayManager;
import android.os.Build;
import android.support.v4.content.LocalBroadcastManager;
textView.setText(entry.getLabel());
ImageView imageView = (ImageView) convertView.findViewById(R.id.icon);
- imageView.setImageDrawable(new BitmapDrawable(getContext().getResources(), entry.getIcon()));
+ imageView.setImageDrawable(entry.getIcon(getContext()));
LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.entry);
layout.setOnClickListener(new View.OnClickListener() {
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
import android.hardware.display.DisplayManager;
import android.os.Build;
import android.support.v4.content.LocalBroadcastManager;
if(pref.getString("position", "bottom_left").equals("bottom_right"))
imageView.setRotationY(180);
- imageView.setImageDrawable(new BitmapDrawable(getContext().getResources(), entry.getIcon()));
+ imageView.setImageDrawable(entry.getIcon(getContext()));
LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.entry);
layout.setOnClickListener(new View.OnClickListener() {
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
import android.hardware.display.DisplayManager;
import android.net.Uri;
import android.os.Build;
appInfo.activityInfo.applicationInfo.packageName,
appInfo.activityInfo.name).flattenToString(),
appInfo.loadLabel(pm).toString(),
- ((BitmapDrawable) appInfo.loadIcon(pm)).getBitmap(),
+ appInfo.loadIcon(pm),
false));
}
import android.content.pm.ResolveInfo;
import android.graphics.PixelFormat;
import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
import android.hardware.display.DisplayManager;
import android.os.Build;
import android.os.Handler;
usageStatsList6.get(i).getPackageName(),
intent.resolveActivity(pm).flattenToString(),
intent.resolveActivityInfo(pm, 0).loadLabel(pm).toString(),
- ((BitmapDrawable) intent.resolveActivityInfo(pm, 0).loadIcon(pm)).getBitmap(),
+ intent.resolveActivityInfo(pm, 0).loadIcon(pm),
false));
}
package com.farmerbb.taskbar.util;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
import java.io.ByteArrayOutputStream;
import java.io.Serializable;
private String packageName;
private String componentName;
private String label;
- private transient Bitmap icon;
+ private transient Drawable icon;
private byte[] iconByteArray;
- public AppEntry(String packageName, String componentName, String label, Bitmap icon, boolean shouldCompress) {
+ public AppEntry(String packageName, String componentName, String label, Drawable icon, boolean shouldCompress) {
this.packageName = packageName;
this.componentName = componentName;
this.label = label;
this.icon = icon;
- if(shouldCompress) {
+ if(shouldCompress && icon instanceof BitmapDrawable) {
+ Bitmap bitmap = ((BitmapDrawable) icon).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
- icon.compress(Bitmap.CompressFormat.PNG, 0, stream);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 0, stream);
iconByteArray = stream.toByteArray();
}
}
return label;
}
- public Bitmap getIcon() {
- if(icon == null) icon = BitmapFactory.decodeByteArray(iconByteArray, 0, iconByteArray.length);
+ public Drawable getIcon(Context context) {
+ if(icon == null) {
+ if(iconByteArray != null)
+ icon = new BitmapDrawable(context.getResources(), BitmapFactory.decodeByteArray(iconByteArray, 0, iconByteArray.length));
+ else try {
+ icon = context.getPackageManager().getActivityIcon(ComponentName.unflattenFromString(componentName));
+ } catch (PackageManager.NameNotFoundException e) { /* Gracefully fail */ }
+ }
return icon;
}
}
\ No newline at end of file
android:layout_width="@dimen/start_menu_width"
android:layout_height="wrap_content"
android:background="@android:color/white"
- android:queryBackground="@null"
+ android:queryBackground="@android:color/transparent"
android:iconifiedByDefault="false" />
</FrameLayout>
android:layout_width="@dimen/start_menu_width"
android:layout_height="wrap_content"
android:background="@android:color/white"
- android:queryBackground="@null"
+ android:queryBackground="@android:color/transparent"
android:iconifiedByDefault="false" />
</FrameLayout>
android:layout_width="@dimen/start_menu_width"
android:layout_height="wrap_content"
android:background="@android:color/white"
- android:queryBackground="@null"
+ android:queryBackground="@android:color/transparent"
android:iconifiedByDefault="false" />
</FrameLayout>
android:layout_width="@dimen/start_menu_width"
android:layout_height="wrap_content"
android:background="@android:color/white"
- android:queryBackground="@null"
+ android:queryBackground="@android:color/transparent"
android:iconifiedByDefault="false" />
</FrameLayout>