package Ġau . id . rl ac . unit converter . app Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġau . id . rl ac . unit converter . converter . Measure Ċ import Ġau . id . rl ac . unit converter . converter . Measurement System Ċ import Ġau . id . rl ac . unit converter . converter . Unit Converter Ċ Ċ /** Ċ Ġ* ĠApplication Ġpreferences Ġand Ġpersisted Ġuser Ġstate . Ċ Ġ*/ Ċ object ĠPreferences Ġ{ ĊĠ Ġval Ġshared Prefs : ĠSharedPreferences Ġby Ġlazy Ġ{ ĊĠĠĠ ĠUnit Converter Application . instance . get SharedPreferences (" prefs ", ĠContext . MODE _ PRIVATE ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġlast Measure Key ( uc : ĠUnit Converter , Ġsystem : ĠMeasurement System ) Ġ= ĊĠĠĠĠĠ Ġ" last _ measure _${ uc . ordinal }${ system . ordinal }" ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSave Ġthe Ġmost Ġrecently Ġused Ġmeasurement Ġfor Ġa Ġunit Ġconverter Ġand Ġmeasurement Ġsystem . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġsave Last Measure ( uc : ĠUnit Converter , Ġpreferred : ĠMeasure ) Ġ{ ĊĠĠĠ Ġshared Prefs . edit (). put Int ( last Measure Key ( uc , Ġpreferred . system ), Ġpreferred . ordinal ). apply () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠRetrieve Ġthe Ġmost Ġrecently Ġused Ġmeasurement Ġfor Ġa Ġunit Ġconverter Ġand Ġmeasurement Ġsystem . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġread Last Measure ( uc : ĠUnit Converter , Ġdefault : ĠMeasure ): ĠMeasure Ġ{ ĊĠĠĠ Ġwith Ġ( shared Prefs . getInt ( last Measure Key ( uc , Ġdefault . system ), Ġ- 1 )) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( this Ġ== Ġ- 1 ) Ġreturn Ġdefault ĊĠĠĠĠĠ Ġelse Ġreturn Ġuc . supported Units ( default . system ). first OrNull Ġ{ Ġit . ordinal Ġ== Ġthis Ġ} Ġ?: Ġdefault ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġmost Ġrecently Ġused Ġunit Ġconverter . ĊĠĠ Ġ*/ ĊĠ Ġvar Ġlast Converter : ĠUnit Converter ĊĠĠĠ Ġget () Ġ= ĠUnit Converter . values ()[ shared Prefs . getInt (" last _ converter ", ĠUnit Converter . LENGTH . ordinal )] ĊĠĠĠ Ġset ( value ) Ġ= Ġshared Prefs . edit (). put Int (" last _ converter ", Ġvalue . ordinal ). apply () ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġmost Ġrecently Ġused Ġ' from ' Ġmeasurement Ġsystem . ĊĠĠ Ġ*/ ĊĠ Ġvar Ġlast From System : ĠMeasurement System ĊĠĠĠ Ġget () Ġ= ĠMeasurement System . values ()[ shared Prefs . getInt (" last _ from _ system ", ĠMeasurement System . US . ordinal )] ĊĠĠĠ Ġset ( value ) Ġ= Ġshared Prefs . edit (). put Int (" last _ from _ system ", Ġvalue . ordinal ). apply () Ċ }