package com.seewo.libshid.devices;

import com.seewo.libmcuservice.constant.IMcuConstants;
import com.seewo.libshid.devices.AbstractSmartPen;
import com.seewo.libshid.util.BaseThread;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

/* JADX INFO: loaded from: classes.dex */
public class SmartPen03 extends AbstractSmartPen {
    private static final int DATA_INDEX = 1;
    public static final int HEADER_VALUE = 16;
    private static final int HEAD_INDEX = 0;
    private static final int MAX_GAP = 15;
    private static final int PEN_DOWN_BIT_POS = 6;
    private static final int PEN_ERASER_BIT_POS = 3;
    private static final int PEN_UP_BIT_POS = 5;
    private static final int PRESSURE_HIGH_INDEX = 4;
    private static final int PRESSURE_LOW_INDEX = 3;
    public AbstractSmartPen.SPData data;
    public BlockingQueue<Integer> mBlockingQueue;
    public EventNotifyThread mEventNotifyThread;
    private int prePressure;

    public class EventNotifyThread extends BaseThread {
        private BlockingQueue<Integer> mBlockingQueue;
        public int pressure;

        public EventNotifyThread(BlockingQueue<Integer> blockingQueue) {
            this.mBlockingQueue = blockingQueue;
        }

        @Override // com.seewo.libshid.util.BaseThread, java.lang.Thread, java.lang.Runnable
        public void run() {
            super.run();
            while (this.mIsRunning) {
                try {
                    this.pressure = this.mBlockingQueue.take().intValue();
                } catch (InterruptedException unused) {
                    Thread.currentThread().interrupt();
                }
                SmartPen03 smartPen03 = SmartPen03.this;
                AbstractSmartPen.SPData sPData = smartPen03.data;
                int i2 = this.pressure;
                sPData.pressure = i2;
                if (i2 != 0) {
                    smartPen03.notifyPenEvent();
                }
            }
        }
    }

    public SmartPen03(int i2, int i3) {
        super(i2, i3);
        AbstractSmartPen.SPData sPData = new AbstractSmartPen.SPData();
        this.data = sPData;
        sPData.key = -1;
        sPData.keyStatus = false;
        this.mBlockingQueue = new LinkedBlockingQueue();
        EventNotifyThread eventNotifyThread = new EventNotifyThread(this.mBlockingQueue);
        this.mEventNotifyThread = eventNotifyThread;
        eventNotifyThread.start();
    }

    private void addPressure(int i2) {
        int i3 = i2 - this.prePressure;
        int iAbs = Math.abs(i3);
        if (iAbs <= 15) {
            putPressure(i2);
            return;
        }
        int i4 = iAbs / 15;
        int i5 = i3 / (i4 + 1);
        for (int i6 = 1; i6 <= i4; i6++) {
            putPressure((i5 * i6) + this.prePressure);
        }
    }

    private boolean checkKeyPress(byte b2, int i2) {
        return 1 == (b2 >> i2);
    }

    /* JADX WARN: Removed duplicated region for block: B:16:0x002e  */
    /* JADX WARN: Removed duplicated region for block: B:18:0x0031 A[RETURN] */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
        To view partially-correct add '--show-bad-code' argument
    */
    private boolean constructKey(byte r5) {
        /*
            r4 = this;
            r0 = 5
            boolean r0 = r4.checkKeyPress(r5, r0)
            r1 = 0
            r2 = 1
            if (r0 == 0) goto Lf
            com.seewo.libshid.devices.AbstractSmartPen$SPData r5 = r4.data
            r5.key = r2
        Ld:
            r5 = r2
            goto L27
        Lf:
            r0 = 6
            boolean r0 = r4.checkKeyPress(r5, r0)
            if (r0 == 0) goto L1c
            com.seewo.libshid.devices.AbstractSmartPen$SPData r5 = r4.data
            r0 = 2
        L19:
            r5.key = r0
            goto Ld
        L1c:
            r0 = 3
            boolean r5 = r4.checkKeyPress(r5, r0)
            if (r5 == 0) goto L26
            com.seewo.libshid.devices.AbstractSmartPen$SPData r5 = r4.data
            goto L19
        L26:
            r5 = r1
        L27:
            com.seewo.libshid.devices.AbstractSmartPen$SPData r0 = r4.data
            boolean r3 = r0.keyStatus
            r3 = r3 ^ r5
            if (r3 == 0) goto L31
            r0.keyStatus = r5
            return r2
        L31:
            return r1
        */
        throw new UnsupportedOperationException("Method not decompiled: com.seewo.libshid.devices.SmartPen03.constructKey(byte):boolean");
    }

    private boolean constructPressureValue(byte b2, byte b3) {
        int i2 = (b2 & IMcuConstants.DEFAULT_VALUE) | ((b3 << 8) & 65280);
        if (this.prePressure == i2) {
            return false;
        }
        addPressure(i2);
        this.prePressure = i2;
        return true;
    }

    /* JADX INFO: Access modifiers changed from: private */
    public void notifyPenEvent() {
        AbstractSmartPen.SmartPenDataCallBack smartPenDataCallBack;
        AbstractSmartPen.SPData sPData = this.data;
        if ((sPData.pressure != 0 || sPData.key >= 0) && (smartPenDataCallBack = this.mSmartPenDataCallBack) != null) {
            smartPenDataCallBack.getKey(sPData);
        }
    }

    private void putPressure(int i2) {
        try {
            this.mBlockingQueue.put(Integer.valueOf(i2));
        } catch (InterruptedException unused) {
            Thread.currentThread().interrupt();
        }
    }

    @Override // com.seewo.libshid.devices.AbstractSmartPen
    public void close() {
        super.close();
        this.mEventNotifyThread.stopThread();
        this.mBlockingQueue.clear();
        this.mBlockingQueue = null;
    }

    @Override // com.seewo.libshid.devices.AbstractSmartPen
    public void pairing() {
    }

    @Override // com.seewo.libshid.devices.AbstractSmartPen
    public void resolveData(int i2) {
        byte[] bytesWithoutWait = this.mhid.getBytesWithoutWait(i2, 5);
        if (bytesWithoutWait != null && 16 == bytesWithoutWait[0]) {
            boolean zConstructKey = constructKey(bytesWithoutWait[1]);
            if (!(constructPressureValue(bytesWithoutWait[3], bytesWithoutWait[4]) && this.data.pressure == 0) && zConstructKey) {
                AbstractSmartPen.SPData sPData = this.data;
                if (sPData.pressure != 0 || sPData.key >= 0) {
                    notifyPenEvent();
                }
            }
        }
    }
}
