package Ġcom . example . github _ issues . fragments Ċ Ċ import ĠCircle Transform Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . navigation . ui . Navigation UI Ċ import Ġcom . example . github _ issues . R Ċ import Ġcom . example . github _ issues . entity . Issue Ċ import Ġcom . example . github _ issues . interfaces . DateFormat Ċ import Ġcom . example . github _ issues . interfaces . State Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . fragment _ issue _ details . view .* Ċ import Ġjava . util .* ĊĊ Ċ class ĠIssue Details Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġclass ĠShort Date : ĠDate Format ĊĠĠĠ Ġclass ĠHandle Issue State : ĠState ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠIssue Details Args Ġby Ġnav Args () ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . fragment _ issue _ details , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġissue : ĠString Ġ= Ġargs . issue Args ĊĠĠĠĠĠĠĠ Ġval Ġissue Data Class Ġ= ĠGson (). fromJson ( issue , ĠIssue :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġrender Context ( view , Ġissue Data Class ) ĊĠĠĠĠĠĠĠ Ġadd Btn Up On ActionBar ( this . activity Ġas ĠAppCompatActivity ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Btn Up On ActionBar ( activity : ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġfind Nav Controller () ĊĠĠĠĠĠĠĠ ĠNavigation UI . setup ActionBar With Nav Controller ( activity , Ġnav Controller ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Experimental Std lib Api ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . O ) ĊĠĠĠ Ġprivate Ġfun Ġrender Context ( view : ĠView , Ġissue : ĠIssue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . issue _ item _ title . text Ġ= Ġissue . title ĊĠĠĠĠĠĠĠ Ġview . issue _ item _ description . text Ġ= ĠgetDescription ( issue ) ĊĠĠĠĠĠĠĠ Ġview . issue _ item _ owner _ name . text Ġ= Ġissue . user . login . capitalize ( Locale . ROOT ) ĊĠĠĠĠĠĠĠ Ġview . issue _ item _ created _ at . text Ġ= ĠShort Date (). format Date ( issue . created _ at ) ĊĊĠĠĠĠĠĠĠ ĠonPress Btn Event ( issue . html _ url , Ġview ) ĊĠĠĠĠĠĠĠ Ġload Thumbnail ( issue . user . avatar _ url , Ġview ) ĊĠĠĠĠĠĠĠ ĠHandle Issue State (). getState ( view . issue _ item _ details _ status , Ġissue . state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetDescription ( issue : ĠIssue ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( issue . body ?. isNotEmpty () Ġ== Ġtrue ) Ġissue . body Ġelse Ġ" N enh uma Ġdescri Ã§Ã£o Ġfornec ida ." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Thumbnail ( thumbnail : ĠString , Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiv Basic Image : ĠImageView Ġ= Ġview . findViewById ( R . id . issue _ item _ avatar ); ĊĊĠĠĠĠĠĠĠ ĠPic asso . with ( context ). load ( thumbnail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Circle Transform ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Basic Image ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonPress Btn Event ( url : ĠString , Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . show _ on _ web _ btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbrowser Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( browser Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ