package Ġcom . free let ics . migr ator Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Migr ator Version Store ] Ġimplementation Ġthat Ġuses Ġ[ SharedPreferences ] Ġto Ġstore Ġvalue . Ċ Ġ*/ Ċ class ĠShared Prefs Migr ator Version Store ( context : ĠContext ) Ġ: ĠM igr ator Version Store Ġ{ ĊĊĠĠĠ Ġ// Ġinternal Ġvisibility Ġfor Ġtesting ĊĠĠĠ Ġinternal Ġval Ġshared Prefs : ĠSharedPreferences Ġ= ĊĠĠĠĠĠĠĠ Ġcontext . application Context . get SharedPreferences (" M IG RATION _ VERSION _ STORE ", ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠ Ġprivate Ġval ĠKEY _ LAST _ VERSION Ġ= Ġ" last Version Successfully Migr ated " ĊĊĠĠĠ Ġoverride Ġfun Ġget Migr ated Until Version (): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġshared Prefs . getInt ( KEY _ LAST _ VERSION , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( version Ġ== Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġversion ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Migr ated Until Version ( version : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( version Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Version Ġmust Ġbe Ġ>= Ġ 1 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshared Prefs . edit (). put Int ( KEY _ LAST _ VERSION , Ġversion ). apply () ĊĠĠĠ Ġ} Ċ }