diff options
author | Matt Garnes <matt@cyngn.com> | 2015-04-30 11:17:19 -0700 |
---|---|---|
committer | Matt Garnes <matt@cyngn.com> | 2015-04-30 11:17:19 -0700 |
commit | aaa411b7f1294089da76732cb5b21da467e48422 (patch) | |
tree | b51f4f45c46917dfb631186538901ca13f940a54 /src/com/android/dialer/widget | |
parent | 61899450eb05c33835d3df99e6c75b3115c559ea (diff) | |
parent | 77e9bb4ba4b9b49b95a26d80ead59aa37d016232 (diff) | |
download | android_packages_apps_Dialer-caf/cm-12.1.tar.gz android_packages_apps_Dialer-caf/cm-12.1.tar.bz2 android_packages_apps_Dialer-caf/cm-12.1.zip |
Merge remote-tracking branch 'caf/LA.BR.1.2.3_1' into caf/cm-12.1caf/cm-12.1
Diffstat (limited to 'src/com/android/dialer/widget')
-rw-r--r-- | src/com/android/dialer/widget/OverlappingPaneLayout.java | 17 | ||||
-rw-r--r-- | src/com/android/dialer/widget/ViewDragHelper.java | 14 |
2 files changed, 29 insertions, 2 deletions
diff --git a/src/com/android/dialer/widget/OverlappingPaneLayout.java b/src/com/android/dialer/widget/OverlappingPaneLayout.java index 95a0e43de..167b849f2 100644 --- a/src/com/android/dialer/widget/OverlappingPaneLayout.java +++ b/src/com/android/dialer/widget/OverlappingPaneLayout.java @@ -230,7 +230,6 @@ public class OverlappingPaneLayout extends ViewGroup { setWillNotDraw(false); ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegate()); - ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); mDragHelper = ViewDragHelper.create(this, 0.5f, new DragHelperCallback()); mDragHelper.setMinVelocity(MIN_FLING_VELOCITY * density); @@ -718,6 +717,22 @@ public class OverlappingPaneLayout extends ViewGroup { return wantTouchEvents; } + /** + * Refreshes the {@link OverlappingPaneLayout} be attempting to re-open or re-close the pane. + * This ensures that the overlapping pane is repositioned based on any changes to the view + * which is being overlapped. + * <p> + * The {@link #openPane()} and {@link #closePane()} methods do not perform any animation if the + * pane has already been positioned appropriately. + */ + public void refresh() { + if (isOpen()) { + openPane(); + } else { + closePane(); + } + } + private boolean closePane(View pane, int initialVelocity) { if (mFirstLayout || smoothSlideTo(0.f, initialVelocity)) { mPreservedOpenState = false; diff --git a/src/com/android/dialer/widget/ViewDragHelper.java b/src/com/android/dialer/widget/ViewDragHelper.java index a0e1d801b..fe3ab8230 100644 --- a/src/com/android/dialer/widget/ViewDragHelper.java +++ b/src/com/android/dialer/widget/ViewDragHelper.java @@ -21,6 +21,7 @@ import android.content.Context; import android.support.v4.view.MotionEventCompat; import android.support.v4.view.VelocityTrackerCompat; import android.support.v4.view.ViewCompat; +import android.util.Log; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; @@ -1176,7 +1177,12 @@ public class ViewDragHelper { case MotionEvent.ACTION_MOVE: { if (mDragState == STATE_DRAGGING) { - final int index = MotionEventCompat.findPointerIndex(ev, mActivePointerId); + int index = MotionEventCompat.findPointerIndex(ev, mActivePointerId); + if (index < 0) { + Log.e(TAG, "Pointer index for id " + mActivePointerId + " not found." + + " Skipping MotionEvent"); + return; + } final float x = MotionEventCompat.getX(ev, index); final float y = MotionEventCompat.getY(ev, index); final int idx = (int) (x - mLastMotionX[mActivePointerId]); @@ -1548,6 +1554,12 @@ public class ViewDragHelper { * deltas that it consumed. */ public void processNestedScroll(View target, int dx, int dy, int[] consumed) { + if (mCapturedView == null) { + // This is safe because consumed array is null when called from + // onNestedScroll, and pre-initialized to {0, 0} when called from + // onNestedPreScroll. + return; + } final int targetX = mCapturedView.getLeft() + dx; final int targetY = mCapturedView.getTop() + dy; dragTo(targetX, targetY, dx, dy); |