diff options
author | Michael Jurka <mikejurka@google.com> | 2011-06-13 10:54:40 -0700 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2011-06-15 16:50:04 -0700 |
commit | 3b1fc47d004f6b29af8f40d181baa3460b1e3b15 (patch) | |
tree | 920a9fe99b800ada9f13e7e5482d0c3c6f0df393 /packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java | |
parent | f71e5469441286c6f466043e64a7f6492557cbd9 (diff) | |
download | frameworks_base-3b1fc47d004f6b29af8f40d181baa3460b1e3b15.zip frameworks_base-3b1fc47d004f6b29af8f40d181baa3460b1e3b15.tar.gz frameworks_base-3b1fc47d004f6b29af8f40d181baa3460b1e3b15.tar.bz2 |
Port recent apps from tablet to phone
- wire up to long press on home
- remove unused recents activity
- remove duplicate recents resources in -large directories (using -sw600dp instead)
- fix issue with zoom/scale translation when recents was brought up
Change-Id: I45538ccaff49b46ac3659c4828f9e2b0cd075241
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java index e2b3446..b8dc63d 100644 --- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java @@ -19,6 +19,7 @@ package com.android.systemui.recent; import java.util.ArrayList; import java.util.List; +import android.animation.Animator; import android.animation.LayoutTransition; import android.app.ActivityManager; import android.content.Context; @@ -52,27 +53,33 @@ import android.widget.RelativeLayout; import android.widget.TextView; import com.android.systemui.R; +import com.android.systemui.statusbar.StatusBar; +import com.android.systemui.statusbar.phone.PhoneStatusBar; import com.android.systemui.statusbar.tablet.StatusBarPanel; import com.android.systemui.statusbar.tablet.TabletStatusBar; public class RecentsPanelView extends RelativeLayout - implements OnItemClickListener, RecentsCallback, StatusBarPanel { - private static final int GLOW_PADDING = 15; + implements OnItemClickListener, RecentsCallback, StatusBarPanel, Animator.AnimatorListener { static final String TAG = "RecentsListView"; - static final boolean DEBUG = TabletStatusBar.DEBUG; + static final boolean DEBUG = TabletStatusBar.DEBUG || PhoneStatusBar.DEBUG; private static final int DISPLAY_TASKS = 20; private static final int MAX_TASKS = DISPLAY_TASKS + 1; // allow extra for non-apps - private TabletStatusBar mBar; + private StatusBar mBar; private ArrayList<ActivityDescription> mActivityDescriptions; private int mIconDpi; private View mRecentsScrim; private View mRecentsGlowView; private View mRecentsContainer; private Bitmap mGlowBitmap; + // TODO: add these widgets attributes to the layout file + private int mGlowBitmapPaddingLeftPx; + private int mGlowBitmapPaddingTopPx; + private int mGlowBitmapPaddingRightPx; + private int mGlowBitmapPaddingBottomPx; private boolean mShowing; private Choreographer mChoreo; private View mRecentsDismissButton; - private ActvityDescriptionAdapter mListAdapter; + private ActivityDescriptionAdapter mListAdapter; /* package */ final static class ActivityDescription { int taskId; // application task id for curating apps @@ -108,10 +115,10 @@ public class RecentsPanelView extends RelativeLayout ActivityDescription activityDescription; } - /* package */ final class ActvityDescriptionAdapter extends BaseAdapter { + /* package */ final class ActivityDescriptionAdapter extends BaseAdapter { private LayoutInflater mInflater; - public ActvityDescriptionAdapter(Context context) { + public ActivityDescriptionAdapter(Context context) { mInflater = LayoutInflater.from(context); } @@ -183,6 +190,26 @@ public class RecentsPanelView extends RelativeLayout } } + public void onAnimationCancel(Animator animation) { + } + + public void onAnimationEnd(Animator animation) { + if (mShowing) { + final LayoutTransition transitioner = new LayoutTransition(); + ((ViewGroup)mRecentsContainer).setLayoutTransition(transitioner); + createCustomAnimations(transitioner); + } else { + ((ViewGroup)mRecentsContainer).setLayoutTransition(null); + } + } + + public void onAnimationRepeat(Animator animation) { + } + + public void onAnimationStart(Animator animation) { + } + + /** * We need to be aligned at the bottom. LinearLayout can't do this, so instead, * let LinearLayout do all the hard work, and then shift everything down to the bottom. @@ -201,7 +228,7 @@ public class RecentsPanelView extends RelativeLayout return mShowing; } - public void setBar(TabletStatusBar bar) { + public void setBar(StatusBar bar) { mBar = bar; } @@ -217,7 +244,16 @@ public class RecentsPanelView extends RelativeLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE; mIconDpi = xlarge ? DisplayMetrics.DENSITY_HIGH : res.getDisplayMetrics().densityDpi; + mGlowBitmap = BitmapFactory.decodeResource(res, R.drawable.recents_thumbnail_bg); + mGlowBitmapPaddingLeftPx = + res.getDimensionPixelSize(R.dimen.recents_thumbnail_bg_padding_left); + mGlowBitmapPaddingTopPx = + res.getDimensionPixelSize(R.dimen.recents_thumbnail_bg_padding_top); + mGlowBitmapPaddingRightPx = + res.getDimensionPixelSize(R.dimen.recents_thumbnail_bg_padding_right); + mGlowBitmapPaddingBottomPx = + res.getDimensionPixelSize(R.dimen.recents_thumbnail_bg_padding_bottom); } @Override @@ -225,7 +261,7 @@ public class RecentsPanelView extends RelativeLayout super.onFinishInflate(); mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mRecentsContainer = findViewById(R.id.recents_container); - mListAdapter = new ActvityDescriptionAdapter(mContext); + mListAdapter = new ActivityDescriptionAdapter(mContext); if (mRecentsContainer instanceof RecentsListView) { RecentsListView listView = (RecentsListView) mRecentsContainer; listView.setAdapter(mListAdapter); @@ -246,13 +282,10 @@ public class RecentsPanelView extends RelativeLayout throw new IllegalArgumentException("missing RecentsListView/RecentsScrollView"); } - final LayoutTransition transitioner = new LayoutTransition(); - ((ViewGroup)mRecentsContainer).setLayoutTransition(transitioner); - createCustomAnimations(transitioner); mRecentsGlowView = findViewById(R.id.recents_glow); mRecentsScrim = (View) findViewById(R.id.recents_bg_protect); - mChoreo = new Choreographer(this, mRecentsScrim, mRecentsGlowView); + mChoreo = new Choreographer(this, mRecentsScrim, mRecentsGlowView, this); mRecentsDismissButton = findViewById(R.id.recents_dismiss_button); mRecentsDismissButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { @@ -402,10 +435,9 @@ public class RecentsPanelView extends RelativeLayout Log.v(TAG, "Source thumb: " + srcWidth + "x" + srcHeight); canvas.drawBitmap(thumbnail, new Rect(0, 0, srcWidth-1, srcHeight-1), - new RectF(GLOW_PADDING, - GLOW_PADDING - 7.0f, - outBitmap.getWidth() - GLOW_PADDING + 3.0f, - outBitmap.getHeight() - GLOW_PADDING + 7.0f), paint); + new RectF(mGlowBitmapPaddingLeftPx, mGlowBitmapPaddingTopPx, + outBitmap.getWidth() - mGlowBitmapPaddingRightPx, + outBitmap.getHeight() - mGlowBitmapPaddingBottomPx), paint); } return outBitmap; } |