Преглед изворни кода

Merge branch 'develop' of https://github.com/swict/LifePlusAndroid into develop

hyodong.min пре 7 година
родитељ
комит
0bb69ccb5d

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

@@ -1,12 +1,16 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
 
+import android.content.Context;
 import android.support.annotation.NonNull;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import java.util.ArrayList;
+
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
 
 /**
  * BookMarkListAdapter
@@ -20,6 +24,13 @@ import kr.co.zumo.app.R;
  */
 public class BookMarkListAdapter extends RecyclerView.Adapter<BookMarkViewHolder> {
 
+  private Context context;
+  private ArrayList<BookmarkBean> bookmarkBeans;
+
+  public BookMarkListAdapter(Context context, ArrayList<BookmarkBean> bookmarkBeans) {
+    this.context = context;
+    this.bookmarkBeans = bookmarkBeans;
+  }
 
   @NonNull
   @Override
@@ -30,11 +41,12 @@ public class BookMarkListAdapter extends RecyclerView.Adapter<BookMarkViewHolder
 
   @Override
   public void onBindViewHolder(@NonNull BookMarkViewHolder holder, int position) {
-    holder.doDataSetting();
+    BookmarkBean bean = bookmarkBeans.get(position);
+    holder.bind(bean);
   }
 
   @Override
   public int getItemCount() {
-    return 7;
+    return bookmarkBeans.size();
   }
 }

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

@@ -6,13 +6,16 @@ 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;
 
+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.helper.ActionBarHelper;
-import kr.co.zumo.app.lifeplus.model.BlankModel;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 
@@ -26,7 +29,7 @@ import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
  * @history 하세미   [2018-10-26]   [최초 작성]
  * @since 2018-10-26
  */
-public class BookMarkListFragment extends FragmentBase<BookMarkListPresenter> {
+public class BookMarkListFragment extends FragmentBase<BookMarkListPresenter> implements IBookMarkListView{
 
   private RecyclerView recyclerViewBookMarkList;
 
@@ -38,18 +41,7 @@ public class BookMarkListFragment extends FragmentBase<BookMarkListPresenter> {
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
     recyclerViewBookMarkList = findViewById(R.id.recycler_view_book_mark_list);
-   BookMarkListAdapter bookMarkListAdapter = new BookMarkListAdapter();
-    recyclerViewBookMarkList.setLayoutManager( new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
-    recyclerViewBookMarkList.setAdapter(bookMarkListAdapter);
-    recyclerViewBookMarkList.addItemDecoration(new RecyclerView.ItemDecoration() {
-      // TODO: 클래스 분리 필요함
-      @Override
-      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
-        super.getItemOffsets(outRect, view, parent, state);
-        outRect.bottom = ResourceUtil.dpToPx(10);
-        outRect.top = ResourceUtil.dpToPx(10);
-      }
-    });
+
 
   }
 
@@ -64,7 +56,7 @@ public class BookMarkListFragment extends FragmentBase<BookMarkListPresenter> {
 
   @Override
   protected BookMarkListPresenter definePresenter() {
-    return new BookMarkListPresenter(getModel(BlankModel.class), this);
+    return new BookMarkListPresenter(getModel(BookMarkListModel.class), this);
   }
 
   @Override
@@ -81,4 +73,21 @@ public class BookMarkListFragment extends FragmentBase<BookMarkListPresenter> {
   protected boolean isSkipScreenWhenBack() {
     return false;
   }
+
+  @Override
+  public void drawContents(ArrayList<BookmarkBean> bookmarkBeans) {
+    
+    BookMarkListAdapter bookMarkListAdapter = new BookMarkListAdapter(getActivity(), bookmarkBeans);
+    recyclerViewBookMarkList.setLayoutManager( new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
+    recyclerViewBookMarkList.setAdapter(bookMarkListAdapter);
+    recyclerViewBookMarkList.addItemDecoration(new RecyclerView.ItemDecoration() {
+      // TODO: 클래스 분리 필요함
+      @Override
+      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        super.getItemOffsets(outRect, view, parent, state);
+        outRect.bottom = ResourceUtil.dpToPx(10);
+        outRect.top = ResourceUtil.dpToPx(10);
+      }
+    });
+  }
 }

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

@@ -0,0 +1,79 @@
+package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
+
+import java.util.ArrayList;
+
+import io.reactivex.disposables.Disposable;
+import kr.co.zumo.app.lifeplus.bean.api.BestBookmarkRequestBean;
+import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
+import kr.co.zumo.app.lifeplus.bean.api.BookmarkResultBean;
+import kr.co.zumo.app.lifeplus.model.Model;
+import kr.co.zumo.app.lifeplus.model.module.APIBookmarkMyModule;
+import kr.co.zumo.app.lifeplus.model.module.IAPIModuleListener;
+import kr.co.zumo.app.lifeplus.view.Event;
+
+/**
+ * BookMarkListModel
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-13]   [최초 작성]
+ * @since 2018-11-13
+ */
+public class BookMarkListModel extends Model {
+
+  private Disposable disposableBookMarkList;
+  private ArrayList<BookmarkBean> bookmarkBeans;
+
+  @Override
+  protected void destroyInternal() {
+
+  }
+
+  @Override
+  protected void startInternal() {
+
+  }
+
+  @Override
+  protected void stopInternal() {
+
+  }
+
+  @Override
+  protected void resumeInternal() {
+
+  }
+
+  @Override
+  protected void pauseInternal() {
+
+  }
+
+  public void loadBookMarkList() {
+    disposableBookMarkList = new APIBookmarkMyModule().call(new BestBookmarkRequestBean(getUserId()), new IAPIModuleListener<BookmarkResultBean>() {
+      @Override
+      public void onApiSuccess(BookmarkResultBean resultBean) {
+        bookmarkBeans = resultBean.getData();
+        onResult(new Event.Builder(Event.SUCCESS).build());
+      }
+
+      @Override
+      public void onApiReason(BookmarkResultBean resultBean) {
+
+      }
+
+      @Override
+      public void onApiError(String errorMessage) {
+
+      }
+    });
+
+  }
+
+  public ArrayList<BookmarkBean> getBookmarkBeans() {
+    return bookmarkBeans;
+  }
+
+}

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

@@ -1,10 +1,9 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
 
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
-import kr.co.zumo.app.lifeplus.model.BlankModel;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
-import kr.co.zumo.app.lifeplus.view.IView;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 
 /**
@@ -17,11 +16,18 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
  * @history 하세미   [2018-10-26]   [최초 작성]
  * @since 2018-10-26
  */
-public class BookMarkListPresenter extends Presenter<BlankModel, IView> {
+public class BookMarkListPresenter extends Presenter<BookMarkListModel, IBookMarkListView> {
 
+  private DoubleChecker doubleChecker;
 
-  public BookMarkListPresenter(BlankModel model, IView view) {
+  public BookMarkListPresenter(BookMarkListModel model, IBookMarkListView view) {
     super(model, view);
+    doubleChecker = new DoubleChecker(this::drawBookmarkContents);
+    init();
+  }
+
+  private void init(){
+    model.loadBookMarkList();
   }
 
   @Override
@@ -62,13 +68,25 @@ public class BookMarkListPresenter extends Presenter<BlankModel, IView> {
 
   @Override
   public void onResult(Event event) {
+    switch (event.getEventId()) {
+      case Event.SUCCESS:
+        doubleChecker.checkSecond();
+        break;
+      default:
+        break;
+
+    }
+  }
 
+  private void drawBookmarkContents() {
+    view.drawContents(model.getBookmarkBeans());
   }
 
   @Override
   public void onScreenReady() {
-
+    doubleChecker.checkFirst();
   }
+
   @Override
   public void onNavigationClickSearch(NavigationBar navigationBar) {
 

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

@@ -6,7 +6,10 @@ import android.widget.CheckBox;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
+
 import kr.co.zumo.app.R;
+import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
 
 /**
  * BookMarkViewHolder
@@ -32,9 +35,13 @@ public class BookMarkViewHolder extends RecyclerView.ViewHolder {
     checkBoxBookMark = itemView.findViewById(R.id.book_mark_check);
   }
 
-  public void doDataSetting(){
-    imageViewBookMark.setImageDrawable(itemView.getResources().getDrawable(R.drawable.mymain_bucket_banner_1));
-    textViewBookMarkTitle.setText(R.string.book_mark_default_text2);
+  public void bind(BookmarkBean bean) {
 
+    if (null != bean) {
+      Glide.with(imageViewBookMark).load(bean.getImageUrl()).into(imageViewBookMark);
+      imageViewBookMark.setImageDrawable(itemView.getResources().getDrawable(R.drawable.mymain_bucket_banner_1));
+      textViewBookMarkTitle.setText(bean.getTitle());
+      checkBoxBookMark.setChecked(true);
+    }
   }
 }

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

@@ -0,0 +1,21 @@
+package kr.co.zumo.app.lifeplus.view.screen.my.bookmark;
+
+import java.util.ArrayList;
+
+import kr.co.zumo.app.lifeplus.bean.api.BookmarkBean;
+import kr.co.zumo.app.lifeplus.view.IView;
+
+/**
+ * IBookMarkListView
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2018-11-13]   [최초 작성]
+ * @since 2018-11-13
+ */
+public interface IBookMarkListView extends IView {
+
+  void drawContents(ArrayList<BookmarkBean> bookmarkBeans);
+}