diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 82b3bae19..dbc7d9003 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -152,12 +152,6 @@
android:theme="@style/AppTheme.Toolbar"
android:label="@string/license"/>
-
-
list, String url, boolean filter) throws Throwable {
- // Filter title and uploader
- if (filter) {
- for (int i = 0, n = list.size(); i < n; i++) {
- GalleryInfo info = list.get(i);
- if (!sEhFilter.filterTitle(info) || !sEhFilter.filterUploader(info)) {
- list.remove(i);
- i--;
- n--;
- }
- }
- }
-
boolean hasTags = false;
boolean hasPages = false;
boolean hasRated = false;
@@ -201,25 +185,11 @@ public class EhEngine {
}
}
- boolean needApi = (filter && sEhFilter.needTags() && !hasTags) ||
- (Settings.getShowGalleryPages() && !hasPages) ||
- hasRated;
+ boolean needApi = (Settings.getShowGalleryPages() && !hasPages) || hasRated;
if (needApi) {
fillGalleryListByApi(task, okHttpClient, list, url);
}
- // Filter tag
- if (filter) {
- for (int i = 0, n = list.size(); i < n; i++) {
- GalleryInfo info = list.get(i);
- if (!sEhFilter.filterTag(info) || !sEhFilter.filterTagNamespace(info)) {
- list.remove(i);
- i--;
- n--;
- }
- }
- }
-
for (GalleryInfo info : list) {
info.thumb = EhUrl.getFixedPreviewThumbUrl(info.thumb);
}
diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhFilter.java b/app/src/main/java/com/hippo/ehviewer/client/EhFilter.java
deleted file mode 100644
index 107bcfa5a..000000000
--- a/app/src/main/java/com/hippo/ehviewer/client/EhFilter.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright 2016 Hippo Seven
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hippo.ehviewer.client;
-
-import android.util.Log;
-
-import com.hippo.ehviewer.EhDB;
-import com.hippo.ehviewer.client.data.GalleryInfo;
-import com.hippo.ehviewer.dao.Filter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public final class EhFilter {
-
- private static final String TAG = EhFilter.class.getSimpleName();
-
- public static final int MODE_TITLE = 0;
- public static final int MODE_UPLOADER = 1;
- public static final int MODE_TAG = 2;
- public static final int MODE_TAG_NAMESPACE = 3;
-
- private final List mTitleFilterList = new ArrayList<>();
- private final List mUploaderFilterList = new ArrayList<>();
- private final List mTagFilterList = new ArrayList<>();
- private final List mTagNamespaceFilterList = new ArrayList<>();
-
- private static EhFilter sInstance;
-
- public static EhFilter getInstance() {
- if (sInstance == null) {
- sInstance = new EhFilter();
- }
- return sInstance;
- }
-
- private EhFilter() {
- List list = EhDB.getAllFilter();
- for (int i = 0, n = list.size(); i < n; i++) {
- Filter filter = list.get(i);
- switch (filter.mode) {
- case MODE_TITLE:
- filter.text = filter.text.toLowerCase();
- mTitleFilterList.add(filter);
- break;
- case MODE_UPLOADER:
- mUploaderFilterList.add(filter);
- break;
- case MODE_TAG:
- filter.text = filter.text.toLowerCase();
- mTagFilterList.add(filter);
- break;
- case MODE_TAG_NAMESPACE:
- filter.text = filter.text.toLowerCase();
- mTagNamespaceFilterList.add(filter);
- break;
- default:
- Log.d(TAG, "Unknown mode: " + filter.mode);
- break;
- }
- }
- }
-
- public List getTitleFilterList() {
- return mTitleFilterList;
- }
-
- public List getUploaderFilterList() {
- return mUploaderFilterList;
- }
-
- public List getTagFilterList() {
- return mTagFilterList;
- }
-
- public List getTagNamespaceFilterList() {
- return mTagNamespaceFilterList;
- }
-
- public synchronized void addFilter(Filter filter) {
- // enable filter by default before it is added to database
- filter.enable = true;
- EhDB.addFilter(filter);
-
- switch (filter.mode) {
- case MODE_TITLE:
- filter.text = filter.text.toLowerCase();
- mTitleFilterList.add(filter);
- break;
- case MODE_UPLOADER:
- mUploaderFilterList.add(filter);
- break;
- case MODE_TAG:
- filter.text = filter.text.toLowerCase();
- mTagFilterList.add(filter);
- break;
- case MODE_TAG_NAMESPACE:
- filter.text = filter.text.toLowerCase();
- mTagNamespaceFilterList.add(filter);
- break;
- default:
- Log.d(TAG, "Unknown mode: " + filter.mode);
- break;
- }
- }
-
- public synchronized void triggerFilter(Filter filter) {
- EhDB.triggerFilter(filter);
- }
-
- public synchronized void deleteFilter(Filter filter) {
- EhDB.deleteFilter(filter);
-
- switch (filter.mode) {
- case MODE_TITLE:
- mTitleFilterList.remove(filter);
- break;
- case MODE_UPLOADER:
- mUploaderFilterList.remove(filter);
- break;
- case MODE_TAG:
- mTagFilterList.remove(filter);
- break;
- case MODE_TAG_NAMESPACE:
- mTagNamespaceFilterList.remove(filter);
- break;
- default:
- Log.d(TAG, "Unknown mode: " + filter.mode);
- break;
- }
- }
-
- public synchronized boolean needTags() {
- return 0 != mTagFilterList.size() || 0 != mTagNamespaceFilterList.size();
- }
-
- public synchronized boolean filterTitle(GalleryInfo info) {
- if (null == info) {
- return false;
- }
-
- // Title
- String title = info.title;
- List filters = mTitleFilterList;
- if (null != title && filters.size() > 0) {
- title = title.toLowerCase();
- for (int i = 0, n = filters.size(); i < n; i++) {
- if (filters.get(i).enable && title.contains(filters.get(i).text)) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- public synchronized boolean filterUploader(GalleryInfo info) {
- if (null == info) {
- return false;
- }
-
- // Uploader
- String uploader = info.uploader;
- List filters = mUploaderFilterList;
- if (null != uploader && filters.size() > 0) {
- for (int i = 0, n = filters.size(); i < n; i++) {
- if (filters.get(i).enable && uploader.equals(filters.get(i).text)) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- private boolean matchTag(String tag, String filter) {
- if (null == tag || null == filter) {
- return false;
- }
-
- String tagNamespace;
- String tagName;
- String filterNamespace;
- String filterName;
- int index = tag.indexOf(':');
- if (index < 0) {
- tagNamespace = null;
- tagName = tag;
- } else {
- tagNamespace = tag.substring(0, index);
- tagName = tag.substring(index + 1);
- }
- index = filter.indexOf(':');
- if (index < 0) {
- filterNamespace = null;
- filterName = filter;
- } else {
- filterNamespace = filter.substring(0, index);
- filterName = filter.substring(index + 1);
- }
-
- if (null != tagNamespace && null != filterNamespace &&
- !tagNamespace.equals(filterNamespace)) {
- return false;
- }
- if (!tagName.equals(filterName)) {
- return false;
- }
-
- return true;
- }
-
- public synchronized boolean filterTag(GalleryInfo info) {
- if (null == info) {
- return false;
- }
-
- // Tag
- String[] tags = info.simpleTags;
- List filters = mTagFilterList;
- if (null != tags && filters.size() > 0) {
- for (String tag: tags) {
- for (int i = 0, n = filters.size(); i < n; i++) {
- if (filters.get(i).enable && matchTag(tag, filters.get(i).text)) {
- return false;
- }
- }
- }
- }
-
- return true;
- }
-
- private boolean matchTagNamespace(String tag, String filter) {
- if (null == tag || null == filter) {
- return false;
- }
-
- String tagNamespace;
- int index = tag.indexOf(':');
- if (index >= 0) {
- tagNamespace = tag.substring(0, index);
- return tagNamespace.equals(filter);
- } else {
- return false;
- }
- }
-
- public synchronized boolean filterTagNamespace(GalleryInfo info) {
- if (null == info) {
- return false;
- }
-
- String[] tags = info.simpleTags;
- List filters = mTagNamespaceFilterList;
- if (null != tags && filters.size() > 0) {
- for (String tag: tags) {
- for (int i = 0, n = filters.size(); i < n; i++) {
- if (filters.get(i).enable && matchTagNamespace(tag, filters.get(i).text)) {
- return false;
- }
- }
- }
- }
-
- return true;
- }
-}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java
deleted file mode 100644
index 772143a6e..000000000
--- a/app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
- * Copyright 2016 Hippo Seven
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.hippo.ehviewer.ui;
-
-import android.content.DialogInterface;
-import android.graphics.Paint;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.Spinner;
-import android.widget.TextView;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-import com.google.android.material.textfield.TextInputLayout;
-import com.hippo.easyrecyclerview.EasyRecyclerView;
-import com.hippo.ehviewer.R;
-import com.hippo.ehviewer.client.EhFilter;
-import com.hippo.ehviewer.dao.Filter;
-import com.hippo.util.DrawableManager;
-import com.hippo.view.ViewTransition;
-import com.hippo.yorozuya.ViewUtils;
-import java.util.List;
-
-public class FilterActivity extends ToolbarActivity {
-
- @Nullable
- private EasyRecyclerView mRecyclerView;
- @Nullable
- private ViewTransition mViewTransition;
- @Nullable
- private FilterAdapter mAdapter;
- @Nullable
- private FilterList mFilterList;
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_filter);
- setNavigationIcon(R.drawable.v_arrow_left_dark_x24);
-
- mFilterList = new FilterList();
-
- mRecyclerView = (EasyRecyclerView) ViewUtils.$$(this, R.id.recycler_view);
- TextView tip = (TextView) ViewUtils.$$(this, R.id.tip);
- mViewTransition = new ViewTransition(mRecyclerView, tip);
-
- Drawable drawable = DrawableManager.getVectorDrawable(this, R.drawable.big_filter);
- drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
- tip.setCompoundDrawables(null, drawable, null, null);
-
- mAdapter = new FilterAdapter();
- mRecyclerView.setAdapter(mAdapter);
- mRecyclerView.setClipToPadding(false);
- mRecyclerView.setClipChildren(false);
- mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
- mRecyclerView.hasFixedSize();
- mRecyclerView.setItemAnimator(null);
-
- updateView(false);
- }
-
- private void updateView(boolean animation) {
- if (null == mViewTransition) {
- return;
- }
-
- if (null == mFilterList || 0 == mFilterList.size()) {
- mViewTransition.showView(1, animation);
- } else {
- mViewTransition.showView(0, animation);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
-
- mRecyclerView = null;
- mViewTransition = null;
- mAdapter = null;
- mFilterList = null;
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- getMenuInflater().inflate(R.menu.activity_filter, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- case R.id.action_add:
- showAddFilterDialog();
- return true;
- case R.id.action_tip:
- showTipDialog();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
- private void showTipDialog() {
- new AlertDialog.Builder(this)
- .setTitle(R.string.filter)
- .setMessage(R.string.filter_tip)
- .show();
- }
-
- private void showAddFilterDialog() {
- AlertDialog dialog = new AlertDialog.Builder(this)
- .setTitle(R.string.add_filter)
- .setView(R.layout.dialog_add_filter)
- .setPositiveButton(R.string.add, null)
- .show();
- AddFilterDialogHelper helper = new AddFilterDialogHelper();
- helper.setDialog(dialog);
- }
-
- private void showDeleteFilterDialog(final Filter filter) {
- int messageId;
- switch (filter.mode) {
- case EhFilter.MODE_TITLE:
- messageId = R.string.delete_title_filter;
- break;
- case EhFilter.MODE_UPLOADER:
- messageId = R.string.delete_uploader_filter;
- break;
- case EhFilter.MODE_TAG:
- messageId = R.string.delete_tag_filter;
- break;
- default:
- messageId = R.string.delete_filter;
- }
- String message = getString(messageId, filter.text);
-
- new AlertDialog.Builder(this)
- .setMessage(message)
- .setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (DialogInterface.BUTTON_POSITIVE != which || null == mFilterList) {
- return;
- }
- mFilterList.delete(filter);
- if (null != mAdapter) {
- mAdapter.notifyDataSetChanged();
- }
- updateView(true);
- }
- }).show();
- }
-
- private class AddFilterDialogHelper implements View.OnClickListener {
-
- @Nullable
- private AlertDialog mDialog;
- @Nullable
- private Spinner mSpinner;
- @Nullable
- private TextInputLayout mInputLayout;
- @Nullable
- private EditText mEditText;
-
- public void setDialog(AlertDialog dialog) {
- mDialog = dialog;
- mSpinner = (Spinner) ViewUtils.$$(dialog, R.id.spinner);
- mInputLayout = (TextInputLayout) ViewUtils.$$(dialog, R.id.text_input_layout);
- mEditText = mInputLayout.getEditText();
- View button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
- if (null != button) {
- button.setOnClickListener(this);
- }
- }
-
- @Override
- public void onClick(View v) {
- if (null == mFilterList || null == mDialog || null == mSpinner ||
- null == mInputLayout || null == mEditText) {
- return;
- }
-
- String text = mEditText.getText().toString().trim();
- if (TextUtils.isEmpty(text)) {
- mInputLayout.setError(getString(R.string.text_is_empty));
- return;
- } else {
- mInputLayout.setError(null);
- }
- int mode = mSpinner.getSelectedItemPosition();
-
- Filter filter = new Filter();
- filter.mode = mode;
- filter.text = text;
- mFilterList.add(filter);
-
- if (null != mAdapter) {
- mAdapter.notifyDataSetChanged();
- }
- updateView(true);
-
- mDialog.dismiss();
- mDialog = null;
- mSpinner = null;
- mInputLayout = null;
- mEditText = null;
- }
- }
-
- private class FilterHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
-
- private final TextView text;
- private final ImageView icon;
-
- public FilterHolder(View itemView) {
- super(itemView);
- text = (TextView) ViewUtils.$$(itemView, R.id.text);
- icon = (ImageView) itemView.findViewById(R.id.icon);
-
- if (null != icon) {
- icon.setOnClickListener(this);
- }
- // click on the filter text to enable/disable it
- text.setOnClickListener(this);
- }
-
- @Override
- public void onClick(View v) {
- int position = getAdapterPosition();
- if (position < 0 || null == mFilterList) {
- return;
- }
- Filter filter = mFilterList.get(position);
- if (FilterList.MODE_HEADER != filter.mode) {
- if (v instanceof ImageView) {
- showDeleteFilterDialog(filter);
- } else if (v instanceof TextView) {
- mFilterList.trigger(filter);
-
- //for updating delete line on filter text
- mAdapter.notifyItemChanged(getAdapterPosition());
- }
-
- }
- }
- }
-
- private class FilterAdapter extends RecyclerView.Adapter {
-
- private static final int TYPE_ITEM = 0;
- private static final int TYPE_HEADER = 1;
-
- @Override
- public int getItemViewType(int position) {
- if (null == mFilterList) {
- return TYPE_ITEM;
- }
-
- if (mFilterList.get(position).mode == FilterList.MODE_HEADER) {
- return TYPE_HEADER;
- } else {
- return TYPE_ITEM;
- }
- }
-
- @Override
- public FilterHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- int layoutId;
- switch (viewType) {
- default:
- case TYPE_ITEM:
- layoutId = R.layout.item_filter;
- break;
- case TYPE_HEADER:
- layoutId = R.layout.item_filter_header;
- break;
- }
-
- FilterHolder holder = new FilterHolder(getLayoutInflater().inflate(layoutId, parent, false));
-
- if (R.layout.item_filter == layoutId) {
- holder.icon.setImageDrawable(
- DrawableManager.getVectorDrawable(FilterActivity.this, R.drawable.v_delete_x24));
- }
-
- return holder;
- }
-
- @Override
- public void onBindViewHolder(FilterHolder holder, int position) {
- if (null == mFilterList) {
- return;
- }
-
- Filter filter = mFilterList.get(position);
- if (FilterList.MODE_HEADER == filter.mode) {
- holder.text.setText(filter.text);
- } else {
- holder.text.setText(filter.text);
- // add a delete line if the filter is disabled
- if (!filter.enable) {
- holder.text.setPaintFlags(holder.text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- } else {
- holder.text.setPaintFlags(holder.text.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
- }
- }
- }
-
- @Override
- public int getItemCount() {
- return null != mFilterList ? mFilterList.size() : 0;
- }
- }
-
- private class FilterList {
-
- public static final int MODE_HEADER = -1;
-
- private final EhFilter mEhFilter;
- private final List mTitleFilterList;
- private final List mUploaderFilterList;
- private final List mTagFilterList;
- private final List mTagNamespaceFilterList;
-
- private Filter mTitleHeader;
- private Filter mUploaderHeader;
- private Filter mTagHeader;
- private Filter mTagNamespaceHeader;
-
- public FilterList() {
- mEhFilter = EhFilter.getInstance();
- mTitleFilterList = mEhFilter.getTitleFilterList();
- mUploaderFilterList = mEhFilter.getUploaderFilterList();
- mTagFilterList = mEhFilter.getTagFilterList();
- mTagNamespaceFilterList = mEhFilter.getTagNamespaceFilterList();
- }
-
- public int size() {
- int count = 0;
- int size = mTitleFilterList.size();
- count += 0 == size ? 0 : size + 1;
- size = mUploaderFilterList.size();
- count += 0 == size ? 0 : size + 1;
- size = mTagFilterList.size();
- count += 0 == size ? 0 : size + 1;
- size = mTagNamespaceFilterList.size();
- count += 0 == size ? 0 : size + 1;
- return count;
- }
-
- private Filter getTitleHeader() {
- if (null == mTitleHeader) {
- mTitleHeader = new Filter();
- mTitleHeader.mode = MODE_HEADER;
- mTitleHeader.text = getString(R.string.filter_title);
- }
- return mTitleHeader;
- }
-
- private Filter getUploaderHeader() {
- if (null == mUploaderHeader) {
- mUploaderHeader = new Filter();
- mUploaderHeader.mode = MODE_HEADER;
- mUploaderHeader.text = getString(R.string.filter_uploader);
- }
- return mUploaderHeader;
- }
-
- private Filter getTagHeader() {
- if (null == mTagHeader) {
- mTagHeader = new Filter();
- mTagHeader.mode = MODE_HEADER;
- mTagHeader.text = getString(R.string.filter_tag);
- }
- return mTagHeader;
- }
-
- private Filter getTagNamespaceHeader() {
- if (null == mTagNamespaceHeader) {
- mTagNamespaceHeader = new Filter();
- mTagNamespaceHeader.mode = MODE_HEADER;
- mTagNamespaceHeader.text = getString(R.string.filter_tag_namespace);
- }
- return mTagNamespaceHeader;
- }
-
- public Filter get(int index) {
- int size = mTitleFilterList.size();
- if (0 != size) {
- if (index == 0) {
- return getTitleHeader();
- } else if (index <= size) {
- return mTitleFilterList.get(index - 1);
- } else {
- index -= size + 1;
- }
- }
-
- size = mUploaderFilterList.size();
- if (0 != size) {
- if (index == 0) {
- return getUploaderHeader();
- } else if (index <= size) {
- return mUploaderFilterList.get(index - 1);
- } else {
- index -= size + 1;
- }
- }
-
- size = mTagFilterList.size();
- if (0 != size) {
- if (index == 0) {
- return getTagHeader();
- } else if (index <= size) {
- return mTagFilterList.get(index - 1);
- } else {
- index -= size + 1;
- }
- }
-
- size = mTagNamespaceFilterList.size();
- if (0 != size) {
- if (index == 0) {
- return getTagNamespaceHeader();
- } else if (index <= size) {
- return mTagNamespaceFilterList.get(index - 1);
- } else {
- index -= size + 1;
- }
- }
-
- throw new IndexOutOfBoundsException();
- }
-
- public void add(Filter filter) {
- mEhFilter.addFilter(filter);
- }
-
- public void delete(Filter filter) {
- mEhFilter.deleteFilter(filter);
- }
-
- public void trigger(Filter filter) {
- mEhFilter.triggerFilter(filter);
- }
- }
-}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java
index 5535a5d4f..5504e0cb5 100755
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java
@@ -67,7 +67,6 @@ import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.UrlOpener;
import com.hippo.ehviewer.client.EhCacheKeyFactory;
import com.hippo.ehviewer.client.EhClient;
-import com.hippo.ehviewer.client.EhFilter;
import com.hippo.ehviewer.client.EhRequest;
import com.hippo.ehviewer.client.EhTagDatabase;
import com.hippo.ehviewer.client.EhUrl;
@@ -81,7 +80,6 @@ import com.hippo.ehviewer.client.data.PreviewSet;
import com.hippo.ehviewer.client.exception.NoHAtHClientException;
import com.hippo.ehviewer.client.parser.RateGalleryParser;
import com.hippo.ehviewer.dao.DownloadInfo;
-import com.hippo.ehviewer.dao.Filter;
import com.hippo.ehviewer.ui.CommonOperations;
import com.hippo.ehviewer.ui.GalleryActivity;
import com.hippo.ehviewer.ui.MainActivity;
@@ -482,8 +480,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mDownload.setOnLongClickListener(this);
mRead.setOnClickListener(this);
- mUploader.setOnLongClickListener(this);
-
mBelowHeader = mainView.findViewById(R.id.below_header);
View belowHeader = mBelowHeader;
@@ -1327,43 +1323,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
}
}
- private void showBlockUploaderDialog() {
- Context context = getContext2();
- if (null == context) {
- return;
- }
- final String uploader = getUploader();
- if (null == uploader) {
- return;
- }
-
- new AlertDialog.Builder(context)
- .setMessage(getString(R.string.block_the_uploader, uploader))
- .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (DialogInterface.BUTTON_POSITIVE != which) {
- return;
- }
-
- Filter filter = new Filter();
- filter.mode = EhFilter.MODE_UPLOADER;
- filter.text = uploader;
- EhFilter.getInstance().addFilter(filter);
-
- showTip(R.string.filter_added, LENGTH_SHORT);
- }
- }).show();
- }
-
- private void addTagFilter(String tag) {
- Filter filter = new Filter();
- filter.mode = EhFilter.MODE_TAG;
- filter.text = tag;
- EhFilter.getInstance().addFilter(filter);
- showTip(R.string.filter_added, LENGTH_SHORT);
- }
-
private void showTagDialog(final String tag) {
final Context context = getContext2();
if (null == context) {
@@ -1387,9 +1346,6 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
case 0:
UrlOpener.openUrl(context, EhUrl.getTagDefinitionUrl(tag2), false);
break;
- case 1:
- addTagFilter(tag);
- break;
}
}
}).show();
@@ -1402,9 +1358,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
return false;
}
- if (mUploader == v) {
- showBlockUploaderDialog();
- } else if (mDownload == v) {
+ if (mDownload == v) {
GalleryInfo galleryInfo = getGalleryInfo();
if (galleryInfo != null) {
CommonOperations.startDownload(activity, galleryInfo, true);
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 4af33fdc0..7e27908f4 100755
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -319,7 +319,6 @@
Galerie in der ausgeschlossenen Namensraum werden vom Standard-Etikett-Suchen versteckt
Japanische Titel anzeigen
Filter
- Nach Titel, Hochlader, Etikett und Etikett-Namensraum filtern
Achtung auf mobile Daten anzeigen
Lesen
Richtung des Bildschirms
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index d774d6a16..07c353baf 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -370,7 +370,6 @@
Mostrar número de páginas de la galería
Se verá cuántas páginas tiene una galería
Filtros
- Filtrar por titulo, uploader, etiqueta y etiquetas variables
Advertencia de redes moviles
Lectura
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 7490b6c1e..f0d8100d3 100755
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -393,7 +393,6 @@
Exclure espaces de nom spécifiées de une recherche de tag par défaut
Montrer les titres japonais
Filtre
- Filtrer par le titre, l\'uploader, le tag et l\'espace de nom
Avertissement de données mobiles
Lecture
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 1e3e2dd5d..f58b66bfa 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -391,7 +391,6 @@
指定した言語のギャラリーをホームページと検索から隠す
日本語タイトルを表示
フィルター
- タイトル、アップローダ、タグとタグセットをフィルター
モバイルネットワーク警告
閲覧
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 80e315dac..98ba087b8 100755
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -414,7 +414,6 @@
Placeholder
https://placeholder
필터
- 제목, 업로더, 태그 및 태그 네임스페이스를 기반으로 필터링
모바일 데이터 경고
읽기
diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml
index d1ecefd12..82c025a7c 100644
--- a/app/src/main/res/values-th/strings.xml
+++ b/app/src/main/res/values-th/strings.xml
@@ -432,7 +432,6 @@
Placeholder
https://placeholder
ตัวกรอง
- กรองโดยชื่อเรื่อง, ผู้อัพโหลด, แท็ก และแท็กเนมสเปซ
เตือนการใช้เครือข่ายมือถือ
การอ่าน
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 4c011bd53..6db0ac1b1 100755
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -450,7 +450,7 @@
补充翻译(由 EhTagTranslator 提供)
https://github.com/Mapaler/EhTagTranslator/wiki
过滤
- 过滤标题,上传者,标签和标签组
+ 请使用 EHentai 网站提供的过滤系统。查看 EHentai 设置 与 我的标签
移动网络警告
阅读
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 0890a3a64..b9ee618e1 100755
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -449,7 +449,7 @@
補充翻譯(由 EhTagTranslator 提供)
https://github.com/Mapaler/EhTagTranslator/wiki
過濾
- 過濾標題,上傳者,標籤和標籤組
+ 請使用 EHentai 網站提供的過濾系統。查看 EHentai 設置 與 我的標籤
移動網絡警告
閲讀
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index d40144cdc..8a09f0d22 100755
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -449,7 +449,7 @@
補充翻譯(由 EhTagTranslator 提供)
https://github.com/Mapaler/EhTagTranslator/wiki
篩選
- 篩選標題,上傳者,標籤和標籤命名空間
+ 請使用 EHentai 網站提供的過濾系統。檢視 EHentai 設定 與 我的標籤
行動數據警告
閱讀
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 77db2766d..e403cca37 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -493,7 +493,7 @@
Placeholder
https://placeholder
Filter
- Filter by title, uploader, tag and tag namespace
+ Please use the filter system provided by EHentai website. Check EHentai settings and My tags
Cellular network warning
Read
diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml
index a8ae33ae9..a78fcc95b 100644
--- a/app/src/main/res/xml/eh_settings.xml
+++ b/app/src/main/res/xml/eh_settings.xml
@@ -133,8 +133,7 @@
+ android:summary="@string/settings_eh_filter_summary"/>