From 876b67d146e24a907faff8bbf7603bed543e5d33 Mon Sep 17 00:00:00 2001 From: Floens Date: Wed, 18 Nov 2015 21:45:43 +0100 Subject: [PATCH] Add shortcut for filtering tripcodes --- .../chan/core/presenter/ThreadPresenter.java | 7 +++++++ .../chan/ui/controller/FiltersController.java | 2 +- .../chan/ui/controller/ThreadController.java | 16 ++++++++++++++++ .../org/floens/chan/ui/layout/ThreadLayout.java | 7 +++++++ Clover/app/src/main/res/values/strings.xml | 1 + 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java index 6e9a4f4a..4fb5a797 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java @@ -71,6 +71,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt private static final int POST_OPTION_HIGHLIGHT_TRIPCODE = 11; private static final int POST_OPTION_HIDE = 12; private static final int POST_OPTION_OPEN_BROWSER = 13; + private static final int POST_OPTION_FILTER_TRIPCODE = 14; private WatchManager watchManager; private DatabaseManager databaseManager; @@ -403,6 +404,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt if (!TextUtils.isEmpty(post.tripcode)) { menu.add(new FloatingMenuItem(POST_OPTION_HIGHLIGHT_TRIPCODE, R.string.post_highlight_tripcode)); + menu.add(new FloatingMenuItem(POST_OPTION_FILTER_TRIPCODE, R.string.post_filter_tripcode)); } } @@ -445,6 +447,9 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt case POST_OPTION_HIGHLIGHT_TRIPCODE: threadPresenterCallback.highlightPostTripcode(post.tripcode); break; + case POST_OPTION_FILTER_TRIPCODE: + threadPresenterCallback.filterPostTripcode(post.tripcode); + break; case POST_OPTION_DELETE: requestDeletePost(post); break; @@ -678,6 +683,8 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt void highlightPostTripcode(String tripcode); + void filterPostTripcode(String tripcode); + void selectPost(int post); void showSearch(boolean show); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java index 52206485..5509b221 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/FiltersController.java @@ -139,7 +139,7 @@ public class FiltersController extends Controller implements ToolbarMenuItem.Too public void onSubMenuItemClicked(ToolbarMenuItem parent, FloatingMenuItem item) { } - private void showFilterDialog(final Filter filter) { + public void showFilterDialog(final Filter filter) { final FilterLayout filterLayout = (FilterLayout) LayoutInflater.from(context).inflate(R.layout.layout_filter, null); final AlertDialog alertDialog = new AlertDialog.Builder(context) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java index 196e1375..806833dc 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java @@ -30,6 +30,8 @@ import org.floens.chan.Chan; import org.floens.chan.R; import org.floens.chan.chan.ChanUrls; import org.floens.chan.controller.Controller; +import org.floens.chan.core.manager.FilterEngine; +import org.floens.chan.core.model.Filter; import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.Pin; import org.floens.chan.core.model.PostImage; @@ -212,4 +214,18 @@ public abstract class ThreadController extends Controller implements ThreadLayou public void onSearchEntered(String entered) { threadLayout.getPresenter().onSearchEntered(entered); } + + @Override + public void openFilterForTripcode(String tripcode) { + FiltersController filtersController = new FiltersController(context); + if (splitNavigationController != null) { + splitNavigationController.pushController(filtersController); + } else { + navigationController.pushController(filtersController); + } + Filter filter = new Filter(); + filter.type = FilterEngine.FilterType.TRIPCODE.id; + filter.pattern = tripcode; + filtersController.showFilterDialog(filter); + } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java index 3f49e3f8..55692cbb 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java @@ -346,6 +346,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T threadListLayout.highlightPostTripcode(tripcode); } + @Override + public void filterPostTripcode(String tripcode) { + callback.openFilterForTripcode(tripcode); + } + @Override public void selectPost(int post) { threadListLayout.selectPost(post); @@ -543,5 +548,7 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T void hideSwipeRefreshLayout(); Toolbar getToolbar(); + + void openFilterForTripcode(String tripcode); } } diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 608c0e8c..b85a4679 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -210,6 +210,7 @@ along with this program. If not, see . Highlight ID Highlight tripcode + Filter tripcode Text copied to clipboard Quote Quote text