package Ġorg . tok end . template . features . nf cp ayment . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġio . reactivex . subjects . Single Subject Ċ import Ġorg . tok end . template . R Ċ import Ġorg . tok end . template . extensions . with Arguments Ċ import Ġorg . tok end . template . features . nf cp ayment . logic . Pos Payment Request Loader Ċ import Ġorg . tok end . template . features . nf cp ayment . model . Pos Payment Request Ċ import Ġorg . tok end . template . features . nf cp ayment . model . Raw Pos Payment Request Ċ import Ġorg . tok end . template . fragments . Base Fragment Ċ import Ġorg . tok end . template . util . Observable Transform ers Ċ import Ġjava . io . IOException Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠLoad Pos Payment Request Fragment Ġ: ĠBase Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġresult Subject Ġ= ĠSingle Subject . create < Pos Payment Request >() ĊĠĠĠ Ġval Ġresult Single : ĠSingle < Pos Payment Request > Ġ= Ġresult Subject ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġraw Request : ĠRaw Pos Payment Request ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . activity _ loading _ data , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Init Allowed () Ġ{ ĊĠĠĠĠĠĠĠ Ġraw Request Ġ= Ġarguments ?. get Serializable ( RAW _ REQUEST _ EXTRA ) Ġas ? ĠRaw Pos Payment Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" No Ġ$ RAW _ REQUEST _ EXTRA Ġspecified ") ĊĊĠĠĠĠĠĠĠ Ġload Request () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Request () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloader Ġ= ĠPos Payment Request Loader ( repository Provider ) ĊĊĠĠĠĠĠĠĠ ĠSingle . defer Ġ{ Ġloader . load ( raw Request ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry When Ġ{ Ġerrors Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerrors . filter Ġ{ Ġit Ġis ĠIOException Ġ}. delay ( 2 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose ( Observable Transform ers . default Schedulers Single ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġresult Subject :: on Success , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġresult Subject :: onError ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( composite Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRAW _ REQUEST _ EXTRA Ġ= Ġ" raw _ request " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Bundle ( raw Request : ĠRaw Pos Payment Request ) Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Serializable ( RAW _ REQUEST _ EXTRA , Ġraw Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( bundle : ĠBundle ): ĠLoad Pos Payment Request Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLoad Pos Payment Request Fragment (). with Arguments ( bundle ) ĊĠĠĠ Ġ} Ċ }