package com.seewo.sdk.virtualdisplay;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.media.Image;
import android.media.ImageReader;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.Display;
import android.view.Surface;
import android.view.WindowManager;
import com.seewo.sdk.OpenSDK;
import com.seewo.sdk.internal.utils.Constants;
import com.seewo.sdk.internal.utils.SDKServiceManager;
import com.seewo.sdk.virtualdisplay.IVirtualDisplayService;
import java.nio.ByteBuffer;

/* JADX INFO: loaded from: classes.dex */
public class SDKVirtualDisplay {
    private static final String TAG = "SDKVirtualDisplay";
    private static SDKVirtualDisplay sInstance = new SDKVirtualDisplay();

    private SDKVirtualDisplay() {
    }

    public static SDKVirtualDisplay getInstance() {
        return sInstance;
    }

    public String createVirtualDisplay(Surface surface, int i, int i2) {
        IVirtualDisplayService virtualDisplayService = getVirtualDisplayService();
        if (virtualDisplayService == null) {
            return null;
        }
        try {
            return virtualDisplayService.createVirtualDisplay(OpenSDK.getInstance().getToken(), surface, i, i2);
        } catch (RemoteException e) {
            Log.e(TAG, "createVirtualDisplay failed", e);
            return null;
        }
    }

    public void releaseVirtualDisplay(String str) {
        IVirtualDisplayService virtualDisplayService = getVirtualDisplayService();
        if (virtualDisplayService == null) {
            return;
        }
        try {
            virtualDisplayService.releaseVirtualDisplay(str);
        } catch (RemoteException e) {
            Log.e(TAG, "createVirtualDisplay failed", e);
        }
    }

    private IVirtualDisplayService getVirtualDisplayService() {
        IBinder service = SDKServiceManager.i().getService(Constants.VIRTUAL_DISPLAY);
        if (service != null) {
            return IVirtualDisplayService.Stub.asInterface(service);
        }
        return null;
    }

    private boolean checkBitmap(Bitmap bitmap) {
        for (int i = 0; i < bitmap.getWidth(); i += 10) {
            for (int i2 = 0; i2 < bitmap.getHeight(); i2 += 10) {
                int pixel = bitmap.getPixel(i, i2);
                if (pixel == 0) {
                    Log.d(TAG, "checkBitmap failed, bitmap is Translucent");
                    return false;
                }
                if (pixel != -16777216) {
                    return true;
                }
            }
        }
        Log.d(TAG, "checkBitmap failed, bitmap is total black");
        return false;
    }

    public Bitmap screenShot(Context context) {
        ImageReader imageReaderCreateImageReader = createImageReader(context);
        if (imageReaderCreateImageReader == null) {
            return null;
        }
        String strCreateVirtualDisplay = createVirtualDisplay(imageReaderCreateImageReader.getSurface(), imageReaderCreateImageReader.getWidth(), imageReaderCreateImageReader.getHeight());
        Bitmap bitmapCaptureImage = captureImage(imageReaderCreateImageReader);
        int i = 0;
        while (bitmapCaptureImage != null && !checkBitmap(bitmapCaptureImage) && i < 3) {
            bitmapCaptureImage = captureImage(imageReaderCreateImageReader);
            i++;
            Log.d(TAG, "try read bitmap " + i);
        }
        imageReaderCreateImageReader.close();
        releaseVirtualDisplay(strCreateVirtualDisplay);
        return bitmapCaptureImage;
    }

    private ImageReader createImageReader(Context context) {
        Display defaultDisplay = ((WindowManager) context.getSystemService("window")).getDefaultDisplay();
        Point point = new Point();
        defaultDisplay.getRealSize(point);
        return ImageReader.newInstance(point.x, point.y, 1, 2);
    }

    private Bitmap captureImage(ImageReader imageReader) {
        Image imageAcquireLatestImage = null;
        int i = 0;
        while (imageAcquireLatestImage == null && i < 10) {
            i++;
            try {
                Thread.sleep(250L);
                imageAcquireLatestImage = imageReader.acquireLatestImage();
            } catch (InterruptedException unused) {
            }
        }
        if (imageAcquireLatestImage == null) {
            return null;
        }
        try {
            Image.Plane[] planes = imageAcquireLatestImage.getPlanes();
            ByteBuffer buffer = planes[0].getBuffer();
            int pixelStride = planes[0].getPixelStride();
            Bitmap bitmapCreateBitmap = Bitmap.createBitmap(imageReader.getWidth() + ((planes[0].getRowStride() - (imageReader.getWidth() * pixelStride)) / pixelStride), imageReader.getHeight(), Bitmap.Config.ARGB_8888);
            bitmapCreateBitmap.copyPixelsFromBuffer(buffer);
            imageAcquireLatestImage.close();
            return bitmapCreateBitmap;
        } catch (Exception e) {
            Log.d(TAG, "captureImage error", e);
            return null;
        }
    }
}
