package Ġsf ll hk han 9 5 . do od le . not ifs . models Ċ Ċ import Ġcom . google . firebase . messaging . Remote Message Ċ import Ġpk . asp ir as oft . core . db . Persistent Value Ċ import Ġsf ll hk han 9 5 . do od le . not ifs . utils . Notification Listener Ċ import Ġjava . io . Serializable Ċ import Ġjava . util .* Ċ Ċ class ĠNotifications Database Ġprivate Ġconstructor () Ġ: ĠSerializable Ġ{ ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġprivate Ġvar Ġnotification Listener : ĠNotification Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġnotifications : ĠMutable List < Remote Message . Notification > ĊĊĠĠĠ Ġval Ġall : ĠList < Remote Message . Notification > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnotifications ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġnotifications Ġ= ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( e : ĠRemote Message . Notification ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotifications . add ( e ) ĊĠĠĠĠĠĠĠ Ġupdate Db () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTrigger Ġevent Ġnotification Listener ĊĠĠĠĠĠĠĠ Ġif Ġ( notification Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Listener !!. on Notification Received () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( i : ĠInt ): ĠRemote Message . Notification Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotifications [ i ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove ( i : ĠInt ): ĠRemote Message . Notification Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotifications . remove At ( i ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnotifications . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotifications . clear () ĊĠĠĠĠĠĠĠ Ġupdate Db () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Db () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( db Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġdb !!. value Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġdb !!. save () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Notification Listener ( notification Listener : ĠNotification Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . notification Listener Ġ= Ġnotification Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" NOTIFICATION S " ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdb : ĠPersistent Value < Notifications Database >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠNotifications Database ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( db Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Ġ= ĠPersistent Value ( TAG , ĠNotifications Database :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( db !!. value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb !!. value Ġ= ĠNotifications Database () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdb !!. value !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }