diff --git a/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/FirebaseDynamicLinks.java b/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/FirebaseDynamicLinks.java
index dfebe0f9217..4c7243b3768 100644
--- a/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/FirebaseDynamicLinks.java
+++ b/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/FirebaseDynamicLinks.java
@@ -18,6 +18,7 @@
import android.content.Intent;
import android.net.Uri;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
@@ -99,7 +100,7 @@ public static synchronized FirebaseDynamicLinks getInstance(@NonNull FirebaseApp
*
If a dynamic link, the call will also send FirebaseAnalytics dynamic link event.
*/
@NonNull
- public abstract Task getDynamicLink(@NonNull Intent intent);
+ public abstract Task getDynamicLink(@Nullable Intent intent);
/**
* Determine if the app has a pending dynamic link and provide access to the dynamic link
diff --git a/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImpl.java b/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImpl.java
index d99c756cc2a..c25f8d0a60a 100644
--- a/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImpl.java
+++ b/firebase-dynamic-links/src/main/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImpl.java
@@ -104,15 +104,20 @@ public PendingDynamicLinkData getPendingDynamicLinkData(@NonNull Intent intent)
}
@Override
- public Task getDynamicLink(@NonNull final Intent intent) {
+ public Task getDynamicLink(@Nullable final Intent intent) {
+ String dynamicLinkDataString = intent != null ? intent.getDataString() : null;
Task result =
- googleApi.doWrite(new GetDynamicLinkImpl(analytics, intent.getDataString()));
- PendingDynamicLinkData pendingDynamicLinkData = getPendingDynamicLinkData(intent);
- if (pendingDynamicLinkData != null) {
- // DynamicLinkData included in the Intent, return it immediately and allow the Task to run in
- // the background to do logging and mark the FDL as returned.
- result = Tasks.forResult(pendingDynamicLinkData);
+ googleApi.doWrite(new GetDynamicLinkImpl(analytics, dynamicLinkDataString));
+
+ if (intent != null) {
+ PendingDynamicLinkData pendingDynamicLinkData = getPendingDynamicLinkData(intent);
+ if (pendingDynamicLinkData != null) {
+ // DynamicLinkData included in the Intent, return it immediately and allow the Task to run
+ // in the background to do logging and mark the FDL as returned.
+ result = Tasks.forResult(pendingDynamicLinkData);
+ }
}
+
return result;
}
diff --git a/firebase-dynamic-links/src/test/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImplTest.java b/firebase-dynamic-links/src/test/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImplTest.java
index dabb358e9a8..e9f613b4854 100644
--- a/firebase-dynamic-links/src/test/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImplTest.java
+++ b/firebase-dynamic-links/src/test/java/com/google/firebase/dynamiclinks/internal/FirebaseDynamicLinksImplTest.java
@@ -159,6 +159,13 @@ public void testGetDynamicLink_Intent() {
.doWrite(ArgumentMatchers.>any());
}
+ @Test
+ public void testGetDynamicLink_NullIntent() {
+ api.getDynamicLink((Intent) null);
+ verify(mockGoogleApi)
+ .doWrite(ArgumentMatchers.>any());
+ }
+
@Test
public void testGetDynamicLink_IntentWithDynamicLinkData() {
Bundle extensions = new Bundle();