package Ġio . x apk . apk installer . utils Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Locale List Ċ import Ġandroid . text . TextUtils Ċ import Ġio . x apk . apk installer . R Ċ import Ġio . x apk . apk installer . app . App Ċ import Ġio . x apk . apk installer . app . Settings Ċ import Ġjava . util .* Ċ Ċ object ĠLocale Utils Ġ{ ĊĊĠĠĠ Ġval Ġapp Local : ĠLocale ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal Value Ġ= ĠSettings . language Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( TextUtils . equals ( local Value , ĠApp . mContext . getString ( R . string . language _ auto _ value ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Local ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Language Tag ( local Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsystem Local : ĠLocale ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale List . getDefault (). get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . getDefault () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsystem Local Tag : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġto Language Tag ( system Local ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġapp Local Tag : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġto Language Tag ( app Local ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠ Ġ* ĠĠ Ġlocale . to Language Tag () ĊĠĠĠĠ Ġ* Ġ Ġ} ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġto Language Tag ( locale : ĠLocale ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġlocale . language ĊĠĠĠĠĠĠĠ Ġval Ġcountry Ġ= Ġlocale . country ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġlocale . variant ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Utils . isEmpty ( country ) Ġ-> Ġlanguage ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Utils . isEmpty ( variant ) Ġ-> Ġ"$ language -$ country " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"$ language -$ country -$ variant " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfor Language Tag ( language Tag : ĠString ): ĠLocale Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . for Language Tag ( language Tag ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġlanguage Tag . split ("- ". to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parts . size Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale ( parts [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( parts . size Ġ== Ġ 2 Ġ|| Ġparts . size Ġ== Ġ 3 Ġ&& Ġparts [ 2 ]. startsWith ("# ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale ( parts [ 0 ], Ġparts [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocale ( parts [ 0 ], Ġparts [ 1 ], Ġparts [ 2 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ