diff options
author | Selim Cinek <cinek@google.com> | 2014-05-26 14:14:04 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-26 14:14:06 +0000 |
commit | 161920fabbcb583250d42c6ae77acd38b30e6f6c (patch) | |
tree | ae35a3f1e6eb94ce324f9c35f210ea0d167b4227 /packages | |
parent | 0b176bbc10147df9a5b814e164cf9f9c748382c5 (diff) | |
parent | 24120a5ccf79f6f4844916121bcc1fbad0b7691b (diff) | |
download | frameworks_base-161920fabbcb583250d42c6ae77acd38b30e6f6c.zip frameworks_base-161920fabbcb583250d42c6ae77acd38b30e6f6c.tar.gz frameworks_base-161920fabbcb583250d42c6ae77acd38b30e6f6c.tar.bz2 |
Merge "Introduced overscrolling for the panel expansion" into lmp-preview-dev
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java | 20 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java | 10 |
2 files changed, 27 insertions, 3 deletions
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 2f2a5df..a92156d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -21,9 +21,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; -import android.graphics.Path; import android.util.AttributeSet; -import android.util.Log; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; @@ -32,7 +30,6 @@ import android.view.ViewTreeObserver; import android.view.accessibility.AccessibilityEvent; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; -import android.view.animation.PathInterpolator; import android.widget.LinearLayout; import com.android.systemui.R; @@ -646,6 +643,23 @@ public class NotificationPanelView extends PanelView implements } @Override + protected void onOverExpansionChanged(float overExpansion) { + float currentOverScroll = mNotificationStackScroller.getCurrentOverScrolledPixels(true); + mNotificationStackScroller.setOverScrolledPixels(currentOverScroll + overExpansion + - mOverExpansion, true /* onTop */, false /* animate */); + super.onOverExpansionChanged(overExpansion); + } + + @Override + protected void onTrackingStopped() { + super.onTrackingStopped(); + mOverExpansion = 0.0f; + mNotificationStackScroller.setOverScrolledPixels(0.0f, true /* onTop */, + true /* animate */); + } + + + @Override public void onHeightChanged(ExpandableView view) { requestPanelHeightUpdate(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 8631e3a..7c1f2cf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -38,6 +38,7 @@ import java.io.PrintWriter; public class PanelView extends FrameLayout { public static final boolean DEBUG = PanelBar.DEBUG; public static final String TAG = PanelView.class.getSimpleName(); + protected float mOverExpansion; private final void logf(String fmt, Object... args) { Log.v(TAG, (mViewName != null ? (mViewName + ": ") : "") + String.format(fmt, args)); @@ -403,6 +404,11 @@ public class PanelView extends FrameLayout { public void setExpandedHeightInternal(float h) { float fh = getMaxPanelHeight(); mExpandedHeight = Math.min(fh, h); + float overExpansion = h - fh; + overExpansion = Math.max(0, overExpansion); + if (overExpansion != mOverExpansion) { + onOverExpansionChanged(overExpansion); + } if (DEBUG) { logf("setExpansion: height=%.1f fh=%.1f tracking=%s", h, fh, mTracking ? "T" : "f"); @@ -412,6 +418,10 @@ public class PanelView extends FrameLayout { mExpandedFraction = Math.min(1f, (fh == 0) ? 0 : h / fh); } + protected void onOverExpansionChanged(float overExpansion) { + mOverExpansion = overExpansion; + } + protected void onHeightUpdated(float expandedHeight) { requestLayout(); } |