From 8e0cba644a6edae90c1b705bcbb755a714df97ba Mon Sep 17 00:00:00 2001
From: NekoInverter <42698724+NekoInverter@users.noreply.github.com>
Date: Wed, 25 Mar 2020 22:25:00 +0800
Subject: [PATCH] Add download filter, close #1
---
.github/workflows/android.yml | 4 +--
.../ehviewer/ui/scene/DownloadsScene.java | 33 ++++++++++++++++---
.../main/res/drawable/v_filter_dark_x24.xml | 9 +++++
app/src/main/res/menu/scene_download.xml | 8 ++++-
app/src/main/res/values-zh-rCN/strings.xml | 2 ++
app/src/main/res/values/arrays.xml | 9 +++++
app/src/main/res/values/strings.xml | 2 ++
7 files changed, 59 insertions(+), 8 deletions(-)
create mode 100644 app/src/main/res/drawable/v_filter_dark_x24.xml
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index b692dd415..6ac5c3a9a 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -35,8 +35,8 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
- tag_name: SNAPSHOT-${{ github.sha }}
- release_name: SNAPSHOT-${{ github.sha }}
+ tag_name: 1.7.4_${{ github.run_id }}
+ release_name: 1.7.4_${{ github.run_id }}
body: ""
draft: false
prerelease: true
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java
index 5ec255640..e5af07152 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java
@@ -147,6 +147,8 @@ public class DownloadsScene extends ToolbarScene
private List mLabels;
+ private int mType = -1;
+
private static void deleteFileAsync(UniFile... files) {
new AsyncTask() {
@Override
@@ -259,17 +261,28 @@ public class DownloadsScene extends ToolbarScene
if (null == mDownloadManager) {
return;
}
-
+ List list;
if (mLabel == null) {
- mList = mDownloadManager.getDefaultDownloadInfoList();
+ list = mDownloadManager.getDefaultDownloadInfoList();
} else {
- mList = mDownloadManager.getLabelDownloadInfoList(mLabel);
- if (mList == null) {
+ list = mDownloadManager.getLabelDownloadInfoList(mLabel);
+ if (list == null) {
mLabel = null;
- mList = mDownloadManager.getDefaultDownloadInfoList();
+ list = mDownloadManager.getDefaultDownloadInfoList();
}
}
+ if (mType != -1) {
+ mList = new ArrayList<>();
+ for (DownloadInfo info : list) {
+ if (info.state == mType) {
+ mList.add(info);
+ }
+ }
+ } else {
+ mList = list;
+ }
+
if (mAdapter != null) {
mAdapter.notifyDataSetChanged();
}
@@ -505,6 +518,16 @@ public class DownloadsScene extends ToolbarScene
int id = item.getItemId();
switch (id) {
+ case R.id.action_filter: {
+ new MaterialAlertDialogBuilder(requireActivity())
+ .setSingleChoiceItems(R.array.download_state, mType + 1, (dialog, which) -> {
+ mType = which - 1;
+ updateForLabel();
+ dialog.dismiss();
+ })
+ .show();
+ return true;
+ }
case R.id.action_start_all: {
Intent intent = new Intent(activity, DownloadService.class);
intent.setAction(DownloadService.ACTION_START_ALL);
diff --git a/app/src/main/res/drawable/v_filter_dark_x24.xml b/app/src/main/res/drawable/v_filter_dark_x24.xml
new file mode 100644
index 000000000..c0a535546
--- /dev/null
+++ b/app/src/main/res/drawable/v_filter_dark_x24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/menu/scene_download.xml b/app/src/main/res/menu/scene_download.xml
index a5f258dea..a9073146e 100644
--- a/app/src/main/res/menu/scene_download.xml
+++ b/app/src/main/res/menu/scene_download.xml
@@ -17,11 +17,17 @@
纯黑深色主题
+ 过滤
+ 全部
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index c696247ed..207c5a831 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -292,4 +292,13 @@
- 1
- 2
+
+
+ - @string/download_all
+ - @string/download_state_none
+ - @string/download_state_wait
+ - @string/download_state_downloading
+ - @string/download_state_finish
+ - @string/download_state_failed
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 310c717e7..63ac024f5 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -777,4 +777,6 @@
Follow system
Black dark theme
+ Filter
+ All