Skip to content

Commit 6dda58a

Browse files
author
Cristian Avalos
committed
adds crete shortDynamicLink functionality (kt)
1 parent e24bc4e commit 6dda58a

File tree

1 file changed

+36
-1
lines changed
  • dynamiclinks/app/src/main/java/com/google/firebase/quickstart/deeplinks/kotlin

1 file changed

+36
-1
lines changed

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

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,19 @@ import com.google.android.material.snackbar.Snackbar
88
import androidx.appcompat.app.AlertDialog
99
import androidx.appcompat.app.AppCompatActivity
1010
import android.util.Log
11+
import android.widget.TextView
1112
import com.google.firebase.dynamiclinks.PendingDynamicLinkData
1213
import com.google.firebase.dynamiclinks.ktx.androidParameters
1314
import com.google.firebase.dynamiclinks.ktx.dynamicLink
1415
import com.google.firebase.dynamiclinks.ktx.dynamicLinks
16+
import com.google.firebase.dynamiclinks.ktx.shortLinkAsync
17+
import com.google.firebase.dynamiclinks.ktx.component1
18+
import com.google.firebase.dynamiclinks.ktx.component2
1519
import com.google.firebase.ktx.Firebase
1620
import com.google.firebase.quickstart.deeplinks.R
1721
import com.google.firebase.quickstart.deeplinks.databinding.ActivityMainBinding
1822

1923
class MainActivity : AppCompatActivity() {
20-
2124
// [START on_create]
2225
override fun onCreate(savedInstanceState: Bundle?) {
2326
// [START_EXCLUDE]
@@ -35,10 +38,19 @@ class MainActivity : AppCompatActivity() {
3538
val newDeepLink = buildDeepLink(Uri.parse(DEEP_LINK_URL), 0)
3639
linkSendTextView.text = newDeepLink.toString()
3740

41+
// create a short link and display it in the UI
42+
buildShortLinkFromParams(Uri.parse(DEEP_LINK_URL), 0)
43+
3844
// Share button click listener
3945
binding.buttonShare.setOnClickListener { shareDeepLink(newDeepLink.toString()) }
4046
// [END_EXCLUDE]
4147

48+
binding.buttonShareShortLink.setOnClickListener {
49+
val shortLinkTextView = findViewById<TextView>(R.id.shortLinkViewSend);
50+
val shortDynamicLink = shortLinkTextView.text;
51+
shareDeepLink(shortDynamicLink.toString());
52+
}
53+
4254
// [START get_deep_link]
4355
Firebase.dynamicLinks
4456
.getDynamicLink(intent)
@@ -106,6 +118,29 @@ class MainActivity : AppCompatActivity() {
106118
return link.uri
107119
}
108120

121+
@VisibleForTesting
122+
fun buildShortLinkFromParams(deepLink: Uri, minVersion: Int) {
123+
val uriPrefix = getString(R.string.dynamic_links_uri_prefix)
124+
125+
// Set dynamic link parameters:
126+
// * URI prefix (required)
127+
// * Android Parameters (required)
128+
// * Deep link
129+
Firebase.dynamicLinks.shortLinkAsync {
130+
link = deepLink
131+
domainUriPrefix = uriPrefix
132+
androidParameters {
133+
minimumVersion = minVersion
134+
}
135+
}.addOnSuccessListener { (shortLink, flowchartLink) ->
136+
val shortLinkTextView = findViewById<TextView>(R.id.shortLinkViewSend);
137+
shortLinkTextView.text = shortLink.toString();
138+
}.addOnFailureListener(this) { e ->
139+
Log.e(TAG, e.toString());
140+
throw java.lang.Error(e.toString());
141+
}
142+
}
143+
109144
private fun shareDeepLink(deepLink: String) {
110145
val intent = Intent(Intent.ACTION_SEND)
111146
intent.type = "text/plain"

0 commit comments

Comments
 (0)