Skip to content

Commit 87b2e81

Browse files
Merge pull request nextcloud#13471 from nextcloud/bugfix/observe-worker-state
BugFix - Observe Worker State
2 parents 76a21c0 + 7a12346 commit 87b2e81

7 files changed

Lines changed: 22 additions & 21 deletions

File tree

app/src/main/java/com/nextcloud/client/jobs/download/FileDownloadWorker.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,11 @@ class FileDownloadWorker(
156156
}
157157

158158
private fun setWorkerState(user: User?) {
159-
WorkerStateLiveData.instance().setWorkState(WorkerState.Download(user, currentDownload))
159+
WorkerStateLiveData.instance().setWorkState(WorkerState.DownloadStarted(user, currentDownload))
160160
}
161161

162162
private fun setIdleWorkerState() {
163-
WorkerStateLiveData.instance().setWorkState(WorkerState.Idle(getCurrentFile()))
163+
WorkerStateLiveData.instance().setWorkState(WorkerState.DownloadFinished(getCurrentFile()))
164164
}
165165

166166
private fun removePendingDownload(accountName: String?) {

app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadWorker.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ class FileUploadWorker(
102102
val result = retrievePagesBySortingUploadsByID()
103103
backgroundJobManager.logEndOfWorker(BackgroundJobManagerImpl.formatClassTag(this::class), result)
104104
notificationManager.dismissNotification()
105+
if (result == Result.success()) {
106+
setIdleWorkerState()
107+
}
105108
result
106109
} catch (t: Throwable) {
107110
Log_OC.e(TAG, "Error caught at FileUploadWorker $t")
@@ -120,11 +123,11 @@ class FileUploadWorker(
120123
}
121124

122125
private fun setWorkerState(user: User?, uploads: List<OCUpload>) {
123-
WorkerStateLiveData.instance().setWorkState(WorkerState.Upload(user, uploads))
126+
WorkerStateLiveData.instance().setWorkState(WorkerState.UploadStarted(user, uploads))
124127
}
125128

126129
private fun setIdleWorkerState() {
127-
WorkerStateLiveData.instance().setWorkState(WorkerState.Idle(currentUploadFileOperation?.file))
130+
WorkerStateLiveData.instance().setWorkState(WorkerState.UploadFinished(currentUploadFileOperation?.file))
128131
}
129132

130133
@Suppress("ReturnCount")

app/src/main/java/com/nextcloud/model/WorkerState.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import com.owncloud.android.db.OCUpload
1313
import com.owncloud.android.operations.DownloadFileOperation
1414

1515
sealed class WorkerState {
16-
data class Idle(var currentFile: OCFile?) : WorkerState()
17-
data class Download(var user: User?, var currentDownload: DownloadFileOperation?) : WorkerState()
18-
data class Upload(var user: User?, var uploads: List<OCUpload>) : WorkerState()
16+
data class DownloadFinished(var currentFile: OCFile?) : WorkerState()
17+
data class DownloadStarted(var user: User?, var currentDownload: DownloadFileOperation?) : WorkerState()
18+
data class UploadFinished(var currentFile: OCFile?) : WorkerState()
19+
data class UploadStarted(var user: User?, var uploads: List<OCUpload>) : WorkerState()
1920
}

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import android.os.IBinder;
3636
import android.os.Looper;
3737
import android.os.Parcelable;
38-
import android.provider.Settings;
3938
import android.text.TextUtils;
4039
import android.view.Menu;
4140
import android.view.MenuInflater;
@@ -98,7 +97,6 @@
9897
import com.owncloud.android.ui.asynctasks.FetchRemoteFileTask;
9998
import com.owncloud.android.ui.asynctasks.GetRemoteFileTask;
10099
import com.owncloud.android.ui.dialog.SendShareDialog;
101-
import com.owncloud.android.ui.dialog.setupEncryption.SetupEncryptionDialogFragment;
102100
import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
103101
import com.owncloud.android.ui.dialog.StoragePermissionDialogFragment;
104102
import com.owncloud.android.ui.events.SearchEvent;
@@ -158,7 +156,6 @@
158156
import kotlin.Unit;
159157

160158
import static com.owncloud.android.datamodel.OCFile.PATH_SEPARATOR;
161-
import static com.owncloud.android.ui.dialog.setupEncryption.SetupEncryptionDialogFragment.SETUP_ENCRYPTION_DIALOG_TAG;
162159
import static com.owncloud.android.utils.PermissionUtil.PERMISSION_CHOICE_DIALOG_TAG;
163160

164161
/**
@@ -1593,11 +1590,13 @@ public boolean isDrawerIndicatorAvailable() {
15931590

15941591
private void observeWorkerState() {
15951592
WorkerStateLiveData.Companion.instance().observe(this, state -> {
1596-
if (state instanceof WorkerState.Download) {
1593+
if (state instanceof WorkerState.DownloadStarted) {
15971594
Log_OC.d(TAG, "Download worker started");
15981595
handleDownloadWorkerState();
1599-
} else if (state instanceof WorkerState.Idle) {
1596+
} else if (state instanceof WorkerState.DownloadFinished) {
16001597
fileDownloadProgressListener = null;
1598+
} else if (state instanceof WorkerState.UploadFinished) {
1599+
refreshList();
16011600
}
16021601
});
16031602
}

app/src/main/java/com/owncloud/android/ui/activity/ManageAccountsActivity.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import android.accounts.AccountManagerFuture;
1717
import android.accounts.OperationCanceledException;
1818
import android.content.Intent;
19-
import android.content.ServiceConnection;
2019
import android.os.Bundle;
2120
import android.os.Handler;
2221
import android.view.MenuItem;
@@ -460,10 +459,10 @@ public void onOptionItemClicked(User user, View view) {
460459

461460
private void observeWorkerState() {
462461
WorkerStateLiveData.Companion.instance().observe(this, state -> {
463-
if (state instanceof WorkerState.Download) {
462+
if (state instanceof WorkerState.DownloadStarted) {
464463
Log_OC.d(TAG, "Download worker started");
465-
workerAccountName = ((WorkerState.Download) state).getUser().getAccountName();
466-
workerCurrentDownload = ((WorkerState.Download) state).getCurrentDownload();
464+
workerAccountName = ((WorkerState.DownloadStarted) state).getUser().getAccountName();
465+
workerCurrentDownload = ((WorkerState.DownloadStarted) state).getCurrentDownload();
467466
}
468467
});
469468
}

app/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.owncloud.android.R;
3535
import com.owncloud.android.databinding.UploadListLayoutBinding;
3636
import com.owncloud.android.datamodel.OCFile;
37-
import com.owncloud.android.datamodel.SyncedFolder;
3837
import com.owncloud.android.datamodel.SyncedFolderProvider;
3938
import com.owncloud.android.datamodel.UploadsStorageManager;
4039
import com.owncloud.android.lib.common.operations.RemoteOperation;
@@ -140,7 +139,7 @@ protected void onCreate(Bundle savedInstanceState) {
140139

141140
private void observeWorkerState() {
142141
WorkerStateLiveData.Companion.instance().observe(this, state -> {
143-
if (state instanceof WorkerState.Upload) {
142+
if (state instanceof WorkerState.UploadStarted) {
144143
Log_OC.d(TAG, "Upload worker started");
145144
handleUploadWorkerState();
146145
}

app/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
279279
private fun observeWorkerState() {
280280
WorkerStateLiveData.instance().observe(this) { state: WorkerState? ->
281281
when (state) {
282-
is WorkerState.Download -> {
282+
is WorkerState.DownloadStarted -> {
283283
Log_OC.d(TAG, "Download worker started")
284284
isDownloadWorkStarted = true
285285

@@ -288,7 +288,7 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
288288
}
289289
}
290290

291-
is WorkerState.Idle -> {
291+
is WorkerState.DownloadFinished -> {
292292
Log_OC.d(TAG, "Download worker stopped")
293293
isDownloadWorkStarted = false
294294

@@ -298,7 +298,7 @@ class PreviewImageActivity : FileActivity(), FileFragment.ContainerActivity, OnR
298298
}
299299

300300
else -> {
301-
Log_OC.d(TAG, "Download worker stopped")
301+
Log_OC.d(TAG, "Worker stopped")
302302
isDownloadWorkStarted = false
303303
}
304304
}

0 commit comments

Comments
 (0)