mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-20 02:55:38 +08:00
feat: 添加 ApiCacheLoaded 提示,区分热更成功与使用缓存场景
This commit is contained in:
@@ -1364,6 +1364,8 @@ Cache files (such as maps, operator avatars, etc.) need to be regenerated after
|
||||
<!-- !RootViewModel -->
|
||||
<!-- Api -->
|
||||
<system:String x:Key="ApiUpdateSuccess">Hot update data retrieval successful</system:String>
|
||||
<system:String x:Key="ApiUpdateFailed">Hot update data retrieval failed</system:String>
|
||||
<system:String x:Key="ApiCacheLoaded">Using local cached data</system:String>
|
||||
<system:String x:Key="GameResourceUpdating">Game resources are being updated.</system:String>
|
||||
<system:String x:Key="GameResourceUpdatingMirrorChyan">Updating resource {0} from 「{key=MirrorChyan}」...</system:String>
|
||||
<system:String x:Key="GameResourceUpdatePreparing">Indexing in progress</system:String>
|
||||
|
||||
@@ -1365,6 +1365,8 @@ DEBUGディレクトリに保存される画像には数量制限があり、超
|
||||
<!-- !RootViewModel -->
|
||||
<!-- Api -->
|
||||
<system:String x:Key="ApiUpdateSuccess">ホットアップデートデータの取得に成功しました</system:String>
|
||||
<system:String x:Key="ApiUpdateFailed">ホットアップデートデータの取得に失敗しました</system:String>
|
||||
<system:String x:Key="ApiCacheLoaded">ローカルキャッシュデータを使用しています</system:String>
|
||||
<system:String x:Key="GameResourceUpdating">ゲームリソースが更新中です。</system:String>
|
||||
<system:String x:Key="GameResourceUpdatingMirrorChyan">「{key=MirrorChyan}」からリソース {0} を更新しています...</system:String>
|
||||
<system:String x:Key="GameResourceUpdatePreparing">索引の作成中</system:String>
|
||||
|
||||
@@ -1366,6 +1366,8 @@ DEBUG 디렉토리에 저장된 이미지는 수량 제한이 있으며 초과
|
||||
<!-- !RootViewModel -->
|
||||
<!-- Api -->
|
||||
<system:String x:Key="ApiUpdateSuccess">핫 업데이트 데이터를 성공적으로 가져왔습니다</system:String>
|
||||
<system:String x:Key="ApiUpdateFailed">핫 업데이트 데이터를 가져오지 못했습니다</system:String>
|
||||
<system:String x:Key="ApiCacheLoaded">로컬 캐시 데이터를 사용하는 중</system:String>
|
||||
<system:String x:Key="GameResourceUpdating">게임 리소스가 업데이트 중입니다.</system:String>
|
||||
<system:String x:Key="GameResourceUpdatingMirrorChyan">「{key=MirrorChyan}」에서 {0} 리소스를 업데이트하는 중...</system:String>
|
||||
<system:String x:Key="GameResourceUpdatePreparing">색인 작성 중</system:String>
|
||||
|
||||
@@ -1365,6 +1365,8 @@ DEBUG 目录下保存的图片有数量限制,超出后会自动清理旧图
|
||||
<!-- !RootViewModel -->
|
||||
<!-- Api -->
|
||||
<system:String x:Key="ApiUpdateSuccess">热更数据获取成功</system:String>
|
||||
<system:String x:Key="ApiUpdateFailed">热更数据获取失败</system:String>
|
||||
<system:String x:Key="ApiCacheLoaded">使用本地缓存数据</system:String>
|
||||
<system:String x:Key="GameResourceUpdating">游戏资源正在更新。</system:String>
|
||||
<system:String x:Key="GameResourceUpdatingMirrorChyan">正在使用 「{key=MirrorChyan}」 更新资源{0}……</system:String>
|
||||
<system:String x:Key="GameResourceUpdatePreparing">正在编制索引</system:String>
|
||||
|
||||
@@ -1365,6 +1365,8 @@ DEBUG 目錄下儲存的圖片有數量限制,超出後會自動清理舊圖
|
||||
<!-- !RootViewModel -->
|
||||
<!-- Api -->
|
||||
<system:String x:Key="ApiUpdateSuccess">熱更新資料取得成功</system:String>
|
||||
<system:String x:Key="ApiUpdateFailed">熱更新資料取得失敗</system:String>
|
||||
<system:String x:Key="ApiCacheLoaded">使用本機快取資料</system:String>
|
||||
<system:String x:Key="GameResourceUpdating">遊戲資源正在更新。</system:String>
|
||||
<system:String x:Key="GameResourceUpdatingMirrorChyan">正在使用 「{key=MirrorChyan}」 更新資源 {0}……</system:String>
|
||||
<system:String x:Key="GameResourceUpdatePreparing">正在建立索引</system:String>
|
||||
|
||||
@@ -91,19 +91,28 @@ public class StageManager
|
||||
}
|
||||
}
|
||||
|
||||
var loaded = await LoadWebStages();
|
||||
if (!loaded)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var (loaded, cached) = await LoadWebStages();
|
||||
|
||||
_ = Execute.OnUIThreadAsync(() => {
|
||||
var growlInfo = new GrowlInfo {
|
||||
IsCustom = true,
|
||||
Message = LocalizationHelper.GetString("ApiUpdateSuccess"),
|
||||
IconKey = "HangoverGeometry",
|
||||
IconBrushKey = "PallasBrush",
|
||||
};
|
||||
|
||||
if (!loaded)
|
||||
{
|
||||
growlInfo.Message = LocalizationHelper.GetString("ApiUpdateFailed");
|
||||
}
|
||||
else if (cached)
|
||||
{
|
||||
growlInfo.Message = LocalizationHelper.GetString("ApiCacheLoaded");
|
||||
}
|
||||
else
|
||||
{
|
||||
growlInfo.Message = LocalizationHelper.GetString("ApiUpdateSuccess");
|
||||
}
|
||||
|
||||
Growl.Info(growlInfo);
|
||||
});
|
||||
}
|
||||
@@ -149,7 +158,7 @@ public class StageManager
|
||||
}
|
||||
*/
|
||||
|
||||
private async Task<bool> LoadWebStages()
|
||||
private async Task<(bool Success, bool Cached)> LoadWebStages()
|
||||
{
|
||||
var clientType = GetClientType();
|
||||
|
||||
@@ -174,14 +183,17 @@ public class StageManager
|
||||
|
||||
if (activityJson is null || tasksJson is null)
|
||||
{
|
||||
return false;
|
||||
return (false, false);
|
||||
}
|
||||
|
||||
if (clientType != ClientType.Official && globalTasksJson is null)
|
||||
{
|
||||
return false;
|
||||
return (false, false);
|
||||
}
|
||||
|
||||
// 检查是否所有资源都命中缓存
|
||||
bool allCached = activityCached && taskCached && globalTasksCached;
|
||||
|
||||
if (!taskCached || !globalTasksCached)
|
||||
{
|
||||
await Task.Run(() => {
|
||||
@@ -193,7 +205,8 @@ public class StageManager
|
||||
{
|
||||
MergePermanentAndActivityStages(activityJson);
|
||||
}
|
||||
return true;
|
||||
|
||||
return (true, allCached);
|
||||
}
|
||||
|
||||
private void MergePermanentAndActivityStages(JObject? activity)
|
||||
|
||||
Reference in New Issue
Block a user