Skip to content

Commit

Permalink
fix(authentication): NullPointerException on Android (#305)
Browse files Browse the repository at this point in the history
  • Loading branch information
robingenz authored Jan 19, 2023
1 parent 44f6e0b commit 2d51ffc
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 12 deletions.
5 changes: 5 additions & 0 deletions .changeset/dull-peaches-serve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@capacitor-firebase/authentication": patch
---

fix(android): `NullPointerException` on Google Sign-In
Original file line number Diff line number Diff line change
Expand Up @@ -565,23 +565,23 @@ public void startActivityForResult(final PluginCall call, Intent intent, String
plugin.startActivityForResult(call, intent, callbackName);
}

public void handleGoogleAuthProviderSignInActivityResult(final PluginCall call, ActivityResult result) {
public void handleGoogleAuthProviderSignInActivityResult(@NonNull final PluginCall call, @NonNull ActivityResult result) {
googleAuthProviderHandler.handleOnActivityResult(call, result, false);
}

public void handleGoogleAuthProviderLinkActivityResult(final PluginCall call, ActivityResult result) {
public void handleGoogleAuthProviderLinkActivityResult(@NonNull final PluginCall call, @NonNull ActivityResult result) {
googleAuthProviderHandler.handleOnActivityResult(call, result, true);
}

public void handlePlayGamesAuthProviderSignInActivityResult(final PluginCall call, ActivityResult result) {
public void handlePlayGamesAuthProviderSignInActivityResult(@NonNull final PluginCall call, @NonNull ActivityResult result) {
playGamesAuthProviderHandler.handleOnActivityResult(call, result, false);
}

public void handlePlayGamesAuthProviderLinkActivityResult(final PluginCall call, ActivityResult result) {
public void handlePlayGamesAuthProviderLinkActivityResult(@NonNull final PluginCall call, @NonNull ActivityResult result) {
playGamesAuthProviderHandler.handleOnActivityResult(call, result, true);
}

public void handleOnActivityResult(int requestCode, int resultCode, Intent data) {
public void handleOnActivityResult(int requestCode, int resultCode, @NonNull Intent data) {
if (requestCode == FacebookAuthProviderHandler.RC_FACEBOOK_AUTH && facebookAuthProviderHandler != null) {
facebookAuthProviderHandler.handleOnActivityResult(requestCode, resultCode, data);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package io.capawesome.capacitorjs.plugins.firebase.authentication;

import android.content.Intent;
import android.util.Log;
import androidx.activity.result.ActivityResult;
import androidx.annotation.Nullable;
import com.getcapacitor.JSObject;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
Expand Down Expand Up @@ -665,8 +667,11 @@ public void startActivityForResult(PluginCall call, Intent intent, String callba
}

@Override
protected void handleOnActivityResult(int requestCode, int resultCode, Intent data) {
protected void handleOnActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.handleOnActivityResult(requestCode, resultCode, data);
if (data == null) {
return;
}
implementation.handleOnActivityResult(requestCode, resultCode, data);
}

Expand All @@ -679,22 +684,34 @@ private void updateAuthState() {
}

@ActivityCallback
private void handleGoogleAuthProviderSignInActivityResult(PluginCall call, ActivityResult result) {
private void handleGoogleAuthProviderSignInActivityResult(@Nullable PluginCall call, @Nullable ActivityResult result) {
if (call == null || result == null) {
return;
}
implementation.handleGoogleAuthProviderSignInActivityResult(call, result);
}

@ActivityCallback
private void handleGoogleAuthProviderLinkActivityResult(PluginCall call, ActivityResult result) {
private void handleGoogleAuthProviderLinkActivityResult(@Nullable PluginCall call, @Nullable ActivityResult result) {
if (call == null || result == null) {
return;
}
implementation.handleGoogleAuthProviderLinkActivityResult(call, result);
}

@ActivityCallback
private void handlePlayGamesAuthProviderSignInActivityResult(PluginCall call, ActivityResult result) {
private void handlePlayGamesAuthProviderSignInActivityResult(@Nullable PluginCall call, @Nullable ActivityResult result) {
if (call == null || result == null) {
return;
}
implementation.handlePlayGamesAuthProviderSignInActivityResult(call, result);
}

@ActivityCallback
private void handlePlayGamesAuthProviderLinkActivityResult(PluginCall call, ActivityResult result) {
private void handlePlayGamesAuthProviderLinkActivityResult(@Nullable PluginCall call, @Nullable ActivityResult result) {
if (call == null || result == null) {
return;
}
implementation.handlePlayGamesAuthProviderLinkActivityResult(call, result);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.Intent;
import android.util.Log;
import androidx.activity.result.ActivityResult;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.getcapacitor.JSArray;
import com.getcapacitor.PluginCall;
Expand Down Expand Up @@ -50,7 +51,7 @@ public void signOut() {
mGoogleSignInClient.signOut();
}

public void handleOnActivityResult(final PluginCall call, ActivityResult result, boolean isLink) {
public void handleOnActivityResult(@NonNull final PluginCall call, @NonNull ActivityResult result, boolean isLink) {
Intent data = result.getData();
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.Intent;
import android.util.Log;
import androidx.activity.result.ActivityResult;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.getcapacitor.JSArray;
import com.getcapacitor.PluginCall;
Expand Down Expand Up @@ -47,7 +48,7 @@ public void signOut() {
mGoogleSignInClient.signOut();
}

public void handleOnActivityResult(final PluginCall call, ActivityResult result, boolean isLink) {
public void handleOnActivityResult(@NonNull final PluginCall call, @NonNull ActivityResult result, boolean isLink) {
Intent data = result.getData();
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
Expand Down

0 comments on commit 2d51ffc

Please sign in to comment.