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"/>