|
|
@@ -18,6 +18,8 @@ import kr.co.zumo.app.lifeplus.bean.BucketDeliveryBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.ContentsWebDeliveryBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.UtilityActivityBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.APIBean;
|
|
|
+import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
|
|
|
import kr.co.zumo.app.lifeplus.bean.api.LinkBean;
|
|
|
import kr.co.zumo.app.lifeplus.helper.Helper;
|
|
|
@@ -25,6 +27,8 @@ import kr.co.zumo.app.lifeplus.helper.IHelperProvider;
|
|
|
import kr.co.zumo.app.lifeplus.helper.NavigationBar;
|
|
|
import kr.co.zumo.app.lifeplus.model.IModelResult;
|
|
|
import kr.co.zumo.app.lifeplus.model.Model;
|
|
|
+import kr.co.zumo.app.lifeplus.model.module.APIModuleHelper;
|
|
|
+import kr.co.zumo.app.lifeplus.model.module.IModuleEmergencyHandler;
|
|
|
import kr.co.zumo.app.lifeplus.network.INetworkReceiverListener;
|
|
|
import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
|
|
|
import kr.co.zumo.app.lifeplus.supervisor.screen.Screen;
|
|
|
@@ -33,12 +37,12 @@ import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
import kr.co.zumo.app.lifeplus.view.IEventListener;
|
|
|
import kr.co.zumo.app.lifeplus.view.IView;
|
|
|
import kr.co.zumo.app.lifeplus.view.IWaiterCallable;
|
|
|
+import kr.co.zumo.app.lifeplus.view.animation.Loading;
|
|
|
import kr.co.zumo.app.lifeplus.view.command.Command;
|
|
|
import kr.co.zumo.app.lifeplus.view.command.EmailSendingCommand;
|
|
|
import kr.co.zumo.app.lifeplus.view.command.ExitCommand;
|
|
|
import kr.co.zumo.app.lifeplus.view.command.FinishActivityCommand;
|
|
|
import kr.co.zumo.app.lifeplus.view.command.ScreenCommand;
|
|
|
-import kr.co.zumo.app.lifeplus.view.animation.Loading;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.AlertDialog;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogBase;
|
|
|
@@ -59,7 +63,7 @@ import kr.co.zumo.app.lifeplus.view.screen.main.SystemPopupModelHelper;
|
|
|
* @history 민효동 [2018. 9. 21.] [최초 작성]
|
|
|
* @since 2018. 9. 21.
|
|
|
*/
|
|
|
-public abstract class Presenter<M extends Model, V extends IView> implements ILifeCycle, INetworkReceiverListener, IModelResult, IEventListener, IHelperProvider, IWaiterCallable {
|
|
|
+public abstract class Presenter<M extends Model, V extends IView> implements ILifeCycle, INetworkReceiverListener, IModelResult, IEventListener, IHelperProvider, IWaiterCallable, IModuleEmergencyHandler {
|
|
|
|
|
|
protected M model;
|
|
|
protected V view;
|
|
|
@@ -81,6 +85,8 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
|
|
|
this.model.setNetworkListener(this);
|
|
|
this.model.setHelperProvider(this);
|
|
|
this.model.setWaiterCaller(this);
|
|
|
+
|
|
|
+ APIModuleHelper.setEmergencyHandler(this);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -489,6 +495,42 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
|
|
|
.show();
|
|
|
}
|
|
|
|
|
|
+ /***********************************
|
|
|
+ * Popup - multi device
|
|
|
+ ***********************************/
|
|
|
+ protected void showPopupMultiDevice() {
|
|
|
+ new DialogBuilder<ConfirmDialog, ICustomConfirmListener>(getFragmentManager(), DialogID.CONFIRM)
|
|
|
+ .listener(new ICustomConfirmListener<ConfirmDialog>() {
|
|
|
+ @Override
|
|
|
+ public void onPositiveResult(ConfirmDialog dialog, Event event) {
|
|
|
+ dialog.dispose();
|
|
|
+ // 잠금 화면으로 이동
|
|
|
+ go(ScreenID.MAIN_PIN_UNLOCK);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNegativeResult(ConfirmDialog dialog, Event event) {
|
|
|
+ dialog.dispose();
|
|
|
+ // 앱 종료
|
|
|
+ onCommand(new ExitCommand());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDialogCanceled(ConfirmDialog dialog) {
|
|
|
+ dialog.dispose();
|
|
|
+ // 앱 종료
|
|
|
+ onCommand(new ExitCommand());
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .attribute(dialog -> {
|
|
|
+ dialog.setTitleId(R.string.emergency_multi_device_title);
|
|
|
+ dialog.setText(ResourceUtil.getString(R.string.emergency_multi_device));
|
|
|
+ dialog.setNegativeButtonLabelId(R.string.emergency_multi_device_button_negative);
|
|
|
+ dialog.setPositiveButtonLabelId(R.string.emergency_multi_device_button_positive);
|
|
|
+ })
|
|
|
+ .show();
|
|
|
+ }
|
|
|
+
|
|
|
/***********************************
|
|
|
* navigation
|
|
|
***********************************/
|
|
|
@@ -597,6 +639,20 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /***********************************
|
|
|
+ * IModuleEmergencyHandler
|
|
|
+ ***********************************/
|
|
|
+ @Override
|
|
|
+ public void onApiEmergency(APIBean resultBean) {
|
|
|
+ /*
|
|
|
+ 멀티 디바이스 사용 등의 경우 api 호출 시 특정 값을 반환하므로 이를 처리한다.
|
|
|
+ */
|
|
|
+ if (resultBean.getEmergencyCode() == LifeplusAPIBean.RETURN_MULTI_DEVICE) {
|
|
|
+ // 멀티 디바이스
|
|
|
+ showPopupMultiDevice();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/***********************************
|
|
|
* IWaiterCallable
|
|
|
***********************************/
|