Browse Source

[공통][New] 액션바 카테고리 메뉴 이벤트

hyodong.min 7 years ago
parent
commit
d3b7f61109

+ 21 - 19
app/src/main/java/kr/co/zumo/app/lifeplus/manager/ActionBarManager.java

@@ -14,6 +14,7 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
+import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.TextView;
 
@@ -70,8 +71,6 @@ public class ActionBarManager {
 
   private IActionBarListener.Scroll scrollListener;
 
-  private IActionBarListener.CategoryClick categoryListener;
-
   private ActionBarManager() {
   }
 
@@ -170,17 +169,6 @@ public class ActionBarManager {
     }
   }
 
-  public void setClickCategoryListener(IActionBarListener.CategoryClick categoryListener) {
-    this.categoryListener = categoryListener;
-    categoryMainTab.setOnCheckedChangeListener((radioGroup, i) -> {
-      int selectIndex = categoryMainTab.indexOfChild(appBarLayout.findViewById(categoryMainTab.getCheckedRadioButtonId()));
-      //Log.e("APP#  ActionBarManager | init", "|" + selectIndex);
-      this.categoryListener.onClick(actionBar, selectIndex);
-
-    });
-
-  }
-
   /**
    * Progress bar 의 진행율 설정
    *
@@ -427,14 +415,14 @@ public class ActionBarManager {
     layoutCategoryTab.setVisibility(View.GONE);
     buttonArrow.setImageResource(R.drawable.icon_h_down);
 
-    if (builder.isVisibleArrow != newBuilder.isVisibleArrow) {
-      setArrowVisible(newBuilder.isVisibleArrow);
+    if (builder.isVisibleCategoryArrow != newBuilder.isVisibleCategoryArrow) {
+      setArrowVisible(newBuilder.isVisibleCategoryArrow);
 
       buttonArrow.setOnClickListener(view1 -> {
         layoutCategoryTab.setVisibility(layoutCategoryTab.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
         buttonArrow.setImageResource(layoutCategoryTab.getVisibility() == View.GONE ? R.drawable.icon_h_down : R.drawable.icon_header_up);
       });
-      if (newBuilder.isVisibleArrow) {
+      if (newBuilder.isVisibleCategoryArrow) {
         actionBarTitle.setOnClickListener(view1 -> {
           layoutCategoryTab.setVisibility(layoutCategoryTab.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
           buttonArrow.setImageResource(layoutCategoryTab.getVisibility() == View.GONE ? R.drawable.icon_h_down : R.drawable.icon_header_up);
@@ -444,6 +432,15 @@ public class ActionBarManager {
         actionBarTitle.setOnClickListener(null);
       }
 
+      ((RadioButton) categoryMainTab.getChildAt(newBuilder.selectedCategoryIndex)).setChecked(true);
+      categoryMainTab.setOnCheckedChangeListener((radioGroup, i) -> {
+        int selectIndex = categoryMainTab.indexOfChild(appBarLayout.findViewById(radioGroup.getCheckedRadioButtonId()));
+        //Log.e("APP#  ActionBarManager | init", "|" + selectIndex);
+        if (null != newBuilder.categoryListener) {
+          newBuilder.categoryListener.onClick(actionBar, selectIndex);
+        }
+      });
+
     }
 
     if (builder.isVisibleMenu != newBuilder.isVisibleMenu || builder.menuListener != newBuilder.menuListener) {
@@ -568,7 +565,7 @@ public class ActionBarManager {
     private boolean isVisibleSearch = false;
     private boolean isVisibleMenu = false;
     private boolean isVisibleProgress = false;
-    private boolean isVisibleArrow = false;
+    private boolean isVisibleCategoryArrow = false;
     private boolean isScrollable = false;
     private int title = R.string.empty_string;
     private boolean isTransparentBackground = false;
@@ -582,6 +579,8 @@ public class ActionBarManager {
     private boolean isVisibleTextButton = false;
     private int text = R.string.empty_string;
 
+    private int selectedCategoryIndex = -1;
+
     private IActionBarListener.Click backListener = null;
     private IActionBarListener.Click bookmarkListener = null;
     private IActionBarListener.Click likeListener = null;
@@ -595,6 +594,7 @@ public class ActionBarManager {
     private IActionBarListener.Click settingListener = null;
     private IActionBarListener.Click closeListener = null;
     private IActionBarListener.Click textButtonListener = null;
+    private IActionBarListener.CategoryClick categoryListener = null;
 
 
     public Builder() {
@@ -675,8 +675,10 @@ public class ActionBarManager {
      *
      * @return Builder
      */
-    public Builder category() {
-      isVisibleArrow = true;
+    public Builder category(int index, IActionBarListener.CategoryClick categoryListener) {
+      isVisibleCategoryArrow = true;
+      selectedCategoryIndex = index;
+      this.categoryListener = categoryListener;
       return this;
     }
 

+ 7 - 8
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/category/FifthCategoryMainFragment.java

@@ -31,12 +31,6 @@ import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 public class FifthCategoryMainFragment extends FragmentBase<FifthCategoryMainPresenter> {
 
   private RecyclerView recyclerViewFifthCategoryMain;
-  private IActionBarListener.CategoryClick categoryClickListener = new IActionBarListener.CategoryClick() {
-    @Override
-    public void onClick(ActionBar actionBar, int index) {
-      presenter.onClickCategoryTab(actionBar, index);
-    }
-  };
 
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -48,7 +42,7 @@ public class FifthCategoryMainFragment extends FragmentBase<FifthCategoryMainPre
     recyclerViewFifthCategoryMain = findViewById(R.id.recycler_view_fifth_category_main);
     FifthCategoryMainAdapter fifthCategoryMainAdapter = new FifthCategoryMainAdapter(getActivity());
     LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);
-    recyclerViewFifthCategoryMain.setLayoutManager(linearLayoutManager );
+    recyclerViewFifthCategoryMain.setLayoutManager(linearLayoutManager);
     recyclerViewFifthCategoryMain.addItemDecoration(new RecyclerView.ItemDecoration() {
       @Override
       public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
@@ -65,7 +59,12 @@ public class FifthCategoryMainFragment extends FragmentBase<FifthCategoryMainPre
       .menu(actionBar -> presenter.onClickMenu(actionBar))
       .search(actionBar -> presenter.onClickSearch(actionBar))
       .back(actionBar -> presenter.onClickBack(actionBar))
-      .category()
+      .category(4, new IActionBarListener.CategoryClick() {
+        @Override
+        public void onClick(ActionBar actionBar, int index) {
+          presenter.onClickCategoryTab(actionBar, index);
+        }
+      })
       .show();
   }
 

+ 6 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/category/FirstCategoryMainFragment.java

@@ -39,18 +39,10 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
   private List<TextImageBean> textImageBeanList;
   private MainSeriesView mainSeriesView;
   private RecyclerView recyclerViewFirstCategoryMain;
-  private IActionBarListener.CategoryClick categoryClickListener = new IActionBarListener.CategoryClick() {
-    @Override
-    public void onClick(ActionBar actionBar, int index) {
-      presenter.onClickCategoryTab(actionBar, index);
-    }
-  };
-
 
   @Nullable
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    ActionBarManager.getInstance().setClickCategoryListener(categoryClickListener);
     return inflater.inflate(R.layout.fragment_first_category_main, container, false);
   }
 
@@ -98,7 +90,12 @@ public class FirstCategoryMainFragment extends FragmentBase<FirstCategoryMainPre
       .menu(actionBar -> presenter.onClickMenu(actionBar))
       .search(actionBar -> presenter.onClickSearch(actionBar))
       .back(actionBar -> presenter.onClickBack(actionBar))
-      .category()
+      .category(0, new IActionBarListener.CategoryClick() {
+        @Override
+        public void onClick(ActionBar actionBar, int index) {
+          presenter.onClickCategoryTab(actionBar, index);
+        }
+      })
       .show();
 
   }

+ 6 - 8
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/category/FourthCategoryMainFragment.java

@@ -38,16 +38,9 @@ public class FourthCategoryMainFragment extends FragmentBase<FourthCategoryMainP
   private List<TextImageBean> textImageBeanList;
   private MainSeriesView mainSeriesView;
   private RecyclerView recyclerViewFourthCategoryMain;
-  private IActionBarListener.CategoryClick categoryClickListener = new IActionBarListener.CategoryClick() {
-    @Override
-    public void onClick(ActionBar actionBar, int index) {
-      presenter.onClickCategoryTab(actionBar, index);
-    }
-  };
 
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    ActionBarManager.getInstance().setClickCategoryListener(categoryClickListener);
     return inflater.inflate(R.layout.fragment_fourth_category_main, container, false);
   }
 
@@ -76,7 +69,12 @@ public class FourthCategoryMainFragment extends FragmentBase<FourthCategoryMainP
       .menu(actionBar -> presenter.onClickMenu(actionBar))
       .search(actionBar -> presenter.onClickSearch(actionBar))
       .back(actionBar -> presenter.onClickBack(actionBar))
-      .category()
+      .category(3, new IActionBarListener.CategoryClick() {
+        @Override
+        public void onClick(ActionBar actionBar, int index) {
+          presenter.onClickCategoryTab(actionBar, index);
+        }
+      })
       .show();
   }
 

+ 6 - 8
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/category/SecondCategoryMainFragment.java

@@ -39,16 +39,9 @@ public class SecondCategoryMainFragment extends FragmentBase<SecondCategoryMainP
   private List<TextImageBean> textImageBeanList;
   private RecyclerView recyclerViewSecondCategoryMain;
   private MainSeriesView mainSeriesView;
-  private IActionBarListener.CategoryClick categoryClickListener = new IActionBarListener.CategoryClick() {
-    @Override
-    public void onClick(ActionBar actionBar, int index) {
-      presenter.onClickCategoryTab(actionBar, index);
-    }
-  };
 
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    ActionBarManager.getInstance().setClickCategoryListener(categoryClickListener);
     return inflater.inflate(R.layout.fragment_second_category_main, container, false);
   }
 
@@ -79,7 +72,12 @@ public class SecondCategoryMainFragment extends FragmentBase<SecondCategoryMainP
       .menu(actionBar -> presenter.onClickMenu(actionBar))
       .search(actionBar -> presenter.onClickSearch(actionBar))
       .back(actionBar -> presenter.onClickBack(actionBar))
-      .category()
+      .category(1, new IActionBarListener.CategoryClick() {
+        @Override
+        public void onClick(ActionBar actionBar, int index) {
+          presenter.onClickCategoryTab(actionBar, index);
+        }
+      })
       .show();
 
   }

+ 6 - 8
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/category/ThirdCategoryMainFragment.java

@@ -36,17 +36,10 @@ public class ThirdCategoryMainFragment extends FragmentBase<ThirdCategoryMainPre
   private List<TextImageBean> textImageBeanList;
   private MainSeriesView mainSeriesView;
   private RecyclerView recyclerViewThirdCategoryMain;
-  private IActionBarListener.CategoryClick categoryClickListener = new IActionBarListener.CategoryClick() {
-    @Override
-    public void onClick(ActionBar actionBar, int index) {
-      presenter.onClickCategoryTab(actionBar, index);
-    }
-  };
 
 
   @Override
   protected View onAfterCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    ActionBarManager.getInstance().setClickCategoryListener(categoryClickListener);
     return inflater.inflate(R.layout.fragment_third_category_main, container, false);
   }
 
@@ -85,7 +78,12 @@ public class ThirdCategoryMainFragment extends FragmentBase<ThirdCategoryMainPre
       .menu(actionBar -> presenter.onClickMenu(actionBar))
       .search(actionBar -> presenter.onClickSearch(actionBar))
       .back(actionBar -> presenter.onClickBack(actionBar))
-      .category()
+      .category(2, new IActionBarListener.CategoryClick() {
+        @Override
+        public void onClick(ActionBar actionBar, int index) {
+          presenter.onClickCategoryTab(actionBar, index);
+        }
+      })
       .show();
   }