Browse Source

[알림][New] view 로 전환, push update 처리

hyodong.min 6 years ago
parent
commit
6a1f88dfe2

+ 1 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/notification/NotiFragment.java

@@ -55,7 +55,7 @@ public class NotiFragment extends FragmentBase<NotiPresenter> implements INotiVi
     tabLayoutAlarm.setupWithViewPager(viewPagerAlarm, true);
     tabBarLayoutAlarm.setupWithViewPager(viewPagerAlarm, true);
 
-//    viewPagerAlarm.setOffscreenPageLimit(10);
+    viewPagerAlarm.setOffscreenPageLimit(10);
 
     viewPagerAlarm.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
       @Override
@@ -102,9 +102,6 @@ public class NotiFragment extends FragmentBase<NotiPresenter> implements INotiVi
     return false;
   }
 
-  //private NotiPagerAdapter notiPagerAdapter;
-
-
   @Override
   public void drawList(List<NoticeBean> beans) {
     Log.i("APP# NotiFragment | drawList", "|" + "draw size: " + beans.size());

+ 6 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/notification/NotiListAdapter.java

@@ -2,7 +2,6 @@ package kr.co.zumo.app.lifeplus.view.screen.notification;
 
 import android.support.annotation.NonNull;
 import android.support.v7.widget.RecyclerView;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -37,7 +36,6 @@ public class NotiListAdapter extends RecyclerView.Adapter<NotiViewHolder> {
 
   public NotiListAdapter(List<NoticeBean> beans, IEventListener listener) {
     this.beans = beans;
-    Log.e("APP#  NotiListAdapter | NotiListAdapter, 39", "|" + "===>" + beans.size()  );
     this.listener = listener;
   }
 
@@ -183,4 +181,10 @@ public class NotiListAdapter extends RecyclerView.Adapter<NotiViewHolder> {
       }
     }
   }
+
+  public void update(List<NoticeBean> beans) {
+    this.beans = beans;
+
+    notifyDataSetChanged();
+  }
 }

+ 14 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/notification/NotiView.java

@@ -32,6 +32,7 @@ public class NotiView {
   private Context context;
   private NotiListAdapter notiListAdapter;
   private RecyclerView recyclerView;
+  private View layoutNothing;
   private int index;
 
   public NotiView(Context context, View view, int position, List<NoticeBean> dataList, IEventListener listener) {
@@ -39,7 +40,7 @@ public class NotiView {
     this.listener = listener;
     this.index = position;
     setLayoutNothingText(view, position);
-    init(view, dataList, this.listener);
+    init(view, dataList);
   }
 
   private void setLayoutNothingText(View view, int position) {
@@ -57,11 +58,10 @@ public class NotiView {
    *
    * @param view
    * @param beans
-   * @param listener
    */
-  public void init(View view, List<NoticeBean> beans, IEventListener listener) {
+  public void init(View view, List<NoticeBean> beans) {
     recyclerView = view.findViewById(R.id.recycler_view_alarm_list);
-    View layoutNothing = view.findViewById(R.id.layout_nothing);
+    layoutNothing = view.findViewById(R.id.layout_nothing);
     recyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
     recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
       @Override
@@ -81,6 +81,16 @@ public class NotiView {
     }
   }
 
+  public void update(List<NoticeBean> beans) {
+    if (null == beans || beans.size() == 0) {
+      layoutNothing.setVisibility(View.VISIBLE);
+    }
+    else {
+      layoutNothing.setVisibility(View.GONE);
+      notiListAdapter.update(beans);
+    }
+  }
+
   public void setFocusPage(int position) {
     if (this.index == position) {
       if (NoticeBean.CATEGORY_NOTICE.equals(NoticeBean.getCategoryName(this.index))) {

+ 11 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/notification/NotiViewPagerAdapter.java

@@ -4,7 +4,6 @@ import android.content.Context;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.view.PagerAdapter;
-import android.util.Log;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -59,9 +58,7 @@ public class NotiViewPagerAdapter extends PagerAdapter {
   @NonNull
   @Override
   public Object instantiateItem(@NonNull ViewGroup container, int position) {
-    Log.e("APP#  NotiViewPagerAdapter | instantiateItem, 77", "position |" + position);
-
-    if(null == notiViews) {
+    if (null == notiViews) {
       notiViews = new ArrayList<>();
     }
 
@@ -73,11 +70,20 @@ public class NotiViewPagerAdapter extends PagerAdapter {
     return view;
   }
 
+  /**
+   * 리스트 업데이트
+   *
+   * @param noticeBeans
+   */
   public void update(List<NoticeBean> noticeBeans) {
     this.noticeBeans = noticeBeans;
     categoryMap = null;
 
-    notifyDataSetChanged();
+    int len = notiViews.size();
+    for (int i = 0; i < len; ++i) {
+      NotiView notiView = notiViews.get(i);
+      notiView.update(getDataList(i));
+    }
   }
 
   private List<NoticeBean> getDataList(int category) {