Browse Source

[문의][New] 푸시 알림 받기 변경 적용은 '등록' 버튼 눌렀을 때

hyodong.min 6 years ago
parent
commit
486a4e6f67

+ 19 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/inquiry/InquiryWriteModel.java

@@ -216,7 +216,7 @@ public class InquiryWriteModel extends Model {
     return SuperModel.getInstance().getPreferences().isPushEventEnabled();
   }
 
-  public void setPushEnabled(boolean isEnabled) {
+  private void setPushEnabled(boolean isEnabled) {
     setPushEnabledInternal(isEnabled);
 
     MemberPushAgreeRequestBean bean = getPushBean("", APIData.valueOf(isEnabled), "");
@@ -246,4 +246,22 @@ public class InquiryWriteModel extends Model {
     bean.setLocationServiceEnabled(location);
     return bean;
   }
+
+  private boolean isUiPushEnabled = false;
+
+  public void setUiPushEnabled(boolean checked) {
+    isUiPushEnabled = checked;
+  }
+
+  public boolean isUiPushEnabled() {
+    return isUiPushEnabled;
+  }
+
+  public boolean hasPushChanged() {
+    return isPushEnabled() != isUiPushEnabled();
+  }
+
+  public void updatePushChanged() {
+    setPushEnabled(isUiPushEnabled());
+  }
 }

+ 14 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/inquiry/InquiryWritePresenter.java

@@ -68,7 +68,13 @@ public class InquiryWritePresenter extends Presenter<InquiryWriteModel, IInquiry
     switch (event.getEventId()) {
       case Event.CONFIRM:
         // 등록
-        registerQuestion();
+        if (model.hasPushChanged()) {
+          // 푸시 변동 있음.
+          model.updatePushChanged();
+        }
+        else {
+          registerQuestion();
+        }
 
         break;
       case Event.CANCEL:
@@ -93,9 +99,11 @@ public class InquiryWritePresenter extends Presenter<InquiryWriteModel, IInquiry
     switch (event.getEventId()) {
       case Event.RESULT:
         if (index == SettingViewHolder.SWITCH_PUSH) {
-          {}// 푸쉬
+          // 푸쉬
           // 설정에 변동 사항을 알리기 위해 저장
           model.setResultPackaging(new MemberPushAgreeResultBean(model.isPushEnabled()));
+          // 등록 계속 진행
+          registerQuestion();
         }
         else {
           // 등록 완료
@@ -129,9 +137,9 @@ public class InquiryWritePresenter extends Presenter<InquiryWriteModel, IInquiry
     }
     else {
       view.setNoticeVisible(true);
-      // 비활성일 경우 활성화 시켜준다.
-      model.setPushEnabled(true);
-      view.setNoticeChecked(true);
+      // 비활성일 경우 활성화 시켜준다. (UI만 반영하고 '등록' 시점에 data 적용)
+      model.setUiPushEnabled(true);
+      view.setNoticeChecked(model.isUiPushEnabled());
     }
   }
 
@@ -171,7 +179,7 @@ public class InquiryWritePresenter extends Presenter<InquiryWriteModel, IInquiry
    * @param checked
    */
   public void onViewPushChecked(boolean checked) {
-    model.setPushEnabled(checked);
+    model.setUiPushEnabled(checked);
   }
 
   private void updateCurrentLength() {