package Ġjp . co . cyber agent . k ite . testing Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Factory Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ import Ġjp . co . cyber agent . k ite . core . K ite Context Ċ import Ġjp . co . cyber agent . k ite . core . K ite Dsl Scope Ċ import Ġjp . co . cyber agent . k ite . runtime . K ite Scope Model Store Owner Ċ import Ġjp . co . cyber agent . k ite . runtime . k ite Dsl Ċ Ċ /** Ċ Ġ* ĠA Ġhelper ĠFragment Ġfor Ġtesting Ġk ite ĠDSL Ġin Ġthe Ġinstrument ed Ġtest Ġor ĠRo bo lectric Ġtest . Ċ Ġ*/ Ċ class ĠTest K ite Fragment Ġprivate Ġconstructor ( ĊĠ Ġ@ Layout Res Ġval Ġcontent Layout Id : ĠInt Ċ ) Ġ: ĠFragment ( content Layout Id ) Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval Ġconfig Map Ġ= ĠConcurrent HashMap < Int , ĠConfig >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġ[ Fragment Factory ] Ġthat Ġcan Ġinstantiate Ġthis ĠFragment Ġusing Ġ[ Fragment Scenario ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontent Layout Id Ġset Ġthe Ġfragment Ġcontent Ġwith Ġthis Ġlayout Ġid . ĊĠĠĠĠ Ġ* Ġ@ param Ġconfig Ġsetup Ġk ite ĠDSL Ġwith Ġthis Ġconfig Ġin Ġ[ on View Created ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" K Doc Un resolved Reference ") ĊĠĠĠ Ġfun Ġmake Factory ( ĊĠĠĠĠĠ Ġ@ Layout Res Ġcontent Layout Id : ĠInt , ĊĠĠĠĠĠ Ġconfig : ĠConfig ĊĠĠĠ Ġ): ĠFragment Factory Ġ{ ĊĠĠĠĠĠ Ġconfig Map [ content Layout Id ] Ġ= Ġconfig ĊĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠFragment Factory () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinstantiate ( class Loader : ĠClassLoader , ĠclassName : ĠString ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn ĠTest K ite Fragment ( content Layout Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠDefines Ġhow Ġto Ġsetup Ġk ite ĠDSL . ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġstore Owner Ġthe Ġowner Ġof Ġthe Ġstate . ĠThe Ġdefault Ġvalue Ġis Ġthe Ġfragment Ġitself . ĊĠĠ Ġ* Ġ@ param Ġk ite Context Ġcall Ġ[ k ite Dsl ] Ġwith Ġthis Ġcontext . ĊĠĠ Ġ* Ġ@ param Ġk ite Dsl Block Ġinvoke Ġthis Ġin Ġthe Ġ[ K ite Dsl Scope ]. ĊĠĠ Ġ*/ ĊĠ Ġclass ĠConfig ( ĊĠĠĠ Ġval Ġstore Owner : ĠStore Owner Ġ= ĠStore Owner . SELF , ĊĠĠĠ Ġval Ġk ite Context : ĠK ite Context Ġ= ĠK ite Context (), ĊĠĠĠ Ġval Ġk ite Dsl Block : Ġ( K ite Dsl Scope .( Fragment ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġenum Ġclass ĠStore Owner Ġ{ ĊĠĠĠĠĠ ĠS ELF , ĊĠĠĠĠĠ ĠP ARENT _ ACTIVITY , ĊĠĠĠĠĠ ĠP ARENT _ FRAGMENT ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġval Ġconfig Ġ= Ġrequire NotNull ( config Map [ content Layout Id ]) Ġ{ ĊĠĠĠĠĠ Ġval Ġlayout Name Ġ= Ġresources . getResource Name ( content Layout Id ) ĊĠĠĠĠĠ Ġ" K ite Dsl Ġconfig Ġfor Ġlayout Ġ$ layout Name Ġnot Ġfound ." ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġscope Model Store Owner : ĠK ite Scope Model Store Owner Ġ= Ġwhen Ġ( config . store Owner ) Ġ{ ĊĠĠĠĠĠ ĠConfig . Store Owner . SELF Ġ-> Ġthis ĊĠĠĠĠĠ ĠConfig . Store Owner . PARENT _ ACTIVITY Ġ-> Ġrequire Activity () ĊĠĠĠĠĠ ĠConfig . Store Owner . PARENT _ FRAGMENT Ġ-> Ġrequire Parent Fragment () ĊĠĠĠ Ġ} ĊĠĠĠ Ġk ite Dsl ( ĊĠĠĠĠĠ Ġscope Model Store Owner Ġ= Ġscope Model Store Owner , ĊĠĠĠĠĠ Ġk ite Context Ġ= Ġconfig . k ite Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġconfig . k ite Dsl Block ?. invoke ( this , Ġthis @ Test K ite Fragment ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ