package Ġcom . an ook day . rp istream . stream . settings Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġcom . an ook day . rp istream . R Ċ import Ġcom . an ook day . rp istream . databinding . Fragment Video Config F ps Binding Ċ import Ġcom . an ook day . rp istream . repository . database . User Ċ import Ġcom . an ook day . rp istream . stream . Current Fragment Name Ċ import Ġcom . an ook day . rp istream . stream . Stream Activity Ċ import Ġcom . an ook day . rp istream . stream . Stream ViewModel Ċ Ċ /** Ċ Ġ* ĠVideo Ġframes - per - second Ġconfiguration Ġfragment . Ċ Ġ*/ Ċ class ĠVideo Config F ps Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Video Config F ps Binding ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠStream ViewModel Ġby Ġactivity ViewModels () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Video Config F ps Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠviewModel . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser . observe ( view Lifecycle Owner , Ġ:: on User Change ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . setCurrent Fragment ( Current Fragment Name . VIDEO _ CONFIG _ FPS ) ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠStream Activity ). edit Navigation Drawer ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . video _ config _ fps _ title , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ baseline _ arrow _ back _ 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon User Change ( user : ĠUser ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġuser ?. settings ?. video Config ?. let Ġ{ Ġconfig Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( config . fps ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 4 Ġ-> Ġfps Radio Group . check ( R . id . fps _ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 0 Ġ-> Ġfps Radio Group . check ( R . id . fps _ 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 6 0 Ġ-> Ġfps Radio Group . check ( R . id . fps _ 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfps Radio Group . setOn Checked ChangeListener Ġ{ Ġ_, Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( checked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fps _ 2 4 Ġ-> ĠviewModel . update Video F ps ( 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fps _ 3 0 Ġ-> ĠviewModel . update Video F ps ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fps _ 6 0 Ġ-> ĠviewModel . update Video F ps ( 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }