package Ġcom . mat isse . ui . activity . mat isse Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . media . Media Scanner Connection Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . view . View Ċ import Ġcom . mat isse . Mat isse Ċ import Ġcom . mat isse . R Ċ import Ġcom . mat isse . entity . Album Ċ import Ġcom . mat isse . entity . Const Value Ċ import Ġcom . mat isse . entity . In cap able Cause Ċ import Ġcom . mat isse . entity . Item Ċ import Ġcom . mat isse . model . Album Callbacks Ċ import Ġcom . mat isse . model . SelectedItem Collection Ċ import Ġcom . mat isse . uc rop . UC rop Ċ import Ġcom . mat isse . uc rop . UC rop Multi Ċ import Ġcom . mat isse . ui . activity . Album Preview Activity Ċ import Ġcom . mat isse . ui . activity . Base Activity Ċ import Ġcom . mat isse . ui . activity . Selected Preview Activity Ċ import Ġcom . mat isse . ui . adapter . Album Media Adapter Ċ import Ġcom . mat isse . ui . adapter . Folder Item Media Adapter Ċ import Ġcom . mat isse . ui . view . Folder Bottom Sheet Ċ import Ġcom . mat isse . ui . view . Media Selection Fragment Ċ import Ġcom . mat isse . utils .* Ċ import Ġkotlinx . android . synt hetic . main . activity _ mat isse .* Ċ import Ġkotlinx . android . synt hetic . main . include _ view _ bottom .* Ċ import Ġkotlinx . android . synt hetic . main . include _ view _ navigation .* Ċ Ċ /** Ċ Ġ* Ġdesc ï¼ļ åħ¥ åı£ </ br > Ċ Ġ* Ġtime : Ġ 2 0 1 9 / 9 / 1 1 - 1 4 : 1 7 </ br > Ċ Ġ* Ġauthor ï¼ļ Le o Ġ</ br > Ċ Ġ* Ġsince ĠV Ġ 1 . 0 . 0 Ġ</ br > Ċ Ġ*/ Ċ class ĠMat isse Activity Ġ: ĠBase Activity (), ĊĠĠĠ ĠMedia Selection Fragment . Selection Provider , ĊĠĠĠ ĠAlbum Media Adapter . Check State Listener , ĠAlbum Media Adapter . On Media ClickListener , ĊĠĠĠ ĠAlbum Media Adapter . On Photo Capture , ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmedia Store Compat : ĠMedia Store Compat ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoriginal Enable Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġall Album : ĠAlbum ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġalbum Load Helper : ĠAlbum Load Helper ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġselected Collection : ĠSelected Item Collection ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġalbum Folder Sheet Helper : ĠAlbum Folder Sheet Helper ĊĊĊĠĠĠ Ġoverride Ġfun Ġconfig Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . config Activity () ĊĠĠĠĠĠĠĠ Ġspec ?. status Bar Future ?. invoke ( this , Ġtoolbar ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( spec ?. capture Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Store Compat Ġ= ĠMedia Store Compat ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( spec ?. capture Strategy Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Don 't Ġforget Ġto Ġset ĠCapture Strategy .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Store Compat ?. set Capture Strategy ( spec ?. capture Strategy !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetResource Layout Id () Ġ= ĠR . layout . activity _ mat isse ĊĊĠĠĠ Ġoverride Ġfun Ġset ViewData () Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton _ apply . setText ( get Attr String ( R . attr . Media _ Album _ text , ĠR . string . album _ name _ all )) ĊĠĠĠĠĠĠĠ Ġselected Collection Ġ= ĠSelected Item Collection ( this ). apply Ġ{ ĠonCreate ( instance State ) Ġ} ĊĠĠĠĠĠĠĠ Ġalbum Load Helper Ġ= ĠAlbum Load Helper ( this , Ġalbum Callback ) ĊĠĠĠĠĠĠĠ Ġalbum Folder Sheet Helper Ġ= ĠAlbum Folder Sheet Helper ( this , Ġalbum Sheet Callback ) ĊĠĠĠĠĠĠĠ Ġupdate Bottom Toolbar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġset OnClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġbutton _ apply , Ġbutton _ preview , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal _ layout , Ġbutton _ complete , Ġbutton _ back ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġselected Collection . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġalbum Load Helper ?. on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Boolean ( Const Value . CHECK _ STATE , Ġoriginal Enable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġalbum Load Helper ?. on Destroy () ĊĠĠĠĠĠĠĠ Ġspec ?. on Checked Listener Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġspec ?. on Selected Listener Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ C ANCE LED ) ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonSelect Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Bottom Toolbar () ĊĠĠĠĠĠĠĠ Ġspec ?. on Selected Listener ?. on Selected ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Collection . asList Of Uri (), Ġselected Collection . asList Of String () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcapture () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Store Compat ?. dispatch Capture Intent ( this , ĠConst Value . REQUEST _ CODE _ CAPTURE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConst Value . REQUEST _ CODE _ PRE VIEW Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠActivity . RESULT _ OK ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcrop Path Ġ= ĠMat isse . obtain Crop Result ( data ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è£ ģ åī ª å¸¦ åĽŀ æķ°æį® ï¼Į åĪĻ è®¤ä¸º åĽ¾çīĩ ç»ı è¿ĩ è£ ģ åī ª æµģç¨ĭ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( crop Path Ġ!= Ġnull ) Ġfinish Intent From Crop ( activity , Ġcrop Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġdo Activity Result From Preview ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConst Value . REQUEST _ CODE _ CAPTURE Ġ-> Ġdo Activity Result From Capture () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConst Value . REQUEST _ CODE _ C ROP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Uri Ġ= ĠU Crop . getOutput ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Intent From Crop ( activity , Ġresult Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConst Value . REQUEST _ CODE _ C ROP _ ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcrop Error Ġ= ĠU Crop . getError ( data )?. message Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn cap able Cause . handle Cause ( activity , ĠIn cap able Cause ( crop Error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ back Ġ-> Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ preview Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected Collection . count () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Cause Tips ( getString ( R . string . please _ select _ media _ resource )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSelected Preview Activity . instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġselected Collection . getData With Bundle (), Ġoriginal Enable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ complete Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected Collection . count () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Cause Tips ( getString ( R . string . please _ select _ media _ resource )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġselected Collection . asList ()[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( spec ?. open Crop () Ġ== Ġtrue Ġ&& Ġspec ?. is Support Crop ( item ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoto Image Crop ( this , Ġselected Collection . asList Of Uri () Ġas ĠArrayList < Uri >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Intent From Preview ( activity , Ġoriginal Enable , Ġselected Collection . items ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal _ layout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġcount Over MaxSize ( selected Collection ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Enable Ġ= Ġ! original Enable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . setChecked ( original Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec ?. on Checked Listener ?. on Check ( original Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Cause Tips ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . error _ over _ original _ count , Ġcount , Ġspec ?. original MaxSize ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn cap able Cause . DIALOG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ apply Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( all Album ?. is All () Ġ== Ġtrue Ġ&& Ġall Album ?. isEmpty () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Cause Tips ( getString ( R . string . empty _ album )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder Sheet Helper . create Folder Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprovide SelectedItem Collection () Ġ= Ġselected Collection ĊĊĠĠĠ Ġoverride Ġfun Ġon Media Click ( album : ĠAlbum ?, Ġitem : ĠItem , Ġadapter Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠAlbum Preview Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( Const Value . EXTRA _ AL BU M , Ġalbum Ġas ĠParcel able ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( Const Value . EXTRA _ ITEM , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( Const Value . EXTRA _ DEFAULT _ B UNDLE , Ġselected Collection . getData With Bundle ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( Const Value . EXTRA _ RESULT _ ORIGIN AL _ ENABLE , Ġoriginal Enable ) ĊĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠConst Value . REQUEST _ CODE _ PRE VIEW ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¤ĦçĲĨ é¢Ħ è§Ī çļĦ [ on Activity Result ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdo Activity Result From Preview ( data : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata ?. apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Enable Ġ= Ġget Boolean Extra ( Const Value . EXTRA _ RESULT _ ORIGIN AL _ ENABLE , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Apply Data Ġ= Ġget Boolean Extra ( Const Value . EXTRA _ RESULT _ AP PLY , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Preview Intent ( activity , Ġdata , Ġoriginal Enable , Ġis Apply Data , Ġselected Collection ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Apply Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmedia Selection Fragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Selection Fragment :: class . java . simple Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( media Selection Fragment Ġis ĠMedia Selection Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Selection Fragment . refresh Media Grid () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Bottom Toolbar () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¤ĦçĲĨ æĭ į çħ§ çļĦ [ on Activity Result ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdo Activity Result From Capture () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcapture Path Uri Ġ= Ġmedia Store Compat ?. getCurrent Photo Uri () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcapture Path Ġ= Ġmedia Store Compat ?. getCurrent Photo Path () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġ// Ġ åĪ·æĸ° ç³»ç»Ł çĽ¸ åĨĮ ĊĠĠĠĠĠĠĠ ĠMedia Scanner Connection . scan File ( this , ĠarrayOf ( capture Path ), Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ// Ġ éĩįæĸ° èİ·åıĸ çĽ¸ åĨĮ æķ°æį® ĊĠĠĠĠĠĠĠ Ġalbum Load Helper ?. load Album Data () ĊĠĠĠĠĠĠĠ Ġ// Ġ æīĭåĬ¨ æıĴåħ¥ åĪ° çĽ¸ åĨĮ åĪĹè¡¨ ĊĠĠĠĠĠĠĠ Ġalbum Folder Sheet Helper . in set Album To Folder ( capture Path Uri ) ĊĠĠĠĠĠĠĠ Ġ// Ġ éĩįæĸ° load æīĢæľī èµĦæºĲ ĊĠĠĠĠĠĠĠ Ġalbum Folder Sheet Helper . get Album Folder List ()?. apply Ġ{ Ġon Album Selected ( this [ 0 ]) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġis ĠC rop Ġfirst ĊĠĠĠĠĠĠĠ Ġif Ġ( spec ?. open Crop () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoto Image Crop ( this , Ġarray ListOf ( capture Path Uri )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Bottom Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselected Count Ġ= Ġselected Collection . count () ĊĠĠĠĠĠĠĠ Ġset Complete Text ( selected Count ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( spec ?. original able Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Visible ( true , Ġoriginal _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Original State () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Visible ( false , Ġoriginal _ layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Complete Text ( selected Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ complete . setText ( get Attr String ( R . attr . Media _ S ure _ text , ĠR . string . button _ sure )) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( selected Count Ġ== Ġ 1 Ġ&& Ġspec ?. single Selection Mode Enabled () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ complete . setText ( get Attr String ( R . attr . Media _ S ure _ text , ĠR . string . button _ sure )) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ complete . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( get Attr String ( R . attr . Media _ S ure _ text , ĠR . string . button _ sure )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus (" (" ). plus ( selected Count . toString ()). plus (" )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Original State () Ġ{ ĊĠĠĠĠĠĠĠ Ġoriginal . setChecked ( original Enable ) ĊĠĠĠĠĠĠĠ Ġif Ġ( count Over MaxSize ( selected Collection ) Ġ> Ġ 0 Ġ|| Ġoriginal Enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Cause Tips ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . error _ over _ original _ size , Ġspec ?. original MaxSize ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn cap able Cause . DIALOG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . setChecked ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Enable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Album Selected ( album : ĠAlbum ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( album . is All () Ġ&& Ġalbum . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Visible ( true , Ġempty _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Visible ( false , Ġcontainer ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Visible ( false , Ġempty _ view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Visible ( true , Ġcontainer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠMedia Selection Fragment . newInstance ( album ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( container . id , Ġfragment , ĠMedia Selection Fragment :: class . java . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġalbum Callback Ġ= Ġobject Ġ: ĠAlbum Callbacks Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Album Start () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Album Load ( cursor : ĠCursor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder Sheet Helper . set Album Folder Cursor ( cursor ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Album Ġ= ĠAlbum . valueOf ( cursor ). apply Ġ{ Ġon Album Selected ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Album Reset () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Folder Sheet Helper . clear Folder Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġalbum Sheet Callback Ġ= Ġobject Ġ: ĠFolder Bottom Sheet . Bottom Sheet Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinit Data ( adapter : ĠFolder Item Media Adapter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set List Data ( album Folder Sheet Helper . read Album From Cursor ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( album : ĠAlbum , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! album Folder Sheet Helper . set Last Folder Checked Position ( position )) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Load Helper ?. setState Current Selection ( position ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton _ apply . text Ġ= Ġalbum . get DisplayName ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Album Selected ( album ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ