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" />
<activity
android:name="com.todoroo.astrid.core.CustomFilterExposer$DeleteActivity"
android:name="com.todoroo.astrid.core.DeleteFilterActivity"
android:theme="@style/Tasks.FullTransparent" />
<activity

@ -31,8 +31,11 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.BuiltInFilterExposer;
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.data.RemoteModel;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.GtasksListFragment;
@ -360,9 +363,9 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
// Tag renamed or deleted
String action = data.getAction();
String uuid = data.getStringExtra(TagViewFragment.EXTRA_TAG_UUID);
TaskListFragment tlf = getTaskListFragment();
if (AstridApiConstants.BROADCAST_EVENT_TAG_DELETED.equals(action)) {
TaskListFragment tlf = getTaskListFragment();
NavigationDrawerFragment navigationDrawer = getNavigationDrawerFragment();
if (tlf != null) {
TagData tagData = tlf.getActiveTagData();
@ -383,7 +386,6 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
navigationDrawer.refresh();
}
} else if (AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED.equals(action)) {
TaskListFragment tlf = getTaskListFragment();
if (tlf != null) {
TagData td = tlf.getActiveTagData();
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();
if (navigationDrawer != null) {
navigationDrawer.refresh();

@ -130,5 +130,7 @@ public class AstridApiConstants {
* Action name for broadcast intent notifying that tag was 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;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import com.todoroo.andlib.data.Callback;
import com.todoroo.andlib.utility.DialogUtilities;
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.ForApplication;
import org.tasks.injection.InjectingActivity;
import java.util.ArrayList;
import java.util.List;
@ -33,8 +29,7 @@ import javax.inject.Inject;
*/
public final class CustomFilterExposer {
private static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$
private static final String TOKEN_FILTER_NAME = "name"; //$NON-NLS-1$
static final String TOKEN_FILTER_ID = "id"; //$NON-NLS-1$
private final StoreObjectDao storeObjectDao;
private final Context context;
@ -53,9 +48,8 @@ public final class CustomFilterExposer {
public void apply(StoreObject 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_NAME, f.title);
f.contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) };
f.contextMenuIntents = new Intent[] { deleteIntent };
list.add(f);
@ -65,47 +59,4 @@ public final class CustomFilterExposer {
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) {
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
private static final Creator<StoreObject> CREATOR = new ModelCreator<>(StoreObject.class);
public static final Creator<StoreObject> CREATOR = new ModelCreator<>(StoreObject.class);
public String getType() {
return getValue(TYPE);

@ -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,

Loading…
Cancel
Save