package Ġfi . ex a . ct h ul hu help per . fragment ĊĊ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġdagger . android . support . Android Support Injection Ċ import Ġfi . ex a . ct h ul hu help per . R Ċ import Ġfi . ex a . ct h ul hu help per . model . Difficulty Ċ import Ġfi . ex a . ct h ul hu help per . view model . Token ViewModel Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠDiff iculty Dialog : ĠDialog Fragment () Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Support Injection . inject ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġtoken ViewModel Ġ= ĠViewModel Providers . of ( this , ĠviewModel Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Token ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ?. let Ġ{ Ġfragment Activity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( fragment Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠDiff iculty . values (). map Ġ{ Ġit . name Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( getString ( R . string . pick _ difficulty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Items ( values ) Ġ{ Ġ_, Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken ViewModel . set Difficulty ( Difficulty . valueOf ( values [ index ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . create () ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠIllegalStateException (" Activity Ġcannot Ġbe Ġnull ") ĊĠĠĠ Ġ} Ċ }