浏览代码

[주모][New] 로그아웃 처리: 다중 클릭 처리

hyodong.min 6 年之前
父节点
当前提交
35cd2213ac

+ 4 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/helper/FirebaseMessagingHelper.java

@@ -84,8 +84,8 @@ public class FirebaseMessagingHelper {
    *
    * @param token
    */
-  public void sendRegistrationToServer(String token) {
-    sendRegistrationToServer(token, () -> {}, () -> {});
+  public Disposable sendRegistrationToServer(String token) {
+    return sendRegistrationToServer(token, () -> {}, () -> {});
   }
 
   /**
@@ -95,7 +95,7 @@ public class FirebaseMessagingHelper {
    * @param successRunnable
    * @param failRunnable
    */
-  public void sendRegistrationToServer(String token, Runnable successRunnable, Runnable failRunnable) {
+  public Disposable sendRegistrationToServer(String token, Runnable successRunnable, Runnable failRunnable) {
     disposable = new LifeplusAPIRepository().saveFcmToken(new ParameterMapper<TokenRequestBean>().map(new BasicParamProvider(), new TokenRequestBean(token)))
       .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
       .subscribe(resultBean -> {
@@ -113,6 +113,7 @@ public class FirebaseMessagingHelper {
         ToastProvider.showNative("token saving error");
         failRunnable.run();
       });
+    return disposable;
   }
 
   /**

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APILogoutModule.java

@@ -30,6 +30,9 @@ public class APILogoutModule extends LifeplusAPIModule<RequestBean, LifeplusAPIB
 
     return Single.fromObservable(
       Observable.create(emitter -> {
+
+        emitter.setCancellable(() -> FirebaseMessagingHelper.getInstance().dispose());
+
         FirebaseMessagingHelper.getInstance().sendRegistrationToServer("", () -> {
           // token removed
           AppInitializer.logout();
@@ -43,6 +46,7 @@ public class APILogoutModule extends LifeplusAPIModule<RequestBean, LifeplusAPIB
             emitter.onError(new Exception());
           }
         });
+
       })
     );