package Ġcom . k inner ap ri y ap . s ugar . choice Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . k inner ap ri y ap . s ugar . R Ċ import Ġcom . k inner ap ri y ap . s ugar . Sh erg il Activity Ċ Ċ class ĠChoice Builder Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġactivity : ĠActivity ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġfragment : ĠFragment ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġvar Ġchoice Spec : ĠChoice Spec Ġ= ĠChoice Spec . clean Instance Ċ ) Ġ{ ĊĊĠĠĠ Ġconstructor ( activity : ĠActivity ) Ġ: Ġthis ( activity , Ġnull ) ĊĠĠĠ Ġconstructor ( fragment : ĠFragment ) Ġ: Ġthis ( fragment . activity , Ġfragment ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSelect s Ġthe ĠMIME Ġtypes Ġallowed Ġto Ġbe Ġchosen Ġby Ġthe Ġuser ĊĠĠĠĠ Ġ* ĠMIME Ġtypes Ġnot Ġincluded Ġwill Ġbe Ġshown Ġbut ĊĠĠĠĠ Ġ* Ġcannot Ġbe Ġchosen Ġif Ġshow Dis allowed Mime Types Ġis Ġtrue ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmime Types Ġ ĠList <[ MimeType ]> Ġdefault Ġis ĠMime Type . I MAGES Ġ( all Ġimage Ġtypes ) ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġmime Types ( mime Types : ĠList < MimeType >): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . mime Types Ġ= Ġmime Types ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġor Ġnot Ġto Ġshow Ġthe ĠMIME Ġtypes ĊĠĠĠĠ Ġ* Ġnot Ġallowed Ġto Ġbe Ġchosen Ġby Ġthe Ġuser ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Dis allowed Mime Types ĠBoolean Ġdefault Ġis Ġfalse ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Dis allowed Mime Types ( show Dis allowed Mime Types : ĠBoolean ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . show Dis allowed Mime Types Ġ= Ġshow Dis allowed Mime Types ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġor Ġnot Ġto Ġallow Ġmedia Ġselection Ġfrom Ġlocal Ġstorage Ġonly ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġallow Only LocalStorage ĠBoolean Ġdefault Ġis Ġfalse ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġallow Only LocalStorage ( allow Only LocalStorage : ĠBoolean ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . allow Only LocalStorage Ġ= Ġallow Only LocalStorage ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġthe Ġnumber Ġof Ġcolumns Ġin Ġwhich Ġmedia Ġis Ġdisplayed ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠnumOf Columns ĠInt Ġdefault Ġis Ġ 2 ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠnumOf Columns ( num Of Columns : ĠInt ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . num Of Columns Ġ= ĠnumOf Columns ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġcustom Ġtheme Ġfor ĠSh erg il ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtheme ĠInt Ġdefault Ġis Ġ[ R . style . Sh erg il ] ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtheme ( theme : ĠInt ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . theme Ġ= Ġtheme ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġor Ġnot Ġto Ġallow Ġselected Ġmedia Ġpreview ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġallow Preview ĠBoolean Ġdefault Ġis Ġtrue ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġallow Preview ( allow Preview : ĠBoolean ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . allow Preview Ġ= Ġallow Preview ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġmaximum Ġlimit Ġfor Ġmedia Ġselection ĊĠĠĠĠ Ġ* ĠThrows ĠIllegalArgumentException ĊĠĠĠĠ Ġ* Ġif Ġthe Ġvalue Ġpassed Ġis Ġnot Ġgreater Ġthan Ġ 0 ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmax Selectable ĠInt Ġdefault Ġis Ġ[ Integer . MAX _ VALUE ] ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġmax Selectable ( max Selectable : ĠInt ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( max Selectable Ġ<= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" max Selectable Ġmust Ġbe Ġgreater Ġthan Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . max Selectable Ġ= Ġmax Selectable ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġor Ġnot Ġto Ġallow Ġcamera Ġcapture ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġallow Camera ĠBoolean Ġdefault Ġis Ġtrue ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġallow Camera ( allow Camera : ĠBoolean ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . allow Camera Ġ= Ġallow Camera ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġor Ġnot Ġto Ġshow Ġthe Ġdevice Ġcamera Ġwhen Ġallow Camera Ġis Ġtrue ĊĠĠĠĠ Ġ* ĠIf Ġshow Device Camera Ġis Ġfalse , Ġlibrary Ġimplementation Ġof Ġcamera Ġis Ġshown ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Device Camera ĠBoolean Ġdefault Ġis Ġfalse ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Device Camera ( show Device Camera : ĠBoolean ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . show Device Camera Ġ= Ġshow Device Camera ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġor Ġnot Ġto Ġshow Ġcamera Ġfirst Ġwhen Ġallow Camera Ġis Ġtrue ĊĠĠĠĠ Ġ* ĠIf Ġshow Camera First Ġor Ġallow Camera Ġare Ġfalse , Ġgallery Ġis Ġopened Ġfirst ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġshow Camera First ĠBoolean Ġdefault Ġis Ġfalse ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Camera First ( show Camera First : ĠBoolean ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . show Camera First Ġ= Ġshow Camera First ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġor Ġrestrict s Ġorientation ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġorientation ĠInt Ġdefault Ġis Ġ[ Activity Info . SCREEN _ OR IENTATION _ UNSPECIFIED ] ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Choice Builder ] Ġinstance ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġorientation ( orientation : ĠInt ): ĠChoice Builder Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoice Spec . orientation Ġ= Ġorientation ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOpen s Ġmedia Ġselection Ġwith Ġthe Ġrequest Code Ġprovided ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġrequest Code ĠRequest Ġcode Ġto Ġbe Ġreturned Ġin Ġon Activity Result ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwith Request Code ( request Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠSh erg il Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġwith ( fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ!= Ġnull ) Ġthis . startActivity For Result ( intent , Ġrequest Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġactivity . startActivity For Result ( intent , Ġrequest Code ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ