Switch to local list after cloning featured list, fixed bug with managing list fragment

pull/14/head
Sam Bosley 13 years ago
parent 2834564e0e
commit 3baf494445

@ -59,6 +59,6 @@ public class PeopleFilterMode implements FilterModeSpec {
@Override
public boolean showComments() {
return true;
return false;
}
}

@ -20,11 +20,16 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.AsyncImageView;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagService.Tag;
import com.todoroo.astrid.utility.Flags;
public class FeaturedTaskListFragment extends TagViewFragment {
@ -134,7 +139,7 @@ public class FeaturedTaskListFragment extends TagViewFragment {
new Thread(new Runnable() {
@Override
public void run() {
TodorooCursor<Task> tasks = taskService.fetchFiltered(taskAdapter.getQuery(), null, Task.PROPERTIES);
final TodorooCursor<Task> tasks = taskService.fetchFiltered(taskAdapter.getQuery(), null, Task.PROPERTIES);
try {
Task t = new Task();
for (tasks.moveToFirst(); !tasks.isAfterLast(); tasks.moveToNext()) {
@ -142,13 +147,28 @@ public class FeaturedTaskListFragment extends TagViewFragment {
taskService.cloneReusableTask(t,
localName, finalRemoteId);
}
Activity activity = getActivity();
final Activity activity = getActivity();
if (activity != null) {
DialogUtilities.dismissDialog(activity, pd);
DialogUtilities.okDialog(activity, getString(R.string.actfm_feat_list_clone_success), null);
}
Flags.set(Flags.REFRESH);
if (activity instanceof TaskListActivity) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
TaskListActivity tla = (TaskListActivity) activity;
tla.setFilterMode(TaskListActivity.FILTER_MODE_NORMAL);
Filter clonedFilter;
Tag tag = new Tag(localName, tasks.getCount(), finalRemoteId);
clonedFilter = TagFilterExposer.filterFromTag(activity, tag, TaskCriteria.activeAndVisible());
tla.onFilterItemClicked(clonedFilter);
}
});
}
} finally {
tasks.close();
}

@ -303,6 +303,7 @@ public class AstridActivity extends FragmentActivity
final FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(tag);
if(fragment == null || replace) {
Fragment oldFragment = fragment;
try {
fragment = cls.newInstance();
} catch (InstantiationException e) {
@ -312,8 +313,11 @@ public class AstridActivity extends FragmentActivity
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if (container == 0)
if (container == 0) {
if (oldFragment != null && replace)
ft.remove(oldFragment);
ft.add(fragment, tag);
}
else
ft.replace(container, fragment, tag);
ft.commit();

@ -78,9 +78,9 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
private static final String FILTER_MODE = "filterMode"; //$NON-NLS-1$
private static final int FILTER_MODE_NORMAL = 0;
private static final int FILTER_MODE_PEOPLE = 1;
private static final int FILTER_MODE_FEATURED = 2;
public static final int FILTER_MODE_NORMAL = 0;
public static final int FILTER_MODE_PEOPLE = 1;
public static final int FILTER_MODE_FEATURED = 2;
@Autowired private ABTestEventReportingService abTestEventReportingService;
@ -703,9 +703,10 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
tlf.handleOptionsMenuItemSelected(item, customIntent);
}
private void setFilterMode(int mode) {
public void setFilterMode(int mode) {
filterMode = mode;
updateFilterModeSpec(mode);
getIntent().putExtra(FILTER_MODE, mode);
refreshMainMenu();
if (fragmentLayout == LAYOUT_SINGLE) {
@ -728,7 +729,6 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
onFilterItemClicked(getDefaultFilter());
if (fragmentLayout == LAYOUT_SINGLE)
listsNav.performClick();
getIntent().putExtra(FILTER_MODE, mode);
}
public void refreshMainMenu() {

Loading…
Cancel
Save