Allow to choose the conflict algorithm when adding DB entries

This commit is contained in:
Gabriele M
2017-07-04 19:05:04 +02:00
parent 1e89ff8f8d
commit 320112dae4
2 changed files with 5 additions and 4 deletions

View File

@@ -92,7 +92,7 @@ public class UpdatesDbHelper extends SQLiteOpenHelper {
return db.insert(UpdateEntry.TABLE_NAME, null, values); return db.insert(UpdateEntry.TABLE_NAME, null, values);
} }
public long addUpdateWithOnConflict(UpdateDownload update) { public long addUpdateWithOnConflict(UpdateDownload update, int conflictAlgorithm) {
SQLiteDatabase db = getWritableDatabase(); SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(UpdateEntry.COLUMN_NAME_STATUS, update.getPersistentStatus()); values.put(UpdateEntry.COLUMN_NAME_STATUS, update.getPersistentStatus());
@@ -104,8 +104,7 @@ public class UpdatesDbHelper extends SQLiteOpenHelper {
values.put(UpdateEntry.COLUMN_NAME_TYPE, update.getType()); values.put(UpdateEntry.COLUMN_NAME_TYPE, update.getType());
values.put(UpdateEntry.COLUMN_NAME_VERSION, update.getVersion()); values.put(UpdateEntry.COLUMN_NAME_VERSION, update.getVersion());
values.put(UpdateEntry.COLUMN_NAME_SIZE, update.getFileSize()); values.put(UpdateEntry.COLUMN_NAME_SIZE, update.getFileSize());
return db.insertWithOnConflict(UpdateEntry.TABLE_NAME, null, values, return db.insertWithOnConflict(UpdateEntry.TABLE_NAME, null, values, conflictAlgorithm);
SQLiteDatabase.CONFLICT_IGNORE);
} }
public boolean removeUpdate(String downloadId) { public boolean removeUpdate(String downloadId) {

View File

@@ -17,6 +17,7 @@ package org.lineageos.updater.controller;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.SystemClock; import android.os.SystemClock;
import android.support.v4.content.LocalBroadcastManager; import android.support.v4.content.LocalBroadcastManager;
@@ -147,7 +148,8 @@ public class UpdaterController implements UpdaterControllerInt {
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
mUpdatesDbHelper.addUpdateWithOnConflict(update); mUpdatesDbHelper.addUpdateWithOnConflict(update,
SQLiteDatabase.CONFLICT_IGNORE);
} }
}).start(); }).start();
notifyUpdateChange(downloadId); notifyUpdateChange(downloadId);