From cbfef2e7039eaab653a9764912a9dda7184f7275 Mon Sep 17 00:00:00 2001 From: joragua Date: Wed, 23 Oct 2024 16:53:51 +0200 Subject: [PATCH 01/11] fix: fixed file size after a local update --- .../android/workers/UploadFileFromFileSystemWorker.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt index 1942d2674be..12f0fb64cc9 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt @@ -250,7 +250,7 @@ class UploadFileFromFileSystemWorker( val result = executeRemoteOperation { uploadFileOperation.execute(client) } - if (result == Unit) { + if (result == Unit && behavior == UploadBehavior.MOVE) { removeLocalFile() // Removed file from tmp folder } } @@ -289,7 +289,7 @@ class UploadFileFromFileSystemWorker( ) // Step 4: Remove tmp file folder after uploading - if (result == Unit) { + if (result == Unit && behavior == UploadBehavior.MOVE) { removeLocalFile() } } From 136ba9417c74e974fe7d6ad5c638c675d7e28b61 Mon Sep 17 00:00:00 2001 From: joragua Date: Wed, 23 Oct 2024 17:45:40 +0200 Subject: [PATCH 02/11] build: updated versionCode and versionName --- owncloudApp/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/owncloudApp/build.gradle b/owncloudApp/build.gradle index 1cf790e548e..faa0df182e1 100644 --- a/owncloudApp/build.gradle +++ b/owncloudApp/build.gradle @@ -96,8 +96,8 @@ android { testInstrumentationRunner "com.owncloud.android.utils.OCTestAndroidJUnitRunner" - versionCode = 44000000 - versionName = "4.4.0" + versionCode = 44000100 + versionName = "4.4.1" buildConfigField "String", gitRemote, "\"" + getGitOriginRemote() + "\"" buildConfigField "String", commitSHA1, "\"" + getLatestGitHash() + "\"" From b71d41d80ddb782a9b6367a534587eb24c4003c9 Mon Sep 17 00:00:00 2001 From: joragua Date: Wed, 23 Oct 2024 17:57:39 +0200 Subject: [PATCH 03/11] feat: added release note --- .../presentation/releasenotes/ReleaseNotesViewModel.kt | 5 +++++ owncloudApp/src/main/res/values/strings.xml | 2 ++ 2 files changed, 7 insertions(+) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt index 369c8c3d963..30d8516b10d 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt @@ -70,6 +70,11 @@ class ReleaseNotesViewModel( subtitle = R.string.release_notes_4_3_0_subtitle_accessibility_improvements, type = ReleaseNoteType.ENHANCEMENT ), + ReleaseNote( + title = R.string.release_notes_4_4_1_title_file_size_0, + subtitle = R.string.release_notes_4_4_1_subtitle_file_size_0, + type = ReleaseNoteType.BUGFIX + ), ReleaseNote( title = R.string.release_notes_bugfixes_title, subtitle = R.string.release_notes_bugfixes_subtitle, diff --git a/owncloudApp/src/main/res/values/strings.xml b/owncloudApp/src/main/res/values/strings.xml index eb7bff77be7..c648bdfa0fd 100644 --- a/owncloudApp/src/main/res/values/strings.xml +++ b/owncloudApp/src/main/res/values/strings.xml @@ -732,6 +732,8 @@ Added some mechanisms over retries to improve reliability Improvements in private shares The \"can share\" option is now only shown when editing a private share if the user is able to edit it + File size after a local update + Fixed file size after doing a local update Minor bugfixes Some bugs were fixed to improve experience in the app From bc2441eb29fe67e482a051c13b71c5ba578a7b93 Mon Sep 17 00:00:00 2001 From: joragua Date: Thu, 24 Oct 2024 14:16:45 +0200 Subject: [PATCH 04/11] chore: added calens file --- changelog/4.4.1_2024-10-28/4502 | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/4.4.1_2024-10-28/4502 diff --git a/changelog/4.4.1_2024-10-28/4502 b/changelog/4.4.1_2024-10-28/4502 new file mode 100644 index 00000000000..8151bea5f10 --- /dev/null +++ b/changelog/4.4.1_2024-10-28/4502 @@ -0,0 +1,6 @@ +Bugfix: File size becomes 0 after a local update + +The local copy of a file is not removed after a local update anymore. Therefore, the file size has been fixed. + +https://github.com/owncloud/android/issues/4495 +https://github.com/owncloud/android/pull/4502 From 2ac6d14164421283b7483ee9e0673e46f6f589d3 Mon Sep 17 00:00:00 2001 From: joragua Date: Thu, 24 Oct 2024 14:18:37 +0200 Subject: [PATCH 05/11] feat: copied unreleased folder from master to avoid conflicts --- changelog/unreleased/4482 | 7 +++++++ changelog/unreleased/4484 | 7 +++++++ changelog/unreleased/4492 | 6 ++++++ 3 files changed, 20 insertions(+) create mode 100644 changelog/unreleased/4482 create mode 100644 changelog/unreleased/4484 create mode 100644 changelog/unreleased/4492 diff --git a/changelog/unreleased/4482 b/changelog/unreleased/4482 new file mode 100644 index 00000000000..5ca06e49a17 --- /dev/null +++ b/changelog/unreleased/4482 @@ -0,0 +1,7 @@ +Enhancement: Add status message when (un)setting av. offline from preview + +A message has been added in all previews when the (un)setting av. offline buttons are clicked. +The options menu has been updated in all previews depending on the file status. + +https://github.com/owncloud/android/issues/4382 +https://github.com/owncloud/android/pull/4482 diff --git a/changelog/unreleased/4484 b/changelog/unreleased/4484 new file mode 100644 index 00000000000..405ee38a12d --- /dev/null +++ b/changelog/unreleased/4484 @@ -0,0 +1,7 @@ +Enhancement: Added text labels for BottomNavigationView + +Text labels have been added below the icons, and the active indicator feature is implemented using the default itemActiveIndicatorStyle for better navigation experience. + + +https://github.com/owncloud/android/issues/4484 +https://github.com/owncloud/android/pull/4498 diff --git a/changelog/unreleased/4492 b/changelog/unreleased/4492 new file mode 100644 index 00000000000..3eb5162e14d --- /dev/null +++ b/changelog/unreleased/4492 @@ -0,0 +1,6 @@ +Change: replace auto-uploads with automatic uploads + +Wording change in the feature name, in order to make it clearer in translations and documentation + +https://github.com/owncloud/android/issues/4252 +https://github.com/owncloud/android/pull/4492 From 25b457b6e8cd546cdca9743c4f9fa9d33e76499e Mon Sep 17 00:00:00 2001 From: joragua Date: Thu, 24 Oct 2024 14:20:21 +0200 Subject: [PATCH 06/11] refactor: removed previous release notes and changed the release note content --- .../releasenotes/ReleaseNotesViewModel.kt | 30 ------------------- owncloudApp/src/main/res/values/strings.xml | 4 +-- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt index 30d8516b10d..ebd0d3a50e9 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt @@ -45,41 +45,11 @@ class ReleaseNotesViewModel( companion object { val releaseNotesList = listOf( - ReleaseNote( - title = R.string.release_notes_4_4_0_title_improved_from_original_folder_auto_upload, - subtitle = R.string.release_notes_4_4_0_subtitle_improved_from_original_folder_auto_upload, - type = ReleaseNoteType.ENHANCEMENT - ), - ReleaseNote( - title = R.string.release_notes_4_4_0_title_resharing_capability, - subtitle = R.string.release_notes_4_4_0_subtitle_resharing_capability, - type = ReleaseNoteType.ENHANCEMENT - ), - ReleaseNote( - title = R.string.release_notes_4_4_6_4_bugfixes_title, - subtitle = R.string.release_notes_4_4_6_4_bugfixes_subtitle, - type = ReleaseNoteType.BUGFIX - ), - ReleaseNote( - title = R.string.release_notes_4_4_0_title_audio_player_android14, - subtitle = R.string.release_notes_4_4_0_subtitle_audio_player_android14, - type = ReleaseNoteType.BUGFIX - ), - ReleaseNote( - title = R.string.release_notes_4_3_0_title_accessibility_improvements, - subtitle = R.string.release_notes_4_3_0_subtitle_accessibility_improvements, - type = ReleaseNoteType.ENHANCEMENT - ), ReleaseNote( title = R.string.release_notes_4_4_1_title_file_size_0, subtitle = R.string.release_notes_4_4_1_subtitle_file_size_0, type = ReleaseNoteType.BUGFIX ), - ReleaseNote( - title = R.string.release_notes_bugfixes_title, - subtitle = R.string.release_notes_bugfixes_subtitle, - type = ReleaseNoteType.BUGFIX - ), ) } } diff --git a/owncloudApp/src/main/res/values/strings.xml b/owncloudApp/src/main/res/values/strings.xml index c648bdfa0fd..ced0b3f2e1f 100644 --- a/owncloudApp/src/main/res/values/strings.xml +++ b/owncloudApp/src/main/res/values/strings.xml @@ -732,8 +732,8 @@ Added some mechanisms over retries to improve reliability Improvements in private shares The \"can share\" option is now only shown when editing a private share if the user is able to edit it - File size after a local update - Fixed file size after doing a local update + Fixed local updates + Local copy and file size of any file are now correct after a local update Minor bugfixes Some bugs were fixed to improve experience in the app From d459195e603e97ff00d977c1be2a842f7fa780b8 Mon Sep 17 00:00:00 2001 From: joragua Date: Thu, 24 Oct 2024 12:21:13 +0000 Subject: [PATCH 07/11] docs: calens changelog updated --- CHANGELOG.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef0ab665717..51d6816e7a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Table of Contents +* [Changelog for unreleased](#changelog-for-owncloud-android-client-unreleased-unreleased) +* [Changelog for 4.4.1](#changelog-for-owncloud-android-client-441-2024-10-28) * [Changelog for 4.4.0](#changelog-for-owncloud-android-client-440-2024-09-30) * [Changelog for 4.3.1](#changelog-for-owncloud-android-client-431-2024-07-22) * [Changelog for 4.3.0](#changelog-for-owncloud-android-client-430-2024-07-01) @@ -23,6 +25,68 @@ * [Changelog for 2.18.1](#changelog-for-owncloud-android-client-2181-2021-07-20) * [Changelog for 2.18.0](#changelog-for-owncloud-android-client-2180-2021-05-24) * [Changelog for 2.17 versions and below](#changelog-for-217-versions-and-below) +# Changelog for ownCloud Android Client [unreleased] (UNRELEASED) + +The following sections list the changes in ownCloud Android Client unreleased relevant to +ownCloud admins and users. + +[unreleased]: https://github.com/owncloud/android/compare/v4.4.1...master + +## Summary + +* Change - Replace auto-uploads with automatic uploads: [#4252](https://github.com/owncloud/android/issues/4252) +* Enhancement - Add status message when (un)setting av. offline from preview: [#4382](https://github.com/owncloud/android/issues/4382) +* Enhancement - Added text labels for BottomNavigationView: [#4484](https://github.com/owncloud/android/issues/4484) + +## Details + +* Change - Replace auto-uploads with automatic uploads: [#4252](https://github.com/owncloud/android/issues/4252) + + Wording change in the feature name, in order to make it clearer in translations + and documentation + + https://github.com/owncloud/android/issues/4252 + https://github.com/owncloud/android/pull/4492 + +* Enhancement - Add status message when (un)setting av. offline from preview: [#4382](https://github.com/owncloud/android/issues/4382) + + A message has been added in all previews when the (un)setting av. offline + buttons are clicked. The options menu has been updated in all previews depending + on the file status. + + https://github.com/owncloud/android/issues/4382 + https://github.com/owncloud/android/pull/4482 + +* Enhancement - Added text labels for BottomNavigationView: [#4484](https://github.com/owncloud/android/issues/4484) + + Text labels have been added below the icons, and the active indicator feature is + implemented using the default itemActiveIndicatorStyle for better navigation + experience. + + https://github.com/owncloud/android/issues/4484 + https://github.com/owncloud/android/pull/4498 + +# Changelog for ownCloud Android Client [4.4.1] (2024-10-28) + +The following sections list the changes in ownCloud Android Client 4.4.1 relevant to +ownCloud admins and users. + +[4.4.1]: https://github.com/owncloud/android/compare/v4.4.0...v4.4.1 + +## Summary + +* Bugfix - File size becomes 0 after a local update: [#4495](https://github.com/owncloud/android/issues/4495) + +## Details + +* Bugfix - File size becomes 0 after a local update: [#4495](https://github.com/owncloud/android/issues/4495) + + The local copy of a file is not removed after a local update anymore. Therefore, + the file size has been fixed. + + https://github.com/owncloud/android/issues/4495 + https://github.com/owncloud/android/pull/4502 + # Changelog for ownCloud Android Client [4.4.0] (2024-09-30) The following sections list the changes in ownCloud Android Client 4.4.0 relevant to From 4ef4cc200532914910019c4c410e58198b5977f5 Mon Sep 17 00:00:00 2001 From: joragua Date: Mon, 28 Oct 2024 10:55:51 +0100 Subject: [PATCH 08/11] fix: added a condition to keep the local file after a local update --- .../transfers/uploads/UploadFileInConflictUseCase.kt | 4 +++- .../android/workers/UploadFileFromFileSystemWorker.kt | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt index 40ea3501ce6..0ab30de426d 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt @@ -3,8 +3,9 @@ * * @author Abel García de Prada * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2024 ownCloud GmbH. *

* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -111,6 +112,7 @@ class UploadFileInConflictUseCase( UploadFileFromFileSystemWorker.KEY_PARAM_LAST_MODIFIED to lastModifiedInSeconds, UploadFileFromFileSystemWorker.KEY_PARAM_UPLOAD_PATH to uploadPath, UploadFileFromFileSystemWorker.KEY_PARAM_UPLOAD_ID to uploadIdInStorageManager, + UploadFileFromFileSystemWorker.KEY_PARAM_REMOVE_LOCAL to false ) val constraints = Constraints.Builder() diff --git a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt index 12f0fb64cc9..4e17f9caa86 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt @@ -3,8 +3,9 @@ * * @author Abel García de Prada * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2024 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -81,6 +82,7 @@ class UploadFileFromFileSystemWorker( private lateinit var behavior: UploadBehavior private lateinit var uploadPath: String private lateinit var mimetype: String + private var removeLocal: Boolean = true private var uploadIdInStorageManager: Long = -1 private lateinit var ocTransfer: OCTransfer private var fileSize: Long = 0 @@ -131,6 +133,7 @@ class UploadFileFromFileSystemWorker( val paramBehavior = workerParameters.inputData.getString(KEY_PARAM_BEHAVIOR) val paramFileSystemUri = workerParameters.inputData.getString(KEY_PARAM_LOCAL_PATH) val paramUploadId = workerParameters.inputData.getLong(KEY_PARAM_UPLOAD_ID, -1) + val paramRemoveLocal = workerParameters.inputData.getBoolean(KEY_PARAM_REMOVE_LOCAL, true) account = AccountUtils.getOwnCloudAccountByName(appContext, paramAccountName) ?: return false fileSystemPath = paramFileSystemUri.takeUnless { it.isNullOrBlank() } ?: return false @@ -139,6 +142,7 @@ class UploadFileFromFileSystemWorker( lastModified = paramLastModified ?: return false uploadIdInStorageManager = paramUploadId.takeUnless { it == -1L } ?: return false ocTransfer = retrieveUploadInfoFromDatabase() ?: return false + removeLocal = paramRemoveLocal return true } @@ -250,7 +254,7 @@ class UploadFileFromFileSystemWorker( val result = executeRemoteOperation { uploadFileOperation.execute(client) } - if (result == Unit && behavior == UploadBehavior.MOVE) { + if (result == Unit && removeLocal) { removeLocalFile() // Removed file from tmp folder } } @@ -289,7 +293,7 @@ class UploadFileFromFileSystemWorker( ) // Step 4: Remove tmp file folder after uploading - if (result == Unit && behavior == UploadBehavior.MOVE) { + if (result == Unit && removeLocal) { removeLocalFile() } } @@ -401,5 +405,6 @@ class UploadFileFromFileSystemWorker( const val KEY_PARAM_LAST_MODIFIED = "KEY_PARAM_LAST_MODIFIED" const val KEY_PARAM_UPLOAD_PATH = "KEY_PARAM_UPLOAD_PATH" const val KEY_PARAM_UPLOAD_ID = "KEY_PARAM_UPLOAD_ID" + const val KEY_PARAM_REMOVE_LOCAL = "KEY_REMOVE_LOCAL" } } From 62461d9c57794bbc3397535806ed60fe721cdda6 Mon Sep 17 00:00:00 2001 From: joragua Date: Wed, 30 Oct 2024 14:15:46 +0100 Subject: [PATCH 09/11] refactor: renamed release folder --- changelog/{4.4.1_2024-10-28 => 4.4.1_2024-10-30}/4502 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{4.4.1_2024-10-28 => 4.4.1_2024-10-30}/4502 (100%) diff --git a/changelog/4.4.1_2024-10-28/4502 b/changelog/4.4.1_2024-10-30/4502 similarity index 100% rename from changelog/4.4.1_2024-10-28/4502 rename to changelog/4.4.1_2024-10-30/4502 From 6a6eda738807bab6b075c40f9cbc401f138c1b93 Mon Sep 17 00:00:00 2001 From: joragua Date: Wed, 30 Oct 2024 13:16:23 +0000 Subject: [PATCH 10/11] docs: calens changelog updated --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51d6816e7a6..d69272450b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Table of Contents * [Changelog for unreleased](#changelog-for-owncloud-android-client-unreleased-unreleased) -* [Changelog for 4.4.1](#changelog-for-owncloud-android-client-441-2024-10-28) +* [Changelog for 4.4.1](#changelog-for-owncloud-android-client-441-2024-10-30) * [Changelog for 4.4.0](#changelog-for-owncloud-android-client-440-2024-09-30) * [Changelog for 4.3.1](#changelog-for-owncloud-android-client-431-2024-07-22) * [Changelog for 4.3.0](#changelog-for-owncloud-android-client-430-2024-07-01) @@ -66,7 +66,7 @@ ownCloud admins and users. https://github.com/owncloud/android/issues/4484 https://github.com/owncloud/android/pull/4498 -# Changelog for ownCloud Android Client [4.4.1] (2024-10-28) +# Changelog for ownCloud Android Client [4.4.1] (2024-10-30) The following sections list the changes in ownCloud Android Client 4.4.1 relevant to ownCloud admins and users. From fc48ea3460dbcb03bb4846ee04db85c4beb595c0 Mon Sep 17 00:00:00 2001 From: joragua Date: Wed, 30 Oct 2024 15:01:21 +0100 Subject: [PATCH 11/11] fix: fixed conflicts from master --- .github/ISSUE_TEMPLATE/release_template.md | 1 + .../dependecyinjection/RepositoryModule.kt | 2 +- .../dependecyinjection/UseCaseModule.kt | 16 +- .../dependecyinjection/ViewModelModule.kt | 4 +- .../accounts/ManageAccountsDialogFragment.kt | 2 +- .../accounts/ManageAccountsViewModel.kt | 16 +- .../previews/PreviewAudioViewModel.kt | 11 +- .../previews/PreviewTextViewModel.kt | 11 +- .../previews/PreviewVideoViewModel.kt | 11 +- .../releasenotes/ReleaseNotesViewModel.kt | 14 +- .../presentation/settings/SettingsActivity.kt | 4 +- .../SettingsPictureUploadsFragment.kt | 4 +- .../SettingsPictureUploadsViewModel.kt | 16 +- .../SettingsVideoUploadsFragment.kt | 4 +- .../SettingsVideoUploadsViewModel.kt | 16 +- .../android/providers/FileContentProvider.kt | 18 +- .../android/providers/WorkManagerProvider.kt | 14 +- .../ui/activity/FileDisplayActivity.kt | 2 +- .../ui/preview/PreviewAudioFragment.kt | 20 +- .../ui/preview/PreviewImageActivity.kt | 5 +- .../ui/preview/PreviewImageFragment.kt | 18 +- .../ui/preview/PreviewImageViewModel.kt | 13 +- .../android/ui/preview/PreviewTextFragment.kt | 18 +- .../ui/preview/PreviewVideoActivity.kt | 17 +- .../usecases/accounts/RemoveAccountUseCase.kt | 10 +- .../UploadFileFromContentUriUseCase.kt | 2 +- .../uploads/UploadFileFromSystemUseCase.kt | 2 +- .../uploads/UploadFileInConflictUseCase.kt | 2 +- .../UploadFilesFromContentUriUseCase.kt | 2 +- .../uploads/UploadFilesFromSystemUseCase.kt | 2 +- .../android/utils/NotificationUtils.kt | 2 +- ...adsWorker.kt => AutomaticUploadsWorker.kt} | 30 +- .../workers/UploadFileFromContentUriWorker.kt | 2 +- .../workers/UploadFileFromFileSystemWorker.kt | 2 +- .../res/layout/nav_coordinator_layout.xml | 2 +- .../src/main/res/values-ar/strings.xml | 1 - .../src/main/res/values-cs-rCZ/strings.xml | 7 +- .../src/main/res/values-de-rDE/strings.xml | 51 +- .../src/main/res/values-de/strings.xml | 32 +- .../src/main/res/values-el/strings.xml | 1 - .../src/main/res/values-en-rGB/strings.xml | 28 +- .../src/main/res/values-es-rAR/strings.xml | 1 - .../src/main/res/values-es/strings.xml | 8 +- .../src/main/res/values-et-rEE/strings.xml | 28 +- .../src/main/res/values-fi-rFI/strings.xml | 8 +- .../src/main/res/values-fr-rFR/strings.xml | 2 - .../src/main/res/values-fr/strings.xml | 7 +- .../src/main/res/values-he/strings.xml | 2 - .../src/main/res/values-hu-rHU/strings.xml | 2 - .../src/main/res/values-ja-rJP/strings.xml | 31 +- .../src/main/res/values-ko/strings.xml | 9 +- .../src/main/res/values-pl/strings.xml | 2 - .../src/main/res/values-pt-rBR/strings.xml | 22 +- .../src/main/res/values-ru-rRU/strings.xml | 9 +- .../src/main/res/values-ru/strings.xml | 38 +- .../src/main/res/values-sq/strings.xml | 25 +- .../src/main/res/values-sv/strings.xml | 2 - .../src/main/res/values-th-rTH/strings.xml | 2 - .../src/main/res/values-tr/strings.xml | 5 + .../src/main/res/values-ug/strings.xml | 634 +++++++++++++++++- .../src/main/res/values-uk/strings.xml | 2 - .../src/main/res/values-zh-rCN/strings.xml | 32 +- .../src/main/res/values-zh-rTW/strings.xml | 2 - owncloudApp/src/main/res/values/strings.xml | 23 +- owncloudApp/src/main/res/xml/settings.xml | 4 +- .../folderbackup/OCFolderBackupRepository.kt | 10 +- .../LocalFolderBackupDataSource.kt | 6 +- .../OCLocalFolderBackupDataSource.kt | 14 +- .../android/data/migrations/Migration_34.kt | 8 +- .../OCLocalTransferDataSource.kt | 2 +- .../OCLocalFolderBackupDataSourceTest.kt | 12 +- .../FolderBackupRepository.kt | 8 +- .../model/AutomaticUploadsConfiguration.kt} | 6 +- .../model/FolderBackUpConfiguration.kt | 2 +- ...etAutomaticUploadsConfigurationUseCase.kt} | 14 +- ...ictureUploadsConfigurationStreamUseCase.kt | 6 +- ...tVideoUploadsConfigurationStreamUseCase.kt | 8 +- .../usecases/ResetPictureUploadsUseCase.kt | 6 +- .../usecases/ResetVideoUploadsUseCase.kt | 6 +- .../SavePictureUploadsConfigurationUseCase.kt | 6 +- .../SaveVideoUploadsConfigurationUseCase.kt | 6 +- .../domain/transfers/model/OCTransfer.kt | 2 +- .../transfers/model/UploadEnqueuedBy.kt | 4 +- .../testutil/OCFolderBackUpConfiguration.kt | 4 +- .../owncloud/android/testutil/OCTransfer.kt | 2 +- 85 files changed, 1174 insertions(+), 293 deletions(-) rename owncloudApp/src/main/java/com/owncloud/android/presentation/settings/{autouploads => automaticuploads}/SettingsPictureUploadsFragment.kt (98%) rename owncloudApp/src/main/java/com/owncloud/android/presentation/settings/{autouploads => automaticuploads}/SettingsPictureUploadsViewModel.kt (93%) rename owncloudApp/src/main/java/com/owncloud/android/presentation/settings/{autouploads => automaticuploads}/SettingsVideoUploadsFragment.kt (98%) rename owncloudApp/src/main/java/com/owncloud/android/presentation/settings/{autouploads => automaticuploads}/SettingsVideoUploadsViewModel.kt (93%) rename owncloudApp/src/main/java/com/owncloud/android/workers/{CameraUploadsWorker.kt => AutomaticUploadsWorker.kt} (91%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/FolderBackupRepository.kt (77%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads/model/CameraUploadsConfiguration.kt => automaticuploads/model/AutomaticUploadsConfiguration.kt} (79%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/model/FolderBackUpConfiguration.kt (97%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads/usecases/GetCameraUploadsConfigurationUseCase.kt => automaticuploads/usecases/GetAutomaticUploadsConfigurationUseCase.kt} (63%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/usecases/GetPictureUploadsConfigurationStreamUseCase.kt (83%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/usecases/GetVideoUploadsConfigurationStreamUseCase.kt (77%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/usecases/ResetPictureUploadsUseCase.kt (80%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/usecases/ResetVideoUploadsUseCase.kt (80%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/usecases/SavePictureUploadsConfigurationUseCase.kt (84%) rename owncloudDomain/src/main/java/com/owncloud/android/domain/{camerauploads => automaticuploads}/usecases/SaveVideoUploadsConfigurationUseCase.kt (84%) diff --git a/.github/ISSUE_TEMPLATE/release_template.md b/.github/ISSUE_TEMPLATE/release_template.md index 4807aa7aa5d..e4519337dd3 100644 --- a/.github/ISSUE_TEMPLATE/release_template.md +++ b/.github/ISSUE_TEMPLATE/release_template.md @@ -41,6 +41,7 @@ If you don't need some of the steps, cross them by removing the "[ ]" and surrou - [ ] [DIS] Release published in Play Store - [ ] [COM] Publish post in central.owncloud.org ([Category:News + Tag:android](https://central.owncloud.org/tags/c/news/5/android)) - [ ] [COM] Inform in #general that release is out + - [ ] [GIT] Merge `master` into `release/M.m.p`, fixing all the conflicts that could happen, in owncloud/android - [ ] [GIT] Merge without rebasing `release/M.m.p` branch into `master`, in owncloud/android - [ ] [COM] Ping @TheOneRing to update release information in https://owncloud.com/mobile-apps/ - [ ] [DOC] Update documentation with new stuff by creating [issue](https://github.com/owncloud/docs-client-android/issues) diff --git a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/RepositoryModule.kt b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/RepositoryModule.kt index 13200c659e8..1272ad5e08a 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/RepositoryModule.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/RepositoryModule.kt @@ -38,7 +38,7 @@ import com.owncloud.android.data.webfinger.repository.OCWebFingerRepository import com.owncloud.android.domain.appregistry.AppRegistryRepository import com.owncloud.android.domain.authentication.AuthenticationRepository import com.owncloud.android.domain.authentication.oauth.OAuthRepository -import com.owncloud.android.domain.camerauploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository import com.owncloud.android.domain.capabilities.CapabilityRepository import com.owncloud.android.domain.files.FileRepository import com.owncloud.android.domain.server.ServerInfoRepository diff --git a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt index 6deadfc06f0..15666123522 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt @@ -39,13 +39,13 @@ import com.owncloud.android.domain.availableoffline.usecases.GetFilesAvailableOf import com.owncloud.android.domain.availableoffline.usecases.GetFilesAvailableOfflineFromEveryAccountUseCase import com.owncloud.android.domain.availableoffline.usecases.SetFilesAsAvailableOfflineUseCase import com.owncloud.android.domain.availableoffline.usecases.UnsetFilesAsAvailableOfflineUseCase -import com.owncloud.android.domain.camerauploads.usecases.GetCameraUploadsConfigurationUseCase -import com.owncloud.android.domain.camerauploads.usecases.GetPictureUploadsConfigurationStreamUseCase -import com.owncloud.android.domain.camerauploads.usecases.GetVideoUploadsConfigurationStreamUseCase -import com.owncloud.android.domain.camerauploads.usecases.ResetPictureUploadsUseCase -import com.owncloud.android.domain.camerauploads.usecases.ResetVideoUploadsUseCase -import com.owncloud.android.domain.camerauploads.usecases.SavePictureUploadsConfigurationUseCase -import com.owncloud.android.domain.camerauploads.usecases.SaveVideoUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.usecases.GetAutomaticUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.usecases.GetPictureUploadsConfigurationStreamUseCase +import com.owncloud.android.domain.automaticuploads.usecases.GetVideoUploadsConfigurationStreamUseCase +import com.owncloud.android.domain.automaticuploads.usecases.ResetPictureUploadsUseCase +import com.owncloud.android.domain.automaticuploads.usecases.ResetVideoUploadsUseCase +import com.owncloud.android.domain.automaticuploads.usecases.SavePictureUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.usecases.SaveVideoUploadsConfigurationUseCase import com.owncloud.android.domain.capabilities.usecases.GetCapabilitiesAsLiveDataUseCase import com.owncloud.android.domain.capabilities.usecases.GetStoredCapabilitiesUseCase import com.owncloud.android.domain.capabilities.usecases.RefreshCapabilitiesFromServerAsyncUseCase @@ -261,7 +261,7 @@ val useCaseModule = module { factoryOf(::GetServerInfoAsyncUseCase) // Camera Uploads - factoryOf(::GetCameraUploadsConfigurationUseCase) + factoryOf(::GetAutomaticUploadsConfigurationUseCase) factoryOf(::GetPictureUploadsConfigurationStreamUseCase) factoryOf(::GetVideoUploadsConfigurationStreamUseCase) factoryOf(::ResetPictureUploadsUseCase) diff --git a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt index 24ce6e5d21f..5a5abd60001 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt @@ -47,8 +47,8 @@ import com.owncloud.android.presentation.security.passcode.PasscodeAction import com.owncloud.android.presentation.security.pattern.PatternViewModel import com.owncloud.android.presentation.settings.SettingsViewModel import com.owncloud.android.presentation.settings.advanced.SettingsAdvancedViewModel -import com.owncloud.android.presentation.settings.autouploads.SettingsPictureUploadsViewModel -import com.owncloud.android.presentation.settings.autouploads.SettingsVideoUploadsViewModel +import com.owncloud.android.presentation.settings.automaticuploads.SettingsPictureUploadsViewModel +import com.owncloud.android.presentation.settings.automaticuploads.SettingsVideoUploadsViewModel import com.owncloud.android.presentation.settings.logging.SettingsLogsViewModel import com.owncloud.android.presentation.settings.more.SettingsMoreViewModel import com.owncloud.android.presentation.settings.security.SettingsSecurityViewModel diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsDialogFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsDialogFragment.kt index ed7dfc27a6b..b46d00b4ae3 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsDialogFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsDialogFragment.kt @@ -99,7 +99,7 @@ class ManageAccountsDialogFragment : DialogFragment(), ManageAccountsAdapter.Acc override fun removeAccount(account: Account) { dialogView.isVisible = false - val hasAccountAttachedCameraUploads = manageAccountsViewModel.hasCameraUploadsAttached(account.name) + val hasAccountAttachedCameraUploads = manageAccountsViewModel.hasAutomaticUploadsAttached(account.name) val dialog = AlertDialog.Builder(requireContext()) .setMessage(getString( if (hasAccountAttachedCameraUploads) R.string.confirmation_remove_account_alert_camera_uploads diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsViewModel.kt index 341159355e4..677d47b1870 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/accounts/ManageAccountsViewModel.kt @@ -25,8 +25,8 @@ package com.owncloud.android.presentation.accounts import android.accounts.Account import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.owncloud.android.domain.camerauploads.model.CameraUploadsConfiguration -import com.owncloud.android.domain.camerauploads.usecases.GetCameraUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.model.AutomaticUploadsConfiguration +import com.owncloud.android.domain.automaticuploads.usecases.GetAutomaticUploadsConfigurationUseCase import com.owncloud.android.domain.utils.Event import com.owncloud.android.extensions.ViewModelExt.runUseCaseWithResult import com.owncloud.android.presentation.common.UIResult @@ -40,18 +40,18 @@ import kotlinx.coroutines.launch class ManageAccountsViewModel( private val accountProvider: AccountProvider, private val removeLocalFilesForAccountUseCase: RemoveLocalFilesForAccountUseCase, - private val getCameraUploadsConfigurationUseCase: GetCameraUploadsConfigurationUseCase, + private val getAutomaticUploadsConfigurationUseCase: GetAutomaticUploadsConfigurationUseCase, private val coroutinesDispatcherProvider: CoroutinesDispatcherProvider, ) : ViewModel() { private val _cleanAccountLocalStorageFlow = MutableStateFlow>?>(null) val cleanAccountLocalStorageFlow: StateFlow>?> = _cleanAccountLocalStorageFlow - private var cameraUploadsConfiguration: CameraUploadsConfiguration? = null + private var automaticUploadsConfiguration: AutomaticUploadsConfiguration? = null init { viewModelScope.launch(coroutinesDispatcherProvider.io) { - cameraUploadsConfiguration = getCameraUploadsConfigurationUseCase(Unit).getDataOrNull() + automaticUploadsConfiguration = getAutomaticUploadsConfigurationUseCase(Unit).getDataOrNull() } } @@ -73,8 +73,8 @@ class ManageAccountsViewModel( ) } - fun hasCameraUploadsAttached(accountName: String): Boolean { - return accountName == cameraUploadsConfiguration?.pictureUploadsConfiguration?.accountName || - accountName == cameraUploadsConfiguration?.videoUploadsConfiguration?.accountName + fun hasAutomaticUploadsAttached(accountName: String): Boolean { + return accountName == automaticUploadsConfiguration?.pictureUploadsConfiguration?.accountName || + accountName == automaticUploadsConfiguration?.videoUploadsConfiguration?.accountName } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewAudioViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewAudioViewModel.kt index 968ecc438e1..4e799d1fb64 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewAudioViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewAudioViewModel.kt @@ -2,8 +2,9 @@ * ownCloud Android client application * * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2024 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -25,9 +26,11 @@ import androidx.lifecycle.viewModelScope import com.owncloud.android.R import com.owncloud.android.domain.files.model.FileMenuOption import com.owncloud.android.domain.files.model.OCFile +import com.owncloud.android.domain.files.usecases.GetFileByIdAsStreamUseCase import com.owncloud.android.providers.ContextProvider import com.owncloud.android.providers.CoroutinesDispatcherProvider import com.owncloud.android.usecases.files.FilterFileMenuOptionsUseCase +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update @@ -35,13 +38,19 @@ import kotlinx.coroutines.launch class PreviewAudioViewModel( private val filterFileMenuOptionsUseCase: FilterFileMenuOptionsUseCase, + getFileByIdAsStreamUseCase: GetFileByIdAsStreamUseCase, private val contextProvider: ContextProvider, private val coroutinesDispatcherProvider: CoroutinesDispatcherProvider, + ocFile: OCFile, ) : ViewModel() { private val _menuOptions: MutableStateFlow> = MutableStateFlow(emptyList()) val menuOptions: StateFlow> = _menuOptions + private val currentFile: Flow = getFileByIdAsStreamUseCase(GetFileByIdAsStreamUseCase.Params(ocFile.id!!)) + + fun getCurrentFile(): Flow = currentFile + fun filterMenuOptions(file: OCFile, accountName: String) { val shareViaLinkAllowed = contextProvider.getBoolean(R.bool.share_via_link_feature) val shareWithUsersAllowed = contextProvider.getBoolean(R.bool.share_with_users_feature) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewTextViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewTextViewModel.kt index bd8f6a8f85f..0b635fffac4 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewTextViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewTextViewModel.kt @@ -3,8 +3,9 @@ * * @author Juan Carlos Garrote Gascón * @author Parneet Singh + * @author Jorge Aguado Recio * - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2024 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -26,9 +27,11 @@ import androidx.lifecycle.viewModelScope import com.owncloud.android.R import com.owncloud.android.domain.files.model.FileMenuOption import com.owncloud.android.domain.files.model.OCFile +import com.owncloud.android.domain.files.usecases.GetFileByIdAsStreamUseCase import com.owncloud.android.providers.ContextProvider import com.owncloud.android.providers.CoroutinesDispatcherProvider import com.owncloud.android.usecases.files.FilterFileMenuOptionsUseCase +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update @@ -36,13 +39,19 @@ import kotlinx.coroutines.launch class PreviewTextViewModel( private val filterFileMenuOptionsUseCase: FilterFileMenuOptionsUseCase, + getFileByIdAsStreamUseCase: GetFileByIdAsStreamUseCase, private val contextProvider: ContextProvider, private val coroutinesDispatcherProvider: CoroutinesDispatcherProvider, + ocFile: OCFile, ) : ViewModel() { private val _menuOptions: MutableStateFlow> = MutableStateFlow(emptyList()) val menuOptions: StateFlow> = _menuOptions + private val currentFile: Flow = getFileByIdAsStreamUseCase(GetFileByIdAsStreamUseCase.Params(ocFile.id!!)) + + fun getCurrentFile(): Flow = currentFile + fun filterMenuOptions(file: OCFile, accountName: String) { val shareViaLinkAllowed = contextProvider.getBoolean(R.bool.share_via_link_feature) val shareWithUsersAllowed = contextProvider.getBoolean(R.bool.share_with_users_feature) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewVideoViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewVideoViewModel.kt index d332dc02724..eac7082f6ef 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewVideoViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/previews/PreviewVideoViewModel.kt @@ -2,8 +2,9 @@ * ownCloud Android client application * * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2024 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -25,9 +26,11 @@ import androidx.lifecycle.viewModelScope import com.owncloud.android.R import com.owncloud.android.domain.files.model.FileMenuOption import com.owncloud.android.domain.files.model.OCFile +import com.owncloud.android.domain.files.usecases.GetFileByIdAsStreamUseCase import com.owncloud.android.providers.ContextProvider import com.owncloud.android.providers.CoroutinesDispatcherProvider import com.owncloud.android.usecases.files.FilterFileMenuOptionsUseCase +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update @@ -35,13 +38,19 @@ import kotlinx.coroutines.launch class PreviewVideoViewModel( private val filterFileMenuOptionsUseCase: FilterFileMenuOptionsUseCase, + getFileByIdAsStreamUseCase: GetFileByIdAsStreamUseCase, private val contextProvider: ContextProvider, private val coroutinesDispatcherProvider: CoroutinesDispatcherProvider, + ocFile: OCFile, ) : ViewModel() { private val _menuOptions: MutableStateFlow> = MutableStateFlow(emptyList()) val menuOptions: StateFlow> = _menuOptions + private val currentFile: Flow = getFileByIdAsStreamUseCase(GetFileByIdAsStreamUseCase.Params(ocFile.id!!)) + + fun getCurrentFile(): Flow = currentFile + fun filterMenuOptions(file: OCFile, accountName: String) { val shareViaLinkAllowed = contextProvider.getBoolean(R.bool.share_via_link_feature) val shareWithUsersAllowed = contextProvider.getBoolean(R.bool.share_with_users_feature) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt index ebd0d3a50e9..c88d84165db 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/releasenotes/ReleaseNotesViewModel.kt @@ -46,10 +46,20 @@ class ReleaseNotesViewModel( companion object { val releaseNotesList = listOf( ReleaseNote( - title = R.string.release_notes_4_4_1_title_file_size_0, - subtitle = R.string.release_notes_4_4_1_subtitle_file_size_0, + title = R.string.release_notes_4_5_0_title_feedback_in_previews, + subtitle = R.string.release_notes_4_5_0_subtitle_feedback_in_previews, + type = ReleaseNoteType.ENHANCEMENT + ), + ReleaseNote( + title = R.string.release_notes_bugfixes_title, + subtitle = R.string.release_notes_bugfixes_subtitle, type = ReleaseNoteType.BUGFIX ), + ReleaseNote( + title = R.string.release_notes_title_enhanced_bottom_nav_bar, + subtitle = R.string.release_notes_subtitle_bottom_nav_bar, + type = ReleaseNoteType.ENHANCEMENT + ), ) } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsActivity.kt index 8ff8a258350..ee5424c1515 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/SettingsActivity.kt @@ -31,8 +31,8 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible import com.owncloud.android.R import com.owncloud.android.presentation.settings.advanced.SettingsAdvancedFragment -import com.owncloud.android.presentation.settings.autouploads.SettingsPictureUploadsFragment -import com.owncloud.android.presentation.settings.autouploads.SettingsVideoUploadsFragment +import com.owncloud.android.presentation.settings.automaticuploads.SettingsPictureUploadsFragment +import com.owncloud.android.presentation.settings.automaticuploads.SettingsVideoUploadsFragment import com.owncloud.android.presentation.settings.logging.SettingsLogsFragment import com.owncloud.android.presentation.settings.more.SettingsMoreFragment import com.owncloud.android.presentation.settings.security.SettingsSecurityFragment diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsPictureUploadsFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt similarity index 98% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsPictureUploadsFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt index 789ee7677b4..edb74b12ca4 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsPictureUploadsFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.settings.autouploads +package com.owncloud.android.presentation.settings.automaticuploads import android.app.Activity import android.content.DialogInterface @@ -47,7 +47,7 @@ import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_PICTURE_UPLOADS_LA import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_PICTURE_UPLOADS_PATH import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_PICTURE_UPLOADS_SOURCE import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_PICTURE_UPLOADS_WIFI_ONLY -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.extensions.showAlertDialog import com.owncloud.android.ui.activity.FolderPickerActivity import com.owncloud.android.utils.DisplayUtils diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsPictureUploadsViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsViewModel.kt similarity index 93% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsPictureUploadsViewModel.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsViewModel.kt index b9657e632b3..256c28e7a90 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsPictureUploadsViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsViewModel.kt @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.settings.autouploads +package com.owncloud.android.presentation.settings.automaticuploads import android.content.Intent import android.net.Uri @@ -27,12 +27,12 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.owncloud.android.R import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_UPLOADS_DEFAULT_PATH -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName -import com.owncloud.android.domain.camerauploads.model.UploadBehavior -import com.owncloud.android.domain.camerauploads.usecases.GetPictureUploadsConfigurationStreamUseCase -import com.owncloud.android.domain.camerauploads.usecases.ResetPictureUploadsUseCase -import com.owncloud.android.domain.camerauploads.usecases.SavePictureUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.usecases.GetPictureUploadsConfigurationStreamUseCase +import com.owncloud.android.domain.automaticuploads.usecases.ResetPictureUploadsUseCase +import com.owncloud.android.domain.automaticuploads.usecases.SavePictureUploadsConfigurationUseCase import com.owncloud.android.domain.files.model.OCFile import com.owncloud.android.domain.spaces.model.OCSpace import com.owncloud.android.domain.spaces.usecases.GetPersonalSpaceForAccountUseCase @@ -189,7 +189,7 @@ class SettingsPictureUploadsViewModel( } fun schedulePictureUploads() { - workManagerProvider.enqueueCameraUploadsWorker() + workManagerProvider.enqueueAutomaticUploadsWorker() } private fun composePictureUploadsConfiguration( diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsVideoUploadsFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt similarity index 98% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsVideoUploadsFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt index 47dfd70b51c..2fbf963fba1 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsVideoUploadsFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.settings.autouploads +package com.owncloud.android.presentation.settings.automaticuploads import android.app.Activity import android.content.DialogInterface @@ -47,7 +47,7 @@ import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_VIDEO_UPLOADS_ENAB import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_VIDEO_UPLOADS_PATH import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_VIDEO_UPLOADS_SOURCE import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_VIDEO_UPLOADS_WIFI_ONLY -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.extensions.showAlertDialog import com.owncloud.android.ui.activity.FolderPickerActivity import com.owncloud.android.utils.DisplayUtils diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsVideoUploadsViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsViewModel.kt similarity index 93% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsVideoUploadsViewModel.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsViewModel.kt index 95990c28cce..e205bd0477c 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/autouploads/SettingsVideoUploadsViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsViewModel.kt @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.settings.autouploads +package com.owncloud.android.presentation.settings.automaticuploads import android.content.Intent import android.net.Uri @@ -27,12 +27,12 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.owncloud.android.R import com.owncloud.android.db.PreferenceManager.PREF__CAMERA_UPLOADS_DEFAULT_PATH -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.videoUploadsName -import com.owncloud.android.domain.camerauploads.model.UploadBehavior -import com.owncloud.android.domain.camerauploads.usecases.GetVideoUploadsConfigurationStreamUseCase -import com.owncloud.android.domain.camerauploads.usecases.ResetVideoUploadsUseCase -import com.owncloud.android.domain.camerauploads.usecases.SaveVideoUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.videoUploadsName +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.usecases.GetVideoUploadsConfigurationStreamUseCase +import com.owncloud.android.domain.automaticuploads.usecases.ResetVideoUploadsUseCase +import com.owncloud.android.domain.automaticuploads.usecases.SaveVideoUploadsConfigurationUseCase import com.owncloud.android.domain.files.model.OCFile import com.owncloud.android.domain.spaces.model.OCSpace import com.owncloud.android.domain.spaces.usecases.GetPersonalSpaceForAccountUseCase @@ -189,7 +189,7 @@ class SettingsVideoUploadsViewModel( } fun scheduleVideoUploads() { - workManagerProvider.enqueueCameraUploadsWorker() + workManagerProvider.enqueueAutomaticUploadsWorker() } private fun composeVideoUploadsConfiguration( diff --git a/owncloudApp/src/main/java/com/owncloud/android/providers/FileContentProvider.kt b/owncloudApp/src/main/java/com/owncloud/android/providers/FileContentProvider.kt index 6c81a2a3434..f00709fa4f8 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/providers/FileContentProvider.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/providers/FileContentProvider.kt @@ -62,7 +62,7 @@ import com.owncloud.android.data.providers.SharedPreferencesProvider import com.owncloud.android.data.providers.implementation.OCSharedPreferencesProvider import com.owncloud.android.data.transfers.db.OCTransferEntity import com.owncloud.android.db.ProviderMeta.ProviderTableMeta -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.files.model.LIST_MIME_DIR import com.owncloud.android.domain.transfers.model.TransferStatus import com.owncloud.android.domain.transfers.model.UploadEnqueuedBy @@ -358,7 +358,7 @@ class FileContentProvider(val executors: Executors = Executors()) : ContentProvi if (uri.pathSegments.size > 1) { sqlQuery.appendWhere(ProviderTableMeta._ID + "=" + uri.pathSegments[1]) } - sqlQuery.projectionMap = cameraUploadSyncProjectionMap + sqlQuery.projectionMap = automaticUploadSyncProjectionMap } QUOTAS -> { sqlQuery.tables = ProviderTableMeta.USER_QUOTAS_TABLE_NAME @@ -981,7 +981,7 @@ class FileContentProvider(val executors: Executors = Executors()) : ContentProvi videoUploadsConfiguration?.let { backupLocalDataSource.saveFolderBackupConfiguration(it) } if (pictureUploadsConfiguration != null || videoUploadsConfiguration != null) { val workManagerProvider = WorkManagerProvider(context!!) - workManagerProvider.enqueueCameraUploadsWorker() + workManagerProvider.enqueueAutomaticUploadsWorker() } } cursor.close() @@ -1052,8 +1052,8 @@ class FileContentProvider(val executors: Executors = Executors()) : ContentProvi for (upload in uploads) { ocTransferDao.insertOrReplace(upload) if (upload.status == TransferStatus.TRANSFER_QUEUED.value && - upload.createdBy != UploadEnqueuedBy.ENQUEUED_AS_CAMERA_UPLOAD_PICTURE.ordinal && - upload.createdBy != UploadEnqueuedBy.ENQUEUED_AS_CAMERA_UPLOAD_VIDEO.ordinal + upload.createdBy != UploadEnqueuedBy.ENQUEUED_AS_AUTOMATIC_UPLOAD_PICTURE.ordinal && + upload.createdBy != UploadEnqueuedBy.ENQUEUED_AS_AUTOMATIC_UPLOAD_VIDEO.ordinal ) { val localFile = File(upload.localPath) val uploadFileFromSystemUseCase = UploadFileFromSystemUseCase(WorkManager.getInstance(context!!)) @@ -1499,13 +1499,13 @@ class FileContentProvider(val executors: Executors = Executors()) : ContentProvi uploadProjectionMap[ProviderTableMeta.UPLOADS_TRANSFER_ID] = ProviderTableMeta.UPLOADS_TRANSFER_ID } - private val cameraUploadSyncProjectionMap = HashMap() + private val automaticUploadSyncProjectionMap = HashMap() init { - cameraUploadSyncProjectionMap[ProviderTableMeta._ID] = ProviderTableMeta._ID - cameraUploadSyncProjectionMap[ProviderTableMeta.PICTURES_LAST_SYNC_TIMESTAMP] = + automaticUploadSyncProjectionMap[ProviderTableMeta._ID] = ProviderTableMeta._ID + automaticUploadSyncProjectionMap[ProviderTableMeta.PICTURES_LAST_SYNC_TIMESTAMP] = ProviderTableMeta.PICTURES_LAST_SYNC_TIMESTAMP - cameraUploadSyncProjectionMap[ProviderTableMeta.VIDEOS_LAST_SYNC_TIMESTAMP] = + automaticUploadSyncProjectionMap[ProviderTableMeta.VIDEOS_LAST_SYNC_TIMESTAMP] = ProviderTableMeta.VIDEOS_LAST_SYNC_TIMESTAMP } diff --git a/owncloudApp/src/main/java/com/owncloud/android/providers/WorkManagerProvider.kt b/owncloudApp/src/main/java/com/owncloud/android/providers/WorkManagerProvider.kt index 08a0796720f..fac429a5949 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/providers/WorkManagerProvider.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/providers/WorkManagerProvider.kt @@ -35,7 +35,7 @@ import com.owncloud.android.extensions.getRunningWorkInfosLiveData import com.owncloud.android.workers.AccountDiscoveryWorker import com.owncloud.android.workers.AvailableOfflinePeriodicWorker import com.owncloud.android.workers.AvailableOfflinePeriodicWorker.Companion.AVAILABLE_OFFLINE_PERIODIC_WORKER -import com.owncloud.android.workers.CameraUploadsWorker +import com.owncloud.android.workers.AutomaticUploadsWorker import com.owncloud.android.workers.OldLogsCollectorWorker import com.owncloud.android.workers.RemoveLocallyFilesWithLastUsageOlderThanGivenTimeWorker import com.owncloud.android.workers.UploadFileFromContentUriWorker @@ -44,15 +44,15 @@ import com.owncloud.android.workers.UploadFileFromFileSystemWorker class WorkManagerProvider( val context: Context ) { - fun enqueueCameraUploadsWorker() { - val cameraUploadsWorker = PeriodicWorkRequestBuilder( - repeatInterval = CameraUploadsWorker.repeatInterval, - repeatIntervalTimeUnit = CameraUploadsWorker.repeatIntervalTimeUnit - ).addTag(CameraUploadsWorker.CAMERA_UPLOADS_WORKER) + fun enqueueAutomaticUploadsWorker() { + val automaticUploadsWorker = PeriodicWorkRequestBuilder( + repeatInterval = AutomaticUploadsWorker.repeatInterval, + repeatIntervalTimeUnit = AutomaticUploadsWorker.repeatIntervalTimeUnit + ).addTag(AutomaticUploadsWorker.AUTOMATIC_UPLOADS_WORKER) .build() WorkManager.getInstance(context) - .enqueueUniquePeriodicWork(CameraUploadsWorker.CAMERA_UPLOADS_WORKER, ExistingPeriodicWorkPolicy.KEEP, cameraUploadsWorker) + .enqueueUniquePeriodicWork(AutomaticUploadsWorker.AUTOMATIC_UPLOADS_WORKER, ExistingPeriodicWorkPolicy.KEEP, automaticUploadsWorker) } fun enqueueOldLogsCollectorWorker() { diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index 78da8b0b7c3..a881ac53ee9 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -62,7 +62,7 @@ import com.owncloud.android.MainApp import com.owncloud.android.R import com.owncloud.android.data.providers.SharedPreferencesProvider import com.owncloud.android.databinding.ActivityMainBinding -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.capabilities.model.OCCapability import com.owncloud.android.domain.exceptions.AccountNotFoundException import com.owncloud.android.domain.exceptions.DeepLinkException diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt index f26847c9872..2087cfffb49 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewAudioFragment.kt @@ -8,6 +8,7 @@ * @author Shashvat Kedia * @author Juan Carlos Garrote Gascón * @author Aitor Ballesteros Pavón + * @author Jorge Aguado Recio * * Copyright (C) 2024 ownCloud GmbH. * @@ -42,6 +43,7 @@ import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.widget.ImageView +import com.google.android.material.snackbar.Snackbar import com.owncloud.android.R import com.owncloud.android.domain.files.model.OCFile import com.owncloud.android.extensions.collectLatestLifecycleFlow @@ -59,6 +61,7 @@ import com.owncloud.android.ui.fragment.FileFragment import com.owncloud.android.utils.PreferenceUtils import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel +import org.koin.core.parameter.parametersOf import timber.log.Timber /** @@ -85,7 +88,10 @@ class PreviewAudioFragment : FileFragment() { private var mediaServiceConnection: MediaServiceConnection? = null private var autoplay = true - private val previewAudioViewModel by viewModel() + private val previewAudioViewModel by viewModel { + parametersOf(requireArguments().getParcelable(EXTRA_FILE)) + } + private val fileOperationsViewModel: FileOperationsViewModel by inject() /** @@ -115,6 +121,16 @@ class PreviewAudioFragment : FileFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + collectLatestLifecycleFlow(previewAudioViewModel.getCurrentFile()) { currentFile -> + if (currentFile != null) { + file = currentFile + requireActivity().invalidateOptionsMenu() + } else { + requireActivity().onBackPressed() + } + + } + imagePreview = view.findViewById(R.id.image_preview) mediaController = view.findViewById(R.id.media_controller) } @@ -285,11 +301,13 @@ class PreviewAudioFragment : FileFragment() { R.id.action_set_available_offline -> { fileOperationsViewModel.performOperation(FileOperation.SetFilesAsAvailableOffline(listOf(file))) + Snackbar.make(requireView(), R.string.confirmation_set_available_offline, Snackbar.LENGTH_LONG).show() true } R.id.action_unset_available_offline -> { fileOperationsViewModel.performOperation(FileOperation.UnsetFilesAsAvailableOffline(listOf(file))) + Snackbar.make(requireView(), R.string.confirmation_unset_available_offline, Snackbar.LENGTH_LONG).show() true } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt index aaef496e7d2..124faf3c5b7 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt @@ -65,6 +65,7 @@ import com.owncloud.android.usecases.transfers.DOWNLOAD_FINISH_MESSAGE import com.owncloud.android.utils.PreferenceUtils import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel +import org.koin.core.parameter.parametersOf import timber.log.Timber /** @@ -74,7 +75,9 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnPageChangeListener { - private val previewImageViewModel: PreviewImageViewModel by viewModel() + private val previewImageViewModel by viewModel { + parametersOf(file) + } private val fileOperationsViewModel: FileOperationsViewModel by viewModel() private lateinit var viewPager: ViewPager diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt index 3872168a7ac..1e1e2bdd7b8 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt @@ -8,6 +8,7 @@ * @author Shashvat Kedia * @author Juan Carlos Garrote Gascón * @author Aitor Ballesteros Pavón + * @author Jorge Aguado Recio * * Copyright (C) 2024 ownCloud GmbH. * @@ -46,6 +47,7 @@ import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target import com.github.chrisbanes.photoview.PhotoView +import com.google.android.material.snackbar.Snackbar import com.owncloud.android.R import com.owncloud.android.databinding.PreviewImageFragmentBinding import com.owncloud.android.domain.files.model.MIME_SVG @@ -61,6 +63,7 @@ import com.owncloud.android.ui.fragment.FileFragment import com.owncloud.android.utils.PreferenceUtils import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.viewModel +import org.koin.core.parameter.parametersOf import timber.log.Timber import java.io.File @@ -87,7 +90,9 @@ class PreviewImageFragment : FileFragment() { private var _binding: PreviewImageFragmentBinding? = null private val binding get() = _binding!! - private val previewImageViewModel by viewModel() + private val previewImageViewModel by viewModel() { + parametersOf(requireArguments().getParcelable(ARG_FILE)) + } private val fileOperationsViewModel: FileOperationsViewModel by inject() /** @@ -143,6 +148,15 @@ class PreviewImageFragment : FileFragment() { } } + collectLatestLifecycleFlow(previewImageViewModel.getCurrentFile()) { currentFile -> + if (currentFile != null) { + file = currentFile + requireActivity().invalidateOptionsMenu() + } else { + requireActivity().onBackPressed() + } + } + account = requireArguments().getParcelable(PreviewAudioFragment.EXTRA_ACCOUNT) checkNotNull(account) { "Instanced with a NULL ownCloud Account" } checkNotNull(file) { "Instanced with a NULL OCFile" } @@ -234,11 +248,13 @@ class PreviewImageFragment : FileFragment() { R.id.action_set_available_offline -> { fileOperationsViewModel.performOperation(FileOperation.SetFilesAsAvailableOffline(listOf(file))) + Snackbar.make(requireActivity().window.decorView, R.string.confirmation_set_available_offline, Snackbar.LENGTH_LONG).show() true } R.id.action_unset_available_offline -> { fileOperationsViewModel.performOperation(FileOperation.UnsetFilesAsAvailableOffline(listOf(file))) + Snackbar.make(requireActivity().window.decorView, R.string.confirmation_unset_available_offline, Snackbar.LENGTH_LONG).show() true } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageViewModel.kt index 8105a2b6dc9..af243d62b82 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewImageViewModel.kt @@ -3,8 +3,9 @@ * * @author Abel García de Prada * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2023 ownCloud GmbH. + * Copyright (C) 2024 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -30,11 +31,13 @@ import androidx.work.WorkInfo import com.owncloud.android.R import com.owncloud.android.domain.files.model.FileMenuOption import com.owncloud.android.domain.files.model.OCFile +import com.owncloud.android.domain.files.usecases.GetFileByIdAsStreamUseCase import com.owncloud.android.domain.files.usecases.GetFileByIdUseCase import com.owncloud.android.providers.ContextProvider import com.owncloud.android.providers.CoroutinesDispatcherProvider import com.owncloud.android.usecases.files.FilterFileMenuOptionsUseCase import com.owncloud.android.usecases.transfers.downloads.GetLiveDataForFinishedDownloadsFromAccountUseCase +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.update @@ -44,8 +47,10 @@ class PreviewImageViewModel( private val getFileByIdUseCase: GetFileByIdUseCase, private val getLiveDataForFinishedDownloadsFromAccountUseCase: GetLiveDataForFinishedDownloadsFromAccountUseCase, private val filterFileMenuOptionsUseCase: FilterFileMenuOptionsUseCase, + getFileByIdAsStreamUseCase: GetFileByIdAsStreamUseCase, private val contextProvider: ContextProvider, - private val coroutinesDispatcherProvider: CoroutinesDispatcherProvider + private val coroutinesDispatcherProvider: CoroutinesDispatcherProvider, + ocFile: OCFile, ) : ViewModel() { private val _downloads = MediatorLiveData>>() @@ -54,6 +59,10 @@ class PreviewImageViewModel( private val _menuOptions: MutableStateFlow> = MutableStateFlow(emptyList()) val menuOptions: StateFlow> = _menuOptions + private val currentFile: Flow = getFileByIdAsStreamUseCase(GetFileByIdAsStreamUseCase.Params(ocFile.id!!)) + + fun getCurrentFile(): Flow = currentFile + fun startListeningToDownloadsFromAccount(account: Account) { _downloads.addSource( getLiveDataForFinishedDownloadsFromAccountUseCase(GetLiveDataForFinishedDownloadsFromAccountUseCase.Params(account)) diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt index f6b912b3e7c..18421282bc6 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.kt @@ -37,6 +37,7 @@ import android.view.ViewGroup import android.widget.RelativeLayout import android.widget.TextView import androidx.viewpager2.widget.ViewPager2 +import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.owncloud.android.R @@ -55,6 +56,7 @@ import com.owncloud.android.ui.fragment.FileFragment import com.owncloud.android.utils.PreferenceUtils import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.component.getScopeName +import org.koin.core.parameter.parametersOf import timber.log.Timber import java.io.BufferedWriter import java.io.FileInputStream @@ -66,7 +68,9 @@ class PreviewTextFragment : FileFragment() { private var account: Account? = null private lateinit var textLoadTask: TextLoadAsyncTask - private val previewTextViewModel by viewModel() + private val previewTextViewModel by viewModel { + parametersOf(requireArguments().getParcelable(EXTRA_FILE)) + } private val fileOperationsViewModel by viewModel() private lateinit var binding: PreviewTextFragmentBinding @@ -111,6 +115,16 @@ class PreviewTextFragment : FileFragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + collectLatestLifecycleFlow(previewTextViewModel.getCurrentFile()) { currentFile -> + if (currentFile != null) { + file = currentFile + requireActivity().invalidateOptionsMenu() + } else { + requireActivity().onBackPressed() + } + + } + loadAndShowTextPreview() } @@ -157,6 +171,7 @@ class PreviewTextFragment : FileFragment() { val fileToSetAsAvailableOffline = ArrayList() fileToSetAsAvailableOffline.add(file) fileOperationsViewModel.performOperation(FileOperation.SetFilesAsAvailableOffline(fileToSetAsAvailableOffline)) + Snackbar.make(requireView(), R.string.confirmation_set_available_offline, Snackbar.LENGTH_LONG).show() true } @@ -164,6 +179,7 @@ class PreviewTextFragment : FileFragment() { val fileToUnsetAsAvailableOffline = ArrayList() fileToUnsetAsAvailableOffline.add(file) fileOperationsViewModel.performOperation(FileOperation.UnsetFilesAsAvailableOffline(fileToUnsetAsAvailableOffline)) + Snackbar.make(requireView(), R.string.confirmation_unset_available_offline, Snackbar.LENGTH_LONG).show() true } diff --git a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt index 03e2212dcc8..88777672205 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/ui/preview/PreviewVideoActivity.kt @@ -8,6 +8,7 @@ * @author Shashvat Kedia * @author Juan Carlos Garrote Gascón * @author Aitor Ballesteros Pavón + * @author Jorge Aguado Recio * * Copyright (C) 2024 ownCloud GmbH. * @@ -56,6 +57,7 @@ import androidx.media3.exoplayer.source.MediaSource import androidx.media3.exoplayer.trackselection.AdaptiveTrackSelection import androidx.media3.exoplayer.trackselection.DefaultTrackSelector import androidx.media3.ui.PlayerView +import com.google.android.material.snackbar.Snackbar import com.owncloud.android.R import com.owncloud.android.databinding.VideoPreviewBinding import com.owncloud.android.domain.files.model.OCFile @@ -80,6 +82,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import org.koin.androidx.viewmodel.ext.android.viewModel +import org.koin.core.parameter.parametersOf import timber.log.Timber @OptIn(UnstableApi::class) @@ -92,7 +95,7 @@ class PreviewVideoActivity : FileActivity(), Player.Listener, OnPrepareVideoPlay private var playWhenReady = true private var playbackPosition: Long = 0 private var windowInsetsController: WindowInsetsControllerCompat? = null - private val previewVideoViewModel: PreviewVideoViewModel by viewModel() + private val previewVideoViewModel: PreviewVideoViewModel by viewModel { parametersOf(intent.getParcelableExtra(EXTRA_FILE)) } private val fileOperationsViewModel: FileOperationsViewModel by viewModel() private val transfersViewModel: TransfersViewModel by viewModel() @@ -127,6 +130,16 @@ class PreviewVideoActivity : FileActivity(), Player.Listener, OnPrepareVideoPlay playbackPosition = savedInstanceState.getLong(EXTRA_PLAY_POSITION, 0) } + collectLatestLifecycleFlow(previewVideoViewModel.getCurrentFile()) { currentFile -> + if (currentFile != null) { + file = currentFile + this.invalidateOptionsMenu() + } else { + this.onBackPressed() + } + + } + checkNotNull(file) { "Instanced with a NULL OCFile" } checkNotNull(account) { "Instanced with a NULL ownCloud Account" } check(file.isVideo) { "Not a video file" } @@ -384,6 +397,7 @@ class PreviewVideoActivity : FileActivity(), Player.Listener, OnPrepareVideoPlay val fileToSetAsAvailableOffline = ArrayList() fileToSetAsAvailableOffline.add(file) fileOperationsViewModel.performOperation(SetFilesAsAvailableOffline(fileToSetAsAvailableOffline)) + Snackbar.make(binding.root, R.string.confirmation_set_available_offline, Snackbar.LENGTH_LONG).show() true } @@ -391,6 +405,7 @@ class PreviewVideoActivity : FileActivity(), Player.Listener, OnPrepareVideoPlay val fileToUnsetAsAvailableOffline = ArrayList() fileToUnsetAsAvailableOffline.add(file) fileOperationsViewModel.performOperation(UnsetFilesAsAvailableOffline(fileToUnsetAsAvailableOffline)) + Snackbar.make(binding.root, R.string.confirmation_unset_available_offline, Snackbar.LENGTH_LONG).show() true } diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/accounts/RemoveAccountUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/accounts/RemoveAccountUseCase.kt index e41d703ce69..37db06d97e8 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/accounts/RemoveAccountUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/accounts/RemoveAccountUseCase.kt @@ -27,9 +27,9 @@ import com.owncloud.android.data.sharing.shares.datasources.LocalShareDataSource import com.owncloud.android.data.spaces.datasources.LocalSpacesDataSource import com.owncloud.android.data.user.datasources.LocalUserDataSource import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.usecases.GetCameraUploadsConfigurationUseCase -import com.owncloud.android.domain.camerauploads.usecases.ResetPictureUploadsUseCase -import com.owncloud.android.domain.camerauploads.usecases.ResetVideoUploadsUseCase +import com.owncloud.android.domain.automaticuploads.usecases.GetAutomaticUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.usecases.ResetPictureUploadsUseCase +import com.owncloud.android.domain.automaticuploads.usecases.ResetVideoUploadsUseCase import com.owncloud.android.usecases.transfers.uploads.CancelTransfersFromAccountUseCase /* @@ -38,7 +38,7 @@ import com.owncloud.android.usecases.transfers.uploads.CancelTransfersFromAccoun * need an OwncloudAccount that there is not at this point. */ class RemoveAccountUseCase( - private val getCameraUploadsConfigurationUseCase: GetCameraUploadsConfigurationUseCase, + private val getAutomaticUploadsConfigurationUseCase: GetAutomaticUploadsConfigurationUseCase, private val resetPictureUploadsUseCase: ResetPictureUploadsUseCase, private val resetVideoUploadsUseCase: ResetVideoUploadsUseCase, private val cancelTransfersFromAccountUseCase: CancelTransfersFromAccountUseCase, @@ -52,7 +52,7 @@ class RemoveAccountUseCase( override fun run(params: Params) { // Reset camera uploads if they were enabled for the removed account - val cameraUploadsConfiguration = getCameraUploadsConfigurationUseCase(Unit) + val cameraUploadsConfiguration = getAutomaticUploadsConfigurationUseCase(Unit) if (params.accountName == cameraUploadsConfiguration.getDataOrNull()?.pictureUploadsConfiguration?.accountName) { resetPictureUploadsUseCase(Unit) } diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromContentUriUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromContentUriUseCase.kt index ab4a0475000..322ff4eb4a7 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromContentUriUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromContentUriUseCase.kt @@ -29,7 +29,7 @@ import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.workers.RemoveSourceFileWorker import com.owncloud.android.workers.UploadFileFromContentUriWorker import timber.log.Timber diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromSystemUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromSystemUseCase.kt index 6a219462de0..8af54f8abb7 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromSystemUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileFromSystemUseCase.kt @@ -27,7 +27,7 @@ import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.workers.RemoveSourceFileWorker import com.owncloud.android.workers.UploadFileFromContentUriWorker import com.owncloud.android.workers.UploadFileFromFileSystemWorker diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt index 0ab30de426d..6e76b9876d6 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFileInConflictUseCase.kt @@ -28,7 +28,7 @@ import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkManager import androidx.work.workDataOf import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.transfers.TransferRepository import com.owncloud.android.domain.transfers.model.OCTransfer import com.owncloud.android.domain.transfers.model.TransferStatus diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromContentUriUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromContentUriUseCase.kt index 7ff0cdd7bfa..963231aaf8b 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromContentUriUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromContentUriUseCase.kt @@ -25,7 +25,7 @@ import android.net.Uri import androidx.documentfile.provider.DocumentFile import com.owncloud.android.MainApp import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.transfers.TransferRepository import com.owncloud.android.domain.transfers.model.OCTransfer import com.owncloud.android.domain.transfers.model.TransferStatus diff --git a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromSystemUseCase.kt b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromSystemUseCase.kt index 337526cea72..d446a554383 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromSystemUseCase.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/usecases/transfers/uploads/UploadFilesFromSystemUseCase.kt @@ -22,7 +22,7 @@ package com.owncloud.android.usecases.transfers.uploads import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.transfers.TransferRepository import com.owncloud.android.domain.transfers.model.OCTransfer import com.owncloud.android.domain.transfers.model.TransferStatus diff --git a/owncloudApp/src/main/java/com/owncloud/android/utils/NotificationUtils.kt b/owncloudApp/src/main/java/com/owncloud/android/utils/NotificationUtils.kt index 53254e35ad1..b7872b282a8 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/utils/NotificationUtils.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/utils/NotificationUtils.kt @@ -123,7 +123,7 @@ object NotificationUtils { return PendingIntent.getActivity(context, System.currentTimeMillis().toInt(), showUploadListIntent, pendingIntentFlags) } - fun composePendingIntentToCameraUploads(context: Context, notificationKey: String): PendingIntent { + fun composePendingIntentToAutomaticUploads(context: Context, notificationKey: String): PendingIntent { val openSettingsActivity = Intent(context, SettingsActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) putExtra(KEY_NOTIFICATION_INTENT, notificationKey) diff --git a/owncloudApp/src/main/java/com/owncloud/android/workers/CameraUploadsWorker.kt b/owncloudApp/src/main/java/com/owncloud/android/workers/AutomaticUploadsWorker.kt similarity index 91% rename from owncloudApp/src/main/java/com/owncloud/android/workers/CameraUploadsWorker.kt rename to owncloudApp/src/main/java/com/owncloud/android/workers/AutomaticUploadsWorker.kt index dcb7b353b2c..1508b89a0e9 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/workers/CameraUploadsWorker.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/workers/AutomaticUploadsWorker.kt @@ -30,11 +30,11 @@ import androidx.work.WorkManager import androidx.work.WorkerParameters import com.owncloud.android.R import com.owncloud.android.domain.UseCaseResult -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.UploadBehavior -import com.owncloud.android.domain.camerauploads.usecases.GetCameraUploadsConfigurationUseCase -import com.owncloud.android.domain.camerauploads.usecases.SavePictureUploadsConfigurationUseCase -import com.owncloud.android.domain.camerauploads.usecases.SaveVideoUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.usecases.GetAutomaticUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.usecases.SavePictureUploadsConfigurationUseCase +import com.owncloud.android.domain.automaticuploads.usecases.SaveVideoUploadsConfigurationUseCase import com.owncloud.android.domain.transfers.TransferRepository import com.owncloud.android.domain.transfers.model.OCTransfer import com.owncloud.android.domain.transfers.model.TransferStatus @@ -52,7 +52,7 @@ import java.io.File import java.util.Date import java.util.concurrent.TimeUnit -class CameraUploadsWorker( +class AutomaticUploadsWorker( val appContext: Context, workerParameters: WorkerParameters ) : CoroutineWorker( @@ -70,16 +70,16 @@ class CameraUploadsWorker( } } - private val getCameraUploadsConfigurationUseCase: GetCameraUploadsConfigurationUseCase by inject() + private val getAutomaticUploadsConfigurationUseCase: GetAutomaticUploadsConfigurationUseCase by inject() private val transferRepository: TransferRepository by inject() override suspend fun doWork(): Result { - Timber.i("Starting CameraUploadsWorker with UUID ${this.id}") - when (val useCaseResult = getCameraUploadsConfigurationUseCase(Unit)) { + Timber.i("Starting AutomaticUploadsWorker with UUID ${this.id}") + when (val useCaseResult = getAutomaticUploadsConfigurationUseCase(Unit)) { is UseCaseResult.Success -> { val cameraUploadsConfiguration = useCaseResult.data - if (cameraUploadsConfiguration == null || cameraUploadsConfiguration.areCameraUploadsDisabled()) { + if (cameraUploadsConfiguration == null || cameraUploadsConfiguration.areAutomaticUploadsDisabled()) { cancelWorker() return Result.success() } @@ -117,7 +117,7 @@ class CameraUploadsWorker( } private fun cancelWorker() { - WorkManager.getInstance(appContext).cancelUniqueWork(CAMERA_UPLOADS_WORKER) + WorkManager.getInstance(appContext).cancelUniqueWork(AUTOMATIC_UPLOADS_WORKER) } private fun syncFolder(folderBackUpConfiguration: FolderBackUpConfiguration?) { @@ -148,8 +148,8 @@ class CameraUploadsWorker( accountName = folderBackUpConfiguration.accountName, behavior = folderBackUpConfiguration.behavior, createdByWorker = when (syncType) { - SyncType.PICTURE_UPLOADS -> UploadEnqueuedBy.ENQUEUED_AS_CAMERA_UPLOAD_PICTURE - SyncType.VIDEO_UPLOADS -> UploadEnqueuedBy.ENQUEUED_AS_CAMERA_UPLOAD_VIDEO + SyncType.PICTURE_UPLOADS -> UploadEnqueuedBy.ENQUEUED_AS_AUTOMATIC_UPLOAD_PICTURE + SyncType.VIDEO_UPLOADS -> UploadEnqueuedBy.ENQUEUED_AS_AUTOMATIC_UPLOAD_VIDEO }, spaceId = folderBackUpConfiguration.spaceId ) @@ -207,7 +207,7 @@ class CameraUploadsWorker( contentText = appContext.getString(contentText), notificationChannelId = UPLOAD_NOTIFICATION_CHANNEL_ID, notificationId = syncType.getNotificationId(), - intent = NotificationUtils.composePendingIntentToCameraUploads(appContext, notificationKey), + intent = NotificationUtils.composePendingIntentToAutomaticUploads(appContext, notificationKey), onGoing = false, timeOut = null ) @@ -309,7 +309,7 @@ class CameraUploadsWorker( } companion object { - const val CAMERA_UPLOADS_WORKER = "CAMERA_UPLOADS_WORKER" + const val AUTOMATIC_UPLOADS_WORKER = "AUTOMATIC_UPLOADS_WORKER" const val repeatInterval: Long = 15L val repeatIntervalTimeUnit: TimeUnit = TimeUnit.MINUTES private const val pictureUploadsNotificationId = 101 diff --git a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromContentUriWorker.kt b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromContentUriWorker.kt index 120fc336caf..a655a2c97ce 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromContentUriWorker.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromContentUriWorker.kt @@ -33,7 +33,7 @@ import androidx.work.workDataOf import com.owncloud.android.R import com.owncloud.android.data.executeRemoteOperation import com.owncloud.android.data.providers.LocalStorageProvider -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.capabilities.usecases.GetStoredCapabilitiesUseCase import com.owncloud.android.domain.exceptions.LocalFileNotFoundException import com.owncloud.android.domain.exceptions.UnauthorizedException diff --git a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt index 4e17f9caa86..3fb62cf9a00 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/workers/UploadFileFromFileSystemWorker.kt @@ -29,7 +29,7 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import com.owncloud.android.R import com.owncloud.android.data.executeRemoteOperation -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.capabilities.usecases.GetStoredCapabilitiesUseCase import com.owncloud.android.domain.exceptions.LocalFileNotFoundException import com.owncloud.android.domain.exceptions.UnauthorizedException diff --git a/owncloudApp/src/main/res/layout/nav_coordinator_layout.xml b/owncloudApp/src/main/res/layout/nav_coordinator_layout.xml index 68a76039a16..67a5cfc2d3d 100644 --- a/owncloudApp/src/main/res/layout/nav_coordinator_layout.xml +++ b/owncloudApp/src/main/res/layout/nav_coordinator_layout.xml @@ -50,7 +50,7 @@ android:visibility="visible" app:itemIconTint="@color/primary_button_text_color" app:itemTextColor="@color/primary_button_text_color" - app:labelVisibilityMode="auto" + app:labelVisibilityMode="labeled" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/owncloudApp/src/main/res/values-ar/strings.xml b/owncloudApp/src/main/res/values-ar/strings.xml index f30ea4e5671..fe7bde6e7f9 100644 --- a/owncloudApp/src/main/res/values-ar/strings.xml +++ b/owncloudApp/src/main/res/values-ar/strings.xml @@ -55,7 +55,6 @@ يتيح اللمس باستخدام نافذة أخرى مرئية عندما تكون نافذة العرض مخفية. فعِّله لاستخدام تطبيقات تصفية الإضاءة. هل أنت متأكد أنك ترغب في تفعيل هذه الميزة؟ استخدم هذه الميزة على مسؤوليتك فقد يحاول تطبيق ضار انتحال شخصيتك للقيام ببعض الإجراءات دون علمك باستخدام نوافذ عرض أخرى. - تحميل الصور تلقائيا إدارة موقع وسلوك الصور التي يتم تحميلها تلقائيا تحميلات الصور حمِّل الصور الملتقطة بالكاميرا تلقائيًا diff --git a/owncloudApp/src/main/res/values-cs-rCZ/strings.xml b/owncloudApp/src/main/res/values-cs-rCZ/strings.xml index f9bb8072f20..61013b43103 100644 --- a/owncloudApp/src/main/res/values-cs-rCZ/strings.xml +++ b/owncloudApp/src/main/res/values-cs-rCZ/strings.xml @@ -52,8 +52,6 @@ Dotek s jinými viditelnými okny Povolit dotek s aplikacemi, které mohou překrýt toto okno. Nutné pro povolení při použití filtrů světla. Jste si jisti, že chcete povolit tuto funkci? - Automatické nahrávání obrázků - Automatické nahrávání videí Nahrání obrázku Automaticky nahrát obrázky snímané kamerou Cesta k nahrání obrázku @@ -591,7 +589,12 @@ správce systému. Odebrat účet Logo Zrušit sdílení + Vytvořit novou složku URL Otevřít odkaz Odkaz + Maska + Náhled obrázku + Přihlásit + Podrobnosti diff --git a/owncloudApp/src/main/res/values-de-rDE/strings.xml b/owncloudApp/src/main/res/values-de-rDE/strings.xml index 9567a88a582..32a3ca4a9d1 100644 --- a/owncloudApp/src/main/res/values-de-rDE/strings.xml +++ b/owncloudApp/src/main/res/values-de-rDE/strings.xml @@ -5,6 +5,7 @@ Datum Größe Ordner durchsuchen + Suche in Spaces Konto aktualisieren Datei hochladen Inhalt von anderen Apps @@ -56,9 +57,9 @@ Berührungen zulassen, wenn die Ansicht von einem anderen sichtbaren Fenster verdeckt wird. Aktivieren Sie es, um Lichtfilter-Apps zu verwenden. Wollen Sie diese Funktion wirklich einschalten? Verwenden Sie diese Funktion auf eigene Verantwortung. Eine bösartige Anwendung könnte versuchen, Sie unwissentlich in anderen Ansichten Aktionen ausführen zu lassen. - Bilder automatisch hochladen + Automatischer Bilder-Upload Verwalten des Speicherortes und des Verhaltens der automatisch hochgeladenen Fotos - Videos automatisch hochladen + Automatischer Video-Upload Verwalten des Speicherortes und des Verhaltens der automatisch hochgeladenen Videos Bild-Upload Automatisch von der Kamera aufgenommene Bilder hochladen @@ -124,6 +125,7 @@ %1$s auf Ihrem Smartphone ausprobieren! Ich möchte Sie einladen, %1$s auf Ihrem Smartphone zu verwenden!\nHier herunterladen: %2$s weil + Authentifizierung fehlgeschlagen. Melde Dich erneut an, um wieder Zugriff zu erhalten. Ihre Serverversion ist niedriger als 10 und wird daher nicht unterstützt. Bitte aktualisieren Sie Ihren Server auf eine neuere Version. Konto ändern Das Zugriffstoken ist abgelaufen oder ungültig geworden. Melden Sie sich erneut an, um wieder Zugriff zu erhalten. @@ -346,7 +348,7 @@ Legitimierung nicht erfolgreich Zugriff durch den Legitimierungsserver abgelehnt Unerwarteter Zustand; bitte die Adresse des Servers erneut eingeben - Die Autorisierung ist abgelaufen. Bitte authorisieren Sie sich erneut. + Die Autorisierung ist abgelaufen. Bitte autorisieren Sie sich erneut Bitte das aktuelle Passwort eingeben Verbinde mit dem Authentifizierung-Server… Der Server unterstützt diese Authentifizierungsmethode nicht. @@ -356,6 +358,8 @@ Das Benutzerkonto ist noch nicht auf dem Gerät vorhanden. Als offline verfügbar markieren Offline-verfügbar-Markierung entfernen + Die Offline-Verfügbarkeit der Datei wurde korrekt eingeschaltet + Die Offline-Verfügbarkeit der Datei wurde korrekt ausgeschaltet Umbenennen Löschen Möchten Sie %1$s wirklich löschen? @@ -551,6 +555,7 @@ Ablaufdatum Passwort Gesichert + Generieren Kopieren Herunterladen / Ansehen Herunterladen/Ansehen/Hochladen @@ -575,6 +580,7 @@ Wiederholen Leeren Die Datei wurde im lokalen Dateisystem nicht gefunden. + Wollen Sie wirklich diese %s Elemente löschen? Möchten Sie die ausgewählten Elemente und deren Inhalte wirklich löschen? Nicht genügend Speicherplatz im Konto verfügbar Authentifizierung verweigert @@ -705,12 +711,51 @@ Lokale Kopien löschen Entfernen Sie automatisch heruntergeladene Dateien die offline nicht verfügbar sind, wenn die Zeit seit ihrer letzten Verwendung die ausgewählte Zeit überschreitet.\nGewählte Zeit: %1$s Unsichere HTTP-URL + Die von Ihnen angegebene URL verwendet HTTP anstelle des verschlüsselten HTTPS-Protokolls. Wenn Sie fortfahren, wird Ihre Kommunikation nicht verschlüsselt. Fortsetzen + Lokalen Speicher entfernen + Daten bereinigen Menü Konten verwalten Suche + Art der Darstellung + Vorschaubild angesehen + Öffentlichen Link hinzufügen + Öffentlichen Link löschen + Öffentlichen Link bearbeiten Benutzerkonto löschen + Neuen Inhalt hinzufügen + Neuen Inhalt erweitert hinzufügen + Accountspeicher bereinigen + Logo + Freigabe hinzufügen + Freigabe bearbeiten + Freigabe entfernen + %1$s Operationen + Nach %1$s aufsteigend sortieren + Nach %1$s absteigend sortieren + Neuen Ordner Erstellen + Verknüpfung erstellen URL + Die URL muss mit https:// oder http:// beginnen, damit sie im Browser geöffnet werden kann. + Die URL kann keine Leerzeichen enthalten + Diese Verknüpfung verweist auf: Link öffnen + Verbessern Sie die App durch Ihr Feedback + In Kontakt treten Link + Schaltfläche + Ordnerauswahl + Muster + Externe Dateien empfangen + Videovorschau + Versionshinweise + Bildvorschau + Anmelden + Was ist neu + Audiovorschau + Details + Textvorschau + Textbeschriftungen wurden zur unteren Leiste hinzugefügt + Textbeschriftungen wurden hinzugefügt, und der Standard-Aktivitätsindikator wird verwendet, um zu zeigen, welcher Bereich in der unteren Leiste ausgewählt ist diff --git a/owncloudApp/src/main/res/values-de/strings.xml b/owncloudApp/src/main/res/values-de/strings.xml index ed8d5076340..ec3c37637ba 100644 --- a/owncloudApp/src/main/res/values-de/strings.xml +++ b/owncloudApp/src/main/res/values-de/strings.xml @@ -57,9 +57,9 @@ Berührungen auch zulassen, wenn die Ansicht von einer anderen App überladen wird. Aktiviere diese Option, um zum Beispiel Lichtfilter-Apps verwenden zu können. Willst Du diese Funktion wirklich einschalten? Verwende diese Funktion auf eigene Verantwortung. Eine bösartige Anwendung könnte versuchen, dich unwissentlich in anderen Ansichten Aktionen ausführen zu lassen. - Bilder automatisch hochladen + Automatischer Bilder-Upload Verwalten des Speicherortes und des Verhaltens der automatisch hochgeladenen Fotos - Videos automatisch hochladen + Automatischer Video-Upload Verwalten des Speicherortes und des Verhaltens der automatisch hochgeladenen Videos Bilder Automatischer Upload von Fotos @@ -348,7 +348,7 @@ Autorisierung nicht erfolgreich Zugriff durch den Autorisierungsserver abgelehnt Unerwarteter Zustand; Bitte die Adresse des Servers erneut eingeben - Die Autorisierung ist abgelaufen. Die Autorisierung bitte nochmals durchführen + Die Autorisierung ist abgelaufen. Bitte autorisieren Sie sich erneut Bitte das aktuelle Passwort eingeben Verbinden zum Authentifizierungs-Server ... Der Server unterstützt diese Authentifizierungsmethode nicht @@ -358,6 +358,8 @@ Das Benutzerkonto ist bis jetzt noch nicht auf dem Gerät vorhanden Als Offline verfügbar markieren Offline verfügbar Markierung entfernen + Die Datei wurde erfolgreich als für offline verfügbar aktiviert. + Die Datei wurde erfolgreich als für offline verfügbar deaktiviert. Umbenennen Löschen Möchtest Du %1$s wirklich löschen? @@ -669,12 +671,10 @@ Vielen Dank für die Verwendung von %1$s.\n Fortfahren Icon für Veröffentlichungsnotizen - Verbesserung der Zugänglichkeit - Einige Verbesserungen, um die Anwendung besser zugänglich zu machen - Automatisches Hochladen ist konsistenter - Einige Mechanismen für Wiederholungen wurden hinzugefügt, dies verbessert die Zuverlässigkeit Geringfügige Fehler behoben Einige Fehler wurden behoben, um die Benutzung der App zu verbessern. + Feedback wenn (de)aktivieren für offline verfügbar in allen Vorschauen. + Feedback hinzugefügt, wenn (de)aktivieren für offline verfügbar in allen Vorschauen, und Optionsmenü abhängig von Dateistatus aktualisiert Öffnen im Webbrowser Öffnen in %1$s (web) @@ -738,16 +738,32 @@ Teilen löschen %1$s Operationen %1$s aufsteigend sortieren + %1$s absteigend sortieren + Neuen Ordner Erstellen Verknüpfung erstellen URL Die URL muss mit https:// oder http:// beginnen, damit sie im Browser geöffnet werden kann. Die URL kann keine Leerzeichen enthalten .url - Diese Verknüpfung zeigt auf: + Diese Verknüpfung verweist auf: Link öffnen Verbessern Sie die App durch Ihr Feedback In Kontakt treten Forum, chatten Sie mit uns oder machen Sie einen Beitrag auf GitHub]]> Link Schaltfläche + Ordnerauswahl + PIN-Sperre + Muster + Externe Dateien empfangen + Videovorschau + Versionshinweise + Bildvorschau + Anmelden + Was ist neu + Audiovorschau + Details + Textvorschau + Textbeschriftungen wurden in der unteren Leiste hinzugefügt + Es wurden Textbeschriftungen hinzugefügt. Der standardmäßige Aktiv-Indikator zeigt in der unteren Leiste an welcher Abschnitt ausgewählt ist. diff --git a/owncloudApp/src/main/res/values-el/strings.xml b/owncloudApp/src/main/res/values-el/strings.xml index e572721daa2..39d4d230701 100644 --- a/owncloudApp/src/main/res/values-el/strings.xml +++ b/owncloudApp/src/main/res/values-el/strings.xml @@ -48,7 +48,6 @@ Επιτρέψτε το άγγιγμα όταν η προβολή καλύπτεται από άλλο ορατό παράθυρο. Ενεργοποιήστε τη χρήση εφαρμογών φιλτραρίσματος φωτός. Είστε βέβαιοι ότι θέλετε να ενεργοποιήσετε αυτήν τη λειτουργία; Χρησιμοποιήστε αυτήν τη λειτουργία με δική σας ευθύνη, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει ώστε να εκτελέσετε κάποιες ενέργειες, χωρίς να γνωρίζετε, χρησιμοποιώντας άλλες προβολές. - Αυτόματη μεταφόρτωση βίντεο Μεταφορτώσεις φωτογραφιών Αυτόματη μεταφόρτωση φωτογραφιών που ελήφθησαν από την κάμερα Διαδρομή μεταφόρτωσης εικόνων diff --git a/owncloudApp/src/main/res/values-en-rGB/strings.xml b/owncloudApp/src/main/res/values-en-rGB/strings.xml index ff20d7f3ba3..abbfac6526c 100644 --- a/owncloudApp/src/main/res/values-en-rGB/strings.xml +++ b/owncloudApp/src/main/res/values-en-rGB/strings.xml @@ -57,9 +57,9 @@ Allow touches when the view is obscured by another visible window. Enable it to use light filtering apps. Are you sure you want to enable this feature? Use this feature at your own risk. A malicious application could try to spoof you into unknowingly performing some actions, using other views. - Auto-upload pictures + Automatic picture uploads Manage location and behavior of the pictures uploaded automatically - Auto-upload videos + Automatic video uploads Manage location and behavior of the videos uploaded automatically Picture uploads Automatically upload pictures taken by camera @@ -358,6 +358,8 @@ Account does not exist in the device yet Set as available offline Unset as available offline + The file was set as available offline correctly + The file was unset as available offline correctly Rename Remove Do you really want to remove %1$s? @@ -669,12 +671,10 @@ Thank you for using %1$s.\n❤ Proceed Release note icon - Improvements in accessibility - Some improvements to make the application more accessible - Auto uploads more consistent - Added some mechanisms over retries to improve reliability Minor bugfixes Some bugs were fixed to improve experience in the app + Feedback when (un)setting av. offline in all previews + Added feedback when (un)setting av. offline in all previews and updated options menu depending on file status Open in web Open in %1$s (web) @@ -738,6 +738,8 @@ Delete share %1$s operations Sort by %1$s ascending + Sort by %1$s descending + Create new folder Create a shortcut URL The URL must start with https:// or http:// so that it can be opened in the browser @@ -750,4 +752,18 @@ forum, chat with us or contribute on GitHub]]> Link Button + Folder picker + Passcode + Pattern + Receive external files + Video preview + Release notes + Image preview + Login + What\'s new + Audio preview + Details + Text preview + Added text labels on bottom bar + Text labels were added and default active indicator is used to show which section is selected on the bottom bar diff --git a/owncloudApp/src/main/res/values-es-rAR/strings.xml b/owncloudApp/src/main/res/values-es-rAR/strings.xml index c538613054d..08d162d9af1 100644 --- a/owncloudApp/src/main/res/values-es-rAR/strings.xml +++ b/owncloudApp/src/main/res/values-es-rAR/strings.xml @@ -50,7 +50,6 @@ Permitir clicks mientras que la vista está oscurecida por otra ventana visible. Habilítalo para utilizar aplicaciones de filtro de luz. ¿Estás seguro que quieres habilitar esta funcionalidad? Utiliza esta funcionalidad bajo tu propia responsabilidad, una aplicación maliciosa podría tratar de engañarte a realizar algunas acciones, sin que te des cuenta, utilizando otras vistas. - Subir videos automáticamente Carga de imágenes Cargar imágenes automáticamente tomadas desde la cámara Ruta de carga de la imagen diff --git a/owncloudApp/src/main/res/values-es/strings.xml b/owncloudApp/src/main/res/values-es/strings.xml index 37df025d4cf..dcb09713b49 100644 --- a/owncloudApp/src/main/res/values-es/strings.xml +++ b/owncloudApp/src/main/res/values-es/strings.xml @@ -57,9 +57,7 @@ Permite los toques cuando la vista está oculta por otra ventana visible. Habilítelo para utilizar aplicaciones de filtrado de luz. ¿Está seguro que desea habilitar esta función? Use esta funcionalidad bajo su propio riesgo. Una aplicación maliciosa podría intentar engañarle para que realice algunas acciones sin que lo sepa, utilizando otras vistas. - Subida automática de imágenes Administre localización y comportamiento de las imágenes subidas automáticamente - Subida automática de videos Administre localización y comportamiento de los videos subidos automáticamente Cargas de imágenes Carga automáticamente las fotos tomadas por cámara @@ -630,7 +628,6 @@ Póngase en contacto con su administrador Gracias por usar %1$s.\n❤ Proceder Icono notas de lanzamiento - Mejoras en accesibilidad Solución de problemas Abrir en web @@ -674,6 +671,7 @@ Póngase en contacto con su administrador Borrar compartición %1$s operaciones Ordenar por %1$s ascendente + Crear carpeta nueva Crear un acceso directo URL La URL tiene que empezar con https:// o http:// para que pueda ser abierta por el navegador @@ -685,4 +683,8 @@ Póngase en contacto con su administrador Ponerse en contacto Enlace Botón + Patrón + Previsualización de imagen + Acceder + Detalles diff --git a/owncloudApp/src/main/res/values-et-rEE/strings.xml b/owncloudApp/src/main/res/values-et-rEE/strings.xml index 222c7d30646..03f5cda5c08 100644 --- a/owncloudApp/src/main/res/values-et-rEE/strings.xml +++ b/owncloudApp/src/main/res/values-et-rEE/strings.xml @@ -57,9 +57,9 @@ Luba puutumine kui vaade on häiritud mõne teise nähtava aknaga. Lülita sisse, et kasutada kergeid filtreerimisrakendusi. Oled sa kindel, et soovid seda võimalust aktiveerida? Kastua seda funktsionaalsust omal vastutusel. Pahatahtlik rakendus võib petta sind tegema soovimatut, kasutades teisi vaateid. - Automaatne fotode üleslaadimine + Automaatsed piltide üleslaadimised Määra automaatselt üleslaetavate piltide asukoht ja käitumine - Automaatne videote üleslaadimine + Automaatsed videote üleslaadimised Määra automaatselt üleslaetavate videote asukoht ja käitumine Piltide üleslaadimine Laadi kaameraga tehtud pildid automaatselt üles @@ -358,6 +358,8 @@ Kontot pole veel seadmes Määra saadavaks ilma võrguühenduseta Eemalda saadavus ilma võrguühenduseta + Fail märgiti saadavaks ilma võrguühenduseta + Fail märgiti mittesaadavaks ilma võrguühenduseta Nimeta ümber Eemalda Oled sa kindel, et soovid %1$s eemaldada? @@ -669,12 +671,10 @@ Aitäh, et kasutad %1$si.\n❤ Jätka Väljalasketeavituse ikoon - Juurdepääsetavuse täiustused - Mõned täiustused, et teha rakendus paremini juurdepääsetavaks - Automaatsed üleslaadimised on ühtlasemad - Lisatud mõned mehhanismid korduskatsete töökindluse parandamiseks Väiksemad veaparandused Mõned vead parandati, et täiustada rakenduse kasutajakogemust + Tagasiside kõikides eelvaadetes, kui võrguühenduseta failide saadavust muudetakse + Lisatud on võrguühenduseta failide saadavuse tagasiside kõikidesse eelvaadetesse ning valikute menüüd uuendatakse vastavalt faili staatusele Ava veebis Ava %1$s (veebis) @@ -738,6 +738,8 @@ Kustuta jagamine %1$s tegevus(t) Sorteeri %1$s järgi tõusvalt + Sorteeri %1$s järgi kahanevalt + Loo uus kaust Loo otsetee URL Brauseris avamiseks peab URL alguses olema kas http:// või https:// @@ -750,4 +752,18 @@ foorumist, vestle meiega või panusta GitHub\'is]]> Link Nupp + Kausta valija + Pääsukood + Muster + Võta vastu väliseid faile + Video eelvaade + Väljalaske märkmed + Pildi eelvaade + Logi sisse + Uuendused + Audio eelvaade + Üksikasjad + Teksti eelvaade + Alumisele ribale on lisatud tekstisildid + Alumisele ribale on lisatud tekstisildid ning näidatakse vaikimisi aktiivset valitud sektsiooni diff --git a/owncloudApp/src/main/res/values-fi-rFI/strings.xml b/owncloudApp/src/main/res/values-fi-rFI/strings.xml index d4d1153aca9..67e2234cf05 100644 --- a/owncloudApp/src/main/res/values-fi-rFI/strings.xml +++ b/owncloudApp/src/main/res/values-fi-rFI/strings.xml @@ -57,9 +57,7 @@ Salli kosketukset vaikka näkymä on toisen näkyvän ikkunan peittämä. Ota se käyttöön, jotta voit käyttää kevyitä suodattavia sovelluksia. Haluatko todellakin ottaa tämän ominaisuuden käyttöön? Käytät tätä ominaisuutta omalla vastuullasi! Vihamielinen sovellus voisi muita näkymiä käyttäen yrittää saada sinut tietämättäsi tekemään joitain toimintoja. - Lähetä kuvat automaattisesti Hallitse automaattisesti lähetettyjen kuvien sijaintia ja käyttäytymistä - Lähetä videot automaattisesti Hallitse automaattisesti lähetettyjen videoiden sijaintia ja käyttäytymistä Kuvien lähetys Lähetä automaattisesti kameralla otetut kuvat @@ -669,8 +667,6 @@ Kiitos kun käytät %1$s.\n❤ Jatka Julkaisutiedotteen ikoni - Päivityksiä tavoitettavuudessa - Joitain parannuksia sovelluksen tavoitettavuuteen Pieniä bugikorjauksia Joitain bugeja korjattu sovelluksen käyttökokemuksen parantamiseksi @@ -745,4 +741,8 @@ Pidä yhteyttä foorumilla , chattaa kanssamme tai osallistu GitHub:ssa ]]> Linkki + Kaava + Kuvan esikatselu + Kirjaudu + Tiedot diff --git a/owncloudApp/src/main/res/values-fr-rFR/strings.xml b/owncloudApp/src/main/res/values-fr-rFR/strings.xml index 16cf428da57..9b161488736 100644 --- a/owncloudApp/src/main/res/values-fr-rFR/strings.xml +++ b/owncloudApp/src/main/res/values-fr-rFR/strings.xml @@ -52,9 +52,7 @@ Autoriser les interactions quand une autre fenêtre visible se superpose a l\'affichage. Activer pour permettre le fonctionnement des applications de filtre lumineux. Souhaitez vous vraiment activer cette fonctionnalité ? Utilisez cette fonctionnalité à vos propres risques. Une application malveillante pourrait tenter de vous pousser à effectuer des actions en falsifiant l\'affichage. - Téléchargement automatique de photos Gérer l\'emplacement et le comportement des images téléchargées automatiquement - Téléchargement automatique de vidéos Gérer l\'emplacement et le comportement des vidéos téléchargées automatiquement Téléversements d\'images Téléverser automatiquement les images prises par l\'appareil photo diff --git a/owncloudApp/src/main/res/values-fr/strings.xml b/owncloudApp/src/main/res/values-fr/strings.xml index 44e8734d20e..db14f8c4b05 100644 --- a/owncloudApp/src/main/res/values-fr/strings.xml +++ b/owncloudApp/src/main/res/values-fr/strings.xml @@ -55,9 +55,7 @@ Autoriser les interactions quand une autre fenêtre visible se superpose a l\'affichage. Activer pour utiliser le fonctionnement des applications de filtre lumineux. Êtes-vous sûr de vouloir activer cette fonctionnalité ? Utilisez cette fonctionnalité à vos propres risques. Une application malveillante pourrait tenter de vous pousser à effectuer des actions en falsifiant l\'affichage. - Téléversement automatique des photos Gérer l\'emplacement et le comportement des images téléversées automatiquement - Téléversement automatique des vidéos Gérer l\'emplacement et le comportement des vidéos téléversées automatiquement Envoi d\'images Téléverser automatiquement les images prises par l\'appareil photo @@ -585,7 +583,12 @@ Téléchargez-le ici : %2$s Gérer les comptes Rechercher Supprimer le compte + Créer un nouveau dossier URL Ouvrir le lien Lien + Motif de nom + Prévisualisation de l\'image + Identifiant + Détails diff --git a/owncloudApp/src/main/res/values-he/strings.xml b/owncloudApp/src/main/res/values-he/strings.xml index b8e4d895121..b4851a95353 100644 --- a/owncloudApp/src/main/res/values-he/strings.xml +++ b/owncloudApp/src/main/res/values-he/strings.xml @@ -52,9 +52,7 @@ מאפשר מגע כאשר התצוגה מוסתרת על ידי חלון גלוי אחר. יש לאפשר זאת לשימוש ביישומי סינון קלים. האם באמת לאפשר תכונה זו? יש לשתמש בתכונה זו באחריותך הבלבדית, יישום זדוני יכול לנסות לגרום לך לבצע כמה פעולות, לא רצוניות, באמצעות תצוגות אחרות. - העלאת תמונות אוטומטית ניהול מיקום והתנהגות של התמונות שמועלות אוטומטית - העלאת סרטונים אוטומטית ניהול מיקום והתנהגות של הסרטונים שמועלים אוטומטית העלאת תמונות העלאת תמונות שצולמו במצלמה באופן אוטומטי diff --git a/owncloudApp/src/main/res/values-hu-rHU/strings.xml b/owncloudApp/src/main/res/values-hu-rHU/strings.xml index 9f54c6bf77e..e0673548496 100644 --- a/owncloudApp/src/main/res/values-hu-rHU/strings.xml +++ b/owncloudApp/src/main/res/values-hu-rHU/strings.xml @@ -49,8 +49,6 @@ Érintkezik más látható ablakkal Engedélyezze az érintéseket, amikor a kép takarásban van egy másik ablak által. Biztos, hogy engedélyezi ezt a funkciót? - Képek automatikus feltöltése - Videók automatikus feltöltése Képfeltöltések A fényképezőgép által készített képek automatikus feltöltése Képfeltöltési útvonal diff --git a/owncloudApp/src/main/res/values-ja-rJP/strings.xml b/owncloudApp/src/main/res/values-ja-rJP/strings.xml index 213fa5164b6..d619b4ba7c9 100644 --- a/owncloudApp/src/main/res/values-ja-rJP/strings.xml +++ b/owncloudApp/src/main/res/values-ja-rJP/strings.xml @@ -56,9 +56,9 @@ 他のウィンドウで視界が遮られている場合にタッチを許可する。ライトフィルタリングアプリの使用を有効にする。 本当にこの機能を有効にしますか? この機能は自己責任で使用してください。悪意のあるアプリケーションは、他のビューを使用して、あなたが知らないうちに何らかのアクションを実行するようになりすまそうとする可能性があります。 - 写真の自動アップロード + 自動画像アップロード 自動的にアップロードされた写真の場所と動作を管理する - ビデオの自動アップロード + 自動動画アップロード 自動的にアップロードされた動画の場所と動作を管理する ピクチャーアップロード カメラで撮影した画像を自動アップロード @@ -357,6 +357,8 @@ デバイス上にまだアカウントが存在しません オフラインで利用可能に設定 オフラインで利用不可に設定 + ファイルのオフライン利用可能が正常に設定されました。 + ファイルのオフライン利用可能が正常に解除されました。 名前を変更 削除 本当に %1$s を削除しますか? @@ -667,8 +669,10 @@ %1$sのご利用ありがとうございます。 続行 リリースノートのアイコン - アクセシビリティの改善 - アクセシビリティに配慮するためにいくつかの改善が行われました。 + 軽微なバグ修正 + アプリの使い心地を向上するため、いくつかのバグを修正しました + すべてのプレビューでオフラインAV視聴設定(解除)時のフィードバック + すべてのプレビューで、AVオフライン視聴の設定(または解除)する際のフィードバックを追加し、ファイルのステータスに応じてオプションメニューを更新しました Webで開く %1$s(Web) で開く @@ -724,12 +728,16 @@ 公開リンクを編集 アカウント削除 新しいコンテンツを追加 + 新しいコンテンツを追加 アカウントのデータをクリーンアップ ロゴ<br> 共有を追加 共有を編集 共有を削除 %1$s個の操作 + %1$s昇順で並べ替え + %1$s降順で並べ替え + 新しいフォルダーを作成 ショートカットを作成 URL URLはブラウザーで開けるように、 http:// または https:// で始まる必要があります。 @@ -741,4 +749,19 @@ 問い合わせる フォーラムライブチャットでヘルプを受けるか、GitHubで開発に貢献する ]]> リンク + ボタン + フォルダピッカー + パスコード + パターン + 外部のファイルを受信する + 動画プレビュー + リリースノート + イメージプレビュー + ログイン + 新着情報 + 音声プレビュー + 詳細 + 文章プレビュー + 下部バーにテキストラベルを追加しました + テキストラベルが追加され、標準の選択状態表示を使用して、どの項目が選択されているかが下部バーに表示されるようになりました diff --git a/owncloudApp/src/main/res/values-ko/strings.xml b/owncloudApp/src/main/res/values-ko/strings.xml index 6e532bedf7b..5de459c5f24 100644 --- a/owncloudApp/src/main/res/values-ko/strings.xml +++ b/owncloudApp/src/main/res/values-ko/strings.xml @@ -56,9 +56,7 @@ 보기가 다른 표시 창에 가려질 때 터치를 허용합니다. 빛 필터링 앱을 사용할 수 있도록 활성화 합니다. 이 기능을 활성화하도록 설정하시겠습니까? 이 기능은 사용자의 책임하에 사용하시기 바랍니다. 악의적인 프로그램이 다른 창을 활용하여 알려지지 않은 다른 작동을 실행하여 당신을 속일 수 있습니다. - 사진 자동 업로드 자동으로 업로드 된 사진의 위치와 동작을 관리하기 - 자동으로 업로드 된 영상 자동으로 업로드된 비디오의 위치와 동작을 관리하기 사진 업로드 카메라로 찍은 사진 자동으로 업로드 @@ -667,8 +665,6 @@ %1$s을(를) 사용해주셔서 감사합니다.\n❤ 진행 메모 아이콘 놓기 - 접근성의 발전 - 어플리케이션을 더 접근성 좋게 만들기 위한 일부 개선 사소한 버그 수정 앱에서의 경험을 증진시키기 위해 일부 버그들이 수정되었습니다. @@ -732,6 +728,7 @@ 공유 수정 공유 삭제 %1$s 작동 + 새 폴더 만들기 바로가기 만들기 URL URL은 브라우저에서 열릴 수 있도록 반드시 https:// 또는 http://으로 시작해야합니다. @@ -743,4 +740,8 @@ 연락하기 포럼에서 도움을 요청하거나, 우리와 채팅 하거나, 깃허브에 기여해보세요.]]> 링크 + 패턴 + 사진 미리 보기 + 로그인 + 자세한 정보 diff --git a/owncloudApp/src/main/res/values-pl/strings.xml b/owncloudApp/src/main/res/values-pl/strings.xml index a3584a5d668..6398588d5b5 100644 --- a/owncloudApp/src/main/res/values-pl/strings.xml +++ b/owncloudApp/src/main/res/values-pl/strings.xml @@ -54,9 +54,7 @@ Zezwól na dotyk gdy widok jest przesłonięty przez inne widoczne okno. Włącz w celu używania aplikacji filtrujących światło. Czy jesteś pewny, że chcesz włączyć tą funkcję? Używaj tej funkcjonalności na własną odpowiedzialność, złośliwa aplikacja może nakłonić Cię do wykonania innych akcji, używając innych widoków. - Automatycznie wysyłaj obrazy Automatycznie zarządzaj lokalizacją i zachowaniem wysyłanych obrazów - Automatyczne wysyłaj wideo Automatycznie zarządzaj lokalizacją i zachowaniem wysyłanych wideo Wrzucanie obrazków Automatycznie wrzuć obrazki zrobione przez kamerę diff --git a/owncloudApp/src/main/res/values-pt-rBR/strings.xml b/owncloudApp/src/main/res/values-pt-rBR/strings.xml index 5f146b9ffed..5003775adfb 100644 --- a/owncloudApp/src/main/res/values-pt-rBR/strings.xml +++ b/owncloudApp/src/main/res/values-pt-rBR/strings.xml @@ -57,9 +57,9 @@ Permitir toques quando a visualização é obscurecida por outra janela visível. Ativá-lo para usar aplicativos de filtragem de luz. Tem certeza de que deseja ativar esse recurso? Use esse recurso por sua conta e risco. Um aplicativo malicioso pode tentar enganar você para que você execute algumas ações sem saber, usando outras visualizações. - Carregar fotos automaticamente + Upload automático de imagens Gerencie a localização e o comportamento das fotos enviadas automaticamente - Carregar vídeos automaticamente + Upload automático de vídeos Gerencie a localização e o comportamento dos vídeos enviados automaticamente Enviar fotos Carregar automaticamente fotos tiradas pela câmera @@ -669,10 +669,6 @@ Obrigado por usar %1$s.\n❤ Prosseguir Ícone de nota de lançamento - Melhorias na acessibilidade - Algumas melhorias para tornar o aplicativo mais acessível - Envios automáticos mais consistentes - Adicionados alguns mecanismos de novas tentativas para melhorar a confiabilidade Pequenas correções de bugs Alguns bugs foram corrigidos para melhorar a experiência no aplicativo @@ -738,6 +734,8 @@ Excluir compartilhamento %1$s operações Classificar por %1$s crescente + Classificar por %1$s decrescente + Criar novo diretório Crie um atalho URL A URL deve começar com https:// ou http:// para que possa ser aberta no navegador @@ -750,4 +748,16 @@ forum, Converse conosco ou contribua em GitHub]]> Linque Botão + Selecionador de pastas + Padrão + Recebe arquivos externos + Pré-visualição de vídeo + Notas de versão + Pré-visualização da imagem + Login + Novidades + Pré-visualição de áudio + Detalhes + Pré-visualição de texto + Adicionou rótulos de texto na barra inferior diff --git a/owncloudApp/src/main/res/values-ru-rRU/strings.xml b/owncloudApp/src/main/res/values-ru-rRU/strings.xml index 9340210bad6..f23a917bbe4 100644 --- a/owncloudApp/src/main/res/values-ru-rRU/strings.xml +++ b/owncloudApp/src/main/res/values-ru-rRU/strings.xml @@ -55,9 +55,7 @@ Разрешает взаимодействие, когда есть перекрытие другим видимым или прозрачным окном. Это нужно, если вы используете приложения для фильтрации света от экрана. Перекрывающее приложение сможет получать информацию о взаимодействии. Вы уверены, что хотите включить эту функцию? Используйте на свой страх и риск: вредоносное приложение может попытаться вас обмануть, заставить незаметно выполнить некоторые действия, используя поддельные элементы интерфейса - Автозагрузка изображений Настройка размещения и поведения изображений, загружаемых автоматически - Автозагрузка видео Настройка размещения и поведения видеороликов, загружаемых автоматически Загрузка изображений Автоматически загружать изображения, сделанные камерой @@ -663,8 +661,6 @@ Благодарим за использование %1$s.\n❤ Продолжить Иконка к примечанию релиза - Улучшения доступности - Некоторые улучшения, чтобы сделать приложение более доступным. Открыть в браузере Открыть в %1$s (веб) @@ -725,7 +721,12 @@ Редактировать Поделиться Удалить долю %1$s операции + Создать новую папку URL Открыть ссылку Ссылка + Шаблон + Предпросмотр + Вход + Подробно diff --git a/owncloudApp/src/main/res/values-ru/strings.xml b/owncloudApp/src/main/res/values-ru/strings.xml index 862163923c3..6c5ec12df65 100644 --- a/owncloudApp/src/main/res/values-ru/strings.xml +++ b/owncloudApp/src/main/res/values-ru/strings.xml @@ -5,6 +5,7 @@ Дата Размер Поиск в текущей папке + Поиск пространств Синхронизировать Загрузить Содержимое из других приложений @@ -18,6 +19,7 @@ Убывающий Упорядочить по Новый документ + Новый ярлык Все файлы Доступные оффлайн Доступные по ссылке @@ -55,7 +57,7 @@ Разрешает взаимодействие, когда есть перекрытие другим видимым или прозрачным окном. Это нужно, если вы используете приложения для фильтрации света от экрана. Перекрывающее приложение сможет получать информацию о взаимодействии. Вы уверены, что хотите включить эту функцию? Используйте эту функцию на свой страх и риск. Вредоносное приложение может попытаться обманом заставить вас выполнить какие-либо действия, используя другие представления. - Автоматическая загрузка фотографий + Автоматическая загрузка изображений Управляйте местоположением и поведением автоматически загружаемых фотографий Автоматическая загрузка видео Настройка размещения и поведения видеороликов, загружаемых автоматически @@ -357,6 +359,8 @@ Аккаунт ещё не существует на устройстве Сделать доступным автономно Убрать доступность автономно + Файл был успешно установлен для работы в оффлайн-режиме + Файл был успешно снят с оффлайн-доступа Переименовать Удалить Вы действительно хотите удалить %1$s? @@ -669,8 +673,10 @@ Благодарим за использование %1$s.\n❤ Продолжить Иконка к примечанию релиза - Улучшения доступности - Некоторые улучшения, чтобы сделать приложение более доступным. + Незначительные исправления ошибок + Некоторые ошибки были исправлены для улучшения работы приложения + Обратная связь при установке/снятии оффлайн-доступа во всех предварительных просмотрах + Добавлена обратная связь при установке/снятии оффлайн-доступа во всех предварительных просмотрах и обновлено меню опций в зависимости от статуса файла Открыть в браузере Открыть в %1$s (веб) @@ -711,6 +717,7 @@ Небезопасный HTTP-URL Указанный вами URL-адрес использует протокол HTTP, а не зашифрованный протокол HTTPS. Если вы продолжите, ваше общение не будет зашифровано. Продолжить + Все загруженные файлы, которые недоступны в оффлайн-режиме, будут удалены из аккаунта %1$s удалить локальное хранилище Очистить данные Меню @@ -725,13 +732,38 @@ Редактировать публичную ссылку Удалить аккаунт Добавить новый контент + Добавить новый контент, развернутый Чистое хранилище учетных записей Лого Добавить долю Редактировать Поделиться Удалить долю %1$s операции + Сортировать %1$s по возрастанию + Сортировать %1$s по убыванию + Создать новую папку + Создать ярлык URL + URL должен начинаться с https:// или http:// чтобы его можно было открыть в браузере + URL не должен содержать пробелы + .url + Этот ярлык указывает на: Открыть ссылку + Улучшите приложение с помощью ваших отзывов + Свяжитесь с нами + форуме , чат с нами или внесите свой вклад в GitHub]]> Ссылка + Кнопка + Выбор папки + Пароль + Шаблон + Получить внешние файлы + Предварительный просмотр видео + Примечания к выпуску + Предпросмотр + Логин + Что нового + Предварительный просмотр аудио + Подробно + Предварительный просмотр текст файла diff --git a/owncloudApp/src/main/res/values-sq/strings.xml b/owncloudApp/src/main/res/values-sq/strings.xml index a031b066918..6dc0c6c267a 100644 --- a/owncloudApp/src/main/res/values-sq/strings.xml +++ b/owncloudApp/src/main/res/values-sq/strings.xml @@ -57,9 +57,9 @@ Lejo prekje, kur pamja është zënë nga një tjetër dritare e dukshme. Aktivizojeni, që të përdorni aplikacione filtrimi drite. Jeni i sigurt se doni të aktivizohet kjo veçori? Përdoreni këtë veçori duke e mbajtur vetë përgjegjësinë. Një aplikacion dashakeq mund të përpiqej t\’ua hidhte duke ju bërë të kryeni, pa e kuptuar, disa veprime, ndërkohë që përdorni pamje të tjera. - Vetëngarko foto + Ngarkime të automatizuara fotosh Administroni vendndodhje dhe sjellje të fotove të ngarkuara automatikisht - Vetëngarko video + Ngarkime të automatizuara videosh Administroni vendndodhje dhe sjellje të videove të ngarkuara automatikisht Ngarkime fotosh Fotot e bëra nga kamera ngarkoji vetvetiu @@ -357,6 +357,8 @@ Llogaria s\’ekziston ende te pajisja Caktojeni si të passhëm jo në linjë Hiqeni si të passhëm jo në linjë + Kartela u kalua me sukses si e pashme jashtë linje + Kartela u hoq me sukses si e pashme jashtë linje Riemërtojeni Hiqe Doni vërtet të hiqet %1$s? @@ -667,9 +669,6 @@ Faleminderit për përdorimin e %1$s.\n❤ Bëje Ikonë shënimesh hedhjeje në qarkullim - Përmirësime përdorimi nga persona me aftësi të kufizuara - Disa përmirësime për ta bërë aplikacionin më të lehtë për persona me aftësi të kufizuara - U shtuan disa mekanizma për përgjatë riprovash, për përmirësim të qëndrueshmërisë Ndreqje të metash të vockla U ndreqën disa të meta, për të përmirësuar punimin te aplikacioni @@ -735,6 +734,8 @@ Fshini pjesë %1$s veprime Renditi sipas %1$s në rend rritës + Renditi në rend rritës sipas %1$s + Krijo dosje të re Krijoni një shkurtore URL URL-ja duhet të fillojë me https:// ose http:// , që të mund të hapet në shfletues @@ -747,4 +748,18 @@ forumin tonë, bisedoni me ne, ose kontribuoni në GitHub]]> Lidhje Buton + Zgjedhës dosjeje + Kodkalim + Mostër + Marrje kartelash të jashtme + Paraparje videosh + Shënime hedhjeje në qarkullim + Paraparje figure + Hyrje + Ç’ka të re + Paradëgjim audioje + Hollësi + Paraparje teksti + U shtuan etiketa tekst te shtylla në fund + U shtuan etiketa tekst dhe treguesi parazgjedhje për gjendje aktive përdoret për të treguar se cila ndarje është përzgjedhur te shtylla në fund diff --git a/owncloudApp/src/main/res/values-sv/strings.xml b/owncloudApp/src/main/res/values-sv/strings.xml index 083c0c00ff7..d92447b1d6b 100644 --- a/owncloudApp/src/main/res/values-sv/strings.xml +++ b/owncloudApp/src/main/res/values-sv/strings.xml @@ -48,8 +48,6 @@ Efter 1 minut Efter 5 minuter Efter 30 minuter - Ladda upp bilder automatiskt - Ladda upp videor automatiskt Hantera platser och beteenden av videorna som har laddats upp automatiskt Bilduppladdningar Ladda upp bilder tagna av kameran automatiskt diff --git a/owncloudApp/src/main/res/values-th-rTH/strings.xml b/owncloudApp/src/main/res/values-th-rTH/strings.xml index 8cae459a8ba..995f2903dc9 100644 --- a/owncloudApp/src/main/res/values-th-rTH/strings.xml +++ b/owncloudApp/src/main/res/values-th-rTH/strings.xml @@ -51,9 +51,7 @@ อนุญาตให้แตะเมื่อมุมมองถูกบดบังโดยหน้าต่างอื่นที่มองเห็นได้ เปิดใช้งานเพื่อใช้แอปกรองแสง คุณแน่ใจหรือว่าต้องการเปิดใช้งานคุณลักษณะนี้? ใช้คุณสมบัตินี้ภายใต้ความรับผิดชอบของคุณ แอปพลิเคชันที่เป็นอันตรายอาจพยายามหลอกให้คุณทำการกระทำบางอย่างแบบไม่รู้ตัวโดยใช้มุมมองอื่น - อัปโหลดรูปภาพอัตโนมัติ จัดการตำแหน่งและพฤติกรรมของรูปภาพที่อัปโหลดโดยอัตโนมัติ - อัปโหลดวิดีโออัตโนมัติ จัดการตำแหน่งและพฤติกรรมของวิดีโอที่อัปโหลดโดยอัตโนมัติ อัปโหลดรูปภาพ อัปโหลดภาพที่ถ่ายด้วยกล้องโดยอัตโนมัติ diff --git a/owncloudApp/src/main/res/values-tr/strings.xml b/owncloudApp/src/main/res/values-tr/strings.xml index 33fe9f4d74e..e63c4141de3 100644 --- a/owncloudApp/src/main/res/values-tr/strings.xml +++ b/owncloudApp/src/main/res/values-tr/strings.xml @@ -568,7 +568,12 @@ Hesapları yönet Ara Hesabı kaldır + Yeni klasör oluştur URL Bağlantıyı aç Bağlantı + Desen + Resim önizleme + Oturum Aç + Ayrıntılar diff --git a/owncloudApp/src/main/res/values-ug/strings.xml b/owncloudApp/src/main/res/values-ug/strings.xml index 0719820d6a7..9b02524ac79 100644 --- a/owncloudApp/src/main/res/values-ug/strings.xml +++ b/owncloudApp/src/main/res/values-ug/strings.xml @@ -1,51 +1,627 @@ - يۈكلە + + ئىسمى + چېسلا + چوڭلۇقى + ئىزدەش بوشلۇقى + ھېساباتنى يېڭىلاش + يۈكلەش + باشقا ئەپلەرنىڭ مەزمۇنى ھۆججەتلەر - يېڭى قىسقۇچ - تەڭشەكلەر - يوللا - ئاچ - قايتۇرما ئىنكاس + بىلەن ئېچىڭ + بىلەن ئېچىڭ (پەقەت ئوقۇش) + يېڭى ھۆججەت قىسقۇچ + تەڭشەك + تەپسىلاتى + ئەۋەتىڭ + تەرتىپلەش + يېڭى ھۆججەت + يېڭى تېزلەتمە + بارلىق ھۆججەتلەر + تورسىز ئىشلەتكىلى بولىدۇ + ئۇلىنىش ئارقىلىق ئورتاقلاشتى + تەڭشەك + يۈكلەش + تاقاش + ئېچىڭ + نورما يۈكلەۋاتىدۇ + ئىشلىتىلگەن% 2 $ s نىڭ% 1 $ s (% 3 $ s %%) + ئىشلىتىلىۋاتقان% 1 $ s + ساقلاش ئىشلىتىش ئۇچۇرى يوق + تەكلىپ ياردەم - ئادەتتىكى + General + تىزىمغا كىرىش تېخىمۇ كۆپ بىخەتەرلىك + ئەپ ئۇچۇرى ، ئىنكاس ۋە باشقىلار ھېساباتلار + ھېساباتنى باشقۇرۇش + مەخپىي نومۇر قۇلۇپ + Biometric lock + بۇ تاللاشنى قوزغىتىش ئۈچۈن مەخپىي نومۇر ياكى ئەندىزە قۇلۇپىنى قوزغىتىڭ + قوللىنىشچان پروگراممىنى قۇلۇپلاش + دەرھال + 1 مىنۇتتىن كېيىن + 5 مىنۇتتىن كېيىن + 30 مىنۇتتىن كېيىن + ھۆججەت تەمىنلىگۈچىدىن زىيارەتنى قۇلۇپلاڭ + باشقا كۆرۈنگەن كۆزنەكلەر بىلەن تېگىش + كۆرۈنۈش باشقا كۆرۈنگەن كۆزنەك تەرىپىدىن تۇتۇلغاندا تېگىشكە يول قويۇڭ. يېنىك سۈزگۈچ ئەپلىرىنى ئىشلىتىڭ. + بۇ ئىقتىدارنى قوزغىتىشنى خالامسىز؟ + ئاپتوماتىك يوللانغان رەسىملەرنىڭ ئورنى ۋە ھەرىكىتىنى باشقۇرۇڭ + سىنلارنى ئاپتوماتىك يوللاش + ئاپتوماتىك يوللانغان سىنلارنىڭ ئورنى ۋە ھەرىكىتىنى باشقۇرۇڭ + رەسىم يوللاش + كامېرا ئارقىلىق تارتىلغان رەسىملەرنى ئاپتوماتىك يۈكلەڭ + بارلىق تاللانغان تاللاشلار ئەمەلگە ئاشقاندا يۈكلەش قوزغىلىدۇ + رەسىملەرنى پەقەت wifi ئارقىلىق يۈكلەڭ + بۇ تاللانمىنى قوزغىتىش ئۈچۈن پەقەت wifi نىلا قوزغىتىڭ + سىن يوللاش يولى + پەقەت wifi ئارقىلىق سىنلارنى يۈكلەڭ + ئىلغار + يوشۇرۇن ھۆججەتلەرنى كۆرسەت + ھۆججەتلەرنى خاتىرىلەڭ + قۇرۇق ھۆججەت قىسقۇچ! + كىرىش ۋە خاتىرە ھۆججەتلىرىنى قوزغىتىش بۇ يەردە كۆرۈنىدۇ. + كىرىشنى قوزغىتىڭ + بۇ مەسىلىلەرنى خاتىرىلەش ئۈچۈن ئىشلىتىلىدۇ. + كىرىش تارىخى + بۇ خاتىرىلەنگەن خاتىرىلەرنى كۆرسىتىدۇ. + تارىخنى ئۆچۈرۈڭ ياردەم - قايتۇرما ئىنكاس - ئىشلەتكۈچى ئاتى - ئىم + ئالاقىلىشىش ، كالېندار ۋە ۋەزىپىلەرنى ماسقەدەملەڭ + DAVx⁵ نى قاچىلاڭ + ھۆججەت تەمىنلىگۈچىنى زىيارەت قىلىڭ + ئاندىرويىد يەرلىك ھۆججەت ئىزدىگۈچىسى ئارقىلىق ئۈسكۈنىڭىزدىكى ھۆججەتلەرنى كۆرۈش تەكلىپىنى بەردى + دوستىڭىزغا تەۋسىيە قىلىڭ + تەكلىپ + Imprint + ئورتاقلىشىش ئورنىنى ئېسىڭىزدە تۇتۇڭ + Pattern lock + كىرىشنى قوزغىتىڭ + قوزغىتىلغاندا خاتىرىلەر ئىقتىدارغا تەسىر كۆرسىتىپ ، سەزگۈر ئۇچۇرلارنى ئۆز ئىچىگە ئالىدۇ. ئەمما بۇ خاتىرىلەر ئۆزىنىڭ Cloud مۇلازىمېتىرىغا ئاپتوماتىك بويسۇنمايدۇ. باشقىلار بىلەن خاتىرە ئورتاقلىشىش بىردىنبىر ئىشلەتكۈچىنىڭ مەسئۇلىيىتى. + تەكلىپ-پىكىر ئەۋەتىڭ + % 1 $ s% 2 $ s نەشرى% 3 $ s (% 4 $ s) + ئەندىزىڭىزنى كىرگۈزۈڭ + ئەندىزىڭىزنى كىرگۈزۈڭ + ئەندىزىڭىزنى ئۆچۈرۈڭ + ئەندىزە خاتا + ئەندىزە قۇلۇپىنى ئېلىۋاتقاندا خاتالىق كۆرۈلدى. + ئەندىزە ۋە مەخپىي نومۇر قۇلۇپىنى بىرلا ۋاقىتتا قوزغىتىشقا بولمايدۇ ، ئالدى بىلەن ئەندىزىنى چەكلەڭ. + ئەندىزە ۋە مەخپىي نومۇر قۇلۇپىنى بىرلا ۋاقىتتا قوزغىتىشقا بولمايدۇ ، ئالدى بىلەن مەخپىي نومۇرنى چەكلەڭ. + ئەندىزە ئەمدى تەلەپ قىلىنمايدۇ. + بۇ ئەندىزە ھەر قېتىم قوزغالغاندا تەلەپ قىلىنىدۇ. + قۇلۇپلاندى + يەتكۈزۈلگەن مۇددىئادا ئۈنۈملۈك ھەرىكەت لازىم + + ھۆججەتلەر + شەخسىي + يۈكلەش + تورسىز + ئۇلىنىشلار + ھەمبەھىر + ئەقلىيفونىڭىزدا% 1 $ سىناپ بېقىڭ! + سىزنى ئەقلىيفونىڭىزدا% 1 $ s ئىشلىتىشكە تەكلىپ قىلماقچى! \ N بۇ يەرگە چۈشۈرۈڭ:% 2 $ s + دەلىللەش مەغلۇپ بولدى. قايتا كىرىش ئۈچۈن قايتا كىرىڭ. + مۇلازىمېتىر نەشرىڭىز 10 دىن تۆۋەن ، شۇڭا ئۇنى قوللىمايدۇ ، مۇلازىمېتىرىڭىزنى يېڭى نەشرىگە يېڭىلاڭ. + ھېساباتنى ئۆزگەرتىش + زىيارەت بەلگىسىنىڭ ۋاقتى ئۆتۈپ كەتتى ياكى ئىناۋەتسىز بولۇپ قالدى. قايتا كىرىش ئۈچۈن قايتا كىرىڭ. + تىزىملىتىڭ + مۇلازىمېتىرنى تەكشۈرۈڭ + مۇلازىمېتىر ئادرېسى https: //… + ئىشلەتكۈچى ئىسمى + پارول ھۆججەتلەر - باغلان - يۈكلە + كىرىڭ + يۈكلەش + يۈكلەش بوشلۇقىنى تاللاڭ ھېسابات تېپىلمىدى - تەڭشەك - چېكىن + ئۈسكۈنىڭىزدە% 1 $ s ھېسابات يوق. ئالدى بىلەن ھېسابات قۇرۇڭ. + تەڭشەش + چېكىنىش + ھۆججەتنى يۈكلەشكە بولمايدۇ + ھۆججەتنى ۋاقىتلىق قىسقۇچقا كۆچۈرگەندە خاتالىق كۆرۈلدى. قايتا ئەۋەتىپ بېقىڭ. + سېكۇنت ئىلگىرى + بۇ يەردە ھۆججەت يوق + بوشلۇق يوق + بوشلۇق: + تورسىز ھۆججەت يوق + ئورتاق ئۇلىنىش يوق + بىر قىسىم مەزمۇننى چىقىرىش ياكى ئۈسكۈنىلىرىڭىز بىلەن ماس-قەدەملەڭ! + سىز باشقىلارنىڭ بايلىقىغا ھەمكارلاشمايسىز. + ھېچقانداق بوشلۇققا ئېرىشەلمەيسىز! + سىز تورسىز دەپ بەلگە قويغان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ. + ئۇلىنىش ئارقىلىق ئورتاقلاشقان ھۆججەت ۋە ھۆججەت قىسقۇچلار بۇ يەردە كۆرۈنىدۇ. + Loading… + ھۆججەت تىپى ئۈچۈن ھېچقانداق ئەپ تېپىلمىدى + بۇ ھۆججەت قىسقۇچتا ھۆججەت يوق. + بۇ ھۆججەت قىسقۇچتا ھۆججەت قىسقۇچ يوق. + بۇ ئىزدەشكە ماس كەلمەيدۇ + بىر نەرسە يۈكلەڭ ، ئۇ بۇ يەردە كۆرۈنىدۇ. + ھۆججەت قىسقۇچ + ھۆججەت قىسقۇچ + ھۆججەت + ھۆججەتلەر + قوشۇمچە ئۇچۇرلارنى كۆرسىتىش ئۈچۈن ھۆججەتنى چېكىڭ. + قۇرۇش ئۈچۈن ھۆججەت تۈرىنى تاللاڭ: چوڭلۇقى: تىپى: - قۇرۇلغان ۋاقتى: + ئىجاد قىلىنغان: + ئاخىرقى ماسقەدەملەش: + يول: ئۆزگەرتكەن ۋاقىت: - چۈشۈر - ھەمبەھىر + چۈشۈرۈش + ھۆججەت رەسىمى + چۈشۈرۈش كۇنۇپكىسىنى بىكار قىلىڭ + ھۆججەت يوللاش جەريانىدا% 1 $ s غا ئۆزگەرتىلدى + تىزىملىك ​​ئورۇنلاشتۇرۇشى + ھەمبەھىرلەش + تۇنجى قويۇپ بېرىش ئۈچۈن ھېسابات تەييارلاش ھەئە ياق - خاتالىق - يوچۇن خاتالىق - كۈتۈۋاتىدۇ - ئىم ئۆزگەرت - قىسقۇچ ئاتى - يوچۇن خاتالىق + يۈكلەشنى ئۆچۈرۈڭ + ماسقەدەملەشنى ئەمەلدىن قالدۇرۇڭ + قايتىش + خاتالىق + Loading… + نامەلۇم + نامەلۇم خاتالىق + ساقلىنىۋاتىدۇ + مۇھىم + پارولنى ئۆزگەرتىڭ + ھېساباتنى ئۆچۈرۈڭ + ھېسابات قۇر + ھۆججەت قىسقۇچنىڭ ئىسمى + يۈكلەش… + % 1 $ d %% يۈكلەش% 2 $ s + يۈكلەش مۇۋەپپەقىيەتلىك بولدى + % 1 $ s يوللاندى + يۈكلەش مەغلۇپ بولدى + يۈكلەش مەغلۇپ بولدى ، قايتا كىرىشىڭىز كېرەك. + يېڭى ھۆججەتكە ئىسىم قىستۇرۇڭ. + ھۆججەت ئىسمى بوش بولماسلىقى كېرەك. + ھۆججەت ئىسمى% d ھەرپتىن ئېشىپ كەتمەسلىكى كېرەك. + ھۆججەت ئىسمى + كامېرا يوللاش ھۆججىتىنى يۈكلەش + % d يېڭى رەسىملەر يوللىنىدۇ. + % d يېڭى سىنلار يوللىنىدۇ. + كامېرا يوللاش مەغلۇب بولدى. + سىن يوللاش مەنبە يولى ئەمدى ئىناۋەتلىك ئەمەس. + تورسىز ھۆججەتلەرنى يۈكلەش + Wifi ھۆججىتىدىن تەلەپ قىلىنغان يۈكلەش + يۈكلەش + نۆۋەتتىكى + مەغلۇپ بولدى (قايتا چېكىش ئۈچۈن چېكىڭ) + يۈكلەندى + Enqueued + % d ھۆججەتلەر + % d ھۆججەت + تاماملاندى + ئەمەلدىن قالدۇرۇلدى + توختاپ قالدى + ئۇلىنىش خاتالىقى + يۈكلەش پات يېقىندا قايتا سىناق قىلىنىدۇ + كىنىشكا خاتالىقى + ھۆججەت قىسقۇچ خاتالىقى + ھۆججەت خاتالىقى + يەرلىك ھۆججەت تېپىلمىدى + ئىجازەت خاتالىقى + مۇداپىئە تام قائىدىسى سەۋەبىدىن چەكلەنگەن + توقۇنۇش + ئەپ ئاخىرلاشتى + نامەلۇم خاتالىق + Wifi ئۇلىنىشىنى ساقلاش + Enqueued + يوللاشنى ساقلاۋاتىدۇ + قوللىمايدىغان مېدىيا تىپى + يۈكلەش ئەمەلدىن قالدۇرۇلدى + چۈشۈرۈش مۇۋەپپەقىيەتلىك بولدى + % 1 $ s چۈشۈرۈلدى + چۈشۈرۈش مەغلۇب بولدى + ھۆججەتنى كۆرسىتەلمىدى + % 1 $ s نى چۈشۈرۈش تاماملانمىدى + تېخى چۈشۈرۈلمىدى + بۇ ھۆججەتنى چۈشۈرۈش ھېسابات تاللاڭ + ماسقەدەملەش مەغلۇپ بولدى + % 1 $ s نىڭ مەخپىي نومۇرى + زىددىيەتلەر بايقالدى + % 1 $ d ماس قەدەمدە ساقلانغان ھۆججەتلەرنى ماسقەدەملىگىلى بولمايدۇ + % 1 $ d ھۆججىتىنىڭ مەزمۇنى ماسقەدەملەنمەيدۇ (% 2 $ d توقۇنۇش) + ھۆججەت قىسقۇچ% 1 $ s ئەمدى مەۋجۇت ئەمەس. + مەخپىي نومۇرىڭىزنى كىرگۈزۈڭ. + يېڭى% 1 $ d رەقەملىك كودنى كىرگۈزۈڭ. + ھەر قېتىم ئەپ قوزغالغاندا مەخپىي نومۇر تەلەپ قىلىنىدۇ. + پارولىڭىزنى قايتا كىرگۈزۈڭ. + پارولىڭىزنى ئۆچۈرۈڭ. + مەخپىي نومۇر ئوخشاش بولمايدۇ. + مەخپىي نومۇر خاتا + مەخپىي نومۇر قۇلۇپىنى تەڭشىگەندە خاتالىق كۆرۈلدى. + مەخپىي نومۇر قۇلۇپىنى ئېلىۋاتقاندا خاتالىق كۆرۈلدى. + ئارقا بوشلۇق كۇنۇپكىسى + Biometric button + 0 + 1 + 3 + 4 + 5 + 6 + 7 + 9 + % 1 $ s نى قايتا سىناڭ + بۇ ئىقتىدارنى ئىشلىتىش ئۈچۈن كەم دېگەندە بىر بىيولوگىيەلىك تىزىملىتىڭ. + Biometric log + بىئولوگىيەلىك كىنىشكىڭىزنى ئىشلىتىپ كىرىڭ. + بىيولوگىيەلىك بىخەتەرلىكنى قوشۇمچە قوزغىتىشنى خالامسىز؟ + % 1 $ s مۇزىكا قويغۇچ + % 1 $ s (ئويناش) + % 1 $ s (يۈك) + % 1 $ s ئويناش تاماملاندى + مېدىيا ھۆججىتى تېپىلمىدى + ھېسابات تەمىنلەنمىدى + ئىناۋەتلىك ھېساباتتا ھۆججەت يوق + قوللىمايدىغان مېدىيا كودلىغۇچ + ئوينىماقچى بولغاندا ۋاقتى ئۆتۈپ كەتتى + مېدىيا ھۆججىتىنى ئاقلاشقا بولمايدۇ + مېدىيا ھۆججىتىنى پايچېكى قويغۇچ بىلەن قويغىلى بولمايدۇ + % 1 $ s ئوينىماقچى بولغان بىخەتەرلىك خاتالىقى + % 1 $ s ئوينىماقچى بولغان كىرگۈزۈش خاتالىقى + كەينىگە قايتۇرۇش كۇنۇپكىسى + قويۇش ياكى توختىتىش كۇنۇپكىسى + تېز ئىلگىرىلەش كۇنۇپكىسى + كامېرادىن رەسىم + ھوقۇققا ئېرىشىش… + كىرمەكچى بولۇۋاتىسىز… + بىخەتەر ئۇلىنىشنى ئىشلەتكىلى بولمايدۇ. + ئۇلىنىش قۇرۇلدى + سىناق ئۇلىنىشى + مۇلازىمېتىر سەپلىمىسى خاتا + ئۈسكۈنىدە ئوخشاش ئىشلەتكۈچى ۋە مۇلازىمېتىرنىڭ ھېساباتى بار. + نامەلۇم خاتالىق يۈز بەردى! + مۇلازىمېتىرنىڭ ئادرېسى خاتا + SSL دەسلەپكى قەدەمدە مەغلۇپ بولدى + تونۇلمىغان مۇلازىمېتىر نۇسخىسى + بىخەتەر ئۇلىنىش قۇرۇلدى + ئىشلەتكۈچى ئىسمى ياكى پارولى خاتا + مەغلۇب بولغان ھوقۇق + ئىجازەت مۇلازىمېتىرى تەرىپىدىن رەت قىلىندى + نۆۋەتتىكى پارولنى كىرگۈزۈڭ + دەلىللەش مۇلازىمېتىرىغا ئۇلاش… + مۇلازىمېتىر بۇ دەلىللەش ئۇسۇلىنى قوللىمايدۇ + بۇ مۇلازىمېتىرغا دەلىللىيەلمەيدۇ + ئۈسكۈنىدە ھېسابات تېخى مەۋجۇت ئەمەس + تورسىز ئىشلەتكىلى بولىدۇ ئات ئۆزگەرت - چىقىرىۋەت - يوللا + ئۆچۈرۈڭ + راستىنلا% 1 $ s نى ئۆچۈرمەكچىمۇ؟ + پەقەت يەرلىك + راستىنلا% 1 $ s ھېساباتنى ئۆچۈرمەكچىمۇ؟ + بۇ ھېساباتقا كامېرا يوللاش باغلانغان بولۇپ ، ھېساباتنى ئۆچۈرگەندە كامېرا يوللاشنى چەكلەيدۇ. راستىنلا% 1 $ s ھېساباتنى ئۆچۈرمەكچىمۇ؟ + ئۇلانمىنى ئۆچۈر + شەخسىي ئۈلۈشنى ئۆچۈرۈڭ + راستىنلا% 1 $ s نى ئۆچۈرمەكچىمۇ؟ + ئېلىۋېتىش مۇۋەپپەقىيەتلىك بولدى + ئۆچۈرۈش مەغلۇب بولدى + يېڭى ئىسىم كىرگۈزۈڭ + بۇ ھۆججەتنى ئۆز ئىچىگە ئالغان ھۆججەت قىسقۇچنى تورسىز ئىشلەتكىلى بولىدۇ. + يەرلىك نۇسخىنىڭ نامىنى ئۆزگەرتكىلى بولمايدۇ باشقا ئىسىمنى سىناپ بېقىڭ + ئىسمىنى ئۆزگەرتىش تاماملانمىدى + ھۆججەت مەۋجۇت + ھۆججەت قىسقۇچ مەۋجۇت + % 1 $ s ئىسمى بار ھۆججەت مەۋجۇت. + يىراقتىكى ھۆججەتنى تەكشۈرگىلى بولمىدى + ھۆججەت تېپىلمىدى + چۈشۈرۈلگەن + يۈكلەنگەن + ھۆججەت قىسقۇچ قۇرغىلى بولمىدى + ھۆججەت قۇرغىلى بولمىدى + ھۆججەت ئىسمى كەم دېگەندە بىر ئىناۋەتسىز ھەرپنى ئۆز ئىچىگە ئالىدۇ + ھۆججەت ئىسمى قۇرۇق بولمايدۇ + ھۆججەت ئىسمى ئۇنچە ئۇزۇن بولمايدۇ + سەل ساقلاپ تۇرۇڭ + ساقلانغان كىنىشكىنى تەكشۈرۈش + ئويلىمىغان مەسىلە; باشقا ئەپتىن ھۆججەتنى تاللاڭ + ھېچقانداق ھۆججەت تاللانمىدى + شەخسىي ساقلاشتىن ھۆججەت كۆچۈرۈش + OAuth2 بىلەن كىرىش + OAuth2 مۇلازىمېتىرىغا ئۇلاش… + ئۇلىنىش بىخەتەر ئەمەس ، http ئېقىمىغا رۇخسەت قىلىنمايدۇ. + مۇلازىمېتىرنىڭ كىملىكىنى دەلىللىگىلى بولمىدى. + - مۇلازىمېتىر گۇۋاھنامىسىنىڭ ۋاقتى توشتى. + - URL گۇۋاھنامىدىكى ساھىبجامالغا ماس كەلمەيدۇ + قانداقلا بولمىسۇن بۇ گۇۋاھنامىگە ئىشىنىشنى خالامسىز؟ + تەپسىلاتى + يوشۇر + تارقىتىلغان: + تارقاتقان: + ئورتاق ئىسمى: + دۆلەت: + دۆلەت: + ئورنى: + ئىناۋەتلىكلىكى: + دىن: + ئالگورىزىم: + بۇ ھەزىم قىلىش ھېسابلاش ئۇسۇلى تېلېفونىڭىزدا يوق. + بارماق ئىزى: + گۇۋاھنامىنى يۈكلەشتە مەسىلە بار. + گۇۋاھنامە كۆرسىتىلمىدى. + بۇ يەر ئىگىسى. + placeholder.txt + 2012/05/18 12:23 PM + 12:23:45 + جەزملەشتۈرۈڭ + بۇ ئىقتىدارنى چەكلەشنى خالامسىز؟ ساقلىنىۋاتقان رەسىملەر يۈكلەنمەيدۇ. + بۇ ئىقتىدارنى چەكلەشنى خالامسىز؟ ساقلىنىۋاتقان سىنلار يۈكلەنمەيدۇ. + تاللانغان ھۆججەت قىسقۇچنىڭ سىز ئىشلىتىۋاتقان كامېرا خاتىرىلەنگەن سىنلارنى ساقلايدىغانلىقىغا كاپالەتلىك قىلىڭ. بولمىسا ، بۇ ئىقتىدار سىنلىرىڭىزنى بايقىيالمايدۇ. سىنلارنى خاتىرىلىگەندىن كېيىن كەم دېگەندە 15 مىنۇت ئىچىدە يۈكلىنىدىغانلىقىنى ئېسىڭىزدە تۇتۇڭ. + توقۇنۇشتىكى ھۆججەت + % 1 $ s ھۆججىتىدە توقۇنۇش بار ، ئۇنى ھەل قىلىش ئۈچۈن چېكىڭ. + قايسى ھۆججەتلەرنى ساقلىماقچى؟ ئەگەر ھەر ئىككى نەشرىنى تاللىسىڭىز ، يەرلىك ھۆججەتنىڭ نامىغا بىر سان قوشۇلىدۇ. + ھەر ئىككىسىنى ساقلاڭ + مۇلازىمېتىر نەشرى + ئالماشتۇرۇڭ + بۇ رەسىمنى كۆرسەتكىلى بولمايدۇ. + % 1 $ s نى% 2 $ s يەرلىك ھۆججەت قىسقۇچقا كۆچۈرگىلى بولمايدۇ. + مۇلازىمېتىردىن ئىشلەتكۈچى ۋە گۇرۇپپىلارنى ئەسلىگە كەلتۈرۈش مۇمكىن ئەمەس + مۇلازىمېتىردىن ئىقتىدارلارنى ئەسلىگە كەلتۈرۈش مۇمكىن ئەمەس + كەچۈرۈڭ ، مۇلازىمېتىرىڭىزدا ئورتاقلىشىش قوزغىتىلمىدى. ئالاقىلىشىڭ + باشقۇرغۇچى. + بۇ ھۆججەت ياكى ھۆججەت قىسقۇچنى ئورتاقلىشىش مۇمكىن ئەمەس + بۇ ھۆججەت ياكى ھۆججەت قىسقۇچنى يېڭىلاش مۇمكىن ئەمەس + پارول كىرگۈزۈڭ + پارول كىرگۈزۈشىڭىز كېرەك. + ئەۋەتىڭ + ئۇلانمىنى كۆچۈرۈڭ + چاپلاش تاختىسىغا كۆچۈرۈلدى + چاپلاش تاختىسىغا كۆچۈرگىلى بولىدىغان تېكىست يوق + چاپلاش تاختىسىغا كۆچۈرگەندە كۈتۈلمىگەن خاتالىق + تېكىست% 1 $ دىن كۆچۈرۈلگەن + ھالقىلىق خاتالىق: مەشغۇلات قىلالمايدۇ + مۇلازىمېتىر جاۋاب قايتۇرۇشقا بەك ئۇزۇن ۋاقىت كەتتى. + مۇلازىمېتىر ئۇلىنىشقا بەك ئۇزۇن ۋاقىت كەتتى. + مۇلازىمېتىرغا يېتەلمىدى. + توردا خاتالىق كۆرۈلدى. + بايلىق قۇلۇپلاندى + سىزنىڭ% s رۇخسىتىڭىز يوق + بۇ ھۆججەتنىڭ نامىنى ئۆزگەرتىش + بۇ ھۆججەتنى ئۆچۈرۈش + بۇ ھۆججەتنى ئورتاقلىشىش + بۇ ھۆججەتنى ئورتاقلىشىش + بۇ ھەمبەھىرنى يېڭىلاش + ھۆججەت قۇرۇش + يۈكلەشكە بولمايدۇ + بۇ ھۆججەتنى مۇلازىمېتىردا ئىشلەتكىلى بولمايدۇ. ھېساباتلار + ھېسابات قوشۇڭ + ھېساباتنى باشقۇرۇش + خاتىرە + تارىخ ئەۋەتىڭ + خاتىرە ئەۋەتىدىغان ئەپ تېپىلمىدى. خەت ئەپى قاچىلاڭ. + % 1 $ s ئاندىرويىد ئەپ خاتىرىسى + سانلىق مەلۇماتلارنى يۈكلەۋاتىدۇ… + ھەممىنى تاللاڭ + تەتۈر تاللاڭ + يۆتكەڭ + تاللاڭ + بۇ يەرگە يۆتكىڭ + بۇ يەرگە كۆچۈرۈڭ + بۇ يەرگە مەزمۇن قوشۇش ھوقۇقىڭىز يوق! + ھۆججەت قىسقۇچنى ئەۋلادقا يۆتكەش مۇمكىن ئەمەس. + بۇ ھۆججەت نىشان ھۆججەت قىسقۇچىدا مەۋجۇت. + بۇ ھۆججەت ياكى ھۆججەت قىسقۇچنى يۆتكىمەكچى بولغاندا خاتالىق كۆرۈلدى. + بۇ ھۆججەتنى يۆتكەش + ھۆججەت قىسقۇچنى ئەۋلادلارغا كۆچۈرگىلى بولمايدۇ. + بۇ ھۆججەت نىشان ھۆججەت قىسقۇچىدا مەۋجۇت. + بۇ ھۆججەت ياكى ھۆججەت قىسقۇچنى كۆچۈرمەكچى بولغاندا خاتالىق كۆرۈلدى. + % 1 $ s ھۆججەت قىسقۇچنى ماسقەدەملەش تاماملانمىدى + ئورتاقلاشتى + with you + % 1 $ s سىز بىلەن ئورتاقلاشتى \ \"% 2 $ s \" + \ \"% 1 $ s \" سىز بىلەن ئورتاقلاشتى مۇلازىمېتىر ئادرىسى - ھەمبەھىر + ئىچكى ساقلىغۇچ يېتەرلىك ئەمەس + ئىشلەتكۈچى ئىسمى + 1 ھۆججەت قىسقۇچ + % 1 $ d ھۆججەت قىسقۇچ + 1 ھۆججەت + 1 ھۆججەت ، 1 ھۆججەت قىسقۇچ + 1 ھۆججەت ،% 1 $ d ھۆججەت قىسقۇچ + % 1 $ d ھۆججەتلەر + % 1 $ d ھۆججەت ، 1 ھۆججەت قىسقۇچ + % 1 $ d ھۆججەت ،% 2 $ d ھۆججەت قىسقۇچ + رەسىم يوللاش ئۈچۈن ھېسابات + سىن يوللاش ئۈچۈن ھېسابات + كامېرا ھۆججەت قىسقۇچى (% 1 $ s) + required + ئەسلى ھۆججەت بولىدۇ + ئەسلى ھۆججەت بولىدۇ + ھۆججەتنى كۆچۈرۈڭ + ھۆججەتنى يۆتكەش + ئەسلى ھۆججەت قىسقۇچتا ساقلىنىدۇ + ئەسلى ھۆججەت قىسقۇچتىن چىقىرىۋېتىلدى + ھەمبەھىرلەش + ئىشلەتكۈچى ۋە گۇرۇپپىلار + ھازىرچە ئىشلەتكۈچىلەر بىلەن ئورتاقلاشقان سانلىق مەلۇمات يوق + ئىشلەتكۈچى ياكى گۇرۇپپا قوشۇڭ + ئاممىۋى ئۇلىنىش + ئۇلىنىش ئورتاقلىشىش + ئۇلىنىش ھەمبەھىرىنى تەھرىرلەڭ + ئۇلىنىش ئىسمى ۋاز كەچ - ساقلا - ئىم - ئىزدە + ساقلاش + مۇددەت + پارول + بىخەتەر + Generate + كۆچۈرۈڭ + چۈشۈرۈش / كۆرۈش + چۈشۈرۈش / كۆرۈش / يوللاش + پەقەت يۈكلەش (ھۆججەت تاشلاش) + ئۇلىنىشقا ئېرىشىڭ + بىلەن ئورتاقلىشىش + ئىزدەش + % 1 $ s (گۇرۇپپا) + % 1 $ s (يىراق) + كەچۈرۈڭ ، مۇلازىمېتىر نەشرىڭىز خېرىدارلار ئىچىدىكى ئابونتلار بىلەن ئورتاقلىشىشقا يول قويمايدۇ. + \ n باشقۇرغۇچىڭىز بىلەن ئالاقىلىشىڭ + ھەمبەھىر قىلالايدۇ + تەھرىركىلى بولىدۇ + قۇرۇش + ئۆزگەرتىش ئۆچۈر + ئورتاقلىشىشنى توختىتىڭ + تاماملاندى + قايتا سىناڭ + Clear + بۇ ھۆججەت يەرلىك ھۆججەت سىستېمىسىدا تېپىلمىدى + بۇ% s تۈرلەرنى ئۆچۈرمەكچىمۇ؟ + تاللانغان تۈرلەر ۋە ئۇلارنىڭ مەزمۇنىنى ئۆچۈرمەكچىمۇ؟ + ھېساباتتا يېتەرلىك بوشلۇق يوق + چەكلەنگەن دەلىللەش + مەخپىيەتلىك تۈزۈمى + مەخپىيەتلىك تۈزۈمى + خاتالىق كۆرۈلدى: + مۇلازىمېتىرنى ئىشلەتكىلى بولمايدۇ. + مۇلازىمېتىر گۇۋاھنامىسى ئىشەنچسىز بولغاچقا ئېقىشنى باشلىغىلى بولمايدۇ. ھۆججەت چۈشۈرۈش ئاپتوماتىك باشلىنىدۇ. + ھالقىغان قايتا نىشانلاش ئارقىلىق ئېقىشقا بولمايدۇ. + بۇ فىلىمنى قايتا كۆپەيتىشكە بولمايدۇ. + ئاندىرويىد نەشرىدە سىن كۆرۈشنى قوللىمايدۇ. ھۆججەت چۈشۈرۈش ئاپتوماتىك باشلىنىدۇ. + ئۈسكۈنە تورغا ئۇلانمىدى. + ھازىرچە ھېچقانداق ئاممىۋى ئۇلىنىش قۇرۇلمىدى. + بۇ ئورتاقلىشىشنىڭ ھېچقانداق ئۇلىنىشى يوق. + ئۇلىنىشى بارلارنىڭ ھۆججەت / ھۆججەت قىسقۇچنى زىيارەت قىلالايدۇ. + پارول * + ۋاقتى * + ئاممىۋى ئۇلىنىش قۇرۇلۇپ% 1 $ d دىن كېيىن بولمايدۇ. + % 1 $ s ئۇلىنىشى + بۇ ھۆججەت ئۈچۈن شەخسىي ئۇلىنىش يوق. + چۈشۈرۈش + چۈشۈرۈش ھۆججىتىنىڭ ئىسمى ۋە ئىلگىرىلىشىنى كۆرۈڭ. + يۈكلەش + يۈكلەش ھۆججىتىنىڭ ئىسمى ۋە ئىلگىرىلىشىنى كۆرۈڭ. + مۇزىكا قويغۇچنى كۆرۈڭ + ھۆججەت ماسقەدەملەش + ھۆججەت توقۇنۇشى يۈز بەرگەندە كۆرۈڭ. + سىز ئاچقۇچىلار تىزىملىكىنى قوزغىتىش ئۈچۈن% 1 $ d چېكىسىز + باھا% 1 $ s ئەپ! + ئەگەر بۇ ئەپنى ئىشلىتىشنى ياقتۇرسىڭىز ، بىر ئاز ۋاقىت سەرپ قىلىپ باھا بېرەلەمسىز؟ ئىنكاسىڭىز بىز ئۈچۈن ئىنتايىن مۇھىم. + ياق ، رەھمەت + LATER + + %d selected + %d selected + + + ئاتلاش + بارلىق ماس قەدەملىك ھۆججەتلىرىڭىزنى باشقۇرۇڭ + ھۆججەت ۋە ھۆججەت قىسقۇچلارنى ھەمبەھىرلەڭ + شەخسىي ياكى ئاشكارا ئورتاقلىشالايسىز + كۆپ ھېسابات + ئۆزىڭىزنىڭ Cloud مۇلازىمېتىرلىرىغا ئۇلاڭ + Video streaming + سىنلىرىڭىزنى چۈشۈرمەي قويۇڭ + توركۆرگۈ ئورنىتىلمىدى. بىخەتەر كىرىش ئۈچۈن توركۆرگۈ ئورنىتىڭ. + OAuth2 نى قوللايدىغان ياكى قوللىمايدىغانلىقىنى بىلىش مۇمكىن ئەمەس. + مۇلازىمېتىر ئاساسى URL نى بىلىش مۇمكىن ئەمەس. + HTTP تەلەپلىرى ۋە جاۋابلىرىنى خاتىرىلەڭ + خاتىرىلەردە سەزگۈر ئۇچۇرلار بولۇشى مۇمكىن. باشقىلار بىلەن خاتىرە ئورتاقلىشىش بىردىنبىر ئىشلەتكۈچىنىڭ مەسئۇلىيىتى + ماس قەدەملىك ھېسابات + بوشلۇقنى يېڭىلىغىلى بولمىدى + + سىرتقى ساقلىغۇچتا% 1 $ s سانلىق مەلۇمات تېپىلدى. ئۇ ئۈسكۈنىڭىزدىكى بىخەتەر ساقلاشقا يۆتكىلىدۇ. قالغان ھۆججەتلەر كۆچۈرۈلگەندىن كېيىن سىرتقى ساقلانمىڭىزدىن تازىلىنىپ ، تەكرارلىنىش ۋە يوچۇقنىڭ ئالدىنى ئالىدۇ. + ئەپىڭىز يېڭىلاندى. بۇ ئەپ يېڭىلاش ھۆججەتلىرىڭىزنى ئۈسكۈنىڭىزدىكى تېخىمۇ بىخەتەر ئورۇنغا يۆتكەيدۇ. بۇ بىر قېتىم سانلىق مەلۇمات كۆچۈش تەلەپ قىلىنىدۇ ، بىر مىنۇت ياكى ئۇنىڭدىنمۇ كۆپ ۋاقىت كېتىدۇ. + ئىشنى باشلايلى + Free بوشلۇقىڭىز ھازىر ئۈسكۈنىڭىزدە چەكلىك. بەزى ھۆججەتلەر كۆچۈرۈلمەسلىكى مۇمكىن ، چۈشۈرۈلگەن بارلىق ھۆججەتلەرنىڭ جەريان تاماملانغاندىن كېيىن داۋاملىق چۈشۈرۈلىدىغانلىقىنى تەكشۈرۈپ بېقىڭ. + ھازىر كۆچۈڭ + كۆچۈش مۇۋەپپەقىيەتلىك تاماملاندى. ھۆججەتلىرىڭىز ھازىر ئىلگىرىكىگە قارىغاندا بىخەتەر. + ھۆججەتلىرىڭىزنى زىيارەت قىلىڭ + ھۆججەتلىرىڭىزنى يۆتكەش. ئۈسكۈنىڭىزنى ئېتىۋەتمەڭ. + + ئەپنى قۇلۇپلاش ئۈچۈن بىر تاللاشنى تاللاڭ: + مەخپىي نومۇر قۇلۇپ + بىر قىسىم مەزمۇننى چىقىرىش ياكى ئۈسكۈنىلىرىڭىز بىلەن ماس-قەدەملەڭ! + + داۋاملاشتۇرۇڭ + ئىشلەتكۈچى ئىسمى قۇرۇق + + % 1 $ s دىكى يېڭى + % 1 $ s نى ئىشلەتكەنلىكىڭىزگە رەھمەت. \ N❤ + داۋاملاشتۇرۇڭ + كىچىك خاتالىق + بەزى خاتالىقلار ئەپتىكى تەجرىبىنى ياخشىلاش ئۈچۈن ئوڭشالدى + + تورنى ئېچىڭ + تورنى ئاچقىلى بولمايدۇ + بۇ ھۆججەت تىپىنى قوللايدىغان ئەپلەر يوق. + تەلەپ قىلىنغان ھۆججەت تېخى تېپىلمىدى ، كېيىن قايتا سىناڭ. + + چەكسىز كۆلەم ھېساباتى ئاگاھلاندۇرۇشى + بوشلۇقنى ئېلىش ئۈچۈن ھېساباتنى ئۆچۈرۈپ قايتا كىرىڭ. + قايتا كۆرسەتمەڭ + چۈشىنىلدى + تېكىست + بارلىق% 1 $ s توقۇنۇشقا ئىشلىتىڭ + خاتىرە ھۆججىتى چۈشۈرۈلدى + چۈشۈرۈشكە بېرىڭ + چۈشۈرۈش ھۆججىتى% 1 $ s توغرا چۈشۈرۈلدى. + + ئۇلىنىش فورماتى ئىناۋەتسىز + ئىشلەتكۈچى ھۆججەتكە ئېرىشەلمەيدۇ + ئۇلىنىشتىن ھۆججەت ئېچىش + يېڭىلاش + ماس قەدەملەش ئاللىقاچان ئېلىپ بېرىلماقتا + ئەڭ كۆپ بولغاندا% 1 $ d ھەرپ + كەم دېگەندە% 1 $ d سان + كەم دېگەندە% 1 $ d كىچىك ھەرپ + ئالاھىدە ھەرپلەرنىڭ كەم دېگەندە% 1 $ d: \ \"% 2 $ s \" + بەختكە قارشى ، پارولىڭىز ئادەتتە ئىشلىتىلىدۇ. بىخەتەرلىكىڭىز ئۈچۈن پەرەز قىلىش تەس بولغان پارولنى تاللاڭ. + ھەرگىز بولمايدۇ + 1 سائەت + 12 سائەت + 1 كۈن + 30 كۈن + يەرلىك نۇسخىسىنى ئۆچۈرۈڭ + تورسىز ھالەتتە ئاپتوماتىك چۈشۈرۈلگەن ھۆججەتلەرنى ئۆچۈرۈۋېتىڭ ، ئۇلارنىڭ ئاخىرقى ئىشلىتىلىش ۋاقتى تاللانغان ۋاقىتتىن ئېشىپ كەتكەندە. \ N تاللانغان ۋاقىت:% 1 $ s + بىخەتەر بولمىغان HTTP URL + داۋاملاشتۇر + يەرلىك ساقلاشنى ئۆچۈرۈڭ + سانلىق مەلۇماتلارنى تازىلاش + تىزىملىك + ھېساباتنى باشقۇرۇش + ئىزدەش + كۆرۈنۈش تىپى + رەسىم ئالدىن كۆرۈلدى + ئاممىۋى ئۇلىنىش قوشۇڭ + شەخسىي ئۇلىنىشقا ئېرىشىڭ + ئاممىۋى ئۇلىنىشقا ئېرىشىڭ + ئاممىۋى ئۇلىنىشنى ئۆچۈرۈڭ + ھېساباتنى ئۆچۈرۈڭ + يېڭى مەزمۇن قوشۇڭ + كېڭەيتىلگەن يېڭى مەزمۇن قوشۇڭ + ھېسابات ساقلاشنى پاكىزلاش + ئورتاقلىشىش + ھەمبەھىرنى ئۆچۈرۈڭ + % 1 $ s مەشغۇلات + % 1 $ s ئۆرلەش بويىچە تەرتىپلەڭ + تۆۋەنلەش نىسبىتى% 1 $ s + يېڭى ھۆججەت قىسقۇچ قۇر + URL + URL چوقۇم https: // ياكى http: // دىن باشلىنىشى كېرەك ، شۇنداق بولغاندا ئۇنى تور كۆرگۈچتە ئاچقىلى بولىدۇ + بۇ تېزلەتمە: + ئۇلانمىنى ئېچىڭ + ئىنكاسىڭىز بىلەن ئەپنى ياخشىلاڭ + بىزنىڭ <a href = \"% 1 $ s\"> <b> مۇنبەر </b> </a> ، <a href = \"% 2 $ s\"> <b> بىز بىلەن پاراڭلىشىش </ b> دىن ياردەم سوراڭ. </a> ياكى <a href = \"% 3 $ s\"> <b> GitHub </b> </a> غا تۆھپە قوشۇڭ + ئۇلىنىش + Button + ھۆججەت قىسقۇچ + مەخپىي نومۇر + Pattern + سىرتقى ھۆججەتلەرنى قوبۇل قىلىڭ + Video preview + خاتىرە قالدۇرۇڭ + كىرىش + Audio preview + تەپسىلاتى + تېكىست ئالدىن كۆرۈش diff --git a/owncloudApp/src/main/res/values-uk/strings.xml b/owncloudApp/src/main/res/values-uk/strings.xml index ec1c5715065..a6ac276ecca 100644 --- a/owncloudApp/src/main/res/values-uk/strings.xml +++ b/owncloudApp/src/main/res/values-uk/strings.xml @@ -49,8 +49,6 @@ Через 30 хвилин Взаємодія з іншими відкритими вікнами Ви впевнені, що хочете включити цю функцію? - Автоматично завантажувати фотографії - Автоматично завантажувати відео Керуйте місцеперебуванням та поведінкою відео, завантажених автоматично Завантаження зображень Автоматично завантажувати зображення з камери diff --git a/owncloudApp/src/main/res/values-zh-rCN/strings.xml b/owncloudApp/src/main/res/values-zh-rCN/strings.xml index 1a7ef46f36a..df78bd1282f 100644 --- a/owncloudApp/src/main/res/values-zh-rCN/strings.xml +++ b/owncloudApp/src/main/res/values-zh-rCN/strings.xml @@ -18,6 +18,7 @@ 逆序 排序方式 新建文档 + 新建快捷方式 全部文件 离线可用 分享链接的文件 @@ -54,7 +55,7 @@ 带有其他可见窗口的键 当视图被另一个可见窗口遮挡时允许触摸。 启用它以使用滤光应用程序。 你确定要启用此功能吗? - 自动上传图片 + 请自行负责使用此功能的风险。恶意程序可能会在您不知情的情况下欺骗您使用其他视图,执行某些操作。 管理自动上传图片的位置和方式 自动上传视频 管理自动上传视频的位置和方式 @@ -85,7 +86,8 @@ 帮助 同步联系人、日历和任务 安装 DAVx⁵ - 建议通过系统自带文件资源管理器浏览设备上的文件 + 访问文档的提供者 + 建议通过安卓系统自带文件资源管理器浏览设备上的文件 推荐给朋友 反馈 版本说明 @@ -120,6 +122,7 @@ 在您的智能手机上试用 %1$s! 我邀请你在智能手机上使用 %1$s\n下载路径:%2$s 因为 + 验证失败。请重新登录以重试 不支持版本低于10的服务器,请升级你的服务器 更换账户 访问令牌过期或失效,请重新登录以获得访问权限 @@ -350,6 +353,8 @@ 设备中还未存在该帐号 设置为离线可用 取消设置为离线可用 + 该文件已经成功设置脱机访问 + 该文件已经成功设置非脱机访问 重命名 删除 你确定要删除 %1$s 吗? @@ -373,18 +378,31 @@ 无法核实远程文件 文件内容已同步 文件未找到 + 发现新版本。正在下载中... + 加入下载列表 + 加入上传列表 文件夹无法创建 + 无法创建文件 + 禁止字符: / \\ 文件名中存在至少一个非法字符 文件名不能为空 + 文件名不能太长 请稍候 正在检查已保存的凭据 + 意外错误: 请选择其它程序打开文件 未选择文件 发送链接给 从私有存储中拷贝文件 使用oAuth2登陆 正在连接到 OAuth2 服务… + 非安全链接, 不能使用http链接 + 无法验证服务器的身份 + 服务器证书不受信任 + - 服务器证书过期 + - 服务器证书时间比当前时间还晚 - 主机名与证书中的记录不匹配 是否信任此证书? + 证书无法保存 详细信息 隐藏 授权给: @@ -405,14 +423,19 @@ 加载证书失败。 无法显示证书。 - 没有关于该错误的有效信息 + 占位符 点位符.txt PNG图像格式 389字节 2012/05/18 下午12:23 12:23:45 确认 + 你确定要禁用这项功能吗?未上传的图片将不会被上传 + 确定要禁用这项功能吗?未上传的视频将不会被上传 请确保选择的文件夹是你使用的相机保存相片的位置,否则,该功能将无法检测到你的相片。请记住相片拍摄后15分钟会被上传。 请确保选择的文件夹是你使用的相机保存录制视频的位置,否则,该功能将无法检测到你拍摄的视频。请记住视频拍摄后15分钟会被上传。 + 文件冲突 + 冲突文件 %1$s,点击解决 您想要保留哪个文件?如果您同时选中了两个版本,本地的文件的文件名将被加上一个数字 保留两者 本地版本 @@ -597,7 +620,12 @@ 管理账号 搜索 删除账号 + 创建新文件夹 URL 开放链接 链接 + 模式 + 图片预览 + 登录 + 详细信息 diff --git a/owncloudApp/src/main/res/values-zh-rTW/strings.xml b/owncloudApp/src/main/res/values-zh-rTW/strings.xml index ff6cb09729a..7cb9ff95543 100644 --- a/owncloudApp/src/main/res/values-zh-rTW/strings.xml +++ b/owncloudApp/src/main/res/values-zh-rTW/strings.xml @@ -52,9 +52,7 @@ 當視圖被另一個可見窗口遮擋時,允許觸摸。 啟用它以使用濾光應用程序。 您確定要啟用這個功能? 使用此功能由您自己負責,惡意應用程式可能試圖欺騙您執行某些未覺察到的使用其他視圖的操作。 - 自動上傳圖片 管理自動地上傳圖片的位置和行為 - 自動上傳影片 管理自動地上傳的視頻的位置和行為 圖片上傳 自動地上傳相機照片 diff --git a/owncloudApp/src/main/res/values/strings.xml b/owncloudApp/src/main/res/values/strings.xml index ced0b3f2e1f..fa604d617ac 100644 --- a/owncloudApp/src/main/res/values/strings.xml +++ b/owncloudApp/src/main/res/values/strings.xml @@ -58,9 +58,9 @@ Allow touches when the view is obscured by another visible window. Enable it to use light filtering apps. Are you sure you want to enable this feature? Use this feature at your own risk. A malicious application could try to spoof you into unknowingly performing some actions, using other views. - Auto-upload pictures + Automatic picture uploads Manage location and behavior of the pictures uploaded automatically - Auto-upload videos + Automatic video uploads Manage location and behavior of the videos uploaded automatically Picture uploads Automatically upload pictures taken by camera @@ -369,6 +369,8 @@ Set as available offline Unset as available offline + The file was set as available offline correctly + The file was unset as available offline correctly Rename Remove Do you really want to remove %1$s? @@ -725,22 +727,11 @@ Thank you for using %1$s.\n❤ Proceed Release note icon - - Improvements in accessibility - Some improvements to make the application more accessible - Auto uploads more consistent - Added some mechanisms over retries to improve reliability - Improvements in private shares - The \"can share\" option is now only shown when editing a private share if the user is able to edit it - Fixed local updates - Local copy and file size of any file are now correct after a local update Minor bugfixes Some bugs were fixed to improve experience in the app + Feedback when (un)setting av. offline in all previews + Added feedback when (un)setting av. offline in all previews and updated options menu depending on file status - List filtering after rotating device - Configuration changes have been handled when rotating the device so that list filtering works - Audio player problems - Devices with Android 14+ can now play correctly audio files in the app Open in web @@ -845,5 +836,7 @@ Audio preview Details Text preview + Added text labels on bottom bar + Text labels were added and default active indicator is used to show which section is selected on the bottom bar diff --git a/owncloudApp/src/main/res/xml/settings.xml b/owncloudApp/src/main/res/xml/settings.xml index 4e5a7758f0a..bb4f8ec6237 100644 --- a/owncloudApp/src/main/res/xml/settings.xml +++ b/owncloudApp/src/main/res/xml/settings.xml @@ -41,14 +41,14 @@ = localFolderBackupDataSource.getFolderBackupConfigurationByNameAsFlow(name) diff --git a/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/LocalFolderBackupDataSource.kt b/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/LocalFolderBackupDataSource.kt index fcdcd1aa06f..a0229eaba28 100644 --- a/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/LocalFolderBackupDataSource.kt +++ b/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/LocalFolderBackupDataSource.kt @@ -18,12 +18,12 @@ */ package com.owncloud.android.data.folderbackup.datasources -import com.owncloud.android.domain.camerauploads.model.CameraUploadsConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.AutomaticUploadsConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration import kotlinx.coroutines.flow.Flow interface LocalFolderBackupDataSource { - fun getCameraUploadsConfiguration(): CameraUploadsConfiguration? + fun getAutomaticUploadsConfiguration(): AutomaticUploadsConfiguration? fun getFolderBackupConfigurationByNameAsFlow(name: String): Flow diff --git a/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSource.kt b/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSource.kt index 66d1a8b4821..591a558c1d5 100644 --- a/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSource.kt +++ b/owncloudData/src/main/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSource.kt @@ -22,11 +22,11 @@ import androidx.annotation.VisibleForTesting import com.owncloud.android.data.folderbackup.datasources.LocalFolderBackupDataSource import com.owncloud.android.data.folderbackup.db.FolderBackUpEntity import com.owncloud.android.data.folderbackup.db.FolderBackupDao -import com.owncloud.android.domain.camerauploads.model.CameraUploadsConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.videoUploadsName -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.AutomaticUploadsConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.videoUploadsName +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map @@ -34,13 +34,13 @@ class OCLocalFolderBackupDataSource( private val folderBackupDao: FolderBackupDao, ) : LocalFolderBackupDataSource { - override fun getCameraUploadsConfiguration(): CameraUploadsConfiguration? { + override fun getAutomaticUploadsConfiguration(): AutomaticUploadsConfiguration? { val pictureUploadsConfiguration = folderBackupDao.getFolderBackUpConfigurationByName(pictureUploadsName) val videoUploadsConfiguration = folderBackupDao.getFolderBackUpConfigurationByName(videoUploadsName) if (pictureUploadsConfiguration == null && videoUploadsConfiguration == null) return null - return CameraUploadsConfiguration( + return AutomaticUploadsConfiguration( pictureUploadsConfiguration = pictureUploadsConfiguration?.toModel(), videoUploadsConfiguration = videoUploadsConfiguration?.toModel(), ) diff --git a/owncloudData/src/main/java/com/owncloud/android/data/migrations/Migration_34.kt b/owncloudData/src/main/java/com/owncloud/android/data/migrations/Migration_34.kt index 763e8dd7b9a..f58b2d83e4a 100644 --- a/owncloudData/src/main/java/com/owncloud/android/data/migrations/Migration_34.kt +++ b/owncloudData/src/main/java/com/owncloud/android/data/migrations/Migration_34.kt @@ -23,10 +23,10 @@ import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase import com.owncloud.android.data.ProviderMeta.ProviderTableMeta.FOLDER_BACKUP_TABLE_NAME import com.owncloud.android.data.providers.SharedPreferencesProvider -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.videoUploadsName -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.videoUploadsName +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import java.io.File val MIGRATION_33_34 = object : Migration(33, 34) { diff --git a/owncloudData/src/main/java/com/owncloud/android/data/transfers/datasources/implementation/OCLocalTransferDataSource.kt b/owncloudData/src/main/java/com/owncloud/android/data/transfers/datasources/implementation/OCLocalTransferDataSource.kt index e149545590a..df80edfc2da 100644 --- a/owncloudData/src/main/java/com/owncloud/android/data/transfers/datasources/implementation/OCLocalTransferDataSource.kt +++ b/owncloudData/src/main/java/com/owncloud/android/data/transfers/datasources/implementation/OCLocalTransferDataSource.kt @@ -25,7 +25,7 @@ import androidx.annotation.VisibleForTesting import com.owncloud.android.data.transfers.datasources.LocalTransferDataSource import com.owncloud.android.data.transfers.db.OCTransferEntity import com.owncloud.android.data.transfers.db.TransferDao -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.transfers.model.OCTransfer import com.owncloud.android.domain.transfers.model.TransferResult import com.owncloud.android.domain.transfers.model.TransferStatus diff --git a/owncloudData/src/test/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSourceTest.kt b/owncloudData/src/test/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSourceTest.kt index 81aa2d2eeac..227b5246b1d 100644 --- a/owncloudData/src/test/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSourceTest.kt +++ b/owncloudData/src/test/java/com/owncloud/android/data/folderbackup/datasources/implementation/OCLocalFolderBackupDataSourceTest.kt @@ -22,7 +22,7 @@ package com.owncloud.android.data.folderbackup.datasources.implementation import com.owncloud.android.data.folderbackup.datasources.implementation.OCLocalFolderBackupDataSource.Companion.toModel import com.owncloud.android.data.folderbackup.db.FolderBackupDao -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration import com.owncloud.android.testutil.OC_BACKUP import com.owncloud.android.testutil.OC_BACKUP_ENTITY import io.mockk.every @@ -47,11 +47,11 @@ class OCLocalFolderBackupDataSourceTest { } @Test - fun `getCameraUploadsConfiguration returns a CameraUploadsConfiguration when having valid configurations`() { + fun `getAutomaticUploadsConfiguration returns an AutomaticUploadsConfiguration when having valid configurations`() { every { folderBackupDao.getFolderBackUpConfigurationByName(FolderBackUpConfiguration.pictureUploadsName) } returns OC_BACKUP_ENTITY every { folderBackupDao.getFolderBackUpConfigurationByName(FolderBackUpConfiguration.videoUploadsName) } returns OC_BACKUP_ENTITY - val resultCurrent = ocLocalFolderBackupDataSource.getCameraUploadsConfiguration() + val resultCurrent = ocLocalFolderBackupDataSource.getAutomaticUploadsConfiguration() assertEquals(OC_BACKUP_ENTITY.toModel(), resultCurrent?.pictureUploadsConfiguration) assertEquals(OC_BACKUP_ENTITY.toModel(), resultCurrent?.videoUploadsConfiguration) @@ -63,11 +63,11 @@ class OCLocalFolderBackupDataSourceTest { } @Test - fun `getCameraUploadsConfiguration returns null when there are not configurations`() { + fun `getAutomaticUploadsConfiguration returns null when there are not configurations`() { every { folderBackupDao.getFolderBackUpConfigurationByName(FolderBackUpConfiguration.pictureUploadsName) } returns null every { folderBackupDao.getFolderBackUpConfigurationByName(FolderBackUpConfiguration.videoUploadsName) } returns null - val resultCurrent = ocLocalFolderBackupDataSource.getCameraUploadsConfiguration() + val resultCurrent = ocLocalFolderBackupDataSource.getAutomaticUploadsConfiguration() assertNull(resultCurrent) @@ -78,7 +78,7 @@ class OCLocalFolderBackupDataSourceTest { } @Test - fun `getFolderBackupConfigurationByNameAsFlow returns a Flow of CameraUploadsConfiguration when having valid configurations`() = runBlocking { + fun `getFolderBackupConfigurationByNameAsFlow returns a Flow of AutomaticUploadsConfiguration when having valid configurations`() = runBlocking { every { folderBackupDao.getFolderBackUpConfigurationByNameAsFlow(FolderBackUpConfiguration.pictureUploadsName) } returns flowOf( OC_BACKUP_ENTITY ) diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/FolderBackupRepository.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/FolderBackupRepository.kt similarity index 77% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/FolderBackupRepository.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/FolderBackupRepository.kt index cb1ed5dee58..a3481a55c2f 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/FolderBackupRepository.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/FolderBackupRepository.kt @@ -16,14 +16,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads +package com.owncloud.android.domain.automaticuploads -import com.owncloud.android.domain.camerauploads.model.CameraUploadsConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.AutomaticUploadsConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration import kotlinx.coroutines.flow.Flow interface FolderBackupRepository { - fun getCameraUploadsConfiguration(): CameraUploadsConfiguration? + fun getAutomaticUploadsConfiguration(): AutomaticUploadsConfiguration? fun getFolderBackupConfigurationByNameAsFlow(name: String): Flow diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/model/CameraUploadsConfiguration.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/model/AutomaticUploadsConfiguration.kt similarity index 79% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/model/CameraUploadsConfiguration.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/model/AutomaticUploadsConfiguration.kt index 7fccecc74f7..ffaba8ab557 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/model/CameraUploadsConfiguration.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/model/AutomaticUploadsConfiguration.kt @@ -16,11 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.model +package com.owncloud.android.domain.automaticuploads.model -data class CameraUploadsConfiguration( +data class AutomaticUploadsConfiguration( val pictureUploadsConfiguration: FolderBackUpConfiguration?, val videoUploadsConfiguration: FolderBackUpConfiguration? ) { - fun areCameraUploadsDisabled() = pictureUploadsConfiguration == null && videoUploadsConfiguration == null + fun areAutomaticUploadsDisabled() = pictureUploadsConfiguration == null && videoUploadsConfiguration == null } diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/model/FolderBackUpConfiguration.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/model/FolderBackUpConfiguration.kt similarity index 97% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/model/FolderBackUpConfiguration.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/model/FolderBackUpConfiguration.kt index 1163ba84952..6b2821b821a 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/model/FolderBackUpConfiguration.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/model/FolderBackUpConfiguration.kt @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.model +package com.owncloud.android.domain.automaticuploads.model data class FolderBackUpConfiguration( val accountName: String, diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetCameraUploadsConfigurationUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetAutomaticUploadsConfigurationUseCase.kt similarity index 63% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetCameraUploadsConfigurationUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetAutomaticUploadsConfigurationUseCase.kt index 73497f5cc43..0c21ee6fc28 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetCameraUploadsConfigurationUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetAutomaticUploadsConfigurationUseCase.kt @@ -16,16 +16,16 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCaseWithResult -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.CameraUploadsConfiguration +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.AutomaticUploadsConfiguration -class GetCameraUploadsConfigurationUseCase( +class GetAutomaticUploadsConfigurationUseCase( private val folderBackupRepository: FolderBackupRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { - override fun run(params: Unit): CameraUploadsConfiguration? = - folderBackupRepository.getCameraUploadsConfiguration() + override fun run(params: Unit): AutomaticUploadsConfiguration? = + folderBackupRepository.getAutomaticUploadsConfiguration() } diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetPictureUploadsConfigurationStreamUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetPictureUploadsConfigurationStreamUseCase.kt similarity index 83% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetPictureUploadsConfigurationStreamUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetPictureUploadsConfigurationStreamUseCase.kt index fe6f89754af..8892b135ca8 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetPictureUploadsConfigurationStreamUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetPictureUploadsConfigurationStreamUseCase.kt @@ -16,11 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration import kotlinx.coroutines.flow.Flow class GetPictureUploadsConfigurationStreamUseCase( diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetVideoUploadsConfigurationStreamUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetVideoUploadsConfigurationStreamUseCase.kt similarity index 77% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetVideoUploadsConfigurationStreamUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetVideoUploadsConfigurationStreamUseCase.kt index a6b1bd1d3cb..62548274659 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/GetVideoUploadsConfigurationStreamUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/GetVideoUploadsConfigurationStreamUseCase.kt @@ -16,12 +16,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.videoUploadsName +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.videoUploadsName import kotlinx.coroutines.flow.Flow class GetVideoUploadsConfigurationStreamUseCase( diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/ResetPictureUploadsUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/ResetPictureUploadsUseCase.kt similarity index 80% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/ResetPictureUploadsUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/ResetPictureUploadsUseCase.kt index 615b8828bbe..a3c774eb716 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/ResetPictureUploadsUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/ResetPictureUploadsUseCase.kt @@ -16,11 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.pictureUploadsName class ResetPictureUploadsUseCase( private val folderBackupRepository: FolderBackupRepository diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/ResetVideoUploadsUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/ResetVideoUploadsUseCase.kt similarity index 80% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/ResetVideoUploadsUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/ResetVideoUploadsUseCase.kt index 78b908bf546..4fbc684d8c2 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/ResetVideoUploadsUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/ResetVideoUploadsUseCase.kt @@ -16,11 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCase -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration.Companion.videoUploadsName +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration.Companion.videoUploadsName class ResetVideoUploadsUseCase( private val folderBackupRepository: FolderBackupRepository diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/SavePictureUploadsConfigurationUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/SavePictureUploadsConfigurationUseCase.kt similarity index 84% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/SavePictureUploadsConfigurationUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/SavePictureUploadsConfigurationUseCase.kt index 198bdec59d4..08e3029bd79 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/SavePictureUploadsConfigurationUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/SavePictureUploadsConfigurationUseCase.kt @@ -16,11 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCaseWithResult -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration class SavePictureUploadsConfigurationUseCase( private val folderBackupRepository: FolderBackupRepository diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/SaveVideoUploadsConfigurationUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/SaveVideoUploadsConfigurationUseCase.kt similarity index 84% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/SaveVideoUploadsConfigurationUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/SaveVideoUploadsConfigurationUseCase.kt index 7759101de0d..afa185b4f0a 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/camerauploads/usecases/SaveVideoUploadsConfigurationUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/automaticuploads/usecases/SaveVideoUploadsConfigurationUseCase.kt @@ -16,11 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.owncloud.android.domain.camerauploads.usecases +package com.owncloud.android.domain.automaticuploads.usecases import com.owncloud.android.domain.BaseUseCaseWithResult -import com.owncloud.android.domain.camerauploads.FolderBackupRepository -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.FolderBackupRepository +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration class SaveVideoUploadsConfigurationUseCase( private val folderBackupRepository: FolderBackupRepository diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/OCTransfer.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/OCTransfer.kt index aa4733f6d8d..d6e82d41f49 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/OCTransfer.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/OCTransfer.kt @@ -22,7 +22,7 @@ package com.owncloud.android.domain.transfers.model import android.os.Parcelable -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import kotlinx.parcelize.Parcelize import java.io.File diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/UploadEnqueuedBy.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/UploadEnqueuedBy.kt index 016e2192d7c..a124f0ce517 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/UploadEnqueuedBy.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/transfers/model/UploadEnqueuedBy.kt @@ -29,6 +29,6 @@ package com.owncloud.android.domain.transfers.model */ enum class UploadEnqueuedBy { ENQUEUED_BY_USER, - ENQUEUED_AS_CAMERA_UPLOAD_PICTURE, - ENQUEUED_AS_CAMERA_UPLOAD_VIDEO; + ENQUEUED_AS_AUTOMATIC_UPLOAD_PICTURE, + ENQUEUED_AS_AUTOMATIC_UPLOAD_VIDEO; } diff --git a/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCFolderBackUpConfiguration.kt b/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCFolderBackUpConfiguration.kt index 68f22b7879a..8dd9c97e92b 100644 --- a/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCFolderBackUpConfiguration.kt +++ b/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCFolderBackUpConfiguration.kt @@ -20,8 +20,8 @@ package com.owncloud.android.testutil -import com.owncloud.android.domain.camerauploads.model.FolderBackUpConfiguration -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.FolderBackUpConfiguration +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.data.folderbackup.db.FolderBackUpEntity val OC_BACKUP = FolderBackUpConfiguration( diff --git a/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCTransfer.kt b/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCTransfer.kt index e66031b5a78..9bca9a6a6dd 100644 --- a/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCTransfer.kt +++ b/owncloudTestUtil/src/main/java/com/owncloud/android/testutil/OCTransfer.kt @@ -20,7 +20,7 @@ package com.owncloud.android.testutil -import com.owncloud.android.domain.camerauploads.model.UploadBehavior +import com.owncloud.android.domain.automaticuploads.model.UploadBehavior import com.owncloud.android.domain.transfers.model.OCTransfer import com.owncloud.android.domain.transfers.model.TransferStatus import com.owncloud.android.domain.transfers.model.UploadEnqueuedBy