Slight generalization of task view hit test logic

The existing logic does not work if task views happen not to be
clipped. This makes the logic a little more generic.

Bug: 32101881
Test: Locally on Ryu device with existing Recents implementation as well as another, in-progress implementation.
Change-Id: I177aa5c2a020741175b2e9c85a48165fa7294b4e
This commit is contained in:
Manu Cornet
2016-11-07 14:45:47 -08:00
parent 2cf7c483a8
commit 23861dc192

View File

@@ -668,10 +668,16 @@ public class TaskView extends FixedSizeFrameLayout implements Task.TaskCallbacks
@Override
public boolean onLongClick(View v) {
SystemServicesProxy ssp = Recents.getSystemServices();
// Since we are clipping the view to the bounds, manually do the hit test
boolean inBounds = false;
Rect clipBounds = new Rect(mViewBounds.mClipBounds);
clipBounds.scale(getScaleX());
boolean inBounds = clipBounds.contains(mDownTouchPos.x, mDownTouchPos.y);
if (!clipBounds.isEmpty()) {
// If we are clipping the view to the bounds, manually do the hit test.
clipBounds.scale(getScaleX());
inBounds = clipBounds.contains(mDownTouchPos.x, mDownTouchPos.y);
} else {
// Otherwise just make sure we're within the view's bounds.
inBounds = mDownTouchPos.x <= getWidth() && mDownTouchPos.y <= getHeight();
}
if (v == this && inBounds && !ssp.hasDockedTask()) {
// Start listening for drag events
setClipViewInStack(false);