Fix tags being created without remote id

pull/645/head
Alex Baker 8 years ago
parent b9d7d8de6d
commit 02a66298f6

@ -292,7 +292,7 @@ public class TasksXmlImporter {
tagData = new TagData(); tagData = new TagData();
tagData.setRemoteId(tagUid); tagData.setRemoteId(tagUid);
tagData.setName(name); tagData.setName(name);
tagDataDao.insert(tagData); tagDataDao.createNew(tagData);
} }
} }
} else if ("gtasks".equals(key)) { } else if ("gtasks".equals(key)) {
@ -362,7 +362,7 @@ public class TasksXmlImporter {
private void parseTagdata() { private void parseTagdata() {
TagData tagData = new TagData(new XmlReader(xpp)); TagData tagData = new TagData(new XmlReader(xpp));
if (tagDataDao.getByUuid(tagData.getRemoteId()) == null) { if (tagDataDao.getByUuid(tagData.getRemoteId()) == null) {
tagDataDao.insert(tagData); tagDataDao.createNew(tagData);
} }
} }
} }

@ -135,7 +135,7 @@ public class TaskCreator {
return task; return task;
} }
public static void setDefaultReminders(Preferences preferences, Task task) { private static void setDefaultReminders(Preferences preferences, Task task) {
task.setReminderPeriod(DateUtilities.ONE_HOUR * task.setReminderPeriod(DateUtilities.ONE_HOUR *
preferences.getIntegerFromString(R.string.p_rmd_default_random_hours, preferences.getIntegerFromString(R.string.p_rmd_default_random_hours,
0)); 0));
@ -148,7 +148,7 @@ public class TaskCreator {
if (tagData == null) { if (tagData == null) {
tagData = new TagData(); tagData = new TagData();
tagData.setName(tag); tagData.setName(tag);
tagDataDao.persist(tagData); tagDataDao.createNew(tagData);
} }
Tag link = new Tag(task.getId(), task.getUuid(), tagData.getName(), tagData.getRemoteId()); Tag link = new Tag(task.getId(), task.getUuid(), tagData.getName(), tagData.getRemoteId());
tagDao.insert(link); tagDao.insert(link);

@ -383,7 +383,7 @@ public final class TagsControlSet extends TaskEditControlFragment {
private boolean synchronizeTags(long taskId, String taskUuid) { private boolean synchronizeTags(long taskId, String taskUuid) {
for (TagData tagData : selectedTags) { for (TagData tagData : selectedTags) {
if (Task.NO_UUID.equals(tagData.getRemoteId())) { if (Task.NO_UUID.equals(tagData.getRemoteId())) {
tagDataDao.persist(tagData); tagDataDao.createNew(tagData);
} }
} }
Set<TagData> existingHash = newHashSet(tagService.getTagDataForTask(taskUuid)); Set<TagData> existingHash = newHashSet(tagService.getTagDataForTask(taskUuid));

@ -187,13 +187,13 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
if (isNewTag) { if (isNewTag) {
tagData.setName(newName); tagData.setName(newName);
tagData.setColor(selectedTheme); tagData.setColor(selectedTheme);
tagDataDao.persist(tagData); tagDataDao.createNew(tagData);
setResult(RESULT_OK, new Intent().putExtra(TaskListActivity.OPEN_FILTER, new TagFilter(tagData))); setResult(RESULT_OK, new Intent().putExtra(TaskListActivity.OPEN_FILTER, new TagFilter(tagData)));
} else if (hasChanges()) { } else if (hasChanges()) {
tagData.setName(newName); tagData.setName(newName);
tagData.setColor(selectedTheme); tagData.setColor(selectedTheme);
tagService.rename(tagData.getRemoteId(), newName); tagService.rename(tagData.getRemoteId(), newName);
tagDataDao.persist(tagData); tagDataDao.update(tagData);
tagDao.rename(tagData.getRemoteId(), newName); tagDao.rename(tagData.getRemoteId(), newName);
setResult(RESULT_OK, new Intent(ACTION_RELOAD).putExtra(TaskListActivity.OPEN_FILTER, new TagFilter(tagData))); setResult(RESULT_OK, new Intent(ACTION_RELOAD).putExtra(TaskListActivity.OPEN_FILTER, new TagFilter(tagData)));
} }

@ -4,6 +4,7 @@ import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Insert; import android.arch.persistence.room.Insert;
import android.arch.persistence.room.OnConflictStrategy; import android.arch.persistence.room.OnConflictStrategy;
import android.arch.persistence.room.Query; import android.arch.persistence.room.Query;
import android.arch.persistence.room.Update;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.UUIDHelper; import com.todoroo.astrid.helper.UUIDHelper;
@ -26,23 +27,23 @@ public abstract class TagDataDao {
@Query("SELECT * FROM tagdata WHERE name IS NOT NULL ORDER BY UPPER(name) ASC") @Query("SELECT * FROM tagdata WHERE name IS NOT NULL ORDER BY UPPER(name) ASC")
public abstract List<TagData> tagDataOrderedByName(); public abstract List<TagData> tagDataOrderedByName();
@Insert(onConflict = OnConflictStrategy.REPLACE)
public abstract void persist(TagData tagData);
@Query("UPDATE tagdata SET name = :name WHERE remoteId = :remoteId") @Query("UPDATE tagdata SET name = :name WHERE remoteId = :remoteId")
public abstract void rename(String remoteId, String name); public abstract void rename(String remoteId, String name);
@Query("DELETE FROM tagdata WHERE _id = :id") @Query("DELETE FROM tagdata WHERE _id = :id")
public abstract void delete(Long id); public abstract void delete(Long id);
@Update
public abstract void update(TagData tagData);
@Insert @Insert
public abstract void insert(TagData tag); abstract long insert(TagData tag);
public void createNew(TagData tag) { public void createNew(TagData tag) {
if (Task.isUuidEmpty(tag.getRemoteId())) { if (Task.isUuidEmpty(tag.getRemoteId())) {
tag.setRemoteId(UUIDHelper.newUUID()); tag.setRemoteId(UUIDHelper.newUUID());
} }
insert(tag); tag.setId(insert(tag));
} }
} }

Loading…
Cancel
Save