WearableButtons
public final class WearableButtons
Class containing helpers for managing wearable buttons.
Summary
Nested types |
|---|
public final class WearableButtons.ButtonInfoMetadata for a specific button. |
Constants |
|
|---|---|
static final int |
LOCATION_BOTTOM_CENTER = 107Represents the center third of the bottom side on a square device. |
static final int |
LOCATION_BOTTOM_LEFT = 106Represents the left third of the bottom side on a square device. |
static final int |
LOCATION_BOTTOM_RIGHT = 108Represents the right third of the bottom side on a square device. |
static final int |
LOCATION_EAST = 0Represents the east position on a round device. |
static final int |
LOCATION_ENE = 1Represents the east-northeast position on a round device. |
static final int |
LOCATION_ESE = 15Represents the east-southeast position on a round device. |
static final int |
LOCATION_LEFT_BOTTOM = 105Represents the bottom third of the left side on a square device. |
static final int |
LOCATION_LEFT_CENTER = 104Represents the center third of the left side on a square device. |
static final int |
LOCATION_LEFT_TOP = 103Represents the top third of the left side on a square device. |
static final int |
LOCATION_NE = 2Represents the northeast position on a round device. |
static final int |
LOCATION_NNE = 3Represents the north-northeast position on a round device. |
static final int |
LOCATION_NNW = 5Represents the north-northwest position on a round device. |
static final int |
LOCATION_NORTH = 4Represents the north position on a round device. |
static final int |
LOCATION_NW = 6Represents the northwest position on a round device. |
static final int |
LOCATION_RIGHT_BOTTOM = 109Represents the bottom third of the right side on a square device. |
static final int |
LOCATION_RIGHT_CENTER = 110Represents the center third of the right side on a square device. |
static final int |
LOCATION_RIGHT_TOP = 111Represents the top third of the right side on a square device. |
static final int |
LOCATION_SE = 14Represents the southeast position on a round device. |
static final int |
LOCATION_SOUTH = 12Represents the south position on a round device. |
static final int |
LOCATION_SSE = 13Represents the south-southeast position on a round device. |
static final int |
LOCATION_SSW = 11Represents the south-southwest position on a round device. |
static final int |
LOCATION_SW = 10Represents the southwest position on a round device. |
static final int |
LOCATION_TOP_CENTER = 101Represents the center third of the top side on a square device. |
static final int |
LOCATION_TOP_LEFT = 102Represents the left third of the top side on a square device. |
static final int |
LOCATION_TOP_RIGHT = 100Represents the right third of the top side on a square device. |
static final int |
LOCATION_UNKNOWN = -1Represents that the location zone is unknown. |
static final int |
LOCATION_WEST = 8Represents the west position on a round device. |
static final int |
LOCATION_WNW = 7Represents the west-northwest position on a round device. |
static final int |
LOCATION_WSW = 9Represents the west-southwest position on a round device. |
Public methods |
|
|---|---|
static int |
getButtonCount(@NonNull Context context)Get the number of hardware buttons available. |
static @Nullable Drawable |
getButtonIcon(@NonNull Context context, int keycode)Returns an icon that can be used to represent the location of a button. |
static @Nullable WearableButtons.ButtonInfo |
getButtonInfo(@NonNull Context context, int keycode)Returns a |
static @Nullable CharSequence |
getButtonLabel(@NonNull Context context, int keycode)Returns a CharSequence that describes the placement location of a button. |
static void |
Testing call to allow the underlying |
Constants
LOCATION_BOTTOM_CENTER
public static final int LOCATION_BOTTOM_CENTER = 107
Represents the center third of the bottom side on a square device.
LOCATION_BOTTOM_LEFT
public static final int LOCATION_BOTTOM_LEFT = 106
Represents the left third of the bottom side on a square device.
LOCATION_BOTTOM_RIGHT
public static final int LOCATION_BOTTOM_RIGHT = 108
Represents the right third of the bottom side on a square device.
LOCATION_EAST
public static final int LOCATION_EAST = 0
Represents the east position on a round device.
LOCATION_ENE
public static final int LOCATION_ENE = 1
Represents the east-northeast position on a round device.
LOCATION_ESE
public static final int LOCATION_ESE = 15
Represents the east-southeast position on a round device.
LOCATION_LEFT_BOTTOM
public static final int LOCATION_LEFT_BOTTOM = 105
Represents the bottom third of the left side on a square device.
LOCATION_LEFT_CENTER
public static final int LOCATION_LEFT_CENTER = 104
Represents the center third of the left side on a square device.
LOCATION_LEFT_TOP
public static final int LOCATION_LEFT_TOP = 103
Represents the top third of the left side on a square device.
LOCATION_NE
public static final int LOCATION_NE = 2
Represents the northeast position on a round device.
LOCATION_NNE
public static final int LOCATION_NNE = 3
Represents the north-northeast position on a round device.
LOCATION_NNW
public static final int LOCATION_NNW = 5
Represents the north-northwest position on a round device.
LOCATION_NORTH
public static final int LOCATION_NORTH = 4
Represents the north position on a round device.
LOCATION_NW
public static final int LOCATION_NW = 6
Represents the northwest position on a round device.
LOCATION_RIGHT_BOTTOM
public static final int LOCATION_RIGHT_BOTTOM = 109
Represents the bottom third of the right side on a square device.
LOCATION_RIGHT_CENTER
public static final int LOCATION_RIGHT_CENTER = 110
Represents the center third of the right side on a square device.
LOCATION_RIGHT_TOP
public static final int LOCATION_RIGHT_TOP = 111
Represents the top third of the right side on a square device.
LOCATION_SE
public static final int LOCATION_SE = 14
Represents the southeast position on a round device.
LOCATION_SOUTH
public static final int LOCATION_SOUTH = 12
Represents the south position on a round device.
LOCATION_SSE
public static final int LOCATION_SSE = 13
Represents the south-southeast position on a round device.
LOCATION_SSW
public static final int LOCATION_SSW = 11
Represents the south-southwest position on a round device.
LOCATION_SW
public static final int LOCATION_SW = 10
Represents the southwest position on a round device.
LOCATION_TOP_CENTER
public static final int LOCATION_TOP_CENTER = 101
Represents the center third of the top side on a square device.
LOCATION_TOP_LEFT
public static final int LOCATION_TOP_LEFT = 102
Represents the left third of the top side on a square device.
LOCATION_TOP_RIGHT
public static final int LOCATION_TOP_RIGHT = 100
Represents the right third of the top side on a square device.
LOCATION_UNKNOWN
public static final int LOCATION_UNKNOWN = -1
Represents that the location zone is unknown.
LOCATION_WEST
public static final int LOCATION_WEST = 8
Represents the west position on a round device.
LOCATION_WNW
public static final int LOCATION_WNW = 7
Represents the west-northwest position on a round device.
LOCATION_WSW
public static final int LOCATION_WSW = 9
Represents the west-southwest position on a round device.
Public methods
getButtonCount
public static int getButtonCount(@NonNull Context context)
Get the number of hardware buttons available. This count includes the primary stem key as well as any secondary stem keys available.
| Returns | |
|---|---|
int |
The number of buttons available, or the information is not available. |
getButtonIcon
public static @Nullable Drawable getButtonIcon(@NonNull Context context, int keycode)
Returns an icon that can be used to represent the location of a button.
getButtonInfo
public static @Nullable WearableButtons.ButtonInfo getButtonInfo(@NonNull Context context, int keycode)
Returns a ButtonInfo containing the metadata for a specific button.
The location will be populated in the following manner:
- The provided point will be on the screen, or more typically, on the edge of the screen.
- The point won't be off the edge of the screen.
- The location returned is a screen coordinate. The unit of measurement is in pixels. The coordinates do not take rotation into account and assume that the device is in the standard upright position.
Additionally, a location zone will be provided for the button, which will be one of the LOCATION_* constants. This defines the general area of the button on the device, and can be passed to getButtonLabel to provide a human-understandable name for the location. There are two sets of locations for a device, depending on whether it is a circular or rectilinear device.
The "compass" locations (e.g. LOCATION_ENE) are used on a circular device. The locations for each are shown in the following image: 
The other locations (e.g. LOCATION_BOTTOM_CENTER) are used on a rectilinear device. The locations for each are shown in the following image: 
Common keycodes to use are KEYCODE_STEM_PRIMARY, KEYCODE_STEM_1, KEYCODE_STEM_2, and KEYCODE_STEM_3.
| Parameters | |
|---|---|
@NonNull Context context |
The context of the current activity |
int keycode |
The keycode associated with the hardware button of interest |
| Returns | |
|---|---|
@Nullable WearableButtons.ButtonInfo |
A |
getButtonLabel
public static @Nullable CharSequence getButtonLabel(@NonNull Context context, int keycode)
Returns a CharSequence that describes the placement location of a button. An example might be "Top right" or "Bottom".
| Parameters | |
|---|---|
@NonNull Context context |
The context of the current activity |
int keycode |
The keycode associated with the hardware button of interest |
| Returns | |
|---|---|
@Nullable CharSequence |
A CharSequence describing the placement location of the button, or null if no location is available for that button. |
setWearableButtonsProvider
@VisibleForTesting
public static void setWearableButtonsProvider(@NonNull WearableButtonsProvider provider)
Testing call to allow the underlying WearableButtonsProvider to be substituted in test code.
| Parameters | |
|---|---|
@NonNull WearableButtonsProvider provider |
The new |