@@ -35,6 +35,7 @@ import com.google.android.gms.wearable.Wearable
3535import java.io.ByteArrayOutputStream
3636import java.io.InputStream
3737import java.util.concurrent.ExecutionException
38+ import kotlinx.coroutines.tasks.await
3839
3940class DataLayerActivity : ComponentActivity (), DataClient.OnDataChangedListener {
4041 private val dataClient by lazy { Wearable .getDataClient(this ) }
@@ -170,24 +171,24 @@ class DataLayerActivity2 : ComponentActivity(), DataClient.OnDataChangedListener
170171}
171172
172173// [START android_wear_datalayer_async_call]
173- private fun Context.sendDataAsync (count : Int ) {
174- // Create a data item with the path and data to be sent
175- val putDataReq: PutDataRequest = PutDataMapRequest .create(" /count" ).run {
176- dataMap.putInt(" count_key" , count)
177- asPutDataRequest()
174+ private suspend fun Context.sendDataAsync (count : Int ) {
175+ try {
176+ val putDataReq: PutDataRequest = PutDataMapRequest .create(" /count" ).run {
177+ dataMap.putInt(" count_key" , count)
178+ asPutDataRequest()
179+ }
180+ val dataItem = Wearable .getDataClient(this ).putDataItem(putDataReq).await()
181+ handleDataItem(dataItem)
182+ } catch (e: Exception ) {
183+ handleDataItemError(e)
184+ } finally {
185+ handleTaskComplete()
178186 }
179- // Create a task to send the data to the data layer
180- val task: Task <DataItem > = Wearable .getDataClient(this ).putDataItem(putDataReq)
181-
182- // Using Kotlin function references
183- task.addOnSuccessListener(::handleDataItem)
184- task.addOnFailureListener(::handleDataItemError)
185- task.addOnCompleteListener(::handleTaskComplete)
186187}
187188
188189private fun handleDataItem (dataItem : DataItem ) { }
189190private fun handleDataItemError (exception : Exception ) { }
190- private fun handleTaskComplete (task : Task < DataItem > ) { }
191+ private fun handleTaskComplete () { }
191192// [END android_wear_datalayer_async_call]
192193
193194// [START android_wear_datalayer_sync_call]
0 commit comments