[SCM] Multi-format 1D/2D barcode image processing library branch, upstream, updated. 24d4480bc48cf9eabf7b2bd2f528248b0e458809

srowen srowen at 59b500cc-1b3d-0410-9834-0bbf25fbcc57
Wed Aug 4 01:32:18 UTC 2010


The following commit has been merged in the upstream branch:
commit df9df215c09a6787961d0200de2638d169991af4
Author: srowen <srowen at 59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Date:   Fri Jun 18 12:58:57 2010 +0000

    Issues 155.2 -- add %f for format
    
    git-svn-id: http://zxing.googlecode.com/svn/trunk@1445 59b500cc-1b3d-0410-9834-0bbf25fbcc57

diff --git a/android/res/values-cs/strings.xml b/android/res/values-cs/strings.xml
index 1652d4f..8653266 100644
--- a/android/res/values-cs/strings.xml
+++ b/android/res/values-cs/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Skenování a ušetřit mnoho čárových kódů nepřetržitě</string>
   <string name="preferences_bulk_mode_title">Bulk režimu skenování</string>
   <string name="preferences_copy_to_clipboard_title">Kopírovat do schránky.</string>
-  <string name="preferences_custom_product_search_summary">Použít % jako zástupný symbol pro ID produktu</string>
+  <string name="preferences_custom_product_search_summary">Použijte %s jako zástupný symbol pro ID produktu, a %f pro formát</string>
   <string name="preferences_custom_product_search_title">Vlastní vyhledávání URL.</string>
   <string name="preferences_decode_1D_title">Dekódovat 1D kódy</string>
   <string name="preferences_decode_QR_title">Dekódovat QR kódy</string>
-  <string name="preferences_front_light_summary">Povolte přední světlo, pokud je k dispozici</string>
+  <string name="preferences_front_light_summary">Zlepšuje skenování při slabém osvětlení na některých telefonech, ale může způsobit oslnění. Nefunguje na všech telefonech.</string>
   <string name="preferences_front_light_title">Přední světla</string>
   <string name="preferences_general_title">Hlavní nastavení</string>
   <string name="preferences_name">Nastavení</string>
diff --git a/android/res/values-da/strings.xml b/android/res/values-da/strings.xml
index 9c728d7..f5235cb 100644
--- a/android/res/values-da/strings.xml
+++ b/android/res/values-da/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Scan og spare mange stregkoder kontinuerligt</string>
   <string name="preferences_bulk_mode_title">Bulk scanningstilstand</string>
   <string name="preferences_copy_to_clipboard_title">Kopiér til udklipsholder</string>
-  <string name="preferences_custom_product_search_summary">Use %s as a placeholder for the product ID</string>
+  <string name="preferences_custom_product_search_summary">Brug %s som en pladsholder for produkt-id, og %f for format</string>
   <string name="preferences_custom_product_search_title">Brugerdefineret søge URL</string>
   <string name="preferences_decode_1D_title">Oversæt 1D stregkoder</string>
   <string name="preferences_decode_QR_title">Oversæt QR Koder</string>
-  <string name="preferences_front_light_summary">Forbedrer scanning i svagt lys på nogle telefoner, men kan forårsage blænding.</string>
+  <string name="preferences_front_light_summary">Forbedrer scanning i svagt lys på nogle telefoner, men kan forårsage blænding. Virker ikke på alle telefoner.</string>
   <string name="preferences_front_light_title">Brug frontlys</string>
   <string name="preferences_general_title">Generelle indstillinger</string>
   <string name="preferences_name">Indstillinger</string>
diff --git a/android/res/values-de/strings.xml b/android/res/values-de/strings.xml
index 5bf7d50..204c94f 100644
--- a/android/res/values-de/strings.xml
+++ b/android/res/values-de/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Scannen und speichern viele Barcodes kontinuierlich</string>
   <string name="preferences_bulk_mode_title">Bulk-Scan-Modus</string>
   <string name="preferences_copy_to_clipboard_title">In Zwischenablage kopieren</string>
-  <string name="preferences_custom_product_search_summary">Verwenden Sie %s als Platzhalter für die Produkt-ID</string>
+  <string name="preferences_custom_product_search_summary">Verwenden Sie %s als Platzhalter für die Produkt-ID und %f für die Format</string>
   <string name="preferences_custom_product_search_title">Eigene Such-URL</string>
   <string name="preferences_decode_1D_title">Dekodiere 1D Barcodes</string>
   <string name="preferences_decode_QR_title">Dekodiere QR Codes</string>
-  <string name="preferences_front_light_summary">Aktivieren Sie vor Licht, wenn verfügbar</string>
+  <string name="preferences_front_light_summary">Erhöht Scannen bei schwachem Licht bei einigen Mobiltelefonen, kann aber Blendung verursachen. Funktioniert nicht auf allen Handys funktionieren.</string>
   <string name="preferences_front_light_title">Vor Licht</string>
   <string name="preferences_general_title">Allgemeine Einstellungen</string>
   <string name="preferences_name">Einstellungen</string>
diff --git a/android/res/values-es/strings.xml b/android/res/values-es/strings.xml
index 82f19b2..6711028 100644
--- a/android/res/values-es/strings.xml
+++ b/android/res/values-es/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Escanear y guardar muchos códigos de barras de forma continua</string>
   <string name="preferences_bulk_mode_title">Bulk modo de exploración</string>
   <string name="preferences_copy_to_clipboard_title">Copiar al portapapeles</string>
-  <string name="preferences_custom_product_search_summary">Usar %s como un marcador de posición para el identificador de producto</string>
+  <string name="preferences_custom_product_search_summary">Use %s como un marcador de posición para el identificador del producto, y %f para el formato</string>
   <string name="preferences_custom_product_search_title">Búsqueda de productos con URL personalizada</string>
   <string name="preferences_decode_1D_title">Descodificar códigos de barras 1D</string>
   <string name="preferences_decode_QR_title">Descodificar códigos QR</string>
-  <string name="preferences_front_light_summary">Activar luz delantera si está disponible</string>
+  <string name="preferences_front_light_summary">Activar luz delantera si está disponible, pero puede causar deslumbramiento. No funciona en todos los teléfonos.</string>
   <string name="preferences_front_light_title">Luz delantera</string>
   <string name="preferences_general_title">Configuración general</string>
   <string name="preferences_name">Configuración</string>
diff --git a/android/res/values-fi/strings.xml b/android/res/values-fi/strings.xml
index f6dde5a..975b766 100644
--- a/android/res/values-fi/strings.xml
+++ b/android/res/values-fi/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Skannaa ja tallenna monet viivakoodeja jatkuvasti</string>
   <string name="preferences_bulk_mode_title">Bulk skannaustilassa</string>
   <string name="preferences_copy_to_clipboard_title">Kopioi leikepöydälle</string>
-  <string name="preferences_custom_product_search_summary">Käytä %s paikkana tuotetunnukselle</string>
+  <string name="preferences_custom_product_search_summary">Käytä %s paikkana tuotetunnukselle tunnus ja %f muoto</string>
   <string name="preferences_custom_product_search_title">Mukautettu hakukone</string>
   <string name="preferences_decode_1D_title">Dekoodaa 1D viivakoodeja</string>
   <string name="preferences_decode_QR_title">Dekoodaa QR koodeja</string>
-  <string name="preferences_front_light_summary">Activoi valo edessä, jos käytettävissä</string>
+  <string name="preferences_front_light_summary">Activoi valo edessä, jos käytettävissä, mutta saattaa aiheuttaa häikäisyä. Ei toimi kaikissa puhelimissa.</string>
   <string name="preferences_front_light_title">Valo edessä</string>
   <string name="preferences_general_title">Yleiset asetukset</string>
   <string name="preferences_name">Asetukset</string>
diff --git a/android/res/values-fr/strings.xml b/android/res/values-fr/strings.xml
index 98dcf25..e8582fb 100644
--- a/android/res/values-fr/strings.xml
+++ b/android/res/values-fr/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">codes à barres de numérisation et de sauver de nombreuses continu</string>
   <string name="preferences_bulk_mode_title">En vrac mode de balayage</string>
   <string name="preferences_copy_to_clipboard_title">Copier dans le presse papier</string>
-  <string name="preferences_custom_product_search_summary">Utiliser %s à la place de l\'identifiant du produit</string>
+  <string name="preferences_custom_product_search_summary">Utiliser %s à la place de l\'identifiant du produit, et %f pour le format</string>
   <string name="preferences_custom_product_search_title">URL personnalisée de recherche</string>
   <string name="preferences_decode_1D_title">Décoder les codes barres 1D</string>
   <string name="preferences_decode_QR_title">Décoder les codes QR</string>
-  <string name="preferences_front_light_summary">Activer phare avant si disponible</string>
+  <string name="preferences_front_light_summary">Activer phare avant si disponible, mais peut provoquer des reflets. Ne fonctionne pas sur tous les téléphones.</string>
   <string name="preferences_front_light_title">Phare avant</string>
   <string name="preferences_general_title">Paramètres généraux</string>
   <string name="preferences_name">Paramètres</string>
diff --git a/android/res/values-hu/strings.xml b/android/res/values-hu/strings.xml
index c30c071..a2f6a4a 100644
--- a/android/res/values-hu/strings.xml
+++ b/android/res/values-hu/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Beolvasni és elmenteni több vonalkód folyamatosan</string>
   <string name="preferences_bulk_mode_title">Tömeges scan üzemmód</string>
   <string name="preferences_copy_to_clipboard_title">Másolás a vágólapra</string>
-  <string name="preferences_custom_product_search_summary">Használja a %s helyktöltést a termék azonosító helyén</string>
+  <string name="preferences_custom_product_search_summary">Használja a %s helyktöltést a termék azonosító helyén, és %f esetében formátum</string>
   <string name="preferences_custom_product_search_title">Egyedi keresés URL</string>
   <string name="preferences_decode_1D_title">1D vonalkódok megfejtése</string>
   <string name="preferences_decode_QR_title">QR-kódok megfejtése</string>
-  <string name="preferences_front_light_summary">Javítja a szkennelést kevés fény mellett néhány telefonon, de csillogást okozhat</string>
+  <string name="preferences_front_light_summary">Javítja a szkennelést kevés fény mellett néhány telefonon, de csillogást okozhat. Nem működik a telefon minden.</string>
   <string name="preferences_front_light_title">Elülső lámpa használata</string>
   <string name="preferences_general_title">Általános beállítások</string>
   <string name="preferences_name">Beállítások</string>
diff --git a/android/res/values-it/strings.xml b/android/res/values-it/strings.xml
index f125225..54ac070 100644
--- a/android/res/values-it/strings.xml
+++ b/android/res/values-it/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">scansione di codici a barre e salvare molte continuamente</string>
   <string name="preferences_bulk_mode_title">Bulk modalità di scansione</string>
   <string name="preferences_copy_to_clipboard_title">Copia negli appunti</string>
-  <string name="preferences_custom_product_search_summary">Utilizza %s come segnaposto per l\'ID del prodotto</string>
+  <string name="preferences_custom_product_search_summary">Utilizza %s come segnaposto per l\'ID del prodotto, e per il formato %f</string>
   <string name="preferences_custom_product_search_title">URL ricerca prodotto personalizzata</string>
   <string name="preferences_decode_1D_title">Decodifica codice a barre 1D</string>
   <string name="preferences_decode_QR_title">Decodifica codici QR</string>
-  <string name="preferences_front_light_summary">Consentire la luce anteriore, se disponibile</string>
+  <string name="preferences_front_light_summary">Consentire la luce anteriore, se disponibile, ma può provocare abbagliamento. Non funziona su tutti i telefoni.</string>
   <string name="preferences_front_light_title">Luce anteriore</string>
   <string name="preferences_general_title">Impostazioni generali</string>
   <string name="preferences_name">Impostazioni</string>
diff --git a/android/res/values-nl/strings.xml b/android/res/values-nl/strings.xml
index cbdd82a..6397293 100644
--- a/android/res/values-nl/strings.xml
+++ b/android/res/values-nl/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Scannen en opslaan vele barcodes continu</string>
   <string name="preferences_bulk_mode_title">Bulk scan mode</string>
   <string name="preferences_copy_to_clipboard_title">Kopieer naar plakbord</string>
-  <string name="preferences_custom_product_search_summary">Gebruik %s voor de plaats van het product ID</string>
+  <string name="preferences_custom_product_search_summary">Gebruik %s voor de plaats van het product ID en %f voor formaat</string>
   <string name="preferences_custom_product_search_title">Zoek aangepaste URL</string>
   <string name="preferences_decode_1D_title">Decodeer 1D barcodes</string>
   <string name="preferences_decode_QR_title">Decodeer QR codes</string>
-  <string name="preferences_front_light_summary">Inschakelen voorzijde licht, indien beschikbaar</string>
+  <string name="preferences_front_light_summary">Inschakelen voorzijde licht, indien beschikbaar, maar kan leiden tot verblinding. Werkt niet op alle telefoons.</string>
   <string name="preferences_front_light_title">Voorzijde licht</string>
   <string name="preferences_general_title">Basisinstellingen</string>
   <string name="preferences_name">Instellingen</string>
diff --git a/android/res/values-pl/strings.xml b/android/res/values-pl/strings.xml
index cfdba67..3be4e14 100644
--- a/android/res/values-pl/strings.xml
+++ b/android/res/values-pl/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Skanowanie i zapisywanie wielu kodów kreskowych ciągle</string>
   <string name="preferences_bulk_mode_title">Luzem tryb skanowania</string>
   <string name="preferences_copy_to_clipboard_title">Kopiuj do schowka</string>
-  <string name="preferences_custom_product_search_summary">Użyj %s jako zamiennik dla ID produktu</string>
+  <string name="preferences_custom_product_search_summary">Użyj %s jako zamiennik dla ID produktu, a dla formatu %f</string>
   <string name="preferences_custom_product_search_title">Własny URL wyszukiwania</string>
   <string name="preferences_decode_1D_title">Dekoduj kody 1D</string>
   <string name="preferences_decode_QR_title">Dekoduj kody QR</string>
-  <string name="preferences_front_light_summary">Polepsza skanowanie przy małej ilości światła w niektórych telefonach, ale może powodować odbłysk</string>
+  <string name="preferences_front_light_summary">Polepsza skanowanie przy małej ilości światła w niektórych telefonach, ale może powodować odbłysk. Nie działa na wszystkich telefonach.</string>
   <string name="preferences_front_light_title">Używaj lampy frontowej</string>
   <string name="preferences_general_title">Ustawienia ogólne</string>
   <string name="preferences_name">Ustawienia</string>
diff --git a/android/res/values-pt/strings.xml b/android/res/values-pt/strings.xml
index c25ac16..39c965b 100644
--- a/android/res/values-pt/strings.xml
+++ b/android/res/values-pt/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Digitalizar e salvar muitas barras continuamente</string>
   <string name="preferences_bulk_mode_title">Bulk modo de digitalização</string>
   <string name="preferences_copy_to_clipboard_title">Copiar para a área de transferência</string>
-  <string name="preferences_custom_product_search_summary">Usar %s como marcador de posição para o ID do produto</string>
+  <string name="preferences_custom_product_search_summary">Use %s como um espaço reservado para a identificação do produto, e para o formato %f</string>
   <string name="preferences_custom_product_search_title">URL de pesquisa personalizada </string>
   <string name="preferences_decode_1D_title">Descodificar código de barras 1D</string>
   <string name="preferences_decode_QR_title">Descodificar códigos QR</string>
-  <string name="preferences_front_light_summary">Melhora a digitalização em baixa luminosidade em alguns aparelhos, mas pode causar ofuscamento</string>
+  <string name="preferences_front_light_summary">Melhora a digitalização em baixa luminosidade em alguns aparelhos, mas pode causar ofuscamento. Não funciona em todos os telefones.</string>
   <string name="preferences_front_light_title">Use a luz da frente</string>
   <string name="preferences_general_title">Definições Gerais</string>
   <string name="preferences_name">Definições</string>
diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml
index 00e98b6..9e25024 100644
--- a/android/res/values-ru/strings.xml
+++ b/android/res/values-ru/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Сканировать и сохранить многие штрих-кодов постоянно</string>
   <string name="preferences_bulk_mode_title">Массовое сканирование</string>
   <string name="preferences_copy_to_clipboard_title">Копировать в буфер обмена</string>
-  <string name="preferences_custom_product_search_summary">%s будет заменён на ID товара</string>
+  <string name="preferences_custom_product_search_summary">%s будет заменён на ID товара, и %f для формата</string>
   <string name="preferences_custom_product_search_title">URL пользовательского поиска</string>
   <string name="preferences_decode_1D_title">Распознавать линейные штрих-коды</string>
   <string name="preferences_decode_QR_title">Распознавать QR-коды</string>
-  <string name="preferences_front_light_summary">Включите свет, если передние доступно</string>
+  <string name="preferences_front_light_summary">Включите свет, если передние доступно. Не работает на всех телефонах.</string>
   <string name="preferences_front_light_title">Передние омыватели</string>
   <string name="preferences_general_title">Общие настройки</string>
   <string name="preferences_name">Настройки</string>
diff --git a/android/res/values-sv/strings.xml b/android/res/values-sv/strings.xml
index 7da81fa..1175da2 100644
--- a/android/res/values-sv/strings.xml
+++ b/android/res/values-sv/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Skanna och spara många streckkoder kontinuerligt</string>
   <string name="preferences_bulk_mode_title">Bulk skanningsläget</string>
   <string name="preferences_copy_to_clipboard_title">Kopiera till klippbordet</string>
-  <string name="preferences_custom_product_search_summary">Skriv %s där produktens ID ska placeras</string>
+  <string name="preferences_custom_product_search_summary">Skriv %s där produktens ID ska placeras, och %f för format</string>
   <string name="preferences_custom_product_search_title">Anpassad sök-URL</string>
   <string name="preferences_decode_1D_title">Avkoda 1D steckkod</string>
   <string name="preferences_decode_QR_title">Avkoda QR-koder</string>
-  <string name="preferences_front_light_summary">Aktivera ljuset framför, om det finns</string>
+  <string name="preferences_front_light_summary">Aktivera ljuset framför, om det finns. Fungerar inte på alla telefoner.</string>
   <string name="preferences_front_light_title">Ljuset framför</string>
   <string name="preferences_general_title">Grundläggande installningar</string>
   <string name="preferences_name">Inställningar</string>
diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
index eab75ab..81efca1 100755
--- a/android/res/values/strings.xml
+++ b/android/res/values/strings.xml
@@ -94,11 +94,11 @@
   <string name="preferences_bulk_mode_summary">Scan and save many barcodes continuously</string>
   <string name="preferences_bulk_mode_title">Bulk scan mode</string>
   <string name="preferences_copy_to_clipboard_title">Copy to clipboard</string>
-  <string name="preferences_custom_product_search_summary">Use %s as a placeholder for the product ID</string>
+  <string name="preferences_custom_product_search_summary">Use %s as a placeholder for the product ID, and %f for format</string>
   <string name="preferences_custom_product_search_title">Custom search URL</string>
   <string name="preferences_decode_1D_title">Decode 1D barcodes</string>
   <string name="preferences_decode_QR_title">Decode QR Codes</string>
-  <string name="preferences_front_light_summary">Improves scanning in low light on some phones, but may cause glare</string>
+  <string name="preferences_front_light_summary">Improves scanning in low light on some phones, but may cause glare. Does not work on all phones.</string>
   <string name="preferences_front_light_title">Use front light</string>
   <string name="preferences_general_title">General settings</string>
   <string name="preferences_name">Settings</string>
diff --git a/android/src/com/google/zxing/client/android/result/ISBNResultHandler.java b/android/src/com/google/zxing/client/android/result/ISBNResultHandler.java
index bf3ec78..c492a1c 100644
--- a/android/src/com/google/zxing/client/android/result/ISBNResultHandler.java
+++ b/android/src/com/google/zxing/client/android/result/ISBNResultHandler.java
@@ -16,6 +16,7 @@
 
 package com.google.zxing.client.android.result;
 
+import com.google.zxing.Result;
 import com.google.zxing.client.android.R;
 import com.google.zxing.client.result.ISBNParsedResult;
 import com.google.zxing.client.result.ParsedResult;
@@ -37,11 +38,8 @@ public final class ISBNResultHandler extends ResultHandler {
       R.string.button_google_shopper
   };
 
-  private final String customProductSearch;
-
-  public ISBNResultHandler(Activity activity, ParsedResult result) {
-    super(activity, result);
-    customProductSearch = parseCustomSearchURL();
+  public ISBNResultHandler(Activity activity, ParsedResult result, Result rawResult) {
+    super(activity, result, rawResult);
   }
 
   @Override
@@ -52,7 +50,7 @@ public final class ISBNResultHandler extends ResultHandler {
 
   @Override
   public int getButtonText(int index) {
-    if (index == buttons.length - 1 && customProductSearch != null) {
+    if (index == buttons.length - 1 && hasCustomProductSearch()) {
       return R.string.button_custom_product_search;
     }
     return buttons[index];
@@ -74,9 +72,8 @@ public final class ISBNResultHandler extends ResultHandler {
             searchBookContents(isbnResult.getISBN());
             break;
           case 3:
-            if (customProductSearch != null) {
-              String url = customProductSearch.replace("%s", isbnResult.getISBN());
-              openURL(url);
+            if (hasCustomProductSearch()) {
+              openURL(fillInCustomSearchURL(isbnResult.getISBN()));
             } else {
               openGoogleShopper(isbnResult.getISBN());
             }
diff --git a/android/src/com/google/zxing/client/android/result/ProductResultHandler.java b/android/src/com/google/zxing/client/android/result/ProductResultHandler.java
index 7ad14d3..2136977 100644
--- a/android/src/com/google/zxing/client/android/result/ProductResultHandler.java
+++ b/android/src/com/google/zxing/client/android/result/ProductResultHandler.java
@@ -16,6 +16,7 @@
 
 package com.google.zxing.client.android.result;
 
+import com.google.zxing.Result;
 import com.google.zxing.client.android.R;
 import com.google.zxing.client.result.ParsedResult;
 import com.google.zxing.client.result.ProductParsedResult;
@@ -37,16 +38,13 @@ public final class ProductResultHandler extends ResultHandler {
       R.string.button_custom_product_search,
   };
 
-  private final String customProductSearch;
-
-  public ProductResultHandler(Activity activity, ParsedResult result) {
-    super(activity, result);
-    customProductSearch = parseCustomSearchURL();
+  public ProductResultHandler(Activity activity, ParsedResult result, Result rawResult) {
+    super(activity, result, rawResult);
   }
 
   @Override
   public int getButtonCount() {
-    return customProductSearch != null ? buttons.length : buttons.length - 1;
+    return hasCustomProductSearch() ? buttons.length : buttons.length - 1;
   }
 
   @Override
@@ -70,8 +68,7 @@ public final class ProductResultHandler extends ResultHandler {
             openGoogleShopper(productResult.getNormalizedProductID());
             break;
           case 3:
-            String url = customProductSearch.replace("%s", productResult.getNormalizedProductID());
-            openURL(url);
+            openURL(fillInCustomSearchURL(productResult.getNormalizedProductID()));
             break;
         }
       }
diff --git a/android/src/com/google/zxing/client/android/result/ResultHandler.java b/android/src/com/google/zxing/client/android/result/ResultHandler.java
index 5f0f28f..db9e235 100644
--- a/android/src/com/google/zxing/client/android/result/ResultHandler.java
+++ b/android/src/com/google/zxing/client/android/result/ResultHandler.java
@@ -16,6 +16,7 @@
 
 package com.google.zxing.client.android.result;
 
+import com.google.zxing.Result;
 import com.google.zxing.client.android.Contents;
 import com.google.zxing.client.android.Intents;
 import com.google.zxing.client.android.LocaleManager;
@@ -71,6 +72,8 @@ public abstract class ResultHandler {
 
   private final ParsedResult result;
   private final Activity activity;
+  private final Result rawResult;
+  private final String customProductSearch;
 
   private final DialogInterface.OnClickListener shopperMarketListener =
       new DialogInterface.OnClickListener() {
@@ -81,14 +84,24 @@ public abstract class ResultHandler {
   };
 
   ResultHandler(Activity activity, ParsedResult result) {
+    this(activity, result, null);
+  }
+
+  ResultHandler(Activity activity, ParsedResult result, Result rawResult) {
     this.result = result;
     this.activity = activity;
+    this.rawResult = rawResult;
+    this.customProductSearch = parseCustomSearchURL();
   }
 
   ParsedResult getResult() {
     return result;
   }
 
+  boolean hasCustomProductSearch() {
+    return customProductSearch != null;
+  }
+
   /**
    * Indicates how many buttons the derived class wants shown.
    *
@@ -398,7 +411,7 @@ public abstract class ResultHandler {
     }
   }
 
-  protected String parseCustomSearchURL() {
+  private String parseCustomSearchURL() {
     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
     String customProductSearch = prefs.getString(PreferencesActivity.KEY_CUSTOM_PRODUCT_SEARCH, null);
     if (customProductSearch != null && customProductSearch.trim().length() == 0) {
@@ -406,4 +419,13 @@ public abstract class ResultHandler {
     }
     return customProductSearch;
   }
+
+  String fillInCustomSearchURL(String text) {
+    String url = customProductSearch.replace("%s", text);
+    if (rawResult != null) {
+      url = url.replace("%f", rawResult.getBarcodeFormat().toString());
+    }
+    return url;
+  }
+
 }
\ No newline at end of file
diff --git a/android/src/com/google/zxing/client/android/result/ResultHandlerFactory.java b/android/src/com/google/zxing/client/android/result/ResultHandlerFactory.java
index 933ac6a..2df5cf1 100644
--- a/android/src/com/google/zxing/client/android/result/ResultHandlerFactory.java
+++ b/android/src/com/google/zxing/client/android/result/ResultHandlerFactory.java
@@ -40,7 +40,7 @@ public final class ResultHandlerFactory {
     } else if (type.equals(ParsedResultType.EMAIL_ADDRESS)) {
       return new EmailAddressResultHandler(activity, result);
     } else if (type.equals(ParsedResultType.PRODUCT)) {
-      return new ProductResultHandler(activity, result);
+      return new ProductResultHandler(activity, result, rawResult);
     } else if (type.equals(ParsedResultType.URI)) {
       return new URIResultHandler(activity, result);
     } else if (type.equals(ParsedResultType.WIFI)) {
@@ -56,7 +56,7 @@ public final class ResultHandlerFactory {
     } else if (type.equals(ParsedResultType.CALENDAR)) {
       return new CalendarResultHandler(activity, result);
     } else if (type.equals(ParsedResultType.ISBN)) {
-      return new ISBNResultHandler(activity, result);
+      return new ISBNResultHandler(activity, result, rawResult);
     } else {
       // The TextResultHandler is the fallthrough for unsupported formats.
       return new TextResultHandler(activity, result);
diff --git a/android/src/com/google/zxing/client/android/result/TextResultHandler.java b/android/src/com/google/zxing/client/android/result/TextResultHandler.java
index 0a47730..8315342 100644
--- a/android/src/com/google/zxing/client/android/result/TextResultHandler.java
+++ b/android/src/com/google/zxing/client/android/result/TextResultHandler.java
@@ -35,16 +35,13 @@ public final class TextResultHandler extends ResultHandler {
       R.string.button_custom_product_search,
   };
 
-  private final String customProductSearch;
-
   public TextResultHandler(Activity activity, ParsedResult result) {
     super(activity, result);
-    customProductSearch = parseCustomSearchURL();
   }
 
   @Override
   public int getButtonCount() {
-    return customProductSearch != null ? buttons.length : buttons.length - 1;
+    return hasCustomProductSearch() ? buttons.length : buttons.length - 1;
   }
 
   @Override
@@ -66,8 +63,7 @@ public final class TextResultHandler extends ResultHandler {
         shareBySMS(text);
         break;
       case 3:
-        String url = customProductSearch.replace("%s", text);
-        openURL(url);
+        openURL(fillInCustomSearchURL(text));
         break;
     }
   }

-- 
Multi-format 1D/2D barcode image processing library



More information about the Pkg-google-commits mailing list