package Ġeu . kan ade . t ach iy omi . ui . setting Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Handler Ċ import Ġandroid . text . InputType Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . preference . Preference Screen Ċ import Ġcom . af ol le st ad . material dialogs . Material Dialog Ċ import Ġcom . af ol le st ad . material dialogs . Which Button Ċ import Ġcom . af ol le st ad . material dialogs . actions . set ActionButton Enabled Ċ import Ġcom . af ol le st ad . material dialogs . custom view . custom View Ċ import Ġcom . af ol le st ad . material dialogs . input . getInput Field Ċ import Ġcom . af ol le st ad . material dialogs . input . input Ċ import Ġcom . tf cp or ci unc ula . flow . Preference Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . data . database . Database Helper Ċ import Ġeu . kan ade . t ach iy omi . data . database . models . M anga Ċ import Ġeu . kan ade . t ach iy omi . data . preference . CHAR GING Ċ import Ġeu . kan ade . t ach iy omi . data . preference . Preference Keys Ċ import Ġeu . kan ade . t ach iy omi . data . preference . UN METER ED _ NETWORK Ċ import Ġeu . kan ade . t ach iy omi . data . preference . as Immediate Flow Ċ import Ġeu . kan ade . t ach iy omi . databinding . Eh Dialog Categories Binding Ċ import Ġeu . kan ade . t ach iy omi . databinding . Eh Dialog Languages Binding Ċ import Ġeu . kan ade . t ach iy omi . ui . webview . WebView Activity Ċ import Ġeu . kan ade . t ach iy omi . util . preference . defaultValue Ċ import Ġeu . kan ade . t ach iy omi . util . preference . entries Res Ċ import Ġeu . kan ade . t ach iy omi . util . preference . int List Preference Ċ import Ġeu . kan ade . t ach iy omi . util . preference . list Preference Ċ import Ġeu . kan ade . t ach iy omi . util . preference . multi Select List Preference Ċ import Ġeu . kan ade . t ach iy omi . util . preference . onChange Ċ import Ġeu . kan ade . t ach iy omi . util . preference . onClick Ċ import Ġeu . kan ade . t ach iy omi . util . preference . preference Ċ import Ġeu . kan ade . t ach iy omi . util . preference . preference Category Ċ import Ġeu . kan ade . t ach iy omi . util . preference . summary Res Ċ import Ġeu . kan ade . t ach iy omi . util . preference . switch Preference Ċ import Ġeu . kan ade . t ach iy omi . util . preference . title Res Ċ import Ġeu . kan ade . t ach iy omi . util . system . toast Ċ import Ġex h . eh . EH ent ai Update Worker Ċ import Ġex h . eh . EH ent ai Update Worker Constants Ċ import Ġex h . eh . EH ent ai Updater Stats Ċ import Ġex h . favorites . F avorites Intro Dialog Ċ import Ġex h . favorites . Local F avorites Storage Ċ import Ġex h . metadata . metadata . EH ent ai Search Metadata Ċ import Ġex h . metadata . metadata . base . get Flat Metadata For M anga Ċ import Ġex h . source . is Eh Based M anga Ċ import Ġex h . u config . Warn Configure Dialog Controller Ċ import Ġex h . ui . login . Eh Login Activity Ċ import Ġex h . util . days Ċ import Ġex h . util . execute On IO Ċ import Ġex h . util . hours Ċ import Ġex h . util . milliseconds Ċ import Ġex h . util . minutes Ċ import Ġex h . util . null If Blank Ċ import Ġex h . util . seconds Ċ import Ġex h . util . trans Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . launch In Ċ import Ġkotlinx . coroutines . flow . on Each Ċ import Ġkotlinx . coroutines . flow . take Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġu y . ko hes ive . in jekt . inject Lazy Ċ import Ġkotlin . time . Duration Ċ Ċ /** Ċ Ġ* ĠEH ĠSettings Ġfragment Ċ Ġ*/ Ċ Ċ class ĠSettings Eh Controller Ġ: ĠSettings Controller () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdb : ĠDatabase Helper Ġby Ġinject Lazy () ĊĊĠĠĠ Ġprivate Ġfun ĠPreference <* >. re configure (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠListen Ġfor Ġchange Ġcommit ĊĠĠĠĠĠĠĠ Ġas Flow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( 1 ) Ġ// ĠOnly Ġlisten Ġfor Ġfirst Ġcommit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOnly Ġlisten Ġfor Ġfirst Ġchange Ġcommit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠW arn Configure Dialog Controller . upload Settings ( router ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAlways Ġreturn Ġtrue Ġto Ġsave Ġchanges ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Preference Screen ( screen : ĠPreference Screen ) Ġ= Ġscreen . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . pref _ category _ eh ĊĊĠĠĠĠĠĠĠ Ġpreference Category Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . eh ent ai _ prefs _ account _ settings ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . enable _ ex h ent ai ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Off Ġ= Ġcontext . getString ( R . string . requires _ login ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ enable Ex H ent ai ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Persistent Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ ĠnewVal Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewVal Ġas ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Val ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( Eh Login Activity . new Intent ( activity !! ), ĠLOGIN _ RESULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġint List Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . use _ h ent ai _ at _ home ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ enable _ h ah ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . use _ h ent ai _ at _ home _ summary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Res Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . use _ h ent ai _ at _ home _ option _ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . use _ h ent ai _ at _ home _ option _ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Values Ġ= ĠarrayOf (" 0 ", Ġ" 1 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ Ġpreferences . use H ent ai At Home (). re configure () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . show _ j apanese _ titles ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary On Ġ= Ġcontext . getString ( R . string . show _ j apanese _ titles _ option _ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Off Ġ= Ġcontext . getString ( R . string . show _ j apanese _ titles _ option _ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" use _ jp _ title " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ Ġpreferences . use J apanese Title (). re configure () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . use _ original _ images ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary On Ġ= Ġcontext . getString ( R . string . use _ original _ images _ on ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Off Ġ= Ġcontext . getString ( R . string . use _ original _ images _ off ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ use Orig Images ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ Ġpreferences . ex h Use Original Images (). re configure () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" pref _ w atched _ tags " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . w atched _ tags ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . w atched _ tags _ summary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġif Ġ( preferences . enable Ex h ent ai (). get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWebView Activity . new Intent ( activity !! , Ġurl Ġ= Ġ" https :// ex h ent ai . org / my tags ", Ġtitle Ġ= Ġcontext . getString ( R . string . w atched _ tags _ ex h )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWebView Activity . new Intent ( activity !! , Ġurl Ġ= Ġ" https :// e - h ent ai . org / my tags ", Ġtitle Ġ= Ġcontext . getString ( R . string . w atched _ tags _ eh )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . tag _ filtering _ threshold ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ tag _ filtering _ value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġcontext . getString ( R . string . tag _ filtering _ thresh hold _ summary , Ġpreferences . eh Tag Filter Value (). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( activity !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( R . string . tag _ filtering _ threshold ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Type Ġ= ĠInput Type . TYPE _ NUMBER _ FLAG _ SIGNED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwaitFor Positive Button Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow Empty Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdialog , Ġnumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Field Ġ= Ġdialog . getInput Field () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġnumber . toString (). toInt OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( value Ġ!= Ġnull Ġ&& Ġvalue Ġin Ġ- 9 9 9 9 .. 0 ) Ġ|| Ġnumber . toString () Ġ== Ġ"- ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Field . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Field . error Ġ= Ġcontext . getString ( R . string . tag _ filtering _ thresh hold _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set ActionButton Enabled ( Which Button . POSITIVE , Ġvalue Ġ!= Ġnull Ġ&& Ġvalue Ġin Ġ- 9 9 9 9 .. 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Button ( android . R . string . ok ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . getInput Field (). text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . eh Tag Filter Value (). set ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġcontext . getString ( R . string . tag _ filtering _ thresh hold _ summary , Ġpreferences . eh Tag Filter Value (). get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . eh Tag Filter Value (). re configure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. negative Button ( android . R . string . cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . tag _ watch ing _ thresh hold ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ tag _ watch ing _ value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġcontext . getString ( R . string . tag _ watch ing _ thresh hold _ summary , Ġpreferences . eh Tag Watch ing Value (). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( activity !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( R . string . tag _ watch ing _ thresh hold ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Type Ġ= ĠInput Type . TYPE _ NUMBER _ FLAG _ SIGNED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength Ġ= Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwaitFor Positive Button Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow Empty Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdialog , Ġnumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Field Ġ= Ġdialog . getInput Field () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġnumber . toString (). toInt OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull Ġ&& Ġvalue Ġin Ġ 0 .. 9 9 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Field . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Field . error Ġ= Ġcontext . getString ( R . string . tag _ watch ing _ thresh hold _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set ActionButton Enabled ( Which Button . POSITIVE , Ġvalue Ġ!= Ġnull Ġ&& Ġvalue Ġin Ġ 0 .. 9 9 9 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Button ( android . R . string . ok ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . getInput Field (). text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . eh Tag Watch ing Value (). set ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġcontext . getString ( R . string . tag _ watch ing _ thresh hold _ summary , Ġpreferences . eh Tag Watch ing Value (). get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . eh Tag Watch ing Value (). re configure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. negative Button ( android . R . string . cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" pref _ language _ filtering " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . language _ filtering ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . language _ filtering _ summary ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( activity !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( R . string . language _ filtering ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message ( R . string . language _ filtering _ summary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. custom View ( R . layout . eh _ dialog _ languages , Ġscroll able Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Button ( android . R . string . ok ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= Ġit . view . content Layout . custom View !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠE h Dialog Languages Binding . bind ( custom View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlanguages Ġ= Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ j apanese Original . isChecked } * ${ j apanese Translated . isChecked } * ${ j apanese Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ english Original . isChecked } * ${ english Translated . isChecked } * ${ english Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ chinese Original . isChecked } * ${ chinese Translated . isChecked } * ${ chinese Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ dut ch Original . isChecked } * ${ dut ch Translated . isChecked } * ${ dut ch Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ f rench Original . isChecked } * ${ f rench Translated . isChecked } * ${ f rench Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ ger man Original . isChecked } * ${ ger man Translated . isChecked } * ${ ger man Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ h ung arian Original . isChecked } * ${ h ung arian Translated . isChecked } * ${ h ung arian Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ ital ian Original . isChecked } * ${ ital ian Translated . isChecked } * ${ ital ian Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ k orean Original . isChecked } * ${ k orean Translated . isChecked } * ${ k orean Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ pol ish Original . isChecked } * ${ pol ish Translated . isChecked } * ${ pol ish Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ port ug ue se Original . isChecked } * ${ port ug ue se Translated . isChecked } * ${ port ug ue se Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ r ussian Original . isChecked } * ${ r ussian Translated . isChecked } * ${ r ussian Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ span ish Original . isChecked } * ${ span ish Translated . isChecked } * ${ span ish Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ th ai Original . isChecked } * ${ th ai Translated . isChecked } * ${ th ai Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ vi et name se Original . isChecked } * ${ vi et name se Translated . isChecked } * ${ vi et name se Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ not Available Original . isChecked } * ${ not Available Translated . isChecked } * ${ not Available Rewrite . isChecked }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ other Original . isChecked } * ${ other Translated . isChecked } * ${ other Rewrite . isChecked }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). join ToString ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Settings Languages (). set ( languages ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Settings Languages (). re configure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= Ġthis . view . content Layout . custom View !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠE h Dialog Languages Binding . bind ( custom View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Languages Ġ= Ġpreferences . ex h Settings Languages (). get (). split ("\ n ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj apanese Ġ= Ġsettings Languages [ 0 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenglish Ġ= Ġsettings Languages [ 1 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġch inese Ġ= Ġsettings Languages [ 2 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd utch Ġ= Ġsettings Languages [ 3 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf rench Ġ= Ġsettings Languages [ 4 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġger man Ġ= Ġsettings Languages [ 5 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh ung arian Ġ= Ġsettings Languages [ 6 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġit alian Ġ= Ġsettings Languages [ 7 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk orean Ġ= Ġsettings Languages [ 8 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpol ish Ġ= Ġsettings Languages [ 9 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġport ug ue se Ġ= Ġsettings Languages [ 1 0 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr ussian Ġ= Ġsettings Languages [ 1 1 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan ish Ġ= Ġsettings Languages [ 1 2 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġth ai Ġ= Ġsettings Languages [ 1 3 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv iet name se Ġ= Ġsettings Languages [ 1 4 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnot Available Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Languages [ 1 5 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġother Ġ= Ġsettings Languages [ 1 6 ]. split ("* "). map Ġ{ Ġit . to Boolean () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj apanese Original . isChecked Ġ= Ġj apanese [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj apanese Translated . isChecked Ġ= Ġj apanese [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj apanese Rewrite . isChecked Ġ= Ġj apanese [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj apanese Original . isChecked Ġ= Ġj apanese [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj apanese Translated . isChecked Ġ= Ġj apanese [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj apanese Rewrite . isChecked Ġ= Ġj apanese [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenglish Original . isChecked Ġ= Ġenglish [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenglish Translated . isChecked Ġ= Ġenglish [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenglish Rewrite . isChecked Ġ= Ġenglish [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġch inese Original . isChecked Ġ= Ġch inese [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġch inese Translated . isChecked Ġ= Ġch inese [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġch inese Rewrite . isChecked Ġ= Ġch inese [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd utch Original . isChecked Ġ= Ġd utch [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd utch Translated . isChecked Ġ= Ġd utch [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd utch Rewrite . isChecked Ġ= Ġd utch [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rench Original . isChecked Ġ= Ġf rench [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rench Translated . isChecked Ġ= Ġf rench [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rench Rewrite . isChecked Ġ= Ġf rench [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġger man Original . isChecked Ġ= Ġger man [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġger man Translated . isChecked Ġ= Ġger man [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġger man Rewrite . isChecked Ġ= Ġger man [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh ung arian Original . isChecked Ġ= Ġh ung arian [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh ung arian Translated . isChecked Ġ= Ġh ung arian [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh ung arian Rewrite . isChecked Ġ= Ġh ung arian [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit alian Original . isChecked Ġ= Ġit alian [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit alian Translated . isChecked Ġ= Ġit alian [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit alian Rewrite . isChecked Ġ= Ġit alian [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk orean Original . isChecked Ġ= Ġk orean [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk orean Translated . isChecked Ġ= Ġk orean [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk orean Rewrite . isChecked Ġ= Ġk orean [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpol ish Original . isChecked Ġ= Ġpol ish [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpol ish Translated . isChecked Ġ= Ġpol ish [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpol ish Rewrite . isChecked Ġ= Ġpol ish [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġport ug ue se Original . isChecked Ġ= Ġport ug ue se [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġport ug ue se Translated . isChecked Ġ= Ġport ug ue se [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġport ug ue se Rewrite . isChecked Ġ= Ġport ug ue se [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr ussian Original . isChecked Ġ= Ġr ussian [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr ussian Translated . isChecked Ġ= Ġr ussian [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr ussian Rewrite . isChecked Ġ= Ġr ussian [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan ish Original . isChecked Ġ= Ġspan ish [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan ish Translated . isChecked Ġ= Ġspan ish [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan ish Rewrite . isChecked Ġ= Ġspan ish [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġth ai Original . isChecked Ġ= Ġth ai [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġth ai Translated . isChecked Ġ= Ġth ai [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġth ai Rewrite . isChecked Ġ= Ġth ai [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv iet name se Original . isChecked Ġ= Ġv iet name se [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv iet name se Translated . isChecked Ġ= Ġv iet name se [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv iet name se Rewrite . isChecked Ġ= Ġv iet name se [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Available Original . isChecked Ġ= Ġnot Available [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Available Translated . isChecked Ġ= Ġnot Available [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Available Rewrite . isChecked Ġ= Ġnot Available [ 2 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġother Original . isChecked Ġ= Ġother [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġother Translated . isChecked Ġ= Ġother [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġother Rewrite . isChecked Ġ= Ġother [ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" pref _ front _ page _ categories " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . fr ong _ page _ categories ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . from t _ page _ categories _ summary ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( activity !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( R . string . fr ong _ page _ categories ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message ( R . string . from t _ page _ categories _ summary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. custom View ( R . layout . eh _ dialog _ categories , Ġscroll able Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Button Ġ{ Ġdialog Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= Ġdialog . view . content Layout . custom View !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠE h Dialog Categories Binding . bind ( custom View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Enabled Categories (). set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! dou jin shi Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! manga Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! artist Cg Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! game Cg Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! west ern Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! non H Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! image Set Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! co sp lay Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! as ian P orn Checkbox . isChecked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! misc Checkbox . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). join ToString ( separator Ġ= Ġ", ") Ġ{ Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Enabled Categories (). re configure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom View Ġ= Ġthis . view . content Layout . custom View !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠE h Dialog Categories Binding . bind ( custom View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġpreferences . ex h Enabled Categories (). get (). split ("," ). map Ġ{ Ġ! it . to Boolean () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd ou jin shi Checkbox . isChecked Ġ= Ġlist [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm anga Checkbox . isChecked Ġ= Ġlist [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartist Cg Checkbox . isChecked Ġ= Ġlist [ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Cg Checkbox . isChecked Ġ= Ġlist [ 3 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwest ern Checkbox . isChecked Ġ= Ġlist [ 4 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon H Checkbox . isChecked Ġ= Ġlist [ 5 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Set Checkbox . isChecked Ġ= Ġlist [ 6 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġco sp lay Checkbox . isChecked Ġ= Ġlist [ 7 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas ian P orn Checkbox . isChecked Ġ= Ġlist [ 8 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmisc Checkbox . isChecked Ġ= Ġlist [ 9 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ w atched _ list _ default _ state ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . w atched _ list _ default ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . w atched _ list _ state _ summary ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġ" auto " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ eh ent ai _ quality ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . eh _ image _ quality _ summary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . eh _ image _ quality ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Res Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . eh _ image _ quality _ auto , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . eh _ image _ quality _ 2 4 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . eh _ image _ quality _ 1 6 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . eh _ image _ quality _ 1 2 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . eh _ image _ quality _ 9 8 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . eh _ image _ quality _ 7 8 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Values Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" auto ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ov rs _ 2 4 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ov rs _ 1 6 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" high ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" med ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" low " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ Ġpreferences . image Quality (). re configure () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . enable Ex h ent ai (). as Immediate Flow Ġ{ Ġis Visible Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . pref _ en hanced _ e _ h ent ai _ view ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . pref _ en hanced _ e _ h ent ai _ view _ summary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . en hanced EH ent ai View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpreference Category Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . favorites _ sync ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . disable _ favorites _ upload ing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . disable _ favorites _ upload ing _ summary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ readOnly Sync ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" pref _ show _ sync _ favorite _ notes " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . show _ favorite _ sync _ notes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . show _ favorite _ sync _ notes _ summary ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorites Intro Dialog (). show ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . ignore _ sync _ errors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . ignore _ sync _ errors _ summary ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ len ient Sync ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" pref _ force _ sync _ reset " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . force _ sync _ state _ reset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Res Ġ= ĠR . string . force _ sync _ state _ reset _ summary ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( R . string . favorites _ sync _ reset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message ( R . string . favorites _ sync _ reset _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Button ( android . R . string . ok ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal F avorites Storage (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Realm (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . trans Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Snapshots ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . toast ( context . getString ( R . string . sync _ state _ reset ), ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. negative Button ( android . R . string . cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpreference Category Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . gallery _ update _ checker ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġint List Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ auto Update Frequency ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . time _ between _ batches ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Res Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ never , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 1 _ hour , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 2 _ hours , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 3 _ hours , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 6 _ hours , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 1 2 _ hours , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 2 4 _ hours , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . time _ between _ batches _ 4 8 _ hours ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Values Ġ= ĠarrayOf (" 0 ", Ġ" 1 ", Ġ" 2 ", Ġ" 3 ", Ġ" 6 ", Ġ" 1 2 ", Ġ" 2 4 ", Ġ" 4 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue Ġ= Ġ" 0 " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Auto Update Frequency (). as Flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ ĠnewVal Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġif Ġ( new Val Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . time _ between _ batches _ summary _ 1 , Ġcontext . getString ( R . string . app _ name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . time _ between _ batches _ summary _ 2 , Ġcontext . getString ( R . string . app _ name ), ĠnewVal , ĠEH ent ai Update Worker Constants . UP DAT ES _ PER _ ITER ATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinterval Ġ= Ġ( newValue Ġas ĠString ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEH ent ai Update Worker . schedule Background ( context , Ġinterval ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Select List Preference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠPreference Keys . eh _ auto Update Restrictions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . auto _ update _ re strictions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Res Ġ= ĠarrayOf ( R . string . network _ un meter ed , ĠR . string . ch arging ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Values Ġ= ĠarrayOf ( UN METER ED _ NETWORK , ĠCH ARG ING ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġupdate Summary () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrestrictions Ġ= Ġpreferences . ex h Auto Update Requirements (). get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUN METER ED _ NETWORK Ġ-> Ġcontext . getString ( R . string . network _ un meter ed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCH ARG ING Ġ-> Ġcontext . getString ( R . string . ch arging ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrestrictions Text Ġ= Ġif Ġ( re strictions . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . none ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestrictions . join ToString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġcontext . getString ( R . string . re strictions , Ġrestrictions Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Auto Update Frequency (). as Flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ Ġis Visible Ġ= Ġit Ġ> Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPost Ġto Ġevent Ġlo oper Ġto Ġallow Ġthe Ġpreference Ġto Ġbe Ġupdated . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Ġ{ ĠEH ent ai Update Worker . schedule Background ( context ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Auto Update Requirements (). as Flow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Each Ġ{ Ġupdate Summary () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. launch In ( view Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= Ġ" pref _ show _ updater _ statistics " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res Ġ= ĠR . string . show _ updater _ statistics ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= ĠMaterial Dialog ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message ( R . string . gallery _ updater _ statistics _ collection ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdate Info Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstats Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . ex h Auto Update Stats (). get (). null If Blank ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJson . decode FromString < EH ent ai Updater Stats >( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstats Text Ġ= Ġif Ġ( stats Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . gallery _ updater _ stats _ text , Ġget Relative Time String ( get Relative Time From Now ( stats . startTime . milliseconds ), Ġcontext ), Ġstats . update Count , Ġstats . possible Updates ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġcontext . getString ( R . string . gallery _ updater _ not _ ran _ yet ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall Meta Ġ= Ġdb . get Favorite M anga With Metadata (). execute On IO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter ( M anga :: is Eh Based M anga ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . get Flat Metadata For M anga ( it . id !! ). execute On IO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . raise < EH ent ai Search Metadata >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmeta In Relative Duration ( duration : ĠDuration ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġduration Ms Ġ= Ġduration . in Whole Milliseconds ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġall Meta . as Sequence (). filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis () Ġ- Ġit . last Update Check Ġ< Ġduration Ms ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats Text Ġ+ Ġ"\ n \ n " Ġ+ Ġcontext . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . gallery _ updater _ stats _ time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 1 . hours ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 6 . hours ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 1 2 . hours ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 1 . days ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 2 . days ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 7 . days ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 3 0 . days ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta In Relative Duration ( 3 6 5 . days ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( R . string . gallery _ updater _ statistics ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message ( text Ġ= Ġupdate Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Button ( android . R . string . ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Relative Time From Now ( then : ĠDuration ): ĠRelative Time Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠSystem . currentTimeMillis (). milliseconds ĊĠĠĠĠĠĠĠ Ġvar Ġperiod : ĠDuration Ġ= Ġnow Ġ- Ġthen ĊĠĠĠĠĠĠĠ Ġval Ġrelative Time Ġ= ĠRelative Time () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( period Ġ> Ġ 0 . milliseconds ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 3 6 5 . days Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( period . in Whole Days Ġ/ Ġ 3 6 5 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . years Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġ( it Ġ* Ġ 3 6 5 ). days ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 3 0 . days Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( period . in Whole Days Ġ/ Ġ 3 0 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . months Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġ( it Ġ* Ġ 3 0 ). days ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 7 . days Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( period . in Whole Days Ġ/ Ġ 7 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . week s Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġ( it Ġ* Ġ 7 ). days ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 1 . days Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod . in Whole Days . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . days Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġit . days ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 1 . hours Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod . in Whole Hours . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . hours Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġit . hours ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 1 . minutes Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod . in Whole Minutes . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . minutes Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġit . minutes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 1 . seconds Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod . in Whole Seconds . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . seconds Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ-= Ġit . seconds ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ>= Ġ 1 . milliseconds Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod . in Whole Milliseconds . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelative Time . milliseconds Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Ġ= Ġ 0 . milliseconds ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrelative Time ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Relative Time String ( relative Time : ĠRelative Time , Ġcontext : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrelative Time . years ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ year , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrelative Time . months ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ month , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrelative Time . week s ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ week , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrelative Time . days ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ day , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrelative Time . hours ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ hour , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrelative Time . minutes ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ minute , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrelative Time . seconds ?. let Ġ{ Ġcontext . resources . get Quantity String ( R . plurals . human ize _ second , Ġit . toInt (), Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġcontext . getString ( R . string . human ize _ fallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠRelative Time ( ĊĠĠĠĠĠĠĠ Ġvar Ġyears : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġmonths : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġweeks : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġdays : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġhours : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġminutes : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġseconds : ĠLong ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġmilliseconds : ĠLong ? Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠLOGIN _ RESULT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpload Ġsettings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠW arn Configure Dialog Controller . upload Settings ( router ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOGIN _ RESULT Ġ= Ġ 5 0 0 ĊĠĠĠ Ġ} Ċ } Ċ