瀏覽代碼

[공통][New] HomeCommand 추가
- pop stack 의 경우 홈 이동 시 이전 페이지로 갈 수 있어서 이를 보완

hyodong.min 7 年之前
父節點
當前提交
870ac6f80d

+ 5 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/FragmentBackStackChanger.java

@@ -3,6 +3,7 @@
  */
 package kr.co.zumo.app.lifeplus.supervisor;
 
+import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v7.app.AppCompatActivity;
 
@@ -36,7 +37,7 @@ public class FragmentBackStackChanger extends FragmentChanger {
   public void changeToNext(@ScreenID.FragmentID int id) {
 
     FragmentTransaction fragmentTransaction = activity.getSupportFragmentManager().beginTransaction();
-    fragmentTransaction.addToBackStack("A");
+    fragmentTransaction.addToBackStack(null);
     fragmentTransaction.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.back_enter, R.anim.back_exit);
 
     changeFragment(id, fragmentTransaction);
@@ -50,9 +51,9 @@ public class FragmentBackStackChanger extends FragmentChanger {
    */
   @Override
   public void changeToBack(@ScreenID.FragmentID int id) {
-
-    if (activity.getSupportFragmentManager().getBackStackEntryCount() > 0) {
-      activity.getSupportFragmentManager().popBackStack();
+    FragmentManager fragmentManager = activity.getSupportFragmentManager();
+    if (fragmentManager.getBackStackEntryCount() > 0) {
+      fragmentManager.popBackStack();
     }
     else {
       super.changeToBack(id);

+ 45 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/command/HomeCommand.java

@@ -0,0 +1,45 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.view.command;
+
+import android.app.FragmentManager;
+
+import kr.co.zumo.app.lifeplus.model.Model;
+import kr.co.zumo.app.lifeplus.supervisor.ScreenChangerHelper;
+import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.view.IView;
+import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
+
+/**
+ * FragmentChangeCommand
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 10. 23.]   [최초 작성]
+ * @since 2018. 10. 23.
+ */
+public class HomeCommand extends FragmentChangeCommand {
+
+  public HomeCommand(@ScreenID.FragmentID int fragmentId, @ScreenID.Direction int direction) {
+    super(fragmentId, direction);
+  }
+
+  @Override
+  public void execute(Model model, IView view, Presenter presenter) {
+    ScreenChangerHelper.getInstance().getAppCompatActivity().getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+
+    super.execute(model, view, presenter);
+  }
+
+  @Override
+  public void postExecute(Model model, IView view, Presenter presenter) {
+
+  }
+
+  @Override
+  public void dispose() {
+  }
+}

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

@@ -17,6 +17,7 @@ import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IView;
 import kr.co.zumo.app.lifeplus.view.command.Command;
 import kr.co.zumo.app.lifeplus.view.command.FragmentBackStackChangeCommand;
+import kr.co.zumo.app.lifeplus.view.command.HomeCommand;
 
 /**
  * Presenter
@@ -222,7 +223,7 @@ public abstract class Presenter<M extends Model, V extends IView> implements ILi
    * @param actionBar
    */
   public void onClickHome(ActionBar actionBar) {
-    onCommand(new FragmentBackStackChangeCommand(ScreenID.MAIN, ScreenID.DIRECTION_BACK));
+    onCommand(new HomeCommand(ScreenID.MAIN, ScreenID.DIRECTION_BACK));
   }
 
   /**