diff --git a/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt b/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt index 04afd7ca..b87dbaf3 100644 --- a/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt +++ b/core/testing/src/main/java/com/android/developers/testing/util/FakeComposableBitmapRenderer.kt @@ -22,11 +22,6 @@ import androidx.core.graphics.createBitmap import com.android.developers.androidify.customize.ComposableBitmapRenderer class FakeComposableBitmapRenderer : ComposableBitmapRenderer { - override fun initialize() { - } - - override fun dispose() { - } override suspend fun renderComposableToBitmap( canvasSize: Size, diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt index 97674806..4b3daafe 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/ComposableBitmapRendererImpl.kt @@ -23,7 +23,6 @@ import android.graphics.Bitmap import android.graphics.SurfaceTexture import android.hardware.display.DisplayManager import android.hardware.display.VirtualDisplay -import android.util.Log import android.view.Display import android.view.Surface import android.view.ViewGroup @@ -58,9 +57,6 @@ import javax.inject.Inject import javax.inject.Singleton interface ComposableBitmapRenderer { - fun initialize() - - fun dispose() suspend fun renderComposableToBitmap(canvasSize: Size, composableContent: @Composable () -> Unit): Bitmap? } @@ -79,34 +75,25 @@ interface ComposableBitmapRenderer { */ @Singleton class ComposableBitmapRendererImpl @Inject constructor(private val application: Application) : ComposableBitmapRenderer { - private val texture = SurfaceTexture(false) - private val surface = Surface(texture) - private var virtualDisplay: VirtualDisplay? = null - - override fun initialize() { - virtualDisplay = - (application.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( - "virtualDisplay", - 1, - 1, - 72, - surface, - DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, - ) - } - override fun dispose() { - virtualDisplay?.release() + private suspend fun useVirtualDisplay(callback: suspend (display: Display) -> T): T? { + val texture = SurfaceTexture(false) + val surface = Surface(texture) + val virtualDisplay: VirtualDisplay? = + (application.getSystemService(DISPLAY_SERVICE) as DisplayManager).createVirtualDisplay( + "virtualDisplay", + 1, + 1, + 72, + surface, + DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY, + ) + + val result = callback(virtualDisplay!!.display) + virtualDisplay.release() surface.release() texture.release() - } - - private suspend fun useVirtualDisplay(callback: suspend (display: Display) -> T): T? { - if (virtualDisplay == null) { - Log.e("OffscreenBitmapManager", "virtualDisplay is null") - initialize() - } - return callback(virtualDisplay!!.display) + return result } override suspend fun renderComposableToBitmap(canvasSize: Size, composableContent: @Composable () -> Unit): Bitmap? { diff --git a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt index adb98869..d136ab11 100644 --- a/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt +++ b/feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportViewModel.kt @@ -54,7 +54,6 @@ class CustomizeExportViewModel @Inject constructor( override fun onCleared() { super.onCleared() - composableBitmapRenderer.dispose() } fun setArguments( resultImageUrl: Bitmap,