package Ġscreens witch ers ample . first Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġcom . jay new st rom . concrete . Concrete Block Ċ import Ġcom . jay new st rom . screens witch er . Screen Ċ import Ġcom . jay new st rom . screens witch er . Screen Switch er State Ċ import Ġdagger . Component Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġscreens witch ers ample . core . screen . Base Screen Ċ import Ġscreens witch ers ample . core . screen . Default Screen Wall Manager Ċ import Ġscreens witch ers ample . core . screen . Screen Scope Ċ import Ġscreens witch ers ample . core . screen . Screen Wall Manager Ċ Ċ object ĠFirst Screen Factory Ġ{ ĊĠĠĠ Ġfun Ġcreate ( navigator : ĠFirst Navigator ): ĠScreen Ġ= ĠFirst Screen ( navigator ) Ċ } Ċ Ċ private Ġclass ĠFirst Screen ( private Ġval Ġnavigator : ĠFirst Navigator ) Ġ: ĠBase Screen < First Component >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Wall Manager ( screen Switch er State : ĠScreen Switch er State ): ĠScreen Wall Manager < First Component > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDefault Screen Wall Manager ({ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirst Screen Block ( navigator ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Layout Res Ġoverride Ġfun Ġlayout Id (): ĠInt Ġ= ĠFirst Presenter . layout Id () ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( view : ĠView , Ġcomponent : ĠFirst Component ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFirst Presenter . bind View ( view , Ġcomponent ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Screen Scope Ċ @ Component ( modules Ġ= Ġ[ First Module :: class ]) Ċ internal Ġinterface ĠFirst Component Ġ{ ĊĠĠĠ Ġfun Ġinject ( presenter : ĠFirst Presenter ) ĊĠĠĠ Ġfun Ġinject ( presenter : ĠNavigate Dialog Presenter ) Ċ } Ċ Ċ @ Module Ċ internal Ġclass ĠFirst Module ( private Ġval Ġnavigator : ĠFirst Navigator ) Ġ{ ĊĠĠĠ Ġ@ Provides Ġfun Ġprovide Navigator () Ġ= Ġnavigator Ċ } Ċ Ċ private Ġclass ĠFirst Screen Block ( private Ġval Ġnavigator : ĠFirst Navigator ) Ġ: ĠConcrete Block < First Component > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġname (): ĠString Ġ= Ġjava Class . name ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Component (): ĠFirst Component Ġ= ĠD agger First Component . builder () ĊĠĠĠĠĠĠĠ Ġ. first Module ( First Module ( navigator )) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ } Ċ