├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── config.yml │ └── feature-request.md └── workflows │ └── android.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE_rcloneExplorer-1.7.4 ├── README.md ├── SECURITY.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── changelog.md │ │ └── contributors.md │ ├── ic_launcher-web.png │ ├── java │ │ └── ca │ │ │ └── pkay │ │ │ └── rcloneexplorer │ │ │ ├── AboutActivity.java │ │ │ ├── AboutLibsActivity.java │ │ │ ├── ActivityHelper.java │ │ │ ├── AppShortcutsHelper.java │ │ │ ├── BreadcrumbView.java │ │ │ ├── BroadcastReceivers │ │ │ ├── DeleteCancelAction.java │ │ │ ├── DownloadCancelAction.java │ │ │ ├── MoveCancelAction.java │ │ │ ├── ServeCancelAction.java │ │ │ ├── SyncCancelAction.java │ │ │ └── UploadCancelAction.java │ │ │ ├── ChangelogActivity.java │ │ │ ├── ContributorActivity.java │ │ │ ├── CustomColorHelper.java │ │ │ ├── Dialogs │ │ │ ├── ColorPickerDialog.java │ │ │ ├── Dialogs.java │ │ │ ├── FilePropertiesDialog.java │ │ │ ├── GoToDialog.java │ │ │ ├── InputDialog.java │ │ │ ├── LinkDialog.java │ │ │ ├── LoadingDialog.java │ │ │ ├── NumberPickerDialog.java │ │ │ ├── OpenAsDialog.java │ │ │ ├── PasswordGeneratorDialog.java │ │ │ ├── RemoteDestinationDialog.java │ │ │ ├── RemotePropertiesDialog.java │ │ │ ├── ServeDialog.java │ │ │ └── SortDialog.java │ │ │ ├── FileComparators.java │ │ │ ├── FilePicker.java │ │ │ ├── Fragments │ │ │ ├── FileExplorerFragment.java │ │ │ ├── RemotesFragment.java │ │ │ ├── ShareFragment.java │ │ │ └── ShareRemotesFragment.java │ │ │ ├── InteractiveRunner.java │ │ │ ├── Items │ │ │ ├── DirectoryObject.java │ │ │ ├── FileItem.java │ │ │ └── RemoteItem.java │ │ │ ├── Log2File.java │ │ │ ├── MainActivity.java │ │ │ ├── OnboardingActivity.java │ │ │ ├── Rclone.java │ │ │ ├── RcloneRcd.java │ │ │ ├── RecyclerViewAdapters │ │ │ ├── AboutLibrariesAdapter.java │ │ │ ├── FileExplorerRecyclerViewAdapter.java │ │ │ ├── FilePickerAdapter.java │ │ │ ├── RemotesRecyclerViewAdapter.java │ │ │ └── ShareRemotesRecyclerViewAdapter.java │ │ │ ├── RemoteConfig │ │ │ ├── AliasConfig.java │ │ │ ├── Azureblob.java │ │ │ ├── B2Config.java │ │ │ ├── BoxConfig.java │ │ │ ├── CacheConfig.java │ │ │ ├── CryptConfig.java │ │ │ ├── DriveConfig.java │ │ │ ├── DropboxConfig.java │ │ │ ├── FtpConfig.java │ │ │ ├── GooglePhotosConfig.java │ │ │ ├── HttpConfig.java │ │ │ ├── HubicConfig.java │ │ │ ├── LocalConfig.java │ │ │ ├── MegaConfig.java │ │ │ ├── OauthHelper.java │ │ │ ├── OneDriveConfig.java │ │ │ ├── PcloudConfig.java │ │ │ ├── QingstorConfig.java │ │ │ ├── RemoteConfig.java │ │ │ ├── RemoteConfigHelper.java │ │ │ ├── RemotesConfigList.java │ │ │ ├── SftpConfig.java │ │ │ ├── UnionConfig.java │ │ │ ├── WebdavConfig.java │ │ │ └── YandexConfig.java │ │ │ ├── RuntimeConfiguration.java │ │ │ ├── Services │ │ │ ├── DeleteService.java │ │ │ ├── DownloadService.java │ │ │ ├── MoveService.java │ │ │ ├── RcdService.java │ │ │ ├── ReportService.java │ │ │ ├── StreamingService.java │ │ │ ├── SyncService.java │ │ │ ├── ThumbnailsLoadingService.java │ │ │ └── UploadService.java │ │ │ ├── Settings │ │ │ ├── FileAccessSettingsFragment.java │ │ │ ├── GeneralSettingsFragment.java │ │ │ ├── LoggingSettingsFragment.java │ │ │ ├── LookAndFeelSettingsFragment.java │ │ │ ├── NotificationsSettingsFragment.java │ │ │ ├── SettingsActivity.java │ │ │ └── SettingsFragment.java │ │ │ ├── SharingActivity.java │ │ │ ├── VirtualContentProvider.java │ │ │ ├── pkg │ │ │ └── PackageUpdate.java │ │ │ └── util │ │ │ ├── FLog.java │ │ │ ├── LargeParcel.java │ │ │ ├── MarkdownView.java │ │ │ └── Rfc3339Deserializer.java │ └── res │ │ ├── anim │ │ ├── fade_in_animation.xml │ │ └── fade_out_animation.xml │ │ ├── drawable-hdpi │ │ └── ic_notification.png │ │ ├── drawable-mdpi │ │ └── ic_notification.png │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-v30 │ │ └── ic_intro_storage.png │ │ ├── drawable-xhdpi │ │ └── ic_notification.png │ │ ├── drawable-xxhdpi │ │ └── ic_notification.png │ │ ├── drawable │ │ ├── ic_about.xml │ │ ├── ic_add.xml │ │ ├── ic_amazon.xml │ │ ├── ic_amazon_foreground.xml │ │ ├── ic_arrow_back.xml │ │ ├── ic_arrow_right.xml │ │ ├── ic_azure_storage_blob_logo.xml │ │ ├── ic_backblaze_b2_black.xml │ │ ├── ic_baseline_stop_24.xml │ │ ├── ic_box.xml │ │ ├── ic_box_foreground.xml │ │ ├── ic_bug_report.xml │ │ ├── ic_cancel.xml │ │ ├── ic_cancel_download.xml │ │ ├── ic_cancel_white.xml │ │ ├── ic_changelog.xml │ │ ├── ic_check.xml │ │ ├── ic_circle.xml │ │ ├── ic_citrix_sharefile.xml │ │ ├── ic_close.xml │ │ ├── ic_cloud.xml │ │ ├── ic_cloud_foreground.xml │ │ ├── ic_contributor.xml │ │ ├── ic_create_new_folder.xml │ │ ├── ic_delete.xml │ │ ├── ic_delete_black.xml │ │ ├── ic_drive_foreground.xml │ │ ├── ic_dropbox.xml │ │ ├── ic_dropbox_foreground.xml │ │ ├── ic_edit.xml │ │ ├── ic_empty_box.xml │ │ ├── ic_export.xml │ │ ├── ic_file.xml │ │ ├── ic_file_alert.xml │ │ ├── ic_file_black.xml │ │ ├── ic_file_download.xml │ │ ├── ic_file_upload.xml │ │ ├── ic_folder.xml │ │ ├── ic_folder_move.xml │ │ ├── ic_folder_open.xml │ │ ├── ic_google.xml │ │ ├── ic_google_drive.xml │ │ ├── ic_google_foreground.xml │ │ ├── ic_google_photos.xml │ │ ├── ic_heart_red_24dp.xml │ │ ├── ic_home.xml │ │ ├── ic_hubic_black.xml │ │ ├── ic_import.xml │ │ ├── ic_info_outline.xml │ │ ├── ic_koofr.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_libraries.xml │ │ ├── ic_local_foreground.xml │ │ ├── ic_lock.xml │ │ ├── ic_lock_black.xml │ │ ├── ic_lock_foreground.xml │ │ ├── ic_look_and_feel.xml │ │ ├── ic_mark_github.xml │ │ ├── ic_mega_logo_black.xml │ │ ├── ic_menu.xml │ │ ├── ic_more_vert.xml │ │ ├── ic_notifications.xml │ │ ├── ic_onedrive.xml │ │ ├── ic_onedrive_foreground.xml │ │ ├── ic_open_drive.xml │ │ ├── ic_password_gen.xml │ │ ├── ic_pcloud.xml │ │ ├── ic_person_outline.xml │ │ ├── ic_pin.xml │ │ ├── ic_pound.xml │ │ ├── ic_pref_header_general.xml │ │ ├── ic_properties.xml │ │ ├── ic_rclone_logo.xml │ │ ├── ic_refresh.xml │ │ ├── ic_sd_storage.xml │ │ ├── ic_search.xml │ │ ├── ic_select_all.xml │ │ ├── ic_settings.xml │ │ ├── ic_signal_wifi_off.xml │ │ ├── ic_sort.xml │ │ ├── ic_streaming.xml │ │ ├── ic_tablet_cellphone.xml │ │ ├── ic_terminal.xml │ │ ├── ic_terminal_foreground.xml │ │ ├── ic_union_24dp.xml │ │ ├── ic_warning.xml │ │ ├── ic_webdav.xml │ │ └── ic_yandex_mono.xml │ │ ├── layout-sw720dp │ │ ├── activity_about.xml │ │ ├── activity_changelog.xml │ │ ├── app_bar_main.xml │ │ ├── content_about_libs.xml │ │ ├── dialog_remote_dest.xml │ │ ├── file_picker_list.xml │ │ ├── fragment_config_list.xml │ │ ├── fragment_file_explorer_list.xml │ │ ├── fragment_share_list.xml │ │ └── remote_config_form.xml │ │ ├── layout │ │ ├── about_icon_item.xml │ │ ├── about_libraries_item.xml │ │ ├── activity_about.xml │ │ ├── activity_about_libs.xml │ │ ├── activity_changelog.xml │ │ ├── activity_contributors.xml │ │ ├── activity_file_picker.xml │ │ ├── activity_main.xml │ │ ├── activity_onboarding.xml │ │ ├── activity_remote_config.xml │ │ ├── activity_settings.xml │ │ ├── activity_sharing.xml │ │ ├── app_bar_main.xml │ │ ├── auth_screen.xml │ │ ├── bottom_bar.xml │ │ ├── color_picker_item.xml │ │ ├── color_picker_row.xml │ │ ├── config_form_show_password.xml │ │ ├── config_form_template_edit_text.xml │ │ ├── config_form_template_onedrive_type.xml │ │ ├── config_form_template_password.xml │ │ ├── config_form_template_spinner.xml │ │ ├── config_form_template_switch.xml │ │ ├── config_form_template_text_field.xml │ │ ├── config_form_union.xml │ │ ├── config_list_item_template.xml │ │ ├── content_about.xml │ │ ├── content_about_libs.xml │ │ ├── content_changelog.xml │ │ ├── content_contributors.xml │ │ ├── content_main.xml │ │ ├── content_remote_config.xml │ │ ├── content_settings.xml │ │ ├── content_sharing.xml │ │ ├── dialog_color_picker.xml │ │ ├── dialog_file_properties.xml │ │ ├── dialog_go_to.xml │ │ ├── dialog_input.xml │ │ ├── dialog_link.xml │ │ ├── dialog_loading_indicator.xml │ │ ├── dialog_number_picker.xml │ │ ├── dialog_open_as.xml │ │ ├── dialog_password_generator.xml │ │ ├── dialog_remote_dest.xml │ │ ├── dialog_remote_properties.xml │ │ ├── dialog_serve.xml │ │ ├── dialog_sort.xml │ │ ├── empty_directory_state.xml │ │ ├── empty_state_config_file.xml │ │ ├── file_picker_item.xml │ │ ├── file_picker_list.xml │ │ ├── fragment_config_list.xml │ │ ├── fragment_file_access_settings.xml │ │ ├── fragment_file_explorer_item.xml │ │ ├── fragment_file_explorer_list.xml │ │ ├── fragment_permission_item.xml │ │ ├── fragment_remotes_item.xml │ │ ├── fragment_remotes_list.xml │ │ ├── fragment_share_list.xml │ │ ├── fragment_share_remotes_item.xml │ │ ├── fragment_share_remotes_list.xml │ │ ├── fragment_union_item.xml │ │ ├── general_settings_fragment.xml │ │ ├── intro_community.xml │ │ ├── locked_config.xml │ │ ├── logging_settings_fragment.xml │ │ ├── look_and_feel_settings_fragment.xml │ │ ├── move_bar.xml │ │ ├── nav_header_main.xml │ │ ├── no_internet_state.xml │ │ ├── no_search_results.xml │ │ ├── notification_settings_fragment.xml │ │ ├── remote_config_form.xml │ │ ├── search_bar.xml │ │ ├── settings_fragment.xml │ │ └── spinner_dropdown_item.xml │ │ ├── menu │ │ ├── activity_main_drawer.xml │ │ ├── file_explorer_folder_menu.xml │ │ ├── file_explorer_menu.xml │ │ ├── file_picker_menu.xml │ │ ├── fragment_share_menu.xml │ │ ├── remote_fragment_menu.xml │ │ └── remote_options.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ ├── ic_launcher_round.xml │ │ ├── ic_shortcut_amazon.xml │ │ ├── ic_shortcut_amazon_round.xml │ │ ├── ic_shortcut_box.xml │ │ ├── ic_shortcut_box_round.xml │ │ ├── ic_shortcut_cloud.xml │ │ ├── ic_shortcut_cloud_round.xml │ │ ├── ic_shortcut_drive.xml │ │ ├── ic_shortcut_drive_round.xml │ │ ├── ic_shortcut_dropbox.xml │ │ ├── ic_shortcut_dropbox_round.xml │ │ ├── ic_shortcut_google.xml │ │ ├── ic_shortcut_google_round.xml │ │ ├── ic_shortcut_local.xml │ │ ├── ic_shortcut_local_round.xml │ │ ├── ic_shortcut_lock.xml │ │ ├── ic_shortcut_lock_round.xml │ │ ├── ic_shortcut_onedrive.xml │ │ ├── ic_shortcut_onedrive_round.xml │ │ ├── ic_shortcut_terminal.xml │ │ └── ic_shortcut_terminal_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_shortcut_amazon.png │ │ ├── ic_shortcut_box.png │ │ ├── ic_shortcut_cloud.png │ │ ├── ic_shortcut_drive.png │ │ ├── ic_shortcut_dropbox.png │ │ ├── ic_shortcut_google.png │ │ ├── ic_shortcut_local.png │ │ ├── ic_shortcut_local_round.png │ │ ├── ic_shortcut_lock.png │ │ ├── ic_shortcut_onedrive.png │ │ └── ic_shortcut_terminal.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_shortcut_amazon.png │ │ ├── ic_shortcut_box.png │ │ ├── ic_shortcut_cloud.png │ │ ├── ic_shortcut_drive.png │ │ ├── ic_shortcut_dropbox.png │ │ ├── ic_shortcut_google.png │ │ ├── ic_shortcut_local.png │ │ ├── ic_shortcut_local_round.png │ │ ├── ic_shortcut_lock.png │ │ ├── ic_shortcut_onedrive.png │ │ └── ic_shortcut_terminal.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_shortcut_amazon.png │ │ ├── ic_shortcut_box.png │ │ ├── ic_shortcut_cloud.png │ │ ├── ic_shortcut_drive.png │ │ ├── ic_shortcut_dropbox.png │ │ ├── ic_shortcut_google.png │ │ ├── ic_shortcut_local.png │ │ ├── ic_shortcut_local_round.png │ │ ├── ic_shortcut_lock.png │ │ ├── ic_shortcut_onedrive.png │ │ └── ic_shortcut_terminal.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_shortcut_amazon.png │ │ ├── ic_shortcut_box.png │ │ ├── ic_shortcut_cloud.png │ │ ├── ic_shortcut_drive.png │ │ ├── ic_shortcut_dropbox.png │ │ ├── ic_shortcut_google.png │ │ ├── ic_shortcut_local.png │ │ ├── ic_shortcut_local_round.png │ │ ├── ic_shortcut_lock.png │ │ ├── ic_shortcut_onedrive.png │ │ └── ic_shortcut_terminal.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ic_shortcut_amazon.png │ │ ├── ic_shortcut_box.png │ │ ├── ic_shortcut_cloud.png │ │ ├── ic_shortcut_drive.png │ │ ├── ic_shortcut_dropbox.png │ │ ├── ic_shortcut_google.png │ │ ├── ic_shortcut_local.png │ │ ├── ic_shortcut_local_round.png │ │ ├── ic_shortcut_lock.png │ │ ├── ic_shortcut_onedrive.png │ │ └── ic_shortcut_terminal.png │ │ ├── values-de │ │ ├── arrays_translatable.xml │ │ └── strings.xml │ │ ├── values-sw720dp │ │ └── isTabletMode.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-v27 │ │ └── styles.xml │ │ ├── values │ │ ├── arrays.xml │ │ ├── arrays_translatable.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── custom_color_choices.xml │ │ ├── defaults.xml │ │ ├── dimens.xml │ │ ├── drive_scope_items.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_shortcut_background.xml │ │ ├── ids.xml │ │ ├── isTabletMode.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── file_provider_paths.xml │ │ ├── network_security_config.xml │ │ └── virtual_content_provider_paths.xml │ ├── oss │ ├── java │ │ └── ca │ │ │ └── pkay │ │ │ └── rcloneexplorer │ │ │ └── util │ │ │ └── CrashLogger.java │ └── res │ │ └── values │ │ ├── defaults.xml │ │ └── strings.xml │ ├── rcx │ └── java │ │ └── ca │ │ └── pkay │ │ └── rcloneexplorer │ │ └── util │ │ └── CrashLogger.java │ └── test │ └── java │ └── ca │ └── pkay │ └── rcloneexplorer │ ├── ExampleUnitTest.java │ └── VirtualContentProviderTest.java ├── build.gradle ├── crowdin.yml ├── docs ├── cloud-computing.png ├── locked-padlock.png ├── screenshot_1.png ├── screenshot_10.png ├── screenshot_11.png ├── screenshot_2.png ├── screenshot_3.png ├── screenshot_4.png ├── screenshot_5.png ├── screenshot_6.png ├── screenshot_7.png ├── screenshot_8.png ├── screenshot_9.png └── smartphone.png ├── fastlane └── metadata │ └── android │ └── en-US │ ├── full_description.txt │ ├── images │ └── phoneScreenshots │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ └── 4.png │ ├── short_description.txt │ └── title.txt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── rclone ├── .gitignore └── build.gradle ├── safdav ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── io │ │ └── github │ │ └── x0b │ │ └── safdav │ │ ├── SafAccessProvider.java │ │ ├── SafDAVServer.java │ │ ├── SafDirectServer.java │ │ ├── file │ │ ├── FileAccessError.java │ │ ├── ItemAccess.java │ │ ├── ItemExistsException.java │ │ ├── ItemNotFoundException.java │ │ ├── SafConstants.java │ │ ├── SafException.java │ │ └── SafItem.java │ │ ├── package-info.java │ │ ├── provider │ │ └── SingleRootProvider.java │ │ ├── saf │ │ ├── DocumentsContractAccess.java │ │ ├── ProviderPaths.java │ │ ├── SafFastItem.java │ │ ├── SafFileAccess.java │ │ ├── SafFileItem.java │ │ └── SafPermissionItem.java │ │ └── xml │ │ └── XmlResponseSerialization.java │ └── res │ └── values │ └── strings.xml └── settings.gradle /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report an error in RCX 4 | --- 5 | 6 | --- 7 | **If this is your first bug report, read our [contribution guidelines](../blob/master/CONTRIBUTING.md#reporting-a-bug).** 8 | 9 | --- 10 | 11 | 24 | 25 | #### What version of RCX are you using (About -> App version)? 26 | 27 | 28 | 29 | #### What is your Android version, phone model and manufacturer? 30 | 31 | 32 | 33 | 34 | #### Which steps are required to reproduce this issue? 35 | 43 | 44 | #### What is your configuration (`rclone.conf`)? 45 | 46 | 47 | #### Does the same issue also occur when using the same configuration on a PC or in Termux? 48 | 49 | 50 | #### What are the contents of ```Android/data/io.github.x0b.rcx/files/logs/log.txt```? 51 |
log.txt (click to expand)
52 | 
53 | 
54 | 
55 | 
56 | 
57 | 
58 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Rclone Forum 4 | url: https://forum.rclone.org/ 5 | about: For questions around rclone itself. 6 | - name: Rclone Issue Tracker 7 | url: https://github.com/rclone/rclone/issues 8 | about: When you are sure rclone does not work correctly. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest a new feature or enhancement for RCX 4 | --- 5 | 6 | --- 7 | **If this is your first feature request, read our [contribution guidelines](../blob/master/CONTRIBUTING.md#requesting-a-new-feature).** 8 | 9 | --- 10 | 11 | #### Pre-Submission checklist 12 | 13 | 14 | - [ ] There is no existing issue that already asks for this feature.
15 | - [ ] The feature already exists in rclone (on your PC or in Termux) 16 | - [ ] I am prepared to help make this feature 17 | 18 | #### What version of RCX are you using (About -> App version)? 19 | 20 | 21 | 22 | #### What problem are you trying to solve? 23 | 24 | 25 | 26 | #### What should RCX be able to do differently to help with this problem? 27 | 28 | -------------------------------------------------------------------------------- /.github/workflows/android.yml: -------------------------------------------------------------------------------- 1 | name: Android CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'dev' 7 | pull_request: 8 | branches-ignore: 9 | - 'dev' 10 | 11 | jobs: 12 | build-all: 13 | 14 | runs-on: ubuntu-20.04 15 | 16 | steps: 17 | - uses: actions/checkout@v2 18 | - name: Set up JDK 1.8 19 | uses: actions/setup-java@v1 20 | with: 21 | java-version: 1.8 22 | - name: Set up Go 1.16 23 | uses: actions/setup-go@v1 24 | with: 25 | go-version: 1.16 26 | id: go 27 | - name: Force NDK version 28 | run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;22.1.7171670" 29 | - name: Build rclone 30 | run: ./gradlew rclone:buildNative 31 | - name: Build app 32 | run: ./gradlew assembleOssDebug 33 | - name: Upload APK (arm) 34 | uses: actions/upload-artifact@v2 35 | with: 36 | name: arm.apk 37 | path: app/build/outputs/apk/oss/debug/app-oss-armeabi-v7a-debug.apk 38 | retention-days: 3 39 | - name: Upload APK (arm64) 40 | uses: actions/upload-artifact@v2 41 | with: 42 | name: arm64.apk 43 | path: app/build/outputs/apk/oss/debug/app-oss-arm64-v8a-debug.apk 44 | retention-days: 3 45 | - name: Upload APK (x86) 46 | uses: actions/upload-artifact@v2 47 | with: 48 | name: x86.apk 49 | path: app/build/outputs/apk/oss/debug/app-oss-x86-debug.apk 50 | retention-days: 3 51 | - name: Upload APK (arm) 52 | uses: actions/upload-artifact@v2 53 | with: 54 | name: x64.apk 55 | path: app/build/outputs/apk/oss/debug/app-oss-x86_64-debug.apk 56 | retention-days: 3 57 | - name: Upload APK (universal) 58 | uses: actions/upload-artifact@v2 59 | with: 60 | name: universal.apk 61 | path: app/build/outputs/apk/oss/debug/app-oss-universal-debug.apk 62 | retention-days: 14 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | 35 | # Intellij 36 | *.iml 37 | .idea/assetWizardSettings.xml 38 | .idea/workspace.xml 39 | .idea/tasks.xml 40 | .idea/gradle.xml 41 | .idea/dictionaries 42 | .idea/libraries 43 | .idea/caches 44 | 45 | # Keystore files 46 | *.jks 47 | 48 | # External native build folder generated in Android Studio 2.2 and later 49 | .externalNativeBuild 50 | 51 | # Google Services (e.g. APIs or Firebase) 52 | google-services.json 53 | 54 | # Freeline 55 | freeline.py 56 | freeline/ 57 | freeline_project_description.json 58 | 59 | # Don't version native libraries or IDE artifacts. Module config should be done in gradle. 60 | # Generated artifacts (apks, libraries) just slow down cloning and can be recreated from source 61 | # anyways. 62 | app/lib/ 63 | release/ 64 | 65 | .idea/encodings.xml 66 | .idea/caches/build_file_checksums.ser 67 | .idea/misc.xml 68 | .idea/modules.xml 69 | .idea/codeStyles/Project.xml 70 | .idea/codeStyles/codeStyleConfig.xml 71 | .idea/inspectionProfiles/Project_Default.xml 72 | .idea/ 73 | -------------------------------------------------------------------------------- /LICENSE_rcloneExplorer-1.7.4: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Patryk Kaczmarkiewicz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | Please contact us directly about security issues: x0bdev+security@gmail.com. Please give appropriate time to respond. 4 | 5 | This is a community project without 24/7 operations or formal security review. While we try to make the app as secure as possible, we cannot offer any guarantees. Do not rely on the encryption for your safety. 6 | 7 | ## Supported Versions 8 | 9 | We only support the latest release version. Of course, we still like to hear about vulnerabilities in pre-release versions and older still-in-use versions. 10 | 11 | ## Security Model 12 | Since the app is a file browser with the keys to your cloud storage as well as local storage, we consider anything a security issue that... 13 | - allows unauthorized access to oauth tokens, passwords and other secrets, 14 | - allows unintended read/write access to cloud content, 15 | - allows access to private app storage, code or otherwise compromises the functionality. 16 | 17 | 18 | The app relies on the platform for protecting its private directories and executables. We therefore explicitly do not support rooted devices or devices with unpatched vulnerabilities. If it is technically feasable to add mitigations against platform vulnerabilites, we will consider it. 19 | 20 | ## Current state of security 21 | _While we do not consider those things security vulnerabilities, they are on our "security" todo list for new/improved protections._ 22 | - The rclone configuration file is stored without additional encryption in app-private storage ([issue](https://github.com/x0b/rcx/issues/12)). 23 | - Some operations may use your flash storage as temporary storage location, if they are too large for app-internal storage. Depending on your Android version, those files may temporarily be available to other apps that you have granted external storage or storage manager permissions. 24 | - The upcoming SAF provider offers other apps direct access to your files. It is vital you do not install apps you do not trust 100%, since they may be able to impersonate apps you have previously granted file access to. 25 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | 23 | # don't change names - this is open source anyways, and the biggest size 24 | # contributor are native libs which we can't shrink. 25 | -dontobfuscate 26 | 27 | # ignore okhttp conscrypt warning 28 | -dontwarn okhttp3.internal.platform.ConscryptPlatform 29 | 30 | # keep model classes 31 | # -keep public class ca.pkay.rcloneexplorer.RcloneRcd.* 32 | -keep class ca.pkay.rcloneexplorer.** { *; } 33 | -------------------------------------------------------------------------------- /app/src/main/assets/contributors.md: -------------------------------------------------------------------------------- 1 | ### Intro 2 | This application was created by [Patryk Kaczmarkiewicz](https://github.com/kaczmarkiewiczp). Your current build is maintained by [x0b](https://github.com/x0b). 3 | 4 | ### Github contributors 5 | Additionally, these people have contributed towards making RCX better: 6 | 7 | * [buywetwok](https://github.com/buywetwok) 8 | * [davsinghm](https://github.com/davsinghm) 9 | * [alyssadev](https://github.com/alyssadev) 10 | 11 | [Join us now on Github.](https://github.com/x0b/rcx) 12 | 13 | ## License 14 | 15 | Copyright (C) 2018-2020 x0b 16 | 17 | This program is free software: you can redistribute it and/or modify 18 | it under the terms of the GNU General Public License as published by 19 | the Free Software Foundation, either version 3 of the License, or 20 | (at your option) any later version. 21 | 22 | This program is distributed in the hope that it will be useful, 23 | but WITHOUT ANY WARRANTY; without even the implied warranty of 24 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 | GNU General Public License for more details. 26 | 27 | You should have received a copy of the GNU General Public License 28 | along with this program. If not, see . 29 | -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0b/rcx/d98c4d6f0a69c83c92475053bd8b7cd8d13d6b4b/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/BroadcastReceivers/DeleteCancelAction.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.BroadcastReceivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import ca.pkay.rcloneexplorer.Services.DeleteService; 8 | 9 | public class DeleteCancelAction extends BroadcastReceiver { 10 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | Intent deleteIntent = new Intent(context, DeleteService.class); 14 | context.stopService(deleteIntent); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/BroadcastReceivers/DownloadCancelAction.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.BroadcastReceivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import ca.pkay.rcloneexplorer.Services.DownloadService; 8 | 9 | public class DownloadCancelAction extends BroadcastReceiver { 10 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | Intent downloadIntent = new Intent(context, DownloadService.class); 14 | context.stopService(downloadIntent); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/BroadcastReceivers/MoveCancelAction.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.BroadcastReceivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import ca.pkay.rcloneexplorer.Services.MoveService; 8 | 9 | public class MoveCancelAction extends BroadcastReceiver { 10 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | Intent moveIntent = new Intent(context, MoveService.class); 14 | context.stopService(moveIntent); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/BroadcastReceivers/ServeCancelAction.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.BroadcastReceivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import ca.pkay.rcloneexplorer.Services.StreamingService; 8 | 9 | public class ServeCancelAction extends BroadcastReceiver { 10 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | Intent serveIntent = new Intent(context, StreamingService.class); 14 | context.stopService(serveIntent); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/BroadcastReceivers/SyncCancelAction.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.BroadcastReceivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import ca.pkay.rcloneexplorer.Services.SyncService; 8 | 9 | public class SyncCancelAction extends BroadcastReceiver { 10 | @Override 11 | public void onReceive(Context context, Intent intent) { 12 | Intent syncIntent = new Intent(context, SyncService.class); 13 | context.stopService(syncIntent); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/BroadcastReceivers/UploadCancelAction.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.BroadcastReceivers; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import ca.pkay.rcloneexplorer.Services.UploadService; 8 | 9 | public class UploadCancelAction extends BroadcastReceiver { 10 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | Intent uploadIntent = new Intent(context, UploadService.class); 14 | context.stopService(uploadIntent); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/ChangelogActivity.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.ActionBar; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.appcompat.widget.Toolbar; 7 | 8 | import ca.pkay.rcloneexplorer.util.MarkdownView; 9 | 10 | public class ChangelogActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | ActivityHelper.applyTheme(this); 16 | try { 17 | setContentView(R.layout.activity_changelog); 18 | } catch (Exception e) { 19 | MarkdownView.closeOnMissingWebView(this, e); 20 | } 21 | Toolbar toolbar = findViewById(R.id.toolbar); 22 | setSupportActionBar(toolbar); 23 | ActionBar actionBar = getSupportActionBar(); 24 | if (actionBar != null) { 25 | actionBar.setDisplayHomeAsUpEnabled(true); 26 | actionBar.setDisplayShowHomeEnabled(true); 27 | } 28 | 29 | MarkdownView markdownView = findViewById(R.id.markdownView); 30 | markdownView.loadAsset("changelog.md"); 31 | } 32 | 33 | @Override 34 | public boolean onSupportNavigateUp() { 35 | onBackPressed(); 36 | return true; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/ContributorActivity.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer; 2 | 3 | import android.os.Bundle; 4 | import androidx.appcompat.app.ActionBar; 5 | import androidx.appcompat.app.AppCompatActivity; 6 | import androidx.appcompat.widget.Toolbar; 7 | import ca.pkay.rcloneexplorer.util.MarkdownView; 8 | 9 | 10 | public class ContributorActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | ActivityHelper.applyTheme(this); 16 | try { 17 | setContentView(R.layout.activity_contributors); 18 | } catch (Exception e) { 19 | MarkdownView.closeOnMissingWebView(this, e); 20 | } 21 | Toolbar toolbar = findViewById(R.id.toolbar); 22 | setSupportActionBar(toolbar); 23 | ActionBar actionBar = getSupportActionBar(); 24 | if (actionBar != null) { 25 | actionBar.setDisplayHomeAsUpEnabled(true); 26 | actionBar.setDisplayShowHomeEnabled(true); 27 | } 28 | 29 | MarkdownView markdownView = findViewById(R.id.markdownView); 30 | markdownView.loadAsset("contributors.md"); 31 | } 32 | 33 | @Override 34 | public boolean onSupportNavigateUp() { 35 | onBackPressed(); 36 | return true; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/Dialogs/Dialogs.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.Dialogs; 2 | 3 | import androidx.annotation.Nullable; 4 | import androidx.fragment.app.DialogFragment; 5 | 6 | public class Dialogs { 7 | 8 | /** 9 | * Dismiss a dialog, but only if it is still attached to a host activity. 10 | *

11 | * This should be used especially in callbacks, since they have a higher 12 | * chance of being executed in a different lifecycle phase and thus an 13 | * elevated propability of calling DialogFrament.dismiss() on an invalid 14 | * fragment. 15 | * @param dialog the dialog to dismiss 16 | */ 17 | public static void dismissSilently(@Nullable DialogFragment dialog) { 18 | if(dialog != null) { 19 | if(dialog.isStateSaved()){ 20 | dialog.dismissAllowingStateLoss(); 21 | } else if(dialog.isAdded()) { 22 | dialog.dismiss(); 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/util/LargeParcel.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.util; 2 | 3 | import android.os.Bundle; 4 | import android.os.Parcel; 5 | 6 | import androidx.annotation.NonNull; 7 | 8 | public class LargeParcel { 9 | 10 | public static int calculateBundleSize(@NonNull Bundle bundle) { 11 | Parcel parcel = Parcel.obtain(); 12 | parcel.writeBundle(bundle); 13 | int size = parcel.dataSize(); 14 | parcel.recycle(); 15 | return size; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/ca/pkay/rcloneexplorer/util/Rfc3339Deserializer.java: -------------------------------------------------------------------------------- 1 | package ca.pkay.rcloneexplorer.util; 2 | 3 | import com.fasterxml.jackson.core.JsonParser; 4 | import com.fasterxml.jackson.core.JsonProcessingException; 5 | import com.fasterxml.jackson.databind.DeserializationContext; 6 | import com.fasterxml.jackson.databind.JsonNode; 7 | import com.fasterxml.jackson.databind.deser.std.StdDeserializer; 8 | 9 | import java.io.IOException; 10 | import java.text.ParseException; 11 | 12 | import ca.pkay.rcloneexplorer.RcloneRcd; 13 | import io.github.x0b.rfc3339parser.Rfc3339Parser; 14 | import io.github.x0b.rfc3339parser.Rfc3339Strict; 15 | 16 | public class Rfc3339Deserializer extends StdDeserializer { 17 | 18 | private Rfc3339Parser rfc3339Parser; 19 | 20 | protected Rfc3339Deserializer() { 21 | super(Rfc3339Deserializer.class); 22 | rfc3339Parser = new Rfc3339Strict(); 23 | } 24 | 25 | @Override 26 | public Long deserialize(JsonParser parser, DeserializationContext ctxt) throws IOException, JsonProcessingException { 27 | JsonNode timeNode = parser.getCodec().readTree(parser); 28 | try { 29 | return rfc3339Parser.parseCalendar(timeNode.asText()).getTimeInMillis(); 30 | } catch (ParseException e) { 31 | return 0L; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in_animation.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0b/rcx/d98c4d6f0a69c83c92475053bd8b7cd8d13d6b4b/app/src/main/res/drawable-hdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0b/rcx/d98c4d6f0a69c83c92475053bd8b7cd8d13d6b4b/app/src/main/res/drawable-mdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v30/ic_intro_storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0b/rcx/d98c4d6f0a69c83c92475053bd8b7cd8d13d6b4b/app/src/main/res/drawable-v30/ic_intro_storage.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0b/rcx/d98c4d6f0a69c83c92475053bd8b7cd8d13d6b4b/app/src/main/res/drawable-xhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0b/rcx/d98c4d6f0a69c83c92475053bd8b7cd8d13d6b4b/app/src/main/res/drawable-xxhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_about.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_amazon.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_amazon_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_right.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_backblaze_b2_black.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 7 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_stop_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_box.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_box_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bug_report.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cancel.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cancel_download.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cancel_white.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_changelog.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_circle.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_citrix_sharefile.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cloud.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cloud_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_contributor.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_create_new_folder.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_black.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_drive_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dropbox.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dropbox_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_empty_box.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_export.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_alert.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_black.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_download.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_file_upload.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_move.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_folder_open.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_google.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_google_drive.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_google_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_google_photos.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_heart_red_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_import.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_info_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_libraries.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_local_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock_black.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lock_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_look_and_feel.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_mark_github.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_mega_logo_black.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_more_vert.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notifications.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_onedrive.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_onedrive_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_open_drive.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_password_gen.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_person_outline.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pin.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pound.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pref_header_general.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_properties.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_rclone_logo.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 8 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_refresh.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sd_storage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_select_all.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_signal_wifi_off.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sort.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_streaming.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_tablet_cellphone.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_terminal.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_terminal_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_union_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_warning.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_yandex_mono.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw720dp/activity_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 32 | 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw720dp/activity_changelog.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw720dp/content_about_libs.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw720dp/file_picker_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 15 | 16 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout-sw720dp/fragment_share_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 13 | 14 | 20 | 21 | 29 | 30 | 31 | 43 | -------------------------------------------------------------------------------- /app/src/main/res/layout/about_icon_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 16 | 17 | 25 | 26 | 31 | 32 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_about_libs.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_changelog.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_contributors.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_file_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 22 | 23 | 33 | 34 | 35 | 36 | 37 | 38 | 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_onboarding.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_remote_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_sharing.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | 17 | 23 | 24 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/color_picker_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/color_picker_row.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/config_form_show_password.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 14 | 15 | 23 | 24 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/config_form_template_edit_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 19 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/config_form_template_password.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 20 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/config_form_template_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 12 | 17 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/config_form_template_switch.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 14 | 21 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/config_form_template_text_field.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 14 | 23 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_about_libs.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_changelog.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_contributors.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_remote_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_sharing.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_color_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_input.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_link.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 17 | 18 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_loading_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_number_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/file_picker_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 15 | 16 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_config_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 19 | 20 | 21 | 22 |