public override void OnTransferUpdate(string Endpoint, TransferStateUpdate update) { long transferredBytes = update.BytesTransferred; long totalBytes = update.TotalBytes; long payloadId = update.DataId; Log.Debug(MainActivity.TAG, "onTransferUpdate, payloadId============" + payloadId); switch (update.Status) { case TransferStatus.TransferStateSuccess: Log.Debug(MainActivity.TAG, "onTransferUpdate.Status============success."); Data payload = null; if (context.IncomingFilePayloads.ContainsKey(payloadId)) { payload = context.IncomingFilePayloads[payloadId]; } if (payload != null) { if (payload.Type == Huawei.Hms.Nearby.Transfer.DataType.File) { Toast.MakeText(context, "Your friend shares a file with you.", ToastLength.Long).Show(); } Log.Debug(MainActivity.TAG, "onTransferUpdate, payload.Type " + payload.Type); if (context.Dialog.PayloadID == payloadId) { context.Dialog.Dismiss(); } context.CompletedFilePayloads.Add(payloadId, payload); context.IncomingFilePayloads.Remove(payloadId); context.FilePayloadFilenames.Remove(payloadId); } break; case TransferStatus.TransferStateInProgress: Log.Debug(MainActivity.TAG, "onTransferUpdate.Status==========transfer in progress."); if (!context.IncomingFilePayloads.ContainsKey((payloadId))) { if (!context.FilePayloadFilenames.ContainsKey(payloadId)) { return; } } int progress = (int)(transferredBytes * 100 / totalBytes); context.UpdateProgress(transferredBytes, progress, totalBytes); string FeedbackUpdate = transferredBytes.ToString() + "_" + progress.ToString() + "_" + totalBytes.ToString() + "_ProgressUpdate"; Data FeedbackUpdatePayload = Data.FromBytes(System.Text.Encoding.UTF8.GetBytes(FeedbackUpdate)); MainActivity.mTransferEngine.SendData(Endpoint, FeedbackUpdatePayload).AddOnSuccessListener(new TaskListener(context, "Feedback sent")).AddOnFailureListener(new TaskListener(context, "Feedback sent")); break; case TransferStatus.TransferStateFailure: Log.Debug(MainActivity.TAG, "onTransferUpdate.Status==========transfer failed."); Log.Debug(MainActivity.TAG, "Cancel Data Transfer"); if (context.Dialog.PayloadID == payloadId) { context.Dialog.Dismiss(); MainActivity.mTransferEngine.CancelDataTransfer(payloadId).AddOnSuccessListener(new TaskListener(context, "Cancel Transfer")).AddOnFailureListener(new TaskListener(context, "Cancel Transfer")); } break; default: Log.Debug(MainActivity.TAG, "onTransferUpdate.Status=======" + update.Status); return; } }
public void onTransferUpdate(string endpointId, TransferStateUpdate update) { Debug.Log("[HMS] NearbyManager onTransferUpdate"); }