/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 ĠVal er iy ĠS ht aits . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġru . surf studio . android . location . location _ errors _ resolver . resolution s . impl . base Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Comp letable Emitter Ċ import Ġru . surf studio . android . core . ui . Screen Type Ċ import Ġru . surf studio . android . core . ui . event . Screen Event Delegate Manager Ċ import Ġru . surf studio . android . core . ui . event . result . Activity Result Delegate Ċ import Ġru . surf studio . android . location . exceptions . Resolution FailedException Ċ import Ġru . surf studio . android . location . exceptions . User Denied Exception Ċ Ċ /** Ċ Ġ* ĠÐŀ Ñģ Ð½Ð¾Ð² Ð° ĠÐ´Ð»Ñı ĠÑĢ ÐµÑĪ ÐµÐ½Ð¸Ñı ĠÐ¿ÑĢ Ð¾Ð± Ð»ÐµÐ¼ ĠÐ¿Ð¾Ð»ÑĥÑĩ ÐµÐ½Ð¸Ñı ĠÐ¼ ÐµÑģÑĤ Ð¾Ð¿ Ð¾Ð» Ð¾Ð¶ ÐµÐ½Ð¸Ñı ĠÑģ ĠÐ¸ÑģÐ¿Ð¾Ð»ÑĮÐ·Ð¾Ð² Ð°Ð½Ð¸ ÐµÐ¼ Ġ[ Activity Result Delegate ]. Ċ Ġ*/ Ċ abstract Ġclass ĠBase Location Error Resolution With Activity Result Delegate Impl < E Ġ: ĠThrowable >( ĊĠĠĠĠĠĠĠ Ġscreen Event Delegate Manager : ĠScreen Event Delegate Manager Ċ ) Ġ: ĠBase Location Error Resolution Impl < E >(), ĠActivity Result Delegate Ġ{ ĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġrequest Code : ĠInt ĊĊĠĠĠ Ġprivate Ġvar Ġresolving Throwable : ĠE ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcomplet able Emitter : ĠComp letable Emitter ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġscreen Event Delegate Manager . register Delegate ( this , ĠScreen Type . ACTIVITY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġperform Resolution Request ( res olving Throwable : ĠE ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . request Code Ġ!= Ġrequest Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġis Resolved Ġ= ĠresultCode Ġ== ĠActivity . RESULT _ OK ĊĠĠĠĠĠĠĠ Ġhandle Resolution Result ( is Resolved ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġperform With Cast ed Throwable ( res olving Throwable : ĠE ): ĠComp letable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp letable . create Ġ{ Ġcomplet able Emitter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Args ( res olving Throwable , Ġcomplet able Emitter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Resolution Request ( res olving Throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomplet able Emitter . onError ( Resolution FailedException ( res olving Throwable , Ġt )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Args () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Resolution Result ( is Resolved : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnon Null Comp letable Emitter Ġ= Ġcomplet able Emitter Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( non Null Comp letable Emitter . is Disposed ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Resolved ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Null Comp letable Emitter . onComplete () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Null Comp letable Emitter . onError ( Resolution FailedException ( res olving Throwable , ĠUser Denied Exception ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġclear Args () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Args ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolving Exception : ĠE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomplet able Emitter : ĠComp letable Emitter ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . res olving Throwable Ġ= Ġresolving Exception ĊĠĠĠĠĠĠĠ Ġthis . comp letable Emitter Ġ= Ġcomplet able Emitter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Args () Ġ{ ĊĠĠĠĠĠĠĠ Ġresolving Throwable Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcomplet able Emitter Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }