Enforce `float` type in the download progress path instead

This commit is contained in:
Salman Ahmed 2021-01-17 21:16:45 +03:00
parent 172552d551
commit d93a853dfd
6 changed files with 17 additions and 17 deletions

View File

@ -77,10 +77,10 @@ public void TestBeatmapDownloadingFlow()
addAvailabilityCheckStep("state not downloaded", BeatmapAvailability.NotDownloaded);
AddStep("start downloading", () => beatmaps.Download(testBeatmapSet));
addAvailabilityCheckStep("state downloading 0%", () => BeatmapAvailability.Downloading(0.0));
addAvailabilityCheckStep("state downloading 0%", () => BeatmapAvailability.Downloading(0.0f));
AddStep("set progress 40%", () => ((TestDownloadRequest)beatmaps.GetExistingDownload(testBeatmapSet)).SetProgress(0.4));
addAvailabilityCheckStep("state downloading 40%", () => BeatmapAvailability.Downloading(0.4));
AddStep("set progress 40%", () => ((TestDownloadRequest)beatmaps.GetExistingDownload(testBeatmapSet)).SetProgress(0.4f));
addAvailabilityCheckStep("state downloading 40%", () => BeatmapAvailability.Downloading(0.4f));
AddStep("finish download", () => ((TestDownloadRequest)beatmaps.GetExistingDownload(testBeatmapSet)).TriggerSuccess(testBeatmapFile));
addAvailabilityCheckStep("state importing", BeatmapAvailability.Importing);
@ -165,7 +165,7 @@ public override async Task<BeatmapSetInfo> Import(BeatmapSetInfo item, ArchiveRe
private class TestDownloadRequest : ArchiveDownloadRequest<BeatmapSetInfo>
{
public new void SetProgress(double progress) => base.SetProgress(progress);
public new void SetProgress(float progress) => base.SetProgress(progress);
public TestDownloadRequest(BeatmapSetInfo model)
: base(model)

View File

@ -12,16 +12,16 @@ public abstract class ArchiveDownloadRequest<TModel> : APIDownloadRequest
public double Progress { get; private set; }
public event Action<double> DownloadProgressed;
public event Action<float> DownloadProgressed;
protected ArchiveDownloadRequest(TModel model)
{
Model = model;
Progressed += (current, total) => SetProgress((double)current / total);
Progressed += (current, total) => SetProgress((float)current / total);
}
protected void SetProgress(double progress)
protected void SetProgress(float progress)
{
Progress = progress;
DownloadProgressed?.Invoke(progress);

View File

@ -144,7 +144,7 @@ private void attachDownload(ArchiveDownloadRequest<TModel> request)
private void onRequestSuccess(string _) => Schedule(() => State.Value = DownloadState.Importing);
private void onRequestProgress(double progress) => Schedule(() => Progress.Value = progress);
private void onRequestProgress(float progress) => Schedule(() => Progress.Value = progress);
private void onRequestFailure(Exception e) => Schedule(() => attachDownload(null));

View File

@ -19,17 +19,17 @@ public class BeatmapAvailability : IEquatable<BeatmapAvailability>
/// <summary>
/// The beatmap's downloading progress, null when not in <see cref="DownloadState.Downloading"/> state.
/// </summary>
public readonly double? DownloadProgress;
public readonly float? DownloadProgress;
[JsonConstructor]
private BeatmapAvailability(DownloadState state, double? downloadProgress = null)
private BeatmapAvailability(DownloadState state, float? downloadProgress = null)
{
State = state;
DownloadProgress = downloadProgress;
}
public static BeatmapAvailability NotDownloaded() => new BeatmapAvailability(DownloadState.NotDownloaded);
public static BeatmapAvailability Downloading(double progress) => new BeatmapAvailability(DownloadState.Downloading, progress);
public static BeatmapAvailability Downloading(float progress) => new BeatmapAvailability(DownloadState.Downloading, progress);
public static BeatmapAvailability Importing() => new BeatmapAvailability(DownloadState.Importing);
public static BeatmapAvailability LocallyAvailable() => new BeatmapAvailability(DownloadState.LocallyAvailable);

View File

@ -70,7 +70,7 @@ private void updateAvailability()
break;
case DownloadState.Downloading:
availability.Value = BeatmapAvailability.Downloading(Progress.Value);
availability.Value = BeatmapAvailability.Downloading((float)Progress.Value);
break;
case DownloadState.Importing:

View File

@ -23,9 +23,9 @@ public string Text
public string CompletionText { get; set; } = "Task has completed!";
private double progress;
private float progress;
public double Progress
public float Progress
{
get => progress;
set
@ -185,9 +185,9 @@ private class ProgressBar : Container
private Color4 colourActive;
private Color4 colourInactive;
private double progress;
private float progress;
public double Progress
public float Progress
{
get => progress;
set
@ -195,7 +195,7 @@ public double Progress
if (progress == value) return;
progress = value;
box.ResizeTo(new Vector2((float)progress, 1), 100, Easing.OutQuad);
box.ResizeTo(new Vector2(progress, 1), 100, Easing.OutQuad);
}
}