Ver código fonte

Make signaling db updates use a subscribing consumer

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 3 anos atrás
pai
commit
285b9cff03

+ 27 - 11
app/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java

@@ -48,6 +48,7 @@ import androidx.work.Worker;
 import androidx.work.WorkerParameters;
 import autodagger.AutoInjector;
 import io.reactivex.Observer;
+import io.reactivex.SingleObserver;
 import io.reactivex.disposables.Disposable;
 
 @AutoInjector(NextcloudTalkApplication.class)
@@ -114,17 +115,32 @@ public class SignalingSettingsWorker extends Worker {
                                                                                    .getExternalSignalingTicket());
                         }
 
-                        int rows = userManager.saveUser(user).blockingGet();
-
-                        if (rows > 0) {
-                            eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user),
-                                                          EventStatus.EventType.SIGNALING_SETTINGS,
-                                                          true));
-                        } else {
-                            eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user),
-                                                          EventStatus.EventType.SIGNALING_SETTINGS,
-                                                          false));
-                        }
+                        userManager.saveUser(user).subscribe(new SingleObserver<Integer>() {
+                            @Override
+                            public void onSubscribe(Disposable d) {
+                                // unused atm
+                            }
+
+                            @Override
+                            public void onSuccess(Integer rows) {
+                                if (rows > 0) {
+                                    eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user),
+                                                                  EventStatus.EventType.SIGNALING_SETTINGS,
+                                                                  true));
+                                } else {
+                                    eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user),
+                                                                  EventStatus.EventType.SIGNALING_SETTINGS,
+                                                                  false));
+                                }
+                            }
+
+                            @Override
+                            public void onError(Throwable e) {
+                                eventBus.post(new EventStatus(UserIdUtils.INSTANCE.getIdForUser(user),
+                                                              EventStatus.EventType.SIGNALING_SETTINGS,
+                                                              false));
+                            }
+                        });
                     }
 
                     @Override