From d731719f1c3e098eea9c59744ed6654dad7ef127 Mon Sep 17 00:00:00 2001 From: seven332 Date: Fri, 22 Mar 2019 14:36:35 +0800 Subject: [PATCH] Add readonly FilterActivity --- app/src/main/AndroidManifest.xml | 6 + .../com/hippo/ehviewer/ui/FilterActivity.java | 159 ++++++++++++++++++ app/src/main/res/drawable/v_copy_x24.xml | 29 ++++ app/src/main/res/layout/item_filter.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/pathdata.xml | 1 + app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/eh_settings.xml | 3 +- 10 files changed, 204 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/hippo/ehviewer/ui/FilterActivity.java create mode 100644 app/src/main/res/drawable/v_copy_x24.xml 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"/>