OSDN Git Service

Fixed a bug where not enough notifications were shown on lockscreen
authorSelim Cinek <cinek@google.com>
Fri, 11 Dec 2015 01:10:24 +0000 (17:10 -0800)
committerSelim Cinek <cinek@google.com>
Fri, 11 Dec 2015 21:42:26 +0000 (13:42 -0800)
Change-Id: Ia1a869d12e01d0787f873399bf68b48215a65e0c

packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java

index a781585..55b9d83 100644 (file)
@@ -1292,9 +1292,9 @@ public abstract class BaseStatusBar extends SystemUI implements
     }
 
     /**
-     * Called when the panel was layouted expanded for the first time after being collapsed.
+     * Called when the size of the notification panel changes
      */
-    public void onPanelExpandedAndLayouted() {
+    public void onPanelHeightChanged() {
         if (mState == StatusBarState.KEYGUARD) {
             // Since the number of notifications is determined based on the height of the view, we
             // need to update them.
index 21d803d..5e54ba7 100644 (file)
@@ -82,6 +82,7 @@ public abstract class PanelView extends FrameLayout {
     private boolean mMotionAborted;
     private boolean mUpwardsWhenTresholdReached;
     private boolean mAnimatingOnDown;
+    private int mLayoutHeight = 0;
 
     private ValueAnimator mHeightAnimator;
     private ObjectAnimator mPeekAnimator;
@@ -716,6 +717,10 @@ public abstract class PanelView extends FrameLayout {
     @Override
     protected void onLayout (boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
+        if (mLayoutHeight != getHeight()) {
+            mLayoutHeight = getHeight();
+            mStatusBar.onPanelHeightChanged();
+        }
         requestPanelHeightUpdate();
         mHasLayoutedSinceDown = true;
         if (mUpdateFlingOnLayout) {
@@ -889,7 +894,6 @@ public abstract class PanelView extends FrameLayout {
                         if (mStatusBar.getStatusBarWindow().getHeight()
                                 != mStatusBar.getStatusBarHeight()) {
                             getViewTreeObserver().removeOnGlobalLayoutListener(this);
-                            mStatusBar.onPanelExpandedAndLayouted();
                             if (animate) {
                                 mBar.startOpeningPanel(PanelView.this);
                                 notifyExpandingStarted();