/* Ċ Ġ* Ġ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 . compose . ui . text . font Ċ Ċ /** Ċ Ġ* ĠFont Ġloading Ġstrategy Ġfor Ġa Ġ[ Font ] Ġin Ġa Ġ[ Font List Font Family ]. Ċ Ġ* Ċ Ġ* ĠThis Ġcontrols Ġhow Ġfont Ġloading Ġresolves Ġwhen Ġdisplaying Ġtext Ġin ĠCompose . Ċ Ġ* Ċ Ġ* ĠFor Ġmore Ġinformation Ġabout Ġfont Ġfamily Ġresolution Ġsee Ġ[ Font Family ]. Ċ Ġ*/ Ċ @ kotlin . jvm . Jvm Inline Ċ value Ġclass ĠFont Loading Strategy Ġprivate Ġconstructor ( val Ġvalue : ĠInt ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock ing Ġ-> Ġ" Blocking " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOptional Local Ġ-> Ġ" Optional " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAsync Ġ-> Ġ" Async " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Invalid ( value =$ value )" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRes olving Ġthis Ġfont Ġwill Ġalways Ġblock Ġuntil Ġthe Ġfont Ġloads . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġmeans Ġthat Ġthe Ġfirst Ġframe Ġthat Ġuses Ġthis Ġfont Ġwill Ġalways Ġdisplay Ġusing Ġthe Ġdesired ĊĠĠĠĠĠĠĠĠ Ġ* Ġfont , Ġand Ġtext Ġwill Ġnever Ġre flow . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġshould Ġtypically Ġbe Ġused Ġfor Ġfonts Ġthat Ġstored Ġon - device . ĠIt Ġis Ġacceptable Ġto Ġblock ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġfirst Ġframe Ġof Ġan Ġapplication Ġto Ġread Ġa Ġfont Ġfrom Ġdisk . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġshould Ġtypically Ġnot Ġbe Ġused Ġfor Ġfonts Ġthat Ġare Ġfetched Ġfrom Ġa Ġremote Ġsource Ġsuch Ġas ĊĠĠĠĠĠĠĠĠ Ġ* Ġover Ġhttp , Ġas Ġit Ġwill Ġblock Ġall Ġrendering Ġuntil Ġthe Ġfont Ġloads . ĠInstead Ġuse Ġ[ Async ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠBlock ing Ġ= ĠFont Loading Strategy ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRes olving Ġthis Ġfont Ġis Ġbest - eff ort Ġand Ġwill Ġattempt Ġto Ġload Ġfrom Ġa Ġlocal Ġresource Ġthat ĊĠĠĠĠĠĠĠĠ Ġ* ĠMAY Ġbe Ġavailable . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠRes olving Ġthis Ġfont Ġwill Ġalways Ġblock Ġuntil Ġthe Ġfont Ġresolves , Ġand Ġtext Ġwill Ġnever ĊĠĠĠĠĠĠĠĠ Ġ* Ġre flow . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠAn Ġ[ Optional Local ] Ġfont Ġdescribes Ġa Ġfont Ġthat Ġis Ġinstalled Ġlocally , Ġsuch Ġas Ġan Ġoptional ĊĠĠĠĠĠĠĠĠ Ġ* Ġsystem Ġinstalled Ġfont . ĠResolution Ġof Ġan Ġ[ Optional Local ] Ġfont Ġis Ġexpected Ġto Ġfail Ġwhenever ĊĠĠĠĠĠĠĠĠ Ġ* Ġthe Ġresource Ġis Ġnot Ġavailable , Ġwhich Ġwill Ġfallback Ġto Ġthe Ġnext Ġfont Ġin Ġthe Ġ[ Font Family ]. ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠTyp ical Ġusage s Ġinvolve Ġfollowing Ġthe Ġ[ Optional Local ] Ġfont Ġwith Ġthe Ġsame Ġfont Ġloaded Ġfrom ĊĠĠĠĠĠĠĠĠ Ġ* Ġa Ġremote Ġ[ Async ] Ġsource . ĠIt Ġmay Ġalso Ġbe Ġfollowed Ġby Ġother Ġ[ Optional Local ] Ġfonts Ġor ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ Blocking ] Ġfonts Ġthat Ġhave Ġless Ġspecific Ġstyling Ġto Ġavoid Ġasync Ġdelay . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠApps Ġshould Ġexpect Ġthat Ġ[ Optional Local ] Ġfonts Ġwill Ġfail Ġto Ġload Ġon Ġdevices Ġwhere Ġthe ĊĠĠĠĠĠĠĠĠ Ġ* Ġfont Ġis Ġnot Ġavailable . ĊĠĠĠĠĠĠĠĠ Ġ** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġshould Ġtypically Ġnot Ġbe Ġused Ġfor Ġfonts Ġthat Ġare Ġfetched Ġfrom Ġa Ġremote Ġsource Ġsuch Ġas ĊĠĠĠĠĠĠĠĠ Ġ* Ġover Ġhttp , Ġas Ġit Ġwill Ġblock Ġall Ġrendering Ġuntil Ġthe Ġfont Ġloads . ĠInstead Ġuse Ġ[ Async ]. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠOptional Local Ġ= ĠFont Loading Strategy ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠLoading Ġthis Ġfont Ġwill Ġnever Ġblock , Ġand Ġwill Ġload Ġon Ġa Ġbackground Ġthread . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠDuring Ġloading , Ġthe Ġapp Ġwill Ġnot Ġblock Ġbut Ġinstead Ġwill Ġfind Ġthe Ġnext Ġavailable Ġfont Ġthat ĊĠĠĠĠĠĠĠĠ Ġ* Ġis Ġimmediately Ġavailable Ġ([ Blocking ] Ġor Ġ[ Optional Local ]). ĠWhen Ġthe Ġfont Ġfinishes Ġloading , ĊĠĠĠĠĠĠĠĠ Ġ* Ġtext Ġwill Ġre flow Ġwith Ġthe Ġresolved Ġtype face . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠIf Ġno Ġfallback Ġfonts Ġare Ġavailable Ġimmediately , Ġthe Ġplatform Ġdefault Ġtype face Ġwill Ġbe ĊĠĠĠĠĠĠĠĠ Ġ* Ġused Ġto Ġdraw Ġtext Ġduring Ġloading . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠIf Ġloading Ġfails , Ġthe Ġfailure Ġis Ġstored Ġper manently , Ġand Ġfuture Ġuses Ġof Ġthe Ġfont Ġwill ĊĠĠĠĠĠĠĠĠ Ġ* Ġalways Ġuse Ġthe Ġfallback . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġshould Ġtypically Ġnot Ġbe Ġused Ġfor Ġfonts Ġthat Ġare Ġstored Ġon - device Ġand Ġneeded Ġfor Ġthe ĊĠĠĠĠĠĠĠĠ Ġ* Ġfirst Ġframe . ĠInstead Ġuse Ġ[ Blocking ] Ġor Ġ[ Optional Local ]. ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġshould Ġalways Ġbe Ġused Ġfor Ġfonts Ġthat Ġare Ġfetched Ġfrom Ġa Ġremote Ġsource Ġsuch Ġas Ġover ĊĠĠĠĠĠĠĠĠ Ġ* Ġhttp . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠAsync Ġ= ĠFont Loading Strategy ( 2 ) ĊĠĠĠ Ġ} Ċ } Ċ