package Ġcom . example . pr ay ash . kot lint ube Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġokhttp 3 .* Ċ import Ġjava . io . IOException Ċ Ċ class ĠDetail Activity : ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġre cyclerView _ main . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġre cyclerView _ main . adapter Ġ= ĠDetail Adapter () ĊĊĠĠĠĠĠĠĠ Ġval Ġnav Bar Title Ġ= Ġintent . getString Extra ( Custom ViewHolder . VIDEO _ TITLE _ KEY ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= Ġnav Bar Title ĊĊĠĠĠĠĠĠĠ Ġfetch Json () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Json () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvideo Id Ġ= Ġintent . getInt Extra ( Custom ViewHolder . VIDEO _ ID _ KEY , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdetail Url Ġ= Ġ" http :// api . lets build that app . com / youtube / course _ detail ? id =" Ġ+ Ġvideo Id ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder (). url ( detail Url ). build () ĊĠĠĠĠĠĠĠ Ġclient . new Call ( request ). enqueue ( object : ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall ?, Ġresponse : ĠResponse ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġresponse ?. body ()?. string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder (). create () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvideo Details Ġ= Ġgson . fromJson ( body , ĠArray < Video Detail >:: class . java ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall ?, Ġe : ĠIOException ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠDetail Adapter : ĠRecyclerView . Adapter < Detail Item ViewHolder >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 5 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠDetail Item ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent ?. context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= Ġlayout Inflater . inflate ( R . layout . detail _ row , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDetail Item ViewHolder ( custom View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠDetail Item ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠDetail Item ViewHolder ( val Ġcustom View : ĠView ): ĠRecyclerView . ViewHolder ( custom View ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġinit Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcustom View . setOnClickListener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ