add id for uigf import in-compat

This commit is contained in:
DismissedLight
2023-09-03 23:33:15 +08:00
parent 1c9cbc2082
commit f254f2d437
3 changed files with 10 additions and 5 deletions

View File

@@ -55,6 +55,7 @@
<!-- ProgressBar -->
<x:Double x:Key="LargeBackgroundProgressBarOpacity">0.2</x:Double>
<ThemeShadow x:Key="CompatShadow" />
<!-- Brushes -->
<SolidColorBrush x:Key="AvatarPropertyAddValueBrush" Color="{ThemeResource AvatarPropertyAddValueColor}"/>
<SolidColorBrush x:Key="BlueBrush" Color="#FF5180CB"/>

View File

@@ -48,17 +48,20 @@ internal sealed class UIGF
/// <summary>
/// 列表物品是否正常
/// </summary>
/// <param name="itemId">首个出错的Id</param>
/// <returns>是否正常</returns>
public bool IsMajor2Minor2OrLowerListValid()
public bool IsMajor2Minor2OrLowerListValid([NotNullWhen(false)] out long itemId)
{
foreach (UIGFItem item in List)
{
if (item.ItemType != SH.ModelInterchangeUIGFItemTypeAvatar || item.ItemType != SH.ModelInterchangeUIGFItemTypeWeapon)
{
itemId = item.Id;
return false;
}
}
itemId = 0;
return true;
}
}

View File

@@ -116,13 +116,14 @@ internal sealed partial class GachaLogViewModel : Abstraction.ViewModel
return false;
}
private static bool CanImport(UIGFVersion version, UIGF uigf)
private static bool CanImport(UIGFVersion version, UIGF uigf, out long id)
{
id = 0;
if (version == UIGFVersion.Major2Minor3OrHigher)
{
return true;
}
else if (version == UIGFVersion.Major2Minor2OrLower && uigf.IsMajor2Minor2OrLowerListValid())
else if (version == UIGFVersion.Major2Minor2OrLower && uigf.IsMajor2Minor2OrLowerListValid(out id))
{
return true;
}
@@ -354,7 +355,7 @@ internal sealed partial class GachaLogViewModel : Abstraction.ViewModel
GachaLogImportDialog importDialog = await contentDialogFactory.CreateInstanceAsync<GachaLogImportDialog>(uigf).ConfigureAwait(false);
if (await importDialog.GetShouldImportAsync().ConfigureAwait(false))
{
if (CanImport(version, uigf))
if (CanImport(version, uigf, out long itemId))
{
await taskContext.SwitchToMainThreadAsync();
ContentDialog dialog = await contentDialogFactory.CreateForIndeterminateProgressAsync(SH.ViewModelGachaLogImportProgress).ConfigureAwait(true);
@@ -384,7 +385,7 @@ internal sealed partial class GachaLogViewModel : Abstraction.ViewModel
}
else
{
infoBarService.Warning(SH.ViewModelGachaLogImportWarningTitle, SH.ViewModelGachaLogImportWarningMessage2);
infoBarService.Warning(SH.ViewModelGachaLogImportWarningTitle, SH.ServiceGachaLogUIGFImportItemInvalidFormat.Format(itemId));
}
}
}