From: srowen Date: Thu, 21 Jan 2010 19:11:28 +0000 (+0000) Subject: Issue 325, 327 X-Git-Url: http://git.rot13.org/?p=zxing.git;a=commitdiff_plain;h=874dbf2b0db53eb21563619ebdf2c9b84f79a0e6;ds=sidebyside Issue 325, 327 git-svn-id: http://zxing.googlecode.com/svn/trunk@1189 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- diff --git a/android/res/values-de/strings.xml b/android/res/values-de/strings.xml index 33557890..1d2662c8 100644 --- a/android/res/values-de/strings.xml +++ b/android/res/values-de/strings.xml @@ -99,6 +99,8 @@ URL gefunden Historie Historie löschen + Historie senden + Barcode Scanner Historie Google Book Search Weitergabe mittels Barcode Barcode Scanner v diff --git a/android/res/values-es/strings.xml b/android/res/values-es/strings.xml index 872bf637..671f4da4 100644 --- a/android/res/values-es/strings.xml +++ b/android/res/values-es/strings.xml @@ -99,6 +99,8 @@ URL encontrado Historia Borrar historial + Enviar historia + Historia de Escáner de código de barras Búsqueda de libros de Google Compartir por códigos de barras Escáner de código de barras v diff --git a/android/res/values-fr/strings.xml b/android/res/values-fr/strings.xml index 6e8248c0..a328c0ac 100644 --- a/android/res/values-fr/strings.xml +++ b/android/res/values-fr/strings.xml @@ -99,6 +99,8 @@ URL trouvée Historique Vider l\'historique + Envoyer historique + Historique de Barcode Scanner Recherche Google Livres Partager par code barre Barcode Scanner v diff --git a/android/res/values-it/strings.xml b/android/res/values-it/strings.xml index bbf108ff..3cefaaca 100644 --- a/android/res/values-it/strings.xml +++ b/android/res/values-it/strings.xml @@ -99,6 +99,8 @@ URL trovato Cronologia Cancella cronologia + Invia cronologia + Scansione codice a barre cronologia Ricerca Google Book Condividi tramite codice a barre Scansione codice a barre v diff --git a/android/res/values-ja-rJP/strings.xml b/android/res/values-ja-rJP/strings.xml index c90eb3ec..12b415f0 100644 --- a/android/res/values-ja-rJP/strings.xml +++ b/android/res/values-ja-rJP/strings.xml @@ -99,6 +99,8 @@ URL がヒットしました 歴史 削除履歴 + 歴史を送信 + QRコードスキャナー歴史 Google ブックス バーコードで共有する >QRコードスキャナー v diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml index 96ce1b19..a686d6a3 100644 --- a/android/res/values-ru/strings.xml +++ b/android/res/values-ru/strings.xml @@ -99,6 +99,8 @@ Найден URL История Очистить историю + Отправить историю + Сканер штрих-кодов История Поиск книг Google Поделиться через штрих-код Сканер штрих-кодов версии diff --git a/android/res/values-zh-rCN/strings.xml b/android/res/values-zh-rCN/strings.xml index 1e2287b7..fddad769 100644 --- a/android/res/values-zh-rCN/strings.xml +++ b/android/res/values-zh-rCN/strings.xml @@ -99,6 +99,8 @@ 找到URL 历史 删除历史 + 发送历史 + 条码扫描器历史 Google图书搜索 通过条码分享 条码扫描器 diff --git a/android/res/values-zh-rTW/strings.xml b/android/res/values-zh-rTW/strings.xml index 8bdf4b73..89a73de7 100644 --- a/android/res/values-zh-rTW/strings.xml +++ b/android/res/values-zh-rTW/strings.xml @@ -99,6 +99,8 @@ 找到URL 歷史 刪除歷史 + 發送歷史 + 條碼掃描器歷史 Google圖書搜索 通過條碼分享 條碼掃描器 diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index 64d7c546..e099a31c 100755 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -100,6 +100,8 @@ Found URL History Clear history + Send history + Barcode Scanner history Google Book Search Share via barcode Barcode Scanner v diff --git a/android/src/com/google/zxing/client/android/Intents.java b/android/src/com/google/zxing/client/android/Intents.java index bea5306e..10e088ac 100755 --- a/android/src/com/google/zxing/client/android/Intents.java +++ b/android/src/com/google/zxing/client/android/Intents.java @@ -70,6 +70,11 @@ public final class Intents { */ public static final String RESULT_FORMAT = "SCAN_RESULT_FORMAT"; + /** + * Setting this to false will not save scanned codes in the history. + */ + public static final String SAVE_HISTORY = "SAVE_HISTORY"; + private Scan() { } } diff --git a/android/src/com/google/zxing/client/android/history/HistoryManager.java b/android/src/com/google/zxing/client/android/history/HistoryManager.java index 0b061524..5bc5c331 100644 --- a/android/src/com/google/zxing/client/android/history/HistoryManager.java +++ b/android/src/com/google/zxing/client/android/history/HistoryManager.java @@ -19,15 +19,19 @@ package com.google.zxing.client.android.history; import android.app.AlertDialog; import android.content.ContentValues; import android.content.DialogInterface; +import android.content.Intent; +import android.content.res.Resources; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.Cursor; +import android.net.Uri; import android.os.Message; import java.util.List; import java.util.ArrayList; import com.google.zxing.BarcodeFormat; +import com.google.zxing.client.android.Intents; import com.google.zxing.client.android.R; import com.google.zxing.client.android.CaptureActivity; import com.google.zxing.Result; @@ -39,7 +43,7 @@ import com.google.zxing.Result; */ public final class HistoryManager { - private static final int MAX_ITEMS = 20; + private static final int MAX_ITEMS = 50; private static final String[] TEXT_COL_PROJECTION = { DBHelper.TEXT_COL }; private static final String[] TEXT_FORMAT_COL_PROJECTION = { DBHelper.TEXT_COL, DBHelper.FORMAT_COL }; private static final String[] ID_COL_PROJECTION = { DBHelper.ID_COL }; @@ -75,15 +79,24 @@ public final class HistoryManager { public AlertDialog buildAlert() { final List items = getHistoryItems(); - final String[] dialogItems = new String[items.size() + 1]; + final String[] dialogItems = new String[items.size() + 2]; for (int i = 0; i < items.size(); i++) { dialogItems[i] = items.get(i).getText(); } - dialogItems[dialogItems.length - 1] = activity.getResources().getString(R.string.history_clear_text); + final Resources res = activity.getResources(); + dialogItems[dialogItems.length - 2] = res.getString(R.string.history_send); + dialogItems[dialogItems.length - 1] = res.getString(R.string.history_clear_text); DialogInterface.OnClickListener clickListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int i) { if (i == dialogItems.length - 1) { clearHistory(); + } else if (i == dialogItems.length - 2) { + String history = buildHistory(); + Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); + intent.putExtra(Intent.EXTRA_SUBJECT, res.getString(R.string.history_email_title)); + intent.putExtra(Intent.EXTRA_TEXT, history); + intent.setType("text/plain"); + activity.startActivity(intent); } else { Result result = items.get(i); Message message = Message.obtain(activity.getHandler(), R.id.decode_succeeded, result); @@ -99,6 +112,10 @@ public final class HistoryManager { public void addHistoryItem(Result result) { + if (!activity.getIntent().getBooleanExtra(Intents.Scan.SAVE_HISTORY, true)) { + return; // Do not save this item to the history. + } + SQLiteOpenHelper helper = new DBHelper(activity); SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = null; @@ -149,6 +166,28 @@ public final class HistoryManager { } } + private String buildHistory() { + StringBuilder historyText = new StringBuilder(); + SQLiteOpenHelper helper = new DBHelper(activity); + SQLiteDatabase db = helper.getReadableDatabase(); + Cursor cursor = null; + try { + cursor = db.query(DBHelper.TABLE_NAME, + TEXT_COL_PROJECTION, + null, null, null, null, + DBHelper.TIMESTAMP_COL + " DESC"); + while (cursor.moveToNext()) { + historyText.append(cursor.getString(0)).append('\n'); + } + } finally { + if (cursor != null) { + cursor.close(); + } + db.close(); + } + return historyText.toString(); + } + void clearHistory() { SQLiteOpenHelper helper = new DBHelper(activity); SQLiteDatabase db = helper.getWritableDatabase();