UserStyleSetting.ComplicationSlotsUserStyleSetting

public final class UserStyleSetting.ComplicationSlotsUserStyleSetting extends UserStyleSetting


ComplicationSlotsUserStyleSetting is the recommended UserStyleSetting for representing complication slot configuration, options such as the number of active complication slots, their location, etc... The ComplicationSlotsOption class allows you to apply a list of ComplicationSlotOverlays on top of the base config as specified by the androidx.wear.watchface.ComplicationSlot constructor.

The ComplicationsManager listens for style changes with this setting and when a ComplicationSlotsOption is selected the overrides are automatically applied. Note its suggested that the default ComplicationSlotOverlay (the first entry in the list) does not apply any overrides. Only a single ComplicationSlotsUserStyleSetting is permitted in the UserStyleSchema.

Not to be confused with complication data source selection.

Summary

Nested types

UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay

Overrides to be applied to the corresponding androidx.wear.watchface.ComplicationSlot]'s initial config (as specified in it's constructor) when the setting is selected.

UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder

Constructs a ComplicationSlotOverlay.Builder.

UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption

Represents an override to the initial androidx.wear.watchface.ComplicationSlotsManager configuration.

Public fields

final @NonNull Collection<@NonNull WatchFaceLayer>

Used by the style configuration UI.

final @NonNull UserStyleSetting.Option

Returns the default for when the user hasn't selected an option.

final int

The default option index, used if nothing has been selected within the options list.

final @NonNull CharSequence

Localized description string displayed under the displayName.

final @NonNull CharSequence

Localized human readable name for the element, used in the userStyle selection UI.

final @Nullable Icon

Icon for use in the style selection UI.

final @NonNull UserStyleSetting.Id

Identifier for the element, must be unique.

final @NonNull List<@NonNull UserStyleSetting.Option>

List of options for this UserStyleSetting.

Public constructors

ComplicationSlotsUserStyleSetting(
    @NonNull UserStyleSetting.Id id,
    @NonNull Resources resources,
    @StringRes int displayNameResourceId,
    @StringRes int descriptionResourceId,
    @Nullable Icon icon,
    @NonNull List<@NonNull UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig,
    @NonNull Collection<@NonNull WatchFaceLayer> affectsWatchFaceLayers,
    @NonNull UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption
)

Constructs a ComplicationSlotsUserStyleSetting where ComplicationSlotsUserStyleSetting.displayName and ComplicationSlotsUserStyleSetting.description are specified as resources.

Inherited methods

From class UserStyleSetting
boolean
@NonNull UserStyleSetting.Option

Translates an option name into an option.

int
@NonNull String

Public fields

affectedWatchFaceLayers

@NonNull
public final @NonNull Collection<@NonNull WatchFaceLayeraffectedWatchFaceLayers

Used by the style configuration UI. Describes which rendering layers this style affects.

defaultOption

@NonNull
public final @NonNull UserStyleSetting.Option defaultOption

Returns the default for when the user hasn't selected an option.

defaultOptionIndex

@NonNull
public final int defaultOptionIndex

The default option index, used if nothing has been selected within the options list.

description

@NonNull
public final @NonNull CharSequence description

Localized description string displayed under the displayName.

displayName

@NonNull
public final @NonNull CharSequence displayName

Localized human readable name for the element, used in the userStyle selection UI.

icon

@Nullable
public final @Nullable Icon icon

Icon for use in the style selection UI.

id

@NonNull
public final @NonNull UserStyleSetting.Id id

Identifier for the element, must be unique. Styling data gets shared with the companion (typically via bluetooth) so size is a consideration and short ids are encouraged. There is a maximum length see UserStyleSetting.Id.MAX_LENGTH.

options

@NonNull
public final @NonNull List<@NonNull UserStyleSetting.Optionoptions

List of options for this UserStyleSetting. Depending on the type of UserStyleSetting this may be an exhaustive list, or just examples to populate a ListView in case the UserStyleSetting isn't supported by the UI (e.g. a new WatchFace with an old Companion).

Public constructors

ComplicationSlotsUserStyleSetting

public final ComplicationSlotsUserStyleSetting(
    @NonNull UserStyleSetting.Id id,
    @NonNull Resources resources,
    @StringRes int displayNameResourceId,
    @StringRes int descriptionResourceId,
    @Nullable Icon icon,
    @NonNull List<@NonNull UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig,
    @NonNull Collection<@NonNull WatchFaceLayer> affectsWatchFaceLayers,
    @NonNull UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption
)

Constructs a ComplicationSlotsUserStyleSetting where ComplicationSlotsUserStyleSetting.displayName and ComplicationSlotsUserStyleSetting.description are specified as resources.

Parameters
@NonNull UserStyleSetting.Id id

Id for the element, must be unique.

@NonNull Resources resources

The Resources from which displayNameResourceId and descriptionResourceId are loaded.

@StringRes int displayNameResourceId

String resource id for a human readable name for the element, used in the userStyle selection UI.

@StringRes int descriptionResourceId

String resource id for a human readable description string displayed under the displayName.

@Nullable Icon icon

Icon for use in the userStyle selection UI. This gets sent to the companion over bluetooth and should be small (ideally a few kb in size).

@NonNull List<@NonNull UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig

The configuration for affected complications.

@NonNull Collection<@NonNull WatchFaceLayer> affectsWatchFaceLayers

Used by the style configuration UI. Describes which watch face rendering layers this style affects, must include WatchFaceLayer.COMPLICATIONS.

@NonNull UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption

The default option, used when data isn't persisted. Optional parameter which defaults to the first element of complicationConfig.