Skip to content

Commit bf25c8a

Browse files
feature/1475-delete-uploaded-files: apply to current user or all users, added users in report
Signed-off-by: daniele-verducci <daniele.verducci@nextcloud.com>
1 parent 2c8d2e6 commit bf25c8a

5 files changed

Lines changed: 39 additions & 10 deletions

File tree

app/src/main/java/com/nextcloud/client/jobs/autoUpload/AutoUploadLocalDeletionWorker.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class AutoUploadLocalDeletionWorker(
5959
val syncedFolders = syncedFolderIDs
6060
.map { syncedFolderProvider.getSyncedFolderByID(it) }
6161

62+
var users = HashSet<String>()
6263
var filesPreserved = 0L
6364
var foldersAnalyzed = 0L
6465
var filesRemoved = 0L
@@ -70,6 +71,7 @@ class AutoUploadLocalDeletionWorker(
7071
.filter { FileUtil.isFolderWritable(File(it.localPath)) }
7172
.forEach {
7273
val sharedFolderOwner = userAccountManager.getUser(it.account).get()
74+
users.add(sharedFolderOwner.accountName)
7375
val fileDataStorageManager = FileDataStorageManager(sharedFolderOwner, context.contentResolver)
7476
val op = DeleteUploadedFileOperation(
7577
it,
@@ -93,6 +95,7 @@ class AutoUploadLocalDeletionWorker(
9395
val runTimeMs = System.currentTimeMillis() - timeStarted
9496
showNotification(
9597
createSuccessNotification(
98+
users.size,
9699
foldersAnalyzed,
97100
filesRemoved,
98101
filesPreserved,
@@ -102,13 +105,14 @@ class AutoUploadLocalDeletionWorker(
102105
)
103106
Log_OC.d(
104107
TAG,
105-
"Success: foldersAnalyzed=$foldersAnalyzed, filesPreserved=$filesPreserved, " +
108+
"Success: users=$users, foldersAnalyzed=$foldersAnalyzed, filesPreserved=$filesPreserved, " +
106109
"filesRemoved=$filesRemoved, spaceFreed=$spaceFreed bytes, runTimeMs=$runTimeMs"
107110
)
108111
return Result.success()
109112
}
110113

111114
private fun createSuccessNotification(
115+
users: Int,
112116
foldersRemoved: Long,
113117
filesRemoved: Long,
114118
filesPreserved: Long,
@@ -120,6 +124,7 @@ class AutoUploadLocalDeletionWorker(
120124
DisplayUtils.bytesToHumanReadable(spaceFreed),
121125
filesRemoved,
122126
foldersRemoved,
127+
users,
123128
DisplayUtils.unixTimeDurationToHumanReadable(context, timeElapsed)
124129
)
125130
if (filesPreserved > 0) {

app/src/main/java/com/owncloud/android/operations/upload/DeleteUploadedFileOperation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class DeleteUploadedFileOperation(
3535

3636
@Suppress("ReturnCount")
3737
suspend fun run(): RemoteOperationResult<Stats> {
38-
Log_OC.d(TAG, "Analyzing folder ${syncedFolder.remotePath}")
38+
Log_OC.d(TAG, "Analyzing folder ${syncedFolder.remotePath} from user ${syncedFolder.account}")
3939

4040
// Obtain synced folder data
4141
val folder = storageManager.getFileByRemotePath(syncedFolder.remotePath)

app/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -610,19 +610,25 @@ class SyncedFoldersActivity :
610610
null,
611611
R.string.autoupload_delete_uploaded_all_dialog_title,
612612
R.drawable.selector_trashbin,
613-
R.string.common_ok,
614-
R.string.common_cancel,
615-
-1
613+
R.string.autoupload_delete_uploaded_all_dialog_button_all_users,
614+
R.string.autoupload_delete_uploaded_all_dialog_button_current_user,
615+
R.string.common_cancel
616616
)
617617
dialog.isCancelable = false
618618
dialog.setOnConfirmationListener(object : ConfirmationDialogFragment.ConfirmationDialogFragmentListener {
619619
override fun onConfirmation(callerTag: String?) {
620620
FilesSyncHelper.startLocalDeletionForEnabledSyncedFolders(syncedFolderProvider, backgroundJobManager)
621621
}
622622

623-
override fun onNeutral(callerTag: String?) = Unit
623+
override fun onCancel(callerTag: String?) {
624+
FilesSyncHelper.startLocalDeletionForEnabledSyncedFolders(
625+
syncedFolderProvider,
626+
backgroundJobManager,
627+
user.get()
628+
)
629+
}
624630

625-
override fun onCancel(callerTag: String?) = Unit
631+
override fun onNeutral(callerTag: String?) = Unit
626632
})
627633

628634
showDialog(dialog, SYNCED_FOLDER_DELETE_ALL_UPLOADED_DIALOG_TAG)

app/src/main/java/com/owncloud/android/utils/FilesSyncHelper.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
package com.owncloud.android.utils
1111

12+
import com.nextcloud.client.account.User
1213
import com.nextcloud.client.account.UserAccountManager
1314
import com.nextcloud.client.device.PowerManagementService
1415
import com.nextcloud.client.jobs.BackgroundJobManager
@@ -56,11 +57,26 @@ object FilesSyncHelper {
5657

5758
@JvmStatic
5859
fun startLocalDeletionForEnabledSyncedFolders(provider: SyncedFolderProvider, manager: BackgroundJobManager) {
59-
Log_OC.d(TAG, "start local deletion worker for each enabled folder")
60+
Log_OC.d(TAG, "Start local deletion worker for each enabled folder by any user")
6061

6162
manager.locallyDeleteAutoUploadedFiles(provider.syncedFolders)
6263
}
6364

65+
@JvmStatic
66+
fun startLocalDeletionForEnabledSyncedFolders(
67+
provider: SyncedFolderProvider,
68+
manager: BackgroundJobManager,
69+
user: User
70+
) {
71+
Log_OC.d(TAG, "start local deletion worker for each enabled folder under user ${user.accountName}")
72+
73+
manager.locallyDeleteAutoUploadedFiles(
74+
provider.syncedFolders.filter {
75+
it.account.equals(user.accountName)
76+
}
77+
)
78+
}
79+
6480
@JvmStatic
6581
fun startLocalDeletionForSyncedFolder(folder: SyncedFolder, manager: BackgroundJobManager) {
6682
Log_OC.d(TAG, "start local deletion worker for folder ${folder.localPath}")

app/src/main/res/values/strings.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -886,15 +886,17 @@
886886
<string name="autoupload_delete_uploaded_notif_started_title">Started to locally delete already uploaded files in background</string>
887887
<string name="autoupload_delete_uploaded_notif_ended_title">Locally deleted already uploaded files</string>
888888
<string name="autoupload_delete_uploaded_notif_error_title">Unable to locally delete already uploaded files</string>
889-
<string name="autoupload_delete_uploaded_notif_ended_content">Freed up %1$s removing %2$d files across %3$d folders. The operation required %4$s.</string>
889+
<string name="autoupload_delete_uploaded_notif_ended_content">Freed up %1$s removing %2$d files across %3$d folders from %4$d users. The operation required %5$s.</string>
890890
<string name="autoupload_delete_uploaded_notif_ended_content_preserved">%1$d files have been left in place because not (yet) uploaded or modified.</string>
891891
<string name="synced_folders_configure_folders">Configure folders</string>
892892

893893
<string name="autoupload_delete_uploaded_dialog_title">Locally delete uploaded files</string>
894894
<string name="autoupload_delete_uploaded_dialog_description">All the files already uploaded to the cloud will be removed from the current device</string>
895895

896896
<string name="autoupload_delete_uploaded_all_dialog_title">Locally delete uploaded files for all auto upload folders</string>
897-
<string name="autoupload_delete_uploaded_all_dialog_description">All the files already uploaded to the cloud will be removed from the current device for all the autoupload folders from all the configured users</string>
897+
<string name="autoupload_delete_uploaded_all_dialog_description">All the files already uploaded to the cloud will be removed from the current device for all the autoupload folders</string>
898+
<string name="autoupload_delete_uploaded_all_dialog_button_all_users">From all users</string>
899+
<string name="autoupload_delete_uploaded_all_dialog_button_current_user">From current user</string>
898900

899901
<string name="empty" translatable="false"></string>
900902
<string name="test_server_button">Test server connection</string>

0 commit comments

Comments
 (0)