# docs/files.md
# Files Page
The Files page loads your recent files from the server.
- Loads a [configurable number](settings.md#files-per-page) of recent files from the server.
- Loads more pages as you scroll down until the list is exhausted.
- List is cached while using the app. Pull down from the top to refresh.
- Media is cached and does not download over metered connections [unless enabled](settings.md#load-images-on-metered-connection).
- Clicking on an item opens a preview and downloads it from the server if not cached.
[[toc]]
## List Display
- File Preview (Images and Videos)
- File Name (Original Name)
- File Size (Human Size)
- Number of Views
- Favorite Status
- Password Status
::: tip NOTICE
In a future version of the server (trunk) views are counted on the raw endpoint.
This means the file list will trigger 1 view (but only 1 since the image is cached after that) when loading the file.
This will be fixed in a future release after the server version goes live.
:::
## Menu Options
- Download
- Delete
- Favorite
- Share Link
- Copy Link
- Open Link
## Bulk Options
- Download
- Delete
- Favorite
## File Preview
Click on any file to view a preview. Previews exist for the following media types:
- Video and Audio Files _([Media3](https://github.com/androidx/media))_
- Images and Animated Graphics _([Glide](https://github.com/bumptech/glide))_
- Text with Syntax Highlighting _([HighlightJS](https://github.com/highlightjs/highlight.js))_
---
# docs/home.md
# Home Page
The Home page is the full website, in the application.
The **start destination** can be set to this page, or the [Files page](/docs/files.md), in the [Application Settings](/docs/settings.md#start-destination).
::: info
This view will eventually be deprecated once all native features are added.
:::
Native Features:
- [Files](files.md)
- [User](user.md)
- [Settings](settings.md)
- [Upload](upload.md)
- [Widget](widget.md)
_There is also an [Uploading Guide](../guides/uploading.md)._
## Technical
This uses the Android System WebView to load the full Zipline website in the application.
- After logging in the cookie is saved to the WebView storage.
- If you log out in the WebView, you will have to manually log back in.
- If you clear your sessions, you will be logged out of the WebView.
The application, including uploads, will continue to work normally if logged out of the WebView.
::: tip NOTICE
The session bug is fixed in server version `4.2.2` or later. Upgrading the server will fix this issue.
Furthermore, this restriction will be re-enforced in a later version to prevent views from being counted in the file list.
More info on the [Files - List Display](files.md#list-display).
:::
---
# docs/settings.md
# Settings Page
The Settings page lets you configure how the application works.
[[toc]]
## Application Settings
### Start Destination
Select which page is displayed when you launch the application.
Can be the [Home page](home.md) or [File page](files.md).
### Show Share after Upload
After a file is uploaded or URL shortened, the link is copied to the clipboard automatically.
If you prefer to use the share sheet to re-share the link, enable this to automatically show the dialog after every upload.
### Custom Headers
These custom headers are added to every request, including the Home WebView, for use with services like Cloudflare Zero Trust.
## Upload Settings
These are global [Zipline Upload Options](https://zipline.diced.sh/docs/guides/upload-options) applied to every upload.
### Save Original Filename
In Zipline the original filename is stored as a metadata field on the file object.
Turn this off to disable this behavior.
### File Name Option
Sets the [Zipline Filename Option](https://zipline.diced.sh/docs/guides/upload-options#file-name-format) used when uploading files.
The default is `Random`.
::: tip NOTE
Setting this to `Name` will cause subsequent uploads with the same name to fail.
:::
### File Folder
Select a default folder for all uploads (can be overridden on a per-upload basis).
### Image Compression Percent
Note that 100% is maximum quality and may result in files being larger than the source.
Set this to `0` to disable compression (default).
## File List
### Auto Play Media
Automatically plays media files (if applicable) when clicking on them from the file list.
### Files Per Page
This sets the number of files loaded when you first visit the files page, and the number of files loaded as you scroll down.
_If you set this number too low (less than fills the screen) the app will continue fetching more pages until the view port is filled._
### Load Images on Metered Connection
When on a metered connection, a warning is displayed and images that are not already cached are not loaded.
Clicking on an item and opening the preview, always downloads the media if not already cached, regardless of this setting.
## Widget Settings
You can configure the widget:
- Text Color
- Background Color
- Background Opacity
### Update Interval
This is how frequently the application updates data from the server in the background.
Set this to `Disabled` prevent any background updates.
You can enable or disabling updating the following data:
- User Stats (required for Widget)
- User Profile
- User Avatar
::: tip NOTE
The only way to disable the background task is to set **Update Interval** to `Disabled`.
:::
For more details on updates see [Widget - Updates](widget.md#updates).
## Debugging
Enabling debugging will log various actions, such as background updates and login attempts, to a file for later review.
This simply appends log lines to a text file which is shown in reverse in the application (newest lines at the top). You can clear it at any time from the settings.
::: details Click Here for more details
You can view the currently configured logging [on GitHub](https://github.com/search?q=repo%3Acssnr%2Fzipline-android%20debuglog%28%22&type=code) (if logged in).
:::
---
# docs/upload.md
# Upload
This section documents the upload dialogs shown when sharing files, text and URLs.
[[toc]]
_There is also an [Uploading Guide](../guides/uploading.md)._
## Upload Options
The following options are configurable on a per-upload basis for all files:
- Folder
- Password
- Max Views
- Deletes At - _[Examples](https://zipline.diced.sh/docs/guides/ms)_
- Image Compression
Default Options can be configured in the [Settings](settings.md#upload-settings). This includes Original Filename and File Name Option.
## Upload File
When sharing a single file a preview similar to the [file list preview](files.md#file-preview) is shown.
Additional Options:
- File Name
## Upload Multiple Files
When sharing multiple files they are shown in a grid allowing you to manage the selection and set options before uploading.
In this view only Images are shown in the preview, similar to the file list.
Additional Options:
- Select Files
## Share Text
When sharing text, you can edit the text before uploading.
If you don't set a filename `paste.txt` is used (will eventually be an option in setting).
Additional Options:
- Edit Text
- File Name
## Short URL
When shortening a URL, you can edit the URL and vanity before shortening.
Additional Options:
- Exit URL
- Vanity Name
---
# docs/user.md
# User Page
The User page allows editing your user profile and settings.
::: tip NOTE
This page was released for functionality. The User Experience and Design are being improved.
:::
[[toc]]
## All Users
The following details can be directly managed:
- Copy Auth Token
- Change Username
- Change Password
- Enable/Disable TOTP
- Change Avatar (allows cropping)
- Remove Avatar
Additionally, you can:
- Refresh Profile
- Refresh Stats
- Refresh Avatar
- Share Avatar
- Log Out
## Administrators
The following administrative tasks can be run:
- Generate Thumbnails
- Clear Temp Files
- Clear Zero-Byte Files
---
# docs/widget.md
# Widget
You can add a stats widget to the home screen to display [stats](#stats) and provide [functions](#functions).

[[toc]]
## Stats
The widget displays the following stats:
- Total Number of Files
- Total Size of Files
- Last Updated Time
_Note: is the client last updated time and not server generation time since this endpoint does not return updatedAt._
## Functions
The widget has the following functions:
- Upload Button
- Refresh Button
- Launch Application
## Updates
The widget [update interval](../docs/settings#update-interval) can be configured in [settings](../docs/settings.md).
This uses the [Android Work Manager](https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started)
so the shortest configurable interval is 15 minutes.
Choose when and how it runs:
- Configurable Update Interval
- Disabled on Metered Connections
Choose which tasks run:
- Stats
- Profile
- Avatar _(may increase data usage)_
For more details on updates see [Settings - Update Interval](settings#update-interval).
## Display
You can customize look and feel of the widget:
- Text Color
- Background Color
- Background Opacity
- Size (2x1 minimum)
---
# faq.md
# Frequently Asked Questions
Help and FAQ
If none of these [Questions](#questions-and-answers) or [Troubleshooting Steps](#troubleshooting-steps) help, please [reach out to support](support.md).
::: warning IMPORTANT
Zipline Server [v4.4.1](https://github.com/diced/zipline/releases/latest) requires Client [v1.0.32](https://github.com/cssnr/zipline-android/releases/latest) or greater to Authenticate.
For more details see the release notes, [release v1.0.32](https://github.com/cssnr/zipline-android/releases/tag/1.0.32)
:::
::: warning IMPORTANT
Zipline Server [v4.3.0](https://github.com/diced/zipline/releases/latest) requires Client [v1.0.29](https://github.com/cssnr/zipline-android/releases/latest) or greater to Upload Files.
For more details or to provide feedback, [join the discussion on GitHub](https://github.com/cssnr/zipline-android/discussions/87)
:::
## Questions and Answers
๐ก _Click on the question to expand/collapse the answer._
Unable to Log into the Application
If you are not sure why you can't log in, enable the [Debug Logs](docs/settings.md#debugging) then attempt to log in again.
From there you can open the debug logs and get more information on the failure.
If you are unable to determine the reason for the failure,
please [contact support](support.md) with the error logs for more assistance.
---
Error when Uploading a File or Short URL
If you do not get a useful error message, enable [Debug Logging](docs/settings.md#debugging) in the Client Application.
You can also check the Zipline server logs for additional information on 500 Errors.
If the issue is not clear, please [contact support](support.md) with the debug and server logs.
::: tip NOTICE
If you are using server version [v4.3.0](https://github.com/diced/zipline/releases/latest) or later, you need to use Client Version `1.0.29` or later.
:::
---
The Application or WebView becomes Logged out
This only happens when your session is removed from the server.
If you click Log out everywhere, this includes the mobile application.
::: tip NOTICE
Make sure you are using server version 4.2.2 or later. [Releases](https://github.com/diced/zipline/releases)
:::
---
Don't see your question here? Please [let us know](support.md) what it is.
## Troubleshooting Steps
- Most navigation and display issues can be fixed by fully closing the app and restarting it.
- If you encounter issues with the media in the file list, try clearing the application cache.
- If you encounter issues with authentication, try clearing the application data (full reset).
If everything else fails, please [let us know](support.md) what happened.
## App Comparison
These are other Android applications designed to work with the Zipline server.
| GitHub Repository | Program Language | APK Size | Repo Size | Downloads |
| :---------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| [cssnr/zipline-android](https://github.com/cssnr/zipline-android) | [](https://github.com/cssnr/zipline-android?tab=readme-ov-file#readme) | [](https://github.com/cssnr/zipline-android/releases/latest) | [](https://github.com/cssnr/zipline-android?tab=readme-ov-file#readme) | [](https://tooomm.github.io/github-release-stats/?username=cssnr&repository=zipline-android) |
| [Stef-00012/Zipline-Android-App](https://github.com/Stef-00012/Zipline-Android-App) | [](https://github.com/Stef-00012/Zipline-Android-App?tab=readme-ov-file#readme) | [](https://github.com/Stef-00012/Zipline-Android-App/releases/latest) | [](https://github.com/Stef-00012/Zipline-Android-App?tab=readme-ov-file#readme) | [](https://tooomm.github.io/github-release-stats/?username=Stef-00012&repository=Zipline-Android-App) |
| [nikolanovoselec/zipline-native](https://github.com/nikolanovoselec/zipline-native) | [](https://github.com/nikolanovoselec/zipline-native?tab=readme-ov-file#readme) | [](https://github.com/nikolanovoselec/zipline-native/releases/latest) | [](https://github.com/nikolanovoselec/zipline-native?tab=readme-ov-file#readme) | [](https://tooomm.github.io/github-release-stats/?username=nikolanovoselec&repository=zipline-native) |
If there are any features you want to see, [please let us know](support.md)...
---
# guides/features.md
# Features
A Native Kotlin Android Application with a Mobile First Design.
Everything is cached and images are not downloaded over metered connections unless enabled.
User profile and stats widget are updated in the background with a user configurable task.
Please submit a [Feature Request](https://github.com/cssnr/zipline-android/issues/new?template=1-feature.yaml) for any features you would like to see.
[[toc]]
## Screenshots ๐ธ {#screenshots}
## Uploading
Supports all Files, Text and Short URLs. Works with both **Share** and **Open With** actions.
### Files and Text
- Folder
- Password
- Max Views
- Deletes At
- File Name Format
- Custom File Name
- Image Compression Percent
### Short URLs
- Vanity Name
_For more info see the [Uploading Docs](../docs/upload.md)._
## File List
Native File List with multi-select, edit and delete.
- Multi-Select
- Infinite Scroll
- Download, Edit or Delete
_For more info see the [Files Docs](../docs/files.md)._
## Management
Allows editing your user and server management.
### All Users
- Username
- Password
- Copy Token
- Enable/Disable TOTP
- Change Avatar (Cropper)
### Administrators
- Generate Thumbnails
- CLear Temp Files
- Clear Zero-Byte Files
- Requery File Sizes
_For more info see the [User Docs](../docs/user.md)._
## Stats Widget
You can add a stats widget to the home screen to display stats and provide functions.
- Shows Total Files and Size
- Upload and Launch Shortcuts
_For more info see the [Widget Docs](../docs/widget.md)._
## Custom Headers
Allows adding and managing custom headers which are added to every request.
This allows use with services like Cloudflare Zero Trust.
_For more info see the [Settings Docs](../docs/settings.md#custom-headers)._
## Open to Share
Many application's don't support both Share and Open with intents.
Additionally, many applications don't offer both Share and Open when selecting files.
Zipline, however, supports both intents and allows re-sharing any file(s).
Because of this, you can open files with Zipline, then Share them to other supported apps.
---
---
# guides/get-started.md
# Get Started
Get started by [installing](#install) the application and [logging](#login) into your [server](#server).
You can view [screenshots ๐ธ](features.md#screenshots) on the [features](features.md) page.
::: danger :rotating_light: **Free and Open-Source Android is under threat!**
Google will turn Android into a locked-down platform, restricting your essential freedom to install apps of your choice. Make your voice heard โ [Keep Android Open](https://keepandroidopen.org/).
:::
_The GitHub APK has been registered with Google's [Android developer verification](https://developer.android.com/developer-verification)._
## Install
To begin, install the application on your device _(Android 8+ API 26+)_.
If you are unsure which provider to choose, [Obtainium](https://obtainium.imranr.dev/) is recommended.
::: details View QR Codes ๐ธ
[](https://github.com/django-files/android-client/releases/latest/download/app-release.apk)
[](https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://github.com/cssnr/zipline-android)
[](https://play.google.com/store/apps/details?id=org.cssnr.zipline)
:::
[](https://github.com/cssnr/zipline-android/releases/latest)
[](https://github.com/cssnr/zipline-android/releases)
_To install the apk directly you may need to allow installation from unknown sources.
For more information see, [Release through a website](https://developer.android.com/studio/publish#publishing-website)._
::: tip Google Play Notice
_Note: Google Play is in Closed Testing. To join please see [this discussion](https://github.com/cssnr/zipline-android/discussions/25)._
::: details More Info
Google Play requires at minimum 12 active testers for 2 weeks. They also track tester usage via Google Play installs.
Most of the testers did not install through [Google Play](https://play.google.com/store/apps/details?id=org.cssnr.zipline) and therefore could not be tracked by Google.
Because of this, Google rejected the Play Store application for not enough tester usage.
:::
```
EE:11:BC:4B:22:05:85:EF:A1:17:CE:09:AA:43:EA:AF:08:8D:4D:D8:7D:F0:29:2F:E4:40:B2:AC:BC:0F:B7:E6
```
[_How to Verify an APK Signature_](https://developer.android.com/tools/apksigner#usage-verify)
## Login
To log in you need to enter your Zipline Server URL, Username and Password.
You can copy the URL from your web browser, paste everything before `dashboard`.
If you have Two-Factor enabled you will be prompted to enter a code after successful login.
Additionally, you can add [Custom Headers](../docs/settings.md#custom-headers) or enable [Debug Logging](../docs/settings.md#debugging).
You can now start [uploading](uploading.md) files and text or create [short URL's](uploading.md#text-or-url).
::: tip โ HELP
If you have any trouble getting started, check out the [FAQ](../faq.md) or [contact support](../support.md).
:::
## Server
This guide assumes you have a [diced/zipline](https://github.com/diced/zipline) server setup and accessible.
If not you can [get started here](https://zipline.diced.sh/docs/get-started). Only version 4 is supported.
---
# guides/uploading.md
# Uploading
You can share any media to Zipline, including files, text, and links (to shorten).
[[toc]]
## Files
1. From any application, select any file, or multiple files.
2. Choose either Share or Open (**Zipline** supports both).
3. Select **Zipline** as the destination application.
This will open the selected file(s) in the Zipline Application where you can preview them,
verify the selection, and set options before uploading.
After uploading the URL(s) are automatically copied to the clipboard
and, if enabled, the [share dialog](../docs/settings.md#show-share-after-upload) will be shown.
You can now use the [file list](../docs/files.md) to view, edit, and download files.
## Text or URL
This works the same as [Files](#files), except you select text or links, then choose Share.
1. Select any text or click on a link in your address bar.
2. Click the Share option and select **Zipline** as the destination.
3. Verify, edit, and optionally set a Vanity for Links before uploading.
You will have the option to edit the text, link, file name, or vanity URL before proceeding.
Similar to files, the resulting URL is automatically copied to the clipboard,
and the [share dialog](../docs/settings.md#show-share-after-upload) can be automatically shown.
---
For additional details on uploading, see the [Upload Documentation](../docs/upload.md).
::: tip โ HELP
If you have any trouble uploading, check out the [FAQ](../faq.md) or [contact support](../support.md).
:::
---
# support.md
# Support
[](https://github.com/cssnr/zipline-android/issues/new?template=1-feature.yaml)
[](https://github.com/cssnr/zipline-android/issues)
[](https://github.com/cssnr/zipline-android/discussions)
[](https://discord.gg/wXy6m2X8wY)
If you have any troubles using the application, or run into any issues, please let us know!
Every bug that can be reproduced will be fixed and Feature Request are highly desired.
Contributing is as easy as telling us [what features or changes](https://github.com/cssnr/zipline-android/issues/new?template=1-feature.yaml) you want to see nextโฆ
[[toc]]
### GitHub Discussions
If you have a question or need help with anything,
start a discussion in [General](https://github.com/cssnr/zipline-android/discussions/categories/general)
or [Q&A](https://github.com/cssnr/zipline-android/discussions/categories/q-a).
If you want to see a new feature, please submit a [Feature Request](https://github.com/cssnr/zipline-android/issues/new?template=1-feature.yaml).
[](https://github.com/cssnr/zipline-android/discussions)
### GitHub Issues
If you run into any problems or find a bug, please [open an issue](https://github.com/cssnr/zipline-android/issues).
**These reports are treated with the highest priority.**
[](https://github.com/cssnr/zipline-android/issues)
### Discord Chat
You can chat with us about anything [on discord](https://discord.gg/wXy6m2X8wY).
From here you can contact me directly, `Shane@111150265075298304`.
[](https://discord.gg/wXy6m2X8wY)
### Additional Links
View more Zipline products.
- [Zipline CLI](https://zipline-cli.cssnr.com/) - [Source Code](https://github.com/cssnr/zipline-cli?tab=readme-ov-file#readme)
- [Zipline Web Extension](https://zipline-extension.cssnr.com/) - [Source Code](https://github.com/cssnr/zipline-extension?tab=readme-ov-file#readme)
- [Zipline Android Application](https://zipline-android.cssnr.com/) - [Source Code](https://github.com/cssnr/zipline-android?tab=readme-ov-file#readme)
More information available at: [https://cssnr.com/](https://cssnr.com/)
[{ width="360" }](https://ko-fi.com/cssnr)