Initial commit
This commit is contained in:
90
sources/com/google/zxing/qrcode/decoder/DataBlock.java
Normal file
90
sources/com/google/zxing/qrcode/decoder/DataBlock.java
Normal file
@@ -0,0 +1,90 @@
|
||||
package com.google.zxing.qrcode.decoder;
|
||||
|
||||
import com.google.zxing.qrcode.decoder.Version;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
final class DataBlock {
|
||||
private final int a;
|
||||
private final byte[] b;
|
||||
|
||||
private DataBlock(int i, byte[] bArr) {
|
||||
this.a = i;
|
||||
this.b = bArr;
|
||||
}
|
||||
|
||||
static DataBlock[] a(byte[] bArr, Version version, ErrorCorrectionLevel errorCorrectionLevel) {
|
||||
if (bArr.length != version.d()) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
Version.ECBlocks a = version.a(errorCorrectionLevel);
|
||||
Version.ECB[] a2 = a.a();
|
||||
int i = 0;
|
||||
for (Version.ECB ecb : a2) {
|
||||
i += ecb.a();
|
||||
}
|
||||
DataBlock[] dataBlockArr = new DataBlock[i];
|
||||
int length = a2.length;
|
||||
int i2 = 0;
|
||||
int i3 = 0;
|
||||
while (i2 < length) {
|
||||
Version.ECB ecb2 = a2[i2];
|
||||
int i4 = i3;
|
||||
int i5 = 0;
|
||||
while (i5 < ecb2.a()) {
|
||||
int b = ecb2.b();
|
||||
dataBlockArr[i4] = new DataBlock(b, new byte[a.b() + b]);
|
||||
i5++;
|
||||
i4++;
|
||||
}
|
||||
i2++;
|
||||
i3 = i4;
|
||||
}
|
||||
int length2 = dataBlockArr[0].b.length;
|
||||
int length3 = dataBlockArr.length - 1;
|
||||
while (length3 >= 0 && dataBlockArr[length3].b.length != length2) {
|
||||
length3--;
|
||||
}
|
||||
int i6 = length3 + 1;
|
||||
int b2 = length2 - a.b();
|
||||
int i7 = 0;
|
||||
int i8 = 0;
|
||||
while (i7 < b2) {
|
||||
int i9 = i8;
|
||||
int i10 = 0;
|
||||
while (i10 < i3) {
|
||||
dataBlockArr[i10].b[i7] = bArr[i9];
|
||||
i10++;
|
||||
i9++;
|
||||
}
|
||||
i7++;
|
||||
i8 = i9;
|
||||
}
|
||||
int i11 = i6;
|
||||
while (i11 < i3) {
|
||||
dataBlockArr[i11].b[b2] = bArr[i8];
|
||||
i11++;
|
||||
i8++;
|
||||
}
|
||||
int length4 = dataBlockArr[0].b.length;
|
||||
while (b2 < length4) {
|
||||
int i12 = i8;
|
||||
int i13 = 0;
|
||||
while (i13 < i3) {
|
||||
dataBlockArr[i13].b[i13 < i6 ? b2 : b2 + 1] = bArr[i12];
|
||||
i13++;
|
||||
i12++;
|
||||
}
|
||||
b2++;
|
||||
i8 = i12;
|
||||
}
|
||||
return dataBlockArr;
|
||||
}
|
||||
|
||||
int b() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
byte[] a() {
|
||||
return this.b;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user