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 --> <!-- ProgressBar -->
<x:Double x:Key="LargeBackgroundProgressBarOpacity">0.2</x:Double> <x:Double x:Key="LargeBackgroundProgressBarOpacity">0.2</x:Double>
<ThemeShadow x:Key="CompatShadow" />
<!-- Brushes --> <!-- Brushes -->
<SolidColorBrush x:Key="AvatarPropertyAddValueBrush" Color="{ThemeResource AvatarPropertyAddValueColor}"/> <SolidColorBrush x:Key="AvatarPropertyAddValueBrush" Color="{ThemeResource AvatarPropertyAddValueColor}"/>
<SolidColorBrush x:Key="BlueBrush" Color="#FF5180CB"/> <SolidColorBrush x:Key="BlueBrush" Color="#FF5180CB"/>

View File

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

View File

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