@@ -8,16 +8,19 @@ import com.google.android.material.snackbar.Snackbar
88import androidx.appcompat.app.AlertDialog
99import androidx.appcompat.app.AppCompatActivity
1010import android.util.Log
11+ import android.widget.TextView
1112import com.google.firebase.dynamiclinks.PendingDynamicLinkData
1213import com.google.firebase.dynamiclinks.ktx.androidParameters
1314import com.google.firebase.dynamiclinks.ktx.dynamicLink
1415import 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
1519import com.google.firebase.ktx.Firebase
1620import com.google.firebase.quickstart.deeplinks.R
1721import com.google.firebase.quickstart.deeplinks.databinding.ActivityMainBinding
1822
1923class 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