/* Ċ Ġ************************************************************************* **** Ċ Ġ* ĠCall Back Delegate . kt Ċ Ġ************************************************************************* **** Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 9 ĠV LC Ġauthors Ġand ĠVideo LAN Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġfree Ġsoftware ; Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ġby Ċ Ġ* Ġthe ĠFree ĠSoftware ĠFoundation ; Ġeither Ġversion Ġ 2 Ġof Ġthe ĠLicense , Ġor Ċ Ġ* Ġ( at Ġyour Ġoption ) Ġany Ġlater Ġversion . Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠGNU ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ċ Ġ* Ġalong Ġwith Ġthis Ġprogram ; Ġif Ġnot , Ġwrite Ġto Ġthe ĠFree ĠSoftware Ċ Ġ* ĠFoundation , ĠInc ., Ġ 5 1 ĠFranklin ĠStreet , ĠFifth ĠFloor , ĠBoston ĠMA Ġ 0 2 1 1 0 - 1 3 0 1 , ĠUSA . Ċ Ġ************************************************************************* ****/ Ċ Ċ package Ġorg . vide ol an . v lc . view models Ċ Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . channels . Send Channel Ċ import Ġorg . vide ol an . med iali brary . interfaces . Med iali brary Ċ import Ġorg . vide ol an . tools . con fl ated Actor Ċ import Ġorg . vide ol an . tools . safe Offer Ċ Ċ interface ĠI CallBack Handler Ġ{ ĊĠĠĠ Ġval Ġmed iali brary Ġ: ĠMed iali brary ĊĊĠĠĠ Ġfun ĠCor outine Scope . register CallBack s ( refresh : Ġ() Ġ-> ĠUnit ) ĊĠĠĠ Ġfun Ġrelease Callbacks () ĊĠĠĠ Ġfun Ġwatch Media () ĊĠĠĠ Ġfun Ġwatch Art ists () ĊĠĠĠ Ġfun Ġwatch Album s () ĊĠĠĠ Ġfun Ġwatch Gen res () ĊĠĠĠ Ġfun Ġwatch Play lists () ĊĠĠĠ Ġfun Ġwatch History () ĊĠĠĠ Ġfun Ġwatch Media Groups () Ċ } Ċ Ċ class ĠCall Back Delegate Ġ: ĠI CallBack Handler , ĊĠĠĠĠĠĠĠ ĠMed iali brary . On Med iali brary Ready Listener , ĊĠĠĠĠĠĠĠ ĠMed iali brary . On Device ChangeListener , ĊĠĠĠĠĠĠĠ ĠMed iali brary . Media Cb , ĊĠĠĠĠĠĠĠ ĠMed iali brary . Art ists Cb , ĊĠĠĠĠĠĠĠ ĠMed iali brary . Album s Cb , ĊĠĠĠĠĠĠĠ ĠMed iali brary . Gen res Cb , ĊĠĠĠĠĠĠĠ ĠMed iali brary . Play lists Cb , ĊĠĠĠĠĠĠĠ ĠMed iali brary . History Cb , ĊĠĠĠĠĠĠĠ ĠMed iali brary . Media Group Cb Ċ { ĊĊĠĠĠ Ġoverride Ġval Ġmed iali brary Ġ= ĠMed iali brary . getInstance () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrefresh Actor : ĠSend Channel < Unit > ĊĊĠĠĠ Ġprivate Ġvar Ġmedia Cb Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġartists Cb Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġalbum s Cb Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġgen res Cb Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġplay lists Cb Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġhistory Cb Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġmedia Groups Cb Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠCor outine Scope . register CallBack s ( refresh : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh Actor Ġ= Ġcon fl ated Actor Ġ{ Ġrefresh () Ġ} ĊĠĠĠĠĠĠĠ Ġmed iali brary . add On Med iali brary Ready Listener ( this @ CallBack Delegate ) ĊĠĠĠĠĠĠĠ Ġmed iali brary . add On Device ChangeListener ( this @ CallBack Delegate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch Media () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add Media Cb ( this ) ĊĠĠĠĠĠĠĠ Ġmedia Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch Art ists () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add Art ists Cb ( this ) ĊĠĠĠĠĠĠĠ Ġartists Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch Album s () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add Album s Cb ( this ) ĊĠĠĠĠĠĠĠ Ġalbum s Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch Gen res () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add Genre Cb ( this ) ĊĠĠĠĠĠĠĠ Ġgen res Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch Play lists () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add Playlist Cb ( this ) ĊĠĠĠĠĠĠĠ Ġplay lists Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch History () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add History Cb ( this ) ĊĠĠĠĠĠĠĠ Ġhistory Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwatch Media Groups () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . add Media Group Cb ( this ) ĊĠĠĠĠĠĠĠ Ġmedia Groups Cb Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrelease Callbacks () Ġ{ ĊĠĠĠĠĠĠĠ Ġmed iali brary . remove On Med iali brary Ready Listener ( this ) ĊĠĠĠĠĠĠĠ Ġmed iali brary . remove On Device ChangeListener ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( media Cb ) Ġmed iali brary . remove Media Cb ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( artists Cb ) Ġmed iali brary . remove Art ists Cb ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( albums Cb ) Ġmed iali brary . remove Album s Cb ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( genres Cb ) Ġmed iali brary . remove Genre Cb ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( play lists Cb ) Ġmed iali brary . remove Playlist Cb ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( history Cb ) Ġmed iali brary . remove History Cb ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( media Groups Cb ) Ġmed iali brary . remove Media Group Cb ( this ) ĊĠĠĠĠĠĠĠ Ġrefresh Actor . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Med iali brary Ready () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Med iali brary Idle () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Device Change () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Added () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Deleted () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Art ists Added () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Art ists Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Art ists Deleted () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Album s Added () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Album s Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Album s Deleted () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Gen res Added () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Gen res Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Gen res Deleted () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Play lists Added () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Play lists Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Play lists Deleted () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon History Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Groups Added () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Groups Modified () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Groups Deleted () Ġ{ Ġrefresh Actor . safe Offer ( Unit ) Ġ} Ċ } Ċ