package Ġcom . luck . picture . lib . instagram . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġcom . luck . picture . lib . instagram . filter . Filter Type Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ================================= =============== Ċ Ġ* ĠCreated Ġby ĠJ ess Y an Ġon Ġ 2 0 2 0 / 6 / 2 Ġ 1 6 : 0 9 Ċ Ġ* Ġ[ Contact Ġme ]( mailto : j ess . yan . eff ort @ gmail . com ) Ċ Ġ* Ġ[ Follow Ġme ]( https :// github . com / J ess Y an Coding ) Ċ Ġ* Ġ================================= =============== Ċ Ġ*/ Ċ class ĠInst agram Filter Adapter ( private Ġval ĠmContext : ĠContext , Ġconfig : ĠPicture Selection Config ) Ġ: ĠRecyclerView . Adapter < Inst agram Filter Adapter . Holder ?> () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Config : ĠPicture Selection Config ĊĠĠĠ Ġprivate Ġval Ġm Filters : ĠList < Filter Type > ĊĠĠĠ Ġprivate Ġval Ġm Bit maps : ĠMutable List < Bitmap > ĊĠĠĠ Ġprivate Ġvar Ġm On ItemClickListener : ĠOn ItemClickListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Selection Position Ġ= Ġ 0 ĊĠĠĠ Ġfun Ġget Thumbnail Bit maps ( context : ĠContext ?, Ġbitmap : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Filters : ĠList < GPU Image Filter > Ġ= ĠFilter Type . create Image Filter List ( context !! ) ĊĠĠĠĠĠĠĠ ĠGPU Image . get Bitmap For Multiple Filters ( bitmap , Ġimage Filters , ĠResponse Listener < Bitmap > Ġ{ Ġitem : ĠBitmap Ġ-> Ġm Bit maps . add ( item ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠH older ( Filter Item View ( mContext , Ġm Config )) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener ( View . OnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m On ItemClickListener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On ItemClickListener !!. on Item Click ( holder . item View , Ġholder . get Adapter Position (), Ġm Filters [ holder . get Adapter Position ()]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . play To gether ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Float ( holder . item View , Ġ" scale X ", Ġ 1 f , Ġ 1 . 0 5 f , Ġ 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Float ( holder . item View , Ġ" scale Y ", Ġ 1 f , Ġ 1 . 0 5 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . set Duration ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . start () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġholder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠH older , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( holder . item View Ġas ĠFilter Item View ). refresh Filter ( m Filters [ position ], Ġm Bit maps [ position ], Ġposition , Ġm Selection Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem ( position : ĠInt ): ĠFilter Type Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Filters [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Filters . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Selection Position ( selection Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Selection Position Ġ= Ġselection Position ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( on ItemClickListener : ĠOn ItemClickListener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm On ItemClickListener Ġ= Ġon ItemClickListener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( view : ĠView ?, Ġposition : ĠInt , Ġfilter Type : ĠFilter Type ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠH older ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Config Ġ= Ġconfig ĊĠĠĠĠĠĠĠ Ġm Filters Ġ= ĠFilter Type . create Filter List () ĊĠĠĠĠĠĠĠ Ġm Bit maps Ġ= ĠArrayList < Bitmap >() ĊĠĠĠ Ġ} Ċ }