package Ġcom . j uni per ph oton . my er splash . activity Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . constraint . Constraint Layout Ċ import Ġandroid . support . design . widget . Floating ActionButton Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . support . v 7 . widget . Simple Item Animator Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġbutter knife . OnClick Ċ import Ġcom . j uni per ph oton . my er splash . R Ċ import Ġcom . j uni per ph oton . my er splash . Realm Cache Ċ import Ġcom . j uni per ph oton . my er splash . adapter . Downloads ListAdapter Ċ import Ġcom . j uni per ph oton . my er splash . extension . get Dim en In Pixel Ċ import Ġcom . j uni per ph oton . my er splash . model . Download Item Ċ import Ġcom . j uni per ph oton . my er splash . utils . Paste ur Ċ import Ġio . realm . Realm ChangeListener Ċ import Ġio . realm . Sort Ċ import Ġjava . util .* Ċ Ċ @ Suppress (" unused ") Ċ class ĠManage Download Activity Ġ: ĠBase Activity () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Manage Download Activity " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTION Ġ= Ġ" action . downloads " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BindView ( R . id . downloads _ list ) ĊĠĠĠ Ġlateinit Ġvar Ġdownloads List : ĠRecyclerView ĊĊĠĠĠ Ġ@ BindView ( R . id . no _ item _ view ) ĊĠĠĠ Ġlateinit Ġvar Ġno Item View : ĠTextView ĊĊĠĠĠ Ġ@ BindView ( R . id . downloads _ more _ fab ) ĊĠĠĠ Ġlateinit Ġvar Ġmore Fab : ĠFloating ActionButton ĊĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠDown loads ListAdapter ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġitem Status Changed Listener Ġ= ĠRealm ChangeListener < Download Item > Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠ ĠP aste ur . d ( TAG , Ġ" onChange ") ĊĠĠĠĠĠĠĠ Ġif Ġ( item . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. update Item ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ manage download ) ĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this ) ĊĊĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠRealm Cache . getInstance (). removeAll Change Listeners () ĊĠĠĠĠĠĠĠ ĠRealm Cache . getInstance (). close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ OnClick ( R . id . downloads _ more _ fab ) ĊĠĠĠ Ġinternal Ġfun ĠonClick More () Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). setTitle ( R . string . clear _ options _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Items ( R . array . delete _ options ) Ġ{ Ġ_, Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdelete Status Ġ= Ġwhen Ġ( i ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠDownload Item . DOWNLOAD _ STATUS _ DOWNLOAD ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠDownload Item . DOWNLOAD _ STATUS _ OK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠDownload Item . DOWNLOAD _ STATUS _ FAILED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠDownload Item . DOWNLOAD _ STATUS _ INVALID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete From Realm ( delete Status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . cancel ) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . dismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete From Realm ( status : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRealm Cache . getInstance (). execute Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . where ( Download Item :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. equalTo ( Download Item . STATUS _ KEY , Ġstatus ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . removeAll Change Listeners () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . delete From Realm () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate No Item Visibility () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(( adapter ?. data ?. size Ġ?: Ġ 0 ) Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Item View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Item View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdownload Items Ġ= ĠArrayList < Download Item >() ĊĊĠĠĠĠĠĠĠ ĠRealm Cache . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( Download Item :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findAll Sorted ( Download Item . POSITION _ KEY , ĠSort . DESC ENDING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Items . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdownload Items . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add ChangeListener ( item Status Changed Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠDown loads ListAdapter ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter !!. refresh Items ( download Items ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠGrid LayoutManager ( this , Ġ 2 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspan Size Lookup Ġ= Ġobject Ġ: ĠGrid LayoutManager . Span Size Lookup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Span Size ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( position Ġ== Ġadapter !!. item Count Ġ- Ġ 1 ) Ġ 2 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdownloads List . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġdownloads List . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġdon 't Ġchange Ġthe Ġitem Ġanim ator Ġso Ġwe Ġcast Ġit Ġdirectly ĊĠĠĠĠĠĠĠ Ġ( downloads List . item Animator Ġas ĠSimple Item Animator ). supports Change Animations Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġupdate No Item Visibility () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Config NavigationBar ( has NavigationBar : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! has NavigationBar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġmore Fab . layout Params Ġas ĠConstraint Layout . LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . set Margins ( 0 , Ġ 0 , Ġget Dim en In Pixel ( 2 4 ), Ġget Dim en In Pixel ( 2 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmore Fab . layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ