Skip to content

Commit e24bc4e

Browse files
author
Cristian Avalos
committed
adds create shortDynamicLink functionality (java)
1 parent bf7cdf3 commit e24bc4e

File tree

1 file changed

+51
-0
lines changed
  • dynamiclinks/app/src/main/java/com/google/firebase/quickstart/deeplinks/java

1 file changed

+51
-0
lines changed

dynamiclinks/app/src/main/java/com/google/firebase/quickstart/deeplinks/java/MainActivity.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import android.os.Bundle;
2222
import androidx.annotation.NonNull;
2323
import androidx.annotation.VisibleForTesting;
24+
import com.google.android.gms.tasks.OnCompleteListener;
25+
import com.google.android.gms.tasks.Task;
2426
import com.google.android.material.snackbar.Snackbar;
2527
import androidx.appcompat.app.AlertDialog;
2628
import androidx.appcompat.app.AppCompatActivity;
@@ -31,8 +33,10 @@
3133
import com.google.android.gms.tasks.OnFailureListener;
3234
import com.google.android.gms.tasks.OnSuccessListener;
3335
import com.google.firebase.dynamiclinks.DynamicLink;
36+
import com.google.firebase.dynamiclinks.DynamicLink.AndroidParameters;
3437
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
3538
import com.google.firebase.dynamiclinks.PendingDynamicLinkData;
39+
import com.google.firebase.dynamiclinks.ShortDynamicLink;
3640
import com.google.firebase.quickstart.deeplinks.R;
3741
import com.google.firebase.quickstart.deeplinks.databinding.ActivityMainBinding;
3842

@@ -59,13 +63,25 @@ protected void onCreate(Bundle savedInstanceState) {
5963
final Uri deepLink = buildDeepLink(Uri.parse(DEEP_LINK_URL), 0);
6064
linkSendTextView.setText(deepLink.toString());
6165

66+
// create a short link and display it in the UI
67+
buildShortLinkFromParams(Uri.parse(DEEP_LINK_URL), 0);
68+
6269
// Share button click listener
6370
binding.buttonShare.setOnClickListener(new View.OnClickListener() {
6471
@Override
6572
public void onClick(View v) {
6673
shareDeepLink(deepLink.toString());
6774
}
6875
});
76+
77+
binding.buttonShareShortLink.setOnClickListener(new View.OnClickListener() {
78+
@Override
79+
public void onClick(View v) {
80+
TextView shortLinkTextView = findViewById(R.id.shortLinkViewSend);
81+
String shortDynamicLink = shortLinkTextView.getText().toString();
82+
shareDeepLink(shortDynamicLink);
83+
}
84+
});
6985
// [END_EXCLUDE]
7086

7187
// [START get_deep_link]
@@ -165,4 +181,39 @@ private void validateAppCode() {
165181
.create().show();
166182
}
167183
}
184+
185+
@VisibleForTesting
186+
public void buildShortLinkFromParams(@NonNull Uri deepLink, int minVersion) {
187+
String uriPrefix = getString(R.string.dynamic_links_uri_prefix);
188+
189+
// Set dynamic link parameters:
190+
// * URI prefix (required)
191+
// * Android Parameters (required)
192+
// * Deep link
193+
FirebaseDynamicLinks.getInstance()
194+
.createDynamicLink()
195+
.setDomainUriPrefix(uriPrefix)
196+
.setAndroidParameters(
197+
new AndroidParameters.Builder()
198+
.setMinimumVersion(minVersion)
199+
.build()
200+
)
201+
.setLink(deepLink)
202+
.buildShortDynamicLink()
203+
.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
204+
@Override
205+
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
206+
if (task.isSuccessful()) {
207+
// Short link created
208+
Uri shortDynamicLink = task.getResult().getShortLink();
209+
TextView shortLinkTextView = findViewById(R.id.shortLinkViewSend);
210+
shortLinkTextView.setText(shortDynamicLink.toString());
211+
} else {
212+
// Error
213+
Log.e(TAG, task.getException().getMessage());
214+
throw new Error(task.getException().getMessage());
215+
}
216+
}
217+
});
218+
}
168219
}

0 commit comments

Comments
 (0)