package Ġme . tag av ari . air message . messaging . view holder Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . text . format . Date Utils Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . resource . drawable . Drawable Transition Options Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . bump tech . glide . signature . Media Store Signature Ċ import Ġcom . bump tech . glide . signature . Object Key Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Composite Disposable Ċ import Ġme . tag av ari . air message . constants . MIME Constants Ċ import Ġme . tag av ari . air message . enums . Attachment Type Ċ import Ġme . tag av ari . air message . helper . File Helper . compare Mime Types Ċ import Ġme . tag av ari . air message . messaging . File Display Metadata Ċ import Ġme . tag av ari . air message . util . Union Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠAn Ġattachment Ġtile Ġthat Ġholds Ġa Ġvisual Ġmedia Ġfile Ċ Ġ* Ġ@ param Ġimage Thumbnail ĠThe Ġmain Ġthumbnail Ġimage Ġview Ċ Ġ* Ġ@ param Ġimage Flag G IF ĠAn Ġicon Ġindicator Ġif Ġthis Ġattachment Ġis Ġa ĠGIF Ċ Ġ* Ġ@ param Ġgroup Video ĠThe Ġview Ġgroup Ġto Ġshow Ġif Ġthis Ġattachment Ġis Ġa Ġvideo Ċ Ġ* Ġ@ param Ġlabel Video ĠThe Ġtime Ġlabel Ġif Ġthis Ġattachment Ġis Ġa Ġvideo Ċ Ġ*/ Ċ class ĠV H Attachment Tile Content Media ( Ċ ĉ val Ġimage Thumbnail : ĠImageView , Ċ ĉ val Ġimage Flag G IF : ĠImageView , Ċ ĉ val Ġgroup Video : ĠViewGroup , Ċ ĉ val Ġlabel Video : ĠTextView Ċ ) Ġ: ĠV H Attachment Tile Content () Ġ{ Ċ ĉ override Ġval Ġattachment Type Ġ= ĠAttachment Type . media ĊĉĊ ĉ override Ġfun Ġbind ( Ċĉ ĉ context : ĠContext , Ċĉ ĉ composite Disposable : ĠComposite Disposable , Ċĉ ĉ source : ĠUnion < File , ĠUri >, Ċĉ ĉ fileName : ĠString , Ċĉ ĉ fileType : ĠString , Ċĉ ĉ file Size : ĠLong , Ċĉ ĉ draft ID : ĠLong , Ċĉ ĉ date Modified : ĠLong Ċ ĉ ) Ġ{ Ċĉ ĉ G lide . with ( context ). run Ġ{ Ċĉĉ ĉ // Loading Ġthe Ġfile Ċĉĉ ĉ if ( source . is A ) Ġload ( source . a ) Ċĉĉ ĉ else Ġload ( source . b ) Ċĉ ĉ }. run Ġ{ Ċĉĉ ĉ // Apply ing Ġthe Ġsignature Ċĉĉ ĉ when Ġ{ Ċĉĉĉ ĉ draft ID Ġ!= Ġ- 1 L Ġ-> Ġsignature ( Object Key ( draft ID )) Ċĉĉĉ ĉ date Modified Ġ!= Ġ- 1 L Ġ-> Ġsignature ( Media Store Signature ( fileType , Ġdate Modified , Ġ 0 )) Ċĉĉĉ ĉ else Ġ-> Ġthis Ċĉĉ ĉ } Ċĉ ĉ }. apply ( RequestOptions . center Crop Transform ()) Ċĉĉ ĉ . transition ( Drawable Transition Options . with Cross Fade ()) Ċĉĉ ĉ . into ( image Thumbnail ) ĊĉĉĊĉ ĉ // Setting Ġthe Ġimage Ġflags Ċĉ ĉ when Ġ{ Ċĉĉ ĉ compare Mime Types ( fileType , ĠMIME Constants . mime Type G IF ) Ġ-> Ġ{ Ċĉĉĉ ĉ image Flag G IF . visibility Ġ= ĠView . VISIBLE Ċĉĉĉ ĉ group Video . visibility Ġ= ĠView . GONE Ċĉĉ ĉ } Ċĉĉ ĉ compare Mime Types ( fileType , ĠMIME Constants . mime Type Video ) Ġ-> Ġ{ Ċĉĉĉ ĉ image Flag G IF . visibility Ġ= ĠView . GONE Ċĉĉĉ ĉ group Video . visibility Ġ= ĠView . VISIBLE Ċĉĉĉ ĉ label Video . visibility Ġ= ĠView . GONE Ċĉĉ ĉ } Ċĉĉ ĉ else Ġ-> Ġ{ Ċĉĉĉ ĉ image Flag G IF . visibility Ġ= ĠView . GONE Ċĉĉĉ ĉ group Video . visibility Ġ= ĠView . GONE Ċĉĉ ĉ } Ċĉ ĉ } Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠApplies Ġcontact Ġmetadata Ġto Ġthis Ġbound Ġview Ċĉ Ġ* Ġ@ param Ġmetadata ĠThe Ġmetadata Ġto Ġapply Ċĉ Ġ*/ Ċ ĉ fun Ġapply Metadata ( metadata : ĠFile Display Metadata . Media ) Ġ{ Ċĉ ĉ label Video . text Ġ= ĠDate Utils . format Elapsed Time ( metadata . media Duration Ġ/ Ġ 1 0 0 0 ) Ċĉ ĉ label Video . visibility Ġ= ĠView . VISIBLE Ċ ĉ } Ċ }