package Ġcom . br ins . light music . ui . fragment . discovery Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Bitmap Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . app . Activity Options Compat Ċ import Ġandroidx . core . view . View Compat Ċ import Ġandroidx . palette . graphics . Palette Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . br ins . light music . R Ċ import Ġcom . br ins . light music . utils . Rx Bus Ċ import Ġcom . br ins . light music . common . AppConfig . KEY _ ID Ċ import Ġcom . br ins . light music . common . AppConfig . TRANS ITION _ NAME Ċ import Ġcom . br ins . light music . event . Play List Event Ċ import Ġcom . br ins . light music . model . lo acl music . Play List Ċ import Ġcom . br ins . light music . ui . base . Base Activity Ċ import Ġcom . br ins . light music . ui . base . adapter . On ItemClickListener Ċ import Ġcom . br ins . light music . ui . widget . Common Header View Ċ import Ġcom . br ins . light music . utils .* Ċ import Ġcom . br ins . light music . utils . G lide Helper . G lide Helper Ċ import Ġcom . bump tech . glide . load . DataSource Ċ import Ġcom . bump tech . glide . load . engine . G lide Exception Ċ import Ġcom . bump tech . glide . request . RequestListener Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġcom . ch ad . library . adapter . base . Base Quick Adapter Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . android . synt hetic . main . activity _ music _ detail .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject Ċ @ Android EntryPoint Ċ class ĠMusic Detail Activity Ġ: ĠBase Activity (), ĠDiscovery Contract . View , ĊĠĠĠ ĠOn ItemClickListener , ĊĠĠĠ ĠCommon Header View . On Back ClickListener Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġm Presenter : ĠDis cover Presenter ĊĠĠĠ Ġvar Ġid : ĠString Ġ= Ġ"" ĊĠĠĠ Ġlateinit Ġvar Ġm Adapter : ĠMusic Detail Adapter ĊĠĠĠ Ġprivate Ġvar Ġplay List : ĠPlay List Ġ= ĠPlay List () ĊĠĠĠ Ġprivate Ġvar ĠcurrentTime : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart This ( activity : ĠAppCompatActivity , Ġid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠIntent ( activity , ĠMusic Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putExtra ( KEY _ ID , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( bundle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart This ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity : ĠAppCompatActivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠActivity Options Compat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransition Name : ĠString , Ġid : ĠString ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠMusic Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( KEY _ ID , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( TRANS ITION _ NAME , Ġtransition Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity ( intent , Ġoptions . to Bundle ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ music _ detail ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġhandle Error ( error : ĠThrowable ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate After Binding ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate After Binding ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Trans luc ent ( this ) ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠMusic Detail Adapter ( play List . getS ongs ()) ĊĠĠĠĠĠĠĠ Ġm Adapter . animation Enable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Adapter . set Animation WithDefault ( Base Quick Adapter . Animation Type . Slide In Left ) ĊĠĠĠĠĠĠĠ Ġm Adapter . setOn ItemClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtoolbar . setOn Back ClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġnest ScrollView . f ading View Ġ= Ġtoolbar ĊĠĠĠĠĠĠĠ Ġnest ScrollView . f ading Height View Ġ= Ġcover Music List ĊĠĠĠĠĠĠĠ ĠDis cover Presenter . instance . subscribe ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġintent . getString Extra ( KEY _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Music List Detail () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġintent . getString Extra ( TRANS ITION _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost p one Enter Transition () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Compat . set Transition Name ( cover Music List , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Recycler . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Recycler . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Recycler . addItem Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp aces Item Decoration ( this , Ġ 2 , ĠR . color . g ery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġload Music List Detail () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmusic Data Ġ= Ġget Music List Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdetail Bean Ġ= Ġmusic Data . playlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( detail Bean Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide Helper . setImage Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Music List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetail Bean . cover Img Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠRequest Listener < Drawable > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠG lide Exception ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTarget < Drawable > ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Resource : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Post p oned Enter Transition () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource : ĠDrawable ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTarget < Drawable > ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource : ĠDataSource ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Resource : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Music List . setImage Drawable ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Post p oned Enter Transition () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover . setImage Drawable ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPalette . from (( resource Ġas ĠBitmap Drawable ). bitmap ). generate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dark V ibr ant Color ( Color . TRANSP ARENT ) Ġ!= ĠColor . TRANSP ARENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg . setImage Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dark V ibr ant Color ( Color . TRANSP ARENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get V ibr ant Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnest ScrollView . set Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dark V ibr ant Color ( Color . TRANSP ARENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get V ibr ant Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dark Mut ed Color ( Color . TRANSP ARENT ) Ġ!= ĠColor . TRANSP ARENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg . setImage Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dark Mut ed Color ( Color . TRANSP ARENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Mut ed Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnest ScrollView . set Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Dark Mut ed Color ( Color . TRANSP ARENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Mut ed Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg . setImage Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Light Mut ed Color ( Color . TRANSP ARENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Light V ibr ant Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnest ScrollView . set Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Light Mut ed Color ( Color . TRANSP ARENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . get Light V ibr ant Color ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Bg . setImage Bitmap ( handle B imap ( resource )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġdetail Bean . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . text Ġ= Ġdetail Bean . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay Count . text Ġ= Ġhandle Num ( detail Bean . play Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshare Count . text Ġ= Ġhandle Num ( detail Bean . share Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub script Count . text Ġ= Ġhandle Num ( detail Bean . subscribed Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay List . add Song ( detail Bean . tracks !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . addData ( play List . getS ongs ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm Presenter . unsubscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Linear Gradient Bitmap ( ĊĠĠĠĠĠĠĠ Ġv : ĠView , ĊĠĠĠĠĠĠĠ Ġorient ata ion : ĠInt , ĊĠĠĠĠĠĠĠ Ġdark Color : ĠInt , ĊĠĠĠĠĠĠĠ Ġcolor : ĠInt ĊĠĠĠ Ġ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbg Colors Ġ= ĠInt Array ( 3 ) ĊĠĠĠĠĠĠĠ Ġbg Colors [ 0 ] Ġ= Ġset Alpha ( 0 . 2 f , Ġcolor ) ĊĠĠĠĠĠĠĠ Ġbg Colors [ 1 ] Ġ= Ġset Alpha ( 0 . 5 f , Ġcolor ) ĊĠĠĠĠĠĠĠ Ġbg Colors [ 2 ] Ġ= Ġcolor ĊĊĠĠĠĠĠĠĠ Ġval Ġbg Bitmap Ġ= ĠBitmap . create Bitmap ( v . width , Ġv . height , ĠBitmap . Config . ARGB _ 4 4 4 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas () ĊĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġcanvas . set Bitmap ( bg Bitmap ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Color ( Color . TRANSP ARENT , ĠPort er D uff . Mode . CLEAR ) ĊĠĠĠĠĠĠĠ Ġval Ġgradient Ġ= Ġif Ġ( orient ata ion Ġ== Ġ 0 ) ĠLinear Gradient ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbg Bitmap . width . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbg Colors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShader . Tile Mode . CLAMP ĊĠĠĠĠĠĠĠ Ġ) Ġelse ĠLinear Gradient ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbg Bitmap . height . toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbg Colors , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShader . Tile Mode . CLAMP ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġpaint . shader Ġ= Ġgradient ĊĠĠĠĠĠĠĠ Ġpaint . is Anti Alias Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġrect F Ġ= ĠRect F ( 0 f , Ġ 0 f , Ġbg Bitmap . width . toFloat (), Ġbg Bitmap . height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( rect F , Ġ 2 0 f , Ġ 2 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( rect F , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbg Bitmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Alpha ( fraction : ĠFloat , Ġcolor : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġcolor Ġshr Ġ 1 6 Ġand Ġ 0 xff ĊĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġcolor Ġshr Ġ 8 Ġand Ġ 0 xff ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġcolor Ġand Ġ 0 xff ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( 2 5 6 Ġ* Ġfraction ). toInt () Ġshl Ġ 2 4 Ġor Ġ( r Ġshl Ġ 1 6 ) Ġor Ġ( g Ġshl Ġ 8 ) Ġor Ġb ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Music List Data () Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmusic List Ġ= Ġm Presenter . load Music List Detail ( id ) ĊĠĠĠĠĠĠĠ Ġmusic List ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView ?, Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( System . currentTimeMillis () Ġ- ĠcurrentTime Ġ< Ġ 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġplay List . set Playing Index ( position ) ĊĠĠĠĠĠĠĠ ĠRx Bus . getInstance (). post ( Play List Event ( play List , Ġposition , ĠTYPE _ ON LINE _ M US IC )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Click ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ Ċ } Ċ