package Ġcom . stripe . android . model . wallet s Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . stripe . android . Object Builder Ċ import Ġcom . stripe . android . model . Stripe Json Utils . opt String Ċ import Ġcom . stripe . android . model . Stripe Model Ċ import Ġkotlinx . android . parcel . Parcel ize Ċ import Ġorg . json . JSONObject Ċ Ċ abstract Ġclass ĠWallet Ġinternal Ġconstructor ( ĊĠĠĠ Ġinternal Ġval Ġwallet Type : ĠType Ċ ) Ġ: ĠStripe Model (), ĠParcel able Ġ{ ĊĠĠĠ Ġinternal Ġabstract Ġclass ĠBuilder < Wallet Type Ġ: ĠWallet > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdynamic Last 4 : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Dynamic Last 4 ( dynamic Last 4 : ĠString ?): ĠBuilder < *> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . dynamic Last 4 Ġ= Ġdynamic Last 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġabstract Ġfun Ġbuild (): ĠWallet Type ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġenum Ġclass ĠType ( val Ġcode : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠA mex Express Checkout (" ame x _ express _ checkout "), ĊĠĠĠĠĠĠĠ ĠApple Pay (" apple _ pay "), ĊĠĠĠĠĠĠĠ ĠGoogle Pay (" google _ pay "), ĊĠĠĠĠĠĠĠ ĠMaster pass (" master _ pass "), ĊĠĠĠĠĠĠĠ ĠSamsung Pay (" s amsung _ pay "), ĊĠĠĠĠĠĠĠ ĠVis a Checkout (" visa _ checkout "); ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Code ( code : ĠString ?): ĠType ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalues (). first OrNull Ġ{ Ġit . code Ġ== Ġcode Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Parcel ize ĊĠĠĠ Ġdata Ġclass ĠAddress Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġcity : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġcountry : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġline 1 : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġline 2 : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġpostal Code : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġstate : ĠString ? ĊĠĠĠ Ġ) Ġ: ĠStripe Model (), ĠParcel able Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġclass ĠBuilder Ġ: ĠObject Builder < Address > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcity : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcountry : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġline 1 : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġline 2 : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġpostal Code : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġvar Ġstate : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset City ( city : ĠString ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . city Ġ= Ġcity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset Country ( country : ĠString ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . country Ġ= Ġcountry ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset Line 1 ( line 1 : ĠString ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . line 1 Ġ= Ġline 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset Line 2 ( line 2 : ĠString ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . line 2 Ġ= Ġline 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset Postal Code ( postal Code : ĠString ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . postal Code Ġ= Ġpostal Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠsetState ( state : ĠString ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state Ġ= Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠAddress Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAddress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġcity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Ġ= Ġcountry , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline 1 Ġ= Ġline 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline 2 Ġ= Ġline 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpostal Code Ġ= Ġpostal Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ C ITY Ġ= Ġ" city " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ COUNTRY Ġ= Ġ" country " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ LINE 1 Ġ= Ġ" line 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ LINE 2 Ġ= Ġ" line 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ POST AL _ CODE Ġ= Ġ" postal _ code " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFIELD _ STATE Ġ= Ġ" state " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġfun Ġfrom Json ( address Json : ĠJSONObject ?): ĠAddress ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( address Json Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set City ( opt String ( address Json , ĠFIELD _ C ITY )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Country ( opt String ( address Json , ĠFIELD _ COUNTRY )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Line 1 ( opt String ( address Json , ĠFIELD _ LINE 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Line 2 ( opt String ( address Json , ĠFIELD _ LINE 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Postal Code ( opt String ( address Json , ĠFIELD _ POST AL _ CODE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setState ( opt String ( address Json , ĠFIELD _ STATE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠFIELD _ DYNAMIC _ LAST 4 Ġ= Ġ" dynamic _ last 4 " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠFIELD _ TYPE Ġ= Ġ" type " ĊĠĠĠ Ġ} Ċ } Ċ