diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 35b316a..6214e0a 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -34,7 +34,7 @@ jobs: continue-on-error: true run: env - - name: "Kotlin Lint" + - name: "ktlint" if: ${{ !cancelled() }} continue-on-error: true # TODO: Resolve KTLint Issues env: @@ -47,7 +47,7 @@ jobs: ${{ env.klint }} --version ${{ env.klint }} --color 'app/src/main/java/**' - - name: "Prettier" + - name: "prettier" if: ${{ !cancelled() }} run: | echo "::group::Install" @@ -71,7 +71,7 @@ jobs: with: shellcheck_opts: -e SC2129 - - name: "ShellCheck" + - name: "shellcheck" if: ${{ !cancelled() }} uses: ludeeus/action-shellcheck@master env: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0d8cf8b..b8032a0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -97,10 +97,10 @@ jobs: echo ${{ secrets.ANDROID_KEYSTORE_PASS }} | keytool -list -keystore ${{ env.key_file }} - - name: "Setup Node 22" + - name: "Setup Node 24" uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 - name: "Prepare Build" working-directory: ".github/scripts" diff --git a/README.md b/README.md index 009eec3..54c4820 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![GitHub Downloads](https://img.shields.io/github/downloads/cssnr/zipline-android/total?logo=android)](https://github.com/cssnr/zipline-android/releases/latest/download/app-release.apk) [![GitHub Release Version](https://img.shields.io/github/v/release/cssnr/zipline-android?logo=github&label=latest)](https://github.com/cssnr/zipline-android/releases/latest) -[![Workflow Lint](https://img.shields.io/github/actions/workflow/status/cssnr/zipline-android/lint.yaml?logo=testcafe&logoColor=white&label=lint)](https://github.com/cssnr/zipline-android/actions/workflows/lint.yaml) -[![Workflow Release](https://img.shields.io/github/actions/workflow/status/cssnr/zipline-android/release.yaml?logo=testcafe&logoColor=white&label=release)](https://github.com/cssnr/zipline-android/actions/workflows/release.yaml) +[![Workflow Lint](https://img.shields.io/github/actions/workflow/status/cssnr/zipline-android/lint.yaml?logo=norton&logoColor=white&label=lint)](https://github.com/cssnr/zipline-android/actions/workflows/lint.yaml) +[![Workflow Release](https://img.shields.io/github/actions/workflow/status/cssnr/zipline-android/release.yaml?logo=norton&logoColor=white&label=release)](https://github.com/cssnr/zipline-android/actions/workflows/release.yaml) [![AGP Version](https://img.shields.io/badge/dynamic/toml?logo=gradle&label=agp&query=%24.versions.agp&url=https%3A%2F%2Fraw.githubusercontent.com%2Fcssnr%2Fzipline-android%2Frefs%2Fheads%2Fmaster%2Fgradle%2Flibs.versions.toml)](https://github.com/cssnr/zipline-android/blob/master/gradle/libs.versions.toml#L2) [![GitHub Docs Last Commit](https://img.shields.io/github/last-commit/cssnr/zipline-android-docs?logo=vitepress&logoColor=white&label=docs)](https://zipline-android.cssnr.com/) [![GitHub Last Commit](https://img.shields.io/github/last-commit/cssnr/zipline-android?logo=listenhub&label=updated)](https://github.com/cssnr/zipline-android/pulse) @@ -43,7 +43,7 @@ User profile and stats widget are updated in the background with a user configur _We are also developing a browser addon for all major browsers including Firefox Android: [Zipline Web Extension](https://github.com/cssnr/zipline-extension?tab=readme-ov-file#readme)_ -[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=googledocs&logoColor=white)](https://zipline-android.cssnr.com/) +[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=quicklook)](https://zipline-android.cssnr.com/) ## Install @@ -87,7 +87,7 @@ should take you to the settings area to allow installation if not already enable -[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=googledocs&logoColor=white)](https://zipline-android.cssnr.com/) +[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=quicklook)](https://zipline-android.cssnr.com/guides/get-started) ### Setup @@ -111,8 +111,6 @@ The User Page can be used to edit your profile, avatar, and execute server actio ## Features -Features are documented [on the website](https://zipline-android.cssnr.com/guides/features). - - Share or Open any File, Media, Text or URL - Preview, Edit and set Options before Uploading - Native File List with Multi-Select, Edit and Delete @@ -121,6 +119,8 @@ Features are documented [on the website](https://zipline-android.cssnr.com/guide - User Configurable Background Update Task for Stats - Supports Two-Factor Authentication and Custom Headers +[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=quicklook)](https://zipline-android.cssnr.com/guides/features) + ### Planned - Update User Page UX @@ -196,7 +196,7 @@ A slideshow is available [on the website](https://zipline-android.cssnr.com/guid ## Support -[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=googledocs&logoColor=white)](https://zipline-android.cssnr.com/) +[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge&logo=googledocs&logoColor=white)](https://zipline-android.cssnr.com/faq) For general help or to request a feature, see: @@ -309,6 +309,8 @@ All contributions are welcome including [bug reports](https://github.com/cssnr/z [feature requests](https://github.com/cssnr/zipline-android/discussions/categories/feature-requests), or [pull requests](https://github.com/cssnr/zipline-extension/discussions) (please start a discussion). +If you would like to submit a PR, please review the [CONTRIBUTING.md](#contributing-ov-file). + ### Zipline Projects - [Zipline Web Extension](https://github.com/cssnr/zipline-extension?tab=readme-ov-file#readme) @@ -321,6 +323,7 @@ or [pull requests](https://github.com/cssnr/zipline-extension/discussions) (plea You can also star this project on GitHub and support other related projects: +- [ShareX CLI](https://github.com/cssnr/sharex-cli?tab=readme-ov-file#readme) - [Django Files Server](https://github.com/django-files/django-files?tab=readme-ov-file#readme) - [Django Files iOS App](https://github.com/django-files/ios-client?tab=readme-ov-file#readme) - [Django Files Android App](https://github.com/django-files/android-client?tab=readme-ov-file#readme) @@ -338,3 +341,11 @@ and [additional](https://cssnr.com/) open source projects. [![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/cssnr) For a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/) + + + + + + Star History Chart + + diff --git a/SECURITY.md b/SECURITY.md index ce52096..e5d874d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,5 +1,7 @@ # Security +[![Report a Vulnerability](https://img.shields.io/badge/Report_a_Vulnerability-34A853?style=for-the-badge)](https://github.com/cssnr/zipline-android/security/advisories/new) + We take security seriously. Please let us know if you find any vulnerabilities. > [!WARNING] @@ -15,10 +17,10 @@ Only the [latest version](https://github.com/cssnr/zipline-android/releases/late To report a security vulnerability, [click here](https://github.com/cssnr/zipline-android/security/advisories/new). -[![Static Badge](https://img.shields.io/badge/Report_a_Vulnerability-34A853?style=for-the-badge)](https://github.com/cssnr/zipline-android/security/advisories/new) +[![Report a Vulnerability](https://img.shields.io/badge/Report_a_Vulnerability-34A853?style=for-the-badge)](https://github.com/cssnr/zipline-android/security/advisories/new) --- -[README](https://github.com/cssnr/zipline-android/?tab=readme-ov-file#readme) | -[SECURITY](https://github.com/cssnr/zipline-android/?tab=security-ov-file) | -[PRIVACY](https://github.com/cssnr/zipline-android/blob/master/PRIVACY.md) +[README](#readme-ov-file) | +[SECURITY](#security-ov-file) | +[CONTRIBUTING](#contributing-ov-file) diff --git a/Taskfile.yml b/Taskfile.yml index 29a9b50..3519170 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -4,11 +4,11 @@ version: "3" tasks: lint: desc: Lint - cmd: | - prettier --check . - yamllint -c .github/yamllint.yaml . - actionlint -shellcheck="-e SC2129" - shellcheck .github/scripts/prepare.sh + cmds: + - prettier --check . + - yamllint -c .github/yamllint.yaml . + - actionlint -shellcheck="-e SC2129" + - shellcheck .github/scripts/prepare.sh format: desc: Format diff --git a/app/src/main/java/org/cssnr/zipline/ui/files/FilesFragment.kt b/app/src/main/java/org/cssnr/zipline/ui/files/FilesFragment.kt index 7cb1ece..a0ad5da 100644 --- a/app/src/main/java/org/cssnr/zipline/ui/files/FilesFragment.kt +++ b/app/src/main/java/org/cssnr/zipline/ui/files/FilesFragment.kt @@ -1,6 +1,7 @@ package org.cssnr.zipline.ui.files import android.app.DownloadManager +import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent import android.net.ConnectivityManager @@ -537,7 +538,13 @@ class FilesFragment : Fragment() { binding.downloadManager.setOnClickListener { Log.d("downloadManager", "setOnClickListener") - startActivity(Intent(DownloadManager.ACTION_VIEW_DOWNLOADS), null) + try { + startActivity(Intent(DownloadManager.ACTION_VIEW_DOWNLOADS)) + } catch (e: ActivityNotFoundException) { + Log.e("downloadManager", "No activity found to handle ACTION_VIEW_DOWNLOADS", e) + Toast.makeText(requireContext(), "Downloads App Unavailable!", Toast.LENGTH_LONG) + .show() + } } viewModel.snackbarMessage.observe(viewLifecycleOwner) { message ->