Browse Source

[북마크][Common] 최근 많이 북마크한 콘텐츠 추천 및 북마크 리스트 클릭시 상세 이동

Hasemi 7 years ago
parent
commit
d6dc17f0fe

+ 18 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/BookMarkListAdapter.java

@@ -11,6 +11,8 @@ import java.util.ArrayList;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
 
 /**
  * BookMarkListAdapter
@@ -22,27 +24,37 @@ import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
  * @history 하세미   [2018-10-26]   [최초 작성]
  * @since 2018-10-26
  */
-public class BookMarkListAdapter extends RecyclerView.Adapter<BookMarkViewHolder> {
+public class BookMarkListAdapter extends RecyclerView.Adapter<BookMarkListView> {
 
   private Context context;
   private ArrayList<BookmarkBean> bookmarkBeans;
+  private IEventListener listener;
 
-  public BookMarkListAdapter(Context context, ArrayList<BookmarkBean> bookmarkBeans) {
+  public BookMarkListAdapter(Context context, ArrayList<BookmarkBean> bookmarkBeans, IEventListener listener) {
     this.context = context;
     this.bookmarkBeans = bookmarkBeans;
+    this.listener = listener;
+
   }
 
   @NonNull
   @Override
-  public BookMarkViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+  public BookMarkListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
     View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.book_mark_list_view, parent, false);
-    return new BookMarkViewHolder(view);
+    return new BookMarkListViewHolder(view);
   }
 
   @Override
-  public void onBindViewHolder(@NonNull BookMarkViewHolder holder, int position) {
+  public void onBindViewHolder(@NonNull BookMarkListView holder, int position) {
     BookmarkBean bean = bookmarkBeans.get(position);
-    holder.bind(bean);
+    holder.bind(bean, new IEventListener() {
+      @Override
+      public void onEvent(Event event) {
+        if (null != listener) {
+          listener.onEvent(event);
+        }
+      }
+    });
   }
 
   @Override

+ 9 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/BookMarkListFragment.java

@@ -6,7 +6,6 @@ import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -17,6 +16,8 @@ import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
 import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 
 /**
@@ -77,7 +78,13 @@ public class BookMarkListFragment extends FragmentBase<BookMarkListPresenter> im
   @Override
   public void drawContents(ArrayList<BookmarkBean> bookmarkBeans) {
     
-    BookMarkListAdapter bookMarkListAdapter = new BookMarkListAdapter(getActivity(), bookmarkBeans);
+    BookMarkListAdapter bookMarkListAdapter = new BookMarkListAdapter(getActivity(), bookmarkBeans, new IEventListener() {
+      @Override
+      public void onEvent(Event event) {
+        presenter.onEvent(event);
+      }
+    });
+
     recyclerViewBookMarkList.setLayoutManager( new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
     recyclerViewBookMarkList.setAdapter(bookMarkListAdapter);
     recyclerViewBookMarkList.addItemDecoration(new RecyclerView.ItemDecoration() {

+ 16 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/BookMarkListPresenter.java

@@ -1,5 +1,7 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
 
+import kr.co.zumo.app.lifeplus.bean.ContentsBean;
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
@@ -26,7 +28,7 @@ public class BookMarkListPresenter extends Presenter<BookMarkListModel, IBookMar
     init();
   }
 
-  private void init(){
+  private void init() {
     model.loadBookMarkList();
   }
 
@@ -63,6 +65,19 @@ public class BookMarkListPresenter extends Presenter<BookMarkListModel, IBookMar
 
   @Override
   protected void onEventInternal(Event event) {
+    switch (event.getEventId()) {
+      case Event.CONTENTS:
+        ContentsBean bean = new ContentsBean();
+        bean.setItemNumber(model.getBookmarkBeans().get(event.getIndex()).getItemNumber());
+        bean.setImageUrl(model.getBookmarkBeans().get(event.getIndex()).getImageUrl());
+        DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+        deliveryHelper.setPackaging(bean);
+
+        go(ScreenID.CONTENTS);
+        break;
+      default:
+        break;
+    }
 
   }
 

+ 27 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/BookMarkListView.java

@@ -0,0 +1,27 @@
+package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
+
+/**
+ * BookMarkListView
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-13]   [최초 작성]
+ * @since 2018-11-13
+ */
+public class BookMarkListView extends RecyclerView.ViewHolder {
+
+  public BookMarkListView(View itemView) {
+    super(itemView);
+  }
+
+  public void bind(BookmarkBean bean, IEventListener listener){
+  }
+}

+ 11 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/BookMarkViewHolder.java

@@ -1,6 +1,5 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
 
-import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.ImageView;
@@ -10,6 +9,8 @@ import com.bumptech.glide.Glide;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
 
 /**
  * BookMarkViewHolder
@@ -21,13 +22,13 @@ import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
  * @history 하세미   [2018-10-26]   [최초 작성]
  * @since 2018-10-26
  */
-public class BookMarkViewHolder extends RecyclerView.ViewHolder {
+public class BookMarkListViewHolder extends BookMarkListView {
   private ImageView imageViewBookMark;
   private TextView textViewBookMarkTitle;
   private CheckBox checkBoxLike;
   private CheckBox checkBoxBookMark;
 
-  public BookMarkViewHolder(View itemView) {
+  public BookMarkListViewHolder(View itemView) {
     super(itemView);
     imageViewBookMark = itemView.findViewById(R.id.image_view_book_mark);
     textViewBookMarkTitle = itemView.findViewById(R.id.text_view_book_mark_title);
@@ -35,7 +36,8 @@ public class BookMarkViewHolder extends RecyclerView.ViewHolder {
     checkBoxBookMark = itemView.findViewById(R.id.book_mark_check);
   }
 
-  public void bind(BookmarkBean bean) {
+
+  public void bind(BookmarkBean bean, IEventListener listener) {
 
     if (null != bean) {
       Glide.with(imageViewBookMark).load(bean.getImageUrl()).into(imageViewBookMark);
@@ -43,5 +45,10 @@ public class BookMarkViewHolder extends RecyclerView.ViewHolder {
       textViewBookMarkTitle.setText(bean.getTitle());
       checkBoxBookMark.setChecked(true);
     }
+
+    imageViewBookMark.setOnClickListener(view -> { if (null != listener) {
+        listener.onEvent(new Event.Builder(Event.CONTENTS).index(getAdapterPosition()).build());
+      }
+    });
   }
 }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/DefaultBookMarkAdapter.java

@@ -79,7 +79,7 @@ public class DefaultBookMarkAdapter extends RecyclerView.Adapter<DefaultBookMark
             listener.onEvent(event);
           }
         });
-        holder.setDefaultImageList(defaultBookmarkBeans.get(position-2));
+        holder.setDefaultImageList(defaultBookmarkBeans.get(position - 2));
         break;
       default:
         break;

+ 11 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/DefaultBookMarkImageViewHolder.java

@@ -8,6 +8,7 @@ import com.bumptech.glide.Glide;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
+import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IEventListener;
 
 /**
@@ -23,6 +24,7 @@ import kr.co.zumo.app.lifeplus.view.IEventListener;
 public class DefaultBookMarkImageViewHolder extends DefaultBookMarkView {
   private ImageView imageViewDefaultBookMark;
   private TextView textViewDefaultBookMark;
+  private IEventListener listener;
 
   public DefaultBookMarkImageViewHolder(View itemView) {
     super(itemView);
@@ -34,16 +36,21 @@ public class DefaultBookMarkImageViewHolder extends DefaultBookMarkView {
   @Override
   public void bind(IEventListener listener) {
     super.bind(listener);
+    imageViewDefaultBookMark.setOnClickListener(view -> {
+      if (null != listener) {
+        listener.onEvent(new Event.Builder(Event.CONTENTS).index(getAdapterPosition() - 2).build());
+      }
+    });
   }
 
   @Override
   public void setDefaultImageList(BookmarkBean bean) {
     super.setDefaultImageList(bean);
 
-    if (null!= bean) {
-        Glide.with(imageViewDefaultBookMark).load(bean.getImageUrl()).into(imageViewDefaultBookMark);
-        textViewDefaultBookMark.setText(bean.getTitle());
-
+    if (null != bean) {
+      Glide.with(imageViewDefaultBookMark).load(bean.getImageUrl()).into(imageViewDefaultBookMark);
+      textViewDefaultBookMark.setText(bean.getTitle());
     }
+
   }
 }

+ 12 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bookmark/DefaultBookMarkPresenter.java

@@ -1,5 +1,7 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
 
+import kr.co.zumo.app.lifeplus.bean.ContentsBean;
+import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
@@ -79,6 +81,15 @@ public class DefaultBookMarkPresenter extends Presenter<DefaultBookMarkModel, ID
       case Event.FIFTH_CATEGORY:
         go(ScreenID.FIFTH_CATEGORY, ScreenID.DIRECTION_NEXT);
         break;
+      case Event.CONTENTS:
+        ContentsBean bean = new ContentsBean();
+        bean.setItemNumber(model.getDefaultBookmarkList().get(event.getIndex()).getItemNumber());
+        bean.setImageUrl(model.getDefaultBookmarkList().get(event.getIndex()).getImageUrl());
+        DeliveryHelper deliveryHelper = getHelper(DeliveryHelper.class);
+        deliveryHelper.setPackaging(bean);
+
+        go(ScreenID.CONTENTS);
+        break;
       default:
         break;
     }
@@ -106,6 +117,6 @@ public class DefaultBookMarkPresenter extends Presenter<DefaultBookMarkModel, ID
   }
 
   private void drawDefaultBookmarkList() {
-      view.drawContents(model.getDefaultBookmarkList());
+    view.drawContents(model.getDefaultBookmarkList());
   }
 }