diff options
author | John Spurlock <jspurlock@google.com> | 2014-08-06 16:03:14 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2014-08-06 23:33:53 -0400 |
commit | 7e6809ad643fa4a70cfb647191731c68f07789cd (patch) | |
tree | 22cf7a75674ed5782f409e34cee77257cd1edb03 /packages/SystemUI | |
parent | 7c7bc7f6917484250974c5da00af9ef756844b0a (diff) | |
download | frameworks_base-7e6809ad643fa4a70cfb647191731c68f07789cd.zip frameworks_base-7e6809ad643fa4a70cfb647191731c68f07789cd.tar.gz frameworks_base-7e6809ad643fa4a70cfb647191731c68f07789cd.tar.bz2 |
Common shade width across devices.
Use 400dp as the visual width of the shade across all devices
and orientations, except small device portrait.
Since the width is now dynamic across orientations, update the
necessary views in SystemUI on rotate.
Remove obsolete styles + resources.
Set max QS columns to 3 on all devices, due to the newer shade
width.
Bug:16825515
Change-Id: Iff171549a79bc318a4d585a2d9ea2af9bc686922
Diffstat (limited to 'packages/SystemUI')
19 files changed, 132 insertions, 90 deletions
diff --git a/packages/SystemUI/res/layout/heads_up.xml b/packages/SystemUI/res/layout/heads_up.xml index 0e2b6d6..650ee5d 100644 --- a/packages/SystemUI/res/layout/heads_up.xml +++ b/packages/SystemUI/res/layout/heads_up.xml @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> +<!-- extends FrameLayout --> <com.android.systemui.statusbar.policy.HeadsUpNotificationView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" @@ -21,11 +22,12 @@ android:background="@drawable/heads_up_scrim"> <FrameLayout + android:layout_width="@dimen/notification_panel_width" android:layout_height="wrap_content" + android:layout_gravity="@integer/notification_panel_layout_gravity" android:paddingStart="@dimen/notification_side_padding" android:paddingEnd="@dimen/notification_side_padding" android:elevation="8dp" - android:id="@+id/content_holder" - style="@style/NotificationsQuickSettings" /> + android:id="@+id/content_holder" /> </com.android.systemui.statusbar.policy.HeadsUpNotificationView>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml index fa1077b..fc2dc02 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded.xml @@ -55,7 +55,9 @@ android:visibility="invisible" /> <com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer - style="@style/NotificationsQuickSettings" + android:layout_width="@dimen/notification_panel_width" + android:layout_height="match_parent" + android:layout_gravity="@integer/notification_panel_layout_gravity" android:id="@+id/notification_container_parent" android:clipToPadding="false" android:clipChildren="false"> diff --git a/packages/SystemUI/res/layout/status_bar_expanded_header.xml b/packages/SystemUI/res/layout/status_bar_expanded_header.xml index 1afde69..688a88c 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded_header.xml @@ -20,8 +20,9 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui" android:id="@+id/header" - style="@style/StatusBarHeader" + android:layout_width="@dimen/notification_panel_width" android:layout_height="@dimen/status_bar_header_height" + android:layout_gravity="@integer/notification_panel_layout_gravity" android:paddingStart="@dimen/notification_side_padding" android:paddingEnd="@dimen/notification_side_padding" android:baselineAligned="false" diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index 112f3a9..3765fe8 100644 --- a/packages/SystemUI/res/layout/volume_dialog.xml +++ b/packages/SystemUI/res/layout/volume_dialog.xml @@ -15,8 +15,10 @@ limitations under the License. --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="@dimen/volume_panel_width" + android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/notification_side_padding" + android:layout_marginRight="@dimen/notification_side_padding" android:background="@drawable/qs_background_primary" android:translationZ="@dimen/volume_panel_z" android:layout_marginBottom="@dimen/volume_panel_z"> diff --git a/packages/SystemUI/res/values-land/config.xml b/packages/SystemUI/res/values-land/config.xml index 5755029..2b1a4dc 100644 --- a/packages/SystemUI/res/values-land/config.xml +++ b/packages/SystemUI/res/values-land/config.xml @@ -24,9 +24,6 @@ value at runtime for some things) --> <integer name="status_bar_recents_bg_gradient_degrees">90</integer> - <!-- The number of columns in the QuickSettings --> - <integer name="quick_settings_num_columns">4</integer> - <!-- The maximum number of rows in the QuickSettings --> <integer name="quick_settings_max_rows">2</integer> diff --git a/packages/SystemUI/res/values-land/dimens.xml b/packages/SystemUI/res/values-land/dimens.xml index 42c4392..9b772bd 100644 --- a/packages/SystemUI/res/values-land/dimens.xml +++ b/packages/SystemUI/res/values-land/dimens.xml @@ -41,6 +41,7 @@ <!-- The side padding for the task stack as a percentage of the width. --> <item name="recents_stack_width_padding_percentage" format="float" type="dimen">0.2229</item> - <!-- Width of the zen mode interstitial dialog. --> - <dimen name="zen_mode_dialog_width">384dp</dimen> + <!-- Standard notification width + gravity --> + <dimen name="notification_panel_width">@dimen/standard_notification_panel_width</dimen> + <integer name="notification_panel_layout_gravity">@integer/standard_notification_panel_layout_gravity</integer> </resources> diff --git a/packages/SystemUI/res/values-sw600dp/config.xml b/packages/SystemUI/res/values-sw600dp/config.xml index 9f4c364..4f6d209 100644 --- a/packages/SystemUI/res/values-sw600dp/config.xml +++ b/packages/SystemUI/res/values-sw600dp/config.xml @@ -20,9 +20,6 @@ <!-- These resources are around just to allow their values to be customized for different hardware and product builds. --> <resources> - <!-- The number of columns in the QuickSettings --> - <integer name="quick_settings_num_columns">4</integer> - <!-- The maximum number of rows in the QuickSettings --> <integer name="quick_settings_max_rows">4</integer> diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml index 1c60c18..48b8534 100644 --- a/packages/SystemUI/res/values-sw600dp/dimens.xml +++ b/packages/SystemUI/res/values-sw600dp/dimens.xml @@ -16,12 +16,9 @@ */ --> <resources> - <!-- The width of the notification panel window: 400 + 16 + 16 (padding in the bg drawable) --> - <dimen name="notification_panel_width">432dp</dimen> - - <!-- Gravity for the notification panel --> - <!-- 0x31 = top|center_horizontal --> - <integer name="notification_panel_layout_gravity">0x31</integer> + <!-- Standard notification width + gravity --> + <dimen name="notification_panel_width">@dimen/standard_notification_panel_width</dimen> + <integer name="notification_panel_layout_gravity">@integer/standard_notification_panel_layout_gravity</integer> <!-- Diameter of outer shape drawable shown in navbar search--> <dimen name="navbar_search_outerring_diameter">430dip</dimen> @@ -49,9 +46,6 @@ <!-- The side padding for the task stack as a percentage of the width. --> <item name="recents_stack_width_padding_percentage" format="float" type="dimen">0.075</item> - <!-- Width of the zen mode interstitial dialog. --> - <dimen name="zen_mode_dialog_width">384dp</dimen> - <!-- The fraction of the screen height where the clock on the Keyguard has its center. The max value is used when no notifications are displaying, and the min value is when the highest possible number of notifications are showing. --> diff --git a/packages/SystemUI/res/values-sw600dp/styles.xml b/packages/SystemUI/res/values-sw600dp/styles.xml index 88372bc..5daf08e 100644 --- a/packages/SystemUI/res/values-sw600dp/styles.xml +++ b/packages/SystemUI/res/values-sw600dp/styles.xml @@ -19,17 +19,6 @@ <item name="android:layout_width">480dp</item> </style> - <style name="NotificationsQuickSettings"> - <item name="android:layout_width">@dimen/notification_panel_width</item> - <item name="android:layout_height">match_parent</item> - <item name="android:layout_gravity">top|center_horizontal</item> - </style> - - <style name="StatusBarHeader"> - <item name="android:layout_width">@dimen/notification_panel_width</item> - <item name="android:layout_gravity">center_horizontal</item> - </style> - <style name="SearchPanelCard"> <item name="android:layout_width">550dp</item> <item name="android:layout_height">@dimen/search_panel_card_height</item> diff --git a/packages/SystemUI/res/values-sw720dp/dimens.xml b/packages/SystemUI/res/values-sw720dp/dimens.xml index 7695b12..3cd5f67 100644 --- a/packages/SystemUI/res/values-sw720dp/dimens.xml +++ b/packages/SystemUI/res/values-sw720dp/dimens.xml @@ -22,12 +22,8 @@ be situations where they don't sync up perfectly with PhoneStatusBar. --> <!-- ======================================== --> - <!-- The width of the ticker, including the icon --> - <dimen name="notification_ticker_width">360dp</dimen> <!-- gap on either side of status bar notification icons --> <dimen name="status_bar_icon_padding">1dp</dimen> - <!-- The width of the notification panel window --> - <dimen name="notification_panel_width">512dp</dimen> <!-- The minimum height of the notification panel window --> <dimen name="notification_panel_min_height">770dp</dimen> <!-- Bottom margin (from display edge) for status bar panels --> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index efddc62..11a8063 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -136,9 +136,14 @@ <!-- Height of the status bar header bar when on Keyguard --> <dimen name="status_bar_header_height_keyguard">40dp</dimen> + <!-- Width for the notification panel and related windows --> + <dimen name="match_parent">-1px</dimen> + <dimen name="standard_notification_panel_width">416dp</dimen><!-- includes notification_side_padding on each side --> + <dimen name="notification_panel_width">@dimen/match_parent</dimen> + <!-- Gravity for the notification panel --> - <!-- 0x37 = fill_horizontal|top --> - <integer name="notification_panel_layout_gravity">0x37</integer> + <integer name="standard_notification_panel_layout_gravity">0x31</integer><!-- top|center_horizontal --> + <integer name="notification_panel_layout_gravity">0x37</integer><!-- fill_horizontal|top --> <!-- Height of the carrier/wifi name label --> <dimen name="carrier_label_height">24dp</dimen> @@ -269,9 +274,6 @@ <!-- The height of the speed bump view. --> <dimen name="speed_bump_height">16dp</dimen> - <!-- Width of the zen mode interstitial dialog. --> - <dimen name="zen_mode_dialog_width">320dp</dimen> - <!-- Lockscreen affordance drag distance for camera and phone. --> <dimen name="affordance_drag_distance">100dp</dimen> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 197c0f1..fc66730 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -254,16 +254,7 @@ <item name="android:colorControlActivated">@color/system_accent_color</item> </style> - <style name="NotificationsQuickSettings"> - <item name="android:layout_width">match_parent</item> - <item name="android:layout_height">match_parent</item> - </style> - - <style name="StatusBarHeader"> - <item name="android:layout_width">match_parent</item> - </style> - - <style name="QSBorderlessButton"> + <style name="QSBorderlessButton"> <item name="android:padding">12dp</item> <item name="android:background">@drawable/btn_borderless_rect</item> <item name="android:gravity">center</item> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index ebde080..c8a8ba5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -98,7 +98,7 @@ public abstract class BaseStatusBar extends SystemUI implements RecentsComponent.Callbacks, ExpandableNotificationRow.ExpansionLogger, NotificationData.Environment { public static final String TAG = "StatusBar"; - public static final boolean DEBUG = false; + public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); public static final boolean MULTIUSER_DEBUG = false; protected static final int MSG_SHOW_RECENT_APPS = 1019; 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 aa68b0a..bde6d4f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -32,6 +32,7 @@ import android.view.ViewTreeObserver; import android.view.accessibility.AccessibilityEvent; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; +import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.TextView; @@ -70,7 +71,7 @@ public class NotificationPanelView extends PanelView implements private View mReserveNotificationSpace; private MirrorView mSystemIconsCopy; private View mQsNavbarScrim; - + private View mNotificationContainerParent; private NotificationStackScrollLayout mNotificationStackScroller; private int mNotificationTopPadding; private boolean mAnimateNextTopPaddingChange; @@ -119,7 +120,6 @@ public class NotificationPanelView extends PanelView implements private Interpolator mFastOutSlowInInterpolator; private Interpolator mFastOutLinearInterpolator; - private Interpolator mLinearOutSlowInInterpolator; private ObjectAnimator mClockAnimator; private int mClockAnimationTarget = -1; private int mTopPaddingAdjustment; @@ -174,6 +174,7 @@ public class NotificationPanelView extends PanelView implements mScrollView = (ObservableScrollView) findViewById(R.id.scroll_view); mScrollView.setListener(this); mReserveNotificationSpace = findViewById(R.id.reserve_notification_space); + mNotificationContainerParent = findViewById(R.id.notification_container_parent); mNotificationStackScroller = (NotificationStackScrollLayout) findViewById(R.id.notification_stack_scroller); mNotificationStackScroller.setOnHeightChangedListener(this); @@ -183,8 +184,6 @@ public class NotificationPanelView extends PanelView implements android.R.interpolator.fast_out_slow_in); mFastOutLinearInterpolator = AnimationUtils.loadInterpolator(getContext(), android.R.interpolator.fast_out_linear_in); - mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(getContext(), - android.R.interpolator.linear_out_slow_in); mKeyguardBottomArea = (KeyguardBottomAreaView) findViewById(R.id.keyguard_bottom_area); mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim); mAfforanceHelper = new KeyguardAffordanceHelper(this, getContext()); @@ -207,6 +206,25 @@ public class NotificationPanelView extends PanelView implements getResources().getDimensionPixelSize(R.dimen.notification_scrim_wait_distance); } + public void updateResources() { + int panelWidth = getResources().getDimensionPixelSize(R.dimen.notification_panel_width); + int panelGravity = getResources().getInteger(R.integer.notification_panel_layout_gravity); + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mHeader.getLayoutParams(); + if (lp.width != panelWidth) { + lp.width = panelWidth; + lp.gravity = panelGravity; + mHeader.setLayoutParams(lp); + mHeader.post(mUpdateHeader); + } + + lp = (FrameLayout.LayoutParams) mNotificationContainerParent.getLayoutParams(); + if (lp.width != panelWidth) { + lp.width = panelWidth; + lp.gravity = panelGravity; + mNotificationContainerParent.setLayoutParams(lp); + } + } + @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); @@ -1666,4 +1684,11 @@ public class NotificationPanelView extends PanelView implements updateQsState(); } } + + private final Runnable mUpdateHeader = new Runnable() { + @Override + public void run() { + mHeader.updateEverything(); + } + }; } 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 750fb39..015a21d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3030,11 +3030,20 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, */ void updateResources() { // Update the quick setting tiles - if (mQSPanel != null) mQSPanel.updateResources(); + if (mQSPanel != null) { + mQSPanel.updateResources(); + } loadDimens(); mLinearOutSlowIn = AnimationUtils.loadInterpolator( mContext, android.R.interpolator.linear_out_slow_in); + + if (mNotificationPanel != null) { + mNotificationPanel.updateResources(); + } + if (mHeadsUpNotificationView != null) { + mHeadsUpNotificationView.updateResources(); + } } protected void loadDimens() { @@ -3076,7 +3085,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mKeyguardMaxNotificationCount = res.getInteger(R.integer.keyguard_max_notification_count); - if (false) Log.v(TAG, "updateResources"); + if (DEBUG) Log.v(TAG, "updateResources"); } // Visibility reporting 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 b3051b4..0c62fd3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java @@ -243,21 +243,25 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL boolean changed = expanded != mExpanded; mExpanded = expanded; if (changed) { - updateHeights(); - updateVisibilities(); - updateSystemIconsLayoutParams(); - updateClickTargets(); - updateMultiUserSwitch(); - if (mQSPanel != null) { - mQSPanel.setExpanded(expanded); - } - updateClockScale(); - updateAvatarScale(); - updateClockLp(); - requestCaptureValues(); + updateEverything(); } } + public void updateEverything() { + updateHeights(); + updateVisibilities(); + updateSystemIconsLayoutParams(); + updateClickTargets(); + updateMultiUserSwitch(); + if (mQSPanel != null) { + mQSPanel.setExpanded(mExpanded); + } + updateClockScale(); + updateAvatarScale(); + updateClockLp(); + requestCaptureValues(); + } + private void updateHeights() { int height = mExpanded ? mExpandedHeight : mCollapsedHeight; ViewGroup.LayoutParams lp = getLayoutParams(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java index 2aceb95..6ae076f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java @@ -70,6 +70,15 @@ public class HeadsUpNotificationView extends FrameLayout implements SwipeHelper. if (DEBUG) Log.v(TAG, "create() " + mTouchSensitivityDelay); } + public void updateResources() { + if (mContentHolder != null) { + final LayoutParams lp = (LayoutParams) mContentHolder.getLayoutParams(); + lp.width = getResources().getDimensionPixelSize(R.dimen.notification_panel_width); + lp.gravity = getResources().getInteger(R.integer.notification_panel_layout_gravity); + mContentHolder.setLayoutParams(lp); + } + } + public void setBar(PhoneStatusBar bar) { mBar = bar; } diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java index d202036..3a63a79 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java @@ -24,6 +24,7 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnDismissListener; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.PixelFormat; @@ -44,7 +45,6 @@ import android.os.Vibrator; import android.provider.Settings.Global; import android.util.Log; import android.util.SparseArray; -import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -355,23 +355,8 @@ public class VolumePanel extends Handler { } }; - // Change some window properties final Window window = mDialog.getWindow(); - final LayoutParams lp = window.getAttributes(); - lp.token = null; - // Offset from the top - lp.y = res.getDimensionPixelOffset(com.android.systemui.R.dimen.volume_panel_top); - lp.type = LayoutParams.TYPE_STATUS_BAR_PANEL; - lp.format = PixelFormat.TRANSLUCENT; - lp.windowAnimations = com.android.systemui.R.style.VolumePanelAnimation; - lp.gravity = Gravity.TOP; - window.setAttributes(lp); - window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); window.requestFeature(Window.FEATURE_NO_TITLE); - window.addFlags(LayoutParams.FLAG_NOT_FOCUSABLE - | LayoutParams.FLAG_NOT_TOUCH_MODAL - | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - | LayoutParams.FLAG_HARDWARE_ACCELERATED); mDialog.setCanceledOnTouchOutside(true); mDialog.setContentView(com.android.systemui.R.layout.volume_dialog); mDialog.setOnDismissListener(new OnDismissListener() { @@ -384,9 +369,24 @@ public class VolumePanel extends Handler { }); mDialog.create(); - // temporary workaround, until we support window-level shadows - mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0x00000000)); + final LayoutParams lp = window.getAttributes(); + lp.token = null; + lp.y = res.getDimensionPixelOffset(com.android.systemui.R.dimen.volume_panel_top); + lp.type = LayoutParams.TYPE_STATUS_BAR_PANEL; + lp.format = PixelFormat.TRANSLUCENT; + lp.windowAnimations = com.android.systemui.R.style.VolumePanelAnimation; + lp.setTitle(TAG); + window.setAttributes(lp); + + updateWidth(); + + window.setBackgroundDrawable(new ColorDrawable(0x00000000)); + window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + window.addFlags(LayoutParams.FLAG_NOT_FOCUSABLE + | LayoutParams.FLAG_NOT_TOUCH_MODAL + | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH + | LayoutParams.FLAG_HARDWARE_ACCELERATED); mView = window.findViewById(R.id.content); mView.setOnTouchListener(new View.OnTouchListener() { @Override @@ -416,6 +416,19 @@ public class VolumePanel extends Handler { registerReceiver(); } + public void onConfigurationChanged(Configuration newConfig) { + updateWidth(); + } + + private void updateWidth() { + final Resources res = mContext.getResources(); + final LayoutParams lp = mDialog.getWindow().getAttributes(); + lp.width = res.getDimensionPixelSize(com.android.systemui.R.dimen.notification_panel_width); + lp.gravity = + res.getInteger(com.android.systemui.R.integer.notification_panel_layout_gravity); + mDialog.getWindow().setAttributes(lp); + } + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("VolumePanel state:"); pw.print(" mTag="); pw.println(mTag); @@ -1016,7 +1029,6 @@ public class VolumePanel extends Handler { int stream = (streamType == AudioService.STREAM_REMOTE_MUSIC) ? -1 : streamType; // when the stream is for remote playback, use -1 to reset the stream type evaluation mAudioManager.forceVolumeControlStream(stream); - mDialog.show(); if (mCallback != null) { mCallback.onVisible(true); diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java index cc351f9..04a3b88 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java @@ -3,6 +3,7 @@ package com.android.systemui.volume; import android.app.ActivityManagerNative; import android.content.Context; import android.content.Intent; +import android.content.res.Configuration; import android.database.ContentObserver; import android.media.AudioManager; import android.media.IRemoteVolumeController; @@ -73,6 +74,14 @@ public class VolumeUI extends SystemUI { } @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + if (mPanel != null) { + mPanel.onConfigurationChanged(newConfig); + } + } + + @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { if (mPanel != null) { mPanel.dump(fd, pw, args); |