package Ġcom . d mit ry . lab 6 . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . d mit ry . lab 6 .* Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġcom . google . gson . JsonObject Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠPlaylist Fragment ( val Ġplaylist Id : ĠString , Ġval Ġactivity : ĠMainActivity ) Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġretrofit : ĠRet rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl (" https :// www . googleapis . com / youtube /") ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġval Ġservice Ġ= Ġretrofit . create ( API Service :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġvideo List Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠprogressBar : ĠProgress Bar ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Thumb nails () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Ġ= ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġservice . get Videos ( playlist Id ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġresponse . body () !!. getAs JsonArray (" items ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġitems ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdetails Ġ= Ġitem . as JsonObject . getAs JsonObject (" content Details ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġdetails . get (" video Id "). asString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo List . add ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthread . start () ĊĠĠĠĠĠĠĠ Ġthread . join () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġlayout Inflater . inflate ( R . layout . drawer _ playlist , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ ĠprogressBar Ġ= Ġroot View . findViewById ( R . id . progress Bar ) ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġfetch Thumb nails () ĊĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= Ġroot View . findViewById < RecyclerView >( R . id . playlist _ recycler _ view ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠThumb nail Adapter ( video List , Ġactivity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter !!. notify DataSet Changed () ĊĊĠĠĠĠĠĠĠ Ġactivity . set Video ( video List [ 0 ]) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} Ċ }