package Ġcom . silver . ff picker . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . silver . ff picker . FF Picker Ċ import Ġcom . silver . ff picker . R Ċ import Ġkotlinx . android . synt hetic . main . item _ file list _ rcv . view .* Ċ import Ġjava . io . File Ċ Ċ class ĠFile Re cycle View Adapter ( var Ġcontext : ĠContext , Ġvar Ġchoose Mode : ĠInt , Ġvar Ġm Max Num : ĠInt , Ġvar ĠfileType : ĠArray < String ?> ): ĠRecyclerView . Adapter < File Re cycle View Adapter . My Holder >(), View . OnClickListener { ĊĠĠĠ Ġvar Ġon ItemClickListener : On ItemClickListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Data : ĠArrayList < File > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġval Ġm List Numbers Ġ= ĠArrayList < String >() Ġ// åŃĺ æĶ¾ éĢī ä¸Ń æĿ¡ çĽ® çļĦæķ°æį® åľ°åĿĢ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMy Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ file list _ rcv , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMy Holder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Data . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMy Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile : ĠFile Ġ= Ġm Data [ position ] ĊĠĠĠĠĠĠĠ Ġif ( file . isDirectory ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . iv _ file icon . setImage Drawable ( context . get Drawable ( R . drawable . icon _ folder )) ĊĠĠĠĠĠĠĠ Ġ} else Ġif ( file . isFile ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . iv _ file icon . setImage Drawable ( context . get Drawable ( R . drawable . icon _ file )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġholder . item View . tv _ filename . text Ġ= Ġfile . name ĊĠĠĠĠĠĠĠ Ġholder . item View . tag Ġ= Ġm Data [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd ( file : ĠFile ){ ĊĠĠĠĠĠĠĠ Ġif ( choose Mode Ġ== ĠFF Picker . CH OOSE _ FILE ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Data . add ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( file . isDirectory ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Data . add ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( file List : ĠArrayList < File > ){ ĊĠĠĠĠĠĠĠ Ġfor ( file Ġin Ġfile List ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm List Numbers . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear (){ ĊĠĠĠĠĠĠĠ Ġm Data . clear () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġm List Numbers . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMy Holder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener { ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( view : ĠView , Ġfile : ĠFile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( p 0 : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( p 0 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener ?. onClick ( p 0 , Ġp 0 . tag Ġas ĠFile ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }