package Ġcom . w kb . custom input box 2 . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . preference . Preference Manager Ċ import Ġjava . util .* ĊĊ Ċ class ĠLocale Helper Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject ĠFactory Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonCreate (): ĠLocale Helper Ġ= ĠLocale Helper () ĊĠĠĠĠĠĠĠ Ġfun Ġget Language (): ĠLocale Helper Ġ= ĠLocale Helper () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcontext Ġ: ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠSELECT ED _ LANGUAGE Ġ= Ġ" Locale . Helper . Selected . Language " ĊĊĠĠĠ Ġfun ĠonCreate ( context : ĠContext ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġval Ġlang : ĠString ? ĊĠĠĠĠĠĠĠ Ġif Ġ( get Language ( context ) !!. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlang Ġ= Ġget Pers isted Data ( context , ĠLocale . getDefault (). get Language ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlang Ġ= Ġget Language ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Locale ( context , Ġlang ) ĊĊĠĠĠĠĠĠĠ Ġon Attach ( context ) ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun ĠonCreate ( context : ĠContext , Ġdefault Language : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlang Ġ= Ġget Pers isted Data ( context , Ġdefault Language ) ĊĠĠĠĠĠĠĠ Ġset Locale ( context , Ġlang ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Language ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Pers isted Data ( context , ĠLocale . getDefault (). get Language ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Locale ( context : ĠContext , Ġlanguage : ĠString ?): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġpersist ( context , Ġlanguage ) ĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Resources ( context , Ġlanguage ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġon Attach ( context : ĠContext ): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocale Ġ= Ġget Pers isted Data ( context , Ġget Language ( context ) !! ) ĊĠĠĠĠĠĠĠ Ġreturn Ġset Locale ( context , Ġlocale ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Pers isted Data ( context : ĠContext , Ġdefault Language : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpreferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . getString ( SELECTED _ LANGUAGE , Ġdefault Language ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpersist ( context : ĠContext , Ġlanguage : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpreferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpreferences . edit () ĊĊĠĠĠĠĠĠĠ Ġeditor . putString ( SELECTED _ LANGUAGE , Ġlanguage ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġupdate Resources ( context : ĠContext , Ġlanguage : ĠString ?): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocale Ġ= ĠLocale ( language ) ĊĠĠĠĠĠĠĠ ĠLocale . setDefault ( locale ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġcontext . getResources () ĊĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= Ġresources . getConfiguration () ĊĠĠĠĠĠĠĠ Ġconfiguration . locale Ġ= Ġlocale ĊĊĠĠĠĠĠĠĠ Ġresources . update Configuration ( configuration , Ġresources . getDisplay Metrics ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġ Ġcontext ĊĊĠĠĠ Ġ} ĊĊ Ċ }