Bladeren bron

[컨텐츠][New] 액티비티로 전환

hyodong.min 7 jaren geleden
bovenliggende
commit
9c01861db0

+ 6 - 0
app/src/main/AndroidManifest.xml

@@ -63,6 +63,12 @@
       android:windowSoftInputMode="adjustResize">
     </activity>
 
+    <activity
+      android:name=".lifeplus.activity.ContentsActivity"
+      android:screenOrientation="portrait"
+      android:windowSoftInputMode="adjustResize">
+    </activity>
+
     <activity
       android:name=".lifeplus.activity.LocationActivity"
       android:screenOrientation="portrait"

+ 49 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ContentsActivity.java

@@ -0,0 +1,49 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.activity;
+
+import android.content.Intent;
+
+import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
+import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
+import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+
+/**
+ * ContentsOverviewActivity
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 9. 5.]   [최초 작성]
+ * @since 2018. 9. 5.
+ */
+public class ContentsActivity extends ActivityBase {
+
+  @Override
+  protected void renderScreen() {
+
+    ContentsDeliveryBean contentsDeliveryBean = ActivityDeliveryHelper.getInstance().getPackaging(ContentsDeliveryBean.class);
+
+    DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+    deliveryHelper.setPackaging(new ContentsDeliveryBean.Builder(contentsDeliveryBean.getContentsBean()).build());
+
+    // 첫 화면 표시
+    lauchScreen(ScreenID.CONTENTS);
+  }
+
+  @Override
+  protected void onAfterNewIntent(Intent intent) {
+
+  }
+
+  @Override
+  protected void onAfterDestroy() {
+
+  }
+
+}
+
+

+ 3 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ContentsOverviewActivity.java

@@ -5,13 +5,10 @@ package kr.co.zumo.app.lifeplus.activity;
 
 import android.content.Intent;
 
-import com.google.gson.Gson;
-
 import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
-import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
+import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
-import kr.co.zumo.app.lifeplus.supervisor.screen.Screen;
 
 /**
  * ContentsOverviewActivity
@@ -28,11 +25,10 @@ public class ContentsOverviewActivity extends ActivityBase {
   @Override
   protected void renderScreen() {
 
-    String contentData = getIntent().getStringExtra(Screen.INTENT_CONTENTS_DATA);
-    LifeplusContentsBean contentsBean = new Gson().fromJson(contentData, LifeplusContentsBean.class);
+    ContentsDeliveryBean contentsDeliveryBean = ActivityDeliveryHelper.getInstance().getPackaging(ContentsDeliveryBean.class);
 
     DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
-    deliveryHelper.setPackaging(new ContentsDeliveryBean.Builder(contentsBean).build());
+    deliveryHelper.setPackaging(new ContentsDeliveryBean.Builder(contentsDeliveryBean.getContentsBean()).build());
 
     // 첫 화면 표시
     lauchScreen(ScreenID.OVER_VIEW);

+ 27 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/ActivityDeliveryHelper.java

@@ -0,0 +1,27 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.supervisor;
+
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
+
+/**
+ * ActivityDeliveryHelper
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018-11-22]   [최초 작성]
+ * @since 2018-11-22
+ */
+public class ActivityDeliveryHelper extends DeliveryHelper {
+  private static ActivityDeliveryHelper ourInstance = new ActivityDeliveryHelper();
+
+  public static ActivityDeliveryHelper getInstance() {
+    return ourInstance;
+  }
+
+  private ActivityDeliveryHelper() {
+  }
+}

+ 28 - 10
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/screen/ActivityScreen.java

@@ -6,11 +6,13 @@ package kr.co.zumo.app.lifeplus.supervisor.screen;
 import android.content.Intent;
 import android.util.Log;
 
+import kr.co.zumo.app.lifeplus.activity.ContentsActivity;
 import kr.co.zumo.app.lifeplus.activity.ContentsOverviewActivity;
 import kr.co.zumo.app.lifeplus.activity.NetworkErrorActivity;
 import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.helper.ScreenManagerHelper;
+import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 
 /**
@@ -31,33 +33,49 @@ public class ActivityScreen extends Screen {
 
   @Override
   public void change() {
-    Class<?> activityClass = null;
-    Intent intent;
+    DeliveryHelper deliveryHelper;
+    ContentsDeliveryBean contentsDeliveryBean;
+    Intent intent = null;
     switch (id) {
+      case ScreenID.CONTENTS:
+        intent = new Intent(helper.getView().getActivity(), ContentsActivity.class);
+
+        deliveryHelper = helper.getDeliveryHelper();
+        contentsDeliveryBean = deliveryHelper.getPackaging(ContentsDeliveryBean.class);
+
+        if (null != contentsDeliveryBean.getContentsBean()) {
+          Log.w("APP# ActivityScreen | change", "|" + contentsDeliveryBean.getContentsBean().toPrettyJson());
+
+          ActivityDeliveryHelper.getInstance().setPackaging(contentsDeliveryBean);
+          deliveryHelper.clearPackaging();
+        }
+
+        break;
       case ScreenID.OVER_VIEW:
-        activityClass = ContentsOverviewActivity.class;
-        intent = new Intent(helper.getView().getActivity(), activityClass);
+        intent = new Intent(helper.getView().getActivity(), ContentsOverviewActivity.class);
 
-        DeliveryHelper deliveryHelper = helper.getDeliveryHelper();
-        ContentsDeliveryBean contentsDeliveryBean = deliveryHelper.getPackaging(ContentsDeliveryBean.class);
+        deliveryHelper = helper.getDeliveryHelper();
+        contentsDeliveryBean = deliveryHelper.getPackaging(ContentsDeliveryBean.class);
 
         if (null != contentsDeliveryBean.getContentsBean()) {
           Log.w("APP# ActivityScreen | change", "|" + contentsDeliveryBean.getContentsBean().toPrettyJson());
 
-          intent.putExtra(Screen.INTENT_CONTENTS_DATA, contentsDeliveryBean.getContentsBean().toJson());
+          ActivityDeliveryHelper.getInstance().setPackaging(contentsDeliveryBean);
           deliveryHelper.clearPackaging();
         }
 
-        helper.getView().getActivity().startActivity(intent);
         break;
       case ScreenID.NETWORK_ERROR:
-        activityClass = NetworkErrorActivity.class;
-        intent = new Intent(helper.getView().getActivity(), activityClass);
+        intent = new Intent(helper.getView().getActivity(), NetworkErrorActivity.class);
         helper.getView().getActivity().startActivity(intent);
         break;
       default:
         Log.w("APP# ActivityScreen | change", "|" + "activity id bad...");
         break;
     }
+
+    if (null != intent) {
+      helper.getView().getActivity().startActivity(intent);
+    }
   }
 }

+ 0 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/screen/Screen.java

@@ -31,9 +31,6 @@ public abstract class Screen implements IScreen {
   @IntDef({METHOD_SKIP, METHOD_JUMP, METHOD_HOME})
   public @interface Method {}
 
-  public static final String INTENT_CONTENTS_DATA = "intent_contents_data";
-
-
   protected final ScreenManagerHelper helper;
   @Screen.Method
   protected int method;

+ 27 - 19
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/screen/ScreenManager.java

@@ -38,25 +38,33 @@ public class ScreenManager implements IScreen {
     // id 에 따라서 표시할 스크린 구분
     // todo factory 로 분리할 부분
     IScreen screen;
-    switch (id) {
-      case ScreenID.OVER_VIEW:
-        screen = new ActivityScreen(helper, id, direction, method);
-        break;
-      case ScreenID.NETWORK_ERROR:
-        screen = new ActivityScreen(helper, id, direction, method);
-        break;
-      case ScreenID.SIGN_UP_START:
-        screen = new SignUpStartScreen(helper, id, direction, method);
-        break;
-      case ScreenID.ALL_MENU:
-        screen = new AllMenuScreen(helper, id, direction, method);
-        break;
-      case ScreenID.MY_MAIN:
-        screen = new MyMainScreen(helper, id, direction, method);
-        break;
-      default:
-        screen = new FragmentScreen(helper, id, direction, method);
-        break;
+    if (direction == ScreenID.DIRECTION_NEXT) {
+      switch (id) {
+        case ScreenID.CONTENTS:
+          screen = new ActivityScreen(helper, id, direction, method);
+          break;
+        case ScreenID.OVER_VIEW:
+          screen = new ActivityScreen(helper, id, direction, method);
+          break;
+        case ScreenID.NETWORK_ERROR:
+          screen = new ActivityScreen(helper, id, direction, method);
+          break;
+        case ScreenID.SIGN_UP_START:
+          screen = new SignUpStartScreen(helper, id, direction, method);
+          break;
+        case ScreenID.ALL_MENU:
+          screen = new AllMenuScreen(helper, id, direction, method);
+          break;
+        case ScreenID.MY_MAIN:
+          screen = new MyMainScreen(helper, id, direction, method);
+          break;
+        default:
+          screen = new FragmentScreen(helper, id, direction, method);
+          break;
+      }
+    }
+    else {
+      screen = new FragmentScreen(helper, id, direction, method);
     }
     screen.change();
   }