Don't update url unless we have a reason to

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 8 
src/main/java/eu/siacs/conversations/persistance/FileBackend.java     | 2 
2 files changed, 6 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java 🔗

@@ -802,9 +802,11 @@ public class DatabaseBackend extends SQLiteOpenHelper {
         SQLiteDatabase db = this.getWritableDatabase();
         ContentValues cv = new ContentValues();
         cv.put("cid", cid.toString());
-        cv.put("path", file.getAbsolutePath());
-        cv.put("url", url);
-        db.insertWithOnConflict("cheogram.cids", null, cv, SQLiteDatabase.CONFLICT_REPLACE);
+        if (file != null) cv.put("path", file.getAbsolutePath());
+        if (url != null) cv.put("url", url);
+        if (db.update("cheogram.cids", cv, "cid=?", new String[]{cid.toString()}) < 1) {
+            db.insertWithOnConflict("cheogram.cids", null, cv, SQLiteDatabase.CONFLICT_REPLACE);
+        }
     }
 
     public void blockMedia(Cid cid) {

src/main/java/eu/siacs/conversations/persistance/FileBackend.java 🔗

@@ -1823,7 +1823,7 @@ public class FileBackend {
         if (updateCids) {
             try {
                 for (int i = 0; i < cids.length; i++) {
-                    mXmppConnectionService.saveCid(cids[i], file, url);
+                    mXmppConnectionService.saveCid(cids[i], file);
                 }
             } catch (XmppConnectionService.BlockedMediaException e) { }
         }