package Ġcom . stripe . android . google pay Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcel Ċ import Ġandroid . os . Parcelable Ċ import Ġandroidx . activity . result . contract . Activity Result Contract Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġcom . google . android . gms . common . api . Status Ċ import Ġcom . stripe . android . model . Payment Intent Ċ import Ġcom . stripe . android . model . PaymentMethod Ċ import Ġcom . stripe . android . model . Shipping Information Ċ import Ġcom . stripe . android . view . Activity Starter Ċ import Ġkotlinx . parcel ize . Parcel er Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ Ċ internal Ġclass ĠStripe Google Pay Contract Ġ: ĊĠĠĠ ĠActivity Result Contract < Stripe Google Pay Contract . Args , ĠStripe Google Pay Contract . Result >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Intent ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġinput : ĠArgs ? ĊĠĠĠ Ġ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠStripe Google Pay Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( Activity Starter . Args . EXTRA , Ġinput ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġparse Result ( ĊĠĠĠĠĠĠĠ ĠresultCode : ĠInt , ĊĠĠĠĠĠĠĠ Ġintent : ĠIntent ? ĊĠĠĠ Ġ): ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResult . from Intent ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠArgs Ġto Ġstart Ġ[ Stripe Google Pay Activity ] Ġand Ġcollect Ġpayment Ġdata . ĠIf Ġsuccessful , Ġthe ĊĠĠĠĠ Ġ* Ġresult Ġwill Ġbe Ġreturned Ġthrough Ġ[ Result . Payment Data ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Parcel ize ĊĠĠĠ Ġdata Ġclass ĠArgs ( ĊĠĠĠĠĠĠĠ Ġvar Ġpayment Intent : ĠPayment Intent , ĊĠĠĠĠĠĠĠ Ġvar Ġconfig : ĠGoogle Pay Config ĊĠĠĠ Ġ) Ġ: ĠActivity Starter . Args Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Synt hetic ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġfun Ġcreate ( intent : ĠIntent ): ĠArgs ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintent . get Parcelable Extra ( Activity Starter . Args . EXTRA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Parcel ize ĊĠĠĠ Ġdata Ġclass ĠGoogle Pay Config ( ĊĠĠĠĠĠĠĠ Ġvar Ġenvironment : ĠStripe Google Pay Environment , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠISO Ġ 3 1 6 6 - 1 Ġalpha - 2 Ġcountry Ġcode Ġwhere Ġthe Ġtransaction Ġis Ġprocessed . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġcountry Code : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġto Ġtrue Ġto Ġrequest Ġan Ġemail Ġaddress . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġis Email Required : ĠBoolean Ġ= Ġfalse , ĊĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġmerchant Name : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ: ĠParcel able ĊĊĠĠĠ Ġsealed Ġclass ĠResult Ġ: ĠActivity Starter . Result Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto Bundle (): ĠBundle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbundle Of ( Activity Starter . Result . EXTRA Ġto Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parcel ize ĊĠĠĠĠĠĠĠ Ġclass ĠError ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception : ĠThrowable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoogle Pay Status : ĠStatus ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpayment Method : ĠPayment Method ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshipping Information : ĠSh ipping Information ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) Ġ: ĠResult () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ: ĠParcel er < Error > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate ( parcel : ĠParcel ): ĠError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexception Ġ= Ġparcel . read Serializable () Ġas ĠThrowable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Pay Status Ġ= Ġparcel . read Parcelable ( Status :: class . java . class Loader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠError . write ( parcel : ĠParcel , Ġflags : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparcel . write Serializable ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparcel . write Parcelable ( google Pay Status , Ġflags ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSee Ġ[ Args . Payment Data ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Parcel ize ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠPayment Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpayment Method : ĠPayment Method , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshipping Information : ĠSh ipping Information ? ĊĠĠĠĠĠĠĠ Ġ) Ġ: ĠResult () ĊĊĠĠĠĠĠĠĠ Ġ@ Parcel ize ĊĠĠĠĠĠĠĠ Ġobject ĠC anceled Ġ: ĠResult () ĊĊĠĠĠĠĠĠĠ Ġ@ Parcel ize ĊĠĠĠĠĠĠĠ Ġobject ĠUn available Ġ: ĠResult () ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġ[ Result ] Ġobject Ġfrom Ġthe Ġgiven Ġ` Intent ` ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Intent ( intent : ĠIntent ?): ĠResult Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġintent ?. get Parcelable Extra < Result >( Activity Starter . Result . EXTRA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult Ġ?: ĠError ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexception Ġ= ĠIllegalStateException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error Ġwhile Ġprocessing Ġresult Ġfrom ĠGoogle ĠPay ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ