diff options
Diffstat (limited to 'packages')
16 files changed, 100 insertions, 75 deletions
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_quicksettings_normal.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_quicksettings_normal.png Binary files differdeleted file mode 100644 index 3b1944d..0000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_notify_quicksettings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_settings_normal.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_settings_normal.png Binary files differdeleted file mode 100644 index 693abf5..0000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_notify_settings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_quicksettings_normal.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_quicksettings_normal.png Binary files differdeleted file mode 100644 index 807f607..0000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_notify_quicksettings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_settings_normal.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_settings_normal.png Binary files differdeleted file mode 100644 index 15340d3..0000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_notify_settings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_quicksettings_normal.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_quicksettings_normal.png Binary files differdeleted file mode 100644 index e562bc2..0000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_quicksettings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_settings_normal.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_settings_normal.png Binary files differdeleted file mode 100644 index e3cc9b0..0000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_settings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_notify_quicksettings_normal.png b/packages/SystemUI/res/drawable-xxhdpi/ic_notify_quicksettings_normal.png Binary files differdeleted file mode 100644 index a2e8fe1..0000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_notify_quicksettings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_notify_settings_normal.png b/packages/SystemUI/res/drawable-xxhdpi/ic_notify_settings_normal.png Binary files differdeleted file mode 100644 index e15981a..0000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_notify_settings_normal.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable/ic_notify_quicksettings.xml b/packages/SystemUI/res/drawable/ic_notify_quicksettings.xml deleted file mode 100644 index 7cf3175..0000000 --- a/packages/SystemUI/res/drawable/ic_notify_quicksettings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2012 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_pressed="true" - android:drawable="@drawable/ic_notify_quicksettings_normal" /> - <item - android:drawable="@drawable/ic_notify_quicksettings_normal" /> -</selector> - diff --git a/packages/SystemUI/res/drawable/ic_notify_settings.xml b/packages/SystemUI/res/drawable/ic_notify_settings.xml deleted file mode 100644 index 9303ca4..0000000 --- a/packages/SystemUI/res/drawable/ic_notify_settings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2012 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:state_pressed="true" - android:drawable="@drawable/ic_notify_settings_normal" /> - <item - android:drawable="@drawable/ic_notify_settings_normal" /> -</selector> - diff --git a/packages/SystemUI/res/drawable/ic_settings_24dp.xml b/packages/SystemUI/res/drawable/ic_settings_24dp.xml new file mode 100644 index 0000000..5c38a22 --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_settings_24dp.xml @@ -0,0 +1,29 @@ +<!-- Copyright (C) 2014 The Android Open Source Project +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at"+ + +http://www.apache.org/licenses/LICENSE-2.0 + + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" > +<size +android:width="24dp" +android:height="24dp"/> + + <viewport android:viewportWidth="24.0" + android:viewportHeight="24.0"/> + +<group> +<path + android:pathData="M19.4,13.0c0.0,-0.3 0.1,-0.6 0.1,-1.0s0.0,-0.7 -0.1,-1.0l2.1,-1.7c0.2,-0.2 0.2,-0.4 0.1,-0.6l-2.0,-3.5C19.5,5.1 19.3,5.0 19.0,5.1l-2.5,1.0c-0.5,-0.4 -1.1,-0.7 -1.7,-1.0l-0.4,-2.6C14.5,2.2 14.2,2.0 14.0,2.0l-4.0,0.0C9.8,2.0 9.5,2.2 9.5,2.4L9.1,5.1C8.5,5.3 8.0,5.7 7.4,6.1L5.0,5.1C4.7,5.0 4.5,5.1 4.3,5.3l-2.0,3.5C2.2,8.9 2.3,9.2 2.5,9.4L4.6,11.0c0.0,0.3 -0.1,0.6 -0.1,1.0s0.0,0.7 0.1,1.0l-2.1,1.7c-0.2,0.2 -0.2,0.4 -0.1,0.6l2.0,3.5C4.5,18.9 4.7,19.0 5.0,18.9l2.5,-1.0c0.5,0.4 1.1,0.7 1.7,1.0l0.4,2.6c0.0,0.2 0.2,0.4 0.5,0.4l4.0,0.0c0.2,0.0 0.5,-0.2 0.5,-0.4l0.4,-2.6c0.6,-0.3 1.2,-0.6 1.7,-1.0l2.5,1.0c0.2,0.1 0.5,0.0 0.6,-0.2l2.0,-3.5c0.1,-0.2 0.1,-0.5 -0.1,-0.6L19.4,13.0zM12.0,15.5c-1.9,0.0 -3.5,-1.6 -3.5,-3.5s1.6,-3.5 3.5,-3.5s3.5,1.6 3.5,3.5S13.9,15.5 12.0,15.5z" + android:fill="#ffffffff" + /> +</group> +</vector> diff --git a/packages/SystemUI/res/layout/status_bar_expanded_header.xml b/packages/SystemUI/res/layout/status_bar_expanded_header.xml index 7fc8eb8..18cb11f 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded_header.xml @@ -83,6 +83,14 @@ android:padding="6dp" /> + <ImageButton android:id="@+id/settings_button" + style="@android:style/Widget.Quantum.Button.Borderless" + android:layout_toStartOf="@id/multi_user_switch" + android:layout_width="56dp" + android:layout_height="@dimen/status_bar_header_height" + android:src="@drawable/ic_settings_24dp" + android:contentDescription="@string/accessibility_desc_quick_settings"/> + <FrameLayout android:id="@+id/system_icons_container" android:layout_width="wrap_content" android:layout_height="@dimen/status_bar_header_height" diff --git a/packages/SystemUI/res/layout/status_bar_flip_button.xml b/packages/SystemUI/res/layout/status_bar_flip_button.xml deleted file mode 100644 index f4d7033..0000000 --- a/packages/SystemUI/res/layout/status_bar_flip_button.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - ~ Copyright (C) 2014 The Android Open Source Project - ~ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License - --> - -<ImageView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/settings_button" - android:layout_width="50dp" - android:layout_height="50dp" - android:scaleType="center" - android:src="@drawable/ic_notify_quicksettings" - android:background="@drawable/ic_notify_button_bg" - android:contentDescription="@string/accessibility_desc_quick_settings"/>
\ No newline at end of file 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 9b360cf..2d96373 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -450,6 +450,7 @@ public class NotificationPanelView extends PanelView implements if (toHeader) { mHeader.attachSystemIcons(systemIcons); } else { + mHeader.onSystemIconsDetached(); mStatusBar.reattachSystemIcons(); } } 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 7b35124..4d09d6a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -630,6 +630,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mExpandedContents = mStackScroller; mHeader = (StatusBarHeaderView) mStatusBarWindow.findViewById(R.id.header); + mHeader.setActivityStarter(this); mKeyguardStatusView = mStatusBarWindow.findViewById(R.id.keyguard_status_view); mKeyguardBottomArea = (KeyguardBottomAreaView) mStatusBarWindow.findViewById(R.id.keyguard_bottom_area); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java index 1cbef7e..4512953 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java @@ -16,7 +16,11 @@ package com.android.systemui.statusbar.phone; +import android.app.ActivityManagerNative; import android.content.Context; +import android.content.Intent; +import android.os.RemoteException; +import android.os.UserHandle; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; @@ -29,15 +33,20 @@ import com.android.systemui.statusbar.policy.UserInfoController; /** * The view to manage the header area in the expanded status bar. */ -public class StatusBarHeaderView extends RelativeLayout { +public class StatusBarHeaderView extends RelativeLayout implements View.OnClickListener { private boolean mExpanded; + private boolean mKeyguardShowing; + private View mBackground; private ViewGroup mSystemIconsContainer; private View mDateTime; private View mKeyguardCarrierText; private MultiUserSwitch mMultiUserSwitch; private View mDate; + private View mStatusIcons; + private View mSignalCluster; + private View mSettingsButton; private int mCollapsedHeight; private int mExpandedHeight; @@ -46,7 +55,7 @@ public class StatusBarHeaderView extends RelativeLayout { private int mKeyguardWidth = ViewGroup.LayoutParams.MATCH_PARENT; private int mNormalWidth; - private boolean mKeyguardShowing; + private ActivityStarter mActivityStarter; public StatusBarHeaderView(Context context, AttributeSet attrs) { super(context, attrs); @@ -61,6 +70,8 @@ public class StatusBarHeaderView extends RelativeLayout { mKeyguardCarrierText = findViewById(R.id.keyguard_carrier_text); mMultiUserSwitch = (MultiUserSwitch) findViewById(R.id.multi_user_switch); mDate = findViewById(R.id.date); + mSettingsButton = findViewById(R.id.settings_button); + mSettingsButton.setOnClickListener(this); loadDimens(); } @@ -73,6 +84,10 @@ public class StatusBarHeaderView extends RelativeLayout { mNormalWidth = getLayoutParams().width; } + public void setActivityStarter(ActivityStarter activityStarter) { + mActivityStarter = activityStarter; + } + public int getCollapsedHeight() { return mKeyguardShowing ? mKeyguardHeight : mCollapsedHeight; } @@ -82,9 +97,13 @@ public class StatusBarHeaderView extends RelativeLayout { } public void setExpanded(boolean expanded) { + boolean changed = expanded != mExpanded; mExpanded = expanded; - updateHeights(); - updateVisibilities(); + if (changed) { + updateHeights(); + updateVisibilities(); + updateSystemIconsLayoutParams(); + } } private void updateHeights() { @@ -128,6 +147,20 @@ public class StatusBarHeaderView extends RelativeLayout { mDateTime.setVisibility(mKeyguardShowing ? View.INVISIBLE : View.VISIBLE); mKeyguardCarrierText.setVisibility(mKeyguardShowing ? View.VISIBLE : View.GONE); mDate.setVisibility(mExpanded ? View.VISIBLE : View.GONE); + mSettingsButton.setVisibility(mExpanded ? View.VISIBLE : View.GONE); + if (mStatusIcons != null) { + mStatusIcons.setVisibility(!mExpanded ? View.VISIBLE : View.GONE); + } + if (mSignalCluster != null) { + mSignalCluster.setVisibility(!mExpanded ? View.VISIBLE : View.GONE); + } + } + + private void updateSystemIconsLayoutParams() { + RelativeLayout.LayoutParams lp = (LayoutParams) mSystemIconsContainer.getLayoutParams(); + lp.addRule(RelativeLayout.START_OF, mExpanded + ? mSettingsButton.getId() + : mMultiUserSwitch.getId()); } public void setExpansion(float height) { @@ -150,6 +183,19 @@ public class StatusBarHeaderView extends RelativeLayout { public void attachSystemIcons(LinearLayout systemIcons) { mSystemIconsContainer.addView(systemIcons); + mStatusIcons = systemIcons.findViewById(R.id.statusIcons); + mSignalCluster = systemIcons.findViewById(R.id.signal_cluster); + } + + public void onSystemIconsDetached() { + if (mStatusIcons != null) { + mStatusIcons.setVisibility(View.VISIBLE); + } + if (mSignalCluster != null) { + mSignalCluster.setVisibility(View.VISIBLE); + } + mStatusIcons = null; + mSignalCluster = null; } public void setKeyguardShowing(boolean keyguardShowing) { @@ -171,4 +217,15 @@ public class StatusBarHeaderView extends RelativeLayout { public void setOverlayParent(ViewGroup parent) { mMultiUserSwitch.setOverlayParent(parent); } + + @Override + public void onClick(View v) { + if (v == mSettingsButton) { + startSettingsActivity(); + } + } + + private void startSettingsActivity() { + mActivityStarter.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); + } } |