Search in sources :

Example 16 with ParsedResult

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");
    }
}
Also used : AddressBookParsedResult(com.google.zxing.client.result.AddressBookParsedResult) Bundle(android.os.Bundle) InputStream(java.io.InputStream) ParsedResult(com.google.zxing.client.result.ParsedResult) AddressBookParsedResult(com.google.zxing.client.result.AddressBookParsedResult) ByteArrayOutputStream(java.io.ByteArrayOutputStream) IOException(java.io.IOException) Uri(android.net.Uri) WriterException(com.google.zxing.WriterException) Result(com.google.zxing.Result) ParsedResult(com.google.zxing.client.result.ParsedResult) AddressBookParsedResult(com.google.zxing.client.result.AddressBookParsedResult)

Example 17 with ParsedResult

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);
}
Also used : ParsedResult(com.google.zxing.client.result.ParsedResult) UnsupportedEncodingException(java.io.UnsupportedEncodingException)

Example 18 with ParsedResult

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;
}
Also used : CardPresenter(com.github.barcodeeye.scan.api.CardPresenter) ArrayList(java.util.ArrayList) ParsedResult(com.google.zxing.client.result.ParsedResult) ISBNParsedResult(com.google.zxing.client.result.ISBNParsedResult) Intent(android.content.Intent)

Aggregations

ParsedResult (com.google.zxing.client.result.ParsedResult)18 Result (com.google.zxing.Result)8 Uri (android.net.Uri)6 Bundle (android.os.Bundle)6 WriterException (com.google.zxing.WriterException)6 AddressBookParsedResult (com.google.zxing.client.result.AddressBookParsedResult)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)6 IOException (java.io.IOException)6 InputStream (java.io.InputStream)6 UnsupportedEncodingException (java.io.UnsupportedEncodingException)6 Intent (android.content.Intent)4 CardPresenter (com.github.barcodeeye.scan.api.CardPresenter)3 ArrayList (java.util.ArrayList)3 BinaryBitmap (com.google.zxing.BinaryBitmap)2 BufferedImage (java.awt.image.BufferedImage)2 BufferedImageLuminanceSource (com.google.zxing.BufferedImageLuminanceSource)1 LuminanceSource (com.google.zxing.LuminanceSource)1 MultiFormatReader (com.google.zxing.MultiFormatReader)1 NotFoundException (com.google.zxing.NotFoundException)1 ReaderException (com.google.zxing.ReaderException)1