Browse Source

[공통][Common] 액티비티 구조 변경

hyodong.min 7 years ago
parent
commit
2ee656e639

+ 10 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ActivityBase.java

@@ -4,6 +4,7 @@
 package kr.co.zumo.app.lifeplus.activity;
 
 import android.Manifest;
+import android.app.Activity;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
@@ -22,8 +23,10 @@ import kr.co.zumo.app.lifeplus.config.NetworkConfig;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
 import kr.co.zumo.app.lifeplus.network.InternetStatus;
 import kr.co.zumo.app.lifeplus.network.NetworkReceiver;
+import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenChangerHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.util.AppUtil;
 import kr.co.zumo.app.lifeplus.util.PermissionUtil;
 import kr.co.zumo.app.lifeplus.view.IView;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
@@ -53,6 +56,8 @@ public abstract class ActivityBase<P extends Presenter> extends AppCompatActivit
   protected final void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
 
+    DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
+
     ScreenChangerHelper.getInstance().setAppCompatActivity(this);
     ActionBarManager.getInstance().setActivityInfo(this);
     defineActionBar();
@@ -143,6 +148,10 @@ public abstract class ActivityBase<P extends Presenter> extends AppCompatActivit
    * 변동이 있을 때 presenter 로 알려준다.
    */
   protected void watchNetwork() {
+    // fixme 네트워크 연결 확인은 모든 액티비티에서 실행해야한다. 처음 네트워크 연결 확인 1회 하는 것과 상호 작용을 유연하게 처리.
+    if (AppUtil.isDebug()) {
+      return;
+    }
 //    Context context = App.getInstance().getContext();
 //    networkReceiver = new NetworkReceiver(context, (isConnected1, type) -> {
 //      Log.i("APP# ActivityBase | watchNetwork", "|" + "Network Status: --------- " + isConnected1 + ", type: " + type);
@@ -193,7 +202,7 @@ public abstract class ActivityBase<P extends Presenter> extends AppCompatActivit
    * IView
    ***********************************/
   @Override
-  public ActivityBase getActivityBase() {
+  public Activity getActivity() {
     return this;
   }
 

+ 21 - 62
app/src/main/java/kr/co/zumo/app/lifeplus/activity/MainActivity.java

@@ -3,21 +3,13 @@
  */
 package kr.co.zumo.app.lifeplus.activity;
 
-import android.content.Context;
 import android.os.Bundle;
-import android.preference.PreferenceManager;
 import android.util.Log;
 import android.widget.Button;
 
 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.BaseSharedPreferences;
-import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
 import kr.co.zumo.app.lifeplus.model.MainModel;
-import kr.co.zumo.app.lifeplus.model.SuperModel;
-import kr.co.zumo.app.lifeplus.network.NetworkConnection;
-import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
 import kr.co.zumo.app.lifeplus.supervisor.DialogManager;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.IMainView;
@@ -42,60 +34,27 @@ public class MainActivity extends ActivityBase<MainPresenter> implements IMainVi
   @Override
   void onAfterCreate(Bundle savedInstanceState) {
 
-    disposable.add(NetworkConnection.check().subscribe(isConnected -> {
-
-        setContentView(R.layout.activity_main);
-
-        DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
-
-        presenter = new MainPresenter(new MainModel(), this);
-
-        // fixme 네트워크 연결 확인은 모든 액티비티에서 실행해야한다. 처음 네트워크 연결 확인 1회 하는 것과 상호 작용을 유연하게 처리.
-
-        Context context = App.getInstance().getContext();
-        SuperModel.getInstance().init(new LifeplusPreferences(new BaseSharedPreferences(PreferenceManager.getDefaultSharedPreferences(context))));
-
-        watchNetwork();
-
-        Log.i("APP# ActivityBase | onCreate", "| Network Connected ==============================================================> " + isConnected);
-        if (isConnected == false) {
-//        if (AppUtil.isRelease()) {
-          presenter.onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_NETWORK_ERROR));
-//        }
-        }
-        else if (SuperModel.getInstance().getPreferences().getTutorialDone() == false) {
-          presenter.onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_TUTORIAL));
-        }
-        else if (SuperModel.getInstance().getPreferences().getEncryptionUserNo().equals("") == false) {
-          // todo 앱 업데이트 한 사람일 경우
-          /**
-           * 업데이트 인증 시작
-           * - 업데이트 인증 앱 세팅 -> 프래그먼트 -> 프리젠터 ->
-           */
-        }
-        else if (false) {
-          // todo 비회원일 경우
-        }
-        else {
-
-          Button button = findViewById(R.id.button_login);
-          button.setOnClickListener(v -> {
-            presenter.onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_PIN, ScreenID.DIRECTION_NEXT));
-          });
-
-          button = findViewById(R.id.button_sign_up);
-          button.setOnClickListener(v -> {
-            presenter.onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_SIGN_UP, ScreenID.DIRECTION_NEXT));
-          });
-
-          button = findViewById(R.id.button_test);
-          button.setOnClickListener(v -> {
-            showAddRegistrationDialog();
-          });
-
-        }
-      }, Throwable::printStackTrace)
-    );
+    presenter = new MainPresenter(new MainModel(), this);
+
+    watchNetwork();
+
+    setContentView(R.layout.activity_main);
+
+    Button button = findViewById(R.id.button_login);
+    button.setOnClickListener(v -> {
+      presenter.onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_PIN, ScreenID.DIRECTION_NEXT));
+    });
+
+    button = findViewById(R.id.button_sign_up);
+    button.setOnClickListener(v -> {
+      presenter.onCommand(new ActivityChangeCommand(ScreenID.ACTIVITY_SIGN_UP, ScreenID.DIRECTION_NEXT));
+    });
+
+    button = findViewById(R.id.button_test);
+    button.setOnClickListener(v -> {
+      showAddRegistrationDialog();
+    });
+
 
   }
 

+ 3 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/activity/PinActivity.java

@@ -8,14 +8,13 @@ import android.util.Log;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
-import kr.co.zumo.app.lifeplus.view.IPinView;
 import kr.co.zumo.app.lifeplus.model.PinModel;
-import kr.co.zumo.app.lifeplus.view.presenter.PinPresenter;
-import kr.co.zumo.app.lifeplus.view.command.PinVerifyCommand;
-import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
 import kr.co.zumo.app.lifeplus.supervisor.DialogManager;
+import kr.co.zumo.app.lifeplus.view.IPinView;
+import kr.co.zumo.app.lifeplus.view.command.PinVerifyCommand;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogID;
 import kr.co.zumo.app.lifeplus.view.dialog.DialogResult;
+import kr.co.zumo.app.lifeplus.view.presenter.PinPresenter;
 
 /**
  * PinActivity
@@ -36,8 +35,6 @@ public class PinActivity extends ActivityBase<PinPresenter> implements IPinView
 
     setContentView(R.layout.fragment_pin);
 
-    DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
-
     watchNetwork();
     presenter = new PinPresenter(new PinModel(), this);
 

+ 2 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SignUpActivity.java

@@ -10,11 +10,10 @@ 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.view.ISignUpView;
 import kr.co.zumo.app.lifeplus.model.SignUpModel;
-import kr.co.zumo.app.lifeplus.view.presenter.SignUpPresenter;
-import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
+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;
 
 /**
  * SignUpActivity
@@ -36,8 +35,6 @@ public class SignUpActivity extends ActivityBase<SignUpPresenter> implements ISi
 
     setContentView(R.layout.fragment_sign_up);
 
-    DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
-
     watchNetwork();
     presenter = new SignUpPresenter(new SignUpModel(), this);
 

+ 46 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SplashActivity.java

@@ -1,8 +1,20 @@
 package kr.co.zumo.app.lifeplus.activity;
 
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
+
+import io.reactivex.disposables.CompositeDisposable;
+import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.application.App;
+import kr.co.zumo.app.lifeplus.model.BaseSharedPreferences;
+import kr.co.zumo.app.lifeplus.model.LifeplusPreferences;
+import kr.co.zumo.app.lifeplus.model.SuperModel;
+import kr.co.zumo.app.lifeplus.network.NetworkConnection;
+import kr.co.zumo.app.lifeplus.util.AppUtil;
 
 /**
  * Splash 화면 구현 테스트
@@ -16,13 +28,43 @@ import android.support.v7.app.AppCompatActivity;
  */
 public class SplashActivity extends AppCompatActivity {
 
+  CompositeDisposable disposable = new CompositeDisposable();
+
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    //setContentView(R.layout.activity_splash);
-    Intent intent = new Intent(this, MainActivity.class);
-    startActivity(intent);
-    finish();
+
+    Context context = App.getInstance().getContext();
+    SuperModel.getInstance().init(new LifeplusPreferences(new BaseSharedPreferences(PreferenceManager.getDefaultSharedPreferences(context))));
+    
+    disposable.add(NetworkConnection.check().subscribe(isConnected -> {
+        disposable.dispose();
+        Log.i("APP# SplashActivity | onCreate", "| Network Connected ==============================================================> " + isConnected);
+        Intent intent;
+        if (isConnected == false && AppUtil.isRelease()) {
+          intent = new Intent(this, NetworkErrorActivity.class);
+        }
+        else if (SuperModel.getInstance().getPreferences().getTutorialDone() == false) {
+          intent = new Intent(this, TutorialActivity.class);
+        }
+        else if (SuperModel.getInstance().getPreferences().getEncryptionUserNo().equals("") == false) {
+          // todo 앱 업데이트 한 사람일 경우
+          /**
+           * 업데이트 인증 시작
+           * - 업데이트 인증 앱 세팅 -> 프래그먼트 -> 프리젠터 ->
+           */
+          intent = new Intent(this, SignUpActivity.class);
+        }
+        else if (false) {
+          // todo 비회원일 경우
+        }
+        else {
+          intent = new Intent(this, MainActivity.class);
+        }
+        startActivity(intent);
+        overridePendingTransition(R.anim.none, R.anim.none);
+      }, Throwable::printStackTrace)
+    );
   }
 }
 

+ 2 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/activity/TutorialActivity.java

@@ -9,11 +9,10 @@ import android.support.v4.view.ViewPager;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.manager.ActionBarManager;
-import kr.co.zumo.app.lifeplus.view.ITutorialView;
 import kr.co.zumo.app.lifeplus.model.TutorialModel;
-import kr.co.zumo.app.lifeplus.view.presenter.TutorialPresenter;
-import kr.co.zumo.app.lifeplus.supervisor.DialogHelper;
+import kr.co.zumo.app.lifeplus.view.ITutorialView;
 import kr.co.zumo.app.lifeplus.view.fragment.tutorial.TutorialPagerAdapter;
+import kr.co.zumo.app.lifeplus.view.presenter.TutorialPresenter;
 
 /**
  * TutorialActivity
@@ -36,8 +35,6 @@ public class TutorialActivity extends ActivityBase implements ITutorialView {
 
     setContentView(R.layout.fragment_tutorial);
 
-    DialogHelper.getInstance().setFragmentManager(getSupportFragmentManager());
-
     watchNetwork();
     presenter = new TutorialPresenter(new TutorialModel(), this);