package Ġcom . alle ver . ste alth camera . ui Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Application Info Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . pm . Resolve Info Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . File Provider Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . alle ver . ste alth camera . Build Config Ċ import Ġcom . alle ver . ste alth camera . R Ċ import Ġcom . alle ver . ste alth camera . Recycler ItemClickListener Ċ import Ġcom . alle ver . ste alth camera . ui . adapter . Pic Adapter Ċ import Ġcom . alle ver . ste alth camera . utils . File Util Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAlle ver Ġon Ġ 1 8 / 5 / 1 1 . Ċ Ġ*/ Ċ Ċ class ĠPicture Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm FilePath List : ĠMutable List < String >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Adapter : ĠPic Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Rv : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Pkg Ġ= Ġ"" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å¸¦ æľī Launcher åºĶçĶ¨ åĮħ åĲį ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġpkg : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Intent Ġ= ĠIntent ( Intent . ACTION _ MAIN , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Intent . add Category ( Intent . CATEGORY _ LA UNCH ER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġpackage Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapps Ġ= Ġpackage Manager . query Intent Activities ( main Intent , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpkg Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinfo : ĠResolve Info ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġapps . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= Ġapps [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" TAG ", Ġinfo !!. activity Info . load Label ( package Manager ). toString () Ġ+ Ġ" Ġpkg Name Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġinfo . activity Info . application Info . packageName Ġ+ Ġ" ĠclassName Ġ" Ġ+ Ġinfo . activity Info . name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpkg Ġ= Ġinfo . activity Info . application Info . packageName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pkg . contains (" gallery ") Ġ|| Ġpkg . contains (" photo ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpkg ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç³»ç»Ł çº§åĪ« çļĦ åºĶçĶ¨ åĮħ åĲį ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate // ç³»ç»Ł çº§ åºĶçĶ¨ ĊĠĠĠ Ġval Ġsystem Gallery Pkg : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpkg Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġpackage Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplication InfoList Ġ= Ġpackage Manager . get Installed Applications ( PackageManager . GET _ UN INST ALLED _ PACK AGES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( app Ġin Ġapplication InfoList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( app . flags Ġand ĠApplication Info . FLAG _ SYSTEM Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpkg Ġ= Ġapp . packageName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" TAG ", Ġ" pkg Ġ= Ġ$ pkg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pkg . contains (" gallery ") Ġ|| Ġpkg . contains (" photo ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" TAG ", Ġ" has Ġgallery Ġor Ġphoto \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpkg ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ picture ) ĊĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm FilePath List Ġ= ĠFile Util . all FilePath ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Rv Ġ= ĠfindViewById ( R . id . id _ picture _ rv ) ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠPic Adapter ( this , ĠR . layout . item _ picture , Ġm FilePath List !! ) ĊĠĠĠĠĠĠĠ Ġm Rv ?. layout Manager Ġ= ĠGrid LayoutManager ( this , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġm Rv !!. adapter Ġ= Ġm Adapter Ċ Ċ // ĠĠĠĠĠĠĠ Ġm Rv ?. addItem Decoration ( object Ġ: ĠRecyclerView . Item Decoration () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Offsets ( out Rect : ĠRect , Ġview : ĠView , Ġparent : ĠRecyclerView , Ġstate : ĠRecyclerView . State ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġparent . getChild Layout Position ( view ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pos Ġ== Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . left Ġ= Ġfirst Item Margin Left Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( pos Ġ+ Ġ 1 Ġ== Ġm Selected Data . size ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . right Ġ= Ġlast Item Margin Right Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġm Rv !!. add On Item Touch Listener ( Recycler ItemClickListener ( this , Ġm Rv !! , Ġobject Ġ: ĠRe cycler ItemClickListener . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( m Pkg )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pkg Ġ= Ġpkg ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Intent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( m Pkg )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Package ( m Pkg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( m FilePath List ! ![ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Uri : ĠUri ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Uri Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§£åĨ³ è°ĥçĶ¨ çĽ¸ åĨĮ ä¸į æĺ¾ç¤º åĽ¾çīĩ çļĦéĹ®é¢ĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Intent . add Flags ( Intent . FLAG _ GRANT _ READ _ URI _ PERMISSION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Provider . get Uri For File ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Picture Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Config . APPLICATION _ ID Ġ+ Ġ". file provider ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . from File ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Intent . setData And Type ( Uri . parse ( file Uri . toString ()), Ġ" image /* ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( album Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Long Click ( view : ĠView ?, Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Picture Activity " ĊĠĠĠ Ġ} Ċ } Ċ