11package net .yazeed44 .imagepicker .ui ;
22
33import android .graphics .Color ;
4+ import android .graphics .PorterDuff ;
45import android .graphics .drawable .Drawable ;
56import android .support .v4 .app .Fragment ;
67import android .support .v4 .content .ContextCompat ;
@@ -34,6 +35,7 @@ public class ImagesThumbnailAdapter extends RecyclerView.Adapter<ImagesThumbnail
3435 protected final Picker mPickOptions ;
3536
3637 protected final Drawable mCheckIcon ;
38+ protected final Drawable mVideoIcon ;
3739 protected final Fragment mFragment ;
3840
3941
@@ -44,6 +46,7 @@ public ImagesThumbnailAdapter(final Fragment fragment, final AlbumEntry album, f
4446 mPickOptions = pickOptions ;
4547
4648 mCheckIcon = createCheckIcon ();
49+ mVideoIcon = createVideoIcon ();
4750 }
4851
4952 private Drawable createCheckIcon () {
@@ -53,6 +56,16 @@ private Drawable createCheckIcon() {
5356 return checkIcon ;
5457 }
5558
59+ private Drawable createVideoIcon () {
60+ if (!mPickOptions .videosEnabled ) {
61+ return null ;
62+ }
63+ Drawable videoIcon = ContextCompat .getDrawable (mRecyclerView .getContext (), R .drawable .ic_play_arrow );
64+ videoIcon = DrawableCompat .wrap (videoIcon );
65+ DrawableCompat .setTint (videoIcon , mPickOptions .videoIconTintColor );
66+ return videoIcon ;
67+ }
68+
5669 @ Override
5770 public ImageViewHolder onCreateViewHolder (ViewGroup viewGroup , int i ) {
5871 final View imageLayout = LayoutInflater .from (mRecyclerView .getContext ()).inflate (R .layout .element_image , viewGroup , false );
@@ -106,7 +119,7 @@ public void drawGrid(final ImageViewHolder holder, final ImageEntry imageEntry)
106119
107120
108121 holder .check .setImageDrawable (mCheckIcon );
109-
122+ holder . videoIcon . setVisibility ( View . GONE );
110123
111124 if (imageEntry .isPicked ) {
112125 holder .itemView .setBackgroundColor (mPickOptions .imageBackgroundColorWhenChecked );
@@ -127,6 +140,13 @@ public void drawGrid(final ImageViewHolder holder, final ImageEntry imageEntry)
127140 if (mPickOptions .pickMode == Picker .PickMode .SINGLE_IMAGE ) {
128141 holder .check .setVisibility (View .GONE );
129142 }
143+
144+ if (imageEntry .isVideo ) {
145+ holder .thumbnail .setColorFilter (mPickOptions .videoThumbnailOverlayColor , PorterDuff .Mode .MULTIPLY );
146+ holder .videoIcon .setImageDrawable (mVideoIcon );
147+ holder .videoIcon .setVisibility (View .VISIBLE );
148+ }
149+
130150 }
131151
132152
@@ -153,12 +173,14 @@ public void pickImage(final ImageViewHolder holder, final ImageEntry imageEntry)
153173 public static class ImageViewHolder extends RecyclerView .ViewHolder {
154174 private final ImageView thumbnail ;
155175 private final ImageView check ;
176+ private final ImageView videoIcon ;
156177
157178 public ImageViewHolder (final View itemView , final Util .OnClickImage listener ) {
158179 super (itemView );
159180
160181 thumbnail = (ImageView ) itemView .findViewById (R .id .image_thumbnail );
161182 check = (ImageView ) itemView .findViewById (R .id .image_check );
183+ videoIcon = (ImageView ) itemView .findViewById (R .id .image_video_icon );
162184
163185 itemView .setOnClickListener (new View .OnClickListener () {
164186 @ Override
0 commit comments