package Ġb zh . z ely on . list detail . view . ui Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . vect ord raw able . graphics . drawable . Anim atable 2 Compat Ċ import Ġandroidx . vect ord raw able . graphics . drawable . Animated Vector Drawable Compat Ċ import Ġb zh . z ely on . lib . extension . action Fragment Ċ import Ġb zh . z ely on . lib . extension . load Image Ċ import Ġb zh . z ely on . lib . extension . show Fragment Ċ import Ġb zh . z ely on . lib . ui . view . fragment . Abs Fragment Ċ import Ġb zh . z ely on . list detail . R Ċ import Ġb zh . z ely on . list detail . db . DB Ċ import Ġkotlinx . android . synt hetic . main . fragment _ load .* Ċ import Ġjava . util . concurrent . Semaphore Ċ Ċ class ĠLoad Fragment : ĠAbs Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġanimated Vector Drawable Compat : ĠAnimated Vector Drawable Compat ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġanimated Vector Drawable Compat Ġ= ĠAnimated Vector Drawable Compat . create ( abs Activity , ĠR . drawable . anim _ vector _ loader )?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Animation Callback ( object Ġ: ĠAnim atable 2 Compat . Animation Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Animation End ( drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfragment _ load _ loader . setImage Drawable ( animated Vector Drawable Compat ) ĊĠĠĠĠĠĠĠ Ġfragment _ load _ progress _ bar . progress Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetId Layout () Ġ= ĠR . layout . fragment _ load ĊĊĠĠĠ Ġoverride Ġfun Ġon Id Click ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Id Click ( id ) ĊĠĠĠĠĠĠĠ Ġwhen ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fragment _ load _ skip Ġ-> Ġabs Activity . action Fragment ( Main Fragment (), ĠaddTo Back Stack Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Images () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcharacters Ġ= ĠDB . get Character Dao (). getAll () ĊĠĠĠĠĠĠĠ Ġval Ġhouse s Ġ= ĠDB . get House Dao (). getAll () ĊĠĠĠĠĠĠĠ Ġval Ġregions Ġ= ĠDB . get Region Dao (). getAll () ĊĠĠĠĠĠĠĠ Ġif Ġ( characters . isNotEmpty () Ġ&& Ġhouse s . isNotEmpty () Ġ&& Ġregions . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimated Vector Drawable Compat ?. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment _ load _ skip . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages Urls Mandatory Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimages Urls Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( character Ġin Ġcharacters ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Urls Mandatory . add ( character . get Thumbnail ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Urls . add ( character . get Picture ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( house Ġin Ġhouse s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Urls Mandatory . add ( house . get Thumbnail ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Urls . add ( house . getImage ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( region Ġin Ġregions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages Urls . add ( region . getMap ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment _ load _ progress _ bar . max Ġ= Ġimages Urls Mandatory . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsemaphore Ġ= ĠSem aphore ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( imageUrl Ġin Ġimages Urls Mandatory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs Activity . load Image ( imageUrl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsemaphore . release () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs Activity . run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment _ load _ progress _ bar . progress ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( semaphore . try Acquire ( images Urls Mandatory . size )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs Activity . action Fragment ( Main Fragment (), ĠaddTo Back Stack Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( imageUrl Ġin Ġimages Urls ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs Activity . load Image ( imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }