package Ġcom . nk ming . sys usage Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . preference . Preference Manager Ċ import Ġcom . nk ming . utils . Log Ċ Ċ class ĠSystem Usage App Ġ: ĠApplication () Ċ { Ċ ĉ override Ġfun ĠonCreate () Ċ ĉ { Ċĉ ĉ super . onCreate () Ċĉ ĉ init Log () Ċĉ ĉ init Default Pref () ĊĊĉ ĉ val Ġpref Ġ= ĠPreference . from ( this ) Ċĉ ĉ migrate Version ( pref ) Ċĉ ĉ start Service IfNeeded ( pref ) Ċ ĉ } ĊĊ ĉ private Ġfun Ġinit Log () Ċ ĉ { Ċĉ ĉ Log . is Show Debug Ġ= ĠBuild Config . DEBUG Ċĉ ĉ Log . is Show Verbose Ġ= ĠBuild Config . DEBUG Ċ ĉ } ĊĊ ĉ private Ġfun Ġinit Default Pref () Ċ ĉ { Ċĉ ĉ Preference Manager . setDefault Values ( this , ĠgetString ( R . string . pref _ file ), Ċĉĉĉ ĉ Context . MODE _ PRIVATE , ĠR . xml . preference , Ġfalse ) Ċ ĉ } ĊĊ ĉ private Ġfun Ġmigrate Version ( pref : ĠPreference ) Ċ ĉ { Ċĉ ĉ if Ġ( pref . last Version Ġ== ĠBuild Config . VERSION _ CODE ) Ċĉ ĉ { Ċĉĉ ĉ // ĠSame Ġversion Ċĉĉ ĉ return Ċĉ ĉ } Ċĉ ĉ else Ġif Ġ( pref . last Version Ġ== Ġ- 1 ) Ċĉ ĉ { Ċĉĉ ĉ // ĠNew Ġinstall Ċĉ ĉ } Ċĉ ĉ else Ġif Ġ( pref . last Version Ġ< ĠBuild Config . VERSION _ CODE ) Ċĉ ĉ { Ċĉĉ ĉ // ĠUpgrade Ċĉĉ ĉ // ĠCurrently Ġno Ġmigration Ġneeded Ċĉ ĉ } Ċĉ ĉ else Ġif Ġ( pref . last Version Ġ> ĠBuild Config . VERSION _ CODE ) Ċĉ ĉ { Ċĉĉ ĉ // ĠDown grade Ġo . O Ċĉ ĉ } Ċĉ ĉ pref . last Version Ġ= ĠBuild Config . VERSION _ CODE Ċĉ ĉ pref . commit () Ċ ĉ } ĊĊ ĉ private Ġfun Ġstart Service IfNeeded ( pref : ĠPreference ) Ċ ĉ { Ċĉ ĉ if Ġ(! pref . has Run Setup Wizard Ġ|| Ġ! pref . is Enable ) Ċĉ ĉ { Ċĉĉ ĉ return Ċĉ ĉ } Ċĉ ĉ if Ġ( pref . is Enable Cpu Ġ|| Ġpref . is Enable Mem Ġ|| Ġpref . is Enable Net Ċĉĉĉ ĉ || Ġpref . is Enable Disk ) Ċĉ ĉ { Ċĉĉ ĉ Not if Service . start ( this ) Ċĉ ĉ } Ċ ĉ } Ċ } Ċ