diff --git a/android/res/values-cs/strings.xml b/android/res/values-cs/strings.xml
index 1652d4fa0..86532669d 100644
--- a/android/res/values-cs/strings.xml
+++ b/android/res/values-cs/strings.xml
@@ -94,11 +94,11 @@
Skenování a ušetřit mnoho čárových kódů nepřetržitě
Bulk režimu skenování
Kopírovat do schránky.
- Použít % jako zástupný symbol pro ID produktu
+ Použijte %s jako zástupný symbol pro ID produktu, a %f pro formát
Vlastní vyhledávání URL.
Dekódovat 1D kódy
Dekódovat QR kódy
- Povolte přední světlo, pokud je k dispozici
+ 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.
Přední světla
Hlavní nastavení
Nastavení
diff --git a/android/res/values-da/strings.xml b/android/res/values-da/strings.xml
index 9c728d75e..f5235cb5d 100644
--- a/android/res/values-da/strings.xml
+++ b/android/res/values-da/strings.xml
@@ -94,11 +94,11 @@
Scan og spare mange stregkoder kontinuerligt
Bulk scanningstilstand
Kopiér til udklipsholder
- Use %s as a placeholder for the product ID
+ Brug %s som en pladsholder for produkt-id, og %f for format
Brugerdefineret søge URL
Oversæt 1D stregkoder
Oversæt QR Koder
- Forbedrer scanning i svagt lys på nogle telefoner, men kan forårsage blænding.
+ Forbedrer scanning i svagt lys på nogle telefoner, men kan forårsage blænding. Virker ikke på alle telefoner.
Brug frontlys
Generelle indstillinger
Indstillinger
diff --git a/android/res/values-de/strings.xml b/android/res/values-de/strings.xml
index 5bf7d5001..204c94fbe 100644
--- a/android/res/values-de/strings.xml
+++ b/android/res/values-de/strings.xml
@@ -94,11 +94,11 @@
Scannen und speichern viele Barcodes kontinuierlich
Bulk-Scan-Modus
In Zwischenablage kopieren
- Verwenden Sie %s als Platzhalter für die Produkt-ID
+ Verwenden Sie %s als Platzhalter für die Produkt-ID und %f für die Format
Eigene Such-URL
Dekodiere 1D Barcodes
Dekodiere QR Codes
- Aktivieren Sie vor Licht, wenn verfügbar
+ Erhöht Scannen bei schwachem Licht bei einigen Mobiltelefonen, kann aber Blendung verursachen. Funktioniert nicht auf allen Handys funktionieren.
Vor Licht
Allgemeine Einstellungen
Einstellungen
diff --git a/android/res/values-es/strings.xml b/android/res/values-es/strings.xml
index 82f19b261..67110284e 100644
--- a/android/res/values-es/strings.xml
+++ b/android/res/values-es/strings.xml
@@ -94,11 +94,11 @@
Escanear y guardar muchos códigos de barras de forma continua
Bulk modo de exploración
Copiar al portapapeles
- Usar %s como un marcador de posición para el identificador de producto
+ Use %s como un marcador de posición para el identificador del producto, y %f para el formato
Búsqueda de productos con URL personalizada
Descodificar códigos de barras 1D
Descodificar códigos QR
- Activar luz delantera si está disponible
+ Activar luz delantera si está disponible, pero puede causar deslumbramiento. No funciona en todos los teléfonos.
Luz delantera
Configuración general
Configuración
diff --git a/android/res/values-fi/strings.xml b/android/res/values-fi/strings.xml
index f6dde5a7e..975b76646 100644
--- a/android/res/values-fi/strings.xml
+++ b/android/res/values-fi/strings.xml
@@ -94,11 +94,11 @@
Skannaa ja tallenna monet viivakoodeja jatkuvasti
Bulk skannaustilassa
Kopioi leikepöydälle
- Käytä %s paikkana tuotetunnukselle
+ Käytä %s paikkana tuotetunnukselle tunnus ja %f muoto
Mukautettu hakukone
Dekoodaa 1D viivakoodeja
Dekoodaa QR koodeja
- Activoi valo edessä, jos käytettävissä
+ Activoi valo edessä, jos käytettävissä, mutta saattaa aiheuttaa häikäisyä. Ei toimi kaikissa puhelimissa.
Valo edessä
Yleiset asetukset
Asetukset
diff --git a/android/res/values-fr/strings.xml b/android/res/values-fr/strings.xml
index 98dcf25f5..e8582fb9b 100644
--- a/android/res/values-fr/strings.xml
+++ b/android/res/values-fr/strings.xml
@@ -94,11 +94,11 @@
codes à barres de numérisation et de sauver de nombreuses continu
En vrac mode de balayage
Copier dans le presse papier
- Utiliser %s à la place de l\'identifiant du produit
+ Utiliser %s à la place de l\'identifiant du produit, et %f pour le format
URL personnalisée de recherche
Décoder les codes barres 1D
Décoder les codes QR
- Activer phare avant si disponible
+ Activer phare avant si disponible, mais peut provoquer des reflets. Ne fonctionne pas sur tous les téléphones.
Phare avant
Paramètres généraux
Paramètres
diff --git a/android/res/values-hu/strings.xml b/android/res/values-hu/strings.xml
index c30c07129..a2f6a4a7f 100644
--- a/android/res/values-hu/strings.xml
+++ b/android/res/values-hu/strings.xml
@@ -94,11 +94,11 @@
Beolvasni és elmenteni több vonalkód folyamatosan
Tömeges scan üzemmód
Másolás a vágólapra
- Használja a %s helyktöltést a termék azonosító helyén
+ Használja a %s helyktöltést a termék azonosító helyén, és %f esetében formátum
Egyedi keresés URL
1D vonalkódok megfejtése
QR-kódok megfejtése
- Javítja a szkennelést kevés fény mellett néhány telefonon, de csillogást okozhat
+ 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.
Elülső lámpa használata
Általános beállítások
Beállítások
diff --git a/android/res/values-it/strings.xml b/android/res/values-it/strings.xml
index f12522527..54ac0703f 100644
--- a/android/res/values-it/strings.xml
+++ b/android/res/values-it/strings.xml
@@ -94,11 +94,11 @@
scansione di codici a barre e salvare molte continuamente
Bulk modalità di scansione
Copia negli appunti
- Utilizza %s come segnaposto per l\'ID del prodotto
+ Utilizza %s come segnaposto per l\'ID del prodotto, e per il formato %f
URL ricerca prodotto personalizzata
Decodifica codice a barre 1D
Decodifica codici QR
- Consentire la luce anteriore, se disponibile
+ Consentire la luce anteriore, se disponibile, ma può provocare abbagliamento. Non funziona su tutti i telefoni.
Luce anteriore
Impostazioni generali
Impostazioni
diff --git a/android/res/values-nl/strings.xml b/android/res/values-nl/strings.xml
index cbdd82a10..63972931f 100644
--- a/android/res/values-nl/strings.xml
+++ b/android/res/values-nl/strings.xml
@@ -94,11 +94,11 @@
Scannen en opslaan vele barcodes continu
Bulk scan mode
Kopieer naar plakbord
- Gebruik %s voor de plaats van het product ID
+ Gebruik %s voor de plaats van het product ID en %f voor formaat
Zoek aangepaste URL
Decodeer 1D barcodes
Decodeer QR codes
- Inschakelen voorzijde licht, indien beschikbaar
+ Inschakelen voorzijde licht, indien beschikbaar, maar kan leiden tot verblinding. Werkt niet op alle telefoons.
Voorzijde licht
Basisinstellingen
Instellingen
diff --git a/android/res/values-pl/strings.xml b/android/res/values-pl/strings.xml
index cfdba6737..3be4e14e9 100644
--- a/android/res/values-pl/strings.xml
+++ b/android/res/values-pl/strings.xml
@@ -94,11 +94,11 @@
Skanowanie i zapisywanie wielu kodów kreskowych ciągle
Luzem tryb skanowania
Kopiuj do schowka
- Użyj %s jako zamiennik dla ID produktu
+ Użyj %s jako zamiennik dla ID produktu, a dla formatu %f
Własny URL wyszukiwania
Dekoduj kody 1D
Dekoduj kody QR
- Polepsza skanowanie przy małej ilości światła w niektórych telefonach, ale może powodować odbłysk
+ 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.
Używaj lampy frontowej
Ustawienia ogólne
Ustawienia
diff --git a/android/res/values-pt/strings.xml b/android/res/values-pt/strings.xml
index c25ac16a9..39c965b54 100644
--- a/android/res/values-pt/strings.xml
+++ b/android/res/values-pt/strings.xml
@@ -94,11 +94,11 @@
Digitalizar e salvar muitas barras continuamente
Bulk modo de digitalização
Copiar para a área de transferência
- Usar %s como marcador de posição para o ID do produto
+ Use %s como um espaço reservado para a identificação do produto, e para o formato %f
URL de pesquisa personalizada
Descodificar código de barras 1D
Descodificar códigos QR
- Melhora a digitalização em baixa luminosidade em alguns aparelhos, mas pode causar ofuscamento
+ Melhora a digitalização em baixa luminosidade em alguns aparelhos, mas pode causar ofuscamento. Não funciona em todos os telefones.
Use a luz da frente
Definições Gerais
Definições
diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml
index 00e98b673..9e250247d 100644
--- a/android/res/values-ru/strings.xml
+++ b/android/res/values-ru/strings.xml
@@ -94,11 +94,11 @@
Сканировать и сохранить многие штрих-кодов постоянно
Массовое сканирование
Копировать в буфер обмена
- %s будет заменён на ID товара
+ %s будет заменён на ID товара, и %f для формата
URL пользовательского поиска
Распознавать линейные штрих-коды
Распознавать QR-коды
- Включите свет, если передние доступно
+ Включите свет, если передние доступно. Не работает на всех телефонах.
Передние омыватели
Общие настройки
Настройки
diff --git a/android/res/values-sv/strings.xml b/android/res/values-sv/strings.xml
index 7da81facb..1175da20b 100644
--- a/android/res/values-sv/strings.xml
+++ b/android/res/values-sv/strings.xml
@@ -94,11 +94,11 @@
Skanna och spara många streckkoder kontinuerligt
Bulk skanningsläget
Kopiera till klippbordet
- Skriv %s där produktens ID ska placeras
+ Skriv %s där produktens ID ska placeras, och %f för format
Anpassad sök-URL
Avkoda 1D steckkod
Avkoda QR-koder
- Aktivera ljuset framför, om det finns
+ Aktivera ljuset framför, om det finns. Fungerar inte på alla telefoner.
Ljuset framför
Grundläggande installningar
Inställningar
diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
index eab75abc0..81efca1c5 100755
--- a/android/res/values/strings.xml
+++ b/android/res/values/strings.xml
@@ -94,11 +94,11 @@
Scan and save many barcodes continuously
Bulk scan mode
Copy to clipboard
- Use %s as a placeholder for the product ID
+ Use %s as a placeholder for the product ID, and %f for format
Custom search URL
Decode 1D barcodes
Decode QR Codes
- Improves scanning in low light on some phones, but may cause glare
+ Improves scanning in low light on some phones, but may cause glare. Does not work on all phones.
Use front light
General settings
Settings
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 bf3ec78fa..c492a1cef 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 7ad14d359..213697781 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 5f0f28f7e..db9e23526 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 933ac6a9a..2df5cf184 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 0a4773043..831534213 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;
}
}