/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠP avel ĠAn nin Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . github . ann inp avel . android architecture . presentation . activity . detail Ċ Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . ProgressBar Ċ 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 . github . ann inp avel . android architecture . R Ċ import Ġcom . github . ann inp avel . android architecture . domain . model . User Entity Ċ Ċ /** Ġ@ author ĠP avel ĠAn nin Ġ( https :// github . com / ann inp avel ). Ġ*/ Ċ class ĠDetail ViewHolder ( root ViewGroup : ĠViewGroup ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontext Ġby Ġlazy Ġ{ Ġroot ViewGroup . context Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtoolbar Ġby Ġlazy Ġ{ Ġroot ViewGroup . findViewById < Toolbar >( R . id . toolbar ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġuser Avatar ImageView Ġby Ġlazy Ġ{ Ġroot ViewGroup . findViewById < ImageView >( R . id . user _ avatar _ image ) Ġ} ĊĠĠĠ Ġprivate Ġval ĠuserName TextView Ġby Ġlazy Ġ{ Ġroot ViewGroup . findViewById < TextView >( R . id . user _ name _ text ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġuser Company TextView Ġby Ġlazy Ġ{ Ġroot ViewGroup . findViewById < TextView >( R . id . user _ company _ text ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġuser Location TextView Ġby Ġlazy Ġ{ Ġroot ViewGroup . findViewById < TextView >( R . id . user _ location _ text ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġprogress Indicator Ġby Ġlazy Ġ{ Ġroot ViewGroup . findViewById < ProgressBar >( R . id . progress _ indicator ) Ġ} ĊĊĊĠĠĠ Ġvar Ġis Progress Indicator Visible : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprogress Indicator . visibility Ġ== ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġprogress Indicator . run Ġ{ Ġvisibility Ġ= Ġif Ġ( value Ġ== Ġtrue ) ĠView . VISIBLE Ġelse ĠView . GONE Ġ} ĊĊĠĠĠ Ġvar Ġavatar Url : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . circle Crop Transform ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( Drawable Transition Options . with Cross Fade ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( user Avatar ImageView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġname : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName TextView . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcompany : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Company TextView . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Company TextView . visibility Ġ= Ġif Ġ( value . isNull Or Blank ()) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlocation : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location TextView . text Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location TextView . visibility Ġ= Ġif Ġ( value . isNull Or Blank ()) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġvar Ġon Back Click : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĊĠĠĠ Ġfun Ġsetup ( init : ĠDetail ViewHolder . () Ġ-> ĠUnit ): ĠDetail ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠ Ġtoolbar . setOnClickListener Ġ{ Ġon Back Click ?. invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( data : ĠUser Entity ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġavatar Url Ġ= Ġdata ?. avatar Url ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġdata ?. name ĊĠĠĠĠĠĠĠ Ġcompany Ġ= Ġdata ?. company ĊĠĠĠĠĠĠĠ Ġlocation Ġ= Ġdata ?. location ĊĠĠĠ Ġ} Ċ }