package Ġabi 4 4 _ 0 _ 0 . expo . modules . kotlin . types Ċ Ċ import Ġabi 4 4 _ 0 _ 0 . com . facebook . react . bridge . Dynamic Ċ import Ġabi 4 4 _ 0 _ 0 . expo . modules . kotlin . recycle Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Type Ċ Ċ class ĠArray Type Converter ( ĊĠ Ġconverter Provider : ĠType Converter Provider , ĊĠ Ġprivate Ġval Ġtype : ĠK Type , Ċ ) Ġ: ĠType Converter < Array < *> >( type . is Marked Nullable ) Ġ{ ĊĠ Ġprivate Ġval Ġarray Element Converter Ġ= Ġconverter Provider . obtain Type Converter ( ĊĠĠĠ Ġrequire NotNull ( type . arguments . first (). type ) Ġ{ ĊĠĠĠĠĠ Ġ" The Ġarray Ġtype Ġshould Ġcontain Ġthe Ġtype Ġof Ġthe Ġelements ." ĊĠĠĠ Ġ} ĊĠ Ġ) ĊĊĠ Ġoverride Ġfun Ġconvert Non Optional ( value : ĠDynamic ): ĠArray < *> Ġ{ ĊĠĠĠ Ġval Ġjs Array Ġ= Ġvalue . as Array () ĊĠĠĠ Ġval Ġarray Ġ= Ġcreate Typed Array ( js Array . size ()) ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġjs Array . size ()) Ġ{ ĊĠĠĠĠĠ Ġarray [ i ] Ġ= Ġjs Array ĊĠĠĠĠĠĠĠ Ġ. get Dynamic ( i ) ĊĠĠĠĠĠĠĠ Ġ. recycle Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġarray Element Converter . convert ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġarray ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠWe Ġcan 't Ġuse Ġa ĠArray < Any ?> Ġhere . ĠWe Ġhave Ġto Ġcreate Ġa Ġtyped Ġarray . ĊĠĠ Ġ* ĠOtherwise , Ġcast Ġwhich Ġis Ġdone Ġbefore Ġcalling Ġlambda Ġprovided Ġby Ġthe Ġuser Ġwill Ġalways Ġfail . ĊĠĠ Ġ* ĠFor ĠJVM , ĠArray < String > Ġis Ġa Ġdifferent Ġtype Ġthan ĠArray < Any ?> . ĊĠĠ Ġ* ĠThe Ġfirst Ġone Ġis Ġtranslated Ġto Ġ`[ Ljava . lang . String ;` Ġbut Ġthe Ġsecond Ġone Ġis Ġtranslated Ġto Ġ`[ java . lang . Object ; `. ĊĠĠ Ġ*/ ĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġprivate Ġfun Ġcreate Typed Array ( size : ĠInt ): ĠArray < Any ?> Ġ{ ĊĠĠĠ Ġreturn Ġjava . lang . reflect . Array . newInstance ( ĊĠĠĠĠĠ Ġ( type . arguments . first (). type !!. classifier Ġas ĠK Class < *> ). java , ĊĠĠĠĠĠ Ġsize ĊĠĠĠ Ġ) Ġas ĠArray < Any ?> ĊĠ Ġ} Ċ } Ċ