BackEvent


public final class BackEvent
extends Object

java.lang.Object
   ↳ android.window.BackEvent


Object used to report back gesture progress. Holds information about the touch event, swipe direction and the animation progress that predictive back animations should seek to.

Summary

Constants

int EDGE_LEFT

Indicates that the edge swipe starts from the left edge of the screen

int EDGE_NONE

Indicates that the back event was not triggered by an edge swipe back gesture.

int EDGE_RIGHT

Indicates that the edge swipe starts from the right edge of the screen

Public constructors

BackEvent(float touchX, float touchY, float progress, int swipeEdge)

Creates a new BackEvent instance with a frame time of 0.

BackEvent(float touchX, float touchY, float progress, int swipeEdge, long frameTimeMillis)

Creates a new BackEvent instance.

Public methods

boolean equals(Object other)

Indicates whether some other object is "equal to" this one.

long getFrameTimeMillis()

Returns the frameTime of the BackEvent in milliseconds.

float getProgress()

Returns a value between 0 and 1 on how far along the back gesture is.

int getSwipeEdge()

Returns the screen edge that the swipe starts from.

float getTouchX()

Returns the absolute X location of the touch point, or NaN if the event is from a button press.

float getTouchY()

Returns the absolute Y location of the touch point, or NaN if the event is from a button press.

String toString()

Returns a string representation of the object.

Inherited methods

Constants

EDGE_LEFT

Added in API level 34
public static final int EDGE_LEFT

Indicates that the edge swipe starts from the left edge of the screen

Constant Value: 0 (0x00000000)

EDGE_NONE

public static final int EDGE_NONE

Indicates that the back event was not triggered by an edge swipe back gesture. This applies to cases like using the back button in 3-button navigation or pressing a hardware back button.

Constant Value: 2 (0x00000002)

EDGE_RIGHT

Added in API level 34
public static final int EDGE_RIGHT

Indicates that the edge swipe starts from the right edge of the screen

Constant Value: 1 (0x00000001)

Public constructors

BackEvent

Added in API level 34
public BackEvent (float touchX, 
                float touchY, 
                float progress, 
                int swipeEdge)

Creates a new BackEvent instance with a frame time of 0.

Parameters
touchX float: Absolute X location of the touch point of this event.

touchY float: Absolute Y location of the touch point of this event.

progress float: Value between 0 and 1 on how far along the back gesture is.

swipeEdge int: Indicates which edge the swipe starts from. Value is EDGE_LEFT, EDGE_RIGHT, or EDGE_NONE

BackEvent

public BackEvent (float touchX, 
                float touchY, 
                float progress, 
                int swipeEdge, 
                long frameTimeMillis)

Creates a new BackEvent instance.

Parameters
touchX float: Absolute X location of the touch point of this event.

touchY float: Absolute Y location of the touch point of this event.

progress float: Value between 0 and 1 on how far along the back gesture is.

swipeEdge int: Indicates which edge the swipe starts from. Value is EDGE_LEFT, EDGE_RIGHT, or EDGE_NONE

frameTimeMillis long: frame time of the back event.

Public methods

equals

Added in API level 34
public boolean equals (Object other)

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
other Object: the reference object with which to compare.

Returns
boolean true if this object is the same as the obj argument; false otherwise.

getFrameTimeMillis

public long getFrameTimeMillis ()

Returns the frameTime of the BackEvent in milliseconds. Useful for calculating velocity.

Returns
long

getProgress

Added in API level 34
public float getProgress ()

Returns a value between 0 and 1 on how far along the back gesture is. This value is driven by the horizontal location of the touch point, and should be used as the fraction to seek the predictive back animation with. Specifically,

  1. The progress is 0 when the touch is at the starting edge of the screen (left or right), and animation should seek to its start state.
  2. The progress is approximately 1 when the touch is at the opposite side of the screen, and animation should seek to its end state. Exact end value may vary depending on screen size.
  • After the gesture finishes in cancel state, this method keeps getting invoked until the progress value animates back to 0. In-between locations are linearly interpolated based on horizontal distance from the starting edge and smooth clamped to 1 when the distance exceeds a system-wide threshold.

    Returns
    float Value is between 0 and 1 inclusive

  • getSwipeEdge

    Added in API level 34
    public int getSwipeEdge ()

    Returns the screen edge that the swipe starts from.

    Returns
    int Value is EDGE_LEFT, EDGE_RIGHT, or EDGE_NONE

    getTouchX

    Added in API level 34
    public float getTouchX ()

    Returns the absolute X location of the touch point, or NaN if the event is from a button press.

    Returns
    float

    getTouchY

    Added in API level 34
    public float getTouchY ()

    Returns the absolute Y location of the touch point, or NaN if the event is from a button press.

    Returns
    float

    toString

    Added in API level 34
    public String toString ()

    Returns a string representation of the object.

    Returns
    String a string representation of the object.