package Ġcom . fs ck . k 9 . storage . messages Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġcom . fs ck . k 9 . mail . Folder Class Ċ import Ġcom . fs ck . k 9 . mail . Folder Type Ċ import Ġcom . fs ck . k 9 . mail store . Folder Details Ċ import Ġcom . fs ck . k 9 . mail store . Lock able Database Ċ import Ġcom . fs ck . k 9 . mail store . More Messages Ċ import Ġcom . fs ck . k 9 . mail store . to Database Folder Type Ċ Ċ internal Ġclass ĠUpdate Folder Operations ( private Ġval Ġlock able Database : ĠLock able Database ) Ġ{ ĊĠĠĠ Ġfun Ġchange Folder ( folder Server Id : ĠString , Ġname : ĠString , Ġtype : ĠFolder Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock able Database . execute ( false ) Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" name ", Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" type ", Ġtype . to Database Folder Type ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update (" folders ", Ġvalues , Ġ" server _ id Ġ= Ġ?", ĠarrayOf ( folder Server Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Folder Settings ( folder Details : ĠFolder Details ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock able Database . execute ( false ) Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" top _ group ", Ġfolder Details . isIn Top Group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" integrate ", Ġfolder Details . is Integr ate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" poll _ class ", Ġfolder Details . sync Class . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" display _ class ", Ġfolder Details . display Class . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" notify _ class ", Ġfolder Details . notify Class . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" push _ class ", Ġfolder Details . push Class . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update (" folders ", Ġcontent Values , Ġ" id Ġ= Ġ?", ĠarrayOf ( folder Details . folder . id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Include In Unified Inbox ( folder Id : ĠLong , Ġinclude In Unified Inbox : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock able Database . execute ( false ) Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" integrate ", Ġinclude In Unified Inbox ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update (" folders ", Ġcontent Values , Ġ" id Ġ= Ġ?", ĠarrayOf ( folder Id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset DisplayClass ( folder Id : ĠLong , Ġfolder Class : ĠFolder Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset String ( folder Id Ġ= Ġfolder Id , ĠcolumnName Ġ= Ġ" display _ class ", Ġvalue Ġ= Ġfolder Class . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Sync Class ( folder Id : ĠLong , Ġfolder Class : ĠFolder Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset String ( folder Id Ġ= Ġfolder Id , ĠcolumnName Ġ= Ġ" poll _ class ", Ġvalue Ġ= Ġfolder Class . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Push Class ( folder Id : ĠLong , Ġfolder Class : ĠFolder Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset String ( folder Id Ġ= Ġfolder Id , ĠcolumnName Ġ= Ġ" push _ class ", Ġvalue Ġ= Ġfolder Class . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Notification Class ( folder Id : ĠLong , Ġfolder Class : ĠFolder Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset String ( folder Id Ġ= Ġfolder Id , ĠcolumnName Ġ= Ġ" notify _ class ", Ġvalue Ġ= Ġfolder Class . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset More Messages ( folder Id : ĠLong , Ġmore Messages : ĠMore Messages ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset String ( folder Id Ġ= Ġfolder Id , ĠcolumnName Ġ= Ġ" more _ messages ", Ġvalue Ġ= Ġmore Messages . database Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Last Updated ( folder Id : ĠLong , Ġtimestamp : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock able Database . execute ( false ) Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" last _ updated ", Ġtimestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update (" folders ", Ġcontent Values , Ġ" id Ġ= Ġ?", ĠarrayOf ( folder Id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetStatus ( folder Id : ĠLong , Ġstatus : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset String ( folder Id Ġ= Ġfolder Id , ĠcolumnName Ġ= Ġ" status ", Ġvalue Ġ= Ġstatus ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset String ( folder Id : ĠLong , ĠcolumnName : ĠString , Ġvalue : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlock able Database . execute ( false ) Ġ{ Ġdb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Null ( columnName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput ( columnName , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update (" folders ", Ġcontent Values , Ġ" id Ġ= Ġ?", ĠarrayOf ( folder Id . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ