in WearComplicationDataSourcesTestSuite/Wearable/src/main/java/com/example/android/wearable/wear/wearcomplicationproviderstestsuite/LargeImageDataSourceService.kt [43:69]
override suspend fun onComplicationRequest(request: ComplicationRequest): ComplicationData? {
if (request.complicationType != ComplicationType.PHOTO_IMAGE) {
return null
}
val args = ComplicationToggleArgs(
providerComponent = ComponentName(this, javaClass),
complication = Complication.LARGE_IMAGE,
complicationInstanceId = request.complicationInstanceId
)
// On many watch faces a large image complication might not respond to taps as the
// complication is used to provide the background for the watch. Providers should not rely
// on tap functionality for large image complications, but the tap action is still included
// here in case it is supported.
val complicationTogglePendingIntent =
ComplicationToggleReceiver.getComplicationToggleIntent(
context = this,
args = args
)
// Suspending function to retrieve the complication's state
val state = args.getState(this)
val case = Case.values()[state.mod(Case.values().size)]
return getComplicationData(
tapAction = complicationTogglePendingIntent,
case = case
)
}