(db) add the Update feature for each Draft we already have

This commit is contained in:
torrentcome 2017-07-07 12:32:47 +02:00
parent 42d94633cf
commit 47dccd81e7
2 changed files with 14 additions and 7 deletions

View file

@ -158,7 +158,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
private InputContentInfoCompat currentInputContentInfo;
private int currentFlags;
private Uri photoUploadUri;
private int savedTootUid = 0;
/**
* The Target object must be stored as a member field or method and cannot be an anonymous class otherwise this won't work as expected. The reason is that Picasso accepts this parameter as a weak memory reference. Because anonymous classes are eligible for garbage collection when there are no more references, the network request to fetch the image may finish after this anonymous class has already been reclaimed. See this Stack Overflow discussion for more details.
@ -311,8 +311,12 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
// try to redo a list of media
ArrayList<String> playersList = new Gson().fromJson(savedJsonUrls,
new TypeToken<ArrayList<String>>() {
}.getType());
}.getType());
}
int savedTootUid = intent.getIntExtra("saved_toot_uid", 0);
if (savedTootUid != 0) {
this.savedTootUid = savedTootUid;
}
}
@ -547,7 +551,12 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
tootDao.insert(toot);
if (savedTootUid != 0) {
toot.setUid(savedTootUid);
tootDao.updateToot(toot);
} else {
tootDao.insert(toot);
}
return null;
}
}.execute();

View file

@ -3,6 +3,7 @@ package com.keylesspalace.tusky.db;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Delete;
import android.arch.persistence.room.Insert;
import android.arch.persistence.room.OnConflictStrategy;
import android.arch.persistence.room.Query;
import android.arch.persistence.room.Update;
@ -23,12 +24,9 @@ public interface TootDao {
@Query("SELECT * FROM TootEntity")
List<TootEntity> loadAll();
@Query("SELECT * FROM TootEntity WHERE uid IN (:uid)")
List<TootEntity> loadAllByTootId(int... uid);
// u
@Update
void updateToot(TootEntity... toot);
void updateToot(TootEntity toot);
// d
@Delete