package Ġcom . example . d 3 comp anion . present ers . list Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . example . d 3 comp anion . models . D 3 Class Ċ import Ġcom . example . d 3 comp anion . models . D 3 View Element Ċ import Ġcom . example . d 3 comp anion . models . D 3 ViewType Ċ import Ġcom . example . d 3 comp anion . services . D 3 I cy Ve ins Contract Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠList Presenter ( ĊĠĠĠ Ġview : ĠList Contract . View , ĊĠĠĠ Ġprovider : ĠD 3 I cy Ve ins Contract . Provider Ċ ) Ġ: ĠList Contract . Presenter , ĠD 3 I cy Ve ins Contract . Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġweak View : ĠWeak Reference < List Contract . View > Ġ= ĠWeak Reference ( view ) ĊĊĠĠĠ Ġprivate Ġvar Ġweak Provider : ĠWeak Reference < D 3 I cy Ve ins Contract . Provider > Ġ= ĠWeak Reference ( provider ) ĊĊĠĠĠ Ġprivate Ġvar Ġlist : ĠList < D 3 Class > Ġ= Ġempty List () ĊĊĠĠĠ Ġprivate Ġvar Ġselected ClassName : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġweak Provider . get ()?. listener Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Classes () Ġ{ ĊĠĠĠĠĠĠĠ Ġselected ClassName Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġshow List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Build s ( className : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġselected ClassName Ġ= ĠclassName ĊĊĠĠĠĠĠĠĠ Ġshow List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Build ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( selected ClassName Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweak View . get ()?. show Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġlist . first OrNull Ġ{ Ġit . name Ġ== Ġselected ClassName Ġ} ?. builds ?. first OrNull Ġ{ Ġit . name Ġ== Ġname Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( build Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweak View . get ()?. show Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġweak View . get ()?. show Build Activity ( build ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Data Retrie ved ( data : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" DATA ", Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder (). set Pretty Print ing (). create () ĊĠĠĠĠĠĠĠ Ġval Ġlist Type Ġ= Ġobject Ġ: ĠType Token < List < D 3 Class >>() Ġ{ Ġ}. type ĊĊĠĠĠĠĠĠĠ Ġlist Ġ= Ġgson . fromJson < List < D 3 Class >>( data , Ġlist Type ) ĊĊĠĠĠĠĠĠĠ Ġshow List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweak View . get ()?. show Error () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow List () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweak Provider . get ()?. obtain Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġviews Ġ= Ġif Ġ( selected ClassName Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Build Views ( selected ClassName ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetClass Views () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweak View . get ()?. show List ( views ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetClass Views (): ĠList < D 3 View Element > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġviews Ġ= Ġempty List < D 3 View Element >(). to Mutable List () ĊĠĠĠĠĠĠĠ Ġfor Ġ( d 3 Class Ġin Ġlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . add ( D 3 View Element ( d 3 Class . name , ĠD 3 ViewType . Class )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġviews ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Build Views ( className : ĠString ?): ĠList < D 3 View Element > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġviews Ġ= Ġempty List < D 3 View Element >(). to Mutable List () ĊĠĠĠĠĠĠĠ Ġif Ġ( className Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġviews ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġselected Class Ġ= Ġlist . first OrNull Ġ{ Ġit . name Ġ== ĠclassName Ġ} Ġ?: Ġreturn Ġviews ĊĠĠĠĠĠĠĠ Ġfor Ġ( build Ġin Ġselected Class . builds ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . add ( D 3 View Element ( build . name , ĠD 3 ViewType . Build )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġviews ĊĠĠĠ Ġ} Ċ } Ċ