From b8ea2f59e2727020ac211d5b6f6d421314546439 Mon Sep 17 00:00:00 2001 From: Chris Wren Date: Fri, 24 Aug 2012 11:50:55 -0400 Subject: [phones] Only allow double-flick opening of the quicksettings panel. Bug: 7043587 Change-Id: I39d208626c477e8c081c9d81c3124eb631152998 --- packages/SystemUI/res/values/dimens.xml | 3 +++ .../systemui/statusbar/phone/PhoneStatusBarView.java | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index b5f1a3325697..94465e2f3890 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -164,6 +164,9 @@ 0x37 0x37 + + 90dp + 24dp diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 6d474938349c..8fe525c01a4d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -43,6 +43,9 @@ public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; PhoneStatusBar mBar; int mScrimColor; + float mMinFlingGutter; + float mNotificationWidth; + boolean mFullWidthNotifications; PanelView mFadingPanel = null; PanelView mNotificationPanel, mSettingsPanel; @@ -58,6 +61,13 @@ public class PhoneStatusBarView extends PanelBar { public void onAttachedToWindow() { Resources res = getContext().getResources(); mScrimColor = res.getColor(R.color.notification_panel_scrim_color); + mMinFlingGutter = res.getDimension(R.dimen.settings_panel_fling_gutter); + mFullWidthNotifications = false; + try { + mNotificationWidth = res.getDimension(R.dimen.notification_panel_width); + } catch (Resources.NotFoundException ex) { + mFullWidthNotifications = true; + } } @Override @@ -96,9 +106,12 @@ public class PhoneStatusBarView extends PanelBar { // right 1/3 for quick settings. If you pull the status bar down a second time you'll // toggle panels no matter where you pull it down. final float w = (float) getMeasuredWidth(); + final float gutter = w - mNotificationWidth; + final boolean useGutter = !mFullWidthNotifications && gutter > mMinFlingGutter; + final float threshold = 1.0f - (gutter / w); final float f = x / w; - if (f > 0.67f && mSettingsPanel.getExpandedFraction() != 1.0f - || mNotificationPanel.getExpandedFraction() == 1.0f) { + if ((useGutter && f > threshold && mSettingsPanel.getExpandedFraction() != 1.0f) || + mNotificationPanel.getExpandedFraction() == 1.0f) { return mSettingsPanel; } return mNotificationPanel; -- cgit v1.2.3-59-g8ed1b