diff --git a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt b/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt index e99ec721c..c8efea780 100644 --- a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt +++ b/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt @@ -61,6 +61,7 @@ import com.nextcloud.talk.dagger.modules.ViewModelModule import com.nextcloud.talk.jobs.AccountRemovalWorker import com.nextcloud.talk.jobs.CapabilitiesWorker import com.nextcloud.talk.jobs.SignalingSettingsWorker +import com.nextcloud.talk.jobs.WebsocketConnectionsWorker import com.nextcloud.talk.ui.theme.ThemeModule import com.nextcloud.talk.utils.ClosedInterfaceImpl import com.nextcloud.talk.utils.DeviceUtils @@ -177,18 +178,22 @@ class NextcloudTalkApplication : MultiDexApplication(), LifecycleObserver { DeviceUtils.ignoreSpecialBatteryFeatures() val accountRemovalWork = OneTimeWorkRequest.Builder(AccountRemovalWorker::class.java).build() + val capabilitiesUpdateWork = OneTimeWorkRequest.Builder(CapabilitiesWorker::class.java).build() + val signalingSettingsWork = OneTimeWorkRequest.Builder(SignalingSettingsWorker::class.java).build() + val websocketConnectionsWorker = OneTimeWorkRequest.Builder(WebsocketConnectionsWorker::class.java).build() + + WorkManager.getInstance(applicationContext) + .beginWith(accountRemovalWork) + .then(capabilitiesUpdateWork) + .then(signalingSettingsWork) + .then(websocketConnectionsWorker) + .enqueue() + val periodicCapabilitiesUpdateWork = PeriodicWorkRequest.Builder( CapabilitiesWorker::class.java, HALF_DAY, TimeUnit.HOURS ).build() - - val capabilitiesUpdateWork = OneTimeWorkRequest.Builder(CapabilitiesWorker::class.java).build() - val signalingSettingsWork = OneTimeWorkRequest.Builder(SignalingSettingsWorker::class.java).build() - - WorkManager.getInstance(applicationContext).enqueue(accountRemovalWork) - WorkManager.getInstance(applicationContext).enqueue(capabilitiesUpdateWork) - WorkManager.getInstance(applicationContext).enqueue(signalingSettingsWork) WorkManager.getInstance(applicationContext).enqueueUniquePeriodicWork( "DailyCapabilitiesUpdateWork", ExistingPeriodicWorkPolicy.REPLACE, diff --git a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt index df017ac8c..f275b6fba 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt @@ -48,6 +48,7 @@ import com.nextcloud.talk.events.EventStatus import com.nextcloud.talk.jobs.CapabilitiesWorker import com.nextcloud.talk.jobs.PushRegistrationWorker import com.nextcloud.talk.jobs.SignalingSettingsWorker +import com.nextcloud.talk.jobs.WebsocketConnectionsWorker import com.nextcloud.talk.models.json.capabilities.Capabilities import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall import com.nextcloud.talk.models.json.generic.Status @@ -434,11 +435,15 @@ class AccountVerificationController(args: Bundle? = null) : Data.Builder() .putLong(KEY_INTERNAL_USER_ID, internalAccountId) .build() - val signalingSettings = - OneTimeWorkRequest.Builder(SignalingSettingsWorker::class.java) - .setInputData(userData) - .build() - WorkManager.getInstance().enqueue(signalingSettings) + val signalingSettings = OneTimeWorkRequest.Builder(SignalingSettingsWorker::class.java) + .setInputData(userData) + .build() + val websocketConnectionsWorker = OneTimeWorkRequest.Builder(WebsocketConnectionsWorker::class.java).build() + + WorkManager.getInstance(applicationContext!!) + .beginWith(signalingSettings) + .then(websocketConnectionsWorker) + .enqueue() } private fun proceedWithLogin() { diff --git a/app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java b/app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java index dc8546b89..a0e4e7d07 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java +++ b/app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java @@ -42,8 +42,6 @@ import javax.inject.Inject; import androidx.annotation.NonNull; import androidx.work.Data; -import androidx.work.OneTimeWorkRequest; -import androidx.work.WorkManager; import androidx.work.Worker; import androidx.work.WorkerParameters; import autodagger.AutoInjector; @@ -159,11 +157,6 @@ public class SignalingSettingsWorker extends Worker { }); } - OneTimeWorkRequest websocketConnectionsWorker = new OneTimeWorkRequest - .Builder(WebsocketConnectionsWorker.class) - .build(); - WorkManager.getInstance().enqueue(websocketConnectionsWorker); - return Result.success(); } }