summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/recent
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2011-11-13 13:50:38 -0800
committerMichael Jurka <mikejurka@google.com>2011-11-14 23:49:10 -0800
commitbfd24acd318ef958bb7997c9cbf95c5fb15b10ac (patch)
tree41e93afbac6ee62c19f7447d122298b46f92cb9a /packages/SystemUI/src/com/android/systemui/recent
parent2af9f21c664d4579b5f51283a320a7d1fba13a75 (diff)
downloadframeworks_base-bfd24acd318ef958bb7997c9cbf95c5fb15b10ac.zip
frameworks_base-bfd24acd318ef958bb7997c9cbf95c5fb15b10ac.tar.gz
frameworks_base-bfd24acd318ef958bb7997c9cbf95c5fb15b10ac.tar.bz2
Updating recent apps visuals on tablet
- getting rid of blue glow (5529032) - moving app icon position - show message if there are no recent apps (5533332) - fixing rare IllegalStateException on orientation change (5584344) Change-Id: I2210e584957869c8f02339e6841daf39364a9dad
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/recent')
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/Choreographer.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java43
2 files changed, 30 insertions, 22 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
index 886a14d..ad38a11 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
@@ -120,8 +120,13 @@ import android.view.View;
createAnimation(appearing);
- mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
- mContentView.buildLayer();
+ // isHardwareAccelerated() checks if we're attached to a window and if that
+ // window is HW accelerated-- we were sometimes not attached to a window
+ // and buildLayer was throwing an IllegalStateException
+ if (mContentView.isHardwareAccelerated()) {
+ mContentView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
+ mContentView.buildLayer();
+ }
mContentAnim.start();
mVisible = appearing;
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index 6b8b65e..8bfd711 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -16,14 +16,13 @@
package com.android.systemui.recent;
-import java.util.ArrayList;
-
import android.animation.Animator;
import android.animation.LayoutTransition;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.Shader.TileMode;
@@ -42,15 +41,15 @@ import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.HorizontalScrollView;
import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
import android.widget.PopupMenu;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ImageView.ScaleType;
import com.android.systemui.R;
import com.android.systemui.statusbar.StatusBar;
@@ -58,6 +57,8 @@ import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.tablet.StatusBarPanel;
import com.android.systemui.statusbar.tablet.TabletStatusBar;
+import java.util.ArrayList;
+
public class RecentsPanelView extends RelativeLayout implements OnItemClickListener, RecentsCallback,
StatusBarPanel, Animator.AnimatorListener, View.OnTouchListener {
static final String TAG = "RecentsPanelView";
@@ -65,7 +66,6 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
private Context mContext;
private StatusBar mBar;
private View mRecentsScrim;
- private View mRecentsGlowView;
private View mRecentsNoApps;
private ViewGroup mRecentsContainer;
@@ -79,6 +79,7 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
private boolean mRecentTasksDirty = true;
private TaskDescriptionAdapter mListAdapter;
private int mThumbnailWidth;
+ private boolean mFitThumbnailToXY;
public void setRecentTasksLoader(RecentTasksLoader loader) {
mRecentTasksLoader = loader;
@@ -174,9 +175,8 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
// use mRecentsContainer's exact bounds to determine horizontal position
final int l = mRecentsContainer.getLeft();
final int r = mRecentsContainer.getRight();
- // use surrounding mRecentsGlowView's position in parent determine vertical bounds
- final int t = mRecentsGlowView.getTop();
- final int b = mRecentsGlowView.getBottom();
+ final int t = mRecentsContainer.getTop();
+ final int b = mRecentsContainer.getBottom();
return x >= l && x < r && y >= t && y < b;
}
@@ -194,7 +194,7 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
// if there are no apps, either bring up a "No recent apps" message, or just
// quit early
boolean noApps = (mRecentTaskDescriptions.size() == 0);
- if (mRecentsNoApps != null) { // doesn't exist on large devices
+ if (mRecentsNoApps != null) {
mRecentsNoApps.setVisibility(noApps ? View.VISIBLE : View.INVISIBLE);
} else {
if (noApps) {
@@ -325,8 +325,9 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
}
public void updateValuesFromResources() {
- mThumbnailWidth =
- (int) mContext.getResources().getDimension(R.dimen.status_bar_recents_thumbnail_width);
+ final Resources res = mContext.getResources();
+ mThumbnailWidth = Math.round(res.getDimension(R.dimen.status_bar_recents_thumbnail_width));
+ mFitThumbnailToXY = res.getBoolean(R.bool.config_recents_thumbnail_image_fits_to_xy);
}
@Override
@@ -351,10 +352,9 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
}
- mRecentsGlowView = findViewById(R.id.recents_glow);
mRecentsScrim = findViewById(R.id.recents_bg_protect);
mRecentsNoApps = findViewById(R.id.recents_no_apps);
- mChoreo = new Choreographer(this, mRecentsScrim, mRecentsGlowView, mRecentsNoApps, this);
+ mChoreo = new Choreographer(this, mRecentsScrim, mRecentsContainer, mRecentsNoApps, this);
mRecentsDismissButton = findViewById(R.id.recents_dismiss_button);
if (mRecentsDismissButton != null) {
mRecentsDismissButton.setOnClickListener(new OnClickListener() {
@@ -409,11 +409,15 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
if (h.thumbnailViewImageBitmap == null ||
h.thumbnailViewImageBitmap.getWidth() != thumbnail.getWidth() ||
h.thumbnailViewImageBitmap.getHeight() != thumbnail.getHeight()) {
- Matrix scaleMatrix = new Matrix();
- float scale = mThumbnailWidth / (float) thumbnail.getWidth();
- scaleMatrix.setScale(scale, scale);
- h.thumbnailViewImage.setScaleType(ScaleType.MATRIX);
- h.thumbnailViewImage.setImageMatrix(scaleMatrix);
+ if (mFitThumbnailToXY) {
+ h.thumbnailViewImage.setScaleType(ScaleType.FIT_XY);
+ } else {
+ Matrix scaleMatrix = new Matrix();
+ float scale = mThumbnailWidth / (float) thumbnail.getWidth();
+ scaleMatrix.setScale(scale, scale);
+ h.thumbnailViewImage.setScaleType(ScaleType.MATRIX);
+ h.thumbnailViewImage.setImageMatrix(scaleMatrix);
+ }
}
if (show && h.thumbnailView.getVisibility() != View.VISIBLE) {
if (anim) {
@@ -444,7 +448,7 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
// only fade in the thumbnail if recents is already visible-- we
// show it immediately otherwise
boolean animateShow = mShowing &&
- mRecentsGlowView.getAlpha() > ViewConfiguration.ALPHA_THRESHOLD;
+ mRecentsContainer.getAlpha() > ViewConfiguration.ALPHA_THRESHOLD;
updateThumbnail(h, ad.getThumbnail(), true, animateShow);
}
}
@@ -516,7 +520,6 @@ public class RecentsPanelView extends RelativeLayout implements OnItemClickListe
final int items = mRecentTaskDescriptions.size();
mRecentsContainer.setVisibility(items > 0 ? View.VISIBLE : View.GONE);
- mRecentsGlowView.setVisibility(items > 0 ? View.VISIBLE : View.GONE);
// Set description for accessibility
int numRecentApps = mRecentTaskDescriptions.size();