import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
+import android.content.SharedPreferences;
import android.content.res.Resources;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.List;
import java.util.ArrayList;
+import android.preference.PreferenceManager;
import android.util.Log;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.android.Intents;
+import com.google.zxing.client.android.PreferencesActivity;
import com.google.zxing.client.android.R;
import com.google.zxing.client.android.CaptureActivity;
import com.google.zxing.Result;
private static final String TAG = HistoryManager.class.getSimpleName();
private static final int MAX_ITEMS = 50;
- private static final String[] TEXT_COL_PROJECTION = { DBHelper.TEXT_COL };
+ //private static final String[] TEXT_COL_PROJECTION = { DBHelper.TEXT_COL };
private static final String[] GET_ITEM_COL_PROJECTION = {
DBHelper.TEXT_COL,
DBHelper.FORMAT_COL,
return; // Do not save this item to the history.
}
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
+ boolean rememberDuplicates = prefs.getBoolean(PreferencesActivity.KEY_REMEMBER_DUPLICATES, false);
+
+ if (!rememberDuplicates) {
+ deletePrevious(result.getText());
+ }
+
SQLiteOpenHelper helper = new DBHelper(activity);
SQLiteDatabase db = helper.getWritableDatabase();
try {
- // Delete if already exists
- db.delete(DBHelper.TABLE_NAME, DBHelper.TEXT_COL + "=?", new String[] { result.getText() });
// Insert
ContentValues values = new ContentValues();
values.put(DBHelper.TEXT_COL, result.getText());
}
}
+ private void deletePrevious(String text) {
+ SQLiteOpenHelper helper = new DBHelper(activity);
+ SQLiteDatabase db = helper.getWritableDatabase();
+ try {
+ db.delete(DBHelper.TABLE_NAME, DBHelper.TEXT_COL + "=?", new String[] { text });
+ } finally {
+ db.close();
+ }
+ }
+
public void trimHistory() {
SQLiteOpenHelper helper = new DBHelper(activity);
SQLiteDatabase db = helper.getWritableDatabase();