summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2014-04-21 15:56:25 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-04-21 15:56:25 +0000
commit06661993037c28d2e189bfe809304a5d0e3ba5d8 (patch)
treec6a3bda66245d291aea6d2d648f6bc4f26cf0ee5
parent507288322b11ae27ab8f47438d3ef4203dad0192 (diff)
parentf0b06c773867610d747d2063e74f13c12e3595c4 (diff)
downloadframeworks_base-06661993037c28d2e189bfe809304a5d0e3ba5d8.zip
frameworks_base-06661993037c28d2e189bfe809304a5d0e3ba5d8.tar.gz
frameworks_base-06661993037c28d2e189bfe809304a5d0e3ba5d8.tar.bz2
Merge "Quick settings bug fixes."
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java31
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java17
3 files changed, 32 insertions, 19 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 45ac50b..5d75801 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -38,6 +38,7 @@ public class NotificationPanelView extends PanelView {
private int[] mTempChildLocation = new int[2];
private View mNotificationParent;
private boolean mTrackingSettings;
+ private float mExpandedHeight = -1;
public NotificationPanelView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -173,6 +174,8 @@ public class NotificationPanelView extends PanelView {
* @param expandedHeight the new expanded height
*/
private void updateNotificationStackHeight(float expandedHeight) {
+ if (mExpandedHeight == expandedHeight) return;
+ mExpandedHeight = expandedHeight;
mNotificationStackScroller.setIsExpanded(expandedHeight > 0.0f);
float childOffset = getRelativeTop(mNotificationStackScroller)
- mNotificationParent.getTranslationY();
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 bec669f..4ad582f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -747,6 +747,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
}
public boolean onSettingsEvent(MotionEvent event) {
+ userActivity();
+ if (mSettingsClosing
+ && mFlipSettingsViewAnim != null && mFlipSettingsViewAnim.isRunning()) {
+ return true;
+ }
if (mSettingsTracker != null) {
mSettingsTracker.addMovement(event);
}
@@ -814,15 +819,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
}
private void positionSettings(float dy) {
- final int h = mFlipSettingsView.getMeasuredHeight();
- final int ph = mNotificationPanel.getMeasuredHeight();
if (mSettingsClosing) {
+ final int ph = mNotificationPanel.getMeasuredHeight();
dy = Math.min(Math.max(-ph, dy), 0);
mFlipSettingsView.setTranslationY(dy);
mStackScroller.setTranslationY(ph + dy);
} else {
- dy = Math.min(Math.max(0, dy), ph);
- mFlipSettingsView.setTranslationY(-h + dy - mNotificationPadding * 2);
+ final int h = mFlipSettingsView.getBottom();
+ dy = Math.min(Math.max(0, dy), h);
+ mFlipSettingsView.setTranslationY(-h + dy);
mStackScroller.setTranslationY(dy);
}
}
@@ -1733,17 +1738,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
mHeaderFlipper.cancel();
mKeyguardFlipper.cancel();
if (mClearButtonAnim != null) mClearButtonAnim.cancel();
-
mStackScroller.setVisibility(View.VISIBLE);
final int h = mNotificationPanel.getMeasuredHeight();
final float settingsY = mSettingsTracker != null ? mFlipSettingsView.getTranslationY() : 0;
final float scrollerY = mSettingsTracker != null ? mStackScroller.getTranslationY() : h;
mScrollViewAnim = start(
- startDelay(0,
interpolator(mDecelerateInterpolator,
ObjectAnimator.ofFloat(mStackScroller, View.TRANSLATION_Y, scrollerY, 0)
.setDuration(FLIP_DURATION)
- )));
+ ));
mFlipSettingsViewAnim = start(
setVisibilityWhenDone(
interpolator(mDecelerateInterpolator,
@@ -3058,25 +3061,27 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
mSettingsButtonAnim = start(
setVisibilityWhenDone(
ObjectAnimator.ofFloat(mSettingsButton, View.ALPHA, 0f)
- .setDuration(FLIP_DURATION),
+ .setDuration(FLIP_DURATION_OUT),
mStackScroller, View.INVISIBLE));
mNotificationButton.setVisibility(View.VISIBLE);
mNotificationButtonAnim = start(
- ObjectAnimator.ofFloat(mNotificationButton, View.ALPHA, 1f)
- .setDuration(FLIP_DURATION));
+ startDelay(FLIP_DURATION_OUT,
+ ObjectAnimator.ofFloat(mNotificationButton, View.ALPHA, 1f)
+ .setDuration(FLIP_DURATION_IN)));
}
public void flipToNotifications() {
mNotificationButtonAnim = start(
setVisibilityWhenDone(
ObjectAnimator.ofFloat(mNotificationButton, View.ALPHA, 0f)
- .setDuration(FLIP_DURATION),
+ .setDuration(FLIP_DURATION_OUT),
mNotificationButton, View.INVISIBLE));
mSettingsButton.setVisibility(View.VISIBLE);
mSettingsButtonAnim = start(
- ObjectAnimator.ofFloat(mSettingsButton, View.ALPHA, 1f)
- .setDuration(FLIP_DURATION));
+ startDelay(FLIP_DURATION_OUT,
+ ObjectAnimator.ofFloat(mSettingsButton, View.ALPHA, 1f)
+ .setDuration(FLIP_DURATION_IN)));
}
public void cancel() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java
index 02e9c0d..c44cb0c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsContainerView.java
@@ -62,18 +62,19 @@ class QuickSettingsContainerView extends FrameLayout {
@Override
protected void onFinishInflate() {
super.onFinishInflate();
- mScrim = new ScrimView(mContext);
- addView(mScrim);
- mScrim.setAlpha(sShowScrim ? 1 : 0);
+ if (sShowScrim) {
+ mScrim = new ScrimView(mContext);
+ addView(mScrim);
+ }
// TODO: Setup the layout transitions
LayoutTransition transitions = getLayoutTransition();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
- if (mScrim.getAlpha() == 1) {
- mScrim.animate().alpha(0).setDuration(1000).start();
+ if (mScrim != null) {
sShowScrim = false;
+ removeView(mScrim);
}
return super.onTouchEvent(event);
}
@@ -144,7 +145,9 @@ class QuickSettingsContainerView extends FrameLayout {
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- mScrim.bringToFront();
+ if (mScrim != null) {
+ mScrim.bringToFront();
+ }
final int N = getChildCount();
final boolean isLayoutRtl = isLayoutRtl();
final int width = getWidth();
@@ -206,6 +209,7 @@ class QuickSettingsContainerView extends FrameLayout {
}
private static final class ScrimView extends View {
+ private static final int SCRIM = 0x4f000000;
private static final int COLOR = 0xaf4285f4;
private final Paint mLinePaint;
@@ -240,6 +244,7 @@ class QuickSettingsContainerView extends FrameLayout {
final int h = getMeasuredHeight();
final int f = mStrokeWidth * 3 / 4;
+ canvas.drawColor(SCRIM);
canvas.drawPath(line(f, h / 2, w - f, h / 2), mLinePaint);
canvas.drawPath(line(w / 2, f, w / 2, h - f), mLinePaint);