merge cafdea61a8 w/ one minor conflict in core/java/android/view/MotionEvent.java
This commit is contained in:
@@ -58,32 +58,32 @@ public final class MotionEvent implements Parcelable {
|
||||
public static final int ACTION_OUTSIDE = 4;
|
||||
|
||||
private static final boolean TRACK_RECYCLED_LOCATION = false;
|
||||
|
||||
|
||||
/**
|
||||
* Flag indicating the motion event intersected the top edge of the screen.
|
||||
*/
|
||||
public static final int EDGE_TOP = 0x00000001;
|
||||
|
||||
|
||||
/**
|
||||
* Flag indicating the motion event intersected the bottom edge of the screen.
|
||||
*/
|
||||
public static final int EDGE_BOTTOM = 0x00000002;
|
||||
|
||||
|
||||
/**
|
||||
* Flag indicating the motion event intersected the left edge of the screen.
|
||||
*/
|
||||
public static final int EDGE_LEFT = 0x00000004;
|
||||
|
||||
|
||||
/**
|
||||
* Flag indicating the motion event intersected the right edge of the screen.
|
||||
*/
|
||||
public static final int EDGE_RIGHT = 0x00000008;
|
||||
|
||||
|
||||
static private final int MAX_RECYCLED = 10;
|
||||
static private Object gRecyclerLock = new Object();
|
||||
static private int gRecyclerUsed = 0;
|
||||
static private MotionEvent gRecyclerTop = null;
|
||||
|
||||
|
||||
private long mDownTime;
|
||||
private long mEventTime;
|
||||
private long mEventTimeNano;
|
||||
@@ -109,7 +109,7 @@ public final class MotionEvent implements Parcelable {
|
||||
|
||||
private MotionEvent() {
|
||||
}
|
||||
|
||||
|
||||
static private MotionEvent obtain() {
|
||||
synchronized (gRecyclerLock) {
|
||||
if (gRecyclerTop == null) {
|
||||
@@ -183,22 +183,22 @@ public final class MotionEvent implements Parcelable {
|
||||
/**
|
||||
* Create a new MotionEvent, filling in all of the basic values that
|
||||
* define the motion.
|
||||
*
|
||||
* @param downTime The time (in ms) when the user originally pressed down to start
|
||||
*
|
||||
* @param downTime The time (in ms) when the user originally pressed down to start
|
||||
* a stream of position events. This must be obtained from {@link SystemClock#uptimeMillis()}.
|
||||
* @param eventTime The the time (in ms) when this specific event was generated. This
|
||||
* @param eventTime The the time (in ms) when this specific event was generated. This
|
||||
* must be obtained from {@link SystemClock#uptimeMillis()}.
|
||||
* @param action The kind of action being performed -- one of either
|
||||
* {@link #ACTION_DOWN}, {@link #ACTION_MOVE}, {@link #ACTION_UP}, or
|
||||
* {@link #ACTION_CANCEL}.
|
||||
* @param x The X coordinate of this event.
|
||||
* @param y The Y coordinate of this event.
|
||||
* @param pressure The current pressure of this event. The pressure generally
|
||||
* ranges from 0 (no pressure at all) to 1 (normal pressure), however
|
||||
* values higher than 1 may be generated depending on the calibration of
|
||||
* @param pressure The current pressure of this event. The pressure generally
|
||||
* ranges from 0 (no pressure at all) to 1 (normal pressure), however
|
||||
* values higher than 1 may be generated depending on the calibration of
|
||||
* the input device.
|
||||
* @param size A scaled value of the approximate size of the area being pressed when
|
||||
* touched with the finger. The actual value in pixels corresponding to the finger
|
||||
* touched with the finger. The actual value in pixels corresponding to the finger
|
||||
* touch is normalized with a device specific range of values
|
||||
* and scaled to a value between 0 and 1.
|
||||
* @param metaState The state of any meta / modifier keys that were in effect when
|
||||
@@ -231,15 +231,15 @@ public final class MotionEvent implements Parcelable {
|
||||
|
||||
return ev;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new MotionEvent, filling in a subset of the basic motion
|
||||
* values. Those not specified here are: device id (always 0), pressure
|
||||
* and size (always 1), x and y precision (always 1), and edgeFlags (always 0).
|
||||
*
|
||||
* @param downTime The time (in ms) when the user originally pressed down to start
|
||||
*
|
||||
* @param downTime The time (in ms) when the user originally pressed down to start
|
||||
* a stream of position events. This must be obtained from {@link SystemClock#uptimeMillis()}.
|
||||
* @param eventTime The the time (in ms) when this specific event was generated. This
|
||||
* @param eventTime The the time (in ms) when this specific event was generated. This
|
||||
* must be obtained from {@link SystemClock#uptimeMillis()}.
|
||||
* @param action The kind of action being performed -- one of either
|
||||
* {@link #ACTION_DOWN}, {@link #ACTION_MOVE}, {@link #ACTION_UP}, or
|
||||
@@ -287,9 +287,10 @@ public final class MotionEvent implements Parcelable {
|
||||
float[] history = mHistory;
|
||||
int length = history.length;
|
||||
for (int i = 0; i < length; i += 4) {
|
||||
history[i] *= scale;
|
||||
history[i + 2] *= scale;
|
||||
history[i + 3] *= scale;
|
||||
history[i] *= scale; // X
|
||||
// history[i + 2] == pressure
|
||||
history[i + 1] *= scale; // Y
|
||||
history[i + 3] *= scale; // Size, TODO: square this?
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -324,7 +325,7 @@ public final class MotionEvent implements Parcelable {
|
||||
}
|
||||
return ev;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Recycle the MotionEvent, to be re-used by a later caller. After calling
|
||||
* this function you must not ever touch the event again.
|
||||
@@ -350,7 +351,7 @@ public final class MotionEvent implements Parcelable {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the kind of action being performed -- one of either
|
||||
* {@link #ACTION_DOWN}, {@link #ACTION_MOVE}, {@link #ACTION_UP}, or
|
||||
@@ -361,8 +362,8 @@ public final class MotionEvent implements Parcelable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the time (in ms) when the user originally pressed down to start
|
||||
* a stream of position events.
|
||||
* Returns the time (in ms) when the user originally pressed down to start
|
||||
* a stream of position events.
|
||||
*/
|
||||
public final long getDownTime() {
|
||||
return mDownTime;
|
||||
@@ -376,6 +377,7 @@ public final class MotionEvent implements Parcelable {
|
||||
}
|
||||
|
||||
/**
|
||||
<<<<<<< HEAD:core/java/android/view/MotionEvent.java
|
||||
* Returns the time (in ns) when this specific event was generated.
|
||||
* The value is in nanosecond precision but it may not have nanosecond accuracy.
|
||||
*
|
||||
@@ -388,23 +390,30 @@ public final class MotionEvent implements Parcelable {
|
||||
/**
|
||||
* Returns the X coordinate of this event. Whole numbers are pixels; the
|
||||
* value may have a fraction for input devices that are sub-pixel precise.
|
||||
|||||||
|
||||
* Returns the X coordinate of this event. Whole numbers are pixels; the
|
||||
* value may have a fraction for input devices that are sub-pixel precise.
|
||||
=======
|
||||
* Returns the X coordinate of this event. Whole numbers are pixels; the
|
||||
* value may have a fraction for input devices that are sub-pixel precise.
|
||||
>>>>>>> cafdea61a85c8f5d0646cc9413a09346c637f43f:core/java/android/view/MotionEvent.java
|
||||
*/
|
||||
public final float getX() {
|
||||
return mX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Y coordinate of this event. Whole numbers are pixels; the
|
||||
* value may have a fraction for input devices that are sub-pixel precise.
|
||||
* Returns the Y coordinate of this event. Whole numbers are pixels; the
|
||||
* value may have a fraction for input devices that are sub-pixel precise.
|
||||
*/
|
||||
public final float getY() {
|
||||
return mY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current pressure of this event. The pressure generally
|
||||
* ranges from 0 (no pressure at all) to 1 (normal pressure), however
|
||||
* values higher than 1 may be generated depending on the calibration of
|
||||
* Returns the current pressure of this event. The pressure generally
|
||||
* ranges from 0 (no pressure at all) to 1 (normal pressure), however
|
||||
* values higher than 1 may be generated depending on the calibration of
|
||||
* the input device.
|
||||
*/
|
||||
public final float getPressure() {
|
||||
@@ -413,9 +422,9 @@ public final class MotionEvent implements Parcelable {
|
||||
|
||||
/**
|
||||
* Returns a scaled value of the approximate size, of the area being pressed when
|
||||
* touched with the finger. The actual value in pixels corresponding to the finger
|
||||
* touched with the finger. The actual value in pixels corresponding to the finger
|
||||
* touch is normalized with the device specific range of values
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events.
|
||||
*/
|
||||
public final float getSize() {
|
||||
@@ -465,7 +474,7 @@ public final class MotionEvent implements Parcelable {
|
||||
public final float getXPrecision() {
|
||||
return mXPrecision;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the precision of the Y coordinates being reported. You can
|
||||
* multiple this number with {@link #getY} to find the actual hardware
|
||||
@@ -475,89 +484,89 @@ public final class MotionEvent implements Parcelable {
|
||||
public final float getYPrecision() {
|
||||
return mYPrecision;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the number of historical points in this event. These are
|
||||
* movements that have occurred between this event and the previous event.
|
||||
* This only applies to ACTION_MOVE events -- all other actions will have
|
||||
* a size of 0.
|
||||
*
|
||||
*
|
||||
* @return Returns the number of historical points in the event.
|
||||
*/
|
||||
public final int getHistorySize() {
|
||||
return mNumHistory;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the time that a historical movement occurred between this event
|
||||
* and the previous event. Only applies to ACTION_MOVE events.
|
||||
*
|
||||
*
|
||||
* @param pos Which historical value to return; must be less than
|
||||
* {@link #getHistorySize}
|
||||
*
|
||||
*
|
||||
* @see #getHistorySize
|
||||
* @see #getEventTime
|
||||
*/
|
||||
public final long getHistoricalEventTime(int pos) {
|
||||
return mHistoryTimes[pos];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a historical X coordinate that occurred between this event
|
||||
* and the previous event. Only applies to ACTION_MOVE events.
|
||||
*
|
||||
*
|
||||
* @param pos Which historical value to return; must be less than
|
||||
* {@link #getHistorySize}
|
||||
*
|
||||
*
|
||||
* @see #getHistorySize
|
||||
* @see #getX
|
||||
*/
|
||||
public final float getHistoricalX(int pos) {
|
||||
return mHistory[pos*4];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a historical Y coordinate that occurred between this event
|
||||
* and the previous event. Only applies to ACTION_MOVE events.
|
||||
*
|
||||
*
|
||||
* @param pos Which historical value to return; must be less than
|
||||
* {@link #getHistorySize}
|
||||
*
|
||||
*
|
||||
* @see #getHistorySize
|
||||
* @see #getY
|
||||
*/
|
||||
public final float getHistoricalY(int pos) {
|
||||
return mHistory[pos*4 + 1];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a historical pressure coordinate that occurred between this event
|
||||
* and the previous event. Only applies to ACTION_MOVE events.
|
||||
*
|
||||
*
|
||||
* @param pos Which historical value to return; must be less than
|
||||
* {@link #getHistorySize}
|
||||
*
|
||||
*
|
||||
* @see #getHistorySize
|
||||
* @see #getPressure
|
||||
*/
|
||||
public final float getHistoricalPressure(int pos) {
|
||||
return mHistory[pos*4 + 2];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a historical size coordinate that occurred between this event
|
||||
* and the previous event. Only applies to ACTION_MOVE events.
|
||||
*
|
||||
*
|
||||
* @param pos Which historical value to return; must be less than
|
||||
* {@link #getHistorySize}
|
||||
*
|
||||
*
|
||||
* @see #getHistorySize
|
||||
* @see #getSize
|
||||
*/
|
||||
public final float getHistoricalSize(int pos) {
|
||||
return mHistory[pos*4 + 3];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the id for the device that this event came from. An id of
|
||||
* zero indicates that the event didn't come from a physical device; other
|
||||
@@ -566,12 +575,12 @@ public final class MotionEvent implements Parcelable {
|
||||
public final int getDeviceId() {
|
||||
return mDeviceId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a bitfield indicating which edges, if any, where touched by this
|
||||
* MotionEvent. For touch events, clients can use this to determine if the
|
||||
* user's finger was touching the edge of the display.
|
||||
*
|
||||
* MotionEvent. For touch events, clients can use this to determine if the
|
||||
* user's finger was touching the edge of the display.
|
||||
*
|
||||
* @see #EDGE_LEFT
|
||||
* @see #EDGE_TOP
|
||||
* @see #EDGE_RIGHT
|
||||
@@ -580,12 +589,12 @@ public final class MotionEvent implements Parcelable {
|
||||
public final int getEdgeFlags() {
|
||||
return mEdgeFlags;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets the bitfield indicating which edges, if any, where touched by this
|
||||
* MotionEvent.
|
||||
*
|
||||
* MotionEvent.
|
||||
*
|
||||
* @see #getEdgeFlags()
|
||||
*/
|
||||
public final void setEdgeFlags(int flags) {
|
||||
@@ -617,11 +626,11 @@ public final class MotionEvent implements Parcelable {
|
||||
pos[i+1] += deltaY;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set this event's location. Applies {@link #offsetLocation} with a
|
||||
* delta from the current location to the given new location.
|
||||
*
|
||||
*
|
||||
* @param x New absolute X location.
|
||||
* @param y New absolute Y location.
|
||||
*/
|
||||
@@ -632,13 +641,13 @@ public final class MotionEvent implements Parcelable {
|
||||
offsetLocation(deltaX, deltaY);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a new movement to the batch of movements in this event. The event's
|
||||
* current location, position and size is updated to the new values. In
|
||||
* the future, the current values in the event will be added to a list of
|
||||
* historic values.
|
||||
*
|
||||
*
|
||||
* @param x The new X position.
|
||||
* @param y The new Y position.
|
||||
* @param pressure The new pressure.
|
||||
@@ -668,16 +677,16 @@ public final class MotionEvent implements Parcelable {
|
||||
mHistoryTimes = historyTimes = newHistoryTimes;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
historyTimes[N] = mEventTime;
|
||||
|
||||
|
||||
final int pos = N*4;
|
||||
history[pos] = mX;
|
||||
history[pos+1] = mY;
|
||||
history[pos+2] = mPressure;
|
||||
history[pos+3] = mSize;
|
||||
mNumHistory = N+1;
|
||||
|
||||
|
||||
mEventTime = eventTime;
|
||||
mX = mRawX = x;
|
||||
mY = mRawY = y;
|
||||
@@ -685,7 +694,7 @@ public final class MotionEvent implements Parcelable {
|
||||
mSize = size;
|
||||
mMetaState |= metaState;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MotionEvent{" + Integer.toHexString(System.identityHashCode(this))
|
||||
|
||||
@@ -1449,7 +1449,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
if ((flags & FLAG_CHILDREN_DRAWN_WITH_CACHE) == FLAG_CHILDREN_DRAWN_WITH_CACHE ||
|
||||
(flags & FLAG_ALWAYS_DRAWN_WITH_CACHE) == FLAG_ALWAYS_DRAWN_WITH_CACHE) {
|
||||
cache = child.getDrawingCache();
|
||||
scalingRequired = mAttachInfo.mScalingRequired;
|
||||
if (mAttachInfo != null) scalingRequired = mAttachInfo.mScalingRequired;
|
||||
}
|
||||
|
||||
final boolean hasNoCache = cache == null;
|
||||
@@ -1460,6 +1460,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
|
||||
} else {
|
||||
canvas.translate(cl, ct);
|
||||
if (scalingRequired) {
|
||||
// mAttachInfo cannot be null, otherwise scalingRequired == false
|
||||
final float scale = 1.0f / mAttachInfo.mApplicationScale;
|
||||
canvas.scale(scale, scale);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user