package com.novoda.bonfire.link;
import android.net.Uri;
import com.novoda.bonfire.user.data.model.User;
import java.net.URI;
public class FirebaseDynamicLinkFactory implements LinkFactory {
public static final String SENDER = "sender";
private final String dynamicLinkDomain;
private final String deepLinkBaseUrl;
private final String iosBundleIdentifier;
private final String androidPackageName;
public FirebaseDynamicLinkFactory(String dynamicLinkDomain, String deepLinkBaseUrl, String iosBundleIdentifier, String androidPackageName) {
this.dynamicLinkDomain = dynamicLinkDomain;
this.deepLinkBaseUrl = deepLinkBaseUrl;
this.iosBundleIdentifier = iosBundleIdentifier;
this.androidPackageName = androidPackageName;
}
@Override
public URI inviteLinkFrom(User user) {
Uri uri = Uri.parse(dynamicLinkDomain)
.buildUpon()
.appendQueryParameter("link", welcomeDeepLinkFromUser(user).toString())
.appendQueryParameter("ibi", iosBundleIdentifier)
.appendQueryParameter("apn", androidPackageName)
.build();
return URI.create(uri.toString());
}
private Uri welcomeDeepLinkFromUser(User user) {
return Uri.parse(deepLinkBaseUrl)
.buildUpon()
.appendPath("welcome")
.appendQueryParameter(SENDER, user.getId())
.build();
}
}