package Ġfr . gro g gy . race control . tv . ui . player Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . google . android . ex op layer 2 . Format Ċ import Ġcom . google . android . ex op layer 2 . source . Track Group Array Ċ import Ġfr . gro g gy . race control . tv . R Ċ Ċ class ĠAudio Selection Dialog Fragment ( ĊĠĠĠ Ġtrack Groups : ĠTrack Group Array Ċ ) Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġon Audio Language Selected Listener : Ġ(( String ?) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġformats Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformats Ġ= Ġmutable ListOf < Format >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtrack Groups . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrack Group Ġ= Ġtrack Groups [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġtrack Group . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformats . add ( track Group . get Format ( j )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġformats . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġformats . map Ġ{ Ġit . label Ġ}. to Typed Array () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . audio _ selection _ dialog _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Items ( items ) Ġ{ Ġ_, Ġi Ġ-> Ġselect Audio ( i ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect Audio ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= Ġformats [ index ] ĊĠĠĠĠĠĠĠ Ġon Audio Language Selected Listener ?. let Ġ{ Ġit ( format . language ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Audio Language Selected ( listener : Ġ( String ?) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Audio Language Selected Listener Ġ= Ġlistener ĊĠĠĠ Ġ} Ċ Ċ } Ċ