summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2011-09-16 17:04:40 -0700
committerMichael Jurka <mikejurka@google.com>2011-09-16 17:24:25 -0700
commit6d66708706a99168cd1a7d536b9173ab866a5ed8 (patch)
tree07b6df77b58c993a77617df221e2211173785223 /packages/SystemUI
parentebdcae732f648871dd0df6586a5ba57aae015bd4 (diff)
downloadframeworks_base-6d66708706a99168cd1a7d536b9173ab866a5ed8.zip
frameworks_base-6d66708706a99168cd1a7d536b9173ab866a5ed8.tar.gz
frameworks_base-6d66708706a99168cd1a7d536b9173ab866a5ed8.tar.bz2
Added "No recent apps" message on phones
Change-Id: I00bf163369775b79377090b7a9dae0c94ce5d0ac
Diffstat (limited to 'packages/SystemUI')
-rw-r--r--packages/SystemUI/res/layout-land/status_bar_recent_panel.xml6
-rw-r--r--packages/SystemUI/res/layout-port/status_bar_recent_panel.xml6
-rw-r--r--packages/SystemUI/res/layout/status_bar_no_recent_apps.xml36
-rw-r--r--packages/SystemUI/res/values/strings.xml4
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/Choreographer.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java15
6 files changed, 84 insertions, 4 deletions
diff --git a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
index f84cc19..2fe22ff 100644
--- a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
@@ -69,6 +69,12 @@
</FrameLayout>
+ <include layout="@layout/status_bar_no_recent_apps"
+ android:id="@+id/recents_no_apps"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="invisible" />
+
<View android:id="@+id/recents_dismiss_button"
android:layout_width="80px"
android:layout_height="@*android:dimen/status_bar_height"
diff --git a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
index ed9ea7a..4d49077 100644
--- a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
@@ -67,6 +67,12 @@
</FrameLayout>
+ <include layout="@layout/status_bar_no_recent_apps"
+ android:id="@+id/recents_no_apps"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="invisible" />
+
<View android:id="@+id/recents_dismiss_button"
android:layout_width="80px"
android:layout_height="@*android:dimen/status_bar_height"
diff --git a/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml b/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml
new file mode 100644
index 0000000..47ffb83
--- /dev/null
+++ b/packages/SystemUI/res/layout/status_bar_no_recent_apps.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* apps/common/assets/default/default/skins/StatusBar.xml
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ >
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="24dp"
+ android:textColor="#ffffffff"
+ android:text="@string/status_bar_no_recent_apps"
+ android:gravity="center_horizontal"
+ android:layout_gravity="center"
+ />
+</FrameLayout>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index bad7e1f..b9e6d78 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -41,6 +41,10 @@
<!-- Title shown in recents popup for inspecting an application's properties -->
<string name="status_bar_recent_inspect_item_title">App info</string>
+ <!-- Message shown in the middle of the screen after clicking on the recent apps button
+ when there are no recent apps to show [CHAR LIMIT=45]-->
+ <string name="status_bar_no_recent_apps">No recent apps</string>
+
<!-- The label in the bar at the top of the status bar when there are no notifications
showing. [CHAR LIMIT=40]-->
<string name="status_bar_no_notifications_title">No notifications</string>
diff --git a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
index 9749a1d..fbf00d2 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
@@ -38,17 +38,20 @@ import android.view.View;
View mRootView;
View mScrimView;
View mContentView;
+ View mNoRecentAppsView;
AnimatorSet mContentAnim;
Animator.AnimatorListener mListener;
// the panel will start to appear this many px from the end
final int HYPERSPACE_OFFRAMP = 200;
- public Choreographer(View root, View scrim, View content, Animator.AnimatorListener listener) {
+ public Choreographer(View root, View scrim, View content,
+ View noRecentApps, Animator.AnimatorListener listener) {
mRootView = root;
mScrimView = scrim;
mContentView = content;
mListener = listener;
+ mNoRecentAppsView = noRecentApps;
}
void createAnimation(boolean appearing) {
@@ -81,8 +84,24 @@ import android.view.View;
: new android.view.animation.DecelerateInterpolator(1.0f));
glowAnim.setDuration(appearing ? OPEN_DURATION : CLOSE_DURATION);
+ Animator noRecentAppsFadeAnim = null;
+ if (mNoRecentAppsView != null && // doesn't exist on large devices
+ mNoRecentAppsView.getVisibility() == View.VISIBLE) {
+ noRecentAppsFadeAnim = ObjectAnimator.ofFloat(mNoRecentAppsView, "alpha",
+ mContentView.getAlpha(), appearing ? 1.0f : 0.0f);
+ noRecentAppsFadeAnim.setInterpolator(appearing
+ ? new android.view.animation.AccelerateInterpolator(1.0f)
+ : new android.view.animation.DecelerateInterpolator(1.0f));
+ noRecentAppsFadeAnim.setDuration(appearing ? OPEN_DURATION : CLOSE_DURATION);
+ }
+
mContentAnim = new AnimatorSet();
final Builder builder = mContentAnim.play(glowAnim).with(posAnim);
+
+ if (noRecentAppsFadeAnim != null) {
+ builder.with(noRecentAppsFadeAnim);
+ }
+
Drawable background = mScrimView.getBackground();
if (background != null) {
Animator bgAnim = ObjectAnimator.ofInt(background,
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index 0621b22..6fdc534 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -83,6 +83,7 @@ public class RecentsPanelView extends RelativeLayout
private int mIconDpi;
private View mRecentsScrim;
private View mRecentsGlowView;
+ private View mRecentsNoApps;
private ViewGroup mRecentsContainer;
private Bitmap mDefaultThumbnailBackground;
@@ -373,8 +374,9 @@ public class RecentsPanelView extends RelativeLayout
mRecentsGlowView = findViewById(R.id.recents_glow);
- mRecentsScrim = (View) findViewById(R.id.recents_bg_protect);
- mChoreo = new Choreographer(this, mRecentsScrim, mRecentsGlowView, this);
+ mRecentsScrim = findViewById(R.id.recents_bg_protect);
+ mRecentsNoApps = findViewById(R.id.recents_no_apps);
+ mChoreo = new Choreographer(this, mRecentsScrim, mRecentsGlowView, mRecentsNoApps, this);
mRecentsDismissButton = findViewById(R.id.recents_dismiss_button);
mRecentsDismissButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
@@ -581,6 +583,9 @@ public class RecentsPanelView extends RelativeLayout
mThumbnailLoader.cancel(false);
mThumbnailLoader = null;
}
+ if (mRecentsNoApps != null) { // doesn't exist on large devices
+ mRecentsNoApps.setVisibility(View.INVISIBLE);
+ }
mActivityDescriptions = getRecentTasks();
for (ActivityDescription ad : mActivityDescriptions) {
ad.setThumbnail(mDefaultThumbnailBackground);
@@ -647,7 +652,11 @@ public class RecentsPanelView extends RelativeLayout
} else {
// Immediately hide this panel
if (DEBUG) Log.v(TAG, "Nothing to show");
- hide(false);
+ if (mRecentsNoApps != null) { // doesn't exist on large devices
+ mRecentsNoApps.setVisibility(View.VISIBLE);
+ } else {
+ hide(false);
+ }
}
}