diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 4c9c6042e..adc20a048 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -279,7 +279,7 @@ android:theme="@style/Tasks.Dialog" /> - * - */ - public static class DeleteActivity extends InjectingActivity { - - @Inject StoreObjectDao storeObjectDao; - - @Override - protected void onCreate(Bundle savedInstanceState) { - setTheme(android.R.style.Theme_Dialog); - super.onCreate(savedInstanceState); - - final long id = getIntent().getLongExtra(TOKEN_FILTER_ID, -1); - if(id == -1) { - finish(); - return; - } - final String name = getIntent().getStringExtra(TOKEN_FILTER_NAME); - - DialogUtilities.okCancelDialog(this, - getString(R.string.DLG_delete_this_item_question, name), - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - storeObjectDao.delete(id); - setResult(RESULT_OK); - finish(); - } - }, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - setResult(RESULT_CANCELED); - finish(); - } - }); - } - } } diff --git a/src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java b/src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java new file mode 100644 index 000000000..51240d365 --- /dev/null +++ b/src/main/java/com/todoroo/astrid/core/DeleteFilterActivity.java @@ -0,0 +1,64 @@ +package com.todoroo.astrid.core; + +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; + +import com.todoroo.andlib.utility.DialogUtilities; +import com.todoroo.astrid.api.AstridApiConstants; +import com.todoroo.astrid.api.Filter; +import com.todoroo.astrid.dao.StoreObjectDao; +import com.todoroo.astrid.data.StoreObject; + +import org.tasks.R; +import org.tasks.injection.InjectingActivity; + +import javax.inject.Inject; + +/** + * Simple activity for deleting stuff + * + * @author Tim Su + */ +public class DeleteFilterActivity extends InjectingActivity { + + public static final String TOKEN_STORE_OBJECT = "store_object"; + + @Inject StoreObjectDao storeObjectDao; + + @Override + protected void onCreate(Bundle savedInstanceState) { + setTheme(android.R.style.Theme_Dialog); + super.onCreate(savedInstanceState); + + final long id = getIntent().getLongExtra(CustomFilterExposer.TOKEN_FILTER_ID, -1); + if (id == -1) { + finish(); + return; + } + final StoreObject storeObject = storeObjectDao.getById(id); + final Filter filter = SavedFilter.load(storeObject); + final String name = filter.title; + + DialogUtilities.okCancelDialog(this, + getString(R.string.DLG_delete_this_item_question, name), + new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + storeObjectDao.delete(id); + setResult(RESULT_OK, new Intent(AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED) {{ + putExtra(TOKEN_STORE_OBJECT, storeObject); + }}); + finish(); + } + }, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + setResult(RESULT_CANCELED); + finish(); + } + }); + } +} diff --git a/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java b/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java index 09f543c52..fdb695175 100644 --- a/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java +++ b/src/main/java/com/todoroo/astrid/dao/StoreObjectDao.java @@ -82,5 +82,9 @@ public class StoreObjectDao { public void createNew(StoreObject storeObject) { dao.createNew(storeObject); } + + public StoreObject getById(long id) { + return dao.fetch(id, StoreObject.PROPERTIES); + } } diff --git a/src/main/java/com/todoroo/astrid/data/StoreObject.java b/src/main/java/com/todoroo/astrid/data/StoreObject.java index d127ca9a5..0735a2884 100644 --- a/src/main/java/com/todoroo/astrid/data/StoreObject.java +++ b/src/main/java/com/todoroo/astrid/data/StoreObject.java @@ -79,7 +79,7 @@ public class StoreObject extends AbstractModel { // --- parcelable helpers - private static final Creator CREATOR = new ModelCreator<>(StoreObject.class); + public static final Creator CREATOR = new ModelCreator<>(StoreObject.class); public String getType() { return getValue(TYPE); diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java index cb5b38c52..9b00d1e9d 100644 --- a/src/main/java/org/tasks/injection/ActivityModule.java +++ b/src/main/java/org/tasks/injection/ActivityModule.java @@ -13,8 +13,8 @@ import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.backup.BackupPreferences; import com.todoroo.astrid.calls.MissedCallActivity; import com.todoroo.astrid.core.CustomFilterActivity; -import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.core.DefaultsPreferences; +import com.todoroo.astrid.core.DeleteFilterActivity; import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.files.AACRecordingActivity; import com.todoroo.astrid.gcal.CalendarAlarmListCreator; @@ -43,7 +43,7 @@ import dagger.Provides; CustomFilterActivity.class, MissedCallActivity.class, CalendarAlarmListCreator.class, - CustomFilterExposer.DeleteActivity.class, + DeleteFilterActivity.class, CalendarReminderActivity.class, DeleteTagActivity.class, RenameTagActivity.class,