Skip to content

Commit 2a0a2e1

Browse files
authored
add FDL snippets from quickstart-android (#348)
1 parent 6e22859 commit 2a0a2e1

File tree

2 files changed

+110
-2
lines changed

2 files changed

+110
-2
lines changed

dynamic-links/app/src/main/java/com/google/firebase/quickstart/dynamiclinks/MainActivity.java

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@
1818
import android.content.Intent;
1919
import android.net.Uri;
2020
import android.os.Bundle;
21+
import android.util.Log;
22+
2123
import androidx.annotation.NonNull;
2224
import androidx.appcompat.app.AppCompatActivity;
2325

24-
import com.google.android.gms.appinvite.AppInviteReferral;
2526
import com.google.android.gms.tasks.OnCompleteListener;
27+
import com.google.android.gms.tasks.OnFailureListener;
28+
import com.google.android.gms.tasks.OnSuccessListener;
2629
import com.google.android.gms.tasks.Task;
2730
import com.google.firebase.appinvite.FirebaseAppInvite;
2831
import com.google.firebase.dynamiclinks.DynamicLink;
@@ -32,11 +35,45 @@
3235

3336
public class MainActivity extends AppCompatActivity {
3437

38+
private final String TAG = "fdl.MainActivity";
39+
40+
// [START on_create]
3541
@Override
3642
protected void onCreate(Bundle savedInstanceState) {
43+
// [START_EXCLUDE]
3744
super.onCreate(savedInstanceState);
3845
setContentView(R.layout.activity_main);
46+
// [END_EXCLUDE]
47+
48+
// [START get_deep_link]
49+
FirebaseDynamicLinks.getInstance()
50+
.getDynamicLink(getIntent())
51+
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
52+
@Override
53+
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
54+
// Get deep link from result (may be null if no link is found)
55+
Uri deepLink = null;
56+
if (pendingDynamicLinkData != null) {
57+
deepLink = pendingDynamicLinkData.getLink();
58+
}
59+
60+
61+
// Handle the deep link. For example, open the linked
62+
// content, or apply promotional credit to the user's
63+
// account.
64+
// ...
65+
66+
}
67+
})
68+
.addOnFailureListener(this, new OnFailureListener() {
69+
@Override
70+
public void onFailure(@NonNull Exception e) {
71+
Log.w(TAG, "getDynamicLink:onFailure", e);
72+
}
73+
});
74+
// [END get_deep_link]
3975
}
76+
// [END on_create]
4077

4178
public void createDynamicLink_Basic() {
4279
// [START create_link_basic]
@@ -183,4 +220,28 @@ public void onboardingShare(ShortDynamicLink dl) {
183220
// [END ddl_onboarding_share]
184221
}
185222

223+
public Uri buildDeepLink(@NonNull Uri deepLink, int minVersion) {
224+
String uriPrefix = "https://YOUR_APP.page.link";
225+
226+
// Set dynamic link parameters:
227+
// * URI prefix (required)
228+
// * Android Parameters (required)
229+
// * Deep link
230+
// [START build_dynamic_link]
231+
DynamicLink.Builder builder = FirebaseDynamicLinks.getInstance()
232+
.createDynamicLink()
233+
.setDomainUriPrefix(uriPrefix)
234+
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder()
235+
.setMinimumVersion(minVersion)
236+
.build())
237+
.setLink(deepLink);
238+
239+
// Build the dynamic link
240+
DynamicLink link = builder.buildDynamicLink();
241+
// [END build_dynamic_link]
242+
243+
// Return the dynamic link as a URI
244+
return link.getUri();
245+
}
246+
186247
}

dynamic-links/app/src/main/java/com/google/firebase/quickstart/dynamiclinks/kotlin/MainActivity.kt

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package com.google.firebase.quickstart.dynamiclinks.kotlin
33
import android.content.Intent
44
import android.net.Uri
55
import android.os.Bundle
6+
import android.util.Log
67
import androidx.appcompat.app.AppCompatActivity
7-
import com.google.android.gms.appinvite.AppInviteReferral
88
import com.google.firebase.appinvite.FirebaseAppInvite
99
import com.google.firebase.dynamiclinks.ShortDynamicLink
1010
import com.google.firebase.dynamiclinks.ktx.androidParameters
@@ -22,10 +22,35 @@ import com.google.firebase.quickstart.dynamiclinks.R
2222

2323
abstract class MainActivity : AppCompatActivity() {
2424

25+
private val TAG = "fdl.MainActivity"
26+
27+
// [START on_create]
2528
override fun onCreate(savedInstanceState: Bundle?) {
29+
// [START_EXCLUDE]
2630
super.onCreate(savedInstanceState)
2731
setContentView(R.layout.activity_main)
32+
// [END_EXCLUDE]
33+
34+
// [START get_deep_link]
35+
Firebase.dynamicLinks
36+
.getDynamicLink(intent)
37+
.addOnSuccessListener(this) { pendingDynamicLinkData ->
38+
// Get deep link from result (may be null if no link is found)
39+
var deepLink: Uri? = null
40+
if (pendingDynamicLinkData != null) {
41+
deepLink = pendingDynamicLinkData.link
42+
}
43+
44+
// Handle the deep link. For example, open the linked
45+
// content, or apply promotional credit to the user's
46+
// account.
47+
// ...
48+
49+
}
50+
.addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
51+
// [END get_deep_link]
2852
}
53+
// [END on_create]
2954

3055
fun createDynamicLink_Basic() {
3156
// [START create_link_basic]
@@ -162,4 +187,26 @@ abstract class MainActivity : AppCompatActivity() {
162187
startActivity(Intent.createChooser(intent, "Share using"))
163188
// [END ddl_onboarding_share]
164189
}
190+
191+
fun buildDeepLink(deepLink: Uri, minVersion: Int): Uri {
192+
val uriPrefix = "https://YOUR_APP.page.link"
193+
194+
// Set dynamic link parameters:
195+
// * URI prefix (required)
196+
// * Android Parameters (required)
197+
// * Deep link
198+
// [START build_dynamic_link]
199+
// Build the dynamic link
200+
val link = Firebase.dynamicLinks.dynamicLink {
201+
domainUriPrefix = uriPrefix
202+
androidParameters {
203+
minimumVersion = minVersion
204+
}
205+
link = deepLink
206+
}
207+
// [END build_dynamic_link]
208+
209+
// Return the dynamic link as a URI
210+
return link.uri
211+
}
165212
}

0 commit comments

Comments
 (0)