package Ġcom . example . test app . activity Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . lo ren wang . tools . app . At lw Activity Util Ċ import Ġandroid . lo ren wang . tools . app . At lw Permission Request Callback Ċ import Ġandroid . lo ren wang . tools . app . At lw Thread Util Ċ import Ġandroid . lo ren wang . tools . file . At lw File Option Util Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . test app . R Ċ import Ġcom . example . test app . adapter . File Scan Adapter Ċ import Ġcom . example . test app . base . Base Activity Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠåĪĽå»º æĹ¶éĹ´ ï¼ļ 2 0 1 9 - 0 4 - 1 5 Ġä¸ĭåįĪ Ġ 1 4 : 5 9 : 7 Ċ Ġ* ĠåĪĽå»º äºº ï¼ļ çİĭ äº ® ï¼Ī L oren Ġw ang ï¼ī Ċ Ġ* Ġ åĬŁèĥ½ ä½ľçĶ¨ ï¼ļ Ċ Ġ* Ġ æĢĿ è·¯ ï¼ļ Ċ Ġ* Ġæĸ¹æ³ķ ï¼ļ Ċ Ġ* Ġ æ³¨æĦı ï¼ļ Ċ Ġ* Ġä¿®æĶ¹ äºº ï¼ļ Ċ Ġ* Ġä¿®æĶ¹ æĹ¶éĹ´ ï¼ļ Ċ Ġ* Ġ å¤ĩ æ³¨ ï¼ļ Ċ Ġ*/ Ċ Ċ class ĠFile Options For Scan File Activity Ġ: ĠBase Activity (), ĠAt lw Permission Request Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cy List : ĠRecyclerView ĊĠĠĠ Ġprivate Ġval Ġdata Ġ= ĠArrayList < File >() ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠFile Scan Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġfiles Ġ= ĠArrayList < File >() ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ContentView ( R . layout . activity _ file _ options _ for _ scan ) ĊĠĠĠĠĠĠĠ Ġre cy List Ġ= ĠfindViewById ( R . id . rv _ scan _ result ) ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠLinearLayoutManager ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġre cy List . layout Manager Ġ= Ġmanager ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠFile Scan Adapter ( this ) ĊĠĠĠĠĠĠĠ Ġadapter ?. setOn Check Listener Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file . isDirectory ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġup Data FileList For Dir ( file . getAbsolutePath ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! data . contains ( file )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . add ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadapter ?. setData ( files ) ĊĠĠĠĠĠĠĠ Ġre cy List . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġshow Base Loading ( false ) ĊĠĠĠĠĠĠĠ ĠAt lw Activity Util . getInstance (). goTo Request Permissions ( this , ĠarrayOf ( Manifest . permission . READ _ EXTERNAL _ STORAGE ), Ġ 0 , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpermission Request Success Callback ( permission List : ĠMutable List < String > ?, Ġpermissions Request Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfiles . clear () ĊĠĠĠĠĠĠĠ ĠAt lw Thread Util . getInstance (). post On Child Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfiles . addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAt lw File Option Util . getInstance (). getFile List For Match Linked Queue Scan ( Ġtrue , ĠEnvironment . get External Storage Directory (). path , Ġ"^ [^ \\. ]. * \\. txt $ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAt lw Thread Util . getInstance (). post On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. setData ( files ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Base Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpermission Request Fail Callback ( permission List : ĠMutable List < String > ?, Ġpermissions Request Code : ĠInt ) Ġ{ ĊĠĠĠ Ġ} Ċ Ċ } Ċ