@ file : Jvm Name (" R xB illing Client ") Ċ @ file : Jvm Mult if ile Class Ċ Ċ package Ġfr . pr ca en . r xb illing Ċ Ċ import Ġandroid . app . Activity Ċ import Ġcom . android . billing client . api . Billing Client Ċ import Ġcom . android . billing client . api . Billing Client . Billing Response Code Ċ import Ġcom . android . billing client . api . Price Change Flow Params Ċ import Ġfr . pr ca en . r xb illing . exception . Launch Price Change Confirmation Flow Exception Ċ import Ġfr . pr ca en . r xb illing . internal . check MainThread Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Scheduler Ċ import Ġio . reactivex . annotations . Check ReturnValue Ċ import Ġio . reactivex . annotations . NonNull Ċ import Ġio . reactivex . annotations . Scheduler Support Ċ Ċ /** Ċ Ġ* ĠInit iate Ġa Ġflow Ġto Ġconfirm Ġthe Ġchange Ġof Ġprice Ġfor Ġan Ġitem Ġsubscribed Ġby Ġthe Ġuser . Ċ Ġ* Ċ Ġ* ĠWhen Ġthe Ġprice Ġof Ġa Ġuser Ġsubscribed Ġitem Ġhas Ġchanged , Ġlaunch Ġthis Ġflow Ġto Ġtake Ġusers Ġto Ċ Ġ* Ġa Ġscreen Ġwith Ġprice Ġchange Ġinformation . ĠUser Ġcan Ġconfirm Ġthe Ġnew Ġprice Ġor Ġcancel Ġthe Ġflow . Ċ Ġ* Ċ Ġ* ĠNote : Ġ[ launch Price Change Confirmation Flow Async ] Ġdoes Ġnot Ġoperate Ġby Ġdefault Ġon Ġa Ġparticular Ġ[ Scheduler ]. Ċ Ġ* Ċ Ġ* ĠWarning : ĠThis Ġmethod Ġshould Ġbe Ġexecuted Ġon ĠMain Thread , Ġit Ġwill Ġthrow Ġ[ IllegalStateException ] Ġif Ġnot . Ċ Ġ* Ċ Ġ* Ġ@ param Ġactivity ĠAn Ġactivity Ġreference Ġfrom Ġwhich Ġthe Ġbilling Ġflow Ġwill Ġbe Ġlaunched . Ċ Ġ* Ġ@ param Ġparams ĠParams Ġspecific Ġto Ġthe Ġrequest Ġ[ Price Change Flow Params ]. Ċ Ġ* Ċ Ġ* Ġ@ see ĠBilling Client . launch Price Change Confirmation Flow Ċ Ġ* Ċ Ġ* Ġ@ return ĠComp letable . Ċ Ġ*/ Ċ @ Check ReturnValue Ċ @ NonNull Ċ @ Scheduler Support ( Scheduler Support . NONE ) Ċ fun ĠBilling Client . launch Price Change Confirmation Flow Async ( ĊĠ Ġactivity : ĠActivity , ĊĠ Ġparams : ĠPrice Change Flow Params Ċ ): ĠComp letable Ġ= ĊĠ ĠComp letable . create Ġ{ Ġemitter Ġ-> ĊĠĠĠ Ġif Ġ(! emitter . is Disposed ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! emitter . check MainThread ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn @ create ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlaunch Price Change Confirmation Flow ( activity , Ġparams ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠ Ġif Ġ(! emitter . is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result . response Code Ġ== ĠBilling Response Code . OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġemitter . onComplete () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġemitter . try OnError ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLaunch Price Change Confirmation Flow Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Code Ġ= Ġresult . response Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Message Ġ= Ġresult . debug Message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ}