package Ġcom . react nat iven avigation . views . element . finder Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . do On Layout Ċ import Ġcom . facebook . react . u im an ager . util . React Find View Util Ċ import Ġcom . react nat iven avigation . utils . do On Layout Compat Ċ import Ġcom . react nat iven avigation . view controllers . view controller . ViewController Ċ import Ġkotlinx . coroutines . suspend C ancellable Coroutine Ċ import Ġkotlin . coroutines . resume Ċ Ċ class ĠOptim istic View Finder Ġ: ĠView Finder Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfind ( root : ĠView Controller <* >, Ġnative Id : ĠString ) Ġ= Ġsuspend C ancellable Coroutine < View ?> () Ġ{ Ġcont Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġon View Found Listener Ġ= Ġobject Ġ: ĠReact Find View Util . On View Found Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Native Id () Ġ= Ġnative Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Found ( view : ĠView ) Ġ= Ġview . do On Layout Ġ{ Ġcont . resume ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġappear Listener Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! cont . is Completed ) Ġcont . resume ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReact Find View Util . remove View Listener ( on View Found Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcont . invoke On Cancellation Ġ{ ĠReact Find View Util . remove View Listener ( on View Found Listener ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠReact Find View Util . find View ( root . view , Ġnative Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġview Ġ-> Ġview . do On Layout Compat Ġ{ Ġcont . resume ( view ) Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( root . is Rendered ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont . resume ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReact Find View Util . find View ( root . view , Ġon View Found Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . add On Ap pe ared Listener ( appear Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }