70 lines
2.7 KiB
Java
70 lines
2.7 KiB
Java
package com.google.zxing.client.android;
|
|
|
|
import android.content.Intent;
|
|
import android.net.Uri;
|
|
import com.google.zxing.BarcodeFormat;
|
|
import java.util.Arrays;
|
|
import java.util.Collection;
|
|
import java.util.EnumSet;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.regex.Pattern;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class DecodeFormatManager {
|
|
private static final Map<String, Set<BarcodeFormat>> i;
|
|
private static final Pattern a = Pattern.compile(",");
|
|
static final Set<BarcodeFormat> e = EnumSet.of(BarcodeFormat.QR_CODE);
|
|
static final Set<BarcodeFormat> f = EnumSet.of(BarcodeFormat.DATA_MATRIX);
|
|
static final Set<BarcodeFormat> g = EnumSet.of(BarcodeFormat.AZTEC);
|
|
static final Set<BarcodeFormat> h = EnumSet.of(BarcodeFormat.PDF_417);
|
|
public static final Set<BarcodeFormat> b = EnumSet.of(BarcodeFormat.UPC_A, BarcodeFormat.UPC_E, BarcodeFormat.EAN_13, BarcodeFormat.EAN_8, BarcodeFormat.RSS_14, BarcodeFormat.RSS_EXPANDED);
|
|
static final Set<BarcodeFormat> c = EnumSet.of(BarcodeFormat.CODE_39, BarcodeFormat.CODE_93, BarcodeFormat.CODE_128, BarcodeFormat.ITF, BarcodeFormat.CODABAR);
|
|
private static final Set<BarcodeFormat> d = EnumSet.copyOf((Collection) b);
|
|
|
|
static {
|
|
d.addAll(c);
|
|
i = new HashMap();
|
|
i.put("ONE_D_MODE", d);
|
|
i.put("PRODUCT_MODE", b);
|
|
i.put("QR_CODE_MODE", e);
|
|
i.put("DATA_MATRIX_MODE", f);
|
|
i.put("AZTEC_MODE", g);
|
|
i.put("PDF417_MODE", h);
|
|
}
|
|
|
|
static Set<BarcodeFormat> a(Intent intent) {
|
|
String stringExtra = intent.getStringExtra("SCAN_FORMATS");
|
|
return a(stringExtra != null ? Arrays.asList(a.split(stringExtra)) : null, intent.getStringExtra("SCAN_MODE"));
|
|
}
|
|
|
|
static Set<BarcodeFormat> a(Uri uri) {
|
|
List<String> queryParameters = uri.getQueryParameters("SCAN_FORMATS");
|
|
if (queryParameters != null && queryParameters.size() == 1 && queryParameters.get(0) != null) {
|
|
queryParameters = Arrays.asList(a.split(queryParameters.get(0)));
|
|
}
|
|
return a(queryParameters, uri.getQueryParameter("SCAN_MODE"));
|
|
}
|
|
|
|
private static Set<BarcodeFormat> a(Iterable<String> iterable, String str) {
|
|
if (iterable != null) {
|
|
EnumSet noneOf = EnumSet.noneOf(BarcodeFormat.class);
|
|
try {
|
|
Iterator<String> it = iterable.iterator();
|
|
while (it.hasNext()) {
|
|
noneOf.add(BarcodeFormat.valueOf(it.next()));
|
|
}
|
|
return noneOf;
|
|
} catch (IllegalArgumentException unused) {
|
|
}
|
|
}
|
|
if (str != null) {
|
|
return i.get(str);
|
|
}
|
|
return null;
|
|
}
|
|
}
|