Fix tags being created without remote id

synthesis
Alex Baker 6 years ago
parent b9d7d8de6d
commit 02a66298f6

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

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

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

@ -187,13 +187,13 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
if (isNewTag) {
tagData.setName(newName);
tagData.setColor(selectedTheme);
tagDataDao.persist(tagData);
tagDataDao.createNew(tagData);
setResult(RESULT_OK, new Intent().putExtra(TaskListActivity.OPEN_FILTER, new TagFilter(tagData)));
} else if (hasChanges()) {
tagData.setName(newName);
tagData.setColor(selectedTheme);
tagService.rename(tagData.getRemoteId(), newName);
tagDataDao.persist(tagData);
tagDataDao.update(tagData);
tagDao.rename(tagData.getRemoteId(), newName);
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.OnConflictStrategy;
import android.arch.persistence.room.Query;
import android.arch.persistence.room.Update;
import com.todoroo.astrid.data.Task;
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")
public abstract List<TagData> tagDataOrderedByName();
@Insert(onConflict = OnConflictStrategy.REPLACE)
public abstract void persist(TagData tagData);
@Query("UPDATE tagdata SET name = :name WHERE remoteId = :remoteId")
public abstract void rename(String remoteId, String name);
@Query("DELETE FROM tagdata WHERE _id = :id")
public abstract void delete(Long id);
@Update
public abstract void update(TagData tagData);
@Insert
public abstract void insert(TagData tag);
abstract long insert(TagData tag);
public void createNew(TagData tag) {
if (Task.isUuidEmpty(tag.getRemoteId())) {
tag.setRemoteId(UUIDHelper.newUUID());
}
insert(tag);
tag.setId(insert(tag));
}
}

Loading…
Cancel
Save