diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dbc7d9003..82b3bae19 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -152,6 +152,12 @@
android:theme="@style/AppTheme.Toolbar"
android:label="@string/license"/>
+
+
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 = EhDB.getAllFilter();
+
+ 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 onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ private class FilterHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+
+ private final TextView text;
+ private final ImageView icon;
+
+ public FilterHolder(View itemView) {
+ super(itemView);
+ text = itemView.findViewById(R.id.text);
+ icon = itemView.findViewById(R.id.icon);
+ icon.setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
+ if (clipboard != null) {
+ clipboard.setPrimaryClip(ClipData.newPlainText("filter", text.getText().toString()));
+ Snackbar.make(v, R.string.copied_to_clipboard, 3000).show();
+ }
+ }
+ }
+
+ private class FilterAdapter extends RecyclerView.Adapter {
+
+ @NonNull
+ @Override
+ public FilterHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new FilterHolder(getLayoutInflater().inflate(R.layout.item_filter, parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull FilterHolder holder, int position) {
+ if (null == mFilterList) {
+ return;
+ }
+
+ Filter filter = mFilterList.get(position);
+ holder.text.setText(filter.text);
+ }
+
+ @Override
+ public int getItemCount() {
+ return null != mFilterList ? mFilterList.size() : 0;
+ }
+ }
+}
diff --git a/app/src/main/res/drawable/v_copy_x24.xml b/app/src/main/res/drawable/v_copy_x24.xml
new file mode 100644
index 000000000..284e254ce
--- /dev/null
+++ b/app/src/main/res/drawable/v_copy_x24.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_filter.xml b/app/src/main/res/layout/item_filter.xml
index 379180462..e8d727933 100644
--- a/app/src/main/res/layout/item_filter.xml
+++ b/app/src/main/res/layout/item_filter.xml
@@ -33,10 +33,12 @@
android:orientation="horizontal">
+ android:padding="12dp"
+ app:srcCompat="@drawable/v_copy_x24"/>
显示翻译后的标签而非原始文字(需花费时间来下载数据文件)
补充翻译(由 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 bfb0958ee..c6fe2dfb9 100755
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -451,7 +451,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 1f41dadd5..ab44cf90f 100755
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -451,7 +451,7 @@
顯示翻譯後的標籤而非原始文字(需花費時間來下載資料檔案)
補充翻譯(由 EhTagTranslator 提供)
https://github.com/Mapaler/EhTagTranslator/wiki
- 篩選
+ 篩選(已失效)
請使用 EHentai 網站提供的過濾系統。檢視 EHentai 設定 與 我的標籤
行動數據警告
diff --git a/app/src/main/res/values/pathdata.xml b/app/src/main/res/values/pathdata.xml
index e704bad03..8b8c1ea7f 100644
--- a/app/src/main/res/values/pathdata.xml
+++ b/app/src/main/res/values/pathdata.xml
@@ -64,6 +64,7 @@
M3,15H21V13H3V15M3,19H21V17H3V19M3,11H21V9H3V11M3,5V7H21V5H3Z
M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M6,20H15L18,20V12L14,16L12,14L6,20M8,9A2,2 0 0,0 6,11A2,2 0 0,0 8,13A2,2 0 0,0 10,11A2,2 0 0,0 8,9Z
M20,8H4V6h16V8 M18,2H6v2h12V2 M20,10H4c-1.1,0-2,0.9-2,2v8c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2v-8C22,10.9,21.1,10,20,10zM11,14H7v1h4v2H7v1h4v2H5v-8h6V14z M19,20h-2v-3h-2v3h-2v-8h2v3h2v-3h2V20z
+ M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z
M12.88,2H4V11L14.97,22.14L24,13.1L12.88,2ZM7.26,5.26C7.96,4.58,9.06,4.58,9.74,5.26C10.42,5.96,10.42,7.06,9.74,7.74S7.94,8.42,7.26,7.74S6.58,5.94,7.26,5.26ZM14.98,19.3L8.76,12.95L14.88,6.83L21.18,13.11L14.98,19.31ZM11.6,21.56L10.23,23L0,12.74V5H2V11.9L11.6,21.56Z
M20.46,14.65C21.86,16.15,20.31,18.6,18.32,17.87C19.78,17.57,20.79,16.37,20.46,14.65ZM4.32,17.87C6.32,18.6,7.86,16.17,6.46,14.65C6.79,16.38,5.78,17.55,4.32,17.87ZM16.87,4.3C16.6,3.56,15.87,3,15,3C13.7,3,12.7,4.24,13.1,5.58C14.2,5.18,15.44,4.48,16.87,4.31ZM24,16C24,18.76,21.76,21,19,21C14.96,21,14.84,16.88,12,16.88S9.04,21,5,21C2.24,21,0,18.76,0,16C0,13.87,1.53,11.43,3.94,7.18C5.84,3.81,8.69,5.92,10.76,6.58C11.54,6.85,12.41,6.88,13.24,6.58C15.3,5.92,18.14,3.81,20.06,7.18C22.46,11.43,24,13.88,24,16ZM8,16C8,14.35,6.65,13,5,13S2,14.35,2,16S3.35,19,5,19S8,17.65,8,16ZM13,14C13,13.45,12.55,13,12,13S11,13.45,11,14S11.45,15,12,15S13,14.55,13,14ZM22,16C22,14.35,20.65,13,19,13S16,14.35,16,16S17.35,19,19,19S22,17.65,22,16ZM9,3C8.14,3,7.4,3.55,7.13,4.3C8.56,4.48,9.79,5.2,10.9,5.58C11.3,4.24,10.3,3,9,3Z
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c32505f95..6c082606a 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -495,7 +495,7 @@
Show tag translations instead of the original text (It takes time to download the data file)
Placeholder
https://placeholder
- Filter
+ Filter (Invalid)
Please use the filter system provided by EHentai website. Check EHentai settings and My tags
Cellular network warning
diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml
index a78fcc95b..a8ae33ae9 100644
--- a/app/src/main/res/xml/eh_settings.xml
+++ b/app/src/main/res/xml/eh_settings.xml
@@ -133,7 +133,8 @@
+ android:summary="@string/settings_eh_filter_summary"
+ app:activity="com.hippo.ehviewer.ui.FilterActivity"/>