diff options
author | John Spurlock <jspurlock@google.com> | 2014-08-07 03:55:07 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-05 00:35:13 +0000 |
commit | 3f14df5c9df0028f78d930d03d512d969236f0bc (patch) | |
tree | 207eb819cc5119ceec1eed92770ae9a9f939bc09 /packages/SystemUI/src/com | |
parent | 8f333f19222ac9415152e31f10e0df2b571b0b77 (diff) | |
parent | 7e6809ad643fa4a70cfb647191731c68f07789cd (diff) | |
download | frameworks_base-3f14df5c9df0028f78d930d03d512d969236f0bc.zip frameworks_base-3f14df5c9df0028f78d930d03d512d969236f0bc.tar.gz frameworks_base-3f14df5c9df0028f78d930d03d512d969236f0bc.tar.bz2 |
Merge "Common shade width across devices." into lmp-dev
Diffstat (limited to 'packages/SystemUI/src/com')
7 files changed, 106 insertions, 38 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 7ec0cc5..16e51c9 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 a3b7c92..6af2cf8 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; @@ -125,7 +126,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; @@ -180,6 +180,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); @@ -189,8 +190,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()); @@ -215,6 +214,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); @@ -1685,4 +1703,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); |