Browse Source

[공통][Common] UUID 변경 시 alert 표시

hyodong.min 7 years ago
parent
commit
b4f5ce7fda

+ 77 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SignUpZumoUserActivity.java

@@ -0,0 +1,77 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.activity;
+
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.application.App;
+import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
+import kr.co.zumo.app.lifeplus.model.SignUpModel;
+import kr.co.zumo.app.lifeplus.view.ISignUpView;
+import kr.co.zumo.app.lifeplus.view.fragment.signup.SignUpAdapter;
+import kr.co.zumo.app.lifeplus.view.presenter.SignUpPresenter;
+
+/**
+ * SignUpZumoUserActivity
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 9. 23.]   [최초 작성]
+ * @since 2018. 9. 23.
+ */
+public class SignUpZumoUserActivity extends ActivityBase<SignUpPresenter> implements ISignUpView {
+
+  private SignUpAdapter adapter;
+  private RecyclerView recyclerView;
+
+  @Override
+  void onAfterCreate(Bundle savedInstanceState) {
+
+    setContentView(R.layout.fragment_sign_up);
+
+    adapter = new SignUpAdapter(presenter);
+
+    recyclerView = findViewById(R.id.sign_up_list);
+    recyclerView.setHasFixedSize(true);
+    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(App.getInstance().getContext());
+    recyclerView.setLayoutManager(layoutManager);
+    recyclerView.setAdapter(adapter);
+
+    presenter.start();
+  }
+
+  @Override
+  protected void onDestroy() {
+    super.onDestroy();
+
+    presenter.dispose();
+  }
+
+  @Override
+  void defineActionBar() {
+    ActionBarManager actionBarManager = ActionBarManager.getInstance();
+    // fixme 타이틀 지정 필요
+    actionBarManager.setTitle(R.string.empty_string);
+    actionBarManager.setDisplayHomeAsUpEnabled(true);
+  }
+
+  @Override
+  SignUpPresenter definePresenter() {
+    return new SignUpPresenter(new SignUpModel(), this);
+  }
+
+  /**
+   * recyclerView 에 아이템이 변경되었음을 알려준다.
+   */
+  @Override
+  public void notifyItemChanged() {
+    adapter.notifyItemChanged(recyclerView, presenter.getSignUpList());
+  }
+}
+

+ 34 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SplashActivity.java

@@ -17,9 +17,14 @@ import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
 import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.model.SuperModelInit;
 import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
+import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
+import kr.co.zumo.app.lifeplus.supervisor.DialogManager;
 import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.util.PermissionUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
+import kr.co.zumo.app.lifeplus.view.dialog.AlertDialog;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
+import kr.co.zumo.app.lifeplus.view.dialog.DialogResult;
 
 /**
  * Splash 화면
@@ -39,6 +44,7 @@ public class SplashActivity extends AppCompatActivity {
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
 
+    DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
     Context context = App.getInstance().getContext();
     SuperModelInit.init(context);
 
@@ -76,7 +82,7 @@ public class SplashActivity extends AppCompatActivity {
       // 업데이트 사용자
       if (StringUtil.isFull(preferences.getEncryptionUserNo())) {
         // todo 앱 업데이트 한 사람일 경우
-        intent = new Intent(this, SignUpActivity.class);
+        intent = new Intent(this, SignUpZumoUserActivity.class);
       }
       else { // 처음 사용자
         intent = new Intent(this, SignUpActivity.class);
@@ -85,17 +91,38 @@ public class SplashActivity extends AppCompatActivity {
 
     try {
       verifyUuid();
-    } catch (Exception e) {
+    } catch (Throwable e) {
       e.printStackTrace();
-      // todo uuid 가 변경됨, 다시 인증 필요?
-      intent = new Intent(this, NetworkErrorActivity.class);
+      // todo uuid 가 변경됨, 다시 인증 필요
+      intent = null;
+      showUuidDialog();
     } finally {
-      startActivity(intent);
-      overridePendingTransition(R.anim.none, R.anim.none);
+      if (null != intent) {
+        startActivity(intent);
+      }
     }
   }
 
+  @Override
+  public void startActivity(Intent intent) {
+    super.startActivity(intent);
+    overridePendingTransition(R.anim.none, R.anim.none);
+  }
+
+  private void showUuidDialog() {
+    DialogManager dialogManager = new DialogManager();
+    AlertDialog alertDialog = (AlertDialog) dialogManager.show(DialogHelper.getInstance().getFragmentManager(), DialogID.ALERT, (dialog, resultCode, resultString) -> {
+      if (DialogResult.CODE_CANCEL == resultCode) {
+        Intent intent = new Intent(SplashActivity.this, SignUpActivity.class);
+        startActivity(intent);
+      }
+    });
+
+    alertDialog.setText("UUID 가 변경되어 본인 인증이 필요합니다.");
+  }
+
   protected void verifyUuid() {
+
     if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
       // fixme Manifest.permission.READ_PHONE_STATE 필요
       Log.e("APP#  SplashActivity | verifyUuid", "| " + "Manifest.permission.READ_PHONE_STATE 필요");
@@ -113,7 +140,7 @@ public class SplashActivity extends AppCompatActivity {
       }
       else {
         Log.e("APP#  SplashActivity | verifyUuid", "| " + "uuid 가 변경됨");
-        throw new Error("uuid changed.");
+        throw new RuntimeException("uuid changed.");
       }
     }
     else {