Przeglądaj źródła

[마이][Common] 버킷리스트 완료 체크버튼 클릭시 완료한 버킷리스트 노출

Hasemi 7 lat temu
rodzic
commit
7b36795f72

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/IMyBucketListView.java

@@ -23,4 +23,6 @@ public interface IMyBucketListView extends IView {
   void drawBest(List<BucketBean> bestBeans);
 
   void setCompletedCount(String str);
+
+  void changeCheckImage(boolean isClicked);
 }

+ 16 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/MyBucketListAdapter.java

@@ -48,8 +48,24 @@ public class MyBucketListAdapter extends RecyclerView.Adapter<MyBucketListViewHo
     holder.bind(bean);
   }
 
+  @Override
+  public void onBindViewHolder(@NonNull MyBucketListViewHolder holder, int position, @NonNull List<Object> payloads) {
+    if (payloads.isEmpty()) {
+      super.onBindViewHolder(holder, position, payloads);
+    }
+    else {
+      for (Object payload : payloads) {
+        if (payload instanceof Boolean) {
+          boolean clickFlag = (boolean) payload;
+          holder.bind(clickFlag, myBucketListBeanList.get(position));
+        }
+      }
+    }
+  }
+
   @Override
   public int getItemCount() {
     return myBucketListBeanList.size();
   }
+
 }

+ 30 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/MyBucketListFragment.java

@@ -11,6 +11,7 @@ import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import java.util.List;
@@ -20,6 +21,7 @@ import kr.co.zumo.app.lifeplus.bean.api.BucketBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketWithTagBean;
 import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
 import kr.co.zumo.app.lifeplus.helper.ActionButtonHelper;
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 
 /**
@@ -38,7 +40,12 @@ public class MyBucketListFragment extends FragmentBase<MyBucketListPresenter> im
   private TabLayout tabLayoutBucketList;
   private PagerAdapter pagerAdapter;
   private RecyclerView recyclerViewMyBucketList;
+
   private TextView textCompleteBucket;
+  private ImageView imageViewBucketCheck;
+  private MyBucketListAdapter adapter;
+
+  private boolean isClicked = false;
 
   @Nullable
   @Override
@@ -52,6 +59,17 @@ public class MyBucketListFragment extends FragmentBase<MyBucketListPresenter> im
     tabLayoutBucketList = findViewById(R.id.tab_layout_bucket_list);
     recyclerViewMyBucketList = findViewById(R.id.recycler_view_my_bucket_list);
     textCompleteBucket = findViewById(R.id.text_view_bucket_list_count);
+
+    //완료된 버킷 count
+    textCompleteBucket.setOnClickListener(view -> {
+      presenter.onEvent(new Event.Builder(Event.TOGGLE).bool(isClicked()).build());
+
+    });
+
+    imageViewBucketCheck = findViewById(R.id.image_view_bucket_check);
+    imageViewBucketCheck.setOnClickListener(view -> {
+      presenter.onEvent(new Event.Builder(Event.TOGGLE).bool(isClicked()).build());
+    });
   }
 
   @Override
@@ -92,7 +110,7 @@ public class MyBucketListFragment extends FragmentBase<MyBucketListPresenter> im
 
   @Override
   public void drawList(List<BucketWithTagBean> beans) {
-    MyBucketListAdapter adapter = new MyBucketListAdapter(getActivity(), beans, event -> {
+    adapter = new MyBucketListAdapter(getActivity(), beans, event -> {
       //버킷리스트 상세 이동
       presenter.onEvent(event);
     });
@@ -114,4 +132,15 @@ public class MyBucketListFragment extends FragmentBase<MyBucketListPresenter> im
   public void setCompletedCount(String str) {
     textCompleteBucket.setText(str);
   }
+
+  @Override
+  public void changeCheckImage(boolean isClicked) {
+    imageViewBucketCheck.setImageDrawable(isClicked? getResources().getDrawable(R.drawable.icon_bucket_complete) : getResources().getDrawable(R.drawable.icon_bucket_not_complete));
+  }
+
+  private boolean isClicked() {
+    isClicked = !isClicked;
+    return isClicked;
+  }
+
 }

+ 20 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/MyBucketListPresenter.java

@@ -1,5 +1,9 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.bucketlist;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import kr.co.zumo.app.lifeplus.bean.api.BucketWithTagBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
@@ -83,6 +87,22 @@ public class MyBucketListPresenter extends Presenter<MyBucketListModel, IMyBucke
         getHelper(DeliveryHelper.class).setPackaging(model.getBucketList().get(index));
         go(ScreenID.BUCKET_DETAIL);
         break;
+      case Event.TOGGLE:
+        List<BucketWithTagBean> toggleBucketList = new ArrayList<>();
+
+        if (event.getBool()) {
+          for (int i = 0; i < model.getBucketList().size(); i++) {
+            if (model.getBucketList().get(i).isCompleted()) {
+              toggleBucketList.add(model.getBucketList().get(i));
+            }
+          }
+          view.drawList(toggleBucketList);
+          view.changeCheckImage(event.getBool());
+        }else {
+          view.drawList(model.getBucketList());
+          view.changeCheckImage(event.getBool());
+          }
+        break;
       default:
         break;
     }

+ 11 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/MyBucketListViewHolder.java

@@ -76,5 +76,16 @@ public class MyBucketListViewHolder extends RecyclerView.ViewHolder {
     });
 
   }
+
+  public void bind(boolean clickFlag, BucketWithTagBean bean) {
+   if (clickFlag) {
+      //완료된 목록만 보기
+      layoutCardView.setVisibility(bean.isCompleted() ? View.VISIBLE : View.GONE);
+    }
+    else {
+      //클릭해제
+      layoutCardView.setVisibility(bean.isCompleted() ? View.GONE : View.VISIBLE);
+    }
+  }
 }
 

+ 1 - 1
app/src/main/res/layout/fragment_my_bucket_list.xml

@@ -69,7 +69,7 @@
       android:layout_centerVertical="true"
       android:padding="10dp"
       android:layout_marginEnd="6dp"
-      app:srcCompat="@drawable/icon_bucket_complete"/>
+      app:srcCompat="@drawable/icon_bucket_not_complete"/>
 
     <TextView
       android:id="@+id/text_view_bucket_list_count"