|
|
@@ -0,0 +1,102 @@
|
|
|
+/*
|
|
|
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
|
|
|
+ */
|
|
|
+package kr.co.zumo.app.lifeplus.activity;
|
|
|
+
|
|
|
+import kr.co.zumo.app.R;
|
|
|
+import kr.co.zumo.app.lifeplus.model.SuperModel;
|
|
|
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
+import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
+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.DialogID;
|
|
|
+import kr.co.zumo.app.lifeplus.view.dialog.ICustomConfirmListener;
|
|
|
+
|
|
|
+/**
|
|
|
+ * SplashPresenter
|
|
|
+ * <pre>
|
|
|
+ * </pre>
|
|
|
+ *
|
|
|
+ * @author 민효동
|
|
|
+ * @version 1.0
|
|
|
+ * @history 민효동 [2019. 2. 20.] [최초 작성]
|
|
|
+ * @since 2019. 2. 20.
|
|
|
+ */
|
|
|
+public class SplashPresenter implements ISplashContract.Presenter {
|
|
|
+
|
|
|
+ private ISplashContract.Model model;
|
|
|
+ private ISplashContract.View view;
|
|
|
+
|
|
|
+ public SplashPresenter(ISplashContract.Model model, ISplashContract.View view) {
|
|
|
+ this.model = model;
|
|
|
+ this.view = view;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void launchLocationPermission(Runnable runnable) {
|
|
|
+ runnable.run();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void launchDeviceLocationPermission(Runnable runnable) {
|
|
|
+ runnable.run();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void launchPushPermission(Runnable runnable) {
|
|
|
+
|
|
|
+ if (SuperModel.getInstance().getPreferences().getFirstPermissionCompleted()) {
|
|
|
+ // 이미 설정했다면 다음으로 이동
|
|
|
+ runnable.run();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ SuperModel.getInstance().getPreferences().setFirstPermissionCompleted();
|
|
|
+ // 설정 창 표시
|
|
|
+ launchPushPermissionInternal(runnable);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void launchPushPermissionInternal(Runnable runnable) {
|
|
|
+ new DialogBuilder<ConfirmDialog, ICustomConfirmListener>(view.getActivity().getSupportFragmentManager(), DialogID.CONFIRM)
|
|
|
+ .listener(new ICustomConfirmListener<ConfirmDialog>() {
|
|
|
+ @Override
|
|
|
+ public void onPositiveResult(ConfirmDialog dialog, Event event) {
|
|
|
+ model.setPushContentsAndService(true);
|
|
|
+ model.setPushEventEnabled(true);
|
|
|
+
|
|
|
+ this.onDialogCanceled(dialog);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNegativeResult(ConfirmDialog dialog, Event event) {
|
|
|
+ this.onDialogCanceled(dialog);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDialogCanceled(ConfirmDialog dialog) {
|
|
|
+ dialog.dispose();
|
|
|
+ runnable.run();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .attribute(dialog -> {
|
|
|
+ dialog.setTitleId(R.string.splash_permission_push_title);
|
|
|
+ dialog.setText(ResourceUtil.getString(R.string.splash_permission_push_contents));
|
|
|
+ dialog.setNegativeButtonLabelId(R.string.splash_permission_do_not_accept);
|
|
|
+ dialog.setPositiveButtonLabelId(R.string.splash_permission_accept);
|
|
|
+ })
|
|
|
+ .show();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void launchAllPermission(Runnable runnable) {
|
|
|
+
|
|
|
+ launchPushPermission(() -> {
|
|
|
+ launchDeviceLocationPermission(() -> {
|
|
|
+ launchLocationPermission(() -> {
|
|
|
+ // 권한 처리 종료
|
|
|
+ runnable.run();
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|