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 @@ + + + app:showAsAction="ifRoom" /> 跟随系统 纯黑深色主题 + 过滤 + 全部 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