Merge "Reset ExpandHelper when the panel is collapsed." into jb-mr1-dev

This commit is contained in:
Daniel Sandler
2012-10-23 08:34:55 -07:00
committed by Android (Google) Code Review
3 changed files with 44 additions and 27 deletions

View File

@@ -27,13 +27,12 @@ import android.util.Slog;
import android.view.Gravity; import android.view.Gravity;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.ScaleGestureDetector; import android.view.ScaleGestureDetector;
import android.view.ScaleGestureDetector.OnScaleGestureListener;
import android.view.View; import android.view.View;
import android.view.ViewConfiguration; import android.view.ViewConfiguration;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import java.util.Stack;
public class ExpandHelper implements Gefingerpoken, OnClickListener { public class ExpandHelper implements Gefingerpoken, OnClickListener {
public interface Callback { public interface Callback {
View getChildAtRawPosition(float x, float y); View getChildAtRawPosition(float x, float y);
@@ -110,6 +109,32 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
private View mScrollView; private View mScrollView;
private OnScaleGestureListener mScaleGestureListener
= new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
if (DEBUG_SCALE) Slog.v(TAG, "onscalebegin()");
float focusX = detector.getFocusX();
float focusY = detector.getFocusY();
final View underFocus = findView(focusX, focusY);
if (underFocus != null) {
startExpanding(underFocus, STRETCH);
}
return mExpanding;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
if (DEBUG_SCALE) Slog.v(TAG, "onscale() on " + mCurrView);
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
};
private class ViewScaler { private class ViewScaler {
View mView; View mView;
@@ -201,31 +226,7 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
final ViewConfiguration configuration = ViewConfiguration.get(mContext); final ViewConfiguration configuration = ViewConfiguration.get(mContext);
mTouchSlop = configuration.getScaledTouchSlop(); mTouchSlop = configuration.getScaledTouchSlop();
mSGD = new ScaleGestureDetector(context, mSGD = new ScaleGestureDetector(context, mScaleGestureListener);
new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
if (DEBUG_SCALE) Slog.v(TAG, "onscalebegin()");
float focusX = detector.getFocusX();
float focusY = detector.getFocusY();
final View underFocus = findView(focusX, focusY);
if (underFocus != null) {
startExpanding(underFocus, STRETCH);
}
return mExpanding;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
if (DEBUG_SCALE) Slog.v(TAG, "onscale() on " + mCurrView);
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
});
} }
private void updateExpansion() { private void updateExpansion() {
@@ -586,6 +587,17 @@ public class ExpandHelper implements Gefingerpoken, OnClickListener {
clearView(); clearView();
} }
/**
* Use this to abort any pending expansions in progress.
*/
public void cancel() {
finishExpanding(true);
clearView();
// reset the gesture detector
mSGD = new ScaleGestureDetector(mContext, mScaleGestureListener);
}
/** /**
* Triggers haptic feedback. * Triggers haptic feedback.
*/ */

View File

@@ -1373,6 +1373,7 @@ public class PhoneStatusBar extends BaseStatusBar {
mHandler.sendEmptyMessage(MSG_CLOSE_SEARCH_PANEL); mHandler.sendEmptyMessage(MSG_CLOSE_SEARCH_PANEL);
} }
mStatusBarWindow.cancelExpandHelper();
mStatusBarView.collapseAllPanels(true); mStatusBarView.collapseAllPanels(true);
} }

View File

@@ -119,5 +119,9 @@ public class StatusBarWindowView extends FrameLayout
canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), pt); canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), pt);
} }
} }
public void cancelExpandHelper() {
mExpandHelper.cancel();
}
} }