package Ġcom . mat isse . ui . activity . mat isse Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Environment Ċ import Ġcom . mat isse . R Ċ import Ġcom . mat isse . entity . Album Ċ import Ġcom . mat isse . ui . view . Folder Bottom Sheet Ċ Ċ class ĠAlbum Folder Sheet Helper ( ĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext , Ġprivate Ġvar Ġsheet Callback : ĠFolder Bottom Sheet . Bottom Sheet Callback Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġalbum Folder Cursor : ĠCursor ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġalbum Folder List : ĠArrayList < Album >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbottom Sheet : ĠFolder Bottom Sheet ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlast Folder Checked Position Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġcreate Folder Sheet Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Ġ= ĠFolder Bottom Sheet . instance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġlast Folder Checked Position , Ġ" Folder " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbottom Sheet ?. callback Ġ= Ġsheet Callback ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġread Album From Cursor (): ĠArrayList < Album >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( album Folder List ?. size Ġ?: Ġ 0 Ġ> Ġ 0 ) Ġreturn Ġalbum Folder List ĊĊĠĠĠĠĠĠĠ Ġif Ġ( album Folder Cursor Ġ== Ġnull ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġvar Ġall Folder Cover Path : ĠUri ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġall Folder Count Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġif Ġ( album Folder List Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder List Ġ= Ġarray ListOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġalbum Folder Cursor ?. moveTo First () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( album Folder Cursor !!. moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Ġ= ĠAlbum . valueOf ( album Folder Cursor !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( album Folder List ?. size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Folder Cover Path Ġ= Ġalbum . get Cover Path () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder List ?. add ( album ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Folder Count Ġ+= Ġalbum . getCount () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġalbum Folder List ?. add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĠAlbum ( all Folder Cover Path , Ġcontext . getString ( R . string . album _ name _ all ), Ġall Folder Count ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġalbum Folder List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinset Album To Folder ( capture Path : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġread Album From Cursor () ĊĊĠĠĠĠĠĠĠ Ġalbum Folder List ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¨éĥ¨ çĽ¸ åĨĮ éľĢ æ·»åĬł ä¸Ģ å¼ł ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ 0 ]. add Capture Count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ 0 ]. set Cover Path ( capture Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġæĭ į çħ§ åĲİ åĽ¾çīĩ ä¿Ŀ åŃĺåľ¨ P ictures çĽ®å½ķ ä¸ĭ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠP ictures ä¸ºç©º æĹ¶ ï¼Į éľĢ æīĭåĬ¨ åĪĽå»º ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġ 2 0 1 9 / 1 0 / 2 8 ĠLe o ĠæŁ¥è¯¢ çĽ¸ åĨĮ ä¸ĭ åĽ¾çīĩ éľĢ æĮĩå®ļ id ï¼Į æĹłæ³ķ æīĭåĬ¨ çĶŁæĪĲ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist DC IM : ĠList < Album >? Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Ġ{ ĠEnvironment . DIRECTORY _ PI CTURE S Ġ== Ġit . get DisplayName ( context ) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list DC IM Ġ== Ġnull Ġ|| Ġlist DC IM . isEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder List ?. add ( Album ( Environment . DIRECTORY _ PI CTURE S , Ġ 0 )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠP ictures çĽ®å½ķ æīĭåĬ¨ æ·»åĬł ä¸Ģ å¼ł åĽ¾çīĩ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Ġ{ ĠEnvironment . DIRECTORY _ PI CTURE S Ġ== Ġit . get DisplayName ( context ) Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Capture Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Cover Path ( capture Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®°å½ķ ä¸Ĭ æ¬¡ éĢī ä¸Ń ä½įç½® ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue = è®°å½ķ æĪĲåĬŁ ĠĠ Ġfalse = è®°å½ķ å¤±è´¥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Last Folder Checked Position ( last Position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( last Folder Checked Position Ġ== Ġlast Position ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġlast Folder Checked Position Ġ= Ġlast Position ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Album Folder Cursor ( cursor : ĠCursor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġalbum Folder Cursor Ġ= Ġcursor ĊĠĠĠĠĠĠĠ Ġread Album From Cursor () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Album Folder List () Ġ= Ġalbum Folder List ĊĊĠĠĠ Ġfun Ġclear Folder Sheet Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bottom Sheet Ġ!= Ġnull Ġ&& Ġbottom Sheet ?. adapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder Cursor Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet ?. adapter ?. set List Data ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }