Skip to content

Commit

Permalink
Prepare for Release v1.11.0
Browse files Browse the repository at this point in the history
  • Loading branch information
x0b committed Mar 19, 2020
1 parent 6c57133 commit e559639
Show file tree
Hide file tree
Showing 15 changed files with 166 additions and 141 deletions.
99 changes: 48 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,44 @@
# RcloneExplorer
# RCX - Rclone for Android
[![license: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/x0b/rcloneExplorer/blob/master-x0b/LICENSE) [![Github Releases](https://img.shields.io/github/downloads/x0b/rcloneExplorer/total.svg)](https://github.com/x0b/rcloneExplorer/releases) [![GitHub release](https://img.shields.io/github/v/release/x0b/rcloneExplorer?include_prereleases)](https://github.com/x0b/rcloneExplorer/releases/latest) [![Google Play Pre-Registration](https://img.shields.io/badge/Google_Play-Pre%E2%80%93Registration-brightgreen)](https://forms.gle/5jLYhZwafx7nEfi16)

A Rclone based file explorer for Android

> **Security Notice:** Please make sure that you are running rcloneExplorer **1.9.0** or newer ([more details](https://github.com/x0b/rcloneExplorer/wiki/Security-Notice-201901:-Remote-contents-readable-from-local-network-when-browsing-any-remote-with-thumbnails-enabled.)).
A cloud file manager, powered by rclone.

🎉 We have rebranded to **RCX - Rclone for Android**. [Read more about the changes on the new website](https://x0b.github.io/posts/upcoming-changes-202001/).

Features
--------

Cloud Access | 256 Bit AES Encryption | Integrated Experience
:-----:|:--------------:|:-----------:
<img src="https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/cloud-computing.png?raw=true" alt="Cloud Access" width="192" /> | <img src="https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/locked-padlock.png?raw=true" alt="256 Bit AES End-to-End Encryption" width="144" /> | <img src="https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/smartphone.png?raw=true" alt="Integrated Experience" width="176"/>
Use your cloud storage as if it were a local folder | Keep your files private on any cloud provider | Open your files or send them to the cloud with other apps

### All features
- File Management
- List and view files
- Download and upload files
- Move, rename, and delete files and folders
- Streaming & Integration
- Stream media files
- Serve directories over FTP, HTTP or WebDAV
- Remotes
- Browse any type of rclone remote (with limitations on "local" remotes)
- Create new remotes in the app
- UI
- Dark theme
- Customizable primary and accent colors
- Configuration
- Import and export rclone configuration files
- Encrypted configurations (import only)
- Platform support
- Runs on ARM, ARM64, x86 and x64 devices
- Runs on Android 5 or newer ([see docs](https://github.com/x0b/rcloneExplorer/wiki#android-support-roadmap))
- Supports Storage Access Framework (SAF) ([see docs](https://github.com/x0b/rcloneExplorer/wiki#adding-local-storage-saf))
Use your cloud storage like a local folder | Keep your files private on any cloud provider with crypt remotes | Don't give up features or comfort just because it runs on a phone.

- **File Management** (list, view, download, upload, move, rename, delete files and folders)
- **Streaming** (Stream media files, serve files and directories over FTP, HTTP, WebDAV or DLNA)
- **Integration** (Access local storage devices and share files with the application to store them on a remote)
- **Many cloud storage providers** (all via rclone config import, some without)
- **Material Design** (Dark theme, custom primary and accent colors)
- **All architectures** (runs on ARM, ARM64, x86 and x64 devices, Android 7+ / 5+)
- **Storage Access Framework (SAF)** ([see docs](https://github.com/x0b/rcloneExplorer/wiki#adding-local-storage-saf)) for SD card and USB device access.

Screenshots
-----------
Remotes|File Editing|File Explorer|File Upload
Manage Storage|Upload Files|Explore Files|Manage Files
:-----:|:--------------:|:-----------:|:---------:|
![screenshot1](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_1.png?raw=true)|![screenshot4](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_4.png?raw=true)|![screenshot2](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_2.png?raw=true)|![screenshot3](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_3.png?raw=true)

Dark Theme|File Editing|Encrypted Config| Empty Folder
:----------:|:----------:|:--------:|:-------------:|
![screenshot7](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_7.png?raw=true)|![screenshot8](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_8.png?raw=true)|![screenshot10](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_10.png?raw=true) | ![screenshot9](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_9.png?raw=true) |

![screenshot1](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_1.png?raw=true)|![screenshot3](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_3.png?raw=true)|![screenshot7](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_7.png?raw=true)|![screenshot8](https://github.com/x0b/rcloneExplorer/blob/master-x0b/docs/screenshot_8.png?raw=true)

Installation
------------
Grab the [latest version](https://github.com/x0b/rcloneExplorer/releases/latest) of the signed APK and install it on your phone. Only devices running Android Lollipop 5.0 and up are supported.
Grab the [latest version](https://github.com/x0b/rcloneExplorer/releases/latest) of the signed APK and install it on your phone. You can also [register for the closed Google Play testing group](https://forms.gle/5jLYhZwafx7nEfi16).

| CPU architecture | Where to find | APK identifier |
|:---|:--|:---:|
|ARM 32 Bit | older or low-cost devices | ```armeabi-v7a``` |
|ARM 64 Bit | most newer devices | ```arm64-v8a``` |
|x86 32 Bit | some TV boxes and tablets | ```x86``` |
|x86_64 | some emulators | ```x86_64``` |
|ARM 32 Bit | older devices | ```armeabi-v7a``` |
|**ARM 64 Bit** | **most devices** | ```arm64-v8a``` |
|Intel/AMD 32 Bit | some TV boxes and tablets | ```x86``` |
|Intel/AMD 64 Bit | some emulators | ```x86_64``` |

If you don't know which version to pick use ```rcloneExplorer-<version>-universal-release.apk```. Most devices run ARM 64 Bit, and 64 Bit devices often can also run the respective 32 bit version at lower performance.
If you don't know which version to pick use ```rcloneExplorer-<version>-universal-release.apk```. Most devices run ARM 64 Bit, and 64 Bit devices often can also run the respective 32 bit version at lower performance. The app runs on any CTS phone, tablet or TV with Android 5 or newer, but is only tested on Android 7 and newer.

Usage
------------
Expand All @@ -68,18 +48,35 @@ Roadmap
------------
Note that these plans are subject to change and might not materialize completely or at all.

#### Current Version (1.10.2)
* **Fix:** Crash when opening file
#### Current Version (1.11.0)
##### Improvements
* Mega.nz config
* Google Photos config
* Renaming remotes
* DLNA serving
* Automatically manage alias remotes for local drives
* Show storage usage (rclone about) ([kaczmarkiewiczp#196](https://github.com/kaczmarkiewiczp/rcloneExplorer/issues/196))
* Reauthorize OAuth remotes ([#6](https://github.com/x0b/rcloneExplorer/issues/6))
* Rclone 1.51.0
* Settings shortcut
* Android R support (preliminary)
##### Fixes
* OneDrive configuration
* Streams now only start if available, otherwise fail loudly
* Crash when opening file
##### Internal
* Java 8 and Stream support
* Rclone source build
* Improved logging
* InteractiveRunner Framework
* Moved strings to external resource for translation

#### Next minor version
- Bug fixes

#### Next major version(s)
- Bug fixes
- Configuration dialogs for more remotes
- Rclone about ([kaczmarkiewiczp#196](https://github.com/kaczmarkiewiczp/rcloneExplorer/issues/196))
- Re-authorize existing remotes ([#6](https://github.com/x0b/rcloneExplorer/issues/6))
- Support for cli interactive commands
- Virtual Content Provider (allows access to rclone remotes from other apps)

#### Next year
Expand All @@ -89,25 +86,25 @@ Note that these plans are subject to change and might not materialize completely

Known Issues
------------
- OneDrive remotes can no longer be configured in the app and must be imported. You can configure them in Termux, copy the configuration file to an accessible destination and import from there. An fix is in the works and will be released in a future version.
- Reauthorization of OAuth remotes shows intermittent failures. This is currently under investigation.

Contributing
------------
This app is developed by and for its community. Any contribution to improve the app is welcome, and there are multiple to contribute:
- Enable crash reporting in ```Settings > Logging > Send anonymous crash reports```.
- Reporting bugs using the [issue tracker](https://github.com/x0b/rcloneExplorer/issues).
- Proposing and voting (👍 👎) on [new features](https://github.com/x0b/rcloneExplorer/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement+sort%3Areactions-%2B1-desc) and ideas on the [issue tracker](https://github.com/x0b/rcloneExplorer/issues).
- Translating the app into a new language. Please open an issue if you are interested.
- Translating the app into a new language. Please [open an issue](https://github.com/x0b/rcloneExplorer/issues/new) or sent an email to [[email protected]](mailto:[email protected]) if you are interested.
- Implementing features and fixing bugs. See the list of [available](https://github.com/x0b/rcloneExplorer/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and [easier](https://github.com/x0b/rcloneExplorer/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) issues. Please comment on the issue if you want to take over.
- Not all enhancements must be new features. If you find yourself wanting to do something with the app but you are unsure how to do it, or you think it is needlessly complicated or might not be possible, then just ask on the [issue tracker](https://github.com/x0b/rcloneExplorer/issues), which may spark a new feature/enhancement request.
- You might also find help from other members of the larger rclone community on the [rclone forum](https://forum.rclone.org/) or the [subreddit](https://www.reddit.com/r/rclone/).

License
-----------------
### About this app
This app is released under the terms of the [GPLv3 license](https://github.com/x0b/rcloneExplorer/blob/master-x0b/LICENSE). Community contributions are licensed under the MIT license, and [CLA Assistant](https://cla-assistant.io/) will ask you to confirm [a CLA stating that](https://gist.githubusercontent.com/x0b/889f037d76706fc9e3ab8ee1c047841b/raw/67c028b19e33111428904558cfda0c01039d1574/rcloneExplorer-cla-202001) if create a PR.

This is a modified build of rcloneExplorer because of little activity in the parent repo. For the parent repository, see [kaczmarkiewiczp/rcloneExplorer](https://github.com/kaczmarkiewiczp/rcloneExplorer). If you encounter an issue with a [version published here](https://github.com/x0b/rcloneExplorer/releases), open an issue [here](https://github.com/x0b/rcloneExplorer/issues/new).
This app is released under the terms of the [GPLv3 license](https://github.com/x0b/rcloneExplorer/blob/master-x0b/LICENSE). Community contributions are licensed under the MIT license, and [CLA Assistant](https://cla-assistant.io/) will ask you to confirm [a CLA stating that](https://gist.githubusercontent.com/x0b/889f037d76706fc9e3ab8ee1c047841b/raw/67c028b19e33111428904558cfda0c01039d1574/rcloneExplorer-cla-202001) if create a PR.

If you want to convey a modified version (fork), we ask you to use a different name, app icon and package id as well as proper attribution to avoid user confusion.
This is a fork of rcloneExplorer by [Patryk Kaczmarkiewicz](https://github.com/kaczmarkiewiczp). For the parent repository, see [kaczmarkiewiczp/rcloneExplorer](https://github.com/kaczmarkiewiczp/rcloneExplorer). If you want to convey a modified version (fork), we ask you to use a different name, app icon and package id as well as proper attribution to avoid user confusion.

### Libraries
- [rclone](https://github.com/rclone/rclone) - "rsync for cloud storage"
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ android {
applicationId 'ca.pkay.rcloneexplorer.x0b'
minSdkVersion 21
targetSdkVersion 29
versionCode 7
versionName '1.10.2'
versionCode 10
versionName '1.11.0'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

Expand Down
23 changes: 23 additions & 0 deletions app/src/main/assets/changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
### 1.11.0
* **New:** Mega.nz config
* **New:** Google Photos config
* **New:** Renaming remotes
* **New:** DLNA serving
* **New:** Automatically manage alias remotes for local drives
* **New:** Show storage usage (rclone about)
* **New:** Reauthorize OAuth remotes
* **New:** Rclone 1.51.0
* **New:** Settings shortcut
* **New:** Android R support (preliminary)
* **Fix:** OneDrive configuration
* **Fix:** Streams now only start if available, otherwise fail loudly
* **Fix:** Crash when opening file
* **Internal**
* Java 8 and Stream support
* Rclone source build
* Improved logging
* InteractiveRunner Framework
* Moved strings to external resource for translation

***

### 1.10.2
* **Fix:** Crash when opening file

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/assets/contributors.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Additionally, these people have contributed towards making rcloneExplorer better

## License

Copyright (C) 2018-2019 x0b <github.com/x0b>
Copyright (C) 2018-2020 x0b <github.com/x0b>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/ca/pkay/rcloneexplorer/FilePicker.java
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,7 @@ private void sortSelected(int sortById, int sortOrderId) {
}


// TODO: prepare for scoped storage / SAF on API >= 29
// TODO: Evaluate on Android R
/*
* based on the answer from https://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0/18871043#18871043
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,6 @@ private void setUpForm(View view) {
}
});

// TODO: remove 1.9.4
view.findViewById(R.id.launch_browser).setOnClickListener(v -> {
String url = "http://127.0.0.1:53682/auth";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, Uri.parse(url));
});

view.findViewById(R.id.cancel_auth).setOnClickListener(v -> {
if (authTask != null) {
authTask.cancel(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,14 +161,6 @@ private void setUpForm(View view) {
}
});

// TODO: remove 1.9.4
view.findViewById(R.id.launch_browser).setOnClickListener(v -> {
String url = "http://127.0.0.1:53682/auth";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, Uri.parse(url));
});

view.findViewById(R.id.cancel_auth).setOnClickListener(v -> {
if (authTask != null) {
authTask.cancel(true);
Expand All @@ -188,12 +180,6 @@ private void setScope() {
}
builder.setTitle(R.string.drive_scope_title);
builder.setItems(R.array.drive_scopes, (dialog, which) -> scopeSet(which));
/*builder.setSingleChoiceItems(R.array.drive_scopes, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
scopeSet(which);
}
});*/
builder.show();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,6 @@ private void setUpForm(View view) {
}
});

// TODO: remove 1.9.4
view.findViewById(R.id.launch_browser).setOnClickListener(v -> {
String url = "http://127.0.0.1:53682/auth";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, Uri.parse(url));
});

view.findViewById(R.id.cancel_auth).setOnClickListener(v -> {
if (authTask != null) {
authTask.cancel(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,6 @@ private void setUpForm(View view) {
}
});

// TODO: remove 1.9.4
view.findViewById(R.id.launch_browser).setOnClickListener(v -> {
String url = "http://127.0.0.1:53682/auth";
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, Uri.parse(url));
});

view.findViewById(R.id.cancel_auth).setOnClickListener(v -> {
if (authTask != null) {
authTask.cancel(true);
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>

<!-- overwritten during runtime, only for designing in tools -->
<item name="textColorPrimary">#212121</item>
<item name="textColorSecondary">#757575</item>
</style>

<style name="AppTheme.NoActionBar">
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 1 addition & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#Sun Nov 04 19:58:22 MST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
Loading

0 comments on commit e559639

Please sign in to comment.