package Ġcom . github . for jr king . drawable Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Log ĊĊ Ċ interface ĠDrawable Builder Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŃ¤ æĸ¹æ³ķ æŀĦå»º åĩº æĸ°çļĦ Drawable ç»Ļ æİ§ä»¶ è®¾ç½® èĥĮæĻ¯ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ æŀĦéĢł å¥½çļĦ Drawable ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbuild (): ĠDrawable ? ĊĊĊĠĠĠ Ġ/** ĠDES : Ġ é«ĺ çīĪæľ¬ åº Ł å¼ĥ åıį å°Ħ åĲİ å»ºè®® èĩªå·± èµĭåĢ¼ Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĠDES : Ġ é«ĺ çīĪæľ¬ åº Ł å¼ĥ åıį å°Ħ åĲİ å»ºè®® èĩªå·± èµĭåĢ¼ Ġ*/ ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġapp : ĠApplication ĊĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ context æĸ¹æ³ķ ĊĠĠĠĠĠĠĠ Ġfun Ġc xt (): ĠContext Ġ= Ġif Ġ( this :: app . isInitialized ) Ġapp Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Ġ= Ġreflect Context (); app ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠValue Ġof Ġdp Ġto Ġvalue Ġof Ġpx . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdp Value ĠThe Ġvalue Ġof Ġdp . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġvalue Ġof Ġpx ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġdp 2 px ( dp Value : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġc xt (). resources . display Metrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdp Value Ġ* Ġscale ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** åŃĹç¬¦ä¸² è½¬æį¢ ä¸º é¢ľèī² */ ĊĠĠĠĠĠĠĠ Ġfun Ġstring 2 Color ( color String : ĠString ?, Ġdefault Color : ĠInt Ġ= ĠColor . TRANSP ARENT ): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! color String . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . parse Color ( color String . trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDES : Ġ åıį å°Ħ èİ·åıĸ åħ¨å±Ģ Context Ġ Ġ åĲİ æľŁ åı¯èĥ½ è¢« google åº Ł å¼ĥ è¿ĻéĩĮ ä¼ļ æĬ¥éĶĻ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġreflect Context (): ĠApplication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w (" Drawable Builder ", Ġ" reflect Context Ġcalled ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠClass . forName (" android . app . ActivityThread ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getMethod (" current Application ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. invoke ( null ) Ġas ĠApplication ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠClass . forName (" android . app . App Globals ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getMethod (" get Initial Application ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. invoke ( null ) Ġas ĠApplication ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" reflect ĠContext Ġerror , é«ĺ çīĪæľ¬ åº Ł å¼ĥ åıį å°Ħ åĲİ å»ºè®® èĩªå·± èµĭåĢ¼ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }