Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a622047b authored by Biswarup Pal's avatar Biswarup Pal Committed by Android (Google) Code Review
Browse files

Merge "Add event time to virtual input events" into udc-dev

parents 9e6a4d41 e3da10d2
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -4980,6 +4980,7 @@ package android.hardware.input {
  public final class VirtualKeyEvent implements android.os.Parcelable {
  public final class VirtualKeyEvent implements android.os.Parcelable {
    method public int describeContents();
    method public int describeContents();
    method public int getAction();
    method public int getAction();
    method public long getEventTimeNanos();
    method public int getKeyCode();
    method public int getKeyCode();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int ACTION_DOWN = 0; // 0x0
    field public static final int ACTION_DOWN = 0; // 0x0
@@ -4991,6 +4992,7 @@ package android.hardware.input {
    ctor public VirtualKeyEvent.Builder();
    ctor public VirtualKeyEvent.Builder();
    method @NonNull public android.hardware.input.VirtualKeyEvent build();
    method @NonNull public android.hardware.input.VirtualKeyEvent build();
    method @NonNull public android.hardware.input.VirtualKeyEvent.Builder setAction(int);
    method @NonNull public android.hardware.input.VirtualKeyEvent.Builder setAction(int);
    method @NonNull public android.hardware.input.VirtualKeyEvent.Builder setEventTimeNanos(long);
    method @NonNull public android.hardware.input.VirtualKeyEvent.Builder setKeyCode(int);
    method @NonNull public android.hardware.input.VirtualKeyEvent.Builder setKeyCode(int);
  }
  }
@@ -5028,6 +5030,7 @@ package android.hardware.input {
    method public int describeContents();
    method public int describeContents();
    method public int getAction();
    method public int getAction();
    method public int getButtonCode();
    method public int getButtonCode();
    method public long getEventTimeNanos();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int ACTION_BUTTON_PRESS = 11; // 0xb
    field public static final int ACTION_BUTTON_PRESS = 11; // 0xb
    field public static final int ACTION_BUTTON_RELEASE = 12; // 0xc
    field public static final int ACTION_BUTTON_RELEASE = 12; // 0xc
@@ -5044,6 +5047,7 @@ package android.hardware.input {
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent build();
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent build();
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent.Builder setAction(int);
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent.Builder setAction(int);
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent.Builder setButtonCode(int);
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent.Builder setButtonCode(int);
    method @NonNull public android.hardware.input.VirtualMouseButtonEvent.Builder setEventTimeNanos(long);
  }
  }
  public final class VirtualMouseConfig extends android.hardware.input.VirtualInputDeviceConfig implements android.os.Parcelable {
  public final class VirtualMouseConfig extends android.hardware.input.VirtualInputDeviceConfig implements android.os.Parcelable {
@@ -5059,6 +5063,7 @@ package android.hardware.input {
  public final class VirtualMouseRelativeEvent implements android.os.Parcelable {
  public final class VirtualMouseRelativeEvent implements android.os.Parcelable {
    method public int describeContents();
    method public int describeContents();
    method public long getEventTimeNanos();
    method public float getRelativeX();
    method public float getRelativeX();
    method public float getRelativeY();
    method public float getRelativeY();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
@@ -5068,12 +5073,14 @@ package android.hardware.input {
  public static final class VirtualMouseRelativeEvent.Builder {
  public static final class VirtualMouseRelativeEvent.Builder {
    ctor public VirtualMouseRelativeEvent.Builder();
    ctor public VirtualMouseRelativeEvent.Builder();
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent build();
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent build();
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent.Builder setEventTimeNanos(long);
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent.Builder setRelativeX(float);
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent.Builder setRelativeX(float);
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent.Builder setRelativeY(float);
    method @NonNull public android.hardware.input.VirtualMouseRelativeEvent.Builder setRelativeY(float);
  }
  }
  public final class VirtualMouseScrollEvent implements android.os.Parcelable {
  public final class VirtualMouseScrollEvent implements android.os.Parcelable {
    method public int describeContents();
    method public int describeContents();
    method public long getEventTimeNanos();
    method public float getXAxisMovement();
    method public float getXAxisMovement();
    method public float getYAxisMovement();
    method public float getYAxisMovement();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
@@ -5083,6 +5090,7 @@ package android.hardware.input {
  public static final class VirtualMouseScrollEvent.Builder {
  public static final class VirtualMouseScrollEvent.Builder {
    ctor public VirtualMouseScrollEvent.Builder();
    ctor public VirtualMouseScrollEvent.Builder();
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent build();
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent build();
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent.Builder setEventTimeNanos(long);
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent.Builder setXAxisMovement(@FloatRange(from=-1.0F, to=1.0f) float);
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent.Builder setXAxisMovement(@FloatRange(from=-1.0F, to=1.0f) float);
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent.Builder setYAxisMovement(@FloatRange(from=-1.0F, to=1.0f) float);
    method @NonNull public android.hardware.input.VirtualMouseScrollEvent.Builder setYAxisMovement(@FloatRange(from=-1.0F, to=1.0f) float);
  }
  }
@@ -5108,6 +5116,7 @@ package android.hardware.input {
  public final class VirtualTouchEvent implements android.os.Parcelable {
  public final class VirtualTouchEvent implements android.os.Parcelable {
    method public int describeContents();
    method public int describeContents();
    method public int getAction();
    method public int getAction();
    method public long getEventTimeNanos();
    method public float getMajorAxisSize();
    method public float getMajorAxisSize();
    method public int getPointerId();
    method public int getPointerId();
    method public float getPressure();
    method public float getPressure();
@@ -5128,6 +5137,7 @@ package android.hardware.input {
    ctor public VirtualTouchEvent.Builder();
    ctor public VirtualTouchEvent.Builder();
    method @NonNull public android.hardware.input.VirtualTouchEvent build();
    method @NonNull public android.hardware.input.VirtualTouchEvent build();
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setAction(int);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setAction(int);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setEventTimeNanos(long);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setMajorAxisSize(@FloatRange(from=0.0f) float);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setMajorAxisSize(@FloatRange(from=0.0f) float);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setPointerId(@IntRange(from=0, to=0x10 - 1) int);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setPointerId(@IntRange(from=0, to=0x10 - 1) int);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setPressure(@FloatRange(from=0.0f) float);
    method @NonNull public android.hardware.input.VirtualTouchEvent.Builder setPressure(@FloatRange(from=0.0f) float);
+36 −2
Original line number Original line Diff line number Diff line
@@ -21,6 +21,8 @@ import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
import android.os.SystemClock;
import android.view.InputEvent;
import android.view.KeyEvent;
import android.view.KeyEvent;


import java.lang.annotation.Retention;
import java.lang.annotation.Retention;
@@ -177,21 +179,25 @@ public final class VirtualKeyEvent implements Parcelable {


    private final @Action int mAction;
    private final @Action int mAction;
    private final int mKeyCode;
    private final int mKeyCode;
    private final long mEventTimeNanos;


    private VirtualKeyEvent(@Action int action, int keyCode) {
    private VirtualKeyEvent(@Action int action, int keyCode, long eventTimeNanos) {
        mAction = action;
        mAction = action;
        mKeyCode = keyCode;
        mKeyCode = keyCode;
        mEventTimeNanos = eventTimeNanos;
    }
    }


    private VirtualKeyEvent(@NonNull Parcel parcel) {
    private VirtualKeyEvent(@NonNull Parcel parcel) {
        mAction = parcel.readInt();
        mAction = parcel.readInt();
        mKeyCode = parcel.readInt();
        mKeyCode = parcel.readInt();
        mEventTimeNanos = parcel.readLong();
    }
    }


    @Override
    @Override
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
        parcel.writeInt(mAction);
        parcel.writeInt(mAction);
        parcel.writeInt(mKeyCode);
        parcel.writeInt(mKeyCode);
        parcel.writeLong(mEventTimeNanos);
    }
    }


    @Override
    @Override
@@ -213,6 +219,16 @@ public final class VirtualKeyEvent implements Parcelable {
        return mAction;
        return mAction;
    }
    }


    /**
     * Returns the time this event occurred, in the {@link SystemClock#uptimeMillis()} time base but
     * with nanosecond (instead of millisecond) precision.
     *
     * @see InputEvent#getEventTime()
     */
    public long getEventTimeNanos() {
        return mEventTimeNanos;
    }

    /**
    /**
     * Builder for {@link VirtualKeyEvent}.
     * Builder for {@link VirtualKeyEvent}.
     */
     */
@@ -220,6 +236,7 @@ public final class VirtualKeyEvent implements Parcelable {


        private @Action int mAction = ACTION_UNKNOWN;
        private @Action int mAction = ACTION_UNKNOWN;
        private int mKeyCode = -1;
        private int mKeyCode = -1;
        private long mEventTimeNanos = 0L;


        /**
        /**
         * Creates a {@link VirtualKeyEvent} object with the current builder configuration.
         * Creates a {@link VirtualKeyEvent} object with the current builder configuration.
@@ -229,7 +246,7 @@ public final class VirtualKeyEvent implements Parcelable {
                throw new IllegalArgumentException(
                throw new IllegalArgumentException(
                        "Cannot build virtual key event with unset fields");
                        "Cannot build virtual key event with unset fields");
            }
            }
            return new VirtualKeyEvent(mAction, mKeyCode);
            return new VirtualKeyEvent(mAction, mKeyCode, mEventTimeNanos);
        }
        }


        /**
        /**
@@ -254,6 +271,23 @@ public final class VirtualKeyEvent implements Parcelable {
            mAction = action;
            mAction = action;
            return this;
            return this;
        }
        }

        /**
         * Sets the time (in nanoseconds) when this specific event was generated. This may be
         * obtained from {@link SystemClock#uptimeMillis()} (with nanosecond precision instead of
         * millisecond), but can be different depending on the use case.
         * This field is optional and can be omitted.
         *
         * @return this builder, to allow for chaining of calls
         * @see InputEvent#getEventTime()
         */
        public @NonNull Builder setEventTimeNanos(long eventTimeNanos) {
            if (eventTimeNanos < 0L) {
                throw new IllegalArgumentException("Event time cannot be negative");
            }
            mEventTimeNanos = eventTimeNanos;
            return this;
        }
    }
    }


    public static final @NonNull Parcelable.Creator<VirtualKeyEvent> CREATOR =
    public static final @NonNull Parcelable.Creator<VirtualKeyEvent> CREATOR =
+37 −2
Original line number Original line Diff line number Diff line
@@ -21,6 +21,8 @@ import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
import android.os.SystemClock;
import android.view.InputEvent;
import android.view.MotionEvent;
import android.view.MotionEvent;


import java.lang.annotation.Retention;
import java.lang.annotation.Retention;
@@ -81,21 +83,26 @@ public final class VirtualMouseButtonEvent implements Parcelable {


    private final @Action int mAction;
    private final @Action int mAction;
    private final @Button int mButtonCode;
    private final @Button int mButtonCode;
    private final long mEventTimeNanos;


    private VirtualMouseButtonEvent(@Action int action, @Button int buttonCode) {
    private VirtualMouseButtonEvent(@Action int action, @Button int buttonCode,
            long eventTimeNanos) {
        mAction = action;
        mAction = action;
        mButtonCode = buttonCode;
        mButtonCode = buttonCode;
        mEventTimeNanos = eventTimeNanos;
    }
    }


    private VirtualMouseButtonEvent(@NonNull Parcel parcel) {
    private VirtualMouseButtonEvent(@NonNull Parcel parcel) {
        mAction = parcel.readInt();
        mAction = parcel.readInt();
        mButtonCode = parcel.readInt();
        mButtonCode = parcel.readInt();
        mEventTimeNanos = parcel.readLong();
    }
    }


    @Override
    @Override
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
        parcel.writeInt(mAction);
        parcel.writeInt(mAction);
        parcel.writeInt(mButtonCode);
        parcel.writeInt(mButtonCode);
        parcel.writeLong(mEventTimeNanos);
    }
    }


    @Override
    @Override
@@ -117,6 +124,16 @@ public final class VirtualMouseButtonEvent implements Parcelable {
        return mAction;
        return mAction;
    }
    }


    /**
     * Returns the time this event occurred, in the {@link SystemClock#uptimeMillis()} time base but
     * with nanosecond (instead of millisecond) precision.
     *
     * @see InputEvent#getEventTime()
     */
    public long getEventTimeNanos() {
        return mEventTimeNanos;
    }

    /**
    /**
     * Builder for {@link VirtualMouseButtonEvent}.
     * Builder for {@link VirtualMouseButtonEvent}.
     */
     */
@@ -124,6 +141,7 @@ public final class VirtualMouseButtonEvent implements Parcelable {


        private @Action int mAction = ACTION_UNKNOWN;
        private @Action int mAction = ACTION_UNKNOWN;
        private @Button int mButtonCode = -1;
        private @Button int mButtonCode = -1;
        private long mEventTimeNanos = 0L;


        /**
        /**
         * Creates a {@link VirtualMouseButtonEvent} object with the current builder configuration.
         * Creates a {@link VirtualMouseButtonEvent} object with the current builder configuration.
@@ -133,7 +151,7 @@ public final class VirtualMouseButtonEvent implements Parcelable {
                throw new IllegalArgumentException(
                throw new IllegalArgumentException(
                        "Cannot build virtual mouse button event with unset fields");
                        "Cannot build virtual mouse button event with unset fields");
            }
            }
            return new VirtualMouseButtonEvent(mAction, mButtonCode);
            return new VirtualMouseButtonEvent(mAction, mButtonCode, mEventTimeNanos);
        }
        }


        /**
        /**
@@ -165,6 +183,23 @@ public final class VirtualMouseButtonEvent implements Parcelable {
            mAction = action;
            mAction = action;
            return this;
            return this;
        }
        }

        /**
         * Sets the time (in nanoseconds) when this specific event was generated. This may be
         * obtained from {@link SystemClock#uptimeMillis()} (with nanosecond precision instead of
         * millisecond), but can be different depending on the use case.
         * This field is optional and can be omitted.
         *
         * @return this builder, to allow for chaining of calls
         * @see InputEvent#getEventTime()
         */
        public @NonNull Builder setEventTimeNanos(long eventTimeNanos) {
            if (eventTimeNanos < 0L) {
                throw new IllegalArgumentException("Event time cannot be negative");
            }
            this.mEventTimeNanos = eventTimeNanos;
            return this;
        }
    }
    }


    public static final @NonNull Parcelable.Creator<VirtualMouseButtonEvent> CREATOR =
    public static final @NonNull Parcelable.Creator<VirtualMouseButtonEvent> CREATOR =
+36 −2
Original line number Original line Diff line number Diff line
@@ -20,6 +20,8 @@ import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
import android.os.SystemClock;
import android.view.InputEvent;


/**
/**
 * An event describing a mouse movement interaction originating from a remote device.
 * An event describing a mouse movement interaction originating from a remote device.
@@ -33,21 +35,25 @@ public final class VirtualMouseRelativeEvent implements Parcelable {


    private final float mRelativeX;
    private final float mRelativeX;
    private final float mRelativeY;
    private final float mRelativeY;
    private final long mEventTimeNanos;


    private VirtualMouseRelativeEvent(float relativeX, float relativeY) {
    private VirtualMouseRelativeEvent(float relativeX, float relativeY, long eventTimeNanos) {
        mRelativeX = relativeX;
        mRelativeX = relativeX;
        mRelativeY = relativeY;
        mRelativeY = relativeY;
        mEventTimeNanos = eventTimeNanos;
    }
    }


    private VirtualMouseRelativeEvent(@NonNull Parcel parcel) {
    private VirtualMouseRelativeEvent(@NonNull Parcel parcel) {
        mRelativeX = parcel.readFloat();
        mRelativeX = parcel.readFloat();
        mRelativeY = parcel.readFloat();
        mRelativeY = parcel.readFloat();
        mEventTimeNanos = parcel.readLong();
    }
    }


    @Override
    @Override
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
        parcel.writeFloat(mRelativeX);
        parcel.writeFloat(mRelativeX);
        parcel.writeFloat(mRelativeY);
        parcel.writeFloat(mRelativeY);
        parcel.writeLong(mEventTimeNanos);
    }
    }


    @Override
    @Override
@@ -69,6 +75,16 @@ public final class VirtualMouseRelativeEvent implements Parcelable {
        return mRelativeY;
        return mRelativeY;
    }
    }


    /**
     * Returns the time this event occurred, in the {@link SystemClock#uptimeMillis()} time base but
     * with nanosecond (instead of millisecond) precision.
     *
     * @see InputEvent#getEventTime()
     */
    public long getEventTimeNanos() {
        return mEventTimeNanos;
    }

    /**
    /**
     * Builder for {@link VirtualMouseRelativeEvent}.
     * Builder for {@link VirtualMouseRelativeEvent}.
     */
     */
@@ -76,13 +92,14 @@ public final class VirtualMouseRelativeEvent implements Parcelable {


        private float mRelativeX;
        private float mRelativeX;
        private float mRelativeY;
        private float mRelativeY;
        private long mEventTimeNanos = 0L;


        /**
        /**
         * Creates a {@link VirtualMouseRelativeEvent} object with the current builder
         * Creates a {@link VirtualMouseRelativeEvent} object with the current builder
         * configuration.
         * configuration.
         */
         */
        public @NonNull VirtualMouseRelativeEvent build() {
        public @NonNull VirtualMouseRelativeEvent build() {
            return new VirtualMouseRelativeEvent(mRelativeX, mRelativeY);
            return new VirtualMouseRelativeEvent(mRelativeX, mRelativeY, mEventTimeNanos);
        }
        }


        /**
        /**
@@ -104,6 +121,23 @@ public final class VirtualMouseRelativeEvent implements Parcelable {
            mRelativeY = relativeY;
            mRelativeY = relativeY;
            return this;
            return this;
        }
        }

        /**
         * Sets the time (in nanoseconds) when this specific event was generated. This may be
         * obtained from {@link SystemClock#uptimeMillis()} (with nanosecond precision instead of
         * millisecond), but can be different depending on the use case.
         * This field is optional and can be omitted.
         *
         * @return this builder, to allow for chaining of calls
         * @see InputEvent#getEventTime()
         */
        public @NonNull Builder setEventTimeNanos(long eventTimeNanos) {
            if (eventTimeNanos < 0L) {
                throw new IllegalArgumentException("Event time cannot be negative");
            }
            this.mEventTimeNanos = eventTimeNanos;
            return this;
        }
    }
    }


    public static final @NonNull Parcelable.Creator<VirtualMouseRelativeEvent> CREATOR =
    public static final @NonNull Parcelable.Creator<VirtualMouseRelativeEvent> CREATOR =
+37 −2
Original line number Original line Diff line number Diff line
@@ -21,6 +21,8 @@ import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable;
import android.os.SystemClock;
import android.view.InputEvent;


import com.android.internal.util.Preconditions;
import com.android.internal.util.Preconditions;


@@ -36,21 +38,26 @@ public final class VirtualMouseScrollEvent implements Parcelable {


    private final float mXAxisMovement;
    private final float mXAxisMovement;
    private final float mYAxisMovement;
    private final float mYAxisMovement;
    private final long mEventTimeNanos;


    private VirtualMouseScrollEvent(float xAxisMovement, float yAxisMovement) {
    private VirtualMouseScrollEvent(float xAxisMovement, float yAxisMovement,
            long eventTimeNanos) {
        mXAxisMovement = xAxisMovement;
        mXAxisMovement = xAxisMovement;
        mYAxisMovement = yAxisMovement;
        mYAxisMovement = yAxisMovement;
        mEventTimeNanos = eventTimeNanos;
    }
    }


    private VirtualMouseScrollEvent(@NonNull Parcel parcel) {
    private VirtualMouseScrollEvent(@NonNull Parcel parcel) {
        mXAxisMovement = parcel.readFloat();
        mXAxisMovement = parcel.readFloat();
        mYAxisMovement = parcel.readFloat();
        mYAxisMovement = parcel.readFloat();
        mEventTimeNanos = parcel.readLong();
    }
    }


    @Override
    @Override
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
    public void writeToParcel(@NonNull Parcel parcel, int parcelableFlags) {
        parcel.writeFloat(mXAxisMovement);
        parcel.writeFloat(mXAxisMovement);
        parcel.writeFloat(mYAxisMovement);
        parcel.writeFloat(mYAxisMovement);
        parcel.writeLong(mEventTimeNanos);
    }
    }


    @Override
    @Override
@@ -74,6 +81,16 @@ public final class VirtualMouseScrollEvent implements Parcelable {
        return mYAxisMovement;
        return mYAxisMovement;
    }
    }


    /**
     * Returns the time this event occurred, in the {@link SystemClock#uptimeMillis()} time base but
     * with nanosecond (instead of millisecond) precision.
     *
     * @see InputEvent#getEventTime()
     */
    public long getEventTimeNanos() {
        return mEventTimeNanos;
    }

    /**
    /**
     * Builder for {@link VirtualMouseScrollEvent}.
     * Builder for {@link VirtualMouseScrollEvent}.
     */
     */
@@ -81,12 +98,13 @@ public final class VirtualMouseScrollEvent implements Parcelable {


        private float mXAxisMovement;
        private float mXAxisMovement;
        private float mYAxisMovement;
        private float mYAxisMovement;
        private long mEventTimeNanos = 0L;


        /**
        /**
         * Creates a {@link VirtualMouseScrollEvent} object with the current builder configuration.
         * Creates a {@link VirtualMouseScrollEvent} object with the current builder configuration.
         */
         */
        public @NonNull VirtualMouseScrollEvent build() {
        public @NonNull VirtualMouseScrollEvent build() {
            return new VirtualMouseScrollEvent(mXAxisMovement, mYAxisMovement);
            return new VirtualMouseScrollEvent(mXAxisMovement, mYAxisMovement, mEventTimeNanos);
        }
        }


        /**
        /**
@@ -114,6 +132,23 @@ public final class VirtualMouseScrollEvent implements Parcelable {
            mYAxisMovement = yAxisMovement;
            mYAxisMovement = yAxisMovement;
            return this;
            return this;
        }
        }

        /**
         * Sets the time (in nanoseconds) when this specific event was generated. This may be
         * obtained from {@link SystemClock#uptimeMillis()} (with nanosecond precision instead of
         * millisecond), but can be different depending on the use case.
         * This field is optional and can be omitted.
         *
         * @return this builder, to allow for chaining of calls
         * @see InputEvent#getEventTime()
         */
        public @NonNull Builder setEventTimeNanos(long eventTimeNanos) {
            if (eventTimeNanos < 0L) {
                throw new IllegalArgumentException("Event time cannot be negative");
            }
            mEventTimeNanos = eventTimeNanos;
            return this;
        }
    }
    }


    public static final @NonNull Parcelable.Creator<VirtualMouseScrollEvent> CREATOR =
    public static final @NonNull Parcelable.Creator<VirtualMouseScrollEvent> CREATOR =
Loading