107 lines
3.2 KiB
Java
107 lines
3.2 KiB
Java
package com.google.zxing.oned;
|
|
|
|
import com.google.zxing.BarcodeFormat;
|
|
import com.google.zxing.FormatException;
|
|
import com.google.zxing.NotFoundException;
|
|
import com.google.zxing.common.BitArray;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class UPCEReader extends UPCEANReader {
|
|
private static final int[] j = {1, 1, 1, 1, 1, 1};
|
|
static final int[][] k = {new int[]{56, 52, 50, 49, 44, 38, 35, 42, 41, 37}, new int[]{7, 11, 13, 14, 19, 25, 28, 21, 22, 26}};
|
|
private final int[] i = new int[4];
|
|
|
|
public static String b(String str) {
|
|
char[] cArr = new char[6];
|
|
str.getChars(1, 7, cArr, 0);
|
|
StringBuilder sb = new StringBuilder(12);
|
|
sb.append(str.charAt(0));
|
|
char c = cArr[5];
|
|
switch (c) {
|
|
case '0':
|
|
case '1':
|
|
case '2':
|
|
sb.append(cArr, 0, 2);
|
|
sb.append(c);
|
|
sb.append("0000");
|
|
sb.append(cArr, 2, 3);
|
|
break;
|
|
case '3':
|
|
sb.append(cArr, 0, 3);
|
|
sb.append("00000");
|
|
sb.append(cArr, 3, 2);
|
|
break;
|
|
case '4':
|
|
sb.append(cArr, 0, 4);
|
|
sb.append("00000");
|
|
sb.append(cArr[4]);
|
|
break;
|
|
default:
|
|
sb.append(cArr, 0, 5);
|
|
sb.append("0000");
|
|
sb.append(c);
|
|
break;
|
|
}
|
|
if (str.length() >= 8) {
|
|
sb.append(str.charAt(7));
|
|
}
|
|
return sb.toString();
|
|
}
|
|
|
|
@Override // com.google.zxing.oned.UPCEANReader
|
|
protected int a(BitArray bitArray, int[] iArr, StringBuilder sb) throws NotFoundException {
|
|
int[] iArr2 = this.i;
|
|
iArr2[0] = 0;
|
|
iArr2[1] = 0;
|
|
iArr2[2] = 0;
|
|
iArr2[3] = 0;
|
|
int h = bitArray.h();
|
|
int i = iArr[1];
|
|
int i2 = 0;
|
|
int i3 = 0;
|
|
while (i2 < 6 && i < h) {
|
|
int a = UPCEANReader.a(bitArray, iArr2, i, UPCEANReader.h);
|
|
sb.append((char) ((a % 10) + 48));
|
|
int i4 = i;
|
|
for (int i5 : iArr2) {
|
|
i4 += i5;
|
|
}
|
|
if (a >= 10) {
|
|
i3 = (1 << (5 - i2)) | i3;
|
|
}
|
|
i2++;
|
|
i = i4;
|
|
}
|
|
a(sb, i3);
|
|
return i;
|
|
}
|
|
|
|
@Override // com.google.zxing.oned.UPCEANReader
|
|
protected int[] a(BitArray bitArray, int i) throws NotFoundException {
|
|
return UPCEANReader.a(bitArray, i, true, j);
|
|
}
|
|
|
|
@Override // com.google.zxing.oned.UPCEANReader
|
|
protected boolean a(String str) throws FormatException {
|
|
return super.a(b(str));
|
|
}
|
|
|
|
private static void a(StringBuilder sb, int i) throws NotFoundException {
|
|
for (int i2 = 0; i2 <= 1; i2++) {
|
|
for (int i3 = 0; i3 < 10; i3++) {
|
|
if (i == k[i2][i3]) {
|
|
sb.insert(0, (char) (i2 + 48));
|
|
sb.append((char) (i3 + 48));
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
throw NotFoundException.getNotFoundInstance();
|
|
}
|
|
|
|
@Override // com.google.zxing.oned.UPCEANReader
|
|
BarcodeFormat a() {
|
|
return BarcodeFormat.UPC_E;
|
|
}
|
|
}
|