package Ġcom . ed ward stock . multip icker Ċ Ċ import Ġandroidx . activity . result . Activity Result Launcher Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . ed ward stock . multip icker . data . Media File Ċ import Ġcom . ed ward stock . multip icker . picker . ui . Picker Activity Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ /** Ċ Ġ* Ġandroid - multip icker . Ġ 2 0 1 8 Ċ Ġ* Ġ@ author ĠE du ard ĠMax im ov ich Ġ[ ed ward . v stock @ gmail . com ] Ċ Ġ*/ Ċ class ĠMulti Picker Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( activity : ĠAppCompatActivity ): ĠMulti Picker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMulti Picker ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( fragment : ĠFragment ): ĠMulti Picker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMulti Picker ( fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Config : ĠP icker Config Ġ= ĠP icker Config () ĊĠĠĠ Ġprivate Ġvar Ġm Activity : ĠWeak Reference < AppCompatActivity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Fragment : ĠWeak Reference < Fragment >? Ġ= Ġnull ĊĊĠĠĠ Ġinternal Ġconstructor ( activity : ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Activity Ġ= ĠWeak Reference ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġconstructor ( fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment Ġ= ĠWeak Reference ( fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġon Result : Ġ(( List < Media File >) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġar Launcher : ĠActivity Result Launcher < Picker Config >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġprepare ( on Result : Ġ( List < Media File >) Ġ-> ĠUnit ): ĠMulti Picker Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity Ġ!= Ġnull Ġ&& Ġm Activity ?. get () Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar Launcher Ġ= ĠP icker Activity . Builder ( m Activity !!. get () !! ). prepare ( on Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment Ġ!= Ġnull Ġ&& Ġm Fragment ?. get () Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar Launcher Ġ= ĠP icker Activity . Builder ( m Fragment !!. get () !! ). prepare ( on Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġar Launcher ?. launch ( m Config ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconfigure ( config : ĠP icker Config ): ĠMulti Picker Ġ{ ĊĠĠĠĠĠĠĠ Ġm Config Ġ= Ġconfig ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconfigure ( config : ĠP icker Config . () Ġ-> ĠUnit ): ĠMulti Picker Ġ{ ĊĠĠĠĠĠĠĠ Ġm Config . apply ( config ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊ Ċ }