package Ġapp . me lon . framework . helper Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . core . os . Configuration Compat Ċ import Ġapp . me lon . base . initializer . App Initializer Ċ import Ġokhttp 3 . Interceptor Ċ import Ġjava . util . Locale Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton ĊĊ Ċ @ Singleton Ċ internal Ġclass ĠLocale Manager Ġ@ Inject Ġconstructor () Ġ: ĠApp Initializer Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlocale Param : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Locale ( locale : ĠLocale ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . locale Param Ġ= Ġwhen Ġ( locale ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . CH INE SE , ĠLocale . CH INA Ġ-> Ġ" zh " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" en " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġprovide Interceptor () Ġ= ĠInter ceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġif Ġ( locale Param Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( original ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġoriginal . url . newBuilder (). add QueryParameter ( LOCAL E _ PARAM _ NAME , Ġlocale Param ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġoriginal . newBuilder (). url ( url ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOCAL E _ PARAM _ NAME Ġ= Ġ" locale " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( application : ĠApplication ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocales Ġ= ĠConfiguration Compat . get Locales ( application . resources . configuration ) ĊĠĠĠĠĠĠĠ Ġval Ġlocale Ġ= Ġif Ġ( locales . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . CH INA ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocales . get ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Locale ( locale ) ĊĠĠĠ Ġ} Ċ }