Browse Source

Merge branch 'develop' of https://github.com/swict/LifeplusAndroid into develop

Hasemi 6 years ago
parent
commit
74e75381c7

+ 14 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/bean/api/EventAnswerResultBean.java

@@ -18,8 +18,22 @@ import com.google.gson.annotations.SerializedName;
 public class EventAnswerResultBean extends LifeplusAPIBean {
   @SerializedName("evntPtcpNo")
   private String eventResponseNo;
+  @SerializedName("coin")   // fixme 파라메터 명은 다를 수 있음
+  private String givenCoin; // 이벤트 참여하고 지급된 코인 값
 
   public String getEventResponseNo() {
     return eventResponseNo;
   }
+
+  public void setEventResponseNo(String eventResponseNo) {
+    this.eventResponseNo = eventResponseNo;
+  }
+
+  public String getGivenCoin() {
+    return givenCoin;
+  }
+
+  public void setGivenCoin(String givenCoin) {
+    this.givenCoin = givenCoin;
+  }
 }

+ 6 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/CoinModel.java

@@ -29,6 +29,12 @@ public abstract class CoinModel extends Model {
     this.givenCoin = givenCoin;
   }
 
+  public void setGivenCoin(String givenCoin) {
+    if (null != givenCoin) {
+      this.givenCoin = Integer.parseInt(givenCoin);
+    }
+  }
+
   /**
    * 지급된 코인 값
    *

+ 5 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/question/EventQuestionModel.java

@@ -26,7 +26,7 @@ import kr.co.zumo.app.lifeplus.bean.api.EventPolicyRequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.EventQuestionBean;
 import kr.co.zumo.app.lifeplus.bean.api.EventUploadImageResultBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
-import kr.co.zumo.app.lifeplus.model.Model;
+import kr.co.zumo.app.lifeplus.model.CoinModel;
 import kr.co.zumo.app.lifeplus.model.module.APIError;
 import kr.co.zumo.app.lifeplus.model.module.APIEventAnswerModule;
 import kr.co.zumo.app.lifeplus.model.module.APIEventPolicyModule;
@@ -48,7 +48,7 @@ import okhttp3.RequestBody;
  * @history 하세미   [2019-01-09]   [최초 작성]
  * @since 2019-01-09
  */
-public class EventQuestionModel extends Model implements IUriListProvider {
+public class EventQuestionModel extends CoinModel implements IUriListProvider {
 
   private EventDetailBean eventDetailBean;
   private Disposable disposableImage;
@@ -148,7 +148,7 @@ public class EventQuestionModel extends Model implements IUriListProvider {
       for (EventPolicyBean bean : list) {
         requestBean.getRequestBeans().add(new EventPolicyRequestBean(bean.getPolicyNo(), APIData.valueOf(bean.isChecked())));
       }
-      disposableAnswer = new APIEventPolicyModule().call(requestBean, new APIModuleListener<LifeplusAPIBean>() {
+      disposableAnswer = new APIEventPolicyModule().call(requestBean, new APIModuleListener<LifeplusAPIBean>(waiterCaller) {
         @Override
         public void onApiSuccess(LifeplusAPIBean resultBean) {
           submitInternal();
@@ -217,6 +217,8 @@ public class EventQuestionModel extends Model implements IUriListProvider {
       @Override
       public void onApiSuccess(EventAnswerResultBean resultBean) {
         eventAnswerResultBean = resultBean;
+        setGivenCoin(eventAnswerResultBean.getGivenCoin());
+        
         onResult(new Event.Builder(Event.SUCCESS).integer(Event.LOADED_EVENT_ANSWER).build());
       }
 

+ 14 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/question/EventQuestionPresenter.java

@@ -18,6 +18,7 @@ import kr.co.zumo.app.lifeplus.view.dialog.ICustomConfirmListener;
 import kr.co.zumo.app.lifeplus.view.dialog.ICustomDialogListener;
 import kr.co.zumo.app.lifeplus.view.dialog.PolicyDialog;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
+import kr.co.zumo.app.lifeplus.view.screen.common.CoinPopupDriver;
 import kr.co.zumo.app.lifeplus.view.screen.event.IEventQuestionView;
 
 /**
@@ -178,11 +179,23 @@ public class EventQuestionPresenter extends Presenter<EventQuestionModel, IEvent
       case Event.SUCCESS:
 
         view.setDisabledAll();
-        ToastProvider.showSimple(R.string.event_participation_completed);
 
         // 이전 화면으로 돌아갈 경우 참여 여부를 확인 시켜줌
         model.setResultPackaging(model.getEventAnswerResultBean().getEventResponseNo());
 
+        if (model.getPrevCoin() > 0) {
+          // 보유 코인 우선 로딩 -> 코인 적립을 먼저하면 이전 값과 더한 값의 차이가 있을 수 있다.
+          model.getCoinAsync(e -> {
+            Log.i("APP# EventQuestionPresenter | onResult", "|" + " current coin: " + e.getInteger());
+            new CoinPopupDriver(getFragmentManager(), () -> {}, () -> {})
+              .show(model.getPrevCoin(), model.getGivenCoin(), R.string.coin_share_contents);
+
+            model.mergeCoin();
+          });
+        }
+        else {
+          ToastProvider.showSimple(R.string.event_participation_completed);
+        }
         break;
       case Event.ERROR:
         showErrorDialog(event.getString());

+ 2 - 2
app/src/sandbox/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPIService.java

@@ -404,7 +404,7 @@ public class LifeplusAPIService implements LifeplusAPI {
   @Override
   public Single<EventAnswerResultBean> setEventAnswer(@Body EventAnswerRequestBean bean) {
     return Single.fromCallable(() -> {
-      String result = "{\"evntPtcpNo\":\"010101010101010\",\"rtn_message\":\"성공\",\"sp_rtn\":0}";
+      String result = "{\"evntPtcpNo\":\"010101010101010\",\"rtn_message\":\"성공\",\"sp_rtn\":0,\"coin\":100}";
 
       return new Gson().fromJson(result, EventAnswerResultBean.class);
     });
@@ -422,7 +422,7 @@ public class LifeplusAPIService implements LifeplusAPI {
   @Override
   public Single<EventUploadImageResultBean> uploadImage(RequestBody itemNo, List<MultipartBody.Part> files) {
     return Single.fromCallable(() -> {
-      String result = "{\"rtn_message\":\"성공\",\"fileUrlList\":[\"/2019/201901210000044921/201901210000044921/answ_52e172a7d351420b8011c7bee43ab001.png\",\"/2019/201901210000044921/201901210000044921/answ_971778084ce140919a62327d174a2b0d.jpeg\",\"/2019/201901210000044921/201901210000044921/answ_cc89edc9be93486d98b85b61903d8f41.jpeg\"],\"sp_rtn\":0}";
+      String result = "{\"rtn_message\":\"성공\",\"fileUrlList\":[\"/2019/201901210000044921/201901210000044921/answ_971778084ce140919a62327d174a2b0d.jpeg\"],\"sp_rtn\":0}";
 
       return new Gson().fromJson(result, EventUploadImageResultBean.class);
     });