diff --git a/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/TestingHooks.java b/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/TestingHooks.java index 95eb2f55c53..b888521b6f2 100644 --- a/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/TestingHooks.java +++ b/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/TestingHooks.java @@ -23,6 +23,7 @@ import com.google.auto.value.AutoValue; import com.google.firebase.firestore.ListenerRegistration; import com.google.firebase.firestore.model.DatabaseId; +import com.google.firebase.firestore.remote.WatchChangeAggregator.BloomFilterApplicationStatus; import com.google.firestore.v1.BloomFilter; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicReference; @@ -168,13 +169,13 @@ static ExistenceFilterMismatchInfo from( ExistenceFilter existenceFilter, DatabaseId databaseId, @Nullable com.google.firebase.firestore.remote.BloomFilter bloomFilter, - boolean bloomFilterApplied) { + BloomFilterApplicationStatus bloomFilterStatus) { return create( localCacheCount, existenceFilter.getCount(), databaseId.getProjectId(), databaseId.getDatabaseId(), - ExistenceFilterBloomFilterInfo.from(bloomFilter, bloomFilterApplied, existenceFilter)); + ExistenceFilterBloomFilterInfo.from(bloomFilter, bloomFilterStatus, existenceFilter)); } } @@ -214,7 +215,7 @@ static ExistenceFilterBloomFilterInfo create( @Nullable static ExistenceFilterBloomFilterInfo from( @Nullable com.google.firebase.firestore.remote.BloomFilter bloomFilter, - boolean bloomFilterApplied, + BloomFilterApplicationStatus bloomFilterStatus, ExistenceFilter existenceFilter) { BloomFilter unchangedNames = existenceFilter.getUnchangedNames(); if (unchangedNames == null) { @@ -222,7 +223,7 @@ static ExistenceFilterBloomFilterInfo from( } return create( bloomFilter, - bloomFilterApplied, + /*bloomFilterApplied=*/ bloomFilterStatus == BloomFilterApplicationStatus.SUCCESS, unchangedNames.getHashCount(), unchangedNames.getBits().getBitmap().size(), unchangedNames.getBits().getPadding()); diff --git a/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/WatchChangeAggregator.java b/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/WatchChangeAggregator.java index 32900498b7e..9a549cb8af2 100644 --- a/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/WatchChangeAggregator.java +++ b/firebase-firestore/src/main/java/com/google/firebase/firestore/remote/WatchChangeAggregator.java @@ -85,7 +85,7 @@ public interface TargetMetadataProvider { private static final String LOG_TAG = "WatchChangeAggregator"; /** The bloom filter application status while handling existence filter mismatch. */ - private enum BloomFilterApplicationStatus { + enum BloomFilterApplicationStatus { SUCCESS, SKIPPED, FALSE_POSITIVE @@ -218,9 +218,9 @@ public void handleExistenceFilter(ExistenceFilterWatchChange watchChange) { // Apply bloom filter to identify and mark removed documents. BloomFilter bloomFilter = this.parseBloomFilter(watchChange); BloomFilterApplicationStatus status = - bloomFilter == null - ? BloomFilterApplicationStatus.SKIPPED - : this.applyBloomFilter(bloomFilter, watchChange, currentSize); + bloomFilter != null + ? this.applyBloomFilter(bloomFilter, watchChange, currentSize) + : BloomFilterApplicationStatus.SKIPPED; if (status != BloomFilterApplicationStatus.SUCCESS) { // If bloom filter application fails, we reset the mapping and @@ -242,7 +242,7 @@ public void handleExistenceFilter(ExistenceFilterWatchChange watchChange) { watchChange.getExistenceFilter(), targetMetadataProvider.getDatabaseId(), bloomFilter, - /*bloomFilterApplied=*/ status == BloomFilterApplicationStatus.SUCCESS)); + status)); } } }