package Ġcom . d ari op elle gr ini . spike . multipart Ċ Ċ import Ġcom . android . vol ley . Auth Failure Error Ċ import Ġcom . android . vol ley . Network Response Ċ import Ġcom . android . vol ley . ParseError Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . Vol ley Error Ċ import Ġcom . android . vol ley . toolbox . Http Header Parser Ċ import Ġcom . d ari op elle gr ini . spike . network . Spi ke Network Response Ċ Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . Data OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . io . Unsupported EncodingException Ċ Ċ /** Ċ Ġ* ĠCustom Ġjson Request Ġto Ġmake Ġmultipart Ġheader Ġand Ġupload Ġfile . Ċ Ġ*/ Ċ open Ġclass ĠS pi ke Multipart Request : ĠRequest < Spi ke Network Response > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtwo Hy ph ens Ġ= Ġ"-- " ĊĠĠĠ Ġprivate Ġval Ġline End Ġ= Ġ"\ r \ n " ĊĠĠĠ Ġprivate Ġval Ġboundary Ġ= Ġ" apic lient -" Ġ+ ĠSystem . currentTimeMillis () ĊĊĠĠĠ Ġprivate Ġvar Ġm Listener : ĠResponse . Listener < Spi ke Network Response >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Error Listener : ĠResponse . Error Listener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Headers : ĠMap < String , ĠString >? Ġ= Ġmap Of () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCustom Ġmethod Ġhandle Ġdata Ġpayload . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠMap Ġdata Ġpart Ġlabel Ġwith Ġdata Ġbyte ĊĠĠĠĠ Ġ* Ġ@ throws ĠAuth Failure Error ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCustom Ġmethod Ġhandle Ġdata Ġpayload . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠMap Ġdata Ġpart Ġlabel Ġwith Ġdata Ġbyte ĊĠĠĠĠ Ġ* Ġ@ throws ĠAuth Failure Error ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Auth Failure Error :: class ) ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Byte Data (): ĠMap < String , ĠData Part >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDefault Ġconstructor Ġwith Ġpredefined Ġheader Ġand Ġpost Ġmethod . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġurl ĠĠĠĠĠĠĠĠĠĠ Ġjson Request Ġdestination ĊĠĠĠĠ Ġ* Ġ@ param Ġheaders ĠĠĠĠĠĠ Ġpredefined Ġcustom Ġheader ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠ Ġon Ġsuccess Ġachieved Ġ 2 0 0 Ġcode Ġfrom Ġjson Request ĊĠĠĠĠ Ġ* Ġ@ param Ġerror Listener Ġon Ġerror Ġhttp Ġor Ġlibrary Ġtimeout ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( method : Int , Ġurl : ĠString , Ġheaders : ĠMap < String , ĠString >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠResponse . Listener < Spi ke Network Response >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Listener : ĠResponse . Error Listener ) Ġ: Ġsuper ( method , Ġurl , Ġerror Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġthis . m Error Listener Ġ= Ġerror Listener ĊĠĠĠĠĠĠĠ Ġthis . m Headers Ġ= Ġheaders ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructor Ġwith Ġoption Ġmethod Ġand Ġdefault Ġheader Ġconfiguration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmethod ĠĠĠĠĠĠĠ Ġmethod Ġfor Ġnow Ġaccept ĠPOST Ġand ĠGET Ġonly ĊĠĠĠĠ Ġ* Ġ@ param Ġurl ĠĠĠĠĠĠĠĠĠĠ Ġjson Request Ġdestination ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠĠĠĠĠ Ġon Ġsuccess Ġevent Ġhandler ĊĠĠĠĠ Ġ* Ġ@ param Ġerror Listener Ġon Ġerror Ġevent Ġhandler ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( method : ĠInt , Ġurl : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠResponse . Listener < Spi ke Network Response >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Listener : ĠResponse . Error Listener ) Ġ: Ġsuper ( method , Ġurl , Ġerror Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġthis . m Error Listener Ġ= Ġerror Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Auth Failure Error :: class ) ĊĠĠĠ Ġoverride Ġfun Ġget Headers (): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( m Headers Ġ!= Ġnull ) Ġthis . m Headers !! Ġelse Ġsuper . getHeaders () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Body ContentType (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" multipart / form - data ; boundary =$ boundary " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Auth Failure Error :: class ) ĊĠĠĠ Ġoverride Ġfun Ġget Body (): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġb os Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġdos Ġ= ĠData OutputStream ( bos ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpopulate Ġtext Ġpayload ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( params Ġ!= Ġnull Ġ&& Ġparams . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Parse ( dos , Ġparams , Ġparams Encoding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpopulate Ġdata Ġbyte Ġpayload ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġget Byte Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull Ġ&& Ġdata . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Parse ( dos , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġclose Ġmultipart Ġform Ġdata Ġafter Ġtext Ġand Ġfile Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdos . write Bytes ( two Hy ph ens Ġ+ Ġboundary Ġ+ Ġtwo Hy ph ens Ġ+ Ġline End ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġb os . toByteArray () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġparse Network Response ( response : ĠNetwork Response ): ĠResponse < Spi ke Network Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġresponse . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġval Ġcharset Ġ= ĠHttp Header Parser . parse Charset ( response !!. headers , ĠPROTO COL _ CHARSET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult String Ġ= ĠString ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result String . isEmpty ()) Ġ{ Ġ// ĠAccept ing Ġempty Ġresults ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Response Ġ= ĠS pi ke Network Response ( response . statusCode , Ġresponse . headers , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . success < Spi ke Network Response >( json Response , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Header Parser . parse Cache Headers ( response )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuccess Response Ġ= ĠS pi ke Network Response ( response . statusCode , Ġresponse . headers , Ġresult String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . success ( success Response , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Header Parser . parse Cache Headers ( response )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . error ( ParseError ( e )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeliver Response ( response : ĠS pi ke Network Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Listener !!. on Response ( response ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdeliver Error ( error : ĠVol ley Error ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Error Listener !!. on ErrorResponse ( error ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParse Ġstring Ġmap Ġinto Ġdata Ġoutput Ġstream Ġby Ġkey Ġand Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata OutputStream Ġdata Ġoutput Ġstream Ġhandle Ġstring Ġparsing ĊĠĠĠĠ Ġ* Ġ@ param Ġparams ĠĠĠĠĠĠĠĠĠĠ Ġstring Ġinputs Ġcollection ĊĠĠĠĠ Ġ* Ġ@ param Ġencoding ĠĠĠĠĠĠĠĠ Ġencode Ġthe Ġinputs , Ġdefault ĠUTF - 8 ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġtext Parse ( data OutputStream : ĠData OutputStream , Ġparams : ĠMap < String , ĠString >, Ġencoding : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġparams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Text Part ( data OutputStream , Ġkey , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ue e : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Encoding Ġnot Ġsupported : Ġ$ encoding ", Ġue e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParse Ġdata Ġinto Ġdata Ġoutput Ġstream . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata OutputStream Ġdata Ġoutput Ġstream Ġhandle Ġfile Ġattachment ĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĠĠĠĠĠĠĠĠĠĠĠĠ Ġloop Ġthrough Ġdata ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġdata Parse ( data OutputStream : ĠData OutputStream , Ġdata : ĠMap < String , ĠData Part >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Data Part ( data OutputStream , Ġvalue , Ġkey ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrite Ġstring Ġdata Ġinto Ġheader Ġand Ġdata Ġoutput Ġstream . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata OutputStream Ġdata Ġoutput Ġstream Ġhandle Ġstring Ġparsing ĊĠĠĠĠ Ġ* Ġ@ param Ġparameter Name ĠĠĠ Ġname Ġof Ġinput ĊĠĠĠĠ Ġ* Ġ@ param Ġparameter Value ĠĠ Ġvalue Ġof Ġinput ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġbuild Text Part ( data OutputStream : ĠData OutputStream , Ġparameter Name : ĠString , Ġparameter Value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes ( two Hy ph ens Ġ+ Ġboundary Ġ+ Ġline End ) ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes (" Content - Disposition : Ġform - data ; Ġname =\" $ parameter Name \" $ line End ") ĊĠĠĠĠĠĠĠ Ġ// data OutputStream . write Bytes (" Content - Type : Ġtext / plain ; Ġcharset = UTF - 8 " Ġ+ Ġline End ); ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes ( line End ) ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write ( parameter Value . toByteArray ()) ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes ( line End ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrite Ġdata Ġfile Ġinto Ġheader Ġand Ġdata Ġoutput Ġstream . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata OutputStream Ġdata Ġoutput Ġstream Ġhandle Ġdata Ġparsing ĊĠĠĠĠ Ġ* Ġ@ param Ġdata File ĠĠĠĠĠĠĠĠ Ġdata Ġbyte Ġas ĠData Part Ġfrom Ġcollection ĊĠĠĠĠ Ġ* Ġ@ param Ġinput Name ĠĠĠĠĠĠĠ Ġname Ġof Ġdata Ġinput ĊĠĠĠĠ Ġ* Ġ@ throws ĠIOException ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġbuild Data Part ( data OutputStream : ĠData OutputStream , Ġdata File : ĠData Part , Ġinput Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes ( two Hy ph ens Ġ+ Ġboundary Ġ+ Ġline End ) ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes (" Content - Disposition : Ġform - data ; Ġname =\"" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Name Ġ+ Ġ"\ "; Ġfilename =\"" Ġ+ Ġdata File . fileName Ġ+ Ġ"\"" Ġ+ Ġline End ) ĊĠĠĠĠĠĠĠ Ġif Ġ( data File . type Ġ!= Ġnull Ġ&& Ġ! data File . type !!. trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes (" Content - Type : Ġ" Ġ+ Ġdata File . type Ġ+ Ġline End ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes ( line End ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfile InputStream Ġ= ĠByteArrayInputStream ( data File . content !! ) ĊĠĠĠĠĠĠĠ Ġvar Ġbytes Available Ġ= Ġfile InputStream . available () ĊĊĠĠĠĠĠĠĠ Ġval Ġmax BufferSize Ġ= Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 ĊĠĠĠĠĠĠĠ Ġvar ĠbufferSize Ġ= ĠMath . min ( bytes Available , Ġmax BufferSize ) ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteArray ( buffer Size ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġbytes Read Ġ= Ġfile InputStream . read ( buffer , Ġ 0 , ĠbufferSize ) ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( bytes Read Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata OutputStream . write ( buffer , Ġ 0 , ĠbufferSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes Available Ġ= Ġfile InputStream . available () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbufferSize Ġ= ĠMath . min ( bytes Available , Ġmax BufferSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes Read Ġ= Ġfile InputStream . read ( buffer , Ġ 0 , ĠbufferSize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata OutputStream . write Bytes ( line End ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSimple Ġdata Ġcontainer Ġuse Ġfor Ġpassing Ġbyte Ġfile ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinner Ġclass ĠData Part Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGetter Ġfile Ġname . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġfile Ġname ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSetter Ġfile Ġname . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġstring Ġfile Ġname ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar ĠfileName : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGetter Ġcontent . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġbyte Ġfile Ġdata ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSetter Ġcontent . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontent Ġbyte Ġfile Ġdata ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġcontent : ĠByteArray ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGetter Ġmime Ġtype . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġmime Ġtype ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSetter Ġmime Ġtype . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtype Ġmime Ġtype ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġtype : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDefault Ġdata Ġpart ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconstructor () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠConstructor Ġwith Ġdata . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġname Ġlabel Ġof Ġdata ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdata Ġbyte Ġdata ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconstructor ( name : ĠString , Ġdata : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileName Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠConstructor Ġwith Ġmime Ġdata Ġtype . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġname ĠĠĠĠ Ġlabel Ġof Ġdata ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdata ĠĠĠĠ Ġbyte Ġdata ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠmimeType Ġmime Ġdata Ġlike Ġ" image / jpeg " ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconstructor ( name : ĠString , Ġdata : ĠByteArray , ĠmimeType : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileName Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠmimeType ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ