diff --git a/packages/SystemUI/res/drawable-nodpi/qs_coming_soon.png b/packages/SystemUI/res/drawable-nodpi/qs_coming_soon.png
new file mode 100644
index 0000000000000..47c89b1d6caac
Binary files /dev/null and b/packages/SystemUI/res/drawable-nodpi/qs_coming_soon.png differ
diff --git a/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml b/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml
index 47c511c8661a0..b68632afffd84 100644
--- a/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml
+++ b/packages/SystemUI/res/layout-sw600dp/super_status_bar.xml
@@ -36,11 +36,17 @@
android:id="@+id/panel_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:layout_marginTop="@*android:dimen/status_bar_height"
>
+
diff --git a/packages/SystemUI/res/layout/quick_settings.xml b/packages/SystemUI/res/layout/quick_settings.xml
new file mode 100644
index 0000000000000..a62a470bbe025
--- /dev/null
+++ b/packages/SystemUI/res/layout/quick_settings.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index ad905bd12afc2..ad6b8f48e2a40 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -36,11 +36,16 @@
android:id="@+id/panel_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:layout_marginTop="@*android:dimen/status_bar_height"
>
+
diff --git a/packages/SystemUI/res/values-sw600dp-land/dimens.xml b/packages/SystemUI/res/values-sw600dp-land/dimens.xml
index afa0b20785547..c6c07195f9c7a 100644
--- a/packages/SystemUI/res/values-sw600dp-land/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp-land/dimens.xml
@@ -19,8 +19,4 @@
0dp
32dp
-
-
-
- 0x33
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 2b5248f9303ad..b6faff316636a 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -21,11 +21,12 @@
192dp
- 0dp
+ 16dp
-
-
- 0x31
+
+
+ 0x33
+ 0x35
430dip
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 8204e95ef87b8..95393737c254a 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -158,9 +158,10 @@
0dp
0dp
-
+
0x37
+ 0x37
24dp
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
index b2c72e8671956..1ea5b3e338414 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -18,7 +18,7 @@ public class PanelBar extends FrameLayout {
private PanelHolder mPanelHolder;
private ArrayList mPanels = new ArrayList();
- private PanelView mTouchingPanel;
+ protected PanelView mTouchingPanel;
public PanelBar(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -71,24 +71,25 @@ public class PanelBar extends FrameLayout {
public void panelExpansionChanged(PanelView panel, float frac) {
boolean fullyClosed = true;
- boolean fullyOpened = false;
+ PanelView fullyOpenedPanel = null;
for (PanelView pv : mPanels) {
if (pv.getExpandedHeight() > 0f) {
fullyClosed = false;
final float thisFrac = pv.getExpandedFraction();
LOG("panel %s: f=%.1f", pv, thisFrac);
if (panel == pv) {
- if (thisFrac == 1f) fullyOpened = true;
+ if (thisFrac == 1f) fullyOpenedPanel = panel;
} else {
pv.setExpandedFraction(1f-frac);
}
}
}
- if (fullyOpened) onPanelFullyOpened();
+ if (fullyOpenedPanel != null) onPanelFullyOpened(fullyOpenedPanel);
if (fullyClosed) onAllPanelsCollapsed();
else onPanelPeeked();
- LOG("panelExpansionChanged: [%s%s ]", fullyOpened?" fullyOpened":"", fullyClosed?" fullyClosed":"");
+ LOG("panelExpansionChanged: [%s%s ]",
+ (fullyOpenedPanel!=null)?" fullyOpened":"", fullyClosed?" fullyClosed":"");
}
public void collapseAllPanels(boolean animate) {
@@ -109,7 +110,7 @@ public class PanelBar extends FrameLayout {
LOG("onAllPanelsCollapsed");
}
- public void onPanelFullyOpened() {
+ public void onPanelFullyOpened(PanelView openPanel) {
LOG("onPanelFullyOpened");
}
}
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 0f84c2f27367c..4d4adcb85a598 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -169,12 +169,16 @@ public class PhoneStatusBar extends BaseStatusBar {
PanelView mNotificationPanel; // the sliding/resizing panel within the notification window
ScrollView mScrollView;
View mExpandedContents;
- int mNotificationPanelMarginBottomPx, mNotificationPanelMarginLeftPx;
final Rect mNotificationPanelBackgroundPadding = new Rect();
int mNotificationPanelGravity;
+ int mNotificationPanelMarginBottomPx, mNotificationPanelMarginPx;
int mNotificationPanelMinHeight;
boolean mNotificationPanelIsFullScreenWidth;
+ // settings
+ PanelView mSettingsPanel;
+ int mSettingsPanelGravity;
+
// top bar
View mClearButton;
View mSettingsButton;
@@ -310,22 +314,29 @@ public class PhoneStatusBar extends BaseStatusBar {
mNotificationPanel = (PanelView) mStatusBarWindow.findViewById(R.id.notification_panel);
// don't allow clicks on the panel to pass through to the background where they will cause the panel to close
- mNotificationPanel.setOnTouchListener(new View.OnTouchListener() {
+ View.OnTouchListener clickStopper = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
- });
+ };
+ mNotificationPanel.setOnTouchListener(clickStopper);
mNotificationPanelIsFullScreenWidth =
(mNotificationPanel.getLayoutParams().width == ViewGroup.LayoutParams.MATCH_PARENT);
mNotificationPanel.setSystemUiVisibility(
View.STATUS_BAR_DISABLE_NOTIFICATION_TICKER
| (mNotificationPanelIsFullScreenWidth ? 0 : View.STATUS_BAR_DISABLE_SYSTEM_INFO));
+ // quick settings (WIP)
+ mSettingsPanel = (PanelView) mStatusBarWindow.findViewById(R.id.settings_panel);
+ mSettingsPanel.setOnTouchListener(clickStopper);
+
if (!ActivityManager.isHighEndGfx(mDisplay)) {
mStatusBarWindow.setBackground(null);
mNotificationPanel.setBackground(new FastColorDrawable(context.getResources().getColor(
R.color.notification_panel_solid_background)));
+ mSettingsPanel.setBackground(new FastColorDrawable(context.getResources().getColor(
+ R.color.notification_panel_solid_background)));
}
if (ENABLE_INTRUDERS) {
mIntruderAlertView = (IntruderAlertView) View.inflate(context, R.layout.intruder_alert, null);
@@ -1634,8 +1645,12 @@ public class PhoneStatusBar extends BaseStatusBar {
if (DEBUG) Slog.v(TAG, "updateExpandedViewPos");
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mNotificationPanel.getLayoutParams();
lp.gravity = mNotificationPanelGravity;
- lp.leftMargin = mNotificationPanelMarginLeftPx;
+ lp.leftMargin = mNotificationPanelMarginPx;
mNotificationPanel.setLayoutParams(lp);
+ lp = (FrameLayout.LayoutParams) mSettingsPanel.getLayoutParams();
+ lp.gravity = mSettingsPanelGravity;
+ lp.rightMargin = mNotificationPanelMarginPx;
+ mSettingsPanel.setLayoutParams(lp);
}
// called by makeStatusbar and also by PhoneStatusBarView
@@ -1872,11 +1887,15 @@ public class PhoneStatusBar extends BaseStatusBar {
mNotificationPanelMarginBottomPx
= (int) res.getDimension(R.dimen.notification_panel_margin_bottom);
- mNotificationPanelMarginLeftPx
+ mNotificationPanelMarginPx
= (int) res.getDimension(R.dimen.notification_panel_margin_left);
mNotificationPanelGravity = res.getInteger(R.integer.notification_panel_layout_gravity);
if (mNotificationPanelGravity <= 0) {
- mNotificationPanelGravity = Gravity.CENTER_VERTICAL | Gravity.TOP;
+ mNotificationPanelGravity = Gravity.LEFT | Gravity.TOP;
+ }
+ mSettingsPanelGravity = res.getInteger(R.integer.settings_panel_layout_gravity);
+ if (mSettingsPanelGravity <= 0) {
+ mSettingsPanelGravity = Gravity.RIGHT | Gravity.TOP;
}
getNinePatchPadding(res.getDrawable(R.drawable.notification_panel_bg), mNotificationPanelBackgroundPadding);
final int notificationPanelDecorationHeight =
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 6de015349a1c2..25ff9aa4b73fb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -42,6 +42,7 @@ public class PhoneStatusBarView extends PanelBar {
private static final String TAG = "PhoneStatusBarView";
PhoneStatusBar mBar;
int mScrimColor;
+ PanelView mFadingPanel = null;
public PhoneStatusBarView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -76,12 +77,21 @@ public class PhoneStatusBarView extends PanelBar {
public void onPanelPeeked() {
super.onPanelPeeked();
mBar.makeExpandedVisible(true);
+ if (mFadingPanel == null) {
+ mFadingPanel = mTouchingPanel;
+ }
}
@Override
public void onAllPanelsCollapsed() {
super.onAllPanelsCollapsed();
mBar.makeExpandedInvisible();
+ mFadingPanel = null;
+ }
+
+ @Override
+ public void onPanelFullyOpened(PanelView openPanel) {
+ mFadingPanel = openPanel;
}
@Override
@@ -98,7 +108,8 @@ public class PhoneStatusBarView extends PanelBar {
public void panelExpansionChanged(PanelView pv, float frac) {
super.panelExpansionChanged(pv, frac);
- if (mScrimColor != 0 && ActivityManager.isHighEndGfx(mBar.mDisplay)) {
+ if (mFadingPanel == pv
+ && mScrimColor != 0 && ActivityManager.isHighEndGfx(mBar.mDisplay)) {
// woo, special effects
final float k = (float)(1f-0.5f*(1f-Math.cos(3.14159f * Math.pow(1f-frac, 2.2f))));
// attenuate background color alpha by k