├── .github ├── FUNDING.yml ├── decrypt_secrets.sh ├── dependabot.yml ├── secrets.tar.gpg └── workflows │ └── android.yml ├── .gitignore ├── .gitmodules ├── CHANGELOG.md ├── Graphics ├── Banner.png ├── Banner.psd ├── Icon.png ├── Icon.psd ├── Logo.png ├── Logo.svg ├── Phone │ ├── About download.png │ ├── About download.psd │ ├── Drawer.png │ ├── Drawer.psd │ ├── Files.png │ ├── Files.psd │ ├── Main view.png │ ├── Main view.psd │ ├── Options.png │ ├── Options.psd │ ├── Peers and servers.png │ └── Peers and servers.psd └── Tablet │ ├── Main view.png │ ├── Main view.psd │ ├── Stuff.png │ └── Stuff.psd ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle └── src │ ├── foss │ └── google-services.json │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── options.json │ ├── java │ │ └── com │ │ │ └── gianlu │ │ │ └── aria2app │ │ │ ├── CountryFlags.java │ │ │ ├── CustomDownloadInfo.java │ │ │ ├── DonutProgress.java │ │ │ ├── FileTypeTextView.java │ │ │ ├── LoadingActivity.java │ │ │ ├── PK.java │ │ │ ├── PreferenceActivity.java │ │ │ ├── ThisApplication.java │ │ │ ├── Utils.java │ │ │ ├── activities │ │ │ ├── AddDownloadActivity.java │ │ │ ├── AddMetalinkActivity.java │ │ │ ├── AddTorrentActivity.java │ │ │ ├── AddUriActivity.java │ │ │ ├── BatchAddActivity.java │ │ │ ├── DirectDownloadActivity.java │ │ │ ├── EditProfileActivity.java │ │ │ ├── MoreAboutDownloadActivity.java │ │ │ ├── SearchActivity.java │ │ │ ├── adddownload │ │ │ │ ├── AddBase64Bundle.java │ │ │ │ ├── AddDownloadBundle.java │ │ │ │ ├── AddMetalinkBundle.java │ │ │ │ ├── AddTorrentBundle.java │ │ │ │ ├── AddUriBundle.java │ │ │ │ ├── Base64Fragment.java │ │ │ │ ├── OptionsFragment.java │ │ │ │ └── UrisFragment.java │ │ │ ├── editprofile │ │ │ │ ├── AuthenticationFragment.java │ │ │ │ ├── CertificateInputView.java │ │ │ │ ├── ConnectionFragment.java │ │ │ │ ├── DirectDownloadFragment.java │ │ │ │ ├── FieldErrorFragmentWithState.java │ │ │ │ ├── InvalidFieldException.java │ │ │ │ ├── OnFieldError.java │ │ │ │ ├── TestFragment.java │ │ │ │ └── WifisAdapter.java │ │ │ └── moreabout │ │ │ │ ├── BigUpdateProvider.java │ │ │ │ ├── OnBackPressed.java │ │ │ │ ├── PeersServersFragment.java │ │ │ │ ├── TopCountriesView.java │ │ │ │ ├── files │ │ │ │ ├── DirectorySheet.java │ │ │ │ ├── FileSheet.java │ │ │ │ ├── FilesAdapter.java │ │ │ │ └── FilesFragment.java │ │ │ │ ├── info │ │ │ │ └── InfoFragment.java │ │ │ │ ├── peers │ │ │ │ ├── PeerSheet.java │ │ │ │ ├── PeerWithPieces.java │ │ │ │ ├── PeersAdapter.java │ │ │ │ ├── PeersFragment.java │ │ │ │ └── PeersProvider.java │ │ │ │ └── servers │ │ │ │ ├── ServerSheet.java │ │ │ │ ├── ServersAdapter.java │ │ │ │ ├── ServersFragment.java │ │ │ │ └── ServersProvider.java │ │ │ ├── adapters │ │ │ ├── AddDownloadBundlesAdapter.java │ │ │ ├── BitfieldVisualizer.java │ │ │ ├── DirectDownloadsAdapter.java │ │ │ ├── DownloadCardsAdapter.java │ │ │ ├── OptionsAdapter.java │ │ │ ├── PagerAdapter.java │ │ │ ├── RadioConditionsAdapter.java │ │ │ ├── SearchResultsAdapter.java │ │ │ ├── SpinnerConditionsAdapter.java │ │ │ ├── StatePagerAdapter.java │ │ │ └── UrisAdapter.java │ │ │ ├── api │ │ │ ├── AbstractClient.java │ │ │ ├── AriaRequests.java │ │ │ ├── CertUtils.java │ │ │ ├── ClientInterface.java │ │ │ ├── ConnectivityChangedReceiver.java │ │ │ ├── DoBatch.java │ │ │ ├── ErrorHandler.java │ │ │ ├── GitHubApi.java │ │ │ ├── HttpClient.java │ │ │ ├── NetInstanceHolder.java │ │ │ ├── NetUtils.java │ │ │ ├── OnConnect.java │ │ │ ├── OnJson.java │ │ │ ├── OnRefresh.java │ │ │ ├── PeerIdParser.java │ │ │ ├── StatusCodeException.java │ │ │ ├── TrackersListFetch.java │ │ │ ├── WebSocketClient.java │ │ │ ├── aria2 │ │ │ │ ├── Aria2Helper.java │ │ │ │ ├── AriaDirectory.java │ │ │ │ ├── AriaException.java │ │ │ │ ├── AriaFile.java │ │ │ │ ├── AriaFiles.java │ │ │ │ ├── BitTorrent.java │ │ │ │ ├── Download.java │ │ │ │ ├── DownloadWithUpdate.java │ │ │ │ ├── DownloadsAndGlobalStats.java │ │ │ │ ├── GlobalStats.java │ │ │ │ ├── Option.java │ │ │ │ ├── OptionsMap.java │ │ │ │ ├── Peer.java │ │ │ │ ├── Peers.java │ │ │ │ ├── Server.java │ │ │ │ ├── Servers.java │ │ │ │ ├── SessionInfo.java │ │ │ │ ├── SparseServers.java │ │ │ │ ├── SparseServersWithFiles.java │ │ │ │ ├── VersionAndSession.java │ │ │ │ └── VersionInfo.java │ │ │ ├── geolocalization │ │ │ │ ├── GeoIP.java │ │ │ │ ├── IPDetails.java │ │ │ │ └── IPDetailsView.java │ │ │ ├── search │ │ │ │ ├── MissingSearchEngine.java │ │ │ │ ├── SearchApi.java │ │ │ │ ├── SearchEngine.java │ │ │ │ ├── SearchResult.java │ │ │ │ └── Torrent.java │ │ │ └── updater │ │ │ │ ├── PayloadProvider.java │ │ │ │ ├── PayloadUpdater.java │ │ │ │ ├── Receiver.java │ │ │ │ ├── ReceiverOwner.java │ │ │ │ ├── UpdaterActivity.java │ │ │ │ ├── UpdaterFragment.java │ │ │ │ ├── UpdaterFramework.java │ │ │ │ └── Wants.java │ │ │ ├── downloader │ │ │ ├── AbsStreamDownloadHelper.java │ │ │ ├── DdDatabase.java │ │ │ ├── DdDownload.java │ │ │ ├── DirectDownloadHelper.java │ │ │ ├── FetchHelper.java │ │ │ ├── FtpHelper.java │ │ │ ├── SambaHelper.java │ │ │ └── SftpHelper.java │ │ │ ├── inappdownloader │ │ │ ├── Aria2ConfigProvider.java │ │ │ └── InAppAria2ConfActivity.java │ │ │ ├── main │ │ │ ├── AboutAria2Dialog.java │ │ │ ├── DrawerItem.java │ │ │ ├── FloatingActionsMenuBehavior.java │ │ │ ├── HideSecondSpace.java │ │ │ ├── MainActivity.java │ │ │ └── MainProvider.java │ │ │ ├── options │ │ │ ├── OptionsDialog.java │ │ │ ├── OptionsManager.java │ │ │ ├── OptionsUtils.java │ │ │ └── OptionsView.java │ │ │ ├── profiles │ │ │ ├── ChooserTargetsCache.java │ │ │ ├── CustomProfilesAdapter.java │ │ │ ├── MultiProfile.java │ │ │ ├── ProfilesManager.java │ │ │ └── testers │ │ │ │ ├── Aria2Tester.java │ │ │ │ ├── BaseTester.java │ │ │ │ ├── DirectDownloadTester.java │ │ │ │ ├── NetTester.java │ │ │ │ └── TestersFlow.java │ │ │ ├── services │ │ │ ├── BootCompletedReceiver.java │ │ │ ├── NotificationService.java │ │ │ └── ProfileChooserService.java │ │ │ ├── tutorial │ │ │ ├── Discovery.java │ │ │ ├── DownloadCardsTutorial.java │ │ │ ├── DownloadsToolbarTutorial.java │ │ │ ├── FilesTutorial.java │ │ │ ├── FoldersTutorial.java │ │ │ └── PeersServersTutorial.java │ │ │ └── webview │ │ │ ├── InterceptedRequest.java │ │ │ └── WebViewActivity.java │ ├── play │ │ ├── contact-email.txt │ │ ├── contact-website.txt │ │ ├── default-language.txt │ │ ├── listings │ │ │ ├── cs-CZ │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── da-DK │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── de-DE │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── el-GR │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── en-GB │ │ │ │ ├── full-description.txt │ │ │ │ ├── graphics │ │ │ │ │ ├── feature-graphic │ │ │ │ │ │ └── 14388460366258042089.png │ │ │ │ │ ├── icon │ │ │ │ │ │ └── 5353168451724732701.png │ │ │ │ │ ├── large-tablet-screenshots │ │ │ │ │ │ ├── 1.png │ │ │ │ │ │ └── 2.png │ │ │ │ │ ├── phone-screenshots │ │ │ │ │ │ ├── 1.png │ │ │ │ │ │ ├── 2.png │ │ │ │ │ │ ├── 3.png │ │ │ │ │ │ ├── 4.png │ │ │ │ │ │ ├── 5.png │ │ │ │ │ │ └── 6.png │ │ │ │ │ └── tablet-screenshots │ │ │ │ │ │ ├── 1.png │ │ │ │ │ │ └── 2.png │ │ │ │ ├── short-description.txt │ │ │ │ └── title.txt │ │ │ ├── en-US │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── es-ES │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── fa-IR │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── fi-FI │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── fr-FR │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── he-IL │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── hu-HU │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── it-IT │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── ja-JP │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── ko-KR │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── nl-NL │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── no-NO │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── pl-PL │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── pt-BR │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── pt-PT │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── sr-SP │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── sv-SE │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── tr-TR │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ ├── zh-CN │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ │ └── zh-TW │ │ │ │ ├── full-description.txt │ │ │ │ └── short-description.txt │ │ └── release-notes │ │ │ └── en-GB │ │ │ └── production.txt │ └── res │ │ ├── color-night │ │ └── text_field_stroke_on_dark.xml │ │ ├── color │ │ └── text_field_stroke_on_dark.xml │ │ ├── drawable-hdpi │ │ ├── baseline_all_inbox_colored_24.xml │ │ ├── baseline_language_colored_24.xml │ │ ├── ic_aria2_notification.png │ │ ├── ic_aria2android.png │ │ ├── ic_error_outline_grey_48dp.png │ │ ├── ic_new_releases_grey_48dp.png │ │ ├── ic_notification.png │ │ ├── ic_torrent_colored_48dp.png │ │ └── ic_torrent_white_48dp.png │ │ ├── drawable-mdpi │ │ ├── ic_aria2_notification.png │ │ ├── ic_aria2android.png │ │ ├── ic_error_outline_grey_48dp.png │ │ ├── ic_new_releases_grey_48dp.png │ │ ├── ic_notification.png │ │ ├── ic_torrent_colored_48dp.png │ │ └── ic_torrent_white_48dp.png │ │ ├── drawable-nodpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ ├── ic_aria2_notification.png │ │ ├── ic_aria2android.png │ │ ├── ic_error_outline_grey_48dp.png │ │ ├── ic_new_releases_grey_48dp.png │ │ ├── ic_notification.png │ │ ├── ic_torrent_colored_48dp.png │ │ └── ic_torrent_white_48dp.png │ │ ├── drawable-xxhdpi │ │ ├── ic_aria2_notification.png │ │ ├── ic_aria2android.png │ │ ├── ic_error_outline_grey_48dp.png │ │ ├── ic_new_releases_grey_48dp.png │ │ ├── ic_notification.png │ │ ├── ic_torrent_colored_48dp.png │ │ └── ic_torrent_white_48dp.png │ │ ├── drawable-xxxhdpi │ │ ├── ic_aria2_notification.png │ │ ├── ic_aria2android.png │ │ ├── ic_error_outline_grey_48dp.png │ │ ├── ic_new_releases_grey_48dp.png │ │ ├── ic_torrent_colored_48dp.png │ │ └── ic_torrent_white_48dp.png │ │ ├── drawable │ │ ├── baseline_access_time_24.xml │ │ ├── baseline_add_24.xml │ │ ├── baseline_add_circle_24.xml │ │ ├── baseline_all_inbox_24.xml │ │ ├── baseline_android_24.xml │ │ ├── baseline_announcement_24.xml │ │ ├── baseline_arrow_downward_24.xml │ │ ├── baseline_arrow_upward_24.xml │ │ ├── baseline_bookmark_24.xml │ │ ├── baseline_clear_24.xml │ │ ├── baseline_clear_outline_24.xml │ │ ├── baseline_cloud_24.xml │ │ ├── baseline_cloud_done_24.xml │ │ ├── baseline_cloud_download_24.xml │ │ ├── baseline_cloud_off_24.xml │ │ ├── baseline_delete_24.xml │ │ ├── baseline_delete_forever_24.xml │ │ ├── baseline_done_24.xml │ │ ├── baseline_done_all_24.xml │ │ ├── baseline_download_24.xml │ │ ├── baseline_edit_24.xml │ │ ├── baseline_error_24.xml │ │ ├── baseline_error_outline_24.xml │ │ ├── baseline_favorite_24.xml │ │ ├── baseline_favorite_border_24.xml │ │ ├── baseline_filter_list_24.xml │ │ ├── baseline_folder_24.xml │ │ ├── baseline_home_24.xml │ │ ├── baseline_info_outline_24.xml │ │ ├── baseline_insert_drive_file_24.xml │ │ ├── baseline_keyboard_arrow_down_24.xml │ │ ├── baseline_keyboard_arrow_right_24.xml │ │ ├── baseline_language_24.xml │ │ ├── baseline_link_24.xml │ │ ├── baseline_link_colored_24.xml │ │ ├── baseline_list_24.xml │ │ ├── baseline_more_24.xml │ │ ├── baseline_network_check_24.xml │ │ ├── baseline_notifications_24.xml │ │ ├── baseline_notifications_active_24.xml │ │ ├── baseline_notifications_none_24.xml │ │ ├── baseline_notifications_off_24.xml │ │ ├── baseline_opacity_24.xml │ │ ├── baseline_open_in_new_24.xml │ │ ├── baseline_pause_24.xml │ │ ├── baseline_pause_circle_outline_24.xml │ │ ├── baseline_people_24.xml │ │ ├── baseline_play_arrow_24.xml │ │ ├── baseline_play_circle_outline_24.xml │ │ ├── baseline_playlist_add_24.xml │ │ ├── baseline_playlist_add_colored_24.xml │ │ ├── baseline_refresh_24.xml │ │ ├── baseline_report_problem_24.xml │ │ ├── baseline_search_24.xml │ │ ├── baseline_search_colored_24.xml │ │ ├── baseline_select_all_24.xml │ │ ├── baseline_sms_24.xml │ │ ├── baseline_sort_24.xml │ │ ├── baseline_stop_24.xml │ │ ├── baseline_supervisor_account_24.xml │ │ ├── baseline_update_24.xml │ │ ├── baseline_upload_24.xml │ │ ├── baseline_verified_user_24.xml │ │ └── fab_label_layout.xml │ │ ├── font │ │ ├── roboto_black.ttf │ │ ├── roboto_bold.ttf │ │ ├── roboto_light.ttf │ │ └── roboto_medium.ttf │ │ ├── layout-land │ │ ├── activity_loading.xml │ │ └── fragment_options.xml │ │ ├── layout-sw600dp │ │ └── activity_main.xml │ │ ├── layout │ │ ├── activity_add_download.xml │ │ ├── activity_batch_add.xml │ │ ├── activity_edit_profile.xml │ │ ├── activity_in_app_aria2_conf.xml │ │ ├── activity_loading.xml │ │ ├── activity_main.xml │ │ ├── activity_more_about_download.xml │ │ ├── activity_search.xml │ │ ├── activity_webview.xml │ │ ├── dialog_about_aria2.xml │ │ ├── dialog_edit_option.xml │ │ ├── dialog_new_condition.xml │ │ ├── dialog_options.xml │ │ ├── dialog_torrent.xml │ │ ├── fragment_base64.xml │ │ ├── fragment_edit_profile_authentication.xml │ │ ├── fragment_edit_profile_connection.xml │ │ ├── fragment_edit_profile_dd.xml │ │ ├── fragment_edit_profile_test.xml │ │ ├── fragment_files.xml │ │ ├── fragment_info.xml │ │ ├── fragment_options.xml │ │ ├── fragment_peers_and_servers.xml │ │ ├── fragment_uris.xml │ │ ├── item_add_download_bundle.xml │ │ ├── item_bt_announce.xml │ │ ├── item_direct_download.xml │ │ ├── item_directory.xml │ │ ├── item_download.xml │ │ ├── item_file.xml │ │ ├── item_file_header.xml │ │ ├── item_option.xml │ │ ├── item_peer.xml │ │ ├── item_profile.xml │ │ ├── item_radio_condition.xml │ │ ├── item_search_result.xml │ │ ├── item_server.xml │ │ ├── item_top_country.xml │ │ ├── item_uri.xml │ │ ├── sheet_dir.xml │ │ ├── sheet_file.xml │ │ ├── sheet_header_dir.xml │ │ ├── sheet_header_file.xml │ │ ├── sheet_header_peer.xml │ │ ├── sheet_header_server.xml │ │ ├── sheet_peer.xml │ │ ├── sheet_server.xml │ │ ├── view_certificate_input.xml │ │ ├── view_ip_details.xml │ │ └── view_options.xml │ │ ├── menu │ │ ├── add_download.xml │ │ ├── edit_profile.xml │ │ ├── files_action_mode.xml │ │ ├── in_app_downloader.xml │ │ ├── main.xml │ │ ├── main_sorting.xml │ │ ├── more_about_download.xml │ │ ├── peers_fragment.xml │ │ ├── peers_fragment_sorting.xml │ │ ├── search.xml │ │ └── web_view.xml │ │ ├── mipmap-anydpi-v26 │ │ └── ic_launcher.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── raw │ │ └── translators.json │ │ ├── values-ar-rSA │ │ └── strings.xml │ │ ├── values-cs-rCZ │ │ └── strings.xml │ │ ├── values-da-rDK │ │ └── strings.xml │ │ ├── values-de-rDE │ │ └── strings.xml │ │ ├── values-el-rGR │ │ └── strings.xml │ │ ├── values-en-rUS │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-fa-rIR │ │ └── strings.xml │ │ ├── values-fi-rFI │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ └── strings.xml │ │ ├── values-hu-rHU │ │ └── strings.xml │ │ ├── values-it-rIT │ │ └── strings.xml │ │ ├── values-iw-rIL │ │ └── strings.xml │ │ ├── values-ja-rJP │ │ └── strings.xml │ │ ├── values-ko-rKR │ │ └── strings.xml │ │ ├── values-land │ │ └── styles.xml │ │ ├── values-night │ │ ├── colors.xml │ │ └── styles.xml │ │ ├── values-nl-rNL │ │ └── strings.xml │ │ ├── values-no-rNO │ │ └── strings.xml │ │ ├── values-or-rIN │ │ └── strings.xml │ │ ├── values-pl-rPL │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-sr-rSP │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-sw600dp │ │ ├── bools.xml │ │ └── styles.xml │ │ ├── values-tr-rTR │ │ └── strings.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ ├── values │ │ ├── bools.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── main_searchable.xml │ │ ├── network_security_config.xml │ │ ├── provider_paths.xml │ │ ├── shortcuts.xml │ │ └── torrent_searchable.xml │ └── standard │ └── google-services.json ├── build.gradle ├── crowdin.yml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [devgianlu] 2 | custom: ['https://buymeacoffee.com/devgianlu/'] 3 | -------------------------------------------------------------------------------- /.github/decrypt_secrets.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | gpg --quiet --batch --yes --decrypt --passphrase="$SECRETS_GPG_PASS" --output .github/secrets.tar .github/secrets.tar.gpg 4 | tar xvf .github/secrets.tar -C .github -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: gradle 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "04:00" 8 | open-pull-requests-limit: 10 9 | ignore: 10 | - dependency-name: com.github.triplet.play 11 | versions: 12 | - 3.2.0-agp4.2-2 13 | - 3.3.0-agp4.2 14 | - 3.4.0-agp7.0 15 | - dependency-name: com.android.tools.build:gradle 16 | versions: 17 | - 4.1.3 18 | -------------------------------------------------------------------------------- /.github/secrets.tar.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/.github/secrets.tar.gpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | *.apk 3 | .gradle 4 | .idea 5 | local.properties 6 | .DS_Store 7 | /build 8 | /app/build 9 | captures 10 | Thumbs.db 11 | /app/**/release/ -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "CommonUtils"] 2 | path = CommonUtils 3 | url = https://github.com/devgianlu/CommonUtils 4 | branch = master 5 | [submodule "aria2lib"] 6 | path = aria2lib 7 | url = https://github.com/devgianlu/aria2lib 8 | branch = master 9 | -------------------------------------------------------------------------------- /Graphics/Banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Banner.png -------------------------------------------------------------------------------- /Graphics/Banner.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Banner.psd -------------------------------------------------------------------------------- /Graphics/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Icon.png -------------------------------------------------------------------------------- /Graphics/Icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Icon.psd -------------------------------------------------------------------------------- /Graphics/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Logo.png -------------------------------------------------------------------------------- /Graphics/Logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /Graphics/Phone/About download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/About download.png -------------------------------------------------------------------------------- /Graphics/Phone/About download.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/About download.psd -------------------------------------------------------------------------------- /Graphics/Phone/Drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Drawer.png -------------------------------------------------------------------------------- /Graphics/Phone/Drawer.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Drawer.psd -------------------------------------------------------------------------------- /Graphics/Phone/Files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Files.png -------------------------------------------------------------------------------- /Graphics/Phone/Files.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Files.psd -------------------------------------------------------------------------------- /Graphics/Phone/Main view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Main view.png -------------------------------------------------------------------------------- /Graphics/Phone/Main view.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Main view.psd -------------------------------------------------------------------------------- /Graphics/Phone/Options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Options.png -------------------------------------------------------------------------------- /Graphics/Phone/Options.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Options.psd -------------------------------------------------------------------------------- /Graphics/Phone/Peers and servers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Peers and servers.png -------------------------------------------------------------------------------- /Graphics/Phone/Peers and servers.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Phone/Peers and servers.psd -------------------------------------------------------------------------------- /Graphics/Tablet/Main view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Tablet/Main view.png -------------------------------------------------------------------------------- /Graphics/Tablet/Main view.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Tablet/Main view.psd -------------------------------------------------------------------------------- /Graphics/Tablet/Stuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Tablet/Stuff.png -------------------------------------------------------------------------------- /Graphics/Tablet/Stuff.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/Graphics/Tablet/Stuff.psd -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Aria2App 2 | ![Android CI](https://github.com/devgianlu/Aria2App/workflows/Android%20CI/badge.svg?branch=master) 3 | [![Crowdin](https://badges.crowdin.net/aria2app/localized.svg)](https://crowdin.com/project/aria2app) 4 | [![Codacy Badge](https://app.codacy.com/project/badge/Grade/b08dff3cf63844a2b226d96f1c91fbf1)](https://www.codacy.com/gh/devgianlu/Aria2App/dashboard?utm_source=github.com&utm_medium=referral&utm_content=devgianlu/Aria2App&utm_campaign=Badge_Grade) 5 | [![time tracker](https://wakatime.com/badge/github/devgianlu/Aria2App.svg)](https://wakatime.com/badge/github/devgianlu/Aria2App) 6 | 7 | Aria2App allows you to handle your downloads on [aria2](https://github.com/aria2/aria2) wherever you are! 8 | 9 |
10 | Get it on Google Play 11 | Get it on F-Droid 12 |
13 | 14 | ## Setup 15 | This project uses [devgianlu/CommonUtils](https://github.com/devgianlu/CommonUtils), please follow the link to setup your environment properly. 16 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | settings.gradle 10 | Thumbs.db -------------------------------------------------------------------------------- /app/src/foss/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "0", 4 | "project_id": "api-project-0" 5 | }, 6 | "client": [ 7 | { 8 | "client_info": { 9 | "mobilesdk_app_id": "1:0:android:0", 10 | "android_client_info": { 11 | "package_name": "com.gianlu.aria2app" 12 | } 13 | }, 14 | "api_key": [ 15 | { 16 | "current_key": "none" 17 | } 18 | ] 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/adddownload/AddDownloadBundle.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.adddownload; 2 | 3 | import com.gianlu.aria2app.api.aria2.OptionsMap; 4 | 5 | import java.io.Serializable; 6 | 7 | import androidx.annotation.Nullable; 8 | 9 | public abstract class AddDownloadBundle implements Serializable { 10 | public final Integer position; 11 | public final OptionsMap options; 12 | 13 | public AddDownloadBundle(@Nullable Integer position, @Nullable OptionsMap options) { 14 | this.position = position; 15 | this.options = options; 16 | } 17 | 18 | public static class CannotReadException extends Exception { 19 | CannotReadException(String message) { 20 | super(message); 21 | } 22 | 23 | CannotReadException(Throwable cause) { 24 | super(cause); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/adddownload/AddMetalinkBundle.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.adddownload; 2 | 3 | import android.content.Context; 4 | import android.net.Uri; 5 | 6 | import com.gianlu.aria2app.api.aria2.OptionsMap; 7 | 8 | import java.io.Serializable; 9 | 10 | import androidx.annotation.NonNull; 11 | import androidx.annotation.Nullable; 12 | 13 | public class AddMetalinkBundle extends AddBase64Bundle implements Serializable { 14 | public AddMetalinkBundle(@NonNull String base64, @NonNull String filename, @NonNull Uri fileUri, @Nullable Integer position, @Nullable OptionsMap options) { 15 | super(base64, filename, fileUri, position, options); 16 | } 17 | 18 | private AddMetalinkBundle(@NonNull Context context, @NonNull Uri fileUri, @Nullable Integer position, @Nullable OptionsMap options) throws CannotReadException { 19 | super(context, fileUri, position, options); 20 | } 21 | 22 | @NonNull 23 | public static AddMetalinkBundle fromUri(@NonNull Context context, @NonNull Uri uri) throws CannotReadException { 24 | return new AddMetalinkBundle(context, uri, null, null); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/adddownload/AddTorrentBundle.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.adddownload; 2 | 3 | import android.content.Context; 4 | import android.net.Uri; 5 | 6 | import com.gianlu.aria2app.api.aria2.OptionsMap; 7 | 8 | import java.io.Serializable; 9 | import java.util.ArrayList; 10 | 11 | import androidx.annotation.NonNull; 12 | import androidx.annotation.Nullable; 13 | 14 | public class AddTorrentBundle extends AddBase64Bundle implements Serializable { 15 | public final ArrayList uris; 16 | 17 | public AddTorrentBundle(@NonNull String base64, @NonNull String filename, @NonNull Uri fileUri, @Nullable ArrayList uris, @Nullable Integer position, @Nullable OptionsMap options) { 18 | super(base64, filename, fileUri, position, options); 19 | this.uris = uris; 20 | } 21 | 22 | private AddTorrentBundle(@NonNull Context context, @NonNull Uri fileUri, @Nullable Integer position, @Nullable OptionsMap options) throws CannotReadException { 23 | super(context, fileUri, position, options); 24 | this.uris = null; 25 | } 26 | 27 | @NonNull 28 | public static AddTorrentBundle fromUri(@NonNull Context context, @NonNull Uri uri) throws CannotReadException { 29 | return new AddTorrentBundle(context, uri, null, null); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/editprofile/FieldErrorFragmentWithState.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.editprofile; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.Nullable; 7 | 8 | import com.gianlu.commonutils.dialogs.FragmentWithDialog; 9 | 10 | public abstract class FieldErrorFragmentWithState extends FragmentWithDialog implements OnFieldError { 11 | private Bundle stateToRestore; 12 | 13 | @NonNull 14 | public final Bundle save() throws IllegalStateException { 15 | if (stateToRestore != null) return stateToRestore; 16 | if (!isAdded()) throw new IllegalStateException(); 17 | 18 | Bundle bundle = new Bundle(); 19 | onSaveInstanceState(bundle); 20 | return bundle; 21 | } 22 | 23 | @Override 24 | public void onResume() { 25 | super.onResume(); 26 | if (stateToRestore != null) { 27 | onRestoreInstanceState(stateToRestore); 28 | stateToRestore = null; 29 | } 30 | } 31 | 32 | public final void restore(@Nullable Bundle bundle) { 33 | if (bundle == null) bundle = new Bundle(); 34 | 35 | if (isAdded() && isResumed()) { 36 | stateToRestore = null; 37 | onRestoreInstanceState(bundle); 38 | } else { 39 | stateToRestore = bundle; 40 | } 41 | } 42 | 43 | protected abstract void onRestoreInstanceState(@NonNull Bundle bundle); 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/editprofile/InvalidFieldException.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.editprofile; 2 | 3 | 4 | import androidx.annotation.IdRes; 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.StringRes; 7 | 8 | public class InvalidFieldException extends Exception { 9 | public final int fieldId; 10 | public final int reasonRes; 11 | public final Where where; 12 | /** 13 | * The current condition position in the conditions list 14 | */ 15 | public int pos = -1; 16 | 17 | public InvalidFieldException(@NonNull Where where, @IdRes int fieldId, @StringRes int reasonRes) { 18 | this.where = where; 19 | this.fieldId = fieldId; 20 | this.reasonRes = reasonRes; 21 | } 22 | 23 | public enum Where { 24 | ACTIVITY, CONNECTION, AUTHENTICATION, DIRECT_DOWNLOAD; 25 | 26 | public int pagerPos() { 27 | switch (this) { 28 | default: 29 | case ACTIVITY: 30 | return -1; 31 | case CONNECTION: 32 | return 0; 33 | case AUTHENTICATION: 34 | return 1; 35 | case DIRECT_DOWNLOAD: 36 | return 2; 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/editprofile/OnFieldError.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.editprofile; 2 | 3 | public interface OnFieldError { 4 | void onFieldError(int fieldId, String reason); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/moreabout/OnBackPressed.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.moreabout; 2 | 3 | public interface OnBackPressed { 4 | int CODE_CLOSE_SHEET = 1; 5 | 6 | boolean canGoBack(int code); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/activities/moreabout/peers/PeerWithPieces.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.activities.moreabout.peers; 2 | 3 | import com.gianlu.aria2app.api.aria2.Peer; 4 | 5 | public class PeerWithPieces { 6 | public final Peer peer; 7 | public final int numPieces; 8 | 9 | public PeerWithPieces(Peer peer, int numPieces) { 10 | this.peer = peer; 11 | this.numPieces = numPieces; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/adapters/PagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.adapters; 2 | 3 | import android.os.Bundle; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.fragment.app.Fragment; 7 | import androidx.fragment.app.FragmentManager; 8 | import androidx.fragment.app.FragmentPagerAdapter; 9 | 10 | import java.util.Arrays; 11 | import java.util.List; 12 | 13 | public class PagerAdapter extends FragmentPagerAdapter { 14 | private final List fragments; 15 | 16 | public PagerAdapter(FragmentManager fm, List fragments) { 17 | super(fm, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); 18 | this.fragments = fragments; 19 | } 20 | 21 | @SafeVarargs 22 | public PagerAdapter(FragmentManager fm, F... fragments) { 23 | super(fm, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); 24 | this.fragments = Arrays.asList(fragments); 25 | } 26 | 27 | public int indexOf(Class fragmentClass) { 28 | for (int i = 0; i < fragments.size(); i++) 29 | if (fragments.get(i).getClass() == fragmentClass) 30 | return i; 31 | 32 | return -1; 33 | } 34 | 35 | @NonNull 36 | @Override 37 | public F getItem(int position) { 38 | return fragments.get(position); 39 | } 40 | 41 | @Override 42 | public int getCount() { 43 | return fragments.size(); 44 | } 45 | 46 | @Override 47 | public CharSequence getPageTitle(int position) { 48 | Bundle args = getItem(position).getArguments(); 49 | return args != null ? args.getString("title") : null; 50 | } 51 | 52 | public List getFragments() { 53 | return fragments; 54 | } 55 | } -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/adapters/RadioConditionsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.adapters; 2 | 3 | import android.content.Context; 4 | import android.view.View; 5 | import android.view.ViewGroup; 6 | import android.widget.ArrayAdapter; 7 | import android.widget.CheckedTextView; 8 | 9 | import com.gianlu.aria2app.profiles.MultiProfile; 10 | import com.gianlu.aria2app.R; 11 | 12 | import java.util.List; 13 | 14 | import androidx.annotation.NonNull; 15 | import androidx.annotation.Nullable; 16 | 17 | public class RadioConditionsAdapter extends ArrayAdapter { 18 | private final Context context; 19 | 20 | public RadioConditionsAdapter(@NonNull Context context, @NonNull List objects) { 21 | super(context, R.layout.item_radio_condition, objects); 22 | this.context = context.getApplicationContext(); 23 | } 24 | 25 | @NonNull 26 | @Override 27 | @SuppressWarnings("ConstantConditions") 28 | public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 29 | CheckedTextView text = (CheckedTextView) super.getView(position, convertView, parent); 30 | text.setText(getItem(position).getFormal(context)); 31 | return text; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/ClientInterface.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface ClientInterface { 6 | void close(); 7 | 8 | void send(@NonNull AbstractClient.AriaRequestWithResult request, AbstractClient.OnResult listener); 9 | 10 | void send(@NonNull AbstractClient.AriaRequest request, AbstractClient.OnSuccess listener); 11 | 12 | void batch(@NonNull AbstractClient.BatchSandbox sandbox, AbstractClient.OnResult listener); 13 | 14 | boolean isInAppDownloader(); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/ConnectivityChangedReceiver.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.net.ConnectivityManager; 7 | import android.net.wifi.WifiManager; 8 | 9 | import java.util.Objects; 10 | 11 | import androidx.annotation.NonNull; 12 | 13 | public class ConnectivityChangedReceiver extends BroadcastReceiver { 14 | private final WifiManager wifiManager; 15 | 16 | public ConnectivityChangedReceiver(@NonNull Context context) { 17 | this.wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); 18 | } 19 | 20 | @Override 21 | public void onReceive(Context context, Intent intent) { 22 | if (Objects.equals(intent.getAction(), ConnectivityManager.CONNECTIVITY_ACTION)) { 23 | boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); 24 | if (!noConnectivity) 25 | NetInstanceHolder.handleConnectivityChange(context, intent.getIntExtra(ConnectivityManager.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_DUMMY), wifiManager); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/DoBatch.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | import androidx.annotation.NonNull; 4 | import androidx.annotation.WorkerThread; 5 | 6 | public interface DoBatch { 7 | @WorkerThread 8 | void onSandboxReturned(@NonNull R result); 9 | 10 | @WorkerThread 11 | void onException(@NonNull Exception ex); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/GitHubApi.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | 4 | import org.json.JSONException; 5 | import org.json.JSONObject; 6 | 7 | import java.io.IOException; 8 | 9 | import androidx.annotation.NonNull; 10 | import androidx.annotation.WorkerThread; 11 | import okhttp3.OkHttpClient; 12 | import okhttp3.Request; 13 | import okhttp3.Response; 14 | import okhttp3.ResponseBody; 15 | 16 | public final class GitHubApi { 17 | public static void getLatestVersion(@NonNull final OnRelease listener) { 18 | new Thread(() -> { 19 | OkHttpClient client = new OkHttpClient(); 20 | try (Response resp = client.newCall(new Request.Builder() 21 | .get().url("https://api.github.com/repos/aria2/aria2/releases/latest").build()).execute()) { 22 | 23 | if (resp.code() != 200) throw new StatusCodeException(resp); 24 | 25 | ResponseBody body = resp.body(); 26 | if (body == null) throw new IOException("Empty body!"); 27 | 28 | listener.onRelease(new JSONObject(body.string()).getString("name").replace("aria2 ", "")); 29 | } catch (IOException | StatusCodeException | JSONException | NullPointerException ex) { 30 | listener.onException(ex); 31 | } 32 | }).start(); 33 | } 34 | 35 | @WorkerThread 36 | public interface OnRelease { 37 | void onRelease(@NonNull String release); 38 | 39 | void onException(@NonNull Exception ex); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/OnConnect.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | import com.gianlu.aria2app.profiles.MultiProfile; 4 | 5 | import androidx.annotation.NonNull; 6 | import androidx.annotation.UiThread; 7 | 8 | @UiThread 9 | public interface OnConnect { 10 | /** 11 | * @return Whether we want a ping test 12 | */ 13 | boolean onConnected(@NonNull AbstractClient client); 14 | 15 | void onPingTested(@NonNull AbstractClient client, long latency); 16 | 17 | void onFailedConnecting(@NonNull MultiProfile.UserProfile profile, @NonNull Throwable ex); 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/OnJson.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | import org.json.JSONException; 4 | import org.json.JSONObject; 5 | 6 | import androidx.annotation.NonNull; 7 | import androidx.annotation.WorkerThread; 8 | 9 | public interface OnJson { 10 | @WorkerThread 11 | void onResponse(@NonNull JSONObject response) throws JSONException; 12 | 13 | @WorkerThread 14 | void onException(@NonNull Exception ex); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/OnRefresh.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | public interface OnRefresh { 4 | void refreshed(); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/StatusCodeException.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api; 2 | 3 | import okhttp3.Response; 4 | 5 | public class StatusCodeException extends Exception { 6 | public final int code; 7 | 8 | public StatusCodeException(int code, String message) { 9 | super(code + ": " + message); 10 | this.code = code; 11 | } 12 | 13 | public StatusCodeException(Response resp) { 14 | this(resp.code(), resp.message()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/AriaException.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import org.json.JSONException; 4 | import org.json.JSONObject; 5 | 6 | import androidx.annotation.NonNull; 7 | 8 | public class AriaException extends Exception { 9 | public final int code; 10 | public final String reason; 11 | 12 | private AriaException(@NonNull String detailMessage, int code) { 13 | super(detailMessage); 14 | this.reason = detailMessage; 15 | this.code = code; 16 | } 17 | 18 | public AriaException(@NonNull JSONObject error) throws JSONException { 19 | this(error.getString("message"), error.getInt("code")); 20 | } 21 | 22 | public boolean isNoPeers() { 23 | return reason.startsWith("No peer data is available"); 24 | } 25 | 26 | public boolean isNoServers() { 27 | return reason.startsWith("No active download"); 28 | } 29 | 30 | public boolean isNotFound() { 31 | return reason.endsWith("is not found"); 32 | } 33 | 34 | public boolean isCannotChangeOptions() { 35 | return reason.startsWith("Cannot change option"); 36 | } 37 | 38 | @NonNull 39 | @Override 40 | public String toString() { 41 | return "AriaException #" + code + ": " + getMessage(); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/AriaFiles.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import org.json.JSONArray; 4 | import org.json.JSONException; 5 | 6 | import java.util.ArrayList; 7 | 8 | import androidx.annotation.Nullable; 9 | 10 | public class AriaFiles extends ArrayList { 11 | 12 | public AriaFiles(JSONArray array) throws JSONException { 13 | super(array.length()); 14 | 15 | for (int i = 0; i < array.length(); i++) 16 | add(new AriaFile(array.getJSONObject(i))); 17 | 18 | if (!isEmpty()) AriaDirectory.guessSeparator(get(0)); 19 | } 20 | 21 | @Nullable 22 | public AriaFile findFileByIndex(int index) { 23 | for (AriaFile file : this) 24 | if (file.index == index) 25 | return file; 26 | 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/DownloadsAndGlobalStats.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class DownloadsAndGlobalStats { 7 | public final GlobalStats stats; 8 | public final List downloads; 9 | 10 | DownloadsAndGlobalStats(List allDownloads, boolean ignoreMetadata, GlobalStats stats) { 11 | this.stats = stats; 12 | 13 | downloads = new ArrayList<>(); 14 | if (ignoreMetadata) { 15 | for (DownloadWithUpdate download : allDownloads) { 16 | DownloadWithUpdate.SmallUpdate last = download.update(); 17 | if (!(last.isMetadata() && (last.followedBy != null || last.status == Download.Status.COMPLETE))) 18 | downloads.add(download); 19 | } 20 | } else { 21 | downloads.addAll(allDownloads); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/GlobalStats.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import org.json.JSONObject; 4 | 5 | 6 | public class GlobalStats { 7 | public final int downloadSpeed; 8 | public final int uploadSpeed; 9 | public final int numActive; 10 | public final int numWaiting; 11 | public final int numStopped; 12 | public final int numStoppedTotal; 13 | 14 | public GlobalStats(JSONObject obj) { 15 | downloadSpeed = obj.optInt("downloadSpeed", 0); 16 | uploadSpeed = obj.optInt("uploadSpeed", 0); 17 | numActive = obj.optInt("numActive", 0); 18 | numWaiting = obj.optInt("numWaiting", 0); 19 | numStopped = obj.optInt("numStopped", 0); 20 | numStoppedTotal = obj.optInt("numStoppedTotal", 0); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/Peers.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import org.json.JSONArray; 4 | import org.json.JSONException; 5 | 6 | import java.util.ArrayList; 7 | 8 | import androidx.annotation.NonNull; 9 | import androidx.annotation.Nullable; 10 | 11 | public class Peers extends ArrayList { 12 | 13 | public Peers(JSONArray array) throws JSONException { 14 | super(array.length()); 15 | for (int i = 0; i < array.length(); i++) add(new Peer(array.getJSONObject(i))); 16 | } 17 | 18 | private Peers() { 19 | } 20 | 21 | @NonNull 22 | public static Peers empty() { 23 | return new Peers(); 24 | } 25 | 26 | @Nullable 27 | public Peer find(Peer match) { 28 | for (Peer peer : this) 29 | if (peer.equals(match)) 30 | return peer; 31 | 32 | return null; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/Server.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | 4 | import android.net.Uri; 5 | 6 | import org.json.JSONException; 7 | import org.json.JSONObject; 8 | 9 | import java.util.Comparator; 10 | import java.util.Objects; 11 | 12 | import androidx.annotation.NonNull; 13 | 14 | public class Server { 15 | public final Uri uri; 16 | public final String currentUri; 17 | public final int downloadSpeed; 18 | private String shortUri; 19 | 20 | Server(JSONObject obj) throws JSONException { 21 | uri = Uri.parse(obj.getString("uri")); 22 | currentUri = obj.getString("currentUri"); 23 | downloadSpeed = obj.getInt("downloadSpeed"); 24 | } 25 | 26 | @NonNull 27 | public String getShortUri() { 28 | if (shortUri == null) { 29 | int pos = currentUri.lastIndexOf('?'); 30 | if (pos == -1) shortUri = currentUri; 31 | else shortUri = currentUri.substring(0, pos); 32 | } 33 | 34 | return shortUri; 35 | } 36 | 37 | @Override 38 | public boolean equals(Object o) { 39 | if (this == o) return true; 40 | if (o == null || getClass() != o.getClass()) return false; 41 | Server server = (Server) o; 42 | return uri.equals(server.uri) || currentUri.equals(server.uri.toString()); 43 | } 44 | 45 | public static class DownloadSpeedComparator implements Comparator { 46 | @Override 47 | public int compare(Server o1, Server o2) { 48 | if (Objects.equals(o1.downloadSpeed, o2.downloadSpeed)) return 0; 49 | else if (o1.downloadSpeed > o2.downloadSpeed) return -1; 50 | else return 1; 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/Servers.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import org.json.JSONArray; 4 | import org.json.JSONException; 5 | 6 | import java.util.ArrayList; 7 | 8 | import androidx.annotation.NonNull; 9 | 10 | public class Servers extends ArrayList { 11 | 12 | public Servers(JSONArray array) throws JSONException { 13 | super(array.length()); 14 | for (int i = 0; i < array.length(); i++) add(new Server(array.getJSONObject(i))); 15 | } 16 | 17 | private Servers() { 18 | } 19 | 20 | @NonNull 21 | public static Servers empty() { 22 | return new Servers(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/SessionInfo.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import org.json.JSONException; 4 | import org.json.JSONObject; 5 | 6 | public class SessionInfo { 7 | public final String sessionId; 8 | 9 | public SessionInfo(JSONObject obj) throws JSONException { 10 | sessionId = obj.getString("sessionId"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/SparseServers.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import android.util.SparseArray; 4 | 5 | import org.json.JSONArray; 6 | import org.json.JSONException; 7 | import org.json.JSONObject; 8 | 9 | import java.util.Objects; 10 | 11 | import androidx.annotation.NonNull; 12 | import androidx.annotation.Nullable; 13 | 14 | public class SparseServers extends SparseArray { 15 | public SparseServers(JSONArray array) throws JSONException { 16 | super(array.length()); 17 | 18 | for (int i = 0; i < array.length(); i++) { 19 | JSONObject server = array.getJSONObject(i); 20 | put(server.getInt("index"), new Servers(server.getJSONArray("servers"))); 21 | } 22 | } 23 | 24 | private SparseServers() { 25 | } 26 | 27 | @NonNull 28 | public static SparseServers empty() { 29 | return new SparseServers(); 30 | } 31 | 32 | @Nullable 33 | public Server find(Server match) { 34 | for (int i = 0; i < size(); i++) 35 | for (Server server : valueAt(i)) 36 | if (Objects.equals(server, match)) 37 | return server; 38 | 39 | return null; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/SparseServersWithFiles.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | public class SparseServersWithFiles { 4 | public final SparseServers servers; 5 | public final AriaFiles files; 6 | 7 | public SparseServersWithFiles(SparseServers servers, AriaFiles files) { 8 | this.servers = servers; 9 | this.files = files; 10 | } 11 | 12 | public static SparseServersWithFiles empty() { 13 | return new SparseServersWithFiles(SparseServers.empty(), null); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/VersionAndSession.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | public class VersionAndSession { 4 | public final VersionInfo version; 5 | public final SessionInfo session; 6 | 7 | public VersionAndSession(VersionInfo version, SessionInfo session) { 8 | this.version = version; 9 | this.session = session; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/aria2/VersionInfo.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.aria2; 2 | 3 | import com.gianlu.commonutils.CommonUtils; 4 | 5 | import org.json.JSONException; 6 | import org.json.JSONObject; 7 | 8 | import java.util.List; 9 | 10 | public class VersionInfo { 11 | public final String version; 12 | public final List enabledFeatures; 13 | 14 | public VersionInfo(JSONObject obj) throws JSONException { 15 | version = obj.getString("version"); 16 | enabledFeatures = CommonUtils.toStringsList(obj.getJSONArray("enabledFeatures"), false); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/search/MissingSearchEngine.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.search; 2 | 3 | import org.json.JSONException; 4 | import org.json.JSONObject; 5 | 6 | import androidx.annotation.NonNull; 7 | 8 | public class MissingSearchEngine { 9 | public final SearchEngine engine; 10 | public final int responseCode; 11 | 12 | public MissingSearchEngine(SearchApi utils, JSONObject obj) throws JSONException { 13 | engine = utils.findEngine(obj.getString("id")); 14 | responseCode = obj.getInt("reason"); 15 | } 16 | 17 | @NonNull 18 | @Override 19 | public String toString() { 20 | if (engine == null) return ""; 21 | if (engine.proxyed) return engine.name + " (proxyed, returned " + responseCode + ")"; 22 | return engine.name + " (returned " + responseCode + ")"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/search/SearchEngine.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.search; 2 | 3 | import org.json.JSONArray; 4 | import org.json.JSONException; 5 | import org.json.JSONObject; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import androidx.annotation.NonNull; 11 | 12 | public class SearchEngine { 13 | public final String id; 14 | public final String name; 15 | public final String url; 16 | public final int alexaRank; 17 | public final boolean proxyed; 18 | 19 | private SearchEngine(JSONObject obj) throws JSONException { 20 | id = obj.getString("id"); 21 | name = obj.getString("name"); 22 | url = obj.getString("url"); 23 | alexaRank = obj.optInt("alexaRank", -1); 24 | proxyed = obj.getBoolean("proxyed"); 25 | } 26 | 27 | @NonNull 28 | public static List list(JSONArray array) throws JSONException { 29 | List list = new ArrayList<>(array.length()); 30 | for (int i = 0; i < array.length(); i++) list.add(new SearchEngine(array.getJSONObject(i))); 31 | return list; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/search/SearchResult.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.search; 2 | 3 | import org.json.JSONArray; 4 | import org.json.JSONException; 5 | import org.json.JSONObject; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import androidx.annotation.NonNull; 11 | 12 | public class SearchResult { 13 | public final String url; 14 | public final String title; 15 | public final Integer seeders; 16 | public final Integer leeches; 17 | public final String engineId; 18 | 19 | private SearchResult(JSONObject obj) throws JSONException { 20 | url = obj.getString("url"); 21 | title = obj.getString("title"); 22 | engineId = obj.getString("engine"); 23 | 24 | int seeders = obj.optInt("seeders", -1); 25 | this.seeders = seeders == -1 ? null : seeders; 26 | 27 | int leeches = obj.optInt("leeches", -1); 28 | this.leeches = leeches == -1 ? null : leeches; 29 | } 30 | 31 | @NonNull 32 | public static List list(JSONArray array) throws JSONException { 33 | List list = new ArrayList<>(array.length()); 34 | for (int i = 0; i < array.length(); i++) list.add(new SearchResult(array.getJSONObject(i))); 35 | return list; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/search/Torrent.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.search; 2 | 3 | import com.gianlu.commonutils.CommonUtils; 4 | 5 | import org.json.JSONException; 6 | import org.json.JSONObject; 7 | 8 | public class Torrent { 9 | public final String engineId; 10 | public final String title; 11 | public final String magnet; 12 | public final String torrentFileUrl; 13 | public final long size; 14 | public final int seeders; 15 | public final int leeches; 16 | 17 | public Torrent(JSONObject obj) throws JSONException { 18 | engineId = obj.getString("engine"); 19 | title = obj.getString("title"); 20 | magnet = obj.getString("magnet"); 21 | torrentFileUrl = CommonUtils.optString(obj, "torrent"); 22 | size = obj.getLong("size"); 23 | seeders = obj.getInt("seeders"); 24 | leeches = obj.getInt("leeches"); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/updater/Receiver.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.updater; 2 | 3 | import com.gianlu.aria2app.api.aria2.Aria2Helper; 4 | 5 | import androidx.annotation.NonNull; 6 | 7 | public interface Receiver

{ 8 | void onUpdateUi(@NonNull P payload); 9 | 10 | void onLoad(@NonNull P payload); 11 | 12 | /** 13 | * @see PayloadUpdater.OnPayload#onException(Exception) 14 | */ 15 | boolean onCouldntLoad(@NonNull Exception ex); 16 | 17 | /** 18 | * @see PayloadUpdater.OnPayload#onException(Exception) 19 | */ 20 | boolean onUpdateException(@NonNull Exception ex); 21 | 22 | @NonNull 23 | Wants

wants(); 24 | 25 | @NonNull 26 | PayloadProvider

requireProvider() throws Aria2Helper.InitializingException; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/api/updater/ReceiverOwner.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.api.updater; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | public interface ReceiverOwner { 6 | @NonNull 7 | String toString(); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/inappdownloader/Aria2ConfigProvider.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.inappdownloader; 2 | 3 | import android.app.Activity; 4 | 5 | import androidx.annotation.Keep; 6 | import androidx.annotation.NonNull; 7 | 8 | import com.gianlu.aria2app.LoadingActivity; 9 | import com.gianlu.aria2app.R; 10 | import com.gianlu.aria2lib.BareConfigProvider; 11 | 12 | @Keep 13 | public final class Aria2ConfigProvider implements BareConfigProvider { 14 | 15 | public Aria2ConfigProvider() { 16 | } 17 | 18 | @Override 19 | public int launcherIcon() { 20 | return R.mipmap.ic_launcher_round; 21 | } 22 | 23 | @Override 24 | public int notificationIcon() { 25 | return R.drawable.ic_aria2_notification; 26 | } 27 | 28 | @NonNull 29 | @Override 30 | public Class actionClass() { 31 | return LoadingActivity.class; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/main/DrawerItem.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.main; 2 | 3 | public enum DrawerItem { 4 | HOME, DIRECT_DOWNLOAD, QUICK_OPTIONS, GLOBAL_OPTIONS, 5 | PREFERENCES, SUPPORT, ABOUT_ARIA2, ADD_PROFILE 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/main/HideSecondSpace.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.main; 2 | 3 | public interface HideSecondSpace { 4 | void hideSecondSpace(); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/main/MainProvider.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.main; 2 | 3 | import android.content.Context; 4 | 5 | import com.gianlu.aria2app.api.AbstractClient; 6 | import com.gianlu.aria2app.api.aria2.Aria2Helper; 7 | import com.gianlu.aria2app.api.aria2.DownloadsAndGlobalStats; 8 | import com.gianlu.aria2app.api.updater.PayloadProvider; 9 | import com.gianlu.aria2app.api.updater.PayloadUpdater; 10 | import com.gianlu.aria2app.api.updater.Wants; 11 | 12 | import androidx.annotation.NonNull; 13 | 14 | class MainProvider extends PayloadProvider { 15 | 16 | MainProvider(Context context) throws Aria2Helper.InitializingException { 17 | super(context.getApplicationContext(), Wants.downloadsAndStats()); 18 | } 19 | 20 | @NonNull 21 | @Override 22 | protected PayloadUpdater requireUpdater(@NonNull Context context) throws Aria2Helper.InitializingException { 23 | return new Updater(context); 24 | } 25 | 26 | private class Updater extends PayloadUpdater implements AbstractClient.OnResult { 27 | Updater(Context context) throws Aria2Helper.InitializingException { 28 | super(context.getApplicationContext(), MainProvider.this); 29 | } 30 | 31 | @Override 32 | public void loop() { 33 | helper.tellAllAndGlobalStats(this); 34 | } 35 | 36 | @Override 37 | public void onResult(@NonNull DownloadsAndGlobalStats result) { 38 | hasResult(result); 39 | } 40 | 41 | @Override 42 | public void onException(@NonNull Exception ex) { 43 | errorOccurred(ex); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/services/BootCompletedReceiver.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.services; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import com.gianlu.aria2app.PK; 8 | import com.gianlu.aria2app.ThisApplication; 9 | import com.gianlu.commonutils.preferences.Prefs; 10 | 11 | import java.util.Objects; 12 | 13 | public class BootCompletedReceiver extends BroadcastReceiver { 14 | 15 | @Override 16 | public void onReceive(Context context, Intent intent) { 17 | if (Objects.equals(intent.getAction(), Intent.ACTION_BOOT_COMPLETED)) { 18 | if (Prefs.getBoolean(PK.A2_NOTIFS_AT_BOOT)) 19 | NotificationService.start(context); 20 | 21 | if (Prefs.getBoolean(PK.IN_APP_DOWNLOADER_AT_BOOT)) 22 | ((ThisApplication) context.getApplicationContext()).startAria2ServiceFromReceiver(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/services/ProfileChooserService.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.services; 2 | 3 | import android.content.ComponentName; 4 | import android.content.IntentFilter; 5 | import android.os.Build; 6 | import android.service.chooser.ChooserTarget; 7 | import android.service.chooser.ChooserTargetService; 8 | 9 | import androidx.annotation.RequiresApi; 10 | 11 | import com.gianlu.aria2app.profiles.ChooserTargetsCache; 12 | import com.gianlu.aria2app.profiles.MultiProfile; 13 | import com.gianlu.aria2app.profiles.ProfilesManager; 14 | import com.gianlu.commonutils.lettersicon.DrawingHelper; 15 | 16 | import java.util.ArrayList; 17 | import java.util.List; 18 | 19 | @RequiresApi(api = Build.VERSION_CODES.M) 20 | public class ProfileChooserService extends ChooserTargetService { 21 | @Override 22 | public List onGetChooserTargets(ComponentName targetActivityName, IntentFilter matchedFilter) { 23 | DrawingHelper helper = new DrawingHelper(this); 24 | List profiles = ProfilesManager.get(this).getProfiles(); 25 | List targets = new ArrayList<>(); 26 | ChooserTargetsCache cache = ChooserTargetsCache.get(); 27 | for (MultiProfile profile : profiles) 28 | targets.add(cache.getOrGenerate(profile, helper, targetActivityName)); 29 | return targets; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/tutorial/Discovery.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.tutorial; 2 | 3 | import androidx.annotation.NonNull; 4 | 5 | import com.gianlu.commonutils.tutorial.BaseTutorial; 6 | import com.gianlu.commonutils.tutorial.TutorialManager; 7 | 8 | public enum Discovery implements TutorialManager.Discovery { 9 | DOWNLOADS_TOOLBAR(DownloadsToolbarTutorial.class), 10 | DOWNLOADS_CARDS(DownloadCardsTutorial.class), 11 | FOLDERS(FoldersTutorial.class), 12 | FILES(FilesTutorial.class), 13 | PEERS_SERVERS(PeersServersTutorial.class); 14 | 15 | private final Class tutorialClass; 16 | 17 | Discovery(@NonNull Class tutorialClass) { 18 | this.tutorialClass = tutorialClass; 19 | } 20 | 21 | @NonNull 22 | @Override 23 | public Class tutorialClass() { 24 | return tutorialClass; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/tutorial/DownloadsToolbarTutorial.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.tutorial; 2 | 3 | import androidx.annotation.Keep; 4 | import androidx.annotation.NonNull; 5 | import androidx.appcompat.widget.Toolbar; 6 | 7 | import com.gianlu.aria2app.adapters.DownloadCardsAdapter; 8 | import com.gianlu.aria2app.R; 9 | import com.gianlu.commonutils.tutorial.BaseTutorial; 10 | 11 | import me.toptas.fancyshowcase.FocusShape; 12 | 13 | public final class DownloadsToolbarTutorial extends BaseTutorial { 14 | 15 | @Keep 16 | public DownloadsToolbarTutorial() { 17 | super(Discovery.DOWNLOADS_TOOLBAR); 18 | } 19 | 20 | public final boolean canShow(Toolbar toolbar, DownloadCardsAdapter adapter) { 21 | return toolbar != null && adapter != null && adapter.getItemCount() >= 5; 22 | } 23 | 24 | public final void buildSequence(@NonNull Toolbar toolbar) { 25 | if (toolbar.findViewById(R.id.main_search) != null) 26 | add(forToolbarMenuItem(toolbar, R.id.main_search, R.string.tutorial_search) 27 | .fitSystemWindows(true) 28 | .enableAutoTextPosition() 29 | .focusShape(FocusShape.CIRCLE)); 30 | 31 | if (toolbar.findViewById(R.id.main_filter) != null) 32 | add(forToolbarMenuItem(toolbar, R.id.main_filter, R.string.tutorial_filters) 33 | .fitSystemWindows(true) 34 | .enableAutoTextPosition() 35 | .focusShape(FocusShape.CIRCLE)); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/tutorial/FilesTutorial.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.tutorial; 2 | 3 | import androidx.annotation.Keep; 4 | import androidx.annotation.NonNull; 5 | import androidx.annotation.Nullable; 6 | import androidx.fragment.app.Fragment; 7 | import androidx.recyclerview.widget.RecyclerView; 8 | 9 | import com.gianlu.aria2app.activities.moreabout.files.FilesAdapter; 10 | import com.gianlu.aria2app.api.aria2.AriaDirectory; 11 | import com.gianlu.aria2app.R; 12 | import com.gianlu.commonutils.CommonUtils; 13 | import com.gianlu.commonutils.tutorial.BaseTutorial; 14 | 15 | import me.toptas.fancyshowcase.FocusShape; 16 | 17 | public final class FilesTutorial extends BaseTutorial { 18 | 19 | @Keep 20 | public FilesTutorial() { 21 | super(Discovery.FILES); 22 | } 23 | 24 | public final boolean buildSequence(@NonNull RecyclerView list, @Nullable AriaDirectory dir) { 25 | int firstFile = dir == null ? 0 : dir.dirs.size(); 26 | RecyclerView.ViewHolder holder = list.findViewHolderForLayoutPosition(firstFile); 27 | if (holder != null) { 28 | list.scrollToPosition(firstFile); 29 | 30 | add(forView(holder.itemView, R.string.tutorial_fileDetails) 31 | .enableAutoTextPosition() 32 | .roundRectRadius(8) 33 | .focusShape(FocusShape.ROUNDED_RECTANGLE)); 34 | return true; 35 | } 36 | 37 | return false; 38 | } 39 | 40 | public final boolean canShow(Fragment fragment, FilesAdapter adapter) { 41 | return fragment != null && CommonUtils.isVisible(fragment) && adapter != null && adapter.getCurrentDir() != null && adapter.getCurrentDir().files.size() >= 1; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/gianlu/aria2app/tutorial/FoldersTutorial.java: -------------------------------------------------------------------------------- 1 | package com.gianlu.aria2app.tutorial; 2 | 3 | import androidx.annotation.Keep; 4 | import androidx.annotation.NonNull; 5 | import androidx.fragment.app.Fragment; 6 | import androidx.recyclerview.widget.RecyclerView; 7 | 8 | import com.gianlu.aria2app.activities.moreabout.files.FilesAdapter; 9 | import com.gianlu.aria2app.R; 10 | import com.gianlu.commonutils.CommonUtils; 11 | import com.gianlu.commonutils.tutorial.BaseTutorial; 12 | 13 | import me.toptas.fancyshowcase.FocusShape; 14 | 15 | public final class FoldersTutorial extends BaseTutorial { 16 | 17 | @Keep 18 | public FoldersTutorial() { 19 | super(Discovery.FOLDERS); 20 | } 21 | 22 | public final boolean buildSequence(@NonNull RecyclerView list) { 23 | RecyclerView.ViewHolder holder = list.findViewHolderForLayoutPosition(0); 24 | if (holder != null) { 25 | list.scrollToPosition(0); 26 | 27 | add(forView(holder.itemView, R.string.tutorial_folderDetails) 28 | .enableAutoTextPosition() 29 | .roundRectRadius(8) 30 | .focusShape(FocusShape.ROUNDED_RECTANGLE)); 31 | return true; 32 | } 33 | 34 | return false; 35 | } 36 | 37 | public final boolean canShow(Fragment fragment, FilesAdapter adapter) { 38 | return fragment != null && CommonUtils.isVisible(fragment) && adapter != null && adapter.getCurrentDir() != null && adapter.getCurrentDir().dirs.size() >= 1; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/play/contact-email.txt: -------------------------------------------------------------------------------- 1 | altomanigianluca@gmail.com -------------------------------------------------------------------------------- /app/src/main/play/contact-website.txt: -------------------------------------------------------------------------------- 1 | https://gianlu.xyz -------------------------------------------------------------------------------- /app/src/main/play/default-language.txt: -------------------------------------------------------------------------------- 1 | en-GB -------------------------------------------------------------------------------- /app/src/main/play/listings/cs-CZ/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/cs-CZ/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/da-DK/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/da-DK/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/de-DE/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/de-DE/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/el-GR/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/el-GR/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/feature-graphic/14388460366258042089.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/feature-graphic/14388460366258042089.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/icon/5353168451724732701.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/icon/5353168451724732701.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/large-tablet-screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/large-tablet-screenshots/1.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/large-tablet-screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/large-tablet-screenshots/2.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/phone-screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/phone-screenshots/1.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/phone-screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/phone-screenshots/2.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/phone-screenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/phone-screenshots/3.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/phone-screenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/phone-screenshots/4.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/phone-screenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/phone-screenshots/5.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/phone-screenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/phone-screenshots/6.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/tablet-screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/tablet-screenshots/1.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/graphics/tablet-screenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/play/listings/en-GB/graphics/tablet-screenshots/2.png -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/en-GB/title.txt: -------------------------------------------------------------------------------- 1 | Aria2App (open source) -------------------------------------------------------------------------------- /app/src/main/play/listings/en-US/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/en-US/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/es-ES/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/es-ES/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/fa-IR/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App مدیر بارگیری درجه-سرور قابل حمل شماست که توسط aria2 مستقیما بر روی دستگاه شما پشتیبانی می‌شود. به لطف رابط JSON-RPC می توانید نمونه‌های aria2 که در دستگاه های بیرونی در حال اجرا هستند را نیز مدیریت کنید. 2 | 3 | برخی از ویژگی‌ها: 4 | - مدیریت همزمان سرورهای بیشتر 5 | - افزودن بارگیری‌های HTTP(s), (s)FTP, BitTorrent, Metalink 6 | - افزودن تورنت‌ها با موتور جستجوی یکپارچه 7 | - آغاز بارگیری‌ها با کلیک روی پیوندها در مرورگر 8 | - مدیریت بارگیری‌ها (مکث، ادامه، توقف) 9 | - اطلاعات ابتدایی و کامل را بیابید 10 | - آمار مربوط به همتاها و سرور بارگیری‌های خود را مشاهده کنید 11 | - نمایش اطلاعات مربوط به هر پرونده بارگیری شده 12 | - از طریق بارگیری مستقیم فایلها را از سرور به دستگاه خود بارگیری کنید 13 | - تنظیمات یک بارگیری یا کلی aria2 را تغییر دهید 14 | - اعلان‌های زنده بارگیری‌ها یا بارگیری‌های انتخابی خود را دریافت کنید 15 | و حتی بیشتر 16 | 17 | این پروژه در https://github.com/devgianlu/Aria2App منبع باز است 18 | --------------------------------------- 19 | 20 | aria2 توسط Tatsuhiro Tsujikawa توسعه داده شده است 21 | (https://github.com/tatsuhiro-t). 22 | بیت تورنت یک نشان تجاری ثبت شده توسط شرکت بیت تورنت است. 23 | -------------------------------------------------------------------------------- /app/src/main/play/listings/fa-IR/short-description.txt: -------------------------------------------------------------------------------- 1 | یک مدیر بارگیری پیشرفته و کارخواه aria2 در جیب شما. -------------------------------------------------------------------------------- /app/src/main/play/listings/fi-FI/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/fi-FI/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/fr-FR/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App est votre gestionnaire de serveur de téléchargement supporté par aria2 directement sur votre appareil. Vous pouvez également gérer les instances aria2 fonctionnant sur des périphériques externes grâce à l'interface JSON-RPC. 2 | 3 | Certaines des fonctionnalités sont : 4 | - Gérer plus de serveurs simultanément 5 | - Ajout de téléchargements HTTP(s), (s)FTP, BitTorrent, Metalink 6 | - Ajouter des torrents avec le moteur de recherche intégré 7 | - Démarrez les téléchargements en cliquant sur les liens du navigateur 8 | - Gérer les téléchargements (pause, reprise, arrêt) 9 | - Trouver des informations basiques et approfondies 10 | - Voir les statistiques sur les pairs et le serveur de vos téléchargements 11 | - Affiche les informations sur chaque fichier en téléchargement 12 | - Télécharger les fichiers du serveur vers votre appareil via DirectDownload 13 | - Changer un seul téléchargement ou une seule option générale aria2 14 | - Recevoir des notifications en direct de vos téléchargements ou des téléchargements sélectionnés 15 | Et plus encore 16 | 17 | Les sources de ce projets sont ouvertes et disponibles sur https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 est développé par Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent est une marque déposée par BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/fr-FR/short-description.txt: -------------------------------------------------------------------------------- 1 | Un gestionnaire de téléchargement avancé et un client aria2 dans votre poche. -------------------------------------------------------------------------------- /app/src/main/play/listings/he-IL/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/he-IL/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/hu-HU/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/hu-HU/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/it-IT/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/it-IT/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/ja-JP/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/ja-JP/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/ko-KR/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/ko-KR/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/nl-NL/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/nl-NL/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/no-NO/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/no-NO/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/pl-PL/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/pl-PL/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/pt-BR/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App é o seu gerenciador de downloads portátil do servidor apoiado por aria2 diretamente no seu dispositivo. Você também pode gerenciar instâncias aria2 em dispositivos externos graças à interface JSON-RPC. 2 | 3 | Alguns dos recursos são: 4 | - Operar mais servidores simultaneamente 5 | - Adicionar HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Adicionar Torrents com o motor de busca integrado 7 | - Inicie os downloads, clicando em links no navegador 8 | - Manipular downloads (pausar, retomar, parar) 9 | - Encontre informações básicas e aprofundadas 10 | - Exibir estatísticas sobre os pares e o servidor dos seus downloads 11 | - Exibir as informações sobre cada arquivo no download 12 | - Baixar arquivos do servidor para o seu dispositivo através do DirectDownload 13 | - Alterar as opções gerais de um único download ou do aria2 14 | - Receba notificações ao vivo dos seus downloads ou dos downloads selecionados 15 | E ainda mais 16 | 17 | Este projeto é de código aberto em https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 é desenvolvido por Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent é uma marca registrada pela BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/pt-BR/short-description.txt: -------------------------------------------------------------------------------- 1 | Um gerenciador de download avançado e um cliente aria2 em seu bolso. -------------------------------------------------------------------------------- /app/src/main/play/listings/pt-PT/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/pt-PT/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/sr-SP/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/sr-SP/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/sv-SE/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/sv-SE/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/tr-TR/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App is your portable server-grade download manager backed by aria2 directly on your device. You can also manage aria2 instances running on external devices thanks to the JSON-RPC interface. 2 | 3 | Some of the features are: 4 | - Handle more servers simultaneously 5 | - Add HTTP(s), (s)FTP, BitTorrent, Metalink downloads 6 | - Add Torrents with the integrated search engine 7 | - Start downloads by clicking on links on the browser 8 | - Handle downloads (pause, resume, stop) 9 | - Find basic and in-depth information 10 | - View statistics about peers and server of your downloads 11 | - Display the information about every file in download 12 | - Download files from the server to your device through DirectDownload 13 | - Change a single download or aria2 general options 14 | - Receive live notifications of your downloads or your selected downloads 15 | And even more 16 | 17 | This project is open source at https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2 is developed by Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t). 21 | BitTorrent is a registered trademark by BitTorrent Inc. 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/tr-TR/short-description.txt: -------------------------------------------------------------------------------- 1 | An advanced download manager and aria2 client for your pocket. -------------------------------------------------------------------------------- /app/src/main/play/listings/zh-CN/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App 是一款由您设备上的aria2 支持的便携式服务器级别下载管理器 通过JSON-RPC 接口,您也可以管理在外部设备上运行 aria2 实例。 2 | 3 | 一些特性: 4 | - 同时处理更多服务器 5 | - 添加 HTTP(s)、(s)FTP、BitTorrent、 Metalink 下载 6 | - 通过集成搜索引擎添加 Torrent 7 | - 点击浏览器链接启动下载 8 | - 处理下载(暂停、恢复、停止) 9 | - 寻找基本和深入的信息 10 | - 查看下载项的peers和服务器的统计数据 11 | - 显示下载中每个文件的信息 12 | - 通过 DirectDownload 把文件从服务器下载到您的设备 13 | - 更改单个下载或aria2 一般选项 14 | - 接收您的下载或选定下载的实时通知 15 | 更多 16 | 17 | 项目源代码位于 https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | aria2由Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t)开发。 21 | BitTorrent 是 BitTorrent 公司注册的商标。 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/zh-CN/short-description.txt: -------------------------------------------------------------------------------- 1 | 您口袋里的高级下载管理器和aria2客户端 -------------------------------------------------------------------------------- /app/src/main/play/listings/zh-TW/full-description.txt: -------------------------------------------------------------------------------- 1 | Aria2App 是您裝置上由 Aria2 直接支援的可攜式伺服器級下載管理員。 透過 JSON-RPC 介面,你還可以管理在裝置外部執行的 Aria2 執行個體。 2 | 3 | 精采特色: 4 | - 同時處理更多伺服器 5 | - 新增 HTTP、FTP、BitTorrent、中繼連結下載 6 | - 透過整合搜尋引擎新增 Torrent 7 | - 按一下瀏覽器上的連結即可開始下載 8 | - 處理下載 (暫停、繼續、停止) 9 | - 尋找基本和深入資訊 10 | - 檢視有關下載同儕和伺服器的統計資料 11 | - 顯示正在下載的每個檔案的資訊 12 | - 透過直接下載將檔案直接從伺服器下載到您的裝置 13 | - 變更單一下載或 Aria2 一般選項 14 | - 接收您的下載或您選取的下載的即時通知 15 | 甚至更多 16 | 17 | 此專案於此開放原始碼:https://github.com/devgianlu/Aria2App 18 | --------------------------------------- 19 | 20 | Aria2 由 Tatsuhiro Tsujikawa (https://github.com/tatsuhiro-t) 開發。 21 | BitTorrent® 是 BitTorrent, Inc 的註冊商標。 22 | -------------------------------------------------------------------------------- /app/src/main/play/listings/zh-TW/short-description.txt: -------------------------------------------------------------------------------- 1 | 一個隨身進階下載管理員和 Aria2 用戶端。 -------------------------------------------------------------------------------- /app/src/main/play/release-notes/en-GB/production.txt: -------------------------------------------------------------------------------- 1 | ### Added 2 | - Some translations 3 | - Monochrome icon 4 | 5 | ### Fixed 6 | - Fixed startup crash 7 | 8 | ### Changed 9 | - Updated libraries -------------------------------------------------------------------------------- /app/src/main/res/color-night/text_field_stroke_on_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/color/text_field_stroke_on_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/baseline_all_inbox_colored_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/baseline_language_colored_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_aria2_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_aria2_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_aria2android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_aria2android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_error_outline_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_error_outline_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_new_releases_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_new_releases_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_torrent_colored_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_torrent_colored_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_torrent_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-hdpi/ic_torrent_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_aria2_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_aria2_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_aria2android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_aria2android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_error_outline_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_error_outline_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_new_releases_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_new_releases_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_torrent_colored_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_torrent_colored_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_torrent_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-mdpi/ic_torrent_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-nodpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_aria2_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_aria2_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_aria2android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_aria2android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_error_outline_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_error_outline_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_new_releases_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_new_releases_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_torrent_colored_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_torrent_colored_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_torrent_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xhdpi/ic_torrent_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_aria2_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_aria2_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_aria2android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_aria2android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_error_outline_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_error_outline_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_new_releases_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_new_releases_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_torrent_colored_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_torrent_colored_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_torrent_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxhdpi/ic_torrent_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_aria2_notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxxhdpi/ic_aria2_notification.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_aria2android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxxhdpi/ic_aria2android.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_error_outline_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxxhdpi/ic_error_outline_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_new_releases_grey_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxxhdpi/ic_new_releases_grey_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_torrent_colored_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxxhdpi/ic_torrent_colored_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_torrent_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/drawable-xxxhdpi/ic_torrent_white_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_access_time_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_add_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_add_circle_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_all_inbox_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_android_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_announcement_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_arrow_downward_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_arrow_upward_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_bookmark_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_clear_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_clear_outline_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_cloud_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_cloud_done_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_cloud_download_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_cloud_off_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_delete_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_delete_forever_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_done_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_done_all_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_download_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_edit_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_error_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_error_outline_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_favorite_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_favorite_border_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_filter_list_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_folder_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_home_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_info_outline_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_insert_drive_file_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_keyboard_arrow_down_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_keyboard_arrow_right_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_language_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_link_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_link_colored_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_list_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_more_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_network_check_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_notifications_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_notifications_active_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_notifications_none_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_notifications_off_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_opacity_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_open_in_new_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_pause_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_pause_circle_outline_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_people_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_play_arrow_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_play_circle_outline_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_playlist_add_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_playlist_add_colored_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_refresh_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_report_problem_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_search_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_search_colored_24.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_select_all_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_sms_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_sort_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_stop_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_supervisor_account_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_update_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_upload_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/baseline_verified_user_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fab_label_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/font/roboto_black.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/font/roboto_bold.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/font/roboto_light.ttf -------------------------------------------------------------------------------- /app/src/main/res/font/roboto_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devgianlu/Aria2App/5c85948d549ab2a9de65012bd6cfb14d8bc20671/app/src/main/res/font/roboto_medium.ttf -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_add_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_in_app_aria2_conf.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | 23 | 24 | 31 | 32 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_more_about_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 22 | 23 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 18 | 19 | 26 | 27 |