package io.flutter.embedding.android; import android.content.Context; import android.graphics.SurfaceTexture; import android.util.AttributeSet; import android.view.Surface; import android.view.TextureView; import io.flutter.Log; import io.flutter.embedding.engine.renderer.FlutterRenderer; import io.flutter.embedding.engine.renderer.RenderSurface; /* loaded from: classes5.dex */ public class FlutterTextureView extends TextureView implements RenderSurface { private static final String TAG = "FlutterTextureView"; private FlutterRenderer flutterRenderer; private boolean isAttachedToFlutterRenderer; private boolean isPaused; private boolean isSurfaceAvailableForRendering; private Surface renderSurface; private final TextureView.SurfaceTextureListener surfaceTextureListener; @Override // io.flutter.embedding.engine.renderer.RenderSurface public FlutterRenderer getAttachedRenderer() { return this.flutterRenderer; } public void setRenderSurface(Surface surface) { this.renderSurface = surface; } public FlutterTextureView(Context context) { this(context, null); } public FlutterTextureView(Context context, AttributeSet attributeSet) { super(context, attributeSet); this.isSurfaceAvailableForRendering = false; this.isAttachedToFlutterRenderer = false; this.isPaused = false; this.surfaceTextureListener = new TextureView.SurfaceTextureListener(this) { // from class: io.flutter.embedding.android.FlutterTextureView.1 final FlutterTextureView this$0; @Override // android.view.TextureView.SurfaceTextureListener public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) { } { this.this$0 = this; } @Override // android.view.TextureView.SurfaceTextureListener public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i2) { Log.v(FlutterTextureView.TAG, "SurfaceTextureListener.onSurfaceTextureAvailable()"); this.this$0.isSurfaceAvailableForRendering = true; if (this.this$0.isAttachedToFlutterRenderer) { this.this$0.connectSurfaceToRenderer(); } } @Override // android.view.TextureView.SurfaceTextureListener public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i2) { Log.v(FlutterTextureView.TAG, "SurfaceTextureListener.onSurfaceTextureSizeChanged()"); if (this.this$0.isAttachedToFlutterRenderer) { this.this$0.changeSurfaceSize(i, i2); } } @Override // android.view.TextureView.SurfaceTextureListener public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) { Log.v(FlutterTextureView.TAG, "SurfaceTextureListener.onSurfaceTextureDestroyed()"); this.this$0.isSurfaceAvailableForRendering = false; if (this.this$0.isAttachedToFlutterRenderer) { this.this$0.disconnectSurfaceFromRenderer(); } if (this.this$0.renderSurface == null) { return true; } this.this$0.renderSurface.release(); this.this$0.renderSurface = null; return true; } }; init(); } private void init() { setSurfaceTextureListener(this.surfaceTextureListener); } @Override // io.flutter.embedding.engine.renderer.RenderSurface public void attachToRenderer(FlutterRenderer flutterRenderer) { Log.v(TAG, "Attaching to FlutterRenderer."); if (this.flutterRenderer != null) { Log.v(TAG, "Already connected to a FlutterRenderer. Detaching from old one and attaching to new one."); this.flutterRenderer.stopRenderingToSurface(); } this.flutterRenderer = flutterRenderer; this.isAttachedToFlutterRenderer = true; if (this.isSurfaceAvailableForRendering) { Log.v(TAG, "Surface is available for rendering. Connecting FlutterRenderer to Android surface."); connectSurfaceToRenderer(); } } @Override // io.flutter.embedding.engine.renderer.RenderSurface public void detachFromRenderer() { if (this.flutterRenderer != null) { if (getWindowToken() != null) { Log.v(TAG, "Disconnecting FlutterRenderer from Android surface."); disconnectSurfaceFromRenderer(); } this.flutterRenderer = null; this.isAttachedToFlutterRenderer = false; return; } Log.w(TAG, "detachFromRenderer() invoked when no FlutterRenderer was attached."); } @Override // io.flutter.embedding.engine.renderer.RenderSurface public void pause() { if (this.flutterRenderer == null) { Log.w(TAG, "pause() invoked when no FlutterRenderer was attached."); return; } this.flutterRenderer = null; this.isPaused = true; this.isAttachedToFlutterRenderer = false; } /* JADX INFO: Access modifiers changed from: private */ public void connectSurfaceToRenderer() { if (this.flutterRenderer == null || getSurfaceTexture() == null) { throw new IllegalStateException("connectSurfaceToRenderer() should only be called when flutterRenderer and getSurfaceTexture() are non-null."); } Surface surface = this.renderSurface; if (surface != null) { surface.release(); this.renderSurface = null; } Surface surface2 = new Surface(getSurfaceTexture()); this.renderSurface = surface2; this.flutterRenderer.startRenderingToSurface(surface2, this.isPaused); this.isPaused = false; } /* JADX INFO: Access modifiers changed from: private */ public void changeSurfaceSize(int i, int i2) { if (this.flutterRenderer == null) { throw new IllegalStateException("changeSurfaceSize() should only be called when flutterRenderer is non-null."); } Log.v(TAG, "Notifying FlutterRenderer that Android surface size has changed to " + i + " x " + i2); this.flutterRenderer.surfaceChanged(i, i2); } /* JADX INFO: Access modifiers changed from: private */ public void disconnectSurfaceFromRenderer() { FlutterRenderer flutterRenderer = this.flutterRenderer; if (flutterRenderer == null) { throw new IllegalStateException("disconnectSurfaceFromRenderer() should only be called when flutterRenderer is non-null."); } flutterRenderer.stopRenderingToSurface(); Surface surface = this.renderSurface; if (surface != null) { surface.release(); this.renderSurface = null; } } }