package Ġorg . d ung ph am . sus i . ai . skills . skill details Ċ Ċ import Ġandroid . app . Fragment Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . text . Html Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . fragment _ skill _ details .* Ċ import Ġorg . d ung ph am . sus i . ai . R Ċ import Ġorg . d ung ph am . sus i . ai . chat . Chat Activity Ċ import Ġorg . d ung ph am . sus i . ai . rest . responses . sus i . Skill Data Ċ import Ġorg . d ung ph am . sus i . ai . skills . Skills Activity Ċ import Ġorg . d ung ph am . sus i . ai . skills . skill details . adapters . recycler adapters . Skill Examples Adapter Ċ import Ġjava . io . Serializable Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġch ir ag w 1 5 Ġon Ġ 2 4 / 8 / 1 7 . Ċ Ġ*/ Ċ class ĠSkill Details Fragment : ĠFragment () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġskill Data : ĠSkill Data ĊĠĠĠ Ġlateinit Ġvar Ġskill Group : ĠString ĊĠĠĠ Ġval Ġimage Link Ġ= Ġ" https :// raw . githubusercontent . com / fo ss as ia / sus i _ skill _ data / master / models / general /" ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠSK ILL _ KEY Ġ= Ġ" skill _ key " ĊĠĠĠĠĠĠĠ Ġval ĠSK ILL _ GROUP Ġ= Ġ" skill _ group " ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( skill Data : ĠSkill Data , Ġskill Group : ĠString ): ĠSkill Details Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠSkill Details Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Serializable ( SK ILL _ KEY , Ġskill Data Ġas ĠSerializable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( SK ILL _ GROUP , Ġskill Group ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġskill Data Ġ= Ġarguments . get Serializable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSK ILL _ KEY ) Ġas ĠSkill Data ĊĠĠĠĠĠĠĠ Ġskill Group Ġ= Ġarguments . getString ( SK ILL _ GROUP ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ skill _ details , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . skill Name Ġ!= Ġnull Ġ&& Ġ! skill Data . skill Name . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠSk ills Activity ). title Ġ= Ġskill Data . skill Name ĊĠĠĠĠĠĠĠ Ġsetup UI () ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Image () ĊĠĠĠĠĠĠĠ ĠsetName () ĊĠĠĠĠĠĠĠ Ġset Author () ĊĠĠĠĠĠĠĠ Ġset Try Button () ĊĠĠĠĠĠĠĠ Ġset Description () ĊĠĠĠĠĠĠĠ Ġset Examples () ĊĠĠĠĠĠĠĠ Ġset Rating () ĊĠĠĠĠĠĠĠ Ġset Dynamic Content () ĊĠĠĠĠĠĠĠ Ġset Policy () ĊĠĠĠĠĠĠĠ Ġset Terms () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġskill _ detail _ image . setImage Resource ( R . drawable . ic _ sus i ) ĊĠĠĠĠĠĠĠ Ġif ( skill Data . image Ġ!= Ġnull Ġ&& Ġ! skill Data . image . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . with ( activity . application Context ). load ( StringBuilder ( image Link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( skill Group ). append ("/ en / "). append ( skill Data . image ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ sus i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fit (). center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( skill _ detail _ image ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetName () Ġ{ ĊĠĠĠĠĠĠĠ Ġskill _ detail _ title . text Ġ= Ġactivity . getString ( R . string . no _ skill _ name ) ĊĠĠĠĠĠĠĠ Ġif ( skill Data . skill Name Ġ!= Ġnull Ġ&& Ġ! skill Data . skill Name . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ title . text Ġ= Ġskill Data . skill Name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Author () Ġ{ ĊĠĠĠĠĠĠĠ Ġskill _ detail _ author . text Ġ= Ġ" Author Ġ: Ġ${ activity . getString ( R . string . no _ skill _ author )}" ĊĠĠĠĠĠĠĠ Ġif ( skill Data . author Ġ!= Ġnull Ġ&& Ġ! skill Data . author . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( skill Data . author Url Ġ== Ġnull Ġ|| Ġskill Data . author Url . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ author . text Ġ= Ġ" Author Ġ: Ġ${ skill Data . skill Name }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ author . links Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ author . movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ author . text Ġ= ĠHtml . from Html (" Author Ġ: Ġ< a Ġhref =\" ${ skill Data . author Url }\ ">${ skill Data . author }</ a >", ĠHtml . FROM _ HTML _ MODE _ COMP ACT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ author . text Ġ= ĠHtml . from Html (" Author Ġ: Ġ< a Ġhref =\" ${ skill Data . author Url }\ ">${ skill Data . author }</ a >") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Try Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . examples Ġ== Ġnull Ġ|| Ġskill Data . examples . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ try _ button . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġskill _ detail _ try _ button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . override Pending Transition ( R . anim . trans _ right _ in , ĠR . anim . trans _ right _ out ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠChat Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( skill Data . examples Ġ!= Ġnull Ġ&& Ġskill Data . examples . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" example ", skill Data . examples [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" example "," ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Description () Ġ{ ĊĠĠĠĠĠĠĠ Ġskill _ detail _ description . text Ġ= Ġactivity . getString ( R . string . no _ skill _ description ) ĊĠĠĠĠĠĠĠ Ġif ( Ġskill Data . descriptions Ġ!= Ġnull Ġ&& Ġ! skill Data . descriptions . isEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ description . text Ġ= Ġskill Data . descriptions ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Examples () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . examples Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ examples . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm LayoutManager Ġ= ĠLinearLayoutManager ( activity , ĠLinearLayoutManager . HORIZONTAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ examples . layout Manager Ġ= Ġm LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ examples . adapter Ġ= ĠSkill Examples Adapter ( activity , Ġskill Data . examples ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Rating () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . skill Rating Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ rating _ positive . text Ġ= Ġ" Skill Ġnot Ġr ated Ġyet " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ rating _ negative . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ rating _ positive . text Ġ= Ġ" Positive : Ġ" Ġ+ Ġskill Data . skill Rating ?. positive ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ rating _ negative . text Ġ= Ġ" Negative : Ġ" Ġ+ Ġskill Data . skill Rating ?. negative ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Dynamic Content () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . dynamic Content Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ content . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( skill Data . dynamic Content !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ content . text Ġ= Ġ" Content Ġtype : ĠDynamic " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ content . text Ġ= Ġ" Content Ġtype : ĠStatic " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Policy () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . developer Privacy Policy Ġ== Ġnull Ġ|| Ġskill Data . developer Privacy Policy . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ policy . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ policy . links Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ policy . movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ policy . text Ġ= ĠHtml . from Html ("< a Ġhref =\" ${ skill Data . developer Privacy Policy }\ "> Developer 's ĠPrivacy ĠPolicy </ a >", ĠHtml . FROM _ HTML _ MODE _ COMP ACT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ policy . text Ġ= ĠHtml . from Html ("< a Ġhref =\" ${ skill Data . developer Privacy Policy }\ "> Developer 's ĠPrivacy ĠPolicy </ a >") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Terms () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( skill Data . terms Of Use Ġ== Ġnull Ġ|| Ġskill Data . terms Of Use . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ terms . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ terms . links Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ terms . movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ terms . text Ġ= ĠHtml . from Html ("< a Ġhref =\" ${ skill Data . terms Of Use }\ "> Terms Ġof Ġuse </ a >", ĠHtml . FROM _ HTML _ MODE _ COMP ACT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskill _ detail _ terms . text Ġ= ĠHtml . from Html ("< a Ġhref =\" ${ skill Data . terms Of Use }\ "> Terms Ġof Ġuse </ a >") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} Ċ } Ċ