Browse Source

[컨텐츠][Bug] 구매/예약 웹뷰가 프래그먼트로 열리던 버그 수정

hyodong.min 6 years ago
parent
commit
bf0bd25a0e

+ 7 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/activity/WebFromContentsActivity.java

@@ -2,6 +2,7 @@ package kr.co.zumo.app.lifeplus.activity;
 
 import android.content.Intent;
 
+import kr.co.zumo.app.lifeplus.bean.ContentsWebDeliveryBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
@@ -21,7 +22,12 @@ public class WebFromContentsActivity extends ActivityBaseScreen {
   @Override
   protected void render() {
     ActivityDeliveryHelper.getInstance().shipTo(getHelper(DeliveryHelper.class));
-    launchScreen(ScreenID.WEB_FROM_CONTENTS);
+    ContentsWebDeliveryBean deliveryBean = getHelper(DeliveryHelper.class).getPackaging(ContentsWebDeliveryBean.class);
+    int id = ScreenID.WEB_FROM_CONTENTS;
+    if (null != deliveryBean) {
+      id = deliveryBean.getScreenId();
+    }
+    launchScreen(id);
   }
 
   @Override

+ 7 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/bean/ContentsWebDeliveryBean.java

@@ -20,11 +20,13 @@ public class ContentsWebDeliveryBean extends JsonBeanBase {
   private final ContentsItemBean contentsItemBean;
   private final int pageIndex;
   private final String webUrl;
+  private final int screenId;
 
-  public ContentsWebDeliveryBean(ContentsItemBean contentsItemBean, int pageIndex, String webUrl) {
+  public ContentsWebDeliveryBean(ContentsItemBean contentsItemBean, int pageIndex, String webUrl, int screenId) {
     this.contentsItemBean = contentsItemBean;
     this.pageIndex = pageIndex;
     this.webUrl = webUrl;
+    this.screenId = screenId;
   }
 
   public ContentsItemBean getContentsItemBean() {
@@ -38,4 +40,8 @@ public class ContentsWebDeliveryBean extends JsonBeanBase {
   public String getWebUrl() {
     return webUrl;
   }
+
+  public int getScreenId() {
+    return screenId;
+  }
 }

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

@@ -67,6 +67,8 @@ public class ActivityScreen extends Screen {
       case ScreenID.FOURTH_CATEGORY:
       case ScreenID.FIFTH_CATEGORY:
         intent = new Intent(activity, CategoryActivity.class);
+//        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
+//        intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
         shipToActivity(new CategoryDeliveryBean(id));
         break;
 
@@ -152,6 +154,7 @@ public class ActivityScreen extends Screen {
         break;
 
       case ScreenID.WEB_FROM_CONTENTS:
+      case ScreenID.WEB_PURCHASE:
         intent = new Intent(activity, WebFromContentsActivity.class);
         shipToActivity();
         break;

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/screen/ScreenManager.java

@@ -54,6 +54,7 @@ public class ScreenManager implements IScreen {
         case ScreenID.UTILITY_ACTIVITY:
           screen = new ActivityScreen(helper, id, direction, method);
           break;
+        case ScreenID.WEB_PURCHASE:
         case ScreenID.WEB_FROM_CONTENTS:
           screen = new ActivityScreen(helper, id, direction, method);
           break;

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/presenter/Presenter.java

@@ -350,7 +350,7 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
         go(ScreenID.CONTENTS);
         break;
       case LinkBean.TYPE_URL:
-        ContentsWebDeliveryBean contentsWebDeliveryBean = new ContentsWebDeliveryBean(null, -1, linkBean.getLink());
+        ContentsWebDeliveryBean contentsWebDeliveryBean = new ContentsWebDeliveryBean(null, -1, linkBean.getLink(), ScreenID.WEB_FROM_CONTENTS);
 
         model.setDeliveryPackaging(contentsWebDeliveryBean);
         go(ScreenID.WEB_FROM_CONTENTS);

+ 7 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsPresenter.java

@@ -215,7 +215,7 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
         // html 의 자바스크립트를 통해서 전달된 데이터
         HtmlBean htmlBean = event.fromJson(HtmlBean.class);
         if (htmlBean.getType() == HtmlBean.TYPE_APP) {
-          shipToWeb(htmlBean.getUrl());
+          shipToWeb(htmlBean.getUrl(), ScreenID.WEB_FROM_CONTENTS);
           go(ScreenID.WEB_FROM_CONTENTS);
         }
         else if (htmlBean.getType() == HtmlBean.TYPE_LINK) {
@@ -227,13 +227,13 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
         break;
       case Event.RECT:
         Log.e("APP#  ContentsPresenter | onEventInternal", "|" + event.getString());
-        shipToWeb(event.getString());
+        shipToWeb(event.getString(), ScreenID.WEB_FROM_CONTENTS);
         go(ScreenID.WEB_FROM_CONTENTS);
         break;
       case Event.POINT:
         // todo tool tip 표시 필요
         Log.e("APP#  ContentsPresenter | onEventInternal", "|" + event.getString());
-        shipToWeb(event.getString());
+        shipToWeb(event.getString(), ScreenID.WEB_PURCHASE);
         go(ScreenID.WEB_PURCHASE);
         break;
       case Event.OVER_VIEW:
@@ -462,11 +462,11 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
               case Event.INSTAGRAM:
                 /* falls through */
               case Event.FACE_BOOK:
-                shipToWeb(event.getString());
+                shipToWeb(event.getString(), ScreenID.WEB_FROM_CONTENTS);
                 go(ScreenID.WEB_FROM_CONTENTS);
                 break;
               case Event.ADDRESS:
-                shipToWeb(event.getString());
+                shipToWeb(event.getString(), ScreenID.WEB_FROM_CONTENTS);
 //                go(ScreenID.MAP);
                 go(ScreenID.WEB_FROM_CONTENTS);
                 break;
@@ -491,8 +491,8 @@ public class ContentsPresenter extends ContentsBasePresenter<ContentsModel, ICon
     }
   }
 
-  private void shipToWeb(String webUrl) {
-    ContentsWebDeliveryBean contentsWebDeliveryBean = new ContentsWebDeliveryBean(model.getShareContents(), model.getSharePageIndex(), webUrl);
+  private void shipToWeb(String webUrl, int screenId) {
+    ContentsWebDeliveryBean contentsWebDeliveryBean = new ContentsWebDeliveryBean(model.getShareContents(), model.getSharePageIndex(), webUrl, screenId);
     model.setDeliveryPackaging(contentsWebDeliveryBean);
   }