@@ -271,9 +271,7 @@ class AnimationScaling : TileService() {
271271                                            //  Shrink the element by a scale factor
272272                                            //  of 0.5 horizontally and 0.75 vertically.
273273                                            .setScaleX(FloatProp .Builder (0.5f ).build())
274-                                             .setScaleY(
275-                                                 FloatProp .Builder (0.75f ).build()
276-                                             )
274+                                             .setScaleY(FloatProp .Builder (0.75f ).build())
277275                                            .build()
278276                                    )
279277                                    .build()
@@ -361,4 +359,56 @@ class LottieAnimation : TileService() {
361359        )
362360    }
363361}
362+ 
364363//  [END android_wear_tile_animations_lottie]
364+ 
365+ class  LottieAnimationFallback  : TileService () {
366+ 
367+     val  lottieResourceId =  " lottie_animation" 
368+ 
369+     override  fun  onTileRequest (requestParams :  RequestBuilders .TileRequest ): ListenableFuture <Tile > {
370+ 
371+         val  layout = 
372+             LayoutElementBuilders .Image .Builder ()
373+                 .setWidth(dp(150f ))
374+                 .setHeight(dp(150f ))
375+                 .setResourceId(lottieResourceId)
376+                 .build()
377+ 
378+         return  Futures .immediateFuture(
379+             Tile .Builder ()
380+                 .setResourcesVersion(RESOURCES_VERSION )
381+                 .setTileTimeline(Timeline .fromLayoutElement(layout))
382+                 .build()
383+         )
384+     }
385+ 
386+     override  fun  onTileResourcesRequest (
387+         requestParams :  ResourcesRequest 
388+     ): ListenableFuture <Resources > {
389+ 
390+         //  [START android_wear_tile_animations_lottie_fallback]
391+         val  lottieImage = 
392+             ResourceBuilders .ImageResource .Builder ()
393+                 .setAndroidLottieResourceByResId(
394+                     ResourceBuilders .AndroidLottieResourceByResId .Builder (R .raw.lottie)
395+                         .setStartTrigger(createOnVisibleTrigger())
396+                         .build()
397+                 )
398+                 //  Fallback if lottie is not supported
399+                 .setAndroidResourceByResId(
400+                     ResourceBuilders .AndroidImageResourceByResId .Builder ()
401+                         .setResourceId(R .drawable.lottie_fallback)
402+                         .build()
403+                 )
404+                 .build()
405+         //  [END android_wear_tile_animations_lottie_fallback]
406+ 
407+         return  Futures .immediateFuture(
408+             Resources .Builder ()
409+                 .setVersion(requestParams.version)
410+                 .addIdToImageMapping(lottieResourceId, lottieImage)
411+                 .build()
412+         )
413+     }
414+ }
0 commit comments