Refresh after filter deletion

pull/253/head
Alex Baker 10 years ago
parent a31137257d
commit 5e1986aed6

@ -279,7 +279,7 @@
android:theme="@style/Tasks.Dialog" /> android:theme="@style/Tasks.Dialog" />
<activity <activity
android:name="com.todoroo.astrid.core.CustomFilterExposer$DeleteActivity" android:name="com.todoroo.astrid.core.DeleteFilterActivity"
android:theme="@style/Tasks.FullTransparent" /> android:theme="@style/Tasks.FullTransparent" />
<activity <activity

@ -31,8 +31,11 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.DeleteFilterActivity;
import com.todoroo.astrid.core.SavedFilter;
import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.GtasksListFragment; import com.todoroo.astrid.gtasks.GtasksListFragment;
@ -360,9 +363,9 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
// Tag renamed or deleted // Tag renamed or deleted
String action = data.getAction(); String action = data.getAction();
String uuid = data.getStringExtra(TagViewFragment.EXTRA_TAG_UUID); String uuid = data.getStringExtra(TagViewFragment.EXTRA_TAG_UUID);
TaskListFragment tlf = getTaskListFragment();
if (AstridApiConstants.BROADCAST_EVENT_TAG_DELETED.equals(action)) { if (AstridApiConstants.BROADCAST_EVENT_TAG_DELETED.equals(action)) {
TaskListFragment tlf = getTaskListFragment();
NavigationDrawerFragment navigationDrawer = getNavigationDrawerFragment(); NavigationDrawerFragment navigationDrawer = getNavigationDrawerFragment();
if (tlf != null) { if (tlf != null) {
TagData tagData = tlf.getActiveTagData(); TagData tagData = tlf.getActiveTagData();
@ -383,7 +386,6 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
navigationDrawer.refresh(); navigationDrawer.refresh();
} }
} else if (AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED.equals(action)) { } else if (AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED.equals(action)) {
TaskListFragment tlf = getTaskListFragment();
if (tlf != null) { if (tlf != null) {
TagData td = tlf.getActiveTagData(); TagData td = tlf.getActiveTagData();
if (td != null && td.getUuid().equals(uuid)) { if (td != null && td.getUuid().equals(uuid)) {
@ -397,6 +399,16 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
} }
} }
NavigationDrawerFragment navigationDrawer = getNavigationDrawerFragment();
if (navigationDrawer != null) {
navigationDrawer.refresh();
}
} else if (AstridApiConstants.BROADCAST_EVENT_FILTER_DELETED.equals(action)) {
StoreObject storeObject = (StoreObject) data.getExtras().get(DeleteFilterActivity.TOKEN_STORE_OBJECT);
Filter filter = SavedFilter.load(storeObject);
if (tlf.getFilter().equals(filter)) {
getIntent().putExtra(TOKEN_SWITCH_TO_FILTER, BuiltInFilterExposer.getMyTasksFilter(getResources())); // Handle in onPostResume()
}
NavigationDrawerFragment navigationDrawer = getNavigationDrawerFragment(); NavigationDrawerFragment navigationDrawer = getNavigationDrawerFragment();
if (navigationDrawer != null) { if (navigationDrawer != null) {
navigationDrawer.refresh(); navigationDrawer.refresh();

@ -131,4 +131,6 @@ public class AstridApiConstants {
*/ */
public static final String BROADCAST_EVENT_TAG_RENAMED = API_PACKAGE + ".TAG_RENAMED"; public static final String BROADCAST_EVENT_TAG_RENAMED = API_PACKAGE + ".TAG_RENAMED";
public static final String BROADCAST_EVENT_FILTER_DELETED = API_PACKAGE + ".FILTER_DELETED";
} }

@ -6,19 +6,15 @@
package com.todoroo.astrid.core; package com.todoroo.astrid.core;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import com.todoroo.andlib.data.Callback; import com.todoroo.andlib.data.Callback;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.data.StoreObject;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingActivity;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -33,8 +29,7 @@ import javax.inject.Inject;
*/ */
public final class CustomFilterExposer { public final class CustomFilterExposer {
private static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$ static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$
private static final String TOKEN_FILTER_NAME = "name"; //$NON-NLS-1$
private final StoreObjectDao storeObjectDao; private final StoreObjectDao storeObjectDao;
private final Context context; private final Context context;
@ -53,9 +48,8 @@ public final class CustomFilterExposer {
public void apply(StoreObject savedFilter) { public void apply(StoreObject savedFilter) {
Filter f = SavedFilter.load(savedFilter); Filter f = SavedFilter.load(savedFilter);
Intent deleteIntent = new Intent(context, DeleteActivity.class); Intent deleteIntent = new Intent(context, DeleteFilterActivity.class);
deleteIntent.putExtra(TOKEN_FILTER_ID, savedFilter.getId()); deleteIntent.putExtra(TOKEN_FILTER_ID, savedFilter.getId());
deleteIntent.putExtra(TOKEN_FILTER_NAME, f.title);
f.contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) }; f.contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) };
f.contextMenuIntents = new Intent[] { deleteIntent }; f.contextMenuIntents = new Intent[] { deleteIntent };
list.add(f); list.add(f);
@ -65,47 +59,4 @@ public final class CustomFilterExposer {
return list; return list;
} }
/**
* Simple activity for deleting stuff
*
* @author Tim Su <tim@todoroo.com>
*
*/
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();
}
});
}
}
} }

@ -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 <tim@todoroo.com>
*/
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();
}
});
}
}

@ -82,5 +82,9 @@ public class StoreObjectDao {
public void createNew(StoreObject storeObject) { public void createNew(StoreObject storeObject) {
dao.createNew(storeObject); dao.createNew(storeObject);
} }
public StoreObject getById(long id) {
return dao.fetch(id, StoreObject.PROPERTIES);
}
} }

@ -79,7 +79,7 @@ public class StoreObject extends AbstractModel {
// --- parcelable helpers // --- parcelable helpers
private static final Creator<StoreObject> CREATOR = new ModelCreator<>(StoreObject.class); public static final Creator<StoreObject> CREATOR = new ModelCreator<>(StoreObject.class);
public String getType() { public String getType() {
return getValue(TYPE); return getValue(TYPE);

@ -13,8 +13,8 @@ import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.backup.BackupPreferences; import com.todoroo.astrid.backup.BackupPreferences;
import com.todoroo.astrid.calls.MissedCallActivity; import com.todoroo.astrid.calls.MissedCallActivity;
import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.CustomFilterExposer;
import com.todoroo.astrid.core.DefaultsPreferences; import com.todoroo.astrid.core.DefaultsPreferences;
import com.todoroo.astrid.core.DeleteFilterActivity;
import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.core.OldTaskPreferences;
import com.todoroo.astrid.files.AACRecordingActivity; import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.gcal.CalendarAlarmListCreator; import com.todoroo.astrid.gcal.CalendarAlarmListCreator;
@ -43,7 +43,7 @@ import dagger.Provides;
CustomFilterActivity.class, CustomFilterActivity.class,
MissedCallActivity.class, MissedCallActivity.class,
CalendarAlarmListCreator.class, CalendarAlarmListCreator.class,
CustomFilterExposer.DeleteActivity.class, DeleteFilterActivity.class,
CalendarReminderActivity.class, CalendarReminderActivity.class,
DeleteTagActivity.class, DeleteTagActivity.class,
RenameTagActivity.class, RenameTagActivity.class,

Loading…
Cancel
Save