summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2011-09-06 11:57:00 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-06 11:57:00 -0700
commit3b19b5ecc4ae05e90bf57ba88ef1e50a5dc63995 (patch)
tree985356357e48cb70137c1b5baa5b0cb54db71f7c /packages/SystemUI/src/com
parent4c64b66e08b48bad2e16c04ace7dd9c7b0c9e3f4 (diff)
parentfaa790c4f55bfe399a8ef259c657be76e9d833dd (diff)
downloadframeworks_base-3b19b5ecc4ae05e90bf57ba88ef1e50a5dc63995.zip
frameworks_base-3b19b5ecc4ae05e90bf57ba88ef1e50a5dc63995.tar.gz
frameworks_base-3b19b5ecc4ae05e90bf57ba88ef1e50a5dc63995.tar.bz2
Merge "Fix the pressed state for thumbnails in Recents"
Diffstat (limited to 'packages/SystemUI/src/com')
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsCallback.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java35
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java3
4 files changed, 37 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsCallback.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsCallback.java
index e3c4eb7..78050a2 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsCallback.java
@@ -26,7 +26,7 @@ public interface RecentsCallback {
void handleOnClick(View selectedView);
void handleSwipe(View selectedView);
- void handleLongPress(View selectedView, View anchorView);
+ void handleLongPress(View selectedView, View anchorView, View thumbnailView);
void handleShowBackground(boolean show);
void dismiss();
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
index 5c1bbf0..fc03a27 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
@@ -26,7 +26,6 @@ import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
-import android.view.View.OnClickListener;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
@@ -48,7 +47,8 @@ public class RecentsHorizontalScrollView extends HorizontalScrollView
private OnLongClickListener mOnLongClick = new OnLongClickListener() {
public boolean onLongClick(View v) {
final View anchorView = v.findViewById(R.id.app_description);
- mCallback.handleLongPress(v, anchorView);
+ final View thumbnailView = v.findViewById(R.id.app_thumbnail);
+ mCallback.handleLongPress(v, anchorView, thumbnailView);
return true;
}
};
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index fc33931..43905dd 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -30,15 +30,14 @@ import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
-import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader.TileMode;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.StateListDrawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
@@ -57,6 +56,7 @@ import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
+import android.widget.FrameLayout;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
import android.widget.PopupMenu;
@@ -85,6 +85,7 @@ public class RecentsPanelView extends RelativeLayout
private View mRecentsGlowView;
private ViewGroup mRecentsContainer;
private Bitmap mDefaultThumbnailBackground;
+ private BitmapDrawable mPressedDrawable;
private boolean mShowing;
private Choreographer mChoreo;
@@ -182,6 +183,13 @@ public class RecentsPanelView extends RelativeLayout
holder.iconView = (ImageView) convertView.findViewById(R.id.app_icon);
holder.labelView = (TextView) convertView.findViewById(R.id.app_label);
holder.descriptionView = (TextView) convertView.findViewById(R.id.app_description);
+
+ StateListDrawable thumbnailForegroundDrawable = new StateListDrawable();
+ thumbnailForegroundDrawable.addState(new int[] { android.R.attr.state_pressed },
+ mPressedDrawable);
+ thumbnailForegroundDrawable.addState(new int[] { android.R.attr.state_selected },
+ mPressedDrawable);
+ ((FrameLayout)holder.thumbnailView).setForeground(thumbnailForegroundDrawable);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
@@ -339,9 +347,23 @@ public class RecentsPanelView extends RelativeLayout
int width = (int) res.getDimension(R.dimen.status_bar_recents_thumbnail_width);
int height = (int) res.getDimension(R.dimen.status_bar_recents_thumbnail_height);
int color = res.getColor(R.drawable.status_bar_recents_app_thumbnail_background);
+
+ // Render the default thumbnail background
mDefaultThumbnailBackground = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(mDefaultThumbnailBackground);
c.drawColor(color);
+
+ // Render the pressed state (setting the 9 patch drawable directly causes padding issues)
+ int bgPadding = (int) res.getDimension(R.dimen.recents_thumbnail_bg_press_padding);
+ Bitmap pressedOverlay = Bitmap.createBitmap(
+ width + 2 * bgPadding, height + 2 * bgPadding, Bitmap.Config.ARGB_8888);
+ c.setBitmap(pressedOverlay);
+
+ Drawable pressedDrawable9Patch = res.getDrawable(R.drawable.recents_thumbnail_bg_press);
+ pressedDrawable9Patch.getCurrent().setBounds(
+ 0, 0, pressedOverlay.getWidth(), pressedOverlay.getHeight());
+ pressedDrawable9Patch.draw(c);
+ mPressedDrawable = new BitmapDrawable(res, pressedOverlay);
}
@Override
@@ -715,7 +737,9 @@ public class RecentsPanelView extends RelativeLayout
getContext().startActivity(intent);
}
- public void handleLongPress(final View selectedView, final View anchorView) {
+ public void handleLongPress(
+ final View selectedView, final View anchorView, final View thumbnailView) {
+ thumbnailView.setSelected(true);
PopupMenu popup = new PopupMenu(mContext, anchorView == null ? selectedView : anchorView);
popup.getMenuInflater().inflate(R.menu.recent_popup_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@@ -737,6 +761,11 @@ public class RecentsPanelView extends RelativeLayout
return true;
}
});
+ popup.setOnDismissListener(new PopupMenu.OnDismissListener() {
+ public void onDismiss(PopupMenu menu) {
+ thumbnailView.setSelected(false);
+ }
+ });
popup.show();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
index 1978d69..b12387a 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
@@ -46,7 +46,8 @@ public class RecentsVerticalScrollView extends ScrollView implements SwipeHelper
private OnLongClickListener mOnLongClick = new OnLongClickListener() {
public boolean onLongClick(View v) {
final View anchorView = v.findViewById(R.id.app_description);
- mCallback.handleLongPress(v, anchorView);
+ final View thumbnailView = v.findViewById(R.id.app_thumbnail);
+ mCallback.handleLongPress(v, anchorView, thumbnailView);
return true;
}
};