package Ġbg . dab ul g aria . t ib ro ish . presentation . ui . phot op icker . gallery // package Ġbg . dab ul g aria . t ib ro ish . presentation . ui . protocol . list Ċ Ċ import Ġbg . dab ul g aria . t ib ro ish . domain . image . Pick ed Image Source Ċ import Ġbg . dab ul g aria . t ib ro ish . presentation . ui . common . preview . images . Preview Image Ċ import Ġjava . io . Serializable Ċ import Ġjava . util .* Ċ Ċ open Ġclass ĠPhoto Id ( val Ġid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource : ĠPick ed Image Source ) Ġ: ĠSerializable Ċ Ċ class ĠPhoto Item ( id : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource : ĠPick ed Image Source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage FilePath : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Taken : ĠDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġis Selected : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpreviously Selected : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdisplay Size : ĠInt ) Ġ: ĠPhoto Id ( id , Ġsource ), ĠSerializable , ĠPreview Image { ĊĊĠĠĠ Ġoverride Ġval Ġphoto Selected : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġis Selected Ġ|| Ġpreviously Selected ĊĊĠĠĠ Ġoverride Ġval Ġphoto Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġid ĊĊĠĠĠ Ġoverride Ġval Ġphoto FilePath : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġimage FilePath ĊĊĠĠĠ Ġoverride Ġval Ġphoto Previous ly Selected : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpreviously Selected Ċ } Ċ Ċ data Ġclass ĠPhoto Picker ViewData ( val Ġprev Selected Photos : ĠList < Photo Id >): ĠSerializable Ġ{ ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġval Ġphoto Items Ġ= Ġmutable ListOf < Photo Item >() ĊĊĠĠĠ Ġvar Ġselected Photos Ġ= Ġ Ġmutable ListOf < Photo Item >() ĊĠĠĠ Ġvar Ġphotos Permission Requested Ġ= Ġfalse ĊĠĠĠ Ġvar Ġpreview Open Ġ= Ġfalse ĊĠĠĠ Ġvar Ġlast Photo Index : ĠInt Ġ= Ġ 0 Ċ } Ċ Ċ class ĠPhoto Picker Constants { ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠVIEW _ DATA _ KEY Ġ= Ġ" Photo Picker Constants . Add Protocol ViewData " ĊĊĠĠĠĠĠĠĠ Ġval ĠREQUEST _ IMAGE _ CAPTURE Ġ= Ġ 1 0 0 1 ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠView State { ĊĠĠĠ ĠLoading , ĠLoaded , ĠError , ĠNo Permission Ċ } Ċ