/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . gl ance . app widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . gl ance . Gl ance Modifier Ċ import Ġandroidx . gl ance . app widget . View Subject . Companion . assertThat Ċ import Ġandroidx . gl ance . app widget . test . R Ċ import Ġandroidx . gl ance . layout . Column Ċ import Ġandroidx . gl ance . layout . Row Ċ import Ġandroidx . gl ance . layout . Text Ċ import Ġandroidx . gl ance . layout . fill Max Height Ċ import Ġandroidx . gl ance . layout . fill Max Width Ċ import Ġandroidx . gl ance . layout . height Ċ import Ġandroidx . gl ance . layout . width Ċ import Ġandroidx . gl ance . layout . wrap Content Height Ċ import Ġandroidx . gl ance . layout . wrap Content Width Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . test . Test Coroutine Scope Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġkotlin . test . assertIs Ċ import Ġkotlin . test . assertNotNull Ċ Ċ @ Opt In ( Experimental Cor outines Api :: class ) Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ class ĠApply Dimension Modifier Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfake Coroutine Scope : ĠTest Coroutine Scope ĊĠĠĠ Ġprivate Ġval Ġcontext Ġ= ĠApplication Provider . getApplicationContext < Context >() ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġfake Coroutine Scope Ġ= ĠTest Coroutine Scope () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormal Resource Width () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" content ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠGl ance Modifier . width ( R . dim en . standard _ dimension ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . width ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( context . resources . get Dimension Pixel Size ( R . dim en . standard _ dimension )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġview . find View < ViewGroup > Ġ{ Ġit . id Ġ== ĠR . id . size View Ġ} ?. getChild At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( textView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Is < TextView >( textView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Width Ġ= Ġcontext . resources . get Dimension Pixel Size ( R . dim en . standard _ dimension ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( textView . min Width ). isEqualTo ( target Width ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( textView . maxWidth ). isEqualTo ( target Width ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfill Width () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . fill Max Width ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . width ). isEqualTo ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrap Width () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . wrap Content Width ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . width ). isEqualTo ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexpand Width () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . default Weight ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < LinearLayout >( view ) ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġassert Is < TextView >( view . getChild At ( 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Param Ġ= Ġassert Is < LinearLayout . LayoutParams >( child . layout Params ) ĊĠĠĠĠĠĠĠ ĠassertThat ( layout Param . width ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( layout Param . weight ). isEqualTo ( 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfill Resource Width () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . width ( R . dim en . fill _ dimension )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . width ). isEqualTo ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrap Resource Width () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . width ( R . dim en . wrap _ dimension )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . width ). isEqualTo ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnormal Resource Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" content ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠGl ance Modifier . height ( R . dim en . standard _ dimension ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( context . resources . get Dimension Pixel Size ( R . dim en . standard _ dimension )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġview . find View < ViewGroup > Ġ{ Ġit . id Ġ== ĠR . id . size View Ġ} ?. getChild At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( textView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Is < TextView >( textView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Height Ġ= Ġcontext . resources . get Dimension Pixel Size ( R . dim en . standard _ dimension ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( textView . min Height ). isEqualTo ( target Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( textView . max Height ). isEqualTo ( target Height ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfill Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . fill Max Height ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . height ). isEqualTo ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrap Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . wrap Content Height ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view . layout Params . height ). isEqualTo ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexpand Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . default Weight ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < LinearLayout >( view ) ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġassert Is < TextView >( view . getChild At ( 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Param Ġ= Ġassert Is < LinearLayout . LayoutParams >( child . layout Params ) ĊĠĠĠĠĠĠĠ ĠassertThat ( layout Param . height ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( layout Param . weight ). isEqualTo ( 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfill Resource Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . height ( R . dim en . fill _ dimension )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Height ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrap Resource Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . height ( R . dim en . wrap _ dimension )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Height ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġwrap Width _ fill Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . wrap Content Width (). fill Max Height ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Width ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Height ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfill Width _ wrap Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . fill Max Width (). wrap Content Height ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Width ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Height ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfill Width _ fixed Height () Ġ= Ġfake Coroutine Scope . run Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrv Ġ= Ġcontext . run And Translate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText (" content ", Ġmodifier Ġ= ĠGl ance Modifier . fill Max Width (). height ( 5 0 . dp )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġcontext . apply Remote Views ( rv ) ĊĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Width ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Height Ġ= Ġ 5 0 . dp . to Pixels ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Is < TextView >( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( view ). has LayoutParams Height ( target Height ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize View Ġ= ĠgetS izing View ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( size View . min Height ). isEqualTo ( target Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( size View . max Height ). isEqualTo ( target Height ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetS izing View ( view : ĠView ): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize View Ġ= Ġview . find View < ViewGroup > Ġ{ Ġit . id Ġ== ĠR . id . size View Ġ} ?. getChild At ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( size View ) ĊĠĠĠĠĠĠĠ Ġassert Is < TextView >( size View ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsize View ĊĠĠĠ Ġ} Ċ }