package Ġcom . zu ha ib ah mad . flix view . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroidx . lean back . widget . Vertical GridView Ċ import Ġcom . zu ha ib ah mad . flix view . adapters . Section Row Adapter Ċ Ċ class ĠCustom Vertical GridView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattribute Set : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠVertical GridView ( context , Ġattribute Set , Ġdef Style ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsection Adapter Ġby Ġlazy Ġ{ Ġ( adapter Ġas ĠSection Row Adapter ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠĠĠĠĠ Ġthis . smooth Scroll To Position ( 1 ) ĊĠĠĠĠĠĠĠ Ġthis . setOn Child Selected Listener Ġ{ Ġ_, Ġ_, Ġposition , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSection Row Adapter . current Row Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection Adapter . notify ViewHolder Updated ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch KeyEvent ( event : ĠKeyEvent ): ĠBoolean Ġ= Ġwhen Ġ( event . keyCode ) Ġ{ ĊĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ DP AD _ UP Ġ-> Ġscroll Up () ĊĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ DP AD _ DOWN Ġ-> Ġscroll Down () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . dispatch KeyEvent ( event ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġscroll Up (): ĠBoolean Ġ= ĠSection Row Adapter . current Row Ġ<= Ġ 1 ĊĊĠĠĠ Ġprivate Ġfun Ġscroll Down (): ĠBoolean Ġ= ĠSection Row Adapter . current Row Ġ>= Ġadapter !!. item Count Ġ- Ġ 2 Ċ }