WearableButtons


class WearableButtons


Class containing helpers for managing wearable buttons.

Summary

Nested types

Metadata for a specific button.

Constants

const Int

Represents the center third of the bottom side on a square device.

const Int

Represents the left third of the bottom side on a square device.

const Int

Represents the right third of the bottom side on a square device.

const Int

Represents the east position on a round device.

const Int

Represents the east-northeast position on a round device.

const Int
LOC_ESE = 15

Represents the east-southeast position on a round device.

const Int

Represents the bottom third of the left side on a square device.

const Int

Represents the center third of the left side on a square device.

const Int

Represents the top third of the left side on a square device.

const Int
LOC_NE = 2

Represents the northeast position on a round device.

const Int

Represents the north-northeast position on a round device.

const Int

Represents the north-northwest position on a round device.

const Int

Represents the north position on a round device.

const Int
LOC_NW = 6

Represents the northwest position on a round device.

const Int

Represents the bottom third of the right side on a square device.

const Int

Represents the center third of the right side on a square device.

const Int

Represents the top third of the right side on a square device.

const Int
LOC_SE = 14

Represents the southeast position on a round device.

const Int

Represents the south position on a round device.

const Int
LOC_SSE = 13

Represents the south-southeast position on a round device.

const Int
LOC_SSW = 11

Represents the south-southwest position on a round device.

const Int
LOC_SW = 10

Represents the southwest position on a round device.

const Int

Represents the center third of the top side on a square device.

const Int

Represents the left third of the top side on a square device.

const Int

Represents the right third of the top side on a square device.

const Int

Represents that the location zone is unknown.

const Int

Represents the west position on a round device.

const Int

Represents the west-northwest position on a round device.

const Int

Represents the west-southwest position on a round device.

Public functions

java-static Int

Get the number of hardware buttons available.

java-static Drawable?
getButtonIcon(context: Context, keycode: Int)

Returns an icon that can be used to represent the location of a button.

java-static WearableButtons.ButtonInfo?
getButtonInfo(context: Context, keycode: Int)

Returns a ButtonInfo containing the metadata for a specific button.

java-static CharSequence?
getButtonLabel(context: Context, keycode: Int)

Returns a CharSequence that describes the placement location of a button.

java-static Unit
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
setWearableButtonsProvider(provider: WearableButtonsProvider)

Testing call to allow the underlying WearableButtonsProvider to be substituted in test code.

Constants

LOC_BOTTOM_CENTER

const val LOC_BOTTOM_CENTER = 107: Int

Represents the center third of the bottom side on a square device.

LOC_BOTTOM_LEFT

const val LOC_BOTTOM_LEFT = 106: Int

Represents the left third of the bottom side on a square device.

LOC_BOTTOM_RIGHT

const val LOC_BOTTOM_RIGHT = 108: Int

Represents the right third of the bottom side on a square device.

LOC_EAST

const val LOC_EAST = 0: Int

Represents the east position on a round device.

LOC_ENE

const val LOC_ENE = 1: Int

Represents the east-northeast position on a round device.

LOC_ESE

const val LOC_ESE = 15: Int

Represents the east-southeast position on a round device.

LOC_LEFT_BOTTOM

const val LOC_LEFT_BOTTOM = 105: Int

Represents the bottom third of the left side on a square device.

LOC_LEFT_CENTER

const val LOC_LEFT_CENTER = 104: Int

Represents the center third of the left side on a square device.

LOC_LEFT_TOP

const val LOC_LEFT_TOP = 103: Int

Represents the top third of the left side on a square device.

LOC_NE

const val LOC_NE = 2: Int

Represents the northeast position on a round device.

LOC_NNE

const val LOC_NNE = 3: Int

Represents the north-northeast position on a round device.

LOC_NNW

const val LOC_NNW = 5: Int

Represents the north-northwest position on a round device.

LOC_NORTH

const val LOC_NORTH = 4: Int

Represents the north position on a round device.

LOC_NW

const val LOC_NW = 6: Int

Represents the northwest position on a round device.

LOC_RIGHT_BOTTOM

const val LOC_RIGHT_BOTTOM = 109: Int

Represents the bottom third of the right side on a square device.

LOC_RIGHT_CENTER

const val LOC_RIGHT_CENTER = 110: Int

Represents the center third of the right side on a square device.

LOC_RIGHT_TOP

const val LOC_RIGHT_TOP = 111: Int

Represents the top third of the right side on a square device.

LOC_SE

const val LOC_SE = 14: Int

Represents the southeast position on a round device.

LOC_SOUTH

const val LOC_SOUTH = 12: Int

Represents the south position on a round device.

LOC_SSE

const val LOC_SSE = 13: Int

Represents the south-southeast position on a round device.

LOC_SSW

const val LOC_SSW = 11: Int

Represents the south-southwest position on a round device.

LOC_SW

const val LOC_SW = 10: Int

Represents the southwest position on a round device.

LOC_TOP_CENTER

const val LOC_TOP_CENTER = 101: Int

Represents the center third of the top side on a square device.

LOC_TOP_LEFT

const val LOC_TOP_LEFT = 102: Int

Represents the left third of the top side on a square device.

LOC_TOP_RIGHT

const val LOC_TOP_RIGHT = 100: Int

Represents the right third of the top side on a square device.

LOC_UNKNOWN

const val LOC_UNKNOWN = -1: Int

Represents that the location zone is unknown.

LOC_WEST

const val LOC_WEST = 8: Int

Represents the west position on a round device.

LOC_WNW

const val LOC_WNW = 7: Int

Represents the west-northwest position on a round device.

LOC_WSW

const val LOC_WSW = 9: Int

Represents the west-southwest position on a round device.

Public functions

getButtonCount

Added in 1.0.0
java-static fun getButtonCount(context: Context): Int

Get the number of hardware buttons available. This count includes the primary stem key as well as any secondary stem keys available.

Parameters
context: Context

The context of the current activity

Returns
Int

The number of buttons available, or the information is not available.

getButtonIcon

Added in 1.0.0
java-static fun getButtonIcon(context: Context, keycode: Int): Drawable?

Returns an icon that can be used to represent the location of a button.

Parameters
context: Context

The context of the current activity

keycode: Int

The keycode associated with the hardware button of interest

Returns
Drawable?

A drawable representing the location of a button, or null if unavailable

getButtonInfo

Added in 1.0.0
java-static fun getButtonInfo(context: Context, keycode: Int): WearableButtons.ButtonInfo?

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.

Common keycodes to use are KEYCODE_STEM_PRIMARY, KEYCODE_STEM_1, KEYCODE_STEM_2, and KEYCODE_STEM_3.

Parameters
context: Context

The context of the current activity

keycode: Int

The keycode associated with the hardware button of interest

Returns
WearableButtons.ButtonInfo?

A ButtonInfo containing the metadata for the given keycode or null if the information is not available

getButtonLabel

Added in 1.0.0
java-static fun getButtonLabel(context: Context, keycode: Int): CharSequence?

Returns a CharSequence that describes the placement location of a button. An example might be "Top right" or "Bottom".

Parameters
context: Context

The context of the current activity

keycode: Int

The keycode associated with the hardware button of interest

Returns
CharSequence?

A CharSequence describing the placement location of the button, or null if no location is available for that button.

setWearableButtonsProvider

Added in 1.2.0-alpha03
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
java-static fun setWearableButtonsProvider(provider: WearableButtonsProvider): Unit

Testing call to allow the underlying WearableButtonsProvider to be substituted in test code.

Parameters
provider: WearableButtonsProvider

The new WearableButtonsProvider to use.