/* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 Ġcom . w es ley elli ott . weather . utils Ċ Ċ import Ġandroid . icu . util . Locale Data Ċ import Ġandroid . icu . util . UL oc ale Ċ import Ġandroid . os . Build Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . static Composition Local Of Ċ import Ġjava . util . Locale Ċ Ċ /** Ċ Ġ* ĠThis Ġcomposition Ġlocal Ġallows Ġchild Ġcomp os ables Ġof Ġthe Ġapp Ġto Ġaccess Ġthe Ġcurrent Ġmeasurement Ċ Ġ* Ġunit Ġused Ġby Ġthe Ġapp . ĠIt Ġdefaults Ġto Ġthe Ġsystem Ġsettings , Ġbut Ġcan Ġbe Ġchanged Ġduring Ġan Ġapp Ċ Ġ* Ġsession Ġto Ġthe Ġusers Ġpreference . Ċ Ġ* ĠThis Ġis Ġreset Ġon Ġevery Ġapp Ġlaunch . Ċ Ġ*/ Ċ val ĠLocal Unit Provider Ġ= Ġstatic Composition Local Of Ġ{ ĊĠĠĠ Ġmutable State Of ( Locale . getDefault (). getLocale Units ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠOur Ġown Ġrepresentation Ġof Ġthe Ġdifferent Ġmeasurement Ġunits Ġavailable Ċ Ġ*/ Ċ enum Ġclass ĠMeasurement Unit Ġ{ ĊĠĠĠ ĠMET RIC , ĊĠĠĠ ĠIMP ERIAL , ĊĠĠĠ ĠUK Ġ// ĠThey Ġjust Ġhave Ġto Ġbe Ġdifferent ... Ċ } Ċ Ċ /** Ċ Ġ* ĠHelper Ġfunction Ġto Ġget Ġthe Ġunit Ġsystem Ġthe Ġphone Ġuses , Ġbased Ġon Ġthe Ġuser 's Ġselected Ġ[ Locale ] Ċ Ġ*/ Ċ fun ĠLocale . getLocale Units (): ĠMeasurement Unit Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( Locale Data . get Measurement System ( UL oc ale . for Locale ( this ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale Data . Measurement System . SI Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasurement Unit . METRIC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale Data . Measurement System . UK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasurement Unit . UK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale Data . Measurement System . US Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasurement Unit . IMP ERIAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasurement Unit . METRIC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this . country ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" UK " Ġ-> ĠMeasurement Unit . UK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" US ", Ġ" LR ", Ġ" MM " Ġ-> ĠMeasurement Unit . IMP ERIAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMeasurement Unit . METRIC ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ