package Ġcom . example . sharing ang . ui . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . example . sharing ang . R Ċ import Ġcom . example . sharing ang . database . repositories . UserRepository Ċ import Ġcom . example . sharing ang . databinding . Fragment Block Binding Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject ĊĊ Ċ @ Android EntryPoint Ċ class ĠBlock Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġuser Repository : ĠUser Repository ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Block Binding ĊĠĠĠ Ġprivate Ġval Ġargs : ĠBlock Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġblock er Id : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġblocked Id : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġblocked Name : ĠString ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġreason Name Map : ĠHashMap < Int , ĠString > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Block Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġblock er Id Ġ= Ġargs . block er Id ĊĠĠĠĠĠĠĠ Ġblocked Id Ġ= Ġargs . blocked Id ĊĠĠĠĠĠĠĠ Ġblocked Name Ġ= Ġargs . blocked Name ĊĠĠĠĠĠĠĠ Ġbinding . text Blocked Username . text Ġ= Ġblocked Name ĊĠĠĠĠĠĠĠ Ġreason Name Map Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . radio R ude . id Ġto ĠgetString ( R . string . r ude ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . radio Sc am . id Ġto ĠgetString ( R . string . sc am ming ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . radio Other . id Ġto ĠgetString ( R . string . eng _ other ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsetup Radio Buttons Listener () ĊĠĠĠĠĠĠĠ Ġsetup Cancel Button () ĊĠĠĠĠĠĠĠ Ġsetup Ok Button () ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Radio Buttons Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . block Radio Group . setOn Checked ChangeListener Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button Ok . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Cancel Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . button Cancel . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Fragment Directions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. action Block Fragment To UserProfile Fragment ( blocked Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Ok Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . button Ok . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Group Ġ= Ġbinding . block Radio Group . checked RadioButton Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreason Ġ= Ġreason Name Map [ checked Group ] Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblock Description Ġ= Ġbinding . block Description . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Repository . block ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock er Id Ġ= Ġblock er Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblocked Id Ġ= Ġblocked Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Ġ= Ġreason , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġblock Description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBlock Fragment Directions . action Block Fragment To UserProfile Fragment ( blocked Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }