@ -1,5 +1,6 @@
package org.tasks.tasklist ;
import static com.todoroo.astrid.activity.TaskListFragment.REQUEST_MOVE_TASKS ;
import static org.tasks.activities.RemoteListSupportPicker.newRemoteListSupportPicker ;
import android.content.Context ;
@ -10,9 +11,11 @@ import android.view.MenuItem;
import com.todoroo.astrid.activity.TaskListActivity ;
import com.todoroo.astrid.activity.TaskListFragment ;
import com.todoroo.astrid.adapter.TaskAdapter ;
import com.todoroo.astrid.api.Filter ;
import com.todoroo.astrid.data.Task ;
import com.todoroo.astrid.service.TaskDeleter ;
import com.todoroo.astrid.service.TaskDuplicator ;
import com.todoroo.astrid.service.TaskMover ;
import java.util.List ;
import javax.inject.Inject ;
import org.tasks.R ;
@ -20,6 +23,7 @@ import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking ;
import org.tasks.dialogs.DialogBuilder ;
import org.tasks.injection.ForActivity ;
import org.tasks.sync.SyncAdapters ;
import org.tasks.ui.MenuColorizer ;
public class ActionModeProvider {
@ -30,7 +34,9 @@ public class ActionModeProvider {
private final DialogBuilder dialogBuilder ;
private final TaskDeleter taskDeleter ;
private final TaskDuplicator taskDuplicator ;
private final TaskMover taskMover ;
private final Tracker tracker ;
private final SyncAdapters syncAdapters ;
@Inject
public ActionModeProvider (
@ -38,12 +44,17 @@ public class ActionModeProvider {
DialogBuilder dialogBuilder ,
TaskDeleter taskDeleter ,
TaskDuplicator taskDuplicator ,
Tracker tracker ) {
TaskMover taskMover ,
Tracker tracker ,
SyncAdapters syncAdapters
) {
this . context = context ;
this . dialogBuilder = dialogBuilder ;
this . taskDeleter = taskDeleter ;
this . taskDuplicator = taskDuplicator ;
this . taskMover = taskMover ;
this . tracker = tracker ;
this . syncAdapters = syncAdapters ;
}
public ActionMode startActionMode (
@ -57,6 +68,9 @@ public class ActionModeProvider {
public boolean onCreateActionMode ( ActionMode actionMode , Menu menu ) {
MenuInflater inflater = actionMode . getMenuInflater ( ) ;
inflater . inflate ( R . menu . menu_multi_select , menu ) ;
if ( ! syncAdapters . isSyncEnabled ( ) ) {
menu . findItem ( R . id . move_tasks ) . setVisible ( false ) ;
}
MenuColorizer . colorMenu ( context , menu ) ;
return true ;
}
@ -70,7 +84,10 @@ public class ActionModeProvider {
public boolean onActionItemClicked ( ActionMode mode , MenuItem item ) {
switch ( item . getItemId ( ) ) {
case R . id . move_tasks :
newRemoteListSupportPicker ( null , taskList , TaskListFragment . REQUEST_MOVE_TASKS )
Filter singleFilter = taskMover . getSingleFilter ( adapter . getSelected ( ) ) ;
( singleFilter = = null
? newRemoteListSupportPicker ( taskList , REQUEST_MOVE_TASKS )
: newRemoteListSupportPicker ( singleFilter , taskList , REQUEST_MOVE_TASKS ) )
. show ( taskList . getFragmentManager ( ) , FRAG_TAG_REMOTE_LIST_PICKER ) ;
return true ;
case R . id . delete :