зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1235637 - Provide a simple way to update history without needing a cursor r=rnewman
This commit is contained in:
Родитель
2f6563fecf
Коммит
944e87f142
|
@ -1011,7 +1011,17 @@ public class BrowserProvider extends SharedBrowserDatabaseProvider {
|
||||||
String[] selectionArgs) {
|
String[] selectionArgs) {
|
||||||
trace("Updating history on URI: " + uri);
|
trace("Updating history on URI: " + uri);
|
||||||
|
|
||||||
int updated = 0;
|
final SQLiteDatabase db = getWritableDatabase(uri);
|
||||||
|
|
||||||
|
if (!values.containsKey(History.DATE_MODIFIED)) {
|
||||||
|
values.put(History.DATE_MODIFIED, System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the simple code path for easy updates.
|
||||||
|
if (!shouldIncrementVisits(uri)) {
|
||||||
|
trace("Updating history meta data only");
|
||||||
|
return db.update(TABLE_HISTORY, values, selection, selectionArgs);
|
||||||
|
}
|
||||||
|
|
||||||
final String[] historyProjection = new String[] {
|
final String[] historyProjection = new String[] {
|
||||||
History._ID, // 0
|
History._ID, // 0
|
||||||
|
@ -1019,27 +1029,22 @@ public class BrowserProvider extends SharedBrowserDatabaseProvider {
|
||||||
History.VISITS // 2
|
History.VISITS // 2
|
||||||
};
|
};
|
||||||
|
|
||||||
final SQLiteDatabase db = getWritableDatabase(uri);
|
|
||||||
final Cursor cursor = db.query(TABLE_HISTORY, historyProjection, selection,
|
final Cursor cursor = db.query(TABLE_HISTORY, historyProjection, selection,
|
||||||
selectionArgs, null, null, null);
|
selectionArgs, null, null, null);
|
||||||
|
|
||||||
try {
|
int updated = 0;
|
||||||
if (!values.containsKey(Bookmarks.DATE_MODIFIED)) {
|
|
||||||
values.put(Bookmarks.DATE_MODIFIED, System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
try {
|
||||||
while (cursor.moveToNext()) {
|
while (cursor.moveToNext()) {
|
||||||
long id = cursor.getLong(0);
|
long id = cursor.getLong(0);
|
||||||
|
|
||||||
trace("Updating history entry with ID: " + id);
|
trace("Updating history entry with ID: " + id);
|
||||||
|
|
||||||
if (shouldIncrementVisits(uri)) {
|
|
||||||
long existing = cursor.getLong(2);
|
long existing = cursor.getLong(2);
|
||||||
Long additional = values.getAsLong(History.VISITS);
|
Long additional = values.getAsLong(History.VISITS);
|
||||||
|
|
||||||
// Increment visit count by a specified amount, or default to increment by 1
|
// Increment visit count by a specified amount, or default to increment by 1
|
||||||
values.put(History.VISITS, existing + ((additional != null) ? additional : 1));
|
values.put(History.VISITS, existing + ((additional != null) ? additional : 1));
|
||||||
}
|
|
||||||
|
|
||||||
updated += db.update(TABLE_HISTORY, values, "_id = ?",
|
updated += db.update(TABLE_HISTORY, values, "_id = ?",
|
||||||
new String[] { Long.toString(id) });
|
new String[] { Long.toString(id) });
|
||||||
|
|
Загрузка…
Ссылка в новой задаче