package Ġlibrary Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . util . Log Ċ import Ġcom . n inen ox . kotlin locale manager . Locale Manager Ċ import Ġt gl . le comp te ur del ar ou lot te . MainActivity Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . FileReader Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ object ĠHelper Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" ==== ĠHEL PER Ġ=== =" ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠMainActivity ĊĠĠĠ Ġprivate Ġconst Ġval ĠSCREEN _ ON Ġ= Ġ" screen _ on " ĊĠĠĠ Ġprivate Ġconst Ġval ĠV OL UME _ ON Ġ= Ġ" volume _ on " ĊĠĠĠ Ġprivate Ġconst Ġval ĠLANGUAGE Ġ= Ġ" language " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshared Pref : ĠSharedPreferences ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġf : ĠFile ĊĊĠĠĠ Ġfun Ġinit ( c : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġc Ġas ĠMainActivity ĊĠĠĠĠĠĠĠ Ġshared Pref Ġ= Ġcontext . get SharedPreferences (" Comp te ur De La R ou lot te _ preferences ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġ" config . properties " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf Ġ= ĠFile ( context . files Dir . path Ġ+ Ġ"/" Ġ+ ĠfileName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( f . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . load ( FileReader ( f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscreen On Ġ= Ġproperties . getProperty ( SCREEN _ ON ). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvolume On Ġ= Ġproperties . getProperty ( VOLUME _ ON ). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġproperties . getProperty ( LANGUAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Pref Screen ( screen On ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Pref Volume ( volume On ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Pref Language ( language ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . delete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResources . NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Unable Ġto Ġfind Ġthe Ġconfig Ġfile : Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Failed Ġto Ġopen Ġconfig Ġfile . Ġ" Ġ+ Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// e . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Pref Screen ( is Screen On : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Pref . edit (). put Boolean ( SCREEN _ ON , Ġis Screen On ). apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Pref Screen (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Pref . getBoolean ( SCREEN _ ON , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Pref Volume ( is Volume On : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshared Pref . edit (). put Boolean ( VOLUME _ ON , Ġis Volume On ). apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Pref Volume (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Pref . getBoolean ( VOLUME _ ON , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Pref Language ( language : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! languages Available (). contains ( language )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" HELPER ", Ġ" Language Ġnot Ġknown Ġ$ language ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Pref . edit (). putString ( LANGUAGE , Ġlanguage ). apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Pref Language (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Pref . getString ( LANGUAGE , Ġnull ) ?: Ġ"-" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Language Available ( language : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlanguages Available (). contains ( language ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Language (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLocale Manager ( context ). language . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlanguages Available (): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ("- ", Ġ" FR ", Ġ" NL ", Ġ" EN ") ĊĠĠĠ Ġ} Ċ }