jimu-decompiled/sources/com/google/zxing/oned/rss/RSS14Reader.java
2025-05-13 19:24:51 +02:00

304 lines
9.8 KiB
Java

package com.google.zxing.oned.rss;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.DecodeHintType;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.ResultPoint;
import com.google.zxing.ResultPointCallback;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.detector.MathUtils;
import com.google.zxing.oned.OneDReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/* loaded from: classes.dex */
public final class RSS14Reader extends AbstractRSSReader {
private static final int[] i = {1, 10, 34, 70, 126};
private static final int[] j = {4, 20, 48, 81};
private static final int[] k = {0, 161, 961, 2015, 2715};
private static final int[] l = {0, 336, 1036, 1516};
private static final int[] m = {8, 6, 4, 3, 1};
private static final int[] n = {2, 4, 6, 8};
private static final int[][] o = {new int[]{3, 8, 2, 1}, new int[]{3, 5, 5, 1}, new int[]{3, 3, 7, 1}, new int[]{3, 1, 9, 1}, new int[]{2, 7, 4, 1}, new int[]{2, 5, 6, 1}, new int[]{2, 3, 8, 1}, new int[]{1, 5, 7, 1}, new int[]{1, 3, 9, 1}};
private final List<Pair> g = new ArrayList();
private final List<Pair> h = new ArrayList();
private static Result b(Pair pair, Pair pair2) {
String valueOf = String.valueOf((pair.b() * 4537077) + pair2.b());
StringBuilder sb = new StringBuilder(14);
for (int length = 13 - valueOf.length(); length > 0; length--) {
sb.append('0');
}
sb.append(valueOf);
int i2 = 0;
for (int i3 = 0; i3 < 13; i3++) {
int charAt = sb.charAt(i3) - '0';
if ((i3 & 1) == 0) {
charAt *= 3;
}
i2 += charAt;
}
int i4 = 10 - (i2 % 10);
if (i4 == 10) {
i4 = 0;
}
sb.append(i4);
ResultPoint[] a = pair.d().a();
ResultPoint[] a2 = pair2.d().a();
return new Result(sb.toString(), null, new ResultPoint[]{a[0], a[1], a2[0], a2[1]}, BarcodeFormat.RSS_14);
}
@Override // com.google.zxing.oned.OneDReader
public Result a(int i2, BitArray bitArray, Map<DecodeHintType, ?> map) throws NotFoundException {
a(this.g, a(bitArray, false, i2, map));
bitArray.j();
a(this.h, a(bitArray, true, i2, map));
bitArray.j();
for (Pair pair : this.g) {
if (pair.c() > 1) {
for (Pair pair2 : this.h) {
if (pair2.c() > 1 && a(pair, pair2)) {
return b(pair, pair2);
}
}
}
}
throw NotFoundException.getNotFoundInstance();
}
@Override // com.google.zxing.oned.OneDReader, com.google.zxing.Reader
public void reset() {
this.g.clear();
this.h.clear();
}
private static void a(Collection<Pair> collection, Pair pair) {
if (pair == null) {
return;
}
boolean z = false;
Iterator<Pair> it = collection.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
Pair next = it.next();
if (next.b() == pair.b()) {
next.e();
z = true;
break;
}
}
if (z) {
return;
}
collection.add(pair);
}
private static boolean a(Pair pair, Pair pair2) {
int a = (pair.a() + (pair2.a() * 16)) % 79;
int c = (pair.d().c() * 9) + pair2.d().c();
if (c > 72) {
c--;
}
if (c > 8) {
c--;
}
return a == c;
}
private Pair a(BitArray bitArray, boolean z, int i2, Map<DecodeHintType, ?> map) {
try {
FinderPattern a = a(bitArray, i2, z, a(bitArray, z));
ResultPointCallback resultPointCallback = map == null ? null : (ResultPointCallback) map.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK);
if (resultPointCallback != null) {
float f = (r1[0] + r1[1]) / 2.0f;
if (z) {
f = (bitArray.h() - 1) - f;
}
resultPointCallback.a(new ResultPoint(f, i2));
}
DataCharacter a2 = a(bitArray, a, true);
DataCharacter a3 = a(bitArray, a, false);
return new Pair((a2.b() * 1597) + a3.b(), a2.a() + (a3.a() * 4), a);
} catch (NotFoundException unused) {
return null;
}
}
private DataCharacter a(BitArray bitArray, FinderPattern finderPattern, boolean z) throws NotFoundException {
int[] a = a();
for (int i2 = 0; i2 < a.length; i2++) {
a[i2] = 0;
}
if (z) {
OneDReader.b(bitArray, finderPattern.b()[0], a);
} else {
OneDReader.a(bitArray, finderPattern.b()[1] + 1, a);
int i3 = 0;
for (int length = a.length - 1; i3 < length; length--) {
int i4 = a[i3];
a[i3] = a[length];
a[length] = i4;
i3++;
}
}
int i5 = z ? 16 : 15;
float a2 = MathUtils.a(a) / i5;
int[] e = e();
int[] c = c();
float[] f = f();
float[] d = d();
for (int i6 = 0; i6 < a.length; i6++) {
float f2 = a[i6] / a2;
int i7 = (int) (0.5f + f2);
if (i7 <= 0) {
i7 = 1;
} else if (i7 > 8) {
i7 = 8;
}
int i8 = i6 / 2;
if ((i6 & 1) == 0) {
e[i8] = i7;
f[i8] = f2 - i7;
} else {
c[i8] = i7;
d[i8] = f2 - i7;
}
}
a(z, i5);
int i9 = 0;
int i10 = 0;
for (int length2 = e.length - 1; length2 >= 0; length2--) {
i9 = (i9 * 9) + e[length2];
i10 += e[length2];
}
int i11 = 0;
int i12 = 0;
for (int length3 = c.length - 1; length3 >= 0; length3--) {
i11 = (i11 * 9) + c[length3];
i12 += c[length3];
}
int i13 = i9 + (i11 * 3);
if (!z) {
if ((i12 & 1) == 0 && i12 <= 10 && i12 >= 4) {
int i14 = (10 - i12) / 2;
int i15 = n[i14];
return new DataCharacter((RSSUtils.a(c, 9 - i15, false) * j[i14]) + RSSUtils.a(e, i15, true) + l[i14], i13);
}
throw NotFoundException.getNotFoundInstance();
}
if ((i10 & 1) == 0 && i10 <= 12 && i10 >= 4) {
int i16 = (12 - i10) / 2;
int i17 = m[i16];
return new DataCharacter((RSSUtils.a(e, i17, false) * i[i16]) + RSSUtils.a(c, 9 - i17, true) + k[i16], i13);
}
throw NotFoundException.getNotFoundInstance();
}
private int[] a(BitArray bitArray, boolean z) throws NotFoundException {
int[] b = b();
b[0] = 0;
b[1] = 0;
b[2] = 0;
b[3] = 0;
int h = bitArray.h();
int i2 = 0;
boolean z2 = false;
while (i2 < h) {
z2 = !bitArray.a(i2);
if (z == z2) {
break;
}
i2++;
}
int i3 = i2;
int i4 = 0;
while (i2 < h) {
if (bitArray.a(i2) != z2) {
b[i4] = b[i4] + 1;
} else {
if (i4 != 3) {
i4++;
} else {
if (AbstractRSSReader.a(b)) {
return new int[]{i3, i2};
}
i3 += b[0] + b[1];
b[0] = b[2];
b[1] = b[3];
b[2] = 0;
b[3] = 0;
i4--;
}
b[i4] = 1;
z2 = !z2;
}
i2++;
}
throw NotFoundException.getNotFoundInstance();
}
private FinderPattern a(BitArray bitArray, int i2, boolean z, int[] iArr) throws NotFoundException {
int i3;
int i4;
boolean a = bitArray.a(iArr[0]);
int i5 = iArr[0] - 1;
while (i5 >= 0 && a != bitArray.a(i5)) {
i5--;
}
int i6 = i5 + 1;
int i7 = iArr[0] - i6;
int[] b = b();
System.arraycopy(b, 0, b, 1, b.length - 1);
b[0] = i7;
int a2 = AbstractRSSReader.a(b, o);
int i8 = iArr[1];
if (z) {
int h = (bitArray.h() - 1) - i6;
i3 = (bitArray.h() - 1) - i8;
i4 = h;
} else {
i3 = i8;
i4 = i6;
}
return new FinderPattern(a2, new int[]{i6, iArr[1]}, i4, i3, i2);
}
/* JADX WARN: Code restructure failed: missing block: B:68:0x0029, code lost:
if (r1 < 4) goto L28;
*/
/* JADX WARN: Code restructure failed: missing block: B:69:0x0045, code lost:
r2 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:70:0x0046, code lost:
r7 = false;
*/
/* JADX WARN: Code restructure failed: missing block: B:71:0x0043, code lost:
r2 = true;
*/
/* JADX WARN: Code restructure failed: missing block: B:81:0x0041, code lost:
if (r1 < 4) goto L28;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct code enable 'Show inconsistent code' option in preferences
*/
private void a(boolean r10, int r11) throws com.google.zxing.NotFoundException {
/*
Method dump skipped, instructions count: 229
To view this dump change 'Code comments level' option to 'DEBUG'
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.zxing.oned.rss.RSS14Reader.a(boolean, int):void");
}
}