diff --git a/xr/src/main/java/com/example/xr/scenecore/Entities.kt b/xr/src/main/java/com/example/xr/scenecore/Entities.kt index 7c8046664..d4c723604 100644 --- a/xr/src/main/java/com/example/xr/scenecore/Entities.kt +++ b/xr/src/main/java/com/example/xr/scenecore/Entities.kt @@ -29,6 +29,9 @@ import androidx.xr.scenecore.MovableComponent import androidx.xr.scenecore.PlaneSemantic import androidx.xr.scenecore.PlaneType import androidx.xr.scenecore.ResizableComponent +import androidx.xr.scenecore.ResizeListener +import androidx.xr.scenecore.SurfaceEntity +import java.util.concurrent.Executor import java.util.concurrent.Executors private fun setPoseExample(entity: Entity) { @@ -73,11 +76,26 @@ private fun moveableComponentExample(session: Session, entity: Entity) { // [END androidxr_scenecore_moveableComponentExample] } -private fun resizableComponentExample(session: Session, entity: Entity) { +private fun resizableComponentExample(session: Session, entity: Entity, executor: Executor) { // [START androidxr_scenecore_resizableComponentExample] val resizableComponent = ResizableComponent.create(session) resizableComponent.minimumSize = Dimensions(177f, 100f, 1f) resizableComponent.fixedAspectRatio = 16f / 9f // Specify a 16:9 aspect ratio + + resizableComponent.addResizeListener( + executor, + object : ResizeListener { + override fun onResizeEnd(entity: Entity, finalSize: Dimensions) { + + // update the size in the component + resizableComponent.size = finalSize + + // update the Entity to reflect the new size + (entity as SurfaceEntity).canvasShape = SurfaceEntity.CanvasShape.Quad(finalSize.width, finalSize.height) + } + }, + ) + entity.addComponent(resizableComponent) // [END androidxr_scenecore_resizableComponentExample] }