Don't hide synchronization features

gtask_related_email
Alex Baker 5 years ago
parent 68f657c971
commit 304e7153ae

@ -34,7 +34,7 @@ import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Device;
import org.tasks.preferences.PermissionRequestor;
import org.tasks.preferences.Preferences;
import org.tasks.sync.SyncAdapters;
import org.tasks.sync.SynchronizationPreferences;
public class DefaultsPreferences extends InjectingPreferenceActivity
implements RemoteListSelectionHandler, NativeSeekBarDialog.SeekBarCallback {
@ -49,7 +49,6 @@ public class DefaultsPreferences extends InjectingPreferenceActivity
@Inject ActivityPermissionRequestor permissionRequester;
@Inject Tracker tracker;
@Inject DefaultFilterProvider defaultFilterProvider;
@Inject SyncAdapters syncAdapters;
@Inject Locale locale;
@Inject Device device;
@ -98,7 +97,6 @@ public class DefaultsPreferences extends InjectingPreferenceActivity
});
updateRadius();
requires(syncAdapters.isSyncEnabled(), R.string.p_default_remote_list);
requires(device.supportsGeofences(), R.string.p_default_location_reminder_key);
}
@ -139,6 +137,11 @@ public class DefaultsPreferences extends InjectingPreferenceActivity
}
}
@Override
public void addAccount() {
startActivity(new Intent(this, SynchronizationPreferences.class));
}
@Override
public void selectedList(Filter list) {
tracker.reportEvent(Tracking.Events.DEFAULT_REMOTE_LIST);

@ -17,6 +17,7 @@ import org.tasks.filters.FilterProvider;
import org.tasks.gtasks.RemoteListSelectionHandler;
import org.tasks.injection.InjectingNativeDialogFragment;
import org.tasks.injection.NativeDialogFragmentComponent;
import org.tasks.sync.SyncAdapters;
public class RemoteListNativePicker extends InjectingNativeDialogFragment {
@ -25,6 +26,7 @@ public class RemoteListNativePicker extends InjectingNativeDialogFragment {
@Inject DialogBuilder dialogBuilder;
@Inject FilterAdapter filterAdapter;
@Inject FilterProvider filterProvider;
@Inject SyncAdapters syncAdapters;
private RemoteListSelectionHandler handler;
private CompositeDisposable disposables;
@ -44,7 +46,7 @@ public class RemoteListNativePicker extends InjectingNativeDialogFragment {
filterAdapter.restore(savedInstanceState);
}
return createDialog(filterAdapter, dialogBuilder, handler);
return createDialog(filterAdapter, dialogBuilder, syncAdapters, handler);
}
@Override

@ -17,13 +17,18 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.dialogs.AlertDialogBuilder;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterProvider;
import org.tasks.gtasks.RemoteListSelectionHandler;
import org.tasks.injection.DialogFragmentComponent;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.sync.SyncAdapters;
import org.tasks.sync.SynchronizationPreferences;
public class RemoteListSupportPicker extends InjectingDialogFragment {
public class RemoteListSupportPicker extends InjectingDialogFragment
implements RemoteListSelectionHandler {
public static final String EXTRA_SELECTED_FILTER = "extra_selected_filter";
private static final String EXTRA_NO_SELECTION = "extra_no_selection";
@ -31,6 +36,7 @@ public class RemoteListSupportPicker extends InjectingDialogFragment {
@Inject DialogBuilder dialogBuilder;
@Inject FilterAdapter filterAdapter;
@Inject FilterProvider filterProvider;
@Inject SyncAdapters syncAdapters;
private CompositeDisposable disposables;
@ -57,24 +63,30 @@ public class RemoteListSupportPicker extends InjectingDialogFragment {
static AlertDialog createDialog(
FilterAdapter filterAdapter,
DialogBuilder dialogBuilder,
SyncAdapters syncAdapters,
RemoteListSelectionHandler handler) {
return dialogBuilder
.newDialog()
.setSingleChoiceItems(
filterAdapter,
-1,
(dialog, which) -> {
if (which == 0) {
handler.selectedList(null);
} else {
FilterListItem item = filterAdapter.getItem(which);
if (item instanceof GtasksFilter || item instanceof CaldavFilter) {
handler.selectedList((Filter) item);
}
}
dialog.dismiss();
})
.show();
AlertDialogBuilder builder =
dialogBuilder
.newDialog()
.setNegativeButton(android.R.string.cancel, null)
.setSingleChoiceItems(
filterAdapter,
-1,
(dialog, which) -> {
if (which == 0) {
handler.selectedList(null);
} else {
FilterListItem item = filterAdapter.getItem(which);
if (item instanceof GtasksFilter || item instanceof CaldavFilter) {
handler.selectedList((Filter) item);
}
}
dialog.dismiss();
});
if (!syncAdapters.isSyncEnabled()) {
builder.setNeutralButton(R.string.add_account, (dialog, which) -> handler.addAccount());
}
return builder.show();
}
@NonNull
@ -84,7 +96,7 @@ public class RemoteListSupportPicker extends InjectingDialogFragment {
filterAdapter.restore(savedInstanceState);
}
return createDialog(filterAdapter, dialogBuilder, this::selected);
return createDialog(filterAdapter, dialogBuilder, syncAdapters, this);
}
@Override
@ -117,16 +129,22 @@ public class RemoteListSupportPicker extends InjectingDialogFragment {
filterAdapter.save(outState);
}
private void selected(Filter filter) {
@Override
protected void inject(DialogFragmentComponent component) {
component.inject(this);
}
@Override
public void addAccount() {
startActivity(new Intent(getContext(), SynchronizationPreferences.class));
}
@Override
public void selectedList(Filter filter) {
getTargetFragment()
.onActivityResult(
getTargetRequestCode(),
Activity.RESULT_OK,
new Intent().putExtra(EXTRA_SELECTED_FILTER, filter));
}
@Override
protected void inject(DialogFragmentComponent component) {
component.inject(this);
}
}

@ -22,7 +22,6 @@ import org.tasks.BuildConfig;
import org.tasks.R;
import org.tasks.injection.ForActivity;
import org.tasks.preferences.Preferences;
import org.tasks.sync.SyncAdapters;
import org.tasks.ui.CalendarControlSet;
import org.tasks.ui.DeadlineControlSet;
import org.tasks.ui.DescriptionControlSet;
@ -79,15 +78,10 @@ public class TaskEditControlSetFragmentManager {
private final Map<String, Integer> controlSetFragments = new LinkedHashMap<>();
private final List<String> displayOrder;
private final SyncAdapters syncAdapters;
private int numRows;
@Inject
public TaskEditControlSetFragmentManager(
@ForActivity Context context,
Preferences preferences,
SyncAdapters syncAdapters) {
this.syncAdapters = syncAdapters;
public TaskEditControlSetFragmentManager(@ForActivity Context context, Preferences preferences) {
displayOrder = BeastModePreferences.constructOrderedControlList(preferences, context);
displayOrder.add(0, context.getString(EditTitleControlSet.TAG));
displayOrder.add(1, context.getString(CommentBarFragment.TAG));
@ -129,9 +123,6 @@ public class TaskEditControlSetFragmentManager {
if (fragment == null) {
Integer resId = controlSetFragments.get(tag);
fragment = createFragment(resId);
if (fragment == null) {
continue;
}
fragment.setArguments(arguments);
}
fragments.add(fragment);
@ -168,7 +159,7 @@ public class TaskEditControlSetFragmentManager {
case CommentBarFragment.TAG:
return new CommentBarFragment();
case RemoteListFragment.TAG:
return syncAdapters.isSyncEnabled() ? new RemoteListFragment() : null;
return new RemoteListFragment();
default:
throw new RuntimeException("Unsupported fragment");
}

@ -4,5 +4,7 @@ import com.todoroo.astrid.api.Filter;
public interface RemoteListSelectionHandler {
void addAccount();
void selectedList(Filter list);
}

@ -23,7 +23,6 @@ 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 {
@ -36,7 +35,6 @@ public class ActionModeProvider {
private final TaskDuplicator taskDuplicator;
private final TaskMover taskMover;
private final Tracker tracker;
private final SyncAdapters syncAdapters;
@Inject
public ActionModeProvider(
@ -45,18 +43,16 @@ public class ActionModeProvider {
TaskDeleter taskDeleter,
TaskDuplicator taskDuplicator,
TaskMover taskMover,
Tracker tracker,
SyncAdapters syncAdapters) {
Tracker tracker) {
this.context = context;
this.dialogBuilder = dialogBuilder;
this.taskDeleter = taskDeleter;
this.taskDuplicator = taskDuplicator;
this.taskMover = taskMover;
this.tracker = tracker;
this.syncAdapters = syncAdapters;
}
public ActionMode startActionMode(
ActionMode startActionMode(
TaskAdapter adapter,
TaskListFragment taskList,
TaskListRecyclerAdapter taskListRecyclerAdapter) {
@ -67,9 +63,6 @@ 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;
}

Loading…
Cancel
Save