package Ġcom . numero . material _ gallery . repository Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . core . content . edit Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcom . numero . material _ gallery . R Ċ import Ġcom . numero . material _ gallery . model . Theme Ċ Ċ class ĠConfig Repository Impl ( context : ĠContext ) Ġ: ĠConfig Repository Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsettings Preference Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĊĠĠĠ Ġoverride Ġval Ġtheme Res : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshape Theme Ġ= Ġsettings Preference . get Shape Theme () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( shape Theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShape Theme . RO UN DED Ġ-> ĠR . style . Theme _ Material Gallery _ Day Night _ Rounded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShape Theme . CUT Ġ-> ĠR . style . Theme _ Material Gallery _ Day Night _ Cut ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetCurrent Theme (): ĠTheme Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġsettings Preference . getString ( KEY _ THEME , Ġnull ) Ġ?: Ġreturn ĠTheme . SYSTEM _ DEFAULT ĊĠĠĠĠĠĠĠ Ġreturn ĠTheme . find ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate And Apply Theme ( theme : ĠTheme ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings Preference . edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( KEY _ THEME , Ġtheme . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtheme . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠSharedPreferences . get Shape Theme (): ĠShape Theme Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠgetString ( KEY _ SHAPE _ THEME , Ġnull ) Ġ?: Ġreturn ĠShape Theme . RO UN DED ĊĠĠĠĠĠĠĠ Ġreturn ĠShape Theme . find Shape Theme ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠShape Theme ( private Ġval Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRO UN DED (" rounded "), ĊĠĠĠĠĠĠĠ ĠC UT (" cut "); ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfind Shape Theme ( value : ĠString ): ĠShape Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠcheckNotNull ( values (). find Ġ{ Ġit . value Ġ== Ġvalue Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ THEME Ġ= Ġ" select _ theme " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ SHAPE _ THEME Ġ= Ġ" shape _ theme " ĊĠĠĠ Ġ} Ċ }