From 10b391a3e5879969501e7580eff794b3243ef53e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 23 Jun 2016 15:27:21 -0500 Subject: [PATCH] Update task metadata from TagSettingsActivity --- .../astrid/actfm/TagSettingsActivity.java | 7 +++- .../com/todoroo/astrid/dao/TagDataDao.java | 4 -- .../astrid/service/StartupService.java | 37 +------------------ 3 files changed, 7 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java b/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java index 0ea2cf1aa..0d7a7f1f7 100644 --- a/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java +++ b/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java @@ -26,6 +26,7 @@ import com.todoroo.andlib.sql.Criterion; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.TagDataDao; +import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.helper.UUIDHelper; import com.todoroo.astrid.tags.TagFilterExposer; @@ -35,7 +36,6 @@ import com.todoroo.astrid.tags.TaskToTagMetadata; import org.tasks.R; import org.tasks.dialogs.DialogBuilder; import org.tasks.injection.ActivityComponent; -import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.ThemedInjectingAppCompatActivity; import org.tasks.ui.MenuColorizer; @@ -148,6 +148,11 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity { tagData.setName(newName); tagService.rename(tagData.getUuid(), newName); tagDataDao.persist(tagData); + Metadata m = new Metadata(); + m.setValue(TaskToTagMetadata.TAG_NAME, newName); + metadataDao.update(Criterion.and( + MetadataDao.MetadataCriteria.withKey(TaskToTagMetadata.KEY), + TaskToTagMetadata.TAG_UUID.eq(tagData.getUUID())), m); setResult(RESULT_OK, new Intent(AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED).putExtra(EXTRA_TAG_UUID, tagData.getUuid())); } diff --git a/src/main/java/com/todoroo/astrid/dao/TagDataDao.java b/src/main/java/com/todoroo/astrid/dao/TagDataDao.java index 9aa6a6ad9..3ee40e2f0 100644 --- a/src/main/java/com/todoroo/astrid/dao/TagDataDao.java +++ b/src/main/java/com/todoroo/astrid/dao/TagDataDao.java @@ -82,10 +82,6 @@ public class TagDataDao { dao.saveExisting(tagData); } - public void addListener(DatabaseDao.ModelUpdateListener modelUpdateListener) { - dao.addListener(modelUpdateListener); - } - public void delete(long id) { dao.delete(id); } diff --git a/src/main/java/com/todoroo/astrid/service/StartupService.java b/src/main/java/com/todoroo/astrid/service/StartupService.java index 87165cbfc..08ee3f268 100644 --- a/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -6,26 +6,17 @@ package com.todoroo.astrid.service; import android.app.Activity; -import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.database.sqlite.SQLiteException; -import com.todoroo.andlib.data.DatabaseDao.ModelUpdateListener; -import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.backup.TasksXmlImporter; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.DatabaseUpdateListener; -import com.todoroo.astrid.dao.MetadataDao; -import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; -import com.todoroo.astrid.dao.TagDataDao; -import com.todoroo.astrid.data.Metadata; -import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.provider.Astrid2TaskProvider; import com.todoroo.astrid.provider.Astrid3ContentProvider; -import com.todoroo.astrid.tags.TaskToTagMetadata; import org.tasks.Broadcaster; import org.tasks.BuildConfig; @@ -51,9 +42,7 @@ public class StartupService { // --- application startup - private final TagDataDao tagDataDao; private final Database database; - private final MetadataDao metadataDao; private final Preferences preferences; private final TasksXmlImporter xmlImporter; private final TaskDeleter taskDeleter; @@ -61,12 +50,9 @@ public class StartupService { private final DialogBuilder dialogBuilder; @Inject - public StartupService(TagDataDao tagDataDao, Database database, MetadataDao metadataDao, - Preferences preferences, TasksXmlImporter xmlImporter, + public StartupService(Database database, Preferences preferences, TasksXmlImporter xmlImporter, TaskDeleter taskDeleter, Broadcaster broadcaster, DialogBuilder dialogBuilder) { - this.tagDataDao = tagDataDao; this.database = database; - this.metadataDao = metadataDao; this.preferences = preferences; this.xmlImporter = xmlImporter; this.taskDeleter = taskDeleter; @@ -122,8 +108,6 @@ public class StartupService { preferences.setCurrentVersion(currentVersion); } - initializeDatabaseListeners(); - // perform startup activities in a background thread new Thread(new Runnable() { @Override @@ -139,25 +123,6 @@ public class StartupService { hasStartedUp = true; } - private void initializeDatabaseListeners() { - // This listener makes sure that when a tag's name is created or changed, - // the corresponding metadata will also update - tagDataDao.addListener(new ModelUpdateListener() { - @Override - public void onModelUpdated(TagData model) { - ContentValues values = model.getSetValues(); - Metadata m = new Metadata(); - if (values != null) { - if (values.containsKey(TagData.NAME.name)) { - m.setValue(TaskToTagMetadata.TAG_NAME, model.getName()); - metadataDao.update(Criterion.and(MetadataCriteria.withKey(TaskToTagMetadata.KEY), - TaskToTagMetadata.TAG_UUID.eq(model.getUUID())), m); - } - } - } - }); - } - /** * If database exists, no tasks but metadata, and a backup file exists, restore it */