package Ġcom . david med en jak . ind iana . features . artifacts Ċ Ċ import Ġandroid . app . Download Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . david med en jak . ind iana . R Ċ import Ġcom . david med en jak . ind iana . api . Artifact Ċ import Ġcom . david med en jak . ind iana . api . Bit rise Api Ċ import Ġcom . david med en jak . ind iana . di . Per Activity Ċ import Ġjavax . inject . Inject Ċ Ċ @ Per Activity Ċ class ĠArtifact Adapter Ġ@ Inject Ġconstructor ( val Ġapi : ĠBit rise Api ) Ġ: ĠRecyclerView . Adapter < Artifact ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġproject Slug : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġbuild Slug : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġvar Ġartifacts : ĠList < Artifact > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġartifacts . size ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠArtifact ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . item _ artifact , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠArtifact ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠArtifact ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġartifact Ġ= Ġartifacts [ position ] ĊĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġartifact . title ĊĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . fetch Artifact ( project Slug , Ġbuild Slug , Ġartifact . slug ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġholder . item View . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Manager Ġ= Ġcontext . getSystem Service ( Context . DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O Ġ&& Ġ! context . package Manager . can Request Package Install s ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDownload Manager . Request ( Uri . parse ( it . data . download Url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Notification Visibility ( Download Manager . Request . VIS IBILITY _ VISIBLE _ NOTIFY _ COMPLETED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( it . data . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Manager . enqueue ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDownload Manager . Request ( Uri . parse ( it . data . download Url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Notification Visibility ( Download Manager . Request . VIS IBILITY _ VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( it . data . title ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Id Ġ= Ġdownload Manager . enqueue ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . register Receiver ( Download Broadcast Receiver ( download Id ), ĠIntent Filter ( Download Manager . ACTION _ DOWNLOAD _ COMPLETE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }