Skip to content

Commit

Permalink
Don't retry failed uploads when they are removed or cleared
Browse files Browse the repository at this point in the history
  • Loading branch information
JuancaG05 committed Aug 26, 2022
1 parent 4010b17 commit 977bffe
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,8 @@ import com.owncloud.android.domain.sharing.shares.usecases.EditPublicShareAsyncU
import com.owncloud.android.domain.sharing.shares.usecases.GetShareAsLiveDataUseCase
import com.owncloud.android.domain.sharing.shares.usecases.GetSharesAsLiveDataUseCase
import com.owncloud.android.domain.sharing.shares.usecases.RefreshSharesFromServerAsyncUseCase
import com.owncloud.android.domain.transfers.usecases.ClearFailedTransfersUseCase
import com.owncloud.android.usecases.transfers.uploads.ClearFailedTransfersUseCase
import com.owncloud.android.domain.transfers.usecases.ClearSuccessfulTransfersUseCase
import com.owncloud.android.domain.transfers.usecases.DeleteTransferWithIdUseCase
import com.owncloud.android.domain.transfers.usecases.GetAllTransfersAsLiveDataUseCase
import com.owncloud.android.domain.transfers.usecases.UpdatePendingUploadsPathUseCase
import com.owncloud.android.domain.user.usecases.GetStoredQuotaUseCase
Expand Down Expand Up @@ -168,8 +167,7 @@ val useCaseModule = module {
factory { RetryUploadFromContentUriUseCase(get(), get(), get()) }
factory { GetAllTransfersAsLiveDataUseCase(get()) }
factory { CancelUploadWithIdUseCase(get(), get()) }
factory { DeleteTransferWithIdUseCase(get()) }
factory { ClearFailedTransfersUseCase(get()) }
factory { ClearFailedTransfersUseCase(get(), get()) }
factory { RetryFailedUploadsUseCase(get(), get(), get(), get()) }
factory { ClearSuccessfulTransfersUseCase(get()) }
factory { CancelUploadsFromAccountUseCase(get(), get()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,5 +89,5 @@ val viewModelModule = module {
viewModel { FileDetailsViewModel(get(), get(), get(), get(), get()) }
viewModel { FileOperationsViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) }
viewModel { (accountName: String, initialFolderToDisplay: OCFile) -> MainFileListViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), accountName, initialFolderToDisplay) }
viewModel { TransfersViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) }
viewModel { TransfersViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) }
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ import java.io.File

class TransfersAdapter(
val cancel: (Long) -> Unit,
val delete: (Long) -> Unit,
val retry: (OCTransfer) -> Unit,
val clearFailed: () -> Unit,
val retryFailed: () -> Unit,
Expand Down Expand Up @@ -141,7 +140,7 @@ class TransfersAdapter(
uploadRightButton.apply {
setImageResource(R.drawable.ic_action_delete_grey)
setOnClickListener {
delete(transferItem.transfer.id!!)
cancel(transferItem.transfer.id!!)
}
}
holder.itemView.setOnClickListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,6 @@ class TransferListFragment : Fragment() {
cancel = { id ->
transfersViewModel.cancelTransferWithId(id)
},
delete = { id ->
transfersViewModel.deleteTransferWithId(id)
},
retry = { transfer: OCTransfer ->
if (transfer.lastResult == TransferResult.CREDENTIAL_ERROR) {
val parentActivity = requireActivity() as FileActivity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.work.WorkInfo
import com.owncloud.android.domain.transfers.model.OCTransfer
import com.owncloud.android.domain.transfers.usecases.ClearFailedTransfersUseCase
import com.owncloud.android.usecases.transfers.uploads.ClearFailedTransfersUseCase
import com.owncloud.android.domain.transfers.usecases.ClearSuccessfulTransfersUseCase
import com.owncloud.android.domain.transfers.usecases.DeleteTransferWithIdUseCase
import com.owncloud.android.domain.transfers.usecases.GetAllTransfersAsLiveDataUseCase
import com.owncloud.android.providers.CoroutinesDispatcherProvider
import com.owncloud.android.providers.WorkManagerProvider
Expand All @@ -48,7 +47,6 @@ class TransfersViewModel(
private val uploadFilesFromContentUriUseCase: UploadFilesFromContentUriUseCase,
private val uploadFilesFromSystemUseCase: UploadFilesFromSystemUseCase,
private val cancelUploadWithIdUseCase: CancelUploadWithIdUseCase,
private val deleteTransferWithIdUseCase: DeleteTransferWithIdUseCase,
private val retryUploadFromSystemUseCase: RetryUploadFromSystemUseCase,
private val retryUploadFromContentUriUseCase: RetryUploadFromContentUriUseCase,
private val clearFailedTransfersUseCase: ClearFailedTransfersUseCase,
Expand Down Expand Up @@ -130,14 +128,6 @@ class TransfersViewModel(
}
}

fun deleteTransferWithId(id: Long) {
viewModelScope.launch(coroutinesDispatcherProvider.io) {
deleteTransferWithIdUseCase.execute(
DeleteTransferWithIdUseCase.Params(id = id)
)
}
}

fun retryUploadFromSystem(id: Long) {
viewModelScope.launch(coroutinesDispatcherProvider.io) {
retryUploadFromSystemUseCase.execute(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,21 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package com.owncloud.android.domain.transfers.usecases
package com.owncloud.android.usecases.transfers.uploads

import androidx.work.WorkManager
import com.owncloud.android.domain.BaseUseCase
import com.owncloud.android.domain.transfers.TransferRepository

class ClearFailedTransfersUseCase(
private val workManager: WorkManager,
private val transferRepository: TransferRepository,
) : BaseUseCase<Unit, Unit>() {
override fun run(params: Unit): Unit =
override fun run(params: Unit) {
val failedTransfers = transferRepository.getFailedTransfers()
failedTransfers.forEach { failedTransfer ->
workManager.cancelAllWorkByTag(failedTransfer.id.toString())
}
transferRepository.clearFailedTransfers()

}
}

This file was deleted.

0 comments on commit 977bffe

Please sign in to comment.