diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java index a7a6afae3..d4e8bcd45 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java @@ -8,6 +8,7 @@ import org.json.JSONObject; import android.app.Activity; import android.content.BroadcastReceiver; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -39,11 +40,13 @@ import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmSyncService; +import com.todoroo.astrid.activity.AstridActivity; import com.todoroo.astrid.activity.FilterListFragment; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; +import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.TagData; @@ -52,6 +55,7 @@ import com.todoroo.astrid.data.Update; import com.todoroo.astrid.helper.ProgressBarSyncResultCallback; import com.todoroo.astrid.service.SyncV2Service; import com.todoroo.astrid.service.TagDataService; +import com.todoroo.astrid.subtasks.SubtasksTagListFragment; import com.todoroo.astrid.tags.TagFilterExposer; import com.todoroo.astrid.tags.TagService.Tag; import com.todoroo.astrid.welcome.HelpInfoPopover; @@ -482,6 +486,23 @@ public class TagViewFragment extends TaskListFragment { return super.onOptionsItemSelected(item); } + @Override + protected boolean hasDraggableOption() { + return true; + } + + @Override + protected void toggleDragDrop(boolean newState) { + if(newState) + ((FilterWithCustomIntent)filter).customTaskList = + new ComponentName(getActivity(), SubtasksTagListFragment.class); + else + ((FilterWithCustomIntent)filter).customTaskList = + new ComponentName(getActivity(), TagViewFragment.class); + + ((AstridActivity)getActivity()).setupTasklistFragmentWithFilter(filter); + } + @Override protected void refresh() { setUpMembersGallery(); diff --git a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java index 8afe9d4c8..f09cf133c 100644 --- a/astrid/src/com/todoroo/astrid/activity/AstridActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/AstridActivity.java @@ -202,7 +202,7 @@ public class AstridActivity extends FragmentActivity transaction.commit(); } - protected final void setupTasklistFragmentWithFilter(Filter filter) { + public final void setupTasklistFragmentWithFilter(Filter filter) { Class customTaskList = TaskListFragment.class; System.err.println("default time - " + ((filter != null) ? filter.title : "null")); //$NON-NLS-1$ @@ -218,7 +218,7 @@ public class AstridActivity extends FragmentActivity setupTasklistFragmentWithFilterAndCustomTaskList(filter, customTaskList); } - protected final void setupTasklistFragmentWithFilterAndCustomTaskList(Filter filter, Class customTaskList) { + public final void setupTasklistFragmentWithFilterAndCustomTaskList(Filter filter, Class customTaskList) { System.err.println("HAJIMEMASHITE setting up fragment with class " + customTaskList); //$NON-NLS-1$ Class component = customTaskList; if (filter instanceof FilterWithCustomIntent) { diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index d90057b87..1831d5a63 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -1062,7 +1062,7 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, case MENU_SORT_ID: StatisticsService.reportEvent(StatisticsConstants.TLA_MENU_SORT); AlertDialog dialog = SortSelectionActivity.createDialog( - getActivity(), isInbox, this, sortFlags, sortSort); + getActivity(), hasDraggableOption(), this, sortFlags, sortSort); dialog.show(); return true; case MENU_SYNC_ID: @@ -1175,6 +1175,10 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, return false; } + protected boolean hasDraggableOption() { + return isInbox; + } + @Override public void onSortSelected(boolean always, int flags, int sort) { boolean manualSettingChanged = SortHelper.isManualSort(sortFlags) !=