summaryrefslogtreecommitdiffstats
path: root/src/com/android/dialer/widget
diff options
context:
space:
mode:
authorMatt Garnes <matt@cyngn.com>2015-04-30 11:17:19 -0700
committerMatt Garnes <matt@cyngn.com>2015-04-30 11:17:19 -0700
commitaaa411b7f1294089da76732cb5b21da467e48422 (patch)
treeb51f4f45c46917dfb631186538901ca13f940a54 /src/com/android/dialer/widget
parent61899450eb05c33835d3df99e6c75b3115c559ea (diff)
parent77e9bb4ba4b9b49b95a26d80ead59aa37d016232 (diff)
downloadandroid_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.java17
-rw-r--r--src/com/android/dialer/widget/ViewDragHelper.java14
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);