Browse Source

[컨텐츠][New] html 페이지에 딤 추가

hyodong.min 7 years ago
parent
commit
492b02ea1a

+ 3 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsAdapter.java

@@ -103,21 +103,20 @@ public class ContentsAdapter extends RecyclerView.Adapter<ContentsHolder> {
     };
 
     if (holder instanceof ContentsCardHolder) {
-      ((ContentsCardHolder) holder).setItemCount(getItemCount());
       ContentsDetailBean bean = contentsDetailBeans.get(position);
-      holder.bind(position, bean, eventListener);
+      holder.bind(position, bean, getItemCount(), eventListener);
 
     }
     else if (holder instanceof ContentsSeriesHolder) {
       SeriesListBean seriesListBean = new SeriesListBean();
       seriesListBean.setSeriesInfo(seriesInfo);
       seriesListBean.setSeriesItemList(seriesItemBeans);
-      holder.bind(position, seriesListBean, eventListener);
+      holder.bind(position, seriesListBean, getItemCount(), eventListener);
     }
     else {
       Log.e("APP#  ContentsAdapter | onBindViewHolder", "| position: " + position + " - " + this.hashCode());
       ContentsDetailBean bean = contentsDetailBeans.get(position);
-      holder.bind(position, bean, eventListener);
+      holder.bind(position, bean, getItemCount(), eventListener);
     }
   }
 

+ 1 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsCardHolder.java

@@ -37,7 +37,6 @@ import kr.co.zumo.app.lifeplus.view.Visibler;
  */
 public class ContentsCardHolder extends ContentsHolder<ContentsDetailBean> {
 
-  protected int itemCount;
   protected ImageView imageViewCardListicleCover;
   protected TextView textViewPageNumber;
   protected ConstraintLayout layoutMoreInfo;
@@ -47,8 +46,8 @@ public class ContentsCardHolder extends ContentsHolder<ContentsDetailBean> {
 
   public ContentsCardHolder(View itemView) {
     super(itemView);
-    textViewPageNumber = itemView.findViewById(R.id.text_view_page_number);
     imageViewCardListicleCover = itemView.findViewById(R.id.image_view);
+    textViewPageNumber = itemView.findViewById(R.id.text_view_page_number);
     layoutMoreInfo = itemView.findViewById(R.id.layout_more_info);
     dim0 = itemView.findViewById(R.id.view_dim_0);
     dim1 = itemView.findViewById(R.id.view_dim_1);
@@ -109,7 +108,6 @@ public class ContentsCardHolder extends ContentsHolder<ContentsDetailBean> {
       }
     }
 
-
     textViewPageNumber.setText(String.valueOf(getAdapterPosition()) + " / " + (itemCount - 1));
     textViewPageNumber.setTypeface(null, Typeface.BOLD);
     layoutMoreInfo.setVisibility(View.GONE);
@@ -124,8 +122,4 @@ public class ContentsCardHolder extends ContentsHolder<ContentsDetailBean> {
   public void detach() {
 //    Glide.with(imageViewCardListicleCover).clear(imageViewCardListicleCover);
   }
-
-  public void setItemCount(int itemCount) {
-    this.itemCount = itemCount;
-  }
 }

+ 3 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsHolder.java

@@ -19,15 +19,17 @@ public abstract class ContentsHolder<T> extends RecyclerView.ViewHolder {
 
   protected T bean;
   protected int index;
+  protected int itemCount;
   protected IEventListener listener;
 
   public ContentsHolder(View itemView) {
     super(itemView);
   }
 
-  public final void bind(int index, T bean, IEventListener listener) {
+  public final void bind(int index, T bean, int itemCount, IEventListener listener) {
     this.index = index;
     this.bean = bean;
+    this.itemCount = itemCount;
     this.listener = listener;
 
     bindInternal();

+ 28 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsHtmlHolder.java

@@ -1,7 +1,10 @@
 package kr.co.zumo.app.lifeplus.view.screen.contents;
 
 import android.annotation.SuppressLint;
+import android.graphics.Bitmap;
+import android.graphics.Typeface;
 import android.net.http.SslError;
+import android.support.constraint.ConstraintLayout;
 import android.util.Log;
 import android.view.View;
 import android.webkit.JavascriptInterface;
@@ -9,6 +12,7 @@ import android.webkit.SslErrorHandler;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
+import android.widget.TextView;
 
 import com.google.gson.Gson;
 
@@ -17,6 +21,7 @@ import kr.co.zumo.app.lifeplus.bean.HtmlBean;
 import kr.co.zumo.app.lifeplus.bean.api.ContentsDetailBean;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
+import kr.co.zumo.app.lifeplus.view.Visibler;
 import kr.co.zumo.app.lifeplus.view.WebConstant;
 
 /**
@@ -32,10 +37,21 @@ import kr.co.zumo.app.lifeplus.view.WebConstant;
 public class ContentsHtmlHolder extends ContentsHolder<ContentsDetailBean> {
 
   private WebView webView;
+  protected TextView textViewPageNumber;
+  protected ConstraintLayout layoutMoreInfo;
+  protected View dim0;
+  protected View dim1;
+  protected View dim2;
 
   public ContentsHtmlHolder(View itemView) {
     super(itemView);
     webView = itemView.findViewById(R.id.web_view);
+    textViewPageNumber = itemView.findViewById(R.id.text_view_page_number);
+    layoutMoreInfo = itemView.findViewById(R.id.layout_more_info);
+    dim0 = itemView.findViewById(R.id.view_dim_0);
+    dim1 = itemView.findViewById(R.id.view_dim_1);
+    dim2 = itemView.findViewById(R.id.view_dim_2);
+    Visibler.invisible(dim0, dim1, dim2);
   }
 
   @SuppressLint("JavascriptInterface")
@@ -46,6 +62,14 @@ public class ContentsHtmlHolder extends ContentsHolder<ContentsDetailBean> {
     String url = bean.getUtilityUrl();
     if (null != webView && StringUtil.isFull(url)) {
       webView.setWebViewClient(new WebViewClient() {
+
+        @Override
+        public void onPageStarted(WebView view, String url, Bitmap favicon) {
+          super.onPageStarted(view, url, favicon);
+
+          Visibler.visible(dim0, dim1, dim2);
+        }
+
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
           view.loadUrl(url);
@@ -65,6 +89,10 @@ public class ContentsHtmlHolder extends ContentsHolder<ContentsDetailBean> {
 
       webView.loadUrl(url);
     }
+
+    textViewPageNumber.setText(String.valueOf(getAdapterPosition()) + " / " + (itemCount - 1));
+    textViewPageNumber.setTypeface(null, Typeface.BOLD);
+    layoutMoreInfo.setVisibility(View.GONE);
   }
 
   @JavascriptInterface

+ 83 - 0
app/src/main/res/layout/contents_html.xml

@@ -11,4 +11,87 @@
     android:id="@+id/web_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
+
+  <View
+    android:id="@+id/view_dim_0"
+    android:layout_width="match_parent"
+    android:layout_height="235dp"
+    android:background="@drawable/card_cover_dim_top"
+    android:rotation="180"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"/>
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/layout_more_info"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginBottom="24dp"
+    android:background="@drawable/rectangle_black_more_info"
+    android:paddingStart="13dp"
+    android:paddingTop="5dp"
+    android:paddingEnd="13dp"
+    android:paddingBottom="5dp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent">
+
+    <ImageView
+      android:id="@+id/more_info_image"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toStartOf="@+id/more_info_text"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/icon_info_arrow"
+      />
+
+    <TextView
+      android:id="@+id/more_info_text"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="2dp"
+      android:gravity="center_horizontal"
+      android:lineSpacingExtra="3.5sp"
+      android:text="@string/more_info"
+      android:textColor="@color/CFFFFFF"
+      android:textSize="12sp"
+      android:textStyle="bold"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintStart_toEndOf="@+id/more_info_image"
+      />
+
+  </android.support.constraint.ConstraintLayout>
+
+  <View
+    android:id="@+id/view_dim_1"
+    android:layout_width="match_parent"
+    android:layout_height="138dp"
+    android:background="@drawable/card_dim_bottom_12"
+    app:layout_constraintBottom_toBottomOf="parent"/>
+
+  <View
+    android:id="@+id/view_dim_2"
+    android:layout_width="166dp"
+    android:layout_height="162dp"
+    android:background="@drawable/dim_card_listicle_3"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"/>
+
+  <TextView
+    android:id="@+id/text_view_page_number"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginEnd="25dp"
+    android:layout_marginBottom="28dp"
+    android:gravity="end"
+    android:lineSpacingExtra="4sp"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="12sp"
+    android:textStyle="bold"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    tools:text="1 / 5"
+    />
 </android.support.constraint.ConstraintLayout>