Browse Source

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

hyodong.min 6 years ago
parent
commit
e8afcc9021

+ 7 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/category/banner/MainBannerAdapter.java

@@ -1,5 +1,6 @@
 package kr.co.zumo.app.lifeplus.view.custom.category.banner;
 
+import android.support.annotation.DrawableRes;
 import android.support.annotation.NonNull;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
@@ -29,18 +30,22 @@ public class MainBannerAdapter extends RecyclerView.Adapter<MainBannerViewHolder
   private LayoutInflater inflater;
   private boolean isDimLayerEnabled;
 
-  public MainBannerAdapter(LayoutInflater inflater, List<? extends IImageTitleBean> textImageBeanList, IEventListener listener, boolean isDimLayerEnabled) {
+  @DrawableRes
+  private int placeholderResource;
+
+  public MainBannerAdapter(LayoutInflater inflater, List<? extends IImageTitleBean> textImageBeanList, IEventListener listener, boolean isDimLayerEnabled, @DrawableRes int placeholderResource) {
     this.inflater = inflater;
     this.textImageBeanList = textImageBeanList;
     this.listener = listener;
     this.isDimLayerEnabled = isDimLayerEnabled;
+    this.placeholderResource = placeholderResource;
   }
 
   @NonNull
   @Override
   public MainBannerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
     View view = inflater.inflate(R.layout.main_banner_view_item_is_dim, parent, false);
-    return new MainBannerViewHolder(view, isDimLayerEnabled);
+    return new MainBannerViewHolder(view, isDimLayerEnabled, placeholderResource);
   }
 
   @Override

+ 78 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/category/banner/MainBannerView.java

@@ -2,6 +2,7 @@ package kr.co.zumo.app.lifeplus.view.custom.category.banner;
 
 import android.content.Context;
 import android.support.annotation.ColorRes;
+import android.support.annotation.DrawableRes;
 import android.support.constraint.ConstraintLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -34,6 +35,21 @@ public class MainBannerView extends ConstraintLayout {
   private RecyclerView recyclerView;
   private CustomIndicator customIndicator;
   private View view;
+  private Context context;
+  private List<? extends IImageTitleBean> textImageBeanList;
+  private IEventListener listener;
+
+  @ColorRes
+  private int activeColor;
+
+  @ColorRes
+  private int inactiveColor;
+
+  private boolean isDim;
+
+  @DrawableRes
+  private int placeholder;
+
 
   public MainBannerView(Context context) {
     super(context);
@@ -47,9 +63,16 @@ public class MainBannerView extends ConstraintLayout {
     super(context, attrs, defStyleAttr);
   }
 
-  public void init(Context context, List<? extends IImageTitleBean> textImageBeanList,
-                   IEventListener listener, boolean isDimLayerEnabled,
-                   @ColorRes int activeColor, @ColorRes int inActiveColor) {
+  private void init(Builder builder) {
+
+    this.context = builder.context;
+    this.textImageBeanList = builder.textImageBeanList;
+    this.listener = builder.listener;
+    this.activeColor = builder.activeColor;
+    this.inactiveColor = builder.inactiveColor;
+    this.isDim = builder.isDim;
+    this.placeholder = builder.placeholder;
+
 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     view = inflater.inflate(R.layout.main_banner_view, this);
@@ -67,7 +90,7 @@ public class MainBannerView extends ConstraintLayout {
       }
     };
     recyclerView.setLayoutManager(layoutManager);
-    customIndicator.setIndicator(recyclerView, activeColor, inActiveColor, event -> {
+    customIndicator.setIndicator(recyclerView, activeColor, inactiveColor, event -> {
       recyclerView.smoothScrollToPosition(event.getIndex());
     });
 
@@ -82,7 +105,7 @@ public class MainBannerView extends ConstraintLayout {
       if (null != listener) {
         listener.onEvent(event);
       }
-    }, isDimLayerEnabled);
+    }, isDim, placeholder);
 
     recyclerView.setOnFlingListener(null);
     snapHelper.attachToRecyclerView(recyclerView);
@@ -97,4 +120,54 @@ public class MainBannerView extends ConstraintLayout {
     this.removeAllViews();
     customIndicator = null;
   }
+
+  public static class Builder {
+
+    private Context context;
+    private List<? extends IImageTitleBean> textImageBeanList;
+    private IEventListener listener;
+
+    @ColorRes
+    private int activeColor = R.color.CFFFFFF;
+
+    @ColorRes
+    private int inactiveColor = R.color.C4DFFFFFF;
+
+    private boolean isDim = true;
+
+    @DrawableRes
+    private int placeholder = R.drawable.image_loading_banner;
+
+    public Builder(Context context, List<? extends IImageTitleBean> textImageBeanList,
+                   IEventListener listener) {
+      this.context = context;
+      this.textImageBeanList = textImageBeanList;
+      this.listener = listener;
+    }
+
+    public Builder activeColor(@ColorRes int activeColor) {
+      this.activeColor = activeColor;
+      return this;
+    }
+
+    public Builder inactiveColor(@ColorRes int inactiveColor) {
+      this.inactiveColor = inactiveColor;
+      return this;
+    }
+
+    public Builder isDim(boolean isDim) {
+      this.isDim = isDim;
+      return this;
+    }
+
+    public Builder placeholder(@DrawableRes int placeholder) {
+      this.placeholder = placeholder;
+      return this;
+    }
+
+    public Builder build(MainBannerView bannerView) {
+      bannerView.init(this);
+      return this;
+    }
+  }
 }

+ 7 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/category/banner/MainBannerViewHolder.java

@@ -1,5 +1,6 @@
 package kr.co.zumo.app.lifeplus.view.custom.category.banner;
 
+import android.support.annotation.DrawableRes;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.ImageView;
@@ -33,12 +34,16 @@ public class MainBannerViewHolder extends RecyclerView.ViewHolder {
   private TextView textViewBannerItem;
   private TextView textFlag;
 
-  public MainBannerViewHolder(View itemView, boolean isDimLayerEnabled) {
+  @DrawableRes
+  private int placeholderResource;
+
+  public MainBannerViewHolder(View itemView, boolean isDimLayerEnabled, @DrawableRes int placeholderResource) {
     super(itemView);
 
     imageViewBannerItem = itemView.findViewById(R.id.image_view_banner_item);
     textViewBannerItem = itemView.findViewById(R.id.text_view_banner_item);
     textFlag = itemView.findViewById(R.id.text_flag);
+    this.placeholderResource = placeholderResource;
 
     if (false == isDimLayerEnabled) {
       itemView.findViewById(R.id.view_dim).setVisibility(View.GONE);
@@ -50,7 +55,7 @@ public class MainBannerViewHolder extends RecyclerView.ViewHolder {
       Glide.with(imageViewBannerItem)
         .asBitmap()
         .apply(new RequestOptions().centerCrop())
-        .apply(new RequestOptions().placeholder(ResourceUtil.getDrawable(imageViewBannerItem.getContext(), R.drawable.image_loading_banner)))
+        .apply(new RequestOptions().placeholder(ResourceUtil.getDrawable(imageViewBannerItem.getContext(), placeholderResource)))
         .load(bean.getImageUrl()).into(imageViewBannerItem);
 
       String title = bean.getTitle();

+ 7 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/PromotionDialog.java

@@ -70,10 +70,15 @@ public class PromotionDialog extends DialogBase<ICustomDialogListener<PromotionD
       }
     });
 
-    mainBannerView.init(getActivity(), imageBeanList, event -> {
+    new MainBannerView.Builder(getActivity(), imageBeanList, event -> {
       if (null != getCustomListener()) {
         getCustomListener().onDialogResult(PromotionDialog.this, event);
       }
-    }, false, R.color.C000000, R.color.C1A000000);
+    }).activeColor(R.color.C000000)
+      .inactiveColor(R.color.C19000000)
+      .isDim(false)
+      .placeholder(R.drawable.image_loading_promotion)
+      .build(mainBannerView);
   }
+
 }

+ 10 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/PromotionFullScreenDialog.java

@@ -10,6 +10,7 @@ import android.widget.TextView;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.custom.category.banner.MainBannerView;
 
 /**
  * PromotionAllDialog
@@ -47,8 +48,14 @@ public class PromotionFullScreenDialog extends PromotionDialog {
       }
     });
 
-    mainBannerView.init(getActivity(), imageBeanList, event -> {
-      getCustomListener().onDialogResult(PromotionFullScreenDialog.this, event);
-    }, false, R.color.CFFFFFF, R.color.C4DFFFFFF);
+    new MainBannerView.Builder(getActivity(), imageBeanList, event -> {
+      if (null != getCustomListener()) {
+        getCustomListener().onDialogResult(PromotionFullScreenDialog.this, event);
+      }
+    }).activeColor(R.color.CFFFFFF)
+      .inactiveColor(R.color.C4DFFFFFF)
+      .isDim(true)
+      .placeholder(R.drawable.image_loading_full)
+      .build(mainBannerView);
   }
 }

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

@@ -4,6 +4,8 @@ import android.view.View;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.CategoryBannerListBean;
+import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.IEventListener;
 import kr.co.zumo.app.lifeplus.view.custom.category.banner.MainBannerView;
 
 /**
@@ -33,11 +35,12 @@ public class CategoryMainBannerViewHolder extends CategoryMainViewHolder<Categor
 
     if (null != bean) {
       mainBannerViewFirstCategory = itemView.findViewById(R.id.main_banner_view_first_category);
-      mainBannerViewFirstCategory.init(itemView.getContext(), bean.getBannerBeans(), event -> {
-        if (null != listener) {
+      new MainBannerView.Builder(itemView.getContext(), bean.getBannerBeans(), new IEventListener() {
+        @Override
+        public void onEvent(Event event) {
           listener.onEvent(event);
         }
-      }, true, R.color.CFFFFFF, R.color.C4DFFFFFF);
+      }).build(mainBannerViewFirstCategory);
     }
 
   }

+ 8 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/entry/EventQuestionFragment.java

@@ -234,9 +234,14 @@ public class EventQuestionFragment extends FragmentBase<EventQuestionPresenter>
 
     //공지사항 영역
     View noticeView = inflater.inflate(R.layout.event_participation_item_notice, null);
-    EventQuestionNoticeView eventQuestionNoticeView = new EventQuestionNoticeView(noticeView);
-    eventQuestionNoticeView.draw(detailBean);
-    layoutContainer.addView(noticeView);
+    String notice = detailBean.getNotice();
+    
+    if (notice != null && notice.trim().length() != 0) {
+      EventQuestionNoticeView eventQuestionNoticeView = new EventQuestionNoticeView(noticeView);
+      eventQuestionNoticeView.draw(notice);
+      layoutContainer.addView(noticeView);
+    }
+
 
   }
 

+ 2 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/entry/EventQuestionNoticeView.java

@@ -8,7 +8,6 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import kr.co.zumo.app.R;
-import kr.co.zumo.app.lifeplus.bean.api.EventDetailBean;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 
 /**
@@ -32,8 +31,8 @@ class EventQuestionNoticeView extends RecyclerView.ViewHolder {
     layoutContainer = itemView.findViewById(R.id.layout_container);
   }
 
-  public void draw(EventDetailBean bean) {
-    String[] contentsArray = bean.getNotice().split("\n");
+  public void draw(String notice) {
+    String[] contentsArray = notice.split("\n");
     LayoutInflater inflater = (LayoutInflater) itemView.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
     for (int i = 0; i < contentsArray.length; ++i) {

+ 18 - 0
app/src/main/res/drawable/image_loading_promotion.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0"
+  encoding="utf-8"?>
+<layer-list
+  xmlns:android="http://schemas.android.com/apk/res/android">
+  <item>
+    <shape>
+      <size
+        android:width="261dp"
+        android:height="344dp"/>
+      <solid android:color="@color/CF6F6F6"/>
+    </shape>
+  </item>
+  <item
+
+    android:drawable="@drawable/bi"
+    android:gravity="center"
+    />
+</layer-list>