Fix bug #14494292 Settings>Search>Recent searches keep on populating the same keyword if it is searched again
- do the right thing: remove the previous search queries from the Database if needed so that there will be no dupe Change-Id: I707eb518ea7c2a64b1407c62ff164e249fe03fa9
This commit is contained in:
@@ -1217,9 +1217,16 @@ public class Index {
|
|||||||
|
|
||||||
long lastInsertedRowId = -1;
|
long lastInsertedRowId = -1;
|
||||||
try {
|
try {
|
||||||
lastInsertedRowId =
|
// First, delete all saved queries that are the same
|
||||||
database.replaceOrThrow(Tables.TABLE_SAVED_QUERIES, null, values);
|
database.delete(Tables.TABLE_SAVED_QUERIES,
|
||||||
|
IndexDatabaseHelper.SavedQueriesColums.QUERY + " = ?",
|
||||||
|
new String[] { params[0] });
|
||||||
|
|
||||||
|
// Second, insert the saved query
|
||||||
|
lastInsertedRowId =
|
||||||
|
database.insertOrThrow(Tables.TABLE_SAVED_QUERIES, null, values);
|
||||||
|
|
||||||
|
// Last, remove "old" saved queries
|
||||||
final long delta = lastInsertedRowId - MAX_SAVED_SEARCH_QUERY;
|
final long delta = lastInsertedRowId - MAX_SAVED_SEARCH_QUERY;
|
||||||
if (delta > 0) {
|
if (delta > 0) {
|
||||||
int count = database.delete(Tables.TABLE_SAVED_QUERIES, "rowId <= ?",
|
int count = database.delete(Tables.TABLE_SAVED_QUERIES, "rowId <= ?",
|
||||||
|
Reference in New Issue
Block a user