use of com.google.zxing.client.result.ParsedResult in project incubator-weex by apache.
the class QRCodeEncoder method encodeFromStreamExtra.
// Handles send intents from the Contacts app, retrieving a contact as a VCARD.
private void encodeFromStreamExtra(Intent intent) throws WriterException {
format = BarcodeFormat.QR_CODE;
Bundle bundle = intent.getExtras();
if (bundle == null) {
throw new WriterException("No extras");
}
Uri uri = bundle.getParcelable(Intent.EXTRA_STREAM);
if (uri == null) {
throw new WriterException("No EXTRA_STREAM");
}
byte[] vcard;
String vcardString;
InputStream stream = null;
try {
stream = activity.getContentResolver().openInputStream(uri);
if (stream == null) {
throw new WriterException("Can't open stream for " + uri);
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[2048];
int bytesRead;
while ((bytesRead = stream.read(buffer)) > 0) {
baos.write(buffer, 0, bytesRead);
}
vcard = baos.toByteArray();
vcardString = new String(vcard, 0, vcard.length, "UTF-8");
} catch (IOException ioe) {
throw new WriterException(ioe);
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
// continue
}
}
}
Log.d(TAG, "Encoding share intent content:");
Log.d(TAG, vcardString);
Result result = new Result(vcardString, vcard, null, BarcodeFormat.QR_CODE);
ParsedResult parsedResult = ResultParser.parseResult(result);
if (!(parsedResult instanceof AddressBookParsedResult)) {
throw new WriterException("Result was not an address");
}
encodeQRCodeContents((AddressBookParsedResult) parsedResult);
if (contents == null || contents.isEmpty()) {
throw new WriterException("No content to encode");
}
}
use of com.google.zxing.client.result.ParsedResult in project incubator-weex by apache.
the class ResultHandler method fillInCustomSearchURL.
final String fillInCustomSearchURL(String text) {
if (customProductSearch == null) {
// ?
return text;
}
try {
text = URLEncoder.encode(text, "UTF-8");
} catch (UnsupportedEncodingException e) {
// can't happen; UTF-8 is always supported. Continue, I guess, without encoding
}
String url = customProductSearch;
if (rawResult != null) {
// Replace %f but only if it doesn't seem to be a hex escape sequence. This remains
// problematic but avoids the more surprising problem of breaking escapes
url = url.replaceFirst("%f(?![0-9a-f])", rawResult.getBarcodeFormat().toString());
if (url.contains("%t")) {
ParsedResult parsedResultAgain = ResultParser.parseResult(rawResult);
url = url.replace("%t", parsedResultAgain.getType().toString());
}
}
// Replace %s last as it might contain itself %f or %t
return url.replace("%s", text);
}
use of com.google.zxing.client.result.ParsedResult in project BarcodeEye by BarcodeEye.
the class IsbnResultProcessor method getCardResults.
@Override
public List<CardPresenter> getCardResults() {
List<CardPresenter> cardPresenters = new ArrayList<CardPresenter>();
ParsedResult parsedResult = getParsedResult();
String codeValue = parsedResult.getDisplayResult();
for (String key : PRODUCT_SEARCH_ENDPOINTS.keySet()) {
CardPresenter cardPresenter = new CardPresenter();
cardPresenter.setText("Lookup on " + key).setFooter(codeValue);
String url = PRODUCT_SEARCH_ENDPOINTS.get(key);
url = url.replace("{CODE}", codeValue);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
cardPresenter.setPendingIntent(createPendingIntent(getContext(), intent));
if (getPhotoUri() != null) {
cardPresenter.addImage(getPhotoUri());
}
cardPresenters.add(cardPresenter);
}
return cardPresenters;
}
Aggregations