Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FDL getDynamicLink(Intent) method to accept null intent. #2629

Merged
merged 1 commit into from
Sep 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -99,7 +100,7 @@ public static synchronized FirebaseDynamicLinks getInstance(@NonNull FirebaseApp
* <p>If a dynamic link, the call will also send FirebaseAnalytics dynamic link event.
*/
@NonNull
public abstract Task<PendingDynamicLinkData> getDynamicLink(@NonNull Intent intent);
public abstract Task<PendingDynamicLinkData> getDynamicLink(@Nullable Intent intent);

/**
* Determine if the app has a pending dynamic link and provide access to the dynamic link
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,20 @@ public PendingDynamicLinkData getPendingDynamicLinkData(@NonNull Intent intent)
}

@Override
public Task<PendingDynamicLinkData> getDynamicLink(@NonNull final Intent intent) {
public Task<PendingDynamicLinkData> getDynamicLink(@Nullable final Intent intent) {
String dynamicLinkDataString = intent != null ? intent.getDataString() : null;
Task<PendingDynamicLinkData> 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;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ public void testGetDynamicLink_Intent() {
.doWrite(ArgumentMatchers.<TaskApiCall<DynamicLinksClient, PendingDynamicLinkData>>any());
}

@Test
public void testGetDynamicLink_NullIntent() {
api.getDynamicLink((Intent) null);
verify(mockGoogleApi)
.doWrite(ArgumentMatchers.<TaskApiCall<DynamicLinksClient, PendingDynamicLinkData>>any());
}

@Test
public void testGetDynamicLink_IntentWithDynamicLinkData() {
Bundle extensions = new Bundle();
Expand Down