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