summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/res/drawable-hdpi/navbar_search_bg_scrim.9.pngbin21892 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/navbar_search_bg_scrim.9.pngbin11004 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/navbar_search_bg_scrim.9.pngbin34907 -> 0 bytes
-rw-r--r--packages/SystemUI/res/layout-land/status_bar_recent_panel.xml6
-rw-r--r--packages/SystemUI/res/layout-land/status_bar_search_panel.xml14
-rw-r--r--packages/SystemUI/res/layout-port/status_bar_recent_panel.xml6
-rw-r--r--packages/SystemUI/res/layout-port/status_bar_search_panel.xml14
-rw-r--r--packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml13
-rw-r--r--packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml13
-rw-r--r--packages/SystemUI/res/layout/system_bar_recent_panel.xml7
-rw-r--r--packages/SystemUI/res/values-sw600dp/dimens.xml3
-rw-r--r--packages/SystemUI/res/values/dimens.xml5
-rw-r--r--packages/SystemUI/src/com/android/systemui/SearchPanelView.java27
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/Choreographer.java26
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java87
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java29
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java68
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java54
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java1
22 files changed, 239 insertions, 165 deletions
diff --git a/packages/SystemUI/res/drawable-hdpi/navbar_search_bg_scrim.9.png b/packages/SystemUI/res/drawable-hdpi/navbar_search_bg_scrim.9.png
deleted file mode 100644
index 4c163a2..0000000
--- a/packages/SystemUI/res/drawable-hdpi/navbar_search_bg_scrim.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/navbar_search_bg_scrim.9.png b/packages/SystemUI/res/drawable-mdpi/navbar_search_bg_scrim.9.png
deleted file mode 100644
index 21c5abd..0000000
--- a/packages/SystemUI/res/drawable-mdpi/navbar_search_bg_scrim.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/navbar_search_bg_scrim.9.png b/packages/SystemUI/res/drawable-xhdpi/navbar_search_bg_scrim.9.png
deleted file mode 100644
index 7874c63..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/navbar_search_bg_scrim.9.png
+++ /dev/null
Binary files differ
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 8a21117..00e3e27 100644
--- a/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout-land/status_bar_recent_panel.xml
@@ -26,7 +26,11 @@
android:layout_width="match_parent"
systemui:recentItemLayout="@layout/status_bar_recent_item"
>
-
+ <View
+ android:id="@+id/recents_transition_background"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:visibility="invisible" />
<FrameLayout
android:id="@+id/recents_bg_protect"
android:background="@drawable/status_bar_recents_background"
diff --git a/packages/SystemUI/res/layout-land/status_bar_search_panel.xml b/packages/SystemUI/res/layout-land/status_bar_search_panel.xml
index ae81167..e6c0087 100644
--- a/packages/SystemUI/res/layout-land/status_bar_search_panel.xml
+++ b/packages/SystemUI/res/layout-land/status_bar_search_panel.xml
@@ -38,25 +38,29 @@
android:layout_height="match_parent"
android:layout_alignParentRight="true">
- <com.android.internal.widget.multiwaveview.MultiWaveView
- android:id="@+id/multi_wave_view"
+ <com.android.internal.widget.multiwaveview.GlowPadView
+ android:id="@+id/glow_pad_view"
android:orientation="vertical"
android:layout_width="@dimen/navbar_search_panel_height"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
- android:background="@drawable/navbar_search_bg_scrim"
android:gravity="left"
prvandroid:targetDrawables="@array/navbar_search_targets"
prvandroid:targetDescriptions="@array/navbar_search_target_descriptions"
prvandroid:directionDescriptions="@array/navbar_search_direction_descriptions"
prvandroid:handleDrawable="@drawable/navbar_search_handle"
- prvandroid:waveDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRingDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
+ prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
prvandroid:hitRadius="@dimen/navbar_search_hit_radius"
prvandroid:feedbackCount="0"
prvandroid:vibrationDuration="@integer/config_vibration_duration"
- prvandroid:alwaysTrackFinger="true"/>
+ prvandroid:alwaysTrackFinger="true"
+ prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+ prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+ />
</RelativeLayout>
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 1d29c5a..a7e5db1 100644
--- a/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout-port/status_bar_recent_panel.xml
@@ -26,7 +26,11 @@
android:layout_width="match_parent"
systemui:recentItemLayout="@layout/status_bar_recent_item"
>
-
+ <View
+ android:id="@+id/recents_transition_background"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:visibility="invisible" />
<FrameLayout
android:id="@+id/recents_bg_protect"
android:background="@drawable/status_bar_recents_background"
diff --git a/packages/SystemUI/res/layout-port/status_bar_search_panel.xml b/packages/SystemUI/res/layout-port/status_bar_search_panel.xml
index 785d5dd..3828136 100644
--- a/packages/SystemUI/res/layout-port/status_bar_search_panel.xml
+++ b/packages/SystemUI/res/layout-port/status_bar_search_panel.xml
@@ -38,25 +38,29 @@
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
- <com.android.internal.widget.multiwaveview.MultiWaveView
- android:id="@+id/multi_wave_view"
+ <com.android.internal.widget.multiwaveview.GlowPadView
+ android:id="@+id/glow_pad_view"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/navbar_search_panel_height"
android:layout_alignParentBottom="true"
- android:background="@drawable/navbar_search_bg_scrim"
android:gravity="top"
prvandroid:targetDrawables="@array/navbar_search_targets"
prvandroid:targetDescriptions="@array/navbar_search_target_descriptions"
prvandroid:directionDescriptions="@array/navbar_search_direction_descriptions"
prvandroid:handleDrawable="@drawable/navbar_search_handle"
- prvandroid:waveDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRingDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
+ prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
prvandroid:hitRadius="@dimen/navbar_search_hit_radius"
prvandroid:feedbackCount="0"
prvandroid:vibrationDuration="@integer/config_vibration_duration"
- prvandroid:alwaysTrackFinger="true"/>
+ prvandroid:alwaysTrackFinger="true"
+ prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+ prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+ />
</RelativeLayout>
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml
index 74a15f2..c17f858 100644
--- a/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml
+++ b/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml
@@ -25,23 +25,26 @@
android:layout_height="match_parent"
android:layout_width="match_parent">
- <com.android.internal.widget.multiwaveview.MultiWaveView
- android:id="@+id/multi_wave_view"
+ <com.android.internal.widget.multiwaveview.GlowPadView
+ android:id="@+id/glow_pad_view"
android:layout_width="wrap_content"
android:layout_height="@dimen/navbar_search_panel_height"
android:layout_gravity="center_horizontal|bottom"
android:gravity="center_horizontal|top"
- android:background="@drawable/navbar_search_bg_scrim"
prvandroid:targetDrawables="@array/navbar_search_targets"
prvandroid:targetDescriptions="@array/navbar_search_target_descriptions"
prvandroid:directionDescriptions="@array/navbar_search_direction_descriptions"
prvandroid:handleDrawable="@drawable/navbar_search_handle"
- prvandroid:waveDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRingDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
+ prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
prvandroid:hitRadius="@dimen/navbar_search_hit_radius"
prvandroid:feedbackCount="0"
prvandroid:vibrationDuration="@integer/config_vibration_duration"
- prvandroid:alwaysTrackFinger="true"/>
+ prvandroid:alwaysTrackFinger="true"
+ prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+ prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"/>
</com.android.systemui.SearchPanelView>
diff --git a/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml b/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml
index 2a97307..100f81d 100644
--- a/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml
+++ b/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml
@@ -25,24 +25,27 @@
android:layout_height="match_parent"
android:layout_width="match_parent">
- <com.android.internal.widget.multiwaveview.MultiWaveView
- android:id="@+id/multi_wave_view"
+ <com.android.internal.widget.multiwaveview.GlowPadView
+ android:id="@+id/glow_pad_view"
android:layout_width="wrap_content"
android:layout_height="@dimen/navbar_search_panel_height"
android:layout_gravity="left|bottom"
android:gravity="top|right"
android:layout_marginLeft="-150dip"
- android:background="@drawable/navbar_search_bg_scrim"
prvandroid:targetDrawables="@array/navbar_search_targets"
prvandroid:targetDescriptions="@array/navbar_search_target_descriptions"
prvandroid:directionDescriptions="@array/navbar_search_direction_descriptions"
prvandroid:handleDrawable="@drawable/navbar_search_handle"
- prvandroid:waveDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRingDrawable="@drawable/navbar_search_outerring"
+ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius"
+ prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
prvandroid:snapMargin="@dimen/navbar_search_snap_margin"
prvandroid:hitRadius="@dimen/navbar_search_hit_radius"
prvandroid:feedbackCount="0"
prvandroid:vibrationDuration="@integer/config_vibration_duration"
- prvandroid:alwaysTrackFinger="true"/>
+ prvandroid:alwaysTrackFinger="true"
+ prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+ prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"/>
</com.android.systemui.SearchPanelView>
diff --git a/packages/SystemUI/res/layout/system_bar_recent_panel.xml b/packages/SystemUI/res/layout/system_bar_recent_panel.xml
index d5745c8..127551d 100644
--- a/packages/SystemUI/res/layout/system_bar_recent_panel.xml
+++ b/packages/SystemUI/res/layout/system_bar_recent_panel.xml
@@ -28,7 +28,11 @@
android:clipChildren="false"
systemui:recentItemLayout="@layout/system_bar_recent_item"
>
-
+ <View
+ android:id="@+id/recents_transition_background"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:visibility="invisible" />
<FrameLayout
android:id="@+id/recents_bg_protect"
android:background="@drawable/recents_bg_protect_tile"
@@ -38,7 +42,6 @@
android:layout_marginBottom="@*android:dimen/system_bar_height"
android:clipToPadding="false"
android:clipChildren="false">
-
<ImageView
android:id="@+id/recents_transition_placeholder_icon"
android:layout_width="wrap_content"
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 1bf59b0..2b5248f 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -30,6 +30,9 @@
<!-- Diameter of outer shape drawable shown in navbar search-->
<dimen name="navbar_search_outerring_diameter">430dip</dimen>
+ <!-- Diameter of outer shape drawable shown in navbar search. Should be 1/2 of above value. -->
+ <dimen name="navbar_search_outerring_radius">215dip</dimen>
+
<!-- Height of search panel including navigation bar height -->
<dimen name="navbar_search_panel_height">280dip</dimen>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 3ed63ed..c88ae2a 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -87,6 +87,8 @@
<dimen name="fling_collapse_min_velocity">200dp</dimen>
<!-- Cap on contribution of x dimension of gesture to overall velocity -->
<dimen name="fling_gesture_max_x_velocity">200dp</dimen>
+ <!-- Cap on overall resulting fling speed (s^-1) -->
+ <dimen name="fling_gesture_max_output_velocity">3000dp</dimen>
<!-- Minimum fraction of the display a gesture must travel, at any velocity, to qualify as a
collapse request -->
@@ -117,6 +119,9 @@
<!-- Diameter of outer shape drawable shown in navbar search-->
<dimen name="navbar_search_outerring_diameter">340dp</dimen>
+ <!-- Diameter of outer shape drawable shown in navbar search. Should be 1/2 of above value -->
+ <dimen name="navbar_search_outerring_radius">170dp</dimen>
+
<!-- Threshold for swipe-up gesture to activate search dialog -->
<dimen name="navbar_search_up_threshhold">40dip</dimen>
diff --git a/packages/SystemUI/src/com/android/systemui/SearchPanelView.java b/packages/SystemUI/src/com/android/systemui/SearchPanelView.java
index 8b8a814..923bcba 100644
--- a/packages/SystemUI/src/com/android/systemui/SearchPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/SearchPanelView.java
@@ -35,8 +35,8 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.widget.FrameLayout;
-import com.android.internal.widget.multiwaveview.MultiWaveView;
-import com.android.internal.widget.multiwaveview.MultiWaveView.OnTriggerListener;
+import com.android.internal.widget.multiwaveview.GlowPadView;
+import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener;
import com.android.systemui.R;
import com.android.systemui.recent.StatusBarTouchProxy;
import com.android.systemui.statusbar.BaseStatusBar;
@@ -58,7 +58,7 @@ public class SearchPanelView extends FrameLayout implements
private boolean mShowing;
private View mSearchTargetsContainer;
- private MultiWaveView mMultiWaveView;
+ private GlowPadView mGlowPadView;
public SearchPanelView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -125,7 +125,7 @@ public class SearchPanelView extends FrameLayout implements
}
}
- class MultiWaveTriggerListener implements MultiWaveView.OnTriggerListener {
+ class GlowPadTriggerListener implements GlowPadView.OnTriggerListener {
boolean mWaitingForLaunch;
public void onGrabbed(View v, int handle) {
@@ -141,7 +141,7 @@ public class SearchPanelView extends FrameLayout implements
}
public void onTrigger(View v, final int target) {
- final int resId = mMultiWaveView.getResourceIdForTarget(target);
+ final int resId = mGlowPadView.getResourceIdForTarget(target);
switch (resId) {
case com.android.internal.R.drawable.ic_lockscreen_search:
mWaitingForLaunch = true;
@@ -154,13 +154,13 @@ public class SearchPanelView extends FrameLayout implements
public void onFinishFinalAnimation() {
}
}
- final MultiWaveTriggerListener mMultiWaveViewListener = new MultiWaveTriggerListener();
+ final GlowPadTriggerListener mGlowPadViewListener = new GlowPadTriggerListener();
@Override
public void onAnimationStarted() {
postDelayed(new Runnable() {
public void run() {
- mMultiWaveViewListener.mWaitingForLaunch = false;
+ mGlowPadViewListener.mWaitingForLaunch = false;
mBar.hideSearchPanel();
}
}, SEARCH_PANEL_HOLD_DURATION);
@@ -173,13 +173,13 @@ public class SearchPanelView extends FrameLayout implements
mSearchTargetsContainer = findViewById(R.id.search_panel_container);
mStatusBarTouchProxy = (StatusBarTouchProxy) findViewById(R.id.status_bar_touch_proxy);
// TODO: fetch views
- mMultiWaveView = (MultiWaveView) findViewById(R.id.multi_wave_view);
- mMultiWaveView.setOnTriggerListener(mMultiWaveViewListener);
+ mGlowPadView = (GlowPadView) findViewById(R.id.glow_pad_view);
+ mGlowPadView.setOnTriggerListener(mGlowPadViewListener);
SearchManager searchManager = getSearchManager();
if (searchManager != null) {
ComponentName component = searchManager.getGlobalSearchActivity();
if (component != null) {
- if (!mMultiWaveView.replaceTargetDrawablesIfPresent(component,
+ if (!mGlowPadView.replaceTargetDrawablesIfPresent(component,
ASSIST_ICON_METADATA_NAME,
com.android.internal.R.drawable.ic_lockscreen_search)) {
Slog.w(TAG, "Couldn't grab icon from component " + component);
@@ -214,7 +214,7 @@ public class SearchPanelView extends FrameLayout implements
private final OnPreDrawListener mPreDrawListener = new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
getViewTreeObserver().removeOnPreDrawListener(this);
- mMultiWaveView.resumeAnimations();
+ mGlowPadView.resumeAnimations();
return false;
}
};
@@ -240,7 +240,8 @@ public class SearchPanelView extends FrameLayout implements
setVisibility(View.VISIBLE);
// Don't start the animation until we've created the layer, which is done
// right before we are drawn
- mMultiWaveView.suspendAnimations();
+ mGlowPadView.suspendAnimations();
+ mGlowPadView.ping();
getViewTreeObserver().addOnPreDrawListener(mPreDrawListener);
vibrate();
}
@@ -299,7 +300,7 @@ public class SearchPanelView extends FrameLayout implements
public void setStatusBarView(final View statusBarView) {
if (mStatusBarTouchProxy != null) {
mStatusBarTouchProxy.setStatusBar(statusBarView);
-// mMultiWaveView.setOnTouchListener(new OnTouchListener() {
+// mGlowPadView.setOnTouchListener(new OnTouchListener() {
// public boolean onTouch(View v, MotionEvent event) {
// return statusBarView.onTouchEvent(event);
// }
diff --git a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
index ccdf038..296b640 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/Choreographer.java
@@ -20,15 +20,19 @@ import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.AnimatorSet.Builder;
import android.animation.ObjectAnimator;
+import android.content.res.Resources;
+import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.util.Slog;
import android.view.View;
import android.view.ViewRootImpl;
+import com.android.systemui.R;
+
/* package */ class Choreographer implements Animator.AnimatorListener {
// should group this into a multi-property animation
private static final int OPEN_DURATION = 136;
- private static final int CLOSE_DURATION = 130;
+ private static final int CLOSE_DURATION = 230;
private static final int SCRIM_DURATION = 400;
private static final String TAG = RecentsPanelView.TAG;
private static final boolean DEBUG = RecentsPanelView.DEBUG;
@@ -81,7 +85,7 @@ import android.view.ViewRootImpl;
mContentView.getAlpha(), appearing ? 1.0f : 0.0f);
fadeAnim.setInterpolator(appearing
? new android.view.animation.AccelerateInterpolator(1.0f)
- : new android.view.animation.DecelerateInterpolator(1.0f));
+ : new android.view.animation.AccelerateInterpolator(2.5f));
fadeAnim.setDuration(appearing ? OPEN_DURATION : CLOSE_DURATION);
Animator noRecentAppsFadeAnim = null;
@@ -110,6 +114,20 @@ import android.view.ViewRootImpl;
bgAnim.setDuration(appearing ? SCRIM_DURATION : CLOSE_DURATION);
builder.with(bgAnim);
}
+ } else {
+ final Resources res = mRootView.getResources();
+ boolean isTablet = res.getBoolean(R.bool.config_recents_interface_for_tablets);
+ if (!isTablet) {
+ View recentsTransitionBackground =
+ mRootView.findViewById(R.id.recents_transition_background);
+ recentsTransitionBackground.setVisibility(View.VISIBLE);
+ Drawable bgDrawable = new ColorDrawable(0xFF000000);
+ recentsTransitionBackground.setBackground(bgDrawable);
+ Animator bgAnim = ObjectAnimator.ofInt(bgDrawable, "alpha", 0, 255);
+ bgAnim.setDuration(CLOSE_DURATION);
+ bgAnim.setInterpolator(new android.view.animation.AccelerateInterpolator(1f));
+ builder.with(bgAnim);
+ }
}
mContentAnim.addListener(this);
if (mListener != null) {
@@ -139,6 +157,10 @@ import android.view.ViewRootImpl;
if (mScrimView.getBackground() != null) {
mScrimView.getBackground().setAlpha(appearing ? 255 : 0);
}
+ View recentsTransitionBackground =
+ mRootView.findViewById(R.id.recents_transition_background);
+ recentsTransitionBackground.setVisibility(View.INVISIBLE);
+ mRootView.requestLayout();
}
public void setPanelHeight(int h) {
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index 34cd397..bec9aa2 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -34,11 +34,13 @@ import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Display;
import android.view.KeyEvent;
+import android.view.IWindowManager;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
@@ -86,7 +88,8 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
OnRecentsPanelVisibilityChangedListener mVisibilityChangedListener;
ImageView mPlaceholderThumbnail;
- boolean mHideWindowAfterPlaceholderThumbnailIsHidden;
+ View mTransitionBg;
+ boolean mHideRecentsAfterThumbnailScaleUpStarted;
private RecentTasksLoader mRecentTasksLoader;
private ArrayList<TaskDescription> mRecentTaskDescriptions;
@@ -97,6 +100,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
private boolean mFitThumbnailToXY;
private int mRecentItemLayoutId;
private boolean mFirstScreenful = true;
+ private boolean mHighEndGfx;
public static interface OnRecentsPanelVisibilityChangedListener {
public void onRecentsPanelVisibilityChanged(boolean visible);
@@ -248,7 +252,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && !event.isCanceled()) {
- show(false, true);
+ show(false, false);
return true;
}
return super.onKeyUp(keyCode, event);
@@ -305,10 +309,6 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
ArrayList<TaskDescription> recentTaskDescriptions, boolean firstScreenful) {
sendCloseSystemWindows(mContext, BaseStatusBar.SYSTEM_DIALOG_REASON_RECENT_APPS);
- // For now, disable animations. We may want to re-enable in the future
- if (show) {
- animate = false;
- }
if (show) {
// Need to update list of recent apps before we set visibility so this view's
// content description is updated before it gets focus for TalkBack mode
@@ -318,6 +318,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
// quit early
boolean noApps = !mFirstScreenful && (mRecentTaskDescriptions.size() == 0);
if (mRecentsNoApps != null) {
+ mRecentsNoApps.setAlpha(1f);
mRecentsNoApps.setVisibility(noApps ? View.VISIBLE : View.INVISIBLE);
} else {
if (noApps) {
@@ -339,7 +340,6 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
mRecentTasksDirty = true;
mWaitingToShow = false;
mReadyToShow = false;
- mRecentsNoApps.setVisibility(View.INVISIBLE);
}
if (animate) {
if (mShowing != show) {
@@ -488,7 +488,8 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
if (mRecentsScrim != null) {
Display d = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay();
- if (!ActivityManager.isHighEndGfx(d)) {
+ mHighEndGfx = ActivityManager.isHighEndGfx(d);
+ if (!mHighEndGfx) {
mRecentsScrim.setBackground(null);
} else if (mRecentsScrim.getBackground() instanceof BitmapDrawable) {
// In order to save space, we make the background texture repeat in the Y direction
@@ -704,22 +705,57 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
setContentDescription(recentAppsAccessibilityDescription);
}
+
+ boolean mThumbnailScaleUpStarted;
public void handleOnClick(View view) {
ViewHolder holder = (ViewHolder)view.getTag();
TaskDescription ad = holder.taskDescription;
final Context context = view.getContext();
final ActivityManager am = (ActivityManager)
context.getSystemService(Context.ACTIVITY_SERVICE);
- holder.thumbnailViewImage.setDrawingCacheEnabled(true);
- Bitmap bm = holder.thumbnailViewImage.getDrawingCache();
- mPlaceholderThumbnail = (ImageView) findViewById(R.id.recents_transition_placeholder_icon);
+ Bitmap bm = holder.thumbnailViewImageBitmap;
+ boolean usingDrawingCache;
+ if (bm.getWidth() == holder.thumbnailViewImage.getWidth() &&
+ bm.getHeight() == holder.thumbnailViewImage.getHeight()) {
+ usingDrawingCache = false;
+ } else {
+ holder.thumbnailViewImage.setDrawingCacheEnabled(true);
+ bm = holder.thumbnailViewImage.getDrawingCache();
+ usingDrawingCache = true;
+ }
+
+ if (mPlaceholderThumbnail == null) {
+ mPlaceholderThumbnail =
+ (ImageView) findViewById(R.id.recents_transition_placeholder_icon);
+ }
+ if (mTransitionBg == null) {
+ mTransitionBg = (View) findViewById(R.id.recents_transition_background);
+
+ IWindowManager wm = IWindowManager.Stub.asInterface(
+ ServiceManager.getService(Context.WINDOW_SERVICE));
+ try {
+ if (!wm.hasSystemNavBar()) {
+ FrameLayout.LayoutParams lp =
+ (FrameLayout.LayoutParams) mTransitionBg.getLayoutParams();
+ int statusBarHeight = getResources().
+ getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height);
+ lp.setMargins(0, statusBarHeight, 0, 0);
+ mTransitionBg.setLayoutParams(lp);
+ }
+ } catch (RemoteException e) {
+ Log.w(TAG, "Failing checking whether status bar is visible", e);
+ }
+ }
final ImageView placeholderThumbnail = mPlaceholderThumbnail;
- mHideWindowAfterPlaceholderThumbnailIsHidden = false;
+ mHideRecentsAfterThumbnailScaleUpStarted = false;
placeholderThumbnail.setVisibility(VISIBLE);
- Bitmap b2 = bm.copy(bm.getConfig(), true);
- placeholderThumbnail.setImageBitmap(b2);
-
+ if (!usingDrawingCache) {
+ placeholderThumbnail.setImageBitmap(bm);
+ } else {
+ Bitmap b2 = bm.copy(bm.getConfig(), true);
+ placeholderThumbnail.setImageBitmap(b2);
+ }
Rect r = new Rect();
holder.thumbnailViewImage.getGlobalVisibleRect(r);
@@ -728,13 +764,16 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
show(false, true);
+ mThumbnailScaleUpStarted = false;
ActivityOptions opts = ActivityOptions.makeDelayedThumbnailScaleUpAnimation(
holder.thumbnailViewImage, bm, 0, 0,
new ActivityOptions.OnAnimationStartedListener() {
@Override public void onAnimationStarted() {
- mPlaceholderThumbnail = null;
- placeholderThumbnail.setVisibility(INVISIBLE);
- if (mHideWindowAfterPlaceholderThumbnailIsHidden) {
+ mThumbnailScaleUpStarted = true;
+ if (!mHighEndGfx) {
+ mPlaceholderThumbnail.setVisibility(INVISIBLE);
+ }
+ if (mHideRecentsAfterThumbnailScaleUpStarted) {
hideWindow();
}
}
@@ -751,15 +790,19 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
if (DEBUG) Log.v(TAG, "Starting activity " + intent);
context.startActivity(intent, opts.toBundle());
}
- holder.thumbnailViewImage.setDrawingCacheEnabled(false);
+ if (!usingDrawingCache) {
+ holder.thumbnailViewImage.setDrawingCacheEnabled(false);
+ }
}
public void hideWindow() {
- if (mPlaceholderThumbnail != null) {
- mHideWindowAfterPlaceholderThumbnailIsHidden = true;
+ if (!mThumbnailScaleUpStarted) {
+ mHideRecentsAfterThumbnailScaleUpStarted = true;
} else {
setVisibility(GONE);
- mHideWindowAfterPlaceholderThumbnailIsHidden = false;
+ mTransitionBg.setVisibility(INVISIBLE);
+ mPlaceholderThumbnail.setVisibility(INVISIBLE);
+ mHideRecentsAfterThumbnailScaleUpStarted = false;
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
index d387515..e802985 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
@@ -76,9 +76,6 @@ public class RecentsVerticalScrollView extends ScrollView
}
private void addToRecycledViews(View v) {
- if (mRecycledViews.contains(v)) {
- throw new RuntimeException("Child was already recycled");
- }
if (mRecycledViews.size() < mNumItemsInOneScreenful) {
mRecycledViews.add(v);
}
@@ -105,9 +102,6 @@ public class RecentsVerticalScrollView extends ScrollView
old = recycledViews.next();
recycledViews.remove();
old.setVisibility(VISIBLE);
- if (old.getParent() != null) {
- throw new RuntimeException("Recycled child has parent (i: " + i + ", recycled i: " + mRecycledViews.size());
- }
}
final View view = mAdapter.getView(i, old, mLinearLayout);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index cf2690b..750c6dc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -440,13 +440,13 @@ public abstract class BaseStatusBar extends SystemUI implements
case MSG_OPEN_RECENTS_PANEL:
if (DEBUG) Slog.d(TAG, "opening recents panel");
if (mRecentsPanel != null) {
- mRecentsPanel.show(true, true);
+ mRecentsPanel.show(true, false);
}
break;
case MSG_CLOSE_RECENTS_PANEL:
if (DEBUG) Slog.d(TAG, "closing recents panel");
if (mRecentsPanel != null && mRecentsPanel.isShowing()) {
- mRecentsPanel.show(false, true);
+ mRecentsPanel.show(false, false);
}
break;
case MSG_PRELOAD_RECENT_APPS:
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java
index d8441f2..491fad1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CarrierLabel.java
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.provider.Telephony;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Slog;
import android.view.View;
@@ -91,24 +92,20 @@ public class CarrierLabel extends TextView {
Slog.d("CarrierLabel", "updateNetworkName showSpn=" + showSpn + " spn=" + spn
+ " showPlmn=" + showPlmn + " plmn=" + plmn);
}
- StringBuilder str = new StringBuilder();
- boolean something = false;
- if (showPlmn && plmn != null) {
- str.append(plmn);
- something = true;
- }
- if (showSpn && spn != null) {
- if (something) {
- str.append('\n');
- }
- str.append(spn);
- something = true;
- }
- if (something) {
- setText(str.toString());
+ final String str;
+ // match logic in KeyguardStatusViewManager
+ final boolean plmnValid = showPlmn && !TextUtils.isEmpty(plmn);
+ final boolean spnValid = showSpn && !TextUtils.isEmpty(spn);
+ if (plmnValid && spnValid) {
+ str = plmn + "|" + spn;
+ } else if (plmnValid) {
+ str = plmn;
+ } else if (spnValid) {
+ str = spn;
} else {
- setText(com.android.internal.R.string.lockscreen_carrier_default);
+ str = "";
}
+ setText(str);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 87e95da..56de506 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -134,6 +134,9 @@ public class PhoneStatusBar extends BaseStatusBar {
private float mExpandAccelPx; // classic value: 2000px/s/s
private float mCollapseAccelPx; // classic value: 2000px/s/s (will be negated to collapse "up")
+ private float mFlingGestureMaxOutputVelocityPx; // how fast can it really go? (should be a little
+ // faster than mSelfCollapseVelocityPx)
+
PhoneStatusBarPolicy mIconPolicy;
// These are no longer handled by the policy, because we need custom strategies for them
@@ -165,6 +168,7 @@ public class PhoneStatusBar extends BaseStatusBar {
ScrollView mScrollView;
View mExpandedContents;
int mNotificationPanelMarginBottomPx, mNotificationPanelMarginLeftPx;
+ final Rect mNotificationPanelBackgroundPadding = new Rect();
int mNotificationPanelGravity;
int mNotificationPanelMinHeight;
@@ -267,6 +271,13 @@ public class PhoneStatusBar extends BaseStatusBar {
}
};
+ private final Runnable mPerformSelfExpandFling = new Runnable() {
+ @Override
+ public void run() {
+ performFling(0, mSelfExpandVelocityPx, true);
+ }
+ };
+
private final Runnable mPerformFling = new Runnable() {
@Override
public void run() {
@@ -392,12 +403,13 @@ public class PhoneStatusBar extends BaseStatusBar {
mTickerView = mStatusBarView.findViewById(R.id.ticker);
mPile = (NotificationRowLayout)mStatusBarWindow.findViewById(R.id.latestItems);
+ mPile.setLayoutTransitionsEnabled(false);
mPile.setLongPressListener(getNotificationLongClicker());
if (SHOW_CARRIER_LABEL) {
mPile.setOnSizeChangedListener(new OnSizeChangedListener() {
@Override
public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
- updateCarrierLabelVisibility();
+ updateCarrierLabelVisibility(false);
}
});
}
@@ -443,12 +455,14 @@ public class PhoneStatusBar extends BaseStatusBar {
mNetworkController.addSignalCluster(signalCluster);
signalCluster.setNetworkController(mNetworkController);
-
- // for wifi-only devices, we show SSID; otherwise, we show PLMN
- if (mNetworkController.hasMobileDataFeature()) {
- mNetworkController.addMobileLabelView(mCarrierLabel);
- } else {
- mNetworkController.addWifiLabelView(mCarrierLabel);
+
+ if (SHOW_CARRIER_LABEL) {
+ // for wifi-only devices, we show SSID; otherwise, we show PLMN
+ if (mNetworkController.hasMobileDataFeature()) {
+ mNetworkController.addMobileLabelView(mCarrierLabel);
+ } else {
+ mNetworkController.addWifiLabelView(mCarrierLabel);
+ }
}
// final ImageView wimaxRSSI =
@@ -889,7 +903,7 @@ public class PhoneStatusBar extends BaseStatusBar {
}
}
- protected void updateCarrierLabelVisibility() {
+ protected void updateCarrierLabelVisibility(boolean force) {
if (!SHOW_CARRIER_LABEL) return;
// The idea here is to only show the carrier label when there is enough room to see it,
// i.e. when there aren't enough notifications to fill the panel.
@@ -901,7 +915,7 @@ public class PhoneStatusBar extends BaseStatusBar {
final boolean makeVisible =
mPile.getHeight() < (mScrollView.getHeight() - mCarrierLabelHeight);
- if (mCarrierLabelVisible != makeVisible) {
+ if (force || mCarrierLabelVisible != makeVisible) {
mCarrierLabelVisible = makeVisible;
if (DEBUG) {
Slog.d(TAG, "making carrier label " + (makeVisible?"visible":"invisible"));
@@ -986,7 +1000,7 @@ public class PhoneStatusBar extends BaseStatusBar {
.start();
}
- updateCarrierLabelVisibility();
+ updateCarrierLabelVisibility(false);
}
public void showClock(boolean show) {
@@ -1159,9 +1173,10 @@ public class PhoneStatusBar extends BaseStatusBar {
}
mExpandedVisible = true;
+ mPile.setLayoutTransitionsEnabled(true);
makeSlippery(mNavigationBarView, true);
- updateCarrierLabelVisibility();
+ updateCarrierLabelVisibility(true);
updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
@@ -1206,7 +1221,7 @@ public class PhoneStatusBar extends BaseStatusBar {
}
prepareTracking(0, true);
- performFling(0, mSelfExpandVelocityPx, true);
+ mHandler.post(mPerformSelfExpandFling);
}
public void animateCollapse() {
@@ -1279,6 +1294,7 @@ public class PhoneStatusBar extends BaseStatusBar {
return;
}
mExpandedVisible = false;
+ mPile.setLayoutTransitionsEnabled(false);
visibilityChanged(false);
makeSlippery(mNavigationBarView, false);
@@ -1521,12 +1537,15 @@ public class PhoneStatusBar extends BaseStatusBar {
mViewDelta = statusBarSize - y;
} else {
mCloseView.getLocationOnScreen(mAbsPos);
- mViewDelta = mAbsPos[1] + statusBarSize + getCloseViewHeight() - y; // XXX: not closeViewHeight, but paddingBottom from the 9patch
+ mViewDelta = mAbsPos[1]
+ + getCloseViewHeight() // XXX: not closeViewHeight, but paddingBottom from the 9patch
+ + mNotificationPanelBackgroundPadding.top
+ + mNotificationPanelBackgroundPadding.bottom
+ - y;
}
if ((!mExpanded && y < hitSize) ||
// @@ add taps outside the panel if it's not full-screen
(mExpanded && y > (getExpandedViewMaxHeight()-hitSize))) {
-
// We drop events at the edge of the screen to make the windowshade come
// down by accident less, especially when pushing open a device with a keyboard
// that rotates (like g1 and droid)
@@ -1562,6 +1581,9 @@ public class PhoneStatusBar extends BaseStatusBar {
}
float vel = (float)Math.hypot(yVel, xVel);
+ if (vel > mFlingGestureMaxOutputVelocityPx) {
+ vel = mFlingGestureMaxOutputVelocityPx;
+ }
if (negative) {
vel = -vel;
}
@@ -1943,9 +1965,7 @@ public class PhoneStatusBar extends BaseStatusBar {
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
PixelFormat.TRANSLUCENT);
- if (ActivityManager.isHighEndGfx(mDisplay)) {
- lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
- }
+ lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
lp.gravity = getStatusBarGravity();
lp.setTitle("StatusBar");
@@ -2041,7 +2061,7 @@ public class PhoneStatusBar extends BaseStatusBar {
mStatusBarWindow.setBackgroundColor(color);
}
- updateCarrierLabelVisibility();
+ updateCarrierLabelVisibility(false);
}
void updateDisplaySize() {
@@ -2268,6 +2288,8 @@ public class PhoneStatusBar extends BaseStatusBar {
mFlingGestureMaxXVelocityPx = res.getDimension(R.dimen.fling_gesture_max_x_velocity);
+ mFlingGestureMaxOutputVelocityPx = res.getDimension(R.dimen.fling_gesture_max_output_velocity);
+
mNotificationPanelMarginBottomPx
= (int) res.getDimension(R.dimen.notification_panel_margin_bottom);
mNotificationPanelMarginLeftPx
@@ -2276,10 +2298,12 @@ public class PhoneStatusBar extends BaseStatusBar {
if (mNotificationPanelGravity <= 0) {
mNotificationPanelGravity = Gravity.CENTER_VERTICAL | Gravity.TOP;
}
+ getNinePatchPadding(res.getDrawable(R.drawable.notification_panel_bg), mNotificationPanelBackgroundPadding);
final int notificationPanelDecorationHeight =
res.getDimensionPixelSize(R.dimen.notification_panel_padding_top)
+ res.getDimensionPixelSize(R.dimen.notification_panel_header_height)
- + getNinePatchPadding(res.getDrawable(R.drawable.notification_panel_bg)).bottom;
+ + mNotificationPanelBackgroundPadding.top
+ + mNotificationPanelBackgroundPadding.bottom;
mNotificationPanelMinHeight =
notificationPanelDecorationHeight
+ res.getDimensionPixelSize(R.dimen.close_handle_underlap);
@@ -2289,13 +2313,11 @@ public class PhoneStatusBar extends BaseStatusBar {
if (false) Slog.v(TAG, "updateResources");
}
- private static Rect getNinePatchPadding(Drawable d) {
- Rect padding = new Rect();
+ private static void getNinePatchPadding(Drawable d, Rect outPadding) {
if (d instanceof NinePatchDrawable) {
NinePatchDrawable ninePatch = (NinePatchDrawable) d;
- ninePatch.getPadding(padding);
+ ninePatch.getPadding(outPadding);
}
- return padding;
}
//
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java
index 42db8cf..61e5ab6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NotificationRowLayout.java
@@ -68,6 +68,8 @@ public class NotificationRowLayout
// animation is done
boolean mRemoveViews = true;
+ private LayoutTransition mRealLayoutTransition;
+
public NotificationRowLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
@@ -75,7 +77,8 @@ public class NotificationRowLayout
public NotificationRowLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
- setLayoutTransition(new LayoutTransition());
+ mRealLayoutTransition = new LayoutTransition();
+ setLayoutTransitionsEnabled(true);
setOrientation(LinearLayout.VERTICAL);
@@ -121,9 +124,9 @@ public class NotificationRowLayout
private void logLayoutTransition() {
Log.v(TAG, "layout " +
- (getLayoutTransition().isChangingLayout() ? "is " : "is not ") +
+ (mRealLayoutTransition.isChangingLayout() ? "is " : "is not ") +
"in transition and animations " +
- (getLayoutTransition().isRunning() ? "are " : "are not ") +
+ (mRealLayoutTransition.isRunning() ? "are " : "are not ") +
"running.");
}
@@ -225,6 +228,18 @@ public class NotificationRowLayout
mRemoveViews = removeViews;
}
+ // Suppress layout transitions for a little while.
+ public void setLayoutTransitionsEnabled(boolean b) {
+ if (b) {
+ setLayoutTransition(mRealLayoutTransition);
+ } else {
+ if (mRealLayoutTransition.isRunning()) {
+ mRealLayoutTransition.cancel();
+ }
+ setLayoutTransition(null);
+ }
+ }
+
public void dismissRowAnimated(View child) {
dismissRowAnimated(child, 0);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
index 71657f5..d8166f1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
@@ -104,8 +104,6 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
mClearButton.setOnClickListener(mClearButtonListener);
mShowing = false;
-
- setContentFrameVisible(mNotificationCount > 0, false);
}
@Override
@@ -129,10 +127,6 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
}
public void show(boolean show, boolean animate) {
- if (show && !mShowing) {
- setContentFrameVisible(mSettingsView != null || mNotificationCount > 0, false);
- }
-
if (animate) {
if (mShowing != show) {
mShowing = show;
@@ -226,53 +220,10 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
}
public void setNotificationCount(int n) {
-// Slog.d(TAG, "notificationCount=" + n);
- if (!mShowing) {
- // just do it, already
- setContentFrameVisible(n > 0, false);
- } else if (mSettingsView == null) {
- // we're looking at the notifications; time to maybe make some changes
- if ((mNotificationCount > 0) != (n > 0)) {
- setContentFrameVisible(n > 0, true);
- }
- }
mNotificationCount = n;
}
public void setContentFrameVisible(final boolean showing, boolean animate) {
- if (!animate) {
- mContentFrame.setVisibility(showing ? View.VISIBLE : View.GONE);
- mContentFrame.setAlpha(1f);
- // the translation will be patched up when the window is slid into place
- return;
- }
-
- if (showing) {
- mContentFrame.setVisibility(View.VISIBLE);
- }
- AnimatorSet set = new AnimatorSet();
- set.play(ObjectAnimator.ofFloat(
- mContentFrame, "alpha",
- showing ? 0f : 1f,
- showing ? 1f : 0f))
- .with(ObjectAnimator.ofFloat(
- mContentParent, "translationY",
- showing ? mContentFrameMissingTranslation : 0f,
- showing ? 0f : mContentFrameMissingTranslation))
- ;
-
- set.setDuration(200);
- set.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator _a) {
- if (!showing) {
- mContentFrame.setVisibility(View.GONE);
- mContentFrame.setAlpha(1f);
- }
- updateClearButton();
- }
- });
- set.start();
}
public void swapPanels() {
@@ -292,11 +243,6 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
public void onAnimationEnd(Animator _a) {
toHide.setVisibility(View.GONE);
if (toShow != null) {
- if (mNotificationCount == 0) {
- // show the frame for settings, hide for notifications
- setContentFrameVisible(toShow == mSettingsView, true);
- }
-
toShow.setVisibility(View.VISIBLE);
if (toShow == mSettingsView || mNotificationCount > 0) {
ObjectAnimator.ofFloat(toShow, "alpha", 0f, 1f)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index 8df9b85..9b46af8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -404,6 +404,7 @@ public class TabletStatusBar extends BaseStatusBar implements
mRecentsPanel.updateValuesFromResources();
mShowSearchHoldoff = mContext.getResources().getInteger(
R.integer.config_show_search_delay);
+ updateSearchPanel();
}
protected void loadDimens() {