package Ġcom . mat isse . model Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . loader . app . Loader Manager Ċ import Ġandroidx . loader . content . Loader Ċ import Ġcom . mat isse . loader . Album Loader Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠAlbum Collection Ġ: ĠLoader Manager . Loader Callbacks < Cursor > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠWeak Reference < Context >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġloader Manager : ĠLoader Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcallbacks : ĠAlbum Callbacks ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Selection Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġload Finished Ġ= Ġfalse ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLO ADER _ ID Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTATE _ CURRENT _ SELECTION Ġ= Ġ" state _ current _ selection " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Loader ( id : ĠInt , Ġargs : ĠBundle ?): ĠLoader < Cursor > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġcontext ?. get () ĊĠĠĠĠĠĠĠ Ġload Finished Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn ĠAlbum Loader . newInstance ( context !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad Finished ( loader : ĠLoader < Cursor >, Ġdata : ĠCursor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context ?. get () Ġ== Ġnull Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! load Finished ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Finished Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallbacks ?. on Album Load ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Loader Reset ( loader : ĠLoader < Cursor >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context ?. get () Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġcallbacks ?. on Album Reset () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonCreate ( activity : ĠFragment Activity , Ġcallbacks : ĠAlbum Callbacks ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= ĠWeak Reference ( activity ) ĊĠĠĠĠĠĠĠ Ġloader Manager Ġ= ĠLoader Manager . getInstance ( activity ) ĊĠĠĠĠĠĠĠ Ġthis . callbacks Ġ= Ġcallbacks ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Restore InstanceState ( save InstanceState : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Selection Ġ= Ġsave InstanceState . getInt ( STATE _ CURRENT _ SELECTION ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Save InstanceState ( out State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġout State ?. put Int ( STATE _ CURRENT _ SELECTION , Ġcurrent Selection ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġloader Manager ?. destroy Loader ( LOAD ER _ ID ) ĊĠĠĠĠĠĠĠ Ġif Ġ( callbacks Ġ!= Ġnull ) Ġcallbacks Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġload Album s () Ġ{ ĊĠĠĠĠĠĠĠ Ġload Finished Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġloader Manager ?. init Loader ( LOAD ER _ ID , Ġnull , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetCurrent Selection () Ġ= Ġcurrent Selection ĊĊĠĠĠ Ġfun ĠsetState Current Selection ( current Selection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . current Selection Ġ= Ġcurrent Selection ĊĠĠĠ Ġ} Ċ }