package Ġcom . land side . example Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġcom . land side . example . share . Main Share Agent Ċ import Ġcom . land side . shadow state . Shadow State Ċ import Ġcom . land side . shadow state _ annotation . Inject Agent Ċ Ċ class ĠMain Presenter ( val Ġowner : ĠLifecycle Owner ) Ġ{ ĊĠ Ġinit Ġ{ ĊĠĠĠ ĠShadow State . inject Dispatcher ( this , Ġowner ) ĊĠ Ġ} ĊĊĠ Ġ@ Inject Agent ĊĠ Ġlateinit Ġvar Ġagent : ĠMain Agent ĊĊĠ Ġ@ Inject Agent ĊĠ Ġlateinit Ġvar Ġshare Agent : ĠMain Share Agent ĊĊĠ Ġvar Ġname : ĠString ĊĠĠĠ Ġget () Ġ= Ġagent . state . name ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġagent . setState Ġ{ Ġit . copy ( name Ġ= Ġvalue ) Ġ} ĊĠĠĠ Ġ} ĊĊĠ Ġfun Ġchange Name () Ġ{ ĊĠĠĠ Ġname Ġ+= Ġ" ++ " ĊĠĠĠ Ġshare Agent . setState Ġ{ ĊĠĠĠĠĠ Ġit . copy ( ĊĠĠĠĠĠĠĠĠĠ Ġshare Name Ġ= Ġ" share Name " Ġ+ Ġshare Agent . state . share Count , ĊĠĠĠĠĠĠĠĠĠ Ġshare Count Ġ= Ġshare Agent . state . share Count Ġ+ Ġ 1 , ĊĠĠĠĠĠĠĠĠĠ Ġitem Ġ= Ġshare Agent . state . item . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ" item " Ġ+ Ġshare Agent . state . share Count ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }