Slight tweak to last change -- parse MODE value even when there's no SCAN_FORMATS. Also be extra paranoid about other call to String.split()

git-svn-id: https://zxing.googlecode.com/svn/trunk@1324 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
srowen 2010-04-29 22:18:25 +00:00
parent 43dfd0053f
commit ed7f1b83aa

View file

@ -264,17 +264,17 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
}
private static Vector<BarcodeFormat> parseDecodeFormats(Intent intent) {
String formats = intent.getStringExtra(Intents.Scan.SCAN_FORMATS);
if (formats != null) {
return parseDecodeFormats(Arrays.asList(COMMA_PATTERN.split(formats)),
intent.getStringExtra(Intents.Scan.MODE));
List<String> scanFormats = null;
String scanFormatsString = intent.getStringExtra(Intents.Scan.SCAN_FORMATS);
if (scanFormatsString != null) {
scanFormats = Arrays.asList(COMMA_PATTERN.split(scanFormatsString));
}
return null;
return parseDecodeFormats(scanFormats, intent.getStringExtra(Intents.Scan.MODE));
}
private static Vector<BarcodeFormat> parseDecodeFormats(Uri inputUri) {
List<String> formats = inputUri.getQueryParameters(Intents.Scan.SCAN_FORMATS);
if (formats.size() == 1){
if (formats != null && formats.size() == 1 && formats.get(0) != null){
formats = Arrays.asList(COMMA_PATTERN.split(formats.get(0)));
}
return parseDecodeFormats(formats, inputUri.getQueryParameter(Intents.Scan.MODE));