|
@@ -7,6 +7,7 @@ import android.content.Context;
|
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.PackageManager;
|
|
|
import android.provider.Settings;
|
|
import android.provider.Settings;
|
|
|
|
|
+import android.support.v4.app.FragmentActivity;
|
|
|
import android.util.Log;
|
|
import android.util.Log;
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
@@ -21,14 +22,18 @@ import kr.co.zumo.app.lifeplus.config.NetworkConfigProvider;
|
|
|
import kr.co.zumo.app.lifeplus.helper.AppShieldHelper;
|
|
import kr.co.zumo.app.lifeplus.helper.AppShieldHelper;
|
|
|
import kr.co.zumo.app.lifeplus.helper.AppVersionHelper;
|
|
import kr.co.zumo.app.lifeplus.helper.AppVersionHelper;
|
|
|
import kr.co.zumo.app.lifeplus.helper.FirebaseHelper;
|
|
import kr.co.zumo.app.lifeplus.helper.FirebaseHelper;
|
|
|
|
|
+import kr.co.zumo.app.lifeplus.helper.Helper;
|
|
|
import kr.co.zumo.app.lifeplus.model.SuperModel;
|
|
import kr.co.zumo.app.lifeplus.model.SuperModel;
|
|
|
import kr.co.zumo.app.lifeplus.model.SuperModelInit;
|
|
import kr.co.zumo.app.lifeplus.model.SuperModelInit;
|
|
|
import kr.co.zumo.app.lifeplus.model.module.APIModuleHelper;
|
|
import kr.co.zumo.app.lifeplus.model.module.APIModuleHelper;
|
|
|
import kr.co.zumo.app.lifeplus.model.module.IEmergency;
|
|
import kr.co.zumo.app.lifeplus.model.module.IEmergency;
|
|
|
import kr.co.zumo.app.lifeplus.model.module.IModuleEmergencyHandler;
|
|
import kr.co.zumo.app.lifeplus.model.module.IModuleEmergencyHandler;
|
|
|
import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
|
|
import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
|
|
|
|
|
+import kr.co.zumo.app.lifeplus.util.AppUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
import kr.co.zumo.app.lifeplus.view.Event;
|
|
import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
|
|
+import kr.co.zumo.app.lifeplus.view.IView;
|
|
|
|
|
+import kr.co.zumo.app.lifeplus.view.command.AppUpdateCommand;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
|
|
import kr.co.zumo.app.lifeplus.view.dialog.ConfirmDialog;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogBuilder;
|
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
|
|
import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
|
|
@@ -217,7 +222,7 @@ public class SplashPresenter implements ISplashContract.Presenter, IModuleEmerge
|
|
|
Context context = App.getInstance().getContext();
|
|
Context context = App.getInstance().getContext();
|
|
|
|
|
|
|
|
// 앱이 실행 중인지 판단한다.
|
|
// 앱이 실행 중인지 판단한다.
|
|
|
- if (SuperModel.getInstance().isAppInitialized()) {
|
|
|
|
|
|
|
+ if (SuperModel.getInstance().isAppInitialized() && App.getInstance().isDisposable() == false) {
|
|
|
Log.e("APP# SplashPresenter | setupInternal", "|" + " restart from call...........");
|
|
Log.e("APP# SplashPresenter | setupInternal", "|" + " restart from call...........");
|
|
|
|
|
|
|
|
view.finish();
|
|
view.finish();
|
|
@@ -259,11 +264,21 @@ public class SplashPresenter implements ISplashContract.Presenter, IModuleEmerge
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void showPopupMultiDevice() {
|
|
|
|
|
- DialogProvider.of(view.getActivity().getSupportFragmentManager()).showPopupMultiDevice(() -> {
|
|
|
|
|
- // 잠금 화면으로 이동
|
|
|
|
|
- dispose();
|
|
|
|
|
- view.linkActivity(ScreenStarter.SCREEN_MULTI_DEVICE);
|
|
|
|
|
|
|
+ private void showPopupAppUpdate() {
|
|
|
|
|
+ DialogProvider.of(view.getActivity().getSupportFragmentManager()).showPopupAppUpdate(() -> {
|
|
|
|
|
+ // 플레이 스토어 이동
|
|
|
|
|
+ new AppUpdateCommand(AppUtil.getPackageName()).execute(null, new IView() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public FragmentActivity getActivity() {
|
|
|
|
|
+ return view.getActivity();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public int getScreenId() { return 0; }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public <H extends Helper> H getHelper(Class<H> helperClass) { return null; }
|
|
|
|
|
+ }, null);
|
|
|
}, () -> {
|
|
}, () -> {
|
|
|
// 앱 종료
|
|
// 앱 종료
|
|
|
exit();
|
|
exit();
|
|
@@ -288,12 +303,9 @@ public class SplashPresenter implements ISplashContract.Presenter, IModuleEmerge
|
|
|
***********************************/
|
|
***********************************/
|
|
|
@Override
|
|
@Override
|
|
|
public boolean onApiEmergency(IEmergency emergency) {
|
|
public boolean onApiEmergency(IEmergency emergency) {
|
|
|
- /*
|
|
|
|
|
- 멀티 디바이스 사용 등의 경우 api 호출 시 특정 값을 반환하므로 이를 처리한다.
|
|
|
|
|
- */
|
|
|
|
|
- if (emergency.getEmergencyCode() == EmergencyBean.CODE_MULTI_DEVICE) {
|
|
|
|
|
- // 멀티 디바이스
|
|
|
|
|
- showPopupMultiDevice();
|
|
|
|
|
|
|
+ if (emergency.getEmergencyCode() == EmergencyBean.CODE_FORCE_APP_UPDATE) {
|
|
|
|
|
+ // 강제 업데이트
|
|
|
|
|
+ showPopupAppUpdate();
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
else if (emergency.getEmergencyCode() == EmergencyBean.CODE_INVALID_APP) {
|
|
else if (emergency.getEmergencyCode() == EmergencyBean.CODE_INVALID_APP) {
|