Loading packages/SystemUI/res/layout/qs_panel.xml +2 −5 Original line number Diff line number Diff line Loading @@ -19,15 +19,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/qs_background_primary" android:paddingBottom="8dp"> android:paddingBottom="8dp" android:elevation="2dp"> <com.android.systemui.qs.QSPanel android:id="@+id/quick_settings_panel" android:background="#0000" android:layout_marginTop="@dimen/status_bar_header_height" android:layout_width="match_parent" android:layout_height="wrap_content" /> <include layout="@layout/quick_status_bar_expanded_header" /> </com.android.systemui.qs.QSContainer> packages/SystemUI/res/layout/status_bar_expanded.xml +11 −6 Original line number Diff line number Diff line Loading @@ -31,12 +31,6 @@ android:layout_height="wrap_content" android:visibility="gone" /> <include layout="@layout/qs_panel" android:layout_width="@dimen/notification_panel_width" android:layout_height="wrap_content" android:layout_gravity="@integer/notification_panel_layout_gravity" /> <com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer android:layout_width="match_parent" android:layout_height="match_parent" Loading @@ -57,6 +51,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <include layout="@layout/qs_panel" android:layout_marginTop="@dimen/status_bar_header_height_expanded" android:layout_width="match_parent" android:layout_height="wrap_content" /> <!-- A view to reserve space for the collapsed stack --> <!-- Layout height: notification_min_height + bottom_stack_peek_amount --> Loading Loading @@ -91,6 +90,12 @@ layout="@layout/keyguard_bottom_area" android:visibility="gone" /> <ViewStub android:id="@+id/status_bar_header" android:layout_width="@dimen/notification_panel_width" android:layout_height="@dimen/status_bar_header_height" android:layout_gravity="@integer/notification_panel_layout_gravity" /> <com.android.systemui.statusbar.AlphaOptimizedView android:id="@+id/qs_navbar_scrim" android:layout_height="96dp" Loading packages/SystemUI/src/com/android/systemui/qs/QSContainer.java +4 −143 Original line number Diff line number Diff line Loading @@ -16,38 +16,19 @@ package com.android.systemui.qs; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.widget.FrameLayout; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.statusbar.phone.BaseStatusBarHeader; import com.android.systemui.statusbar.stack.StackStateAnimator; /** * Wrapper view with background which contains {@link QSPanel} and {@link BaseStatusBarHeader} * * Also manages animations for the QS Header and Panel. * Wrapper view with background which contains {@link QSPanel} */ public class QSContainer extends FrameLayout { private static final String TAG = "QSContainer"; private static final boolean DEBUG = false; private int mHeightOverride = -1; private QSPanel mQSPanel; protected BaseStatusBarHeader mHeader; private float mQsExpansion; private boolean mQsExpanded; private boolean mHeaderAnimating; private boolean mKeyguardShowing; private boolean mStackScrollerOverscrolling; private long mDelay; public QSContainer(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -57,7 +38,6 @@ public class QSContainer extends FrameLayout { protected void onFinishInflate() { super.onFinishInflate(); mQSPanel = (QSPanel) findViewById(R.id.quick_settings_panel); mHeader = (BaseStatusBarHeader) findViewById(R.id.header); } @Override Loading @@ -83,133 +63,14 @@ public class QSContainer extends FrameLayout { */ public int getDesiredHeight() { if (mQSPanel.isClosingDetail()) { return mQSPanel.getGridHeight() + mHeader.getCollapsedHeight() + getPaddingBottom(); return mQSPanel.getGridHeight() + getPaddingTop() + getPaddingBottom(); } else { return getMeasuredHeight(); } } private void updateBottom() { int heightOverride = mHeightOverride != -1 ? mHeightOverride : getMeasuredHeight(); int height = (int) (mQsExpansion * (heightOverride - mHeader.getCollapsedHeight())) + mHeader.getCollapsedHeight(); int height = mHeightOverride != -1 ? mHeightOverride : getMeasuredHeight(); setBottom(getTop() + height); } private void updateQsState() { boolean expandVisually = mQsExpanded || mStackScrollerOverscrolling || mHeaderAnimating; mQSPanel.setExpanded(mQsExpanded); mHeader.setVisibility((mQsExpanded || !mKeyguardShowing || mHeaderAnimating) ? View.VISIBLE : View.INVISIBLE); mHeader.setExpanded((mKeyguardShowing && !mHeaderAnimating) || (mQsExpanded && !mStackScrollerOverscrolling)); mQSPanel.setVisibility(expandVisually ? View.VISIBLE : View.INVISIBLE); setVisibility(mKeyguardShowing && !expandVisually ? View.INVISIBLE : View.VISIBLE); } public BaseStatusBarHeader getHeader() { return mHeader; } public QSPanel getQsPanel() { return mQSPanel; } public void setHeaderClickable(boolean clickable) { if (DEBUG) Log.d(TAG, "setHeaderClickable " + clickable); mHeader.setClickable(clickable); } public void setExpanded(boolean expanded) { if (DEBUG) Log.d(TAG, "setExpanded " + expanded); mQsExpanded = expanded; updateQsState(); } public void setKeyguardShowing(boolean keyguardShowing) { if (DEBUG) Log.d(TAG, "setKeyguardShowing " + keyguardShowing); mKeyguardShowing = keyguardShowing; updateQsState(); } public void setOverscrolling(boolean stackScrollerOverscrolling) { if (DEBUG) Log.d(TAG, "setOverscrolling " + stackScrollerOverscrolling); mStackScrollerOverscrolling = stackScrollerOverscrolling; updateQsState(); } public void setListening(boolean listening) { if (DEBUG) Log.d(TAG, "setListening " + listening); mQSPanel.setListening(listening); mHeader.setListening(listening); } public void setQsExpansion(float expansion, float headerTranslation) { if (DEBUG) Log.d(TAG, "setQSExpansion " + expansion + " " + headerTranslation); mQsExpansion = expansion; final float translationScaleY = expansion - 1; if (!mHeaderAnimating) { setTranslationY(mKeyguardShowing ? (translationScaleY * mHeader.getHeight()) : headerTranslation); } mHeader.setExpansion(mKeyguardShowing ? 1 : expansion); mQSPanel.setTranslationY(translationScaleY * mQSPanel.getHeight()); updateBottom(); } public void animateHeaderSlidingIn(long delay) { if (DEBUG) Log.d(TAG, "animateHeaderSlidingIn"); // If the QS is already expanded we don't need to slide in the header as it's already // visible. if (!mQsExpanded) { mHeaderAnimating = true; mDelay = delay; getViewTreeObserver().addOnPreDrawListener(mStartHeaderSlidingIn); } } public void animateHeaderSlidingOut() { if (DEBUG) Log.d(TAG, "animateHeaderSlidingOut"); mHeaderAnimating = true; animate().y(-mHeader.getHeight()) .setStartDelay(0) .setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { animate().setListener(null); mHeaderAnimating = false; updateQsState(); } }) .start(); } private final ViewTreeObserver.OnPreDrawListener mStartHeaderSlidingIn = new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getViewTreeObserver().removeOnPreDrawListener(this); animate() .translationY(0f) .setStartDelay(mDelay) .setDuration(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setListener(mAnimateHeaderSlidingInListener) .start(); setY(-mHeader.getHeight()); return true; } }; private final Animator.AnimatorListener mAnimateHeaderSlidingInListener = new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mHeaderAnimating = false; updateQsState(); } }; } packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +168 −37 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
packages/SystemUI/res/layout/qs_panel.xml +2 −5 Original line number Diff line number Diff line Loading @@ -19,15 +19,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/qs_background_primary" android:paddingBottom="8dp"> android:paddingBottom="8dp" android:elevation="2dp"> <com.android.systemui.qs.QSPanel android:id="@+id/quick_settings_panel" android:background="#0000" android:layout_marginTop="@dimen/status_bar_header_height" android:layout_width="match_parent" android:layout_height="wrap_content" /> <include layout="@layout/quick_status_bar_expanded_header" /> </com.android.systemui.qs.QSContainer>
packages/SystemUI/res/layout/status_bar_expanded.xml +11 −6 Original line number Diff line number Diff line Loading @@ -31,12 +31,6 @@ android:layout_height="wrap_content" android:visibility="gone" /> <include layout="@layout/qs_panel" android:layout_width="@dimen/notification_panel_width" android:layout_height="wrap_content" android:layout_gravity="@integer/notification_panel_layout_gravity" /> <com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer android:layout_width="match_parent" android:layout_height="match_parent" Loading @@ -57,6 +51,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <include layout="@layout/qs_panel" android:layout_marginTop="@dimen/status_bar_header_height_expanded" android:layout_width="match_parent" android:layout_height="wrap_content" /> <!-- A view to reserve space for the collapsed stack --> <!-- Layout height: notification_min_height + bottom_stack_peek_amount --> Loading Loading @@ -91,6 +90,12 @@ layout="@layout/keyguard_bottom_area" android:visibility="gone" /> <ViewStub android:id="@+id/status_bar_header" android:layout_width="@dimen/notification_panel_width" android:layout_height="@dimen/status_bar_header_height" android:layout_gravity="@integer/notification_panel_layout_gravity" /> <com.android.systemui.statusbar.AlphaOptimizedView android:id="@+id/qs_navbar_scrim" android:layout_height="96dp" Loading
packages/SystemUI/src/com/android/systemui/qs/QSContainer.java +4 −143 Original line number Diff line number Diff line Loading @@ -16,38 +16,19 @@ package com.android.systemui.qs; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.widget.FrameLayout; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.statusbar.phone.BaseStatusBarHeader; import com.android.systemui.statusbar.stack.StackStateAnimator; /** * Wrapper view with background which contains {@link QSPanel} and {@link BaseStatusBarHeader} * * Also manages animations for the QS Header and Panel. * Wrapper view with background which contains {@link QSPanel} */ public class QSContainer extends FrameLayout { private static final String TAG = "QSContainer"; private static final boolean DEBUG = false; private int mHeightOverride = -1; private QSPanel mQSPanel; protected BaseStatusBarHeader mHeader; private float mQsExpansion; private boolean mQsExpanded; private boolean mHeaderAnimating; private boolean mKeyguardShowing; private boolean mStackScrollerOverscrolling; private long mDelay; public QSContainer(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -57,7 +38,6 @@ public class QSContainer extends FrameLayout { protected void onFinishInflate() { super.onFinishInflate(); mQSPanel = (QSPanel) findViewById(R.id.quick_settings_panel); mHeader = (BaseStatusBarHeader) findViewById(R.id.header); } @Override Loading @@ -83,133 +63,14 @@ public class QSContainer extends FrameLayout { */ public int getDesiredHeight() { if (mQSPanel.isClosingDetail()) { return mQSPanel.getGridHeight() + mHeader.getCollapsedHeight() + getPaddingBottom(); return mQSPanel.getGridHeight() + getPaddingTop() + getPaddingBottom(); } else { return getMeasuredHeight(); } } private void updateBottom() { int heightOverride = mHeightOverride != -1 ? mHeightOverride : getMeasuredHeight(); int height = (int) (mQsExpansion * (heightOverride - mHeader.getCollapsedHeight())) + mHeader.getCollapsedHeight(); int height = mHeightOverride != -1 ? mHeightOverride : getMeasuredHeight(); setBottom(getTop() + height); } private void updateQsState() { boolean expandVisually = mQsExpanded || mStackScrollerOverscrolling || mHeaderAnimating; mQSPanel.setExpanded(mQsExpanded); mHeader.setVisibility((mQsExpanded || !mKeyguardShowing || mHeaderAnimating) ? View.VISIBLE : View.INVISIBLE); mHeader.setExpanded((mKeyguardShowing && !mHeaderAnimating) || (mQsExpanded && !mStackScrollerOverscrolling)); mQSPanel.setVisibility(expandVisually ? View.VISIBLE : View.INVISIBLE); setVisibility(mKeyguardShowing && !expandVisually ? View.INVISIBLE : View.VISIBLE); } public BaseStatusBarHeader getHeader() { return mHeader; } public QSPanel getQsPanel() { return mQSPanel; } public void setHeaderClickable(boolean clickable) { if (DEBUG) Log.d(TAG, "setHeaderClickable " + clickable); mHeader.setClickable(clickable); } public void setExpanded(boolean expanded) { if (DEBUG) Log.d(TAG, "setExpanded " + expanded); mQsExpanded = expanded; updateQsState(); } public void setKeyguardShowing(boolean keyguardShowing) { if (DEBUG) Log.d(TAG, "setKeyguardShowing " + keyguardShowing); mKeyguardShowing = keyguardShowing; updateQsState(); } public void setOverscrolling(boolean stackScrollerOverscrolling) { if (DEBUG) Log.d(TAG, "setOverscrolling " + stackScrollerOverscrolling); mStackScrollerOverscrolling = stackScrollerOverscrolling; updateQsState(); } public void setListening(boolean listening) { if (DEBUG) Log.d(TAG, "setListening " + listening); mQSPanel.setListening(listening); mHeader.setListening(listening); } public void setQsExpansion(float expansion, float headerTranslation) { if (DEBUG) Log.d(TAG, "setQSExpansion " + expansion + " " + headerTranslation); mQsExpansion = expansion; final float translationScaleY = expansion - 1; if (!mHeaderAnimating) { setTranslationY(mKeyguardShowing ? (translationScaleY * mHeader.getHeight()) : headerTranslation); } mHeader.setExpansion(mKeyguardShowing ? 1 : expansion); mQSPanel.setTranslationY(translationScaleY * mQSPanel.getHeight()); updateBottom(); } public void animateHeaderSlidingIn(long delay) { if (DEBUG) Log.d(TAG, "animateHeaderSlidingIn"); // If the QS is already expanded we don't need to slide in the header as it's already // visible. if (!mQsExpanded) { mHeaderAnimating = true; mDelay = delay; getViewTreeObserver().addOnPreDrawListener(mStartHeaderSlidingIn); } } public void animateHeaderSlidingOut() { if (DEBUG) Log.d(TAG, "animateHeaderSlidingOut"); mHeaderAnimating = true; animate().y(-mHeader.getHeight()) .setStartDelay(0) .setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { animate().setListener(null); mHeaderAnimating = false; updateQsState(); } }) .start(); } private final ViewTreeObserver.OnPreDrawListener mStartHeaderSlidingIn = new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { getViewTreeObserver().removeOnPreDrawListener(this); animate() .translationY(0f) .setStartDelay(mDelay) .setDuration(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN) .setListener(mAnimateHeaderSlidingInListener) .start(); setY(-mHeader.getHeight()); return true; } }; private final Animator.AnimatorListener mAnimateHeaderSlidingInListener = new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mHeaderAnimating = false; updateQsState(); } }; }
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +168 −37 File changed.Preview size limit exceeded, changes collapsed. Show changes