package Ġio . st ip op . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġio . st ip op .* Ċ import Ġio . st ip op . adapter . St icker Adapter Ċ import Ġio . st ip op . databinding . Activity Detail Binding Ċ import Ġio . st ip op . model . SP Package Ċ import Ġio . st ip op . model . SP St icker Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . IOException Ċ Ċ class ĠDetail Activity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġ_ binding : ĠActivity Detail Binding ĊĠĠĠ Ġlateinit Ġvar Ġ_ context : ĠContext ĊĊĠĠĠ Ġlateinit Ġvar Ġst icker Adapter : ĠSt icker Adapter ĊĊĠĠĠ Ġvar Ġst icker Data Ġ= ĠArrayList < SP St icker >() ĊĊĠĠĠ Ġvar Ġpackage Id Ġ= Ġ- 1 ĊĊĠĠĠ Ġvar Ġpackage Animated : ĠString ? Ġ= Ġ"" ĊĊĠĠĠ Ġlateinit Ġvar Ġsp Package : ĠSP Package ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠActivity Detail Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView (_ binding . root ) ĊĊĠĠĠĠĠĠĠ Ġ_ context Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġpackage Id Ġ= Ġintent . getInt Extra (" packageId ", Ġ- 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġ_ binding . container LL . background Ġas ĠGradient Drawable ĊĠĠĠĠĠĠĠ Ġdrawable . setColor ( Color . parse Color ( Config . theme Group ed Content BackgroundColor )) Ġ// Ġsolid Ġ Ġcolor ĊĊĠĠĠĠĠĠĠ Ġ_ binding . contents RL . set BackgroundColor ( Color . parse Color ( Config . theme BackgroundColor )) ĊĊĠĠĠĠĠĠĠ Ġ_ binding . packageName TV . setTextColor ( Config . get Detail PackageName TextColor (_ context )) ĊĊĠĠĠĠĠĠĠ Ġ_ binding . back IV . setImage Resource ( Config . get Back Icon ResourceId (_ context )) ĊĠĠĠĠĠĠĠ Ġ_ binding . close IV . setImage Resource ( Config . get Close Icon ResourceId (_ context )) ĊĊĊĠĠĠĠĠĠĠ Ġ_ binding . back IV . setIcon Defaults Color () ĊĠĠĠĠĠĠĠ Ġ_ binding . close IV . setIcon Defaults Color () ĊĊĊĠĠĠĠĠĠĠ Ġ_ binding . st icker GV . num Columns Ġ= ĠConfig . detail Num Of Columns ĊĊĊĠĠĠĠĠĠĠ Ġ_ binding . back LL . setOnClickListener Ġ{ Ġfinish () Ġ} ĊĠĠĠĠĠĠĠ Ġ_ binding . close LL . setOnClickListener Ġ{ Ġfinish () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ_ binding . download TV . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ binding . download TV . tag Ġas ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( St ip op . instance !!. delegate . can Download ( this . sp Package )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Package () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . alert ( this , ĠgetString ( R . string . can _ not _ download )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġst icker Adapter Ġ= ĠSt icker Adapter (_ context , ĠR . layout . item _ st icker , Ġst icker Data ) ĊĠĠĠĠĠĠĠ Ġ_ binding . st icker GV . adapter Ġ= Ġst icker Adapter ĊĊĠĠĠĠĠĠĠ Ġget Pack Info () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Pack Info () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġparams . put (" userId ", ĠSt ip op . userId ) ĊĊĠĠĠĠĠĠĠ ĠAP IC lient . get ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP IC lient . API Path . PACKAGE . raw Value Ġ+ Ġ"/ $ packageId ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġresponse : ĠJSONObject ?, Ġe : ĠIOException ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprintln ( response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġresponse ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġresponse . getJSONObject (" header ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! response . isNull (" body ") Ġ&& ĠUtils . getString ( header , Ġ" status ") Ġ== Ġ" success ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġresponse . getJSONObject (" body ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Obj Ġ= Ġbody . getJSONObject (" package ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstick ers Ġ= Ġpackage Obj . get JSONArray (" stick ers ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġstick ers . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst icker Data . add ( SP St icker ( stick ers . get ( i ) Ġas ĠJSONObject )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sp Package Ġ= ĠSP Package ( package Obj ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Animated Ġ= Ġthis . sp Package . package Animated ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with (_ context ). load ( this . sp Package . package Img ). into (_ binding . package IV ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . packageName TV . text Ġ= Ġthis . sp Package . packageName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . artist Name TV . text Ġ= Ġthis . sp Package . artist Name ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . sp Package . is Download ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . setBackground Resource ( R . drawable . detail _ download _ btn _ background _ disable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . text Ġ= ĠgetString ( R . string . downloaded ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . setBackground Resource ( R . drawable . detail _ download _ btn _ background ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . text Ġ= ĠgetString ( R . string . download ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable 2 Ġ= Ġ_ binding . download TV . background Ġas ĠGradient Drawable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable 2 . setColor ( Color . parse Color ( Config . theme Main Color )) Ġ// Ġsolid Ġ Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . tag Ġ= Ġthis . sp Package . is Download ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ?. printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġst icker Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdownload Package () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġparams . put (" userId ", ĠSt ip op . userId ) ĊĠĠĠĠĠĠĠ Ġparams . put (" is Purchase ", ĠConfig . allow Prem ium ) ĊĠĠĠĠĠĠĠ Ġparams . put (" lang ", ĠSt ip op . lang ) ĊĠĠĠĠĠĠĠ Ġparams . put (" country Code ", ĠSt ip op . country Code ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Config . allow Prem ium Ġ== Ġ" Y ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠìĽ Ģ ì§ģ ìĿ´ ì§Ģ ĠìķĬ ëĬĶ ĠìĬ¤ íĭ° ì» ¤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġprice Ġ= ĠConfig . png Price ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( package Animated Ġ== Ġ" Y ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠìĽ Ģ ì§ģ ìĿ´ ëĬĶ ĠìĬ¤ íĭ° ì» ¤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= ĠConfig . gif Price ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . put (" price ", Ġprice ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAP IC lient . post ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP IC lient . API Path . DOWNLOAD . raw Value Ġ+ Ġ"/ $ packageId ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġresponse : ĠJSONObject ?, Ġe : ĠIOException ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprintln ( response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġresponse ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġresponse . getJSONObject (" header ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Utils . getString ( header , Ġ" status ") Ġ== Ġ" success ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" packageId ", Ġpackage Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġintent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdownload ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPack Utils . download And Save Local ( this , Ġthis . sp Package ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . text Ġ= ĠgetString ( R . string . downloaded ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . download TV . setBackground Resource ( R . drawable . detail _ download _ btn _ background _ disable ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . download _ done ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ?. printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }