package Ġcom . example . book store . ui . catalog Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . book store . R Ċ import Ġcom . example . book store . data . Book Ċ import Ġcom . example . book store . utils . Display Metrics Utils Ċ Ċ class ĠSpecific Genre Books Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġiv Back Button : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtv Genre : ĠTextView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrv Books : ĠRecyclerView ĊĠĠĠ Ġprivate Ġval Ġrv Books Adapter Ġ= ĠBooks Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ specific _ genre _ books , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit Views ( view ) ĊĠĠĠĠĠĠĠ Ġinit Rv Books ( view ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtv Genre Ġ= Ġview . findViewById ( R . id . tv _ genre ) ĊĠĠĠĠĠĠĠ Ġiv Back Button Ġ= Ġview . findViewById ( R . id . iv _ back _ button ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Rv Books ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrv Books Ġ= Ġview . findViewById ( R . id . rv _ books ) ĊĠĠĠĠĠĠĠ Ġrv Books . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Count Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( get Grid Spacing Item Decoration ( span Count , Ġview )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġrv Books Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . context , Ġspan Count , ĠGrid LayoutManager . VERTICAL , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Same Parameter Value ") ĊĠĠĠ Ġprivate Ġfun Ġget Grid Spacing Item Decoration ( ĊĠĠĠĠĠĠĠ Ġspan Count : ĠInt , ĊĠĠĠĠĠĠĠ Ġview : ĠView ĊĠĠĠ Ġ): ĠGrid Spacing Item Decoration Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġspacing Ġ= ĠDisplay Metrics Utils . get Pixel Value ( 3 2 f , Ġview ) ĊĠĠĠĠĠĠĠ Ġval Ġinclude Edge Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn ĠGrid Spacing Item Decoration ( span Count , Ġspacing . toInt (), Ġinclude Edge ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġarguments ?. let Ġ{ ĠSpecific Genre Books Fragment Args . from Bundle ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgenre Ġ= Ġargs ?. genre Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġtv Genre . text Ġ= Ġgenre ĊĊĠĠĠĠĠĠĠ Ġval Ġbooks Ġ= Ġget Books () ĊĠĠĠĠĠĠĠ Ġrv Books Adapter . set Books ( books ) ĊĊĠĠĠĠĠĠĠ Ġiv Back Button . setOnClickListener Ġ{ Ġnavigate Up () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Books (): ĠList < Book > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbook 1 Ġ= ĠBook ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= ĠR . drawable . img _ dummy _ book _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . all _ we _ know _ three _ li ves ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= ĠgetString ( R . string . l isa _ co hen ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġ 1 2 . 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbook 2 Ġ= ĠBook ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= ĠR . drawable . img _ dummy _ book _ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . hidden _ figures ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= ĠgetString ( R . string . m arg ot _ lee _ s het ter ly ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġ 1 5 . 9 9 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbook 3 Ġ= ĠBook ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= ĠR . drawable . img _ dummy _ book _ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . the _ w ives _ of _ hen ry _ v iii ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= ĠgetString ( R . string . lad y _ ant onia _ fr aser ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġ 1 0 . 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbook 4 Ġ= ĠBook ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= ĠR . drawable . img _ dummy _ book _ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . f rid a ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= ĠgetString ( R . string . hay den _ h err era ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġ 1 6 . 0 9 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbook 5 Ġ= ĠBook ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= ĠR . drawable . img _ dummy _ book _ 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . invisible ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= ĠgetString ( R . string . ste phen _ l _ car ter ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġ 1 2 . 9 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbook 6 Ġ= ĠBook ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= ĠR . drawable . img _ dummy _ book _ 6 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . wild _ sw ans ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= ĠgetString ( R . string . j ung _ ch ang ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġ 1 3 . 3 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( book 1 , Ġbook 2 , Ġbook 3 , Ġbook 4 , Ġbook 5 , Ġbook 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate Up () ĊĠĠĠ Ġ} Ċ Ċ }