package Ġcom . stripe . android . payments . core . authentication . th reed s 2 Ċ Ċ import Ġandroidx . activity . result . Activity Result Callback Ċ import Ġandroidx . activity . result . Activity Result Caller Ċ import Ġandroidx . activity . result . Activity Result Launcher Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġcom . stripe . android . Payment Auth Config Ċ import Ġcom . stripe . android . model . Stripe Intent Ċ import Ġcom . stripe . android . networking . ApiRequest Ċ import Ġcom . stripe . android . payments . Payment Flow Result Ċ import Ġcom . stripe . android . payments . core . authentication . Payment Authenticator Ċ import Ġcom . stripe . android . payments . core . injection . ENABLE _ LOG GING Ċ import Ġcom . stripe . android . payments . core . injection . Injector Key Ċ import Ġcom . stripe . android . payments . core . injection . PRODUCT _ USAGE Ċ import Ġcom . stripe . android . payments . core . injection . PUBL ISH ABLE _ KEY Ċ import Ġcom . stripe . android . stripe 3 ds 2 . transaction . Sdk Transaction Id Ċ import Ġcom . stripe . android . view . Auth Activity Starter Host Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* Ġ[ Payment Authenticator ] Ġauthentic ating Ġthrough ĠStripe 's Ġ 3 ds 2 ĠSDK . Ċ Ġ*/ Ċ @ Singleton Ċ internal Ġclass ĠStripe 3 DS 2 Authenticator Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġconfig : ĠPayment Auth Config , ĊĠĠĠ Ġ@ Named ( ENABLE _ LOG GING ) Ġprivate Ġval Ġenable Logging : ĠBoolean , ĊĠĠĠ Ġ@ Injector Key Ġprivate Ġval Ġinjector Key : ĠString , ĊĠĠĠ Ġ@ Named ( PUBL ISH ABLE _ KEY ) Ġprivate Ġval Ġpublish able Key Provider : Ġ() Ġ-> ĠString , ĊĠĠĠ Ġ@ Named ( PRODUCT _ USAGE ) Ġprivate Ġval Ġproduct Usage : ĠSet < String > Ċ ) Ġ: ĠPayment Authenticator < Stripe Intent > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ[ stripe 3 ds 2 Completion Launcher ] Ġis Ġmutable Ġand Ġmight Ġbe Ġupdated Ġduring ĊĠĠĠĠ Ġ* Ġthrough Ġ[ on New Activity Result Caller ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġinternal Ġvar Ġstripe 3 ds 2 Completion Launcher : ĊĠĠĠĠĠĠĠ ĠActivity Result Launcher < Stripe 3 ds 2 Transaction Contract . Args >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġstripe 3 ds 2 Completion Starter Factory Ġ= ĊĠĠĠĠĠĠĠ Ġ{ Ġhost : ĠAuth Activity Starter Host Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstripe 3 ds 2 Completion Launcher ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStripe 3 ds 2 Transaction Starter . Mod ern ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠStripe 3 ds 2 Transaction Starter . Legacy ( host ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Activity Result Caller ( ĊĠĠĠĠĠĠĠ Ġactivity Result Caller : ĠActivity Result Caller , ĊĠĠĠĠĠĠĠ Ġactivity Result Callback : ĠActivity Result Callback < Payment Flow Result . Un validated > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstripe 3 ds 2 Completion Launcher Ġ= Ġactivity Result Caller . register For Activity Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStripe 3 ds 2 Transaction Contract (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Result Callback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Launcher Invalid ated () Ġ{ ĊĠĠĠĠĠĠĠ Ġstripe 3 ds 2 Completion Launcher ?. unregister () ĊĠĠĠĠĠĠĠ Ġstripe 3 ds 2 Completion Launcher Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġauthenticate ( ĊĠĠĠĠĠĠĠ Ġhost : ĠAuth Activity Starter Host , ĊĠĠĠĠĠĠĠ Ġauthentic atable : ĠStripe Intent , ĊĠĠĠĠĠĠĠ Ġrequest Options : ĠApi Request . Options ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstripe 3 ds 2 Completion Starter Factory ( host ). start ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStripe 3 ds 2 Transaction Contract . Args ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS dk Transaction Id . create (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . stripe 3 ds 2 Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthentic atable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthentic atable . next Action Data Ġas ĠStripe Intent . Next Action Data . Sdk Data . Use 3 DS 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Options , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Logging Ġ= Ġenable Logging , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhost . status Bar Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinjector Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublish able Key Provider (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Usage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ