package Ġcom . stripe . android . payments heet . flow controller Ċ Ċ import Ġandroidx . activity . Component Activity Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . stripe . android . Payment Configuration Ċ import Ġcom . stripe . android . Stripe Payment Controller Ċ import Ġcom . stripe . android . networking . Stripe Api Repository Ċ import Ġcom . stripe . android . payments . Default Payment Flow Result Processor Ċ import Ġcom . stripe . android . payments heet . Default Google Pay Repository Ċ import Ġcom . stripe . android . payments heet . Default Prefs Repository Ċ import Ġcom . stripe . android . payments heet . Google Pay Repository Ċ import Ġcom . stripe . android . payments heet . Payment Option Callback Ċ import Ġcom . stripe . android . payments heet . Payment Sheet Ċ import Ġcom . stripe . android . payments heet . Payment Sheet Result Callback Ċ import Ġcom . stripe . android . payments heet . analytics . Default Event Reporter Ċ import Ġcom . stripe . android . payments heet . analytics . Event Reporter Ċ import Ġcom . stripe . android . payments heet . analytics . SessionId Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . first Ċ Ċ internal Ġclass ĠFlow Controller Factory ( ĊĠĠĠ Ġprivate Ġval Ġactivity : ĠComponent Activity , ĊĠĠĠ Ġprivate Ġval Ġconfig : ĠPayment Configuration , ĊĠĠĠ Ġprivate Ġval Ġpayment Option Callback : ĠPayment Option Callback , ĊĠĠĠ Ġprivate Ġval Ġpayment Result Callback : ĠPayment Sheet Result Callback Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġcreate (): ĠPayment Sheet . Flow Controller Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsessionId Ġ= ĠSession Id () ĊĊĠĠĠĠĠĠĠ Ġval Ġstripe Repository Ġ= ĠStripe Api Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . publish able Key ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpayment Controller Factory Ġ= ĠPayment Controller Factory Ġ{ Ġpayment Relay Launcher , Ġpayment Auth WebView Launcher , Ġstripe 3 ds 2 Challenge Launcher Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStripe Payment Controller ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . publish able Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Logging Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Relay Launcher Ġ= Ġpayment Relay Launcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Auth WebView Launcher Ġ= Ġpayment Auth WebView Launcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstripe 3 ds 2 Challenge Launcher Ġ= Ġstripe 3 ds 2 Challenge Launcher ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpayment Flow Result Processor Ġ= ĠDefault Payment Flow Result Processor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . publish able Key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Logging Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDispatch ers . IO ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġis Google Pay Ready Supplier : Ġsuspend Ġ( Payment Sheet . Google Pay Configuration . Environment ?) Ġ-> ĠBoolean Ġ= Ġ{ Ġenvironment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoogle Pay Repository Ġ= Ġenvironment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Google Pay Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠGoogle Pay Repository . Disabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Pay Repository . is Ready (). first () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġprefs Repository Factory Ġ= Ġ{ Ġcustomer Id : ĠString , Ġis Google Pay Ready : ĠBoolean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Prefs Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustomer Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġis Google Pay Ready Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDispatch ers . IO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDefault Flow Controller ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġ= Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflow Controller Initializer Ġ= ĠDefault Flow Controller Initializer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstripe Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs Repository Factory Ġ= Ġprefs Repository Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Google Pay Ready Supplier Ġ= Ġis Google Pay Ready Supplier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublish able Key Ġ= Ġconfig . publish able Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstripe AccountId Ġ= Ġconfig . stripe AccountId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwork Context Ġ= ĠDispatch ers . IO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Controller Factory Ġ= Ġpayment Controller Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Flow Result Processor Ġ= Ġpayment Flow Result Processor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Reporter Ġ= ĠDefault Event Reporter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠEvent Reporter . Mode . Custom , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsessionId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublish able Key Ġ= Ġconfig . publish able Key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstripe AccountId Ġ= Ġconfig . stripe AccountId , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsessionId Ġ= ĠsessionId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Scope Ġ= Ġactivity . lifecycle Scope , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Option Callback Ġ= Ġpayment Option Callback , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Result Callback Ġ= Ġpayment Result Callback ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ