mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 14:27:24 +00:00
Improve WorkManager implementation
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
f3dd41c207
commit
b55a57ceab
@ -52,16 +52,14 @@ import org.webrtc.voiceengine.WebRtcAudioManager;
|
|||||||
import org.webrtc.voiceengine.WebRtcAudioUtils;
|
import org.webrtc.voiceengine.WebRtcAudioUtils;
|
||||||
|
|
||||||
import java.security.GeneralSecurityException;
|
import java.security.GeneralSecurityException;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import androidx.work.ExistingPeriodicWorkPolicy;
|
||||||
import androidx.work.OneTimeWorkRequest;
|
import androidx.work.OneTimeWorkRequest;
|
||||||
import androidx.work.PeriodicWorkRequest;
|
import androidx.work.PeriodicWorkRequest;
|
||||||
import androidx.work.WorkManager;
|
import androidx.work.WorkManager;
|
||||||
import androidx.work.WorkRequest;
|
|
||||||
import autodagger.AutoComponent;
|
import autodagger.AutoComponent;
|
||||||
import autodagger.AutoInjector;
|
import autodagger.AutoInjector;
|
||||||
|
|
||||||
@ -143,17 +141,14 @@ public class NextcloudTalkApplication extends MultiDexApplication implements Lif
|
|||||||
|
|
||||||
OneTimeWorkRequest pushRegistrationWork = new OneTimeWorkRequest.Builder(PushRegistrationWorker.class).build();
|
OneTimeWorkRequest pushRegistrationWork = new OneTimeWorkRequest.Builder(PushRegistrationWorker.class).build();
|
||||||
OneTimeWorkRequest accountRemovalWork = new OneTimeWorkRequest.Builder(AccountRemovalWorker.class).build();
|
OneTimeWorkRequest accountRemovalWork = new OneTimeWorkRequest.Builder(AccountRemovalWorker.class).build();
|
||||||
OneTimeWorkRequest capabilitiesUpdateWork = new OneTimeWorkRequest.Builder(CapabilitiesWorker.class).build();
|
PeriodicWorkRequest periodicCapabilitiesUpdateWork = new PeriodicWorkRequest.Builder(CapabilitiesWorker.class,
|
||||||
PeriodicWorkRequest periodicCapabilitiesWork = new PeriodicWorkRequest.Builder(CapabilitiesWorker.class, 1,
|
1, TimeUnit.DAYS).build();
|
||||||
TimeUnit.DAYS).build();
|
|
||||||
|
|
||||||
List<WorkRequest> workRequests = new ArrayList<>();
|
WorkManager.getInstance().enqueue(pushRegistrationWork);
|
||||||
workRequests.add(pushRegistrationWork);
|
WorkManager.getInstance().enqueue(accountRemovalWork);
|
||||||
workRequests.add(accountRemovalWork);
|
WorkManager.getInstance().enqueueUniquePeriodicWork("DailyCapabilitiesUpdateWork",
|
||||||
workRequests.add(capabilitiesUpdateWork);
|
ExistingPeriodicWorkPolicy.REPLACE, periodicCapabilitiesUpdateWork);
|
||||||
workRequests.add(periodicCapabilitiesWork);
|
|
||||||
|
|
||||||
WorkManager.getInstance().enqueue(workRequests);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -89,7 +89,6 @@ public class AccountRemovalWorker extends Worker {
|
|||||||
|
|
||||||
ncApi.unregisterDeviceForNotificationsWithNextcloud(ApiUtils.getCredentials(userEntity.getUsername(),
|
ncApi.unregisterDeviceForNotificationsWithNextcloud(ApiUtils.getCredentials(userEntity.getUsername(),
|
||||||
userEntity.getToken()), ApiUtils.getUrlNextcloudPush(userEntity.getBaseUrl()))
|
userEntity.getToken()), ApiUtils.getUrlNextcloudPush(userEntity.getBaseUrl()))
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new Observer<GenericOverall>() {
|
.subscribe(new Observer<GenericOverall>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@ -109,7 +108,6 @@ public class AccountRemovalWorker extends Worker {
|
|||||||
ncApi.unregisterDeviceForNotificationsWithProxy
|
ncApi.unregisterDeviceForNotificationsWithProxy
|
||||||
(ApiUtils.getCredentials(userEntity.getUsername(),
|
(ApiUtils.getCredentials(userEntity.getUsername(),
|
||||||
userEntity.getToken()), ApiUtils.getUrlPushProxy(), queryMap)
|
userEntity.getToken()), ApiUtils.getUrlPushProxy(), queryMap)
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new Observer<Void>() {
|
.subscribe(new Observer<Void>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@ -178,7 +176,6 @@ public class AccountRemovalWorker extends Worker {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
userUtils.deleteUser(userEntity.getId())
|
userUtils.deleteUser(userEntity.getId())
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new CompletableObserver() {
|
.subscribe(new CompletableObserver() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@ -199,7 +196,6 @@ public class AccountRemovalWorker extends Worker {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.d(TAG, "Something went wrong while removing job at parsing PushConfigurationState");
|
Log.d(TAG, "Something went wrong while removing job at parsing PushConfigurationState");
|
||||||
userUtils.deleteUser(userEntity.getId())
|
userUtils.deleteUser(userEntity.getId())
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new CompletableObserver() {
|
.subscribe(new CompletableObserver() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
|
@ -132,7 +132,6 @@ public class CapabilitiesWorker extends Worker {
|
|||||||
ncApi.getCapabilities(ApiUtils.getCredentials(internalUserEntity.getUsername(),
|
ncApi.getCapabilities(ApiUtils.getCredentials(internalUserEntity.getUsername(),
|
||||||
internalUserEntity.getToken()), ApiUtils.getUrlForCapabilities(internalUserEntity.getBaseUrl()))
|
internalUserEntity.getToken()), ApiUtils.getUrlForCapabilities(internalUserEntity.getBaseUrl()))
|
||||||
.retry(3)
|
.retry(3)
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new Observer<CapabilitiesOverall>() {
|
.subscribe(new Observer<CapabilitiesOverall>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
|
@ -82,7 +82,6 @@ import androidx.work.Worker;
|
|||||||
import autodagger.AutoInjector;
|
import autodagger.AutoInjector;
|
||||||
import io.reactivex.Observer;
|
import io.reactivex.Observer;
|
||||||
import io.reactivex.disposables.Disposable;
|
import io.reactivex.disposables.Disposable;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication.class)
|
@AutoInjector(NextcloudTalkApplication.class)
|
||||||
public class NotificationWorker extends Worker {
|
public class NotificationWorker extends Worker {
|
||||||
@ -107,7 +106,6 @@ public class NotificationWorker extends Worker {
|
|||||||
ncApi.getRoom(ApiUtils.getCredentials(userEntity.getUserId(),
|
ncApi.getRoom(ApiUtils.getCredentials(userEntity.getUserId(),
|
||||||
userEntity.getToken()), ApiUtils.getRoom(userEntity.getBaseUrl(),
|
userEntity.getToken()), ApiUtils.getRoom(userEntity.getBaseUrl(),
|
||||||
intent.getExtras().getString(BundleKeys.KEY_ROOM_TOKEN)))
|
intent.getExtras().getString(BundleKeys.KEY_ROOM_TOKEN)))
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new Observer<RoomOverall>() {
|
.subscribe(new Observer<RoomOverall>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@ -147,7 +145,6 @@ public class NotificationWorker extends Worker {
|
|||||||
ncApi.getNotification(ApiUtils.getCredentials(userEntity.getUserId(),
|
ncApi.getNotification(ApiUtils.getCredentials(userEntity.getUserId(),
|
||||||
userEntity.getToken()), ApiUtils.getUrlForNotificationWithId(userEntity.getBaseUrl(),
|
userEntity.getToken()), ApiUtils.getUrlForNotificationWithId(userEntity.getBaseUrl(),
|
||||||
Long.toString(decryptedPushMessage.getNotificationId())))
|
Long.toString(decryptedPushMessage.getNotificationId())))
|
||||||
.subscribeOn(Schedulers.newThread())
|
|
||||||
.subscribe(new Observer<NotificationOverall>() {
|
.subscribe(new Observer<NotificationOverall>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
|
Loading…
Reference in New Issue
Block a user