Remove OnFilterItemClickedListener

pull/795/head
Alex Baker 6 years ago
parent dd9f6a88f2
commit ea791210d9

@ -12,7 +12,6 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
import static com.todoroo.astrid.activity.TaskEditFragment.newTaskEditFragment;
import static com.todoroo.astrid.activity.TaskListFragment.newTaskListFragment;
import static org.tasks.tasklist.ActionUtils.applySupportActionModeColor;
import static org.tasks.ui.NavigationDrawerFragment.OnFilterItemClickedListener;
import static org.tasks.ui.NavigationDrawerFragment.REQUEST_NEW_LIST;
import android.annotation.SuppressLint;
@ -31,7 +30,6 @@ import androidx.lifecycle.ViewModelProviders;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskCreator;
@ -39,11 +37,11 @@ import com.todoroo.astrid.timers.TimerControlSet;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import org.jetbrains.annotations.Nullable;
import org.tasks.BuildConfig;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.activities.TagSettingsActivity;
@ -54,7 +52,6 @@ import org.tasks.fragments.CommentBarFragment;
import org.tasks.gtasks.PlayServices;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.receivers.RepeatConfirmationReceiver;
@ -69,8 +66,7 @@ import org.tasks.ui.TaskListViewModel;
import org.tasks.ui.Toaster;
public class MainActivity extends InjectingAppCompatActivity
implements OnFilterItemClickedListener,
TaskListFragment.TaskListFragmentCallbackHandler,
implements TaskListFragment.TaskListFragmentCallbackHandler,
PriorityControlSet.OnPriorityChanged,
TimerControlSet.TimerControlSetCallback,
DeadlineControlSet.DueDateChangeListener,
@ -109,7 +105,7 @@ public class MainActivity extends InjectingAppCompatActivity
@BindView(R.id.detail)
FrameLayout detail;
private CompositeDisposable disposables = new CompositeDisposable();
private CompositeDisposable disposables;
private NavigationDrawerFragment navigationDrawer;
private int currentNightMode;
@ -145,8 +141,6 @@ public class MainActivity extends InjectingAppCompatActivity
finishActionMode();
}
});
handleIntent();
}
@Override
@ -154,8 +148,6 @@ public class MainActivity extends InjectingAppCompatActivity
super.onNewIntent(intent);
setIntent(intent);
handleIntent();
}
@Override
@ -197,16 +189,6 @@ public class MainActivity extends InjectingAppCompatActivity
}
}
private void addDisposable(Disposable disposable) {
assertMainThread();
if (disposables.isDisposed()) {
disposables = new CompositeDisposable(disposable);
} else {
disposables.add(disposable);
}
}
private void handleIntent() {
Intent intent = getIntent();
@ -219,7 +201,7 @@ public class MainActivity extends InjectingAppCompatActivity
}
if (loadFilter || (!openFilter && filter == null)) {
addDisposable(
disposables.add(
Single.fromCallable(
() -> {
String filter = intent.getStringExtra(LOAD_FILTER);
@ -328,7 +310,18 @@ public class MainActivity extends InjectingAppCompatActivity
localBroadcastManager.registerRepeatReceiver(repeatConfirmationReceiver);
addDisposable(playServices.check(this));
if (BuildConfig.DEBUG && disposables != null && !disposables.isDisposed()) {
throw new IllegalStateException();
}
disposables = new CompositeDisposable(playServices.check(this));
}
@Override
protected void onResumeFragments() {
super.onResumeFragments();
handleIntent();
}
public void restart() {
@ -351,20 +344,8 @@ public class MainActivity extends InjectingAppCompatActivity
localBroadcastManager.unregisterReceiver(repeatConfirmationReceiver);
disposables.dispose();
}
@Override
public void onFilterItemClicked(@Nullable FilterListItem item) {
TaskEditFragment tef = getTaskEditFragment();
if (tef != null) {
getTaskEditFragment().save();
}
if (item == null) {
startActivity(TaskIntents.getTaskListByIdIntent(this, null));
} else if (item instanceof Filter) {
startActivity(TaskIntents.getTaskListIntent(this, (Filter) item));
if (disposables != null) {
disposables.dispose();
}
}

@ -76,6 +76,7 @@ import org.tasks.dialogs.SortDialog;
import org.tasks.injection.ForActivity;
import org.tasks.injection.FragmentComponent;
import org.tasks.injection.InjectingFragment;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.Device;
import org.tasks.preferences.Preferences;
import org.tasks.sync.SyncAdapters;
@ -318,8 +319,7 @@ public final class TaskListFragment extends InjectingFragment
new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
((MainActivity) getActivity())
.onFilterItemClicked(createSearchFilter(query.trim()));
openFilter(createSearchFilter(query.trim()));
MenuItemCompat.collapseActionView(search);
return true;
}
@ -332,6 +332,14 @@ public final class TaskListFragment extends InjectingFragment
});
}
private void openFilter(@Nullable Filter filter) {
if (filter == null) {
startActivity(TaskIntents.getTaskListByIdIntent(context, null));
} else {
startActivity(TaskIntents.getTaskListIntent(context, filter));
}
}
private void searchByQuery(String query) {
query = query.trim();
if (!query.isEmpty()) {
@ -609,16 +617,10 @@ public final class TaskListFragment extends InjectingFragment
case REQUEST_TAG_SETTINGS:
if (resultCode == Activity.RESULT_OK) {
String action = data.getAction();
MainActivity activity = (MainActivity) getActivity();
if (ACTION_DELETED.equals(action)) {
activity.onFilterItemClicked(null);
openFilter(null);
} else if (ACTION_RELOAD.equals(action)) {
activity
.getIntent()
.putExtra(
MainActivity.OPEN_FILTER,
(Filter) data.getParcelableExtra(MainActivity.OPEN_FILTER));
activity.recreate();
openFilter(data.getParcelableExtra(MainActivity.OPEN_FILTER));
}
}
break;

@ -3,6 +3,7 @@ package org.tasks.tasklist;
import android.os.Bundle;
import android.view.ViewGroup;
import androidx.appcompat.view.ActionMode;
import androidx.fragment.app.FragmentActivity;
import androidx.paging.AsyncPagedListDiffer;
import androidx.paging.PagedList;
import androidx.recyclerview.widget.AsyncDifferConfig;
@ -17,6 +18,7 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.utility.Flags;
import java.util.List;
import org.tasks.intents.TaskIntents;
public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
implements ViewHolder.ViewHolderCallbacks, ListUpdateCallback {
@ -114,8 +116,10 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
@Override
public void onClick(Filter filter) {
if (mode == null) {
MainActivity activity = (MainActivity) taskList.getActivity();
activity.onFilterItemClicked(filter);
FragmentActivity context = taskList.getActivity();
if (context != null) {
context.startActivity(TaskIntents.getTaskListIntent(context, filter));
}
}
}

@ -16,6 +16,7 @@ import android.view.ViewGroup;
import android.widget.ListView;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.FragmentActivity;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
@ -29,14 +30,15 @@ import io.reactivex.schedulers.Schedulers;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.inject.Inject;
import org.jetbrains.annotations.Nullable;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.filters.FilterProvider;
import org.tasks.filters.NavigationDrawerAction;
import org.tasks.injection.FragmentComponent;
import org.tasks.injection.InjectingFragment;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.AppearancePreferences;
public class NavigationDrawerFragment extends InjectingFragment {
@ -52,7 +54,6 @@ public class NavigationDrawerFragment extends InjectingFragment {
@Inject FilterProvider filterProvider;
@Inject TaskDao taskDao;
/** A pointer to the current callbacks instance (the Activity). */
private OnFilterItemClickedListener mCallbacks;
private DrawerLayout mDrawerLayout;
private ListView mDrawerListView;
@ -94,9 +95,9 @@ public class NavigationDrawerFragment extends InjectingFragment {
|| requestCode == REQUEST_NEW_GTASK_LIST
|| requestCode == REQUEST_NEW_CALDAV_COLLECTION) {
if (resultCode == RESULT_OK && data != null) {
Filter newList = data.getParcelableExtra(MainActivity.OPEN_FILTER);
if (newList != null) {
mCallbacks.onFilterItemClicked(newList);
Filter filter = data.getParcelableExtra(MainActivity.OPEN_FILTER);
if (filter != null) {
openFilter(filter);
}
}
} else {
@ -104,6 +105,13 @@ public class NavigationDrawerFragment extends InjectingFragment {
}
}
private void openFilter(@Nonnull Filter filter) {
FragmentActivity activity = getActivity();
if (activity != null) {
activity.startActivity(TaskIntents.getTaskListIntent(activity, filter));
}
}
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@ -169,9 +177,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
FilterListItem item = adapter.getItem(position);
if (item instanceof Filter) {
if (!item.equals(adapter.getSelected())) {
if (mCallbacks != null) {
mCallbacks.onFilterItemClicked(item);
}
openFilter((Filter) item);
}
} else if (item instanceof NavigationDrawerAction) {
NavigationDrawerAction action = (NavigationDrawerAction) item;
@ -183,23 +189,11 @@ public class NavigationDrawerFragment extends InjectingFragment {
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mCallbacks = (OnFilterItemClickedListener) activity;
}
@Override
protected void inject(FragmentComponent component) {
component.inject(this);
}
@Override
public void onDetach() {
super.onDetach();
mCallbacks = null;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@ -262,10 +256,6 @@ public class NavigationDrawerFragment extends InjectingFragment {
return result;
}
public interface OnFilterItemClickedListener {
void onFilterItemClicked(@Nullable FilterListItem item);
}
private class RefreshReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

Loading…
Cancel
Save