Skip to content

Commit 99b05ab

Browse files
authored
Fixed an issue where the progress status displayed as zero when pasting one item (#1983)
1 parent e7bfee3 commit 99b05ab

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

Files/Commands/Paste.cs

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ private static async Task PasteItem(DataPackageView packageView, string destinat
7171
List<IStorageItem> pastedSourceItems = new List<IStorageItem>();
7272
HashSet<IStorageItem> pastedItems = new HashSet<IStorageItem>();
7373
var totalItemsSize = CalculateTotalItemsSize(itemsToPaste);
74+
bool isItemSizeUnreported = totalItemsSize <= 0;
75+
7476
foreach (IStorageItem item in itemsToPaste)
7577
{
7678
if (item.IsOfType(StorageItemTypes.Folder))
@@ -106,9 +108,12 @@ private static async Task PasteItem(DataPackageView packageView, string destinat
106108
}
107109
else
108110
{
109-
var pastedItemSize = await Task.Run(() => CalculateTotalItemsSize(pastedSourceItems));
110-
uint progressValue = (uint)(pastedItemSize * 100 / totalItemsSize);
111-
progress.Report(progressValue);
111+
if (!isItemSizeUnreported)
112+
{
113+
var pastedItemSize = await Task.Run(() => CalculateTotalItemsSize(pastedSourceItems));
114+
uint progressValue = (uint)(pastedItemSize * 100 / totalItemsSize);
115+
progress.Report(progressValue);
116+
}
112117

113118
try
114119
{
@@ -128,9 +133,12 @@ await ItemViewModel.GetFolderFromPathAsync(destinationPath),
128133
}
129134
else if (item.IsOfType(StorageItemTypes.File))
130135
{
131-
var pastedItemSize = await Task.Run(() => CalculateTotalItemsSize(pastedSourceItems));
132-
uint progressValue = (uint)(pastedItemSize * 100 / totalItemsSize);
133-
progress.Report(progressValue);
136+
if (!isItemSizeUnreported)
137+
{
138+
var pastedItemSize = await Task.Run(() => CalculateTotalItemsSize(pastedSourceItems));
139+
uint progressValue = (uint)(pastedItemSize * 100 / totalItemsSize);
140+
progress.Report(progressValue);
141+
}
134142

135143
try
136144
{
@@ -161,10 +169,16 @@ await ItemViewModel.GetFolderFromPathAsync(destinationPath),
161169
}
162170
}
163171
}
164-
165-
var finalPastedItemSize = await Task.Run(() => CalculateTotalItemsSize(pastedSourceItems));
166-
uint finalProgressValue = (uint)(finalPastedItemSize * 100 / totalItemsSize);
167-
progress.Report(finalProgressValue);
172+
if (!isItemSizeUnreported)
173+
{
174+
var finalPastedItemSize = await Task.Run(() => CalculateTotalItemsSize(pastedSourceItems));
175+
uint finalProgressValue = (uint)(finalPastedItemSize * 100 / totalItemsSize);
176+
progress.Report(finalProgressValue);
177+
}
178+
else
179+
{
180+
progress.Report(100);
181+
}
168182

169183
if (acceptedOperation == DataPackageOperation.Move)
170184
{

0 commit comments

Comments
 (0)