Skip to content

Commit 6b0c1a6

Browse files
SUPERCILEXsamtstern
authored andcommitted
Fix crash because onConnected is called multiple times (#576)
1 parent 68f0f64 commit 6b0c1a6

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

auth/src/main/java/com/firebase/ui/auth/util/GoogleApiHelper.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ public Task<Bundle> getConnectedApiTask() {
4646

4747
@Override
4848
public void onConnected(@Nullable Bundle bundle) {
49-
mGoogleApiConnectionTask.setResult(bundle);
49+
// onConnected might be called multiple times, but we don't want to unregister listeners
50+
// because extenders might be relying on each onConnected call. Instead, we just ignore future
51+
// calls to onConnected or onConnectionFailed by using a `trySomething` strategy.
52+
mGoogleApiConnectionTask.trySetResult(bundle);
5053
}
5154

5255
@Override
@@ -56,7 +59,7 @@ public void onConnectionSuspended(int i) {
5659

5760
@Override
5861
public void onConnectionFailed(@NonNull ConnectionResult result) {
59-
mGoogleApiConnectionTask.setException(new ConnectException(result.toString()));
62+
mGoogleApiConnectionTask.trySetException(new ConnectException(result.toString()));
6063
}
6164

6265
protected static final class TaskResultCaptor<R extends Result> implements ResultCallback<R> {

0 commit comments

Comments
 (0)