package Ġcom . mat isse . ui . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mat isse . R Ċ import Ġcom . mat isse . entity . Album Ċ import Ġcom . mat isse . internal . entity . Selection Spec Ċ import Ġcom . mat isse . widget . Check Radio View Ċ import Ġjava . io . File Ċ Ċ class ĠFolder Media Adapter ( var Ġcontext : ĠContext , Ġvar ĠmCurrent Position : ĠInt ) Ġ: ĊĠĠĠ ĠRecyclerView Cursor Adapter < Folder Media Adapter . Folder ViewHolder >( null ) Ġ{ ĊĊĠĠĠ Ġvar Ġitem ClickListener : ĠOn ItemClickListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġplaceholder : ĠDrawable ? ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġta Ġ= Ġcontext . theme . obtain Styled Attributes ( int ArrayOf ( R . attr . item _ placeholder )) ĊĠĠĠĠĠĠĠ Ġplaceholder Ġ= Ġta . get Drawable ( 0 ) ĊĠĠĠĠĠĠĠ Ġta . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠFolder ViewHolder , Ġcursor : ĠCursor , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġalbum Ġ= ĠAlbum . valueOf ( cursor ) ĊĊĠĠĠĠĠĠĠ Ġholder . tv Bucket Name . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . folder _ count ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum . get DisplayName ( holder . tv Bucket Name . context ), Ġalbum . getCount () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġset Rb Select Checked ( holder . rb Selected , Ġcursor . position Ġ== ĠmCurrent Position ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnot Ġneed Ġto Ġload Ġanimated ĠG if ĊĠĠĠĠĠĠĠ Ġval ĠmContext Ġ= Ġholder . iv Bucket Cover . context ĊĠĠĠĠĠĠĠ ĠSelection Spec . getInstance (). image Engine ?. load Thumbnail ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmContext , ĠmContext . resources . get Dimension Pixel Size ( R . dim en . media _ grid _ size ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder , Ġholder . iv Bucket Cover , Ġalbum . get Cover Path () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt , Ġcursor : ĠCursor ) Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĠFolder ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ album _ folder , Ġparent , Ġfalse ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinner Ġclass ĠFolder ViewHolder ( private Ġval Ġm Parent View : ĠViewGroup , ĠitemView : ĠView ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġtv Bucket Name : ĠTextView Ġ= ĠitemView . findViewById ( R . id . tv _ bucket _ name ) ĊĠĠĠĠĠĠĠ Ġvar Ġiv Bucket Cover : ĠImageView Ġ= ĠitemView . findViewById ( R . id . iv _ bucket _ cover ) ĊĠĠĠĠĠĠĠ Ġvar Ġrb Selected : ĠCheck Radio View Ġ= ĠitemView . findViewById ( R . id . rb _ selected ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item ClickListener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener !!. on Item Click ( v , Ġlayout Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Position Ġ= Ġlayout Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Radio Dis Checked ( m Parent View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Rb Select Checked ( rb Selected , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè®¾ç½® æľª æīĢæľī Item ä¸º æľª éĢī ä¸Ń ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparent View ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Radio Dis Checked ( parent View : ĠViewGroup ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent View Ġ== Ġnull Ġ|| Ġparent View . child Count Ġ< Ġ 1 ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġparent View . child Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġparent View . getChild At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrb Select : ĠCheck Radio View Ġ= ĠitemView . findViewById ( R . id . rb _ selected ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Rb Select Checked ( rb Select , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Rb Select Checked ( rb Select : ĠCheck Radio View ?, Ġchecked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( rb Select Ġ== Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġrb Select . scale X Ġ= Ġif Ġ( checked ) Ġ 1 f Ġelse Ġ 0 f ĊĠĠĠĠĠĠĠ Ġrb Select . scale Y Ġ= Ġif Ġ( checked ) Ġ 1 f Ġelse Ġ 0 f ĊĠĠĠĠĠĠĠ Ġrb Select . setChecked ( checked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( view : ĠView , Ġposition : ĠInt ) ĊĠĠĠ Ġ} Ċ }