|
17 | 17 | import static com.google.firebase.firestore.util.Assert.hardAssert;
|
18 | 18 |
|
19 | 19 | import android.annotation.SuppressLint;
|
20 |
| -import android.app.Activity; |
21 | 20 | import android.content.Context;
|
22 | 21 | import androidx.annotation.Nullable;
|
23 | 22 | import com.google.android.gms.tasks.Task;
|
|
27 | 26 | import com.google.firebase.firestore.EventListener;
|
28 | 27 | import com.google.firebase.firestore.FirebaseFirestoreException;
|
29 | 28 | import com.google.firebase.firestore.FirebaseFirestoreException.Code;
|
30 |
| -import com.google.firebase.firestore.ListenerRegistration; |
31 | 29 | import com.google.firebase.firestore.LoadBundleTask;
|
32 | 30 | import com.google.firebase.firestore.TransactionOptions;
|
33 | 31 | import com.google.firebase.firestore.auth.CredentialsProvider;
|
@@ -302,16 +300,9 @@ private void initialize(
|
302 | 300 | }
|
303 | 301 | }
|
304 | 302 |
|
305 |
| - public ListenerRegistration addSnapshotsInSyncListener( |
306 |
| - Activity activity, AsyncEventListener<Void> listener) { |
| 303 | + public void addSnapshotsInSyncListener(EventListener<Void> listener) { |
307 | 304 | verifyNotTerminated();
|
308 | 305 | asyncQueue.enqueueAndForget(() -> eventManager.addSnapshotsInSyncListener(listener));
|
309 |
| - return ActivityScope.bind( |
310 |
| - activity, |
311 |
| - () -> { |
312 |
| - listener.mute(); |
313 |
| - asyncQueue.enqueueAndForget(() -> eventManager.removeSnapshotsInSyncListener(listener)); |
314 |
| - }); |
315 | 306 | }
|
316 | 307 |
|
317 | 308 | public void loadBundle(InputStream bundleData, LoadBundleTask resultTask) {
|
@@ -360,6 +351,11 @@ public void deleteAllFieldIndexes() {
|
360 | 351 | asyncQueue.enqueueAndForget(() -> localStore.deleteAllFieldIndexes());
|
361 | 352 | }
|
362 | 353 |
|
| 354 | + public void removeSnapshotsInSyncListener(EventListener<Void> listener) { |
| 355 | + // `enqueueAndForget` will no-op if client is already terminated. |
| 356 | + asyncQueue.enqueueAndForget(() -> eventManager.removeSnapshotsInSyncListener(listener)); |
| 357 | + } |
| 358 | + |
363 | 359 | private void verifyNotTerminated() {
|
364 | 360 | if (this.isTerminated()) {
|
365 | 361 | throw new IllegalStateException("The client has already been terminated");
|
|
0 commit comments