diff --git a/base/applications/network/dwnl/dwnl.c b/base/applications/network/dwnl/dwnl.c index 74826ef8052..3eb3806ce22 100644 --- a/base/applications/network/dwnl/dwnl.c +++ b/base/applications/network/dwnl/dwnl.c @@ -73,7 +73,8 @@ CBindStatusCallback_UpdateProgress(CBindStatusCallback *This) UINT Percentage; Percentage = (UINT)((This->Progress * 100) / This->Size); - if (Percentage > 99) + // If percentage is greater than 99% but sizes don't match, do a failsafe. + if ((Percentage > 99) && (This->Progress != This->Size)) Percentage = 99; LoadStringW(NULL, IDS_BYTES_DOWNLOADED_FULL, szMessage, ARRAYSIZE(szMessage)); @@ -246,6 +247,10 @@ CBindStatusCallback_OnProgress(IBindStatusCallback *iface, break; case BINDSTATUS_ENDDOWNLOADDATA: + /* Since download is completed, update progress one last time to be at 100% */ + This->Progress = This->Size; // Ensure progress == total size + CBindStatusCallback_UpdateProgress(This); // Show 100% progress now + ConResPrintf(StdOut, IDS_FILE_SAVED); break;