diff options
author | Chris Wren <cwren@android.com> | 2012-08-24 09:24:09 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-08-24 09:24:10 -0700 |
commit | e370c468221bfef8f73c20f9d013cd22f06e2da7 (patch) | |
tree | bd34555b60fe36baa84a73425917835d2b13351b | |
parent | 54f4f91d7c519df0a913528d05ac26372fb2d7e2 (diff) | |
parent | b8ea2f59e2727020ac211d5b6f6d421314546439 (diff) |
Merge "[phones] Only allow double-flick opening of the quicksettings panel." into jb-mr1-dev
-rw-r--r-- | packages/SystemUI/res/values/dimens.xml | 3 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/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 @@ <integer name="notification_panel_layout_gravity">0x37</integer> <integer name="settings_panel_layout_gravity">0x37</integer> + <!-- Quick settings panels minimum fling open target width. --> + <dimen name="settings_panel_fling_gutter">90dp</dimen> + <!-- Height of the carrier/wifi name label --> <dimen name="carrier_label_height">24dp</dimen> 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; |