|
|
@@ -3,6 +3,8 @@
|
|
|
*/
|
|
|
package kr.co.zumo.app.lifeplus.view.screen.setting.code;
|
|
|
|
|
|
+import android.util.Log;
|
|
|
+
|
|
|
import kr.co.zumo.app.R;
|
|
|
import kr.co.zumo.app.lifeplus.model.verify.Verifier;
|
|
|
import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
|
|
|
@@ -11,6 +13,7 @@ import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
import kr.co.zumo.app.lifeplus.view.DoubleChecker;
|
|
|
import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
|
|
|
+import kr.co.zumo.app.lifeplus.view.screen.common.CoinPopupDriver;
|
|
|
|
|
|
/**
|
|
|
* SettingCodePresenter
|
|
|
@@ -37,6 +40,7 @@ public class SettingCodePresenter extends Presenter<SettingCodeModel, ISettingCo
|
|
|
@Override
|
|
|
protected void createViewInternal() {
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
protected void destroyInternal() {
|
|
|
model.stopLoading();
|
|
|
@@ -94,6 +98,13 @@ public class SettingCodePresenter extends Presenter<SettingCodeModel, ISettingCo
|
|
|
doubleChecker.checkSecond();
|
|
|
}
|
|
|
else if (resultIndex == Event.CODE_REGISTER) {
|
|
|
+ // 코드 등록 완료
|
|
|
+ // 지급된 코인 있으면 팝업 표시
|
|
|
+ // 보유 코인 우선 로딩 -> 코인 적립을 먼저하면 이전 값과 더한 값의 차이가 있을 수 있다.
|
|
|
+ model.getCoinAsync(e -> {
|
|
|
+ Log.i("APP# ContentsBasePresenter | onResult", "|" + " current coin: " + e.getInteger());
|
|
|
+ showCoin();
|
|
|
+ });
|
|
|
onBackPressed();
|
|
|
}
|
|
|
else if (resultIndex == Event.CODE_INVALID_SPECIAL_CODE) {
|
|
|
@@ -111,6 +122,33 @@ public class SettingCodePresenter extends Presenter<SettingCodeModel, ISettingCo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private void showCoin() {
|
|
|
+ boolean[] codeResult = model.getCodeResult();
|
|
|
+
|
|
|
+ // 스페셜 코드우선 표시
|
|
|
+ if (codeResult[SettingCodeModel.CODE_SPECIAL_RESULT_INDEX]) {
|
|
|
+
|
|
|
+ new CoinPopupDriver(getFragmentManager(), evt -> {
|
|
|
+ // 완료 뒤 추천 코드 있으면 표시
|
|
|
+ if (codeResult[SettingCodeModel.CODE_RECOMMEND_RESULT_INDEX]) {
|
|
|
+ new CoinPopupDriver(getFragmentManager(), evt2 -> {
|
|
|
+ // nothing
|
|
|
+ }).show(Integer.parseInt(model.getCoin()), model.getGivenCoin(), R.string.coin_recommend_code_completed);
|
|
|
+ }
|
|
|
+ }).show(Integer.parseInt(model.getCoin()), model.getGivenCoin(), R.string.coin_special_code_completed);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (codeResult[SettingCodeModel.CODE_RECOMMEND_RESULT_INDEX]) {
|
|
|
+ // 추천 코드 있으면 표시
|
|
|
+ new CoinPopupDriver(getFragmentManager(), evt -> {
|
|
|
+ // nothing
|
|
|
+ }).show(Integer.parseInt(model.getCoin()), model.getGivenCoin(), R.string.coin_recommend_code_completed);
|
|
|
+ }
|
|
|
+
|
|
|
+ model.mergeCoin();
|
|
|
+ }
|
|
|
+
|
|
|
private void onInvalidCode(int resultIndex) {
|
|
|
if (resultIndex == Event.CODE_INVALID_SPECIAL_CODE) {
|
|
|
view.setValidationSpecialCode(ResourceUtil.getString(R.string.special_code_error));
|