Rabbit-R1/android (non root)/java/sources/io/flutter/embedding/engine/renderer/FlutterRenderer.java
2024-05-21 17:08:36 -04:00

788 lines
31 KiB
Java

package io.flutter.embedding.engine.renderer;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.SurfaceTexture;
import android.media.Image;
import android.media.ImageReader;
import android.os.Build;
import android.os.Handler;
import android.view.Surface;
import io.flutter.Log;
import io.flutter.embedding.engine.FlutterJNI;
import io.flutter.view.TextureRegistry;
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
/* loaded from: classes3.dex */
public class FlutterRenderer implements TextureRegistry {
private static final String TAG = "FlutterRenderer";
private final FlutterJNI flutterJNI;
private final FlutterUiDisplayListener flutterUiDisplayListener;
private Surface surface;
private final AtomicLong nextTextureId = new AtomicLong(0);
private boolean isDisplayingFlutterUi = false;
private int isRenderingToImageViewCount = 0;
private Handler handler = new Handler();
private final Set<WeakReference<TextureRegistry.OnTrimMemoryListener>> onTrimMemoryListeners = new HashSet();
/* loaded from: classes3.dex */
public static final class ViewportMetrics {
public static final int unsetValue = -1;
public float devicePixelRatio = 1.0f;
public int width = 0;
public int height = 0;
public int viewPaddingTop = 0;
public int viewPaddingRight = 0;
public int viewPaddingBottom = 0;
public int viewPaddingLeft = 0;
public int viewInsetTop = 0;
public int viewInsetRight = 0;
public int viewInsetBottom = 0;
public int viewInsetLeft = 0;
public int systemGestureInsetTop = 0;
public int systemGestureInsetRight = 0;
public int systemGestureInsetBottom = 0;
public int systemGestureInsetLeft = 0;
public int physicalTouchSlop = -1;
public List<DisplayFeature> displayFeatures = new ArrayList();
boolean validate() {
return this.width > 0 && this.height > 0 && this.devicePixelRatio > 0.0f;
}
}
public boolean isDisplayingFlutterUi() {
return this.isDisplayingFlutterUi;
}
public FlutterRenderer(FlutterJNI flutterJNI) {
FlutterUiDisplayListener flutterUiDisplayListener = new FlutterUiDisplayListener() { // from class: io.flutter.embedding.engine.renderer.FlutterRenderer.1
@Override // io.flutter.embedding.engine.renderer.FlutterUiDisplayListener
public void onFlutterUiDisplayed() {
FlutterRenderer.this.isDisplayingFlutterUi = true;
}
@Override // io.flutter.embedding.engine.renderer.FlutterUiDisplayListener
public void onFlutterUiNoLongerDisplayed() {
FlutterRenderer.this.isDisplayingFlutterUi = false;
}
};
this.flutterUiDisplayListener = flutterUiDisplayListener;
this.flutterJNI = flutterJNI;
flutterJNI.addIsDisplayingFlutterUiListener(flutterUiDisplayListener);
}
public void SetRenderingToImageView(boolean z) {
if (z) {
this.isRenderingToImageViewCount++;
} else {
this.isRenderingToImageViewCount--;
}
this.flutterJNI.SetIsRenderingToImageView(this.isRenderingToImageViewCount > 0);
}
public void addIsDisplayingFlutterUiListener(FlutterUiDisplayListener flutterUiDisplayListener) {
this.flutterJNI.addIsDisplayingFlutterUiListener(flutterUiDisplayListener);
if (this.isDisplayingFlutterUi) {
flutterUiDisplayListener.onFlutterUiDisplayed();
}
}
public void removeIsDisplayingFlutterUiListener(FlutterUiDisplayListener flutterUiDisplayListener) {
this.flutterJNI.removeIsDisplayingFlutterUiListener(flutterUiDisplayListener);
}
private void clearDeadListeners() {
Iterator<WeakReference<TextureRegistry.OnTrimMemoryListener>> it = this.onTrimMemoryListeners.iterator();
while (it.hasNext()) {
if (it.next().get() == null) {
it.remove();
}
}
}
void addOnTrimMemoryListener(TextureRegistry.OnTrimMemoryListener onTrimMemoryListener) {
clearDeadListeners();
this.onTrimMemoryListeners.add(new WeakReference<>(onTrimMemoryListener));
}
void removeOnTrimMemoryListener(TextureRegistry.OnTrimMemoryListener onTrimMemoryListener) {
for (WeakReference<TextureRegistry.OnTrimMemoryListener> weakReference : this.onTrimMemoryListeners) {
if (weakReference.get() == onTrimMemoryListener) {
this.onTrimMemoryListeners.remove(weakReference);
return;
}
}
}
@Override // io.flutter.view.TextureRegistry
public TextureRegistry.SurfaceProducer createSurfaceProducer() {
ImageReaderSurfaceProducer imageReaderSurfaceProducer = new ImageReaderSurfaceProducer(this.nextTextureId.getAndIncrement());
Log.v(TAG, "New SurfaceProducer ID: " + imageReaderSurfaceProducer.id());
registerImageTexture(imageReaderSurfaceProducer.id(), imageReaderSurfaceProducer);
return imageReaderSurfaceProducer;
}
@Override // io.flutter.view.TextureRegistry
public TextureRegistry.SurfaceTextureEntry createSurfaceTexture() {
Log.v(TAG, "Creating a SurfaceTexture.");
return registerSurfaceTexture(new SurfaceTexture(0));
}
@Override // io.flutter.view.TextureRegistry
public TextureRegistry.SurfaceTextureEntry registerSurfaceTexture(SurfaceTexture surfaceTexture) {
surfaceTexture.detachFromGLContext();
SurfaceTextureRegistryEntry surfaceTextureRegistryEntry = new SurfaceTextureRegistryEntry(this.nextTextureId.getAndIncrement(), surfaceTexture);
Log.v(TAG, "New SurfaceTexture ID: " + surfaceTextureRegistryEntry.id());
registerTexture(surfaceTextureRegistryEntry.id(), surfaceTextureRegistryEntry.textureWrapper());
addOnTrimMemoryListener(surfaceTextureRegistryEntry);
return surfaceTextureRegistryEntry;
}
@Override // io.flutter.view.TextureRegistry
public TextureRegistry.ImageTextureEntry createImageTexture() {
ImageTextureRegistryEntry imageTextureRegistryEntry = new ImageTextureRegistryEntry(this.nextTextureId.getAndIncrement());
Log.v(TAG, "New ImageTextureEntry ID: " + imageTextureRegistryEntry.id());
registerImageTexture(imageTextureRegistryEntry.id(), imageTextureRegistryEntry);
return imageTextureRegistryEntry;
}
@Override // io.flutter.view.TextureRegistry
public void onTrimMemory(int i) {
Iterator<WeakReference<TextureRegistry.OnTrimMemoryListener>> it = this.onTrimMemoryListeners.iterator();
while (it.hasNext()) {
TextureRegistry.OnTrimMemoryListener onTrimMemoryListener = it.next().get();
if (onTrimMemoryListener != null) {
onTrimMemoryListener.onTrimMemory(i);
} else {
it.remove();
}
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes3.dex */
public final class SurfaceTextureRegistryEntry implements TextureRegistry.SurfaceTextureEntry, TextureRegistry.OnTrimMemoryListener {
private TextureRegistry.OnFrameConsumedListener frameConsumedListener;
private final long id;
private final Runnable onFrameConsumed;
private SurfaceTexture.OnFrameAvailableListener onFrameListener;
private boolean released;
private final SurfaceTextureWrapper textureWrapper;
private TextureRegistry.OnTrimMemoryListener trimMemoryListener;
@Override // io.flutter.view.TextureRegistry.SurfaceTextureEntry, io.flutter.view.TextureRegistry.TextureEntry
public long id() {
return this.id;
}
@Override // io.flutter.view.TextureRegistry.SurfaceTextureEntry
public void setOnFrameConsumedListener(TextureRegistry.OnFrameConsumedListener onFrameConsumedListener) {
this.frameConsumedListener = onFrameConsumedListener;
}
@Override // io.flutter.view.TextureRegistry.SurfaceTextureEntry
public void setOnTrimMemoryListener(TextureRegistry.OnTrimMemoryListener onTrimMemoryListener) {
this.trimMemoryListener = onTrimMemoryListener;
}
public SurfaceTextureWrapper textureWrapper() {
return this.textureWrapper;
}
SurfaceTextureRegistryEntry(long j, SurfaceTexture surfaceTexture) {
Runnable runnable = new Runnable() { // from class: io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.1
@Override // java.lang.Runnable
public void run() {
if (SurfaceTextureRegistryEntry.this.frameConsumedListener != null) {
SurfaceTextureRegistryEntry.this.frameConsumedListener.onFrameConsumed();
}
}
};
this.onFrameConsumed = runnable;
this.onFrameListener = new SurfaceTexture.OnFrameAvailableListener() { // from class: io.flutter.embedding.engine.renderer.FlutterRenderer.SurfaceTextureRegistryEntry.2
@Override // android.graphics.SurfaceTexture.OnFrameAvailableListener
public void onFrameAvailable(SurfaceTexture surfaceTexture2) {
if (SurfaceTextureRegistryEntry.this.released || !FlutterRenderer.this.flutterJNI.isAttached()) {
return;
}
FlutterRenderer.this.markTextureFrameAvailable(SurfaceTextureRegistryEntry.this.id);
}
};
this.id = j;
this.textureWrapper = new SurfaceTextureWrapper(surfaceTexture, runnable);
surfaceTexture().setOnFrameAvailableListener(this.onFrameListener, new Handler());
}
@Override // io.flutter.view.TextureRegistry.OnTrimMemoryListener
public void onTrimMemory(int i) {
TextureRegistry.OnTrimMemoryListener onTrimMemoryListener = this.trimMemoryListener;
if (onTrimMemoryListener != null) {
onTrimMemoryListener.onTrimMemory(i);
}
}
private void removeListener() {
FlutterRenderer.this.removeOnTrimMemoryListener(this);
}
@Override // io.flutter.view.TextureRegistry.SurfaceTextureEntry
public SurfaceTexture surfaceTexture() {
return this.textureWrapper.surfaceTexture();
}
@Override // io.flutter.view.TextureRegistry.SurfaceTextureEntry, io.flutter.view.TextureRegistry.TextureEntry
public void release() {
if (this.released) {
return;
}
Log.v(FlutterRenderer.TAG, "Releasing a SurfaceTexture (" + this.id + ").");
this.textureWrapper.release();
FlutterRenderer.this.unregisterTexture(this.id);
removeListener();
this.released = true;
}
protected void finalize() throws Throwable {
try {
if (this.released) {
return;
}
FlutterRenderer.this.handler.post(new TextureFinalizerRunnable(this.id, FlutterRenderer.this.flutterJNI));
} finally {
super.finalize();
}
}
}
/* loaded from: classes3.dex */
static final class TextureFinalizerRunnable implements Runnable {
private final FlutterJNI flutterJNI;
private final long id;
TextureFinalizerRunnable(long j, FlutterJNI flutterJNI) {
this.id = j;
this.flutterJNI = flutterJNI;
}
@Override // java.lang.Runnable
public void run() {
if (this.flutterJNI.isAttached()) {
Log.v(FlutterRenderer.TAG, "Releasing a Texture (" + this.id + ").");
this.flutterJNI.unregisterTexture(this.id);
}
}
}
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes3.dex */
public final class ImageReaderSurfaceProducer implements TextureRegistry.SurfaceProducer, TextureRegistry.ImageConsumer {
private static final int MAX_IMAGES = 4;
private static final String TAG = "ImageReaderSurfaceProducer";
private ImageReader activeReader;
private final long id;
private PerImage lastConsumedImage;
private PerImage lastProducedImage;
private boolean released;
private boolean ignoringFence = false;
private int requestedWidth = 0;
private int requestedHeight = 0;
private final Set<ImageReader> readersToClose = new HashSet();
private final Handler onImageAvailableHandler = new Handler();
private final ImageReader.OnImageAvailableListener onImageAvailableListener = new ImageReader.OnImageAvailableListener() { // from class: io.flutter.embedding.engine.renderer.FlutterRenderer.ImageReaderSurfaceProducer.1
@Override // android.media.ImageReader.OnImageAvailableListener
public void onImageAvailable(ImageReader imageReader) {
Image image;
try {
image = imageReader.acquireLatestImage();
} catch (IllegalStateException e) {
Log.e(ImageReaderSurfaceProducer.TAG, "onImageAvailable acquireLatestImage failed: " + e.toString());
image = null;
}
if (image == null) {
return;
}
ImageReaderSurfaceProducer.this.onImage(new PerImage(imageReader, image));
}
};
public void disableFenceForTest() {
this.ignoringFence = true;
}
@Override // io.flutter.view.TextureRegistry.SurfaceProducer
public int getHeight() {
return this.requestedHeight;
}
@Override // io.flutter.view.TextureRegistry.SurfaceProducer
public int getWidth() {
return this.requestedWidth;
}
@Override // io.flutter.view.TextureRegistry.SurfaceProducer, io.flutter.view.TextureRegistry.TextureEntry
public long id() {
return this.id;
}
/* JADX INFO: Access modifiers changed from: private */
/* loaded from: classes3.dex */
public class PerImage {
public final Image image;
public final ImageReader reader;
public PerImage(ImageReader imageReader, Image image) {
this.reader = imageReader;
this.image = image;
}
public void close() {
this.image.close();
ImageReaderSurfaceProducer.this.maybeCloseReader(this.reader);
}
}
ImageReaderSurfaceProducer(long j) {
this.id = j;
}
private void releaseInternal() {
this.released = true;
PerImage perImage = this.lastProducedImage;
if (perImage != null) {
perImage.close();
this.lastProducedImage = null;
}
PerImage perImage2 = this.lastConsumedImage;
if (perImage2 != null) {
perImage2.close();
this.lastConsumedImage = null;
}
Iterator<ImageReader> it = this.readersToClose.iterator();
while (it.hasNext()) {
it.next().close();
}
this.readersToClose.clear();
ImageReader imageReader = this.activeReader;
if (imageReader != null) {
imageReader.close();
this.activeReader = null;
}
}
@Override // io.flutter.view.TextureRegistry.SurfaceProducer, io.flutter.view.TextureRegistry.TextureEntry
public void release() {
if (this.released) {
return;
}
releaseInternal();
FlutterRenderer.this.unregisterTexture(this.id);
}
@Override // io.flutter.view.TextureRegistry.SurfaceProducer
public void setSize(int i, int i2) {
if (this.requestedWidth == i && this.requestedHeight == i2) {
return;
}
this.requestedHeight = i2;
this.requestedWidth = i;
synchronized (this) {
ImageReader imageReader = this.activeReader;
if (imageReader != null) {
this.readersToClose.add(imageReader);
this.activeReader = null;
}
}
}
@Override // io.flutter.view.TextureRegistry.SurfaceProducer
public Surface getSurface() {
maybeCreateReader();
return this.activeReader.getSurface();
}
@Override // io.flutter.view.TextureRegistry.ImageConsumer
public Image acquireLatestImage() {
PerImage perImage;
PerImage perImage2;
synchronized (this) {
perImage = this.lastProducedImage;
this.lastProducedImage = null;
perImage2 = this.lastConsumedImage;
this.lastConsumedImage = perImage;
}
if (perImage2 != null) {
perImage2.close();
}
if (perImage == null) {
return null;
}
maybeWaitOnFence(perImage.image);
return perImage.image;
}
/* JADX INFO: Access modifiers changed from: private */
public void maybeCloseReader(ImageReader imageReader) {
synchronized (this) {
if (this.readersToClose.contains(imageReader)) {
PerImage perImage = this.lastConsumedImage;
if (perImage == null || perImage.reader != imageReader) {
PerImage perImage2 = this.lastProducedImage;
if (perImage2 == null || perImage2.reader != imageReader) {
this.readersToClose.remove(imageReader);
imageReader.close();
}
}
}
}
}
private void maybeCreateReader() {
synchronized (this) {
if (this.activeReader != null) {
return;
}
this.activeReader = createImageReader();
}
}
/* JADX INFO: Access modifiers changed from: private */
public void onImage(PerImage perImage) {
if (this.released) {
return;
}
synchronized (this) {
if (this.readersToClose.contains(perImage.reader)) {
Log.i(TAG, "Skipped frame because resize is in flight.");
perImage.close();
return;
}
PerImage perImage2 = this.lastProducedImage;
this.lastProducedImage = perImage;
if (perImage2 != null) {
Log.i(TAG, "Dropping rendered frame that was not acquired in time.");
perImage2.close();
}
if (perImage != null) {
FlutterRenderer.this.markTextureFrameAvailable(this.id);
}
}
}
private void waitOnFence(Image image) {
try {
if (image.getFence().awaitForever()) {
return;
}
Log.e(TAG, "acquireLatestImage image's fence was never signalled.");
} catch (IOException unused) {
}
}
private void maybeWaitOnFence(Image image) {
if (image == null || this.ignoringFence) {
return;
}
if (Build.VERSION.SDK_INT >= 33) {
waitOnFence(image);
} else {
if (this.ignoringFence) {
return;
}
this.ignoringFence = true;
Log.w(TAG, "ImageTextureEntry can't wait on the fence on Android < 33");
}
}
protected void finalize() throws Throwable {
try {
if (this.released) {
return;
}
releaseInternal();
FlutterRenderer.this.handler.post(new TextureFinalizerRunnable(this.id, FlutterRenderer.this.flutterJNI));
} finally {
super.finalize();
}
}
private ImageReader createImageReader33() {
ImageReader.Builder builder = new ImageReader.Builder(this.requestedWidth, this.requestedHeight);
builder.setMaxImages(4);
builder.setImageFormat(34);
builder.setUsage(256L);
ImageReader build = builder.build();
build.setOnImageAvailableListener(this.onImageAvailableListener, this.onImageAvailableHandler);
return build;
}
private ImageReader createImageReader29() {
ImageReader newInstance = ImageReader.newInstance(this.requestedWidth, this.requestedHeight, 34, 4, 256L);
newInstance.setOnImageAvailableListener(this.onImageAvailableListener, this.onImageAvailableHandler);
return newInstance;
}
private ImageReader createImageReader() {
if (Build.VERSION.SDK_INT >= 33) {
return createImageReader33();
}
return createImageReader29();
}
public int readersToCloseSize() {
return this.readersToClose.size();
}
}
/* loaded from: classes3.dex */
final class ImageTextureRegistryEntry implements TextureRegistry.ImageTextureEntry, TextureRegistry.ImageConsumer {
private static final String TAG = "ImageTextureRegistryEntry";
private final long id;
private boolean ignoringFence = false;
private Image image;
private boolean released;
@Override // io.flutter.view.TextureRegistry.ImageTextureEntry, io.flutter.view.TextureRegistry.TextureEntry
public long id() {
return this.id;
}
ImageTextureRegistryEntry(long j) {
this.id = j;
}
@Override // io.flutter.view.TextureRegistry.ImageTextureEntry, io.flutter.view.TextureRegistry.TextureEntry
public void release() {
if (this.released) {
return;
}
this.released = true;
Image image = this.image;
if (image != null) {
image.close();
this.image = null;
}
FlutterRenderer.this.unregisterTexture(this.id);
}
@Override // io.flutter.view.TextureRegistry.ImageTextureEntry
public void pushImage(Image image) {
Image image2;
if (this.released) {
return;
}
synchronized (this) {
image2 = this.image;
this.image = image;
}
if (image2 != null) {
Log.e(TAG, "Dropping PlatformView Frame");
image2.close();
}
if (image != null) {
FlutterRenderer.this.markTextureFrameAvailable(this.id);
}
}
private void waitOnFence(Image image) {
try {
if (image.getFence().awaitForever()) {
return;
}
Log.e(TAG, "acquireLatestImage image's fence was never signalled.");
} catch (IOException unused) {
}
}
private void maybeWaitOnFence(Image image) {
if (image == null || this.ignoringFence) {
return;
}
if (Build.VERSION.SDK_INT >= 33) {
waitOnFence(image);
} else {
if (this.ignoringFence) {
return;
}
this.ignoringFence = true;
Log.w(TAG, "ImageTextureEntry can't wait on the fence on Android < 33");
}
}
@Override // io.flutter.view.TextureRegistry.ImageConsumer
public Image acquireLatestImage() {
Image image;
synchronized (this) {
image = this.image;
this.image = null;
}
maybeWaitOnFence(image);
return image;
}
protected void finalize() throws Throwable {
try {
if (this.released) {
return;
}
Image image = this.image;
if (image != null) {
image.close();
this.image = null;
}
this.released = true;
FlutterRenderer.this.handler.post(new TextureFinalizerRunnable(this.id, FlutterRenderer.this.flutterJNI));
} finally {
super.finalize();
}
}
}
public void startRenderingToSurface(Surface surface, boolean z) {
if (!z) {
stopRenderingToSurface();
}
this.surface = surface;
if (z) {
this.flutterJNI.onSurfaceWindowChanged(surface);
} else {
this.flutterJNI.onSurfaceCreated(surface);
}
}
public void swapSurface(Surface surface) {
this.surface = surface;
this.flutterJNI.onSurfaceWindowChanged(surface);
}
public void surfaceChanged(int i, int i2) {
this.flutterJNI.onSurfaceChanged(i, i2);
}
public void stopRenderingToSurface() {
if (this.surface != null) {
this.flutterJNI.onSurfaceDestroyed();
if (this.isDisplayingFlutterUi) {
this.flutterUiDisplayListener.onFlutterUiNoLongerDisplayed();
}
this.isDisplayingFlutterUi = false;
this.surface = null;
}
}
public void setViewportMetrics(ViewportMetrics viewportMetrics) {
if (viewportMetrics.validate()) {
Log.v(TAG, "Setting viewport metrics\nSize: " + viewportMetrics.width + " x " + viewportMetrics.height + "\nPadding - L: " + viewportMetrics.viewPaddingLeft + ", T: " + viewportMetrics.viewPaddingTop + ", R: " + viewportMetrics.viewPaddingRight + ", B: " + viewportMetrics.viewPaddingBottom + "\nInsets - L: " + viewportMetrics.viewInsetLeft + ", T: " + viewportMetrics.viewInsetTop + ", R: " + viewportMetrics.viewInsetRight + ", B: " + viewportMetrics.viewInsetBottom + "\nSystem Gesture Insets - L: " + viewportMetrics.systemGestureInsetLeft + ", T: " + viewportMetrics.systemGestureInsetTop + ", R: " + viewportMetrics.systemGestureInsetRight + ", B: " + viewportMetrics.systemGestureInsetRight + "\nDisplay Features: " + viewportMetrics.displayFeatures.size());
int[] iArr = new int[viewportMetrics.displayFeatures.size() * 4];
int[] iArr2 = new int[viewportMetrics.displayFeatures.size()];
int[] iArr3 = new int[viewportMetrics.displayFeatures.size()];
for (int i = 0; i < viewportMetrics.displayFeatures.size(); i++) {
DisplayFeature displayFeature = viewportMetrics.displayFeatures.get(i);
int i2 = i * 4;
iArr[i2] = displayFeature.bounds.left;
iArr[i2 + 1] = displayFeature.bounds.top;
iArr[i2 + 2] = displayFeature.bounds.right;
iArr[i2 + 3] = displayFeature.bounds.bottom;
iArr2[i] = displayFeature.type.encodedValue;
iArr3[i] = displayFeature.state.encodedValue;
}
this.flutterJNI.setViewportMetrics(viewportMetrics.devicePixelRatio, viewportMetrics.width, viewportMetrics.height, viewportMetrics.viewPaddingTop, viewportMetrics.viewPaddingRight, viewportMetrics.viewPaddingBottom, viewportMetrics.viewPaddingLeft, viewportMetrics.viewInsetTop, viewportMetrics.viewInsetRight, viewportMetrics.viewInsetBottom, viewportMetrics.viewInsetLeft, viewportMetrics.systemGestureInsetTop, viewportMetrics.systemGestureInsetRight, viewportMetrics.systemGestureInsetBottom, viewportMetrics.systemGestureInsetLeft, viewportMetrics.physicalTouchSlop, iArr, iArr2, iArr3);
}
}
public Bitmap getBitmap() {
return this.flutterJNI.getBitmap();
}
public void dispatchPointerDataPacket(ByteBuffer byteBuffer, int i) {
this.flutterJNI.dispatchPointerDataPacket(byteBuffer, i);
}
private void registerTexture(long j, SurfaceTextureWrapper surfaceTextureWrapper) {
this.flutterJNI.registerTexture(j, surfaceTextureWrapper);
}
private void registerImageTexture(long j, TextureRegistry.ImageConsumer imageConsumer) {
this.flutterJNI.registerImageTexture(j, imageConsumer);
}
/* JADX INFO: Access modifiers changed from: private */
public void markTextureFrameAvailable(long j) {
this.flutterJNI.markTextureFrameAvailable(j);
}
/* JADX INFO: Access modifiers changed from: private */
public void unregisterTexture(long j) {
this.flutterJNI.unregisterTexture(j);
}
public boolean isSoftwareRenderingEnabled() {
return this.flutterJNI.getIsSoftwareRenderingEnabled();
}
public void setAccessibilityFeatures(int i) {
this.flutterJNI.setAccessibilityFeatures(i);
}
public void setSemanticsEnabled(boolean z) {
this.flutterJNI.setSemanticsEnabled(z);
}
public void dispatchSemanticsAction(int i, int i2, ByteBuffer byteBuffer, int i3) {
this.flutterJNI.dispatchSemanticsAction(i, i2, byteBuffer, i3);
}
/* loaded from: classes3.dex */
public static final class DisplayFeature {
public final Rect bounds;
public final DisplayFeatureState state;
public final DisplayFeatureType type;
public DisplayFeature(Rect rect, DisplayFeatureType displayFeatureType, DisplayFeatureState displayFeatureState) {
this.bounds = rect;
this.type = displayFeatureType;
this.state = displayFeatureState;
}
public DisplayFeature(Rect rect, DisplayFeatureType displayFeatureType) {
this.bounds = rect;
this.type = displayFeatureType;
this.state = DisplayFeatureState.UNKNOWN;
}
}
/* loaded from: classes3.dex */
public enum DisplayFeatureType {
UNKNOWN(0),
FOLD(1),
HINGE(2),
CUTOUT(3);
public final int encodedValue;
DisplayFeatureType(int i) {
this.encodedValue = i;
}
}
/* loaded from: classes3.dex */
public enum DisplayFeatureState {
UNKNOWN(0),
POSTURE_FLAT(1),
POSTURE_HALF_OPENED(2);
public final int encodedValue;
DisplayFeatureState(int i) {
this.encodedValue = i;
}
}
}