procedure TForm1.HandleProgress(Sender: TObject;
const ARequestResult: TTMSFNCCloudBaseRequestResult; AProgress: Single;
AUpload: Boolean);
begin
Assert(ARequestResult.Success, 'ARequestResult.Success is FALSE');
ProgressBar1.value :=Round(AProgress);
end;
Setting a breakpoint inside of HandlProgress() reveals:
HandleProgress() is called at the start of an upload but the AProgress value is already 100.
HandleProgress() is not called during the upload making it impossible to display progress.
HandleProgress() is called at the end of the upload with AProgress = 100.
What am I missing that HandleProgress is not called during the upload with correct values for AProgress?
It does not work on Android 32, iOS iPad, MacOS 64, or MacOS 64 ARM.
Can you please verify that the CloudStorageServiceDemo project correctly calls HandleProgress with correct values for AProgress during uploads on those platforms?
On the other platforms, the OnRequestProgress is triggered with 0 & 100, not with sub-values unfortunately, because we cannot detect progress when uploading. We'll investigate if we can find a workaround solution for this issue.
I'm baffled as to how Dropbox knows to not report upload progress when the upload is done by certain platforms. I'll modify my app to only show upload progress if it is on Windows.
It's not a service issue, it's a framework issue. Building the request happens natively (Windows, macOS, iOS, ...) and the implementation sending requests on Windows can track the upload progress.