// ĠCopyright Ġ 2 0 2 1 ĠGoogle ĠLLC Ċ // Ċ // Ġ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 Ġcom . google . maps . android . rx Ċ Ċ import Ġcom . google . android . gms . maps . Google Map Ċ import Ġcom . google . maps . android . rx . shared . MainThread Observable Ċ import Ġio . reactivex . rx java 3 . android . MainThread Disposable Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . core . Observer Ċ Ċ /** Ċ Ġ* ĠCreates Ġan Ġ[ Observable ] Ġthat Ġemits Ġwhenever Ġa Ġcamera Ġmove Ġstarted Ġon Ġthis Ġ[ Google Map ] Ġinstance . Ċ Ġ* Ċ Ġ* ĠThe Ġcreated Ġ[ Observable ] Ġuses Ġ[ Google Map . setOn Camera Move Started Listener ] Ġto Ġlisten Ġto Ġcamera Ċ Ġ* Ġmove Ġstarted Ġevents . ĠSince Ġonly Ġone Ġlistener Ġat Ġa Ġtime Ġis Ġallowed , Ġonly Ġone ĠObservable Ġat Ġa Ġtime Ċ Ġ* Ġcan Ġbe Ġused . Ċ Ġ*/ Ċ public Ġfun ĠGoogle Map . camera Move Started Events (): ĠObservable < Int > Ġ= ĊĠĠĠ ĠGoogle Map Camera Move Started Observable ( this ) Ċ Ċ private Ġclass ĠGoogle Map Camera Move Started Observable ( ĊĠĠĠ Ġprivate Ġval Ġgoogle Map : ĠGoogle Map Ċ ) Ġ: ĠMain Thread Observable < Int >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsubscribe MainThread ( observer : ĠObserver < in ĠInt >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠCamera Move Started Listener ( google Map , Ġobserver ) ĊĠĠĠĠĠĠĠ Ġobserver . on Subscribe ( listener ) ĊĠĠĠĠĠĠĠ Ġgoogle Map . setOn Camera Move Started Listener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠCamera Move Started Listener ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgoogle Map : ĠGoogle Map , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġobserver : ĠObserver < in ĠInt > ĊĠĠĠ Ġ) Ġ: ĠMain Thread Disposable (), ĠGoogle Map . On Camera Move Started Listener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dispose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map . setOn Camera Move Started Listener ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Camera Move Started ( reason : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserver . onNext ( reason ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ