package Ġcom . fl am yo ad . ts uk iv iew er . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . fl am yo ad . ts uk iv iew er . R Ċ import Ġcom . fl am yo ad . ts uk iv iew er . model . Included Path Ċ import Ġcom . fl am yo ad . ts uk iv iew er . ui . settings . include df old ers . Remove Folder Listener Ċ import Ġcom . fl am yo ad . ts uk iv iew er . utils . ui . Empty ViewHolder Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ class ĠInclude d Folder Adapter ( private Ġval Ġlistener : ĠRemove Folder Listener ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠF OLDER _ ITEM Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġval ĠEMPTY _ IND IC ATOR Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġfolder List Ġ= Ġempty List < Included Path >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF OLDER _ ITEM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . included _ folders _ item , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠFolder ViewHolder ( view ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbtn Delete Ġ= Ġview . findViewById < Image Button >( R . id . btn Delete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Ġ= Ġfolder List [ holder . adapter Position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . delete Folder ( folder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġholder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ IND IC ATOR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . no _ result _ found , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEmpty ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Illegal Ġview Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( folder List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder List . size ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( folder List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ IND IC ATOR ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF OLDER _ ITEM ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( holder . item ViewType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF OLDER _ ITEM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Holder Ġ= Ġholder Ġas ĠFolder ViewHolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Holder . bind ( folder List [ holder . adapter Position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset List ( list : ĠList < Included Path >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfolder List Ġ= Ġlist ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠFolder ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtxt Directory : ĠTextView Ġ= ĠitemView . findViewById ( R . id . txt Directory ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbtn Delete : ĠImage Button Ġ= ĠitemView . findViewById ( R . id . btn Delete ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( path : ĠInclude d Path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Directory . text Ġ= Ġpath . dir . canonical Path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }