From 85df7e39dcc88aa46badb5673933f876bca5db1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E8=99=9E=E6=B8=A0=E6=88=90=E2=80=9D?= <“yuqucheng2006@qq.com”> Date: Fri, 3 Jul 2026 14:41:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor(home&deviceinfo):=20=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=9E=E6=8E=A5=E7=8A=B6=E6=80=81=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E4=B8=8E=E6=81=A2=E5=A4=8D=E5=87=BA=E5=8E=82=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增将WiFi和蓝牙状态存入DataManager全局管理 2. 更新多语言文案,优化反馈提示文本 3. 修复校验密码页面清空错误提示逻辑 4. 重构设备恢复出厂设置流程,适配WiFi和蓝牙两种连接模式 5. 调整设备信息页面UI布局与绑定控件 --- Assets/Res/language/language.json | 9 +- .../ui/deviceinfopage/deviceInfoPage.prefab | 14 +-- Assets/Res/ui/homepage/homePage.prefab | 92 ++++++++++++++++++- .../UI/Pages/DeviceInfoPage/DeviceInfoPage.cs | 52 +++++++---- .../UI/Pages/HomePage/CheckPasswordPage.cs | 6 ++ .../Scripts/UI/Pages/HomePage/HomePageCtrl.cs | 4 +- 6 files changed, 148 insertions(+), 29 deletions(-) diff --git a/Assets/Res/language/language.json b/Assets/Res/language/language.json index fade446..22777fb 100644 --- a/Assets/Res/language/language.json +++ b/Assets/Res/language/language.json @@ -1461,8 +1461,8 @@ }, { "key": "100293", - "zh": "WiFi模式下暂不支持指纹设置,请通过蓝牙连接操作", - "en": "Fingerprint settings are not supported in WiFi mode. Please connect via Bluetooth." + "zh": "WiFi模式下暂不支持该操作,请连接蓝牙", + "en": "WiFi mode does not support this operation. Please connect to Bluetooth." }, { "key": "100294", @@ -1503,6 +1503,11 @@ "key": "100301", "zh": "反馈内容不能为空", "en": "Feedback content cannot be empty" + }, + { + "key": "100302", + "zh": "恢复出厂设置失败,请稍后重试", + "en": "Reset failed, please try again later" } diff --git a/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab b/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab index 96a650a..a49dbc1 100644 --- a/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab +++ b/Assets/Res/ui/deviceinfopage/deviceInfoPage.prefab @@ -2264,7 +2264,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 295, y: -55} - m_SizeDelta: {x: 590, y: 42} + m_SizeDelta: {x: 590, y: 50} m_Pivot: {x: 0.5, y: 1} --- !u!222 &2575572773791473978 CanvasRenderer: @@ -2921,7 +2921,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 5305376504236266477} + - m_Target: {fileID: 1829438812490820177} m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine m_MethodName: SetActive m_Mode: 6 @@ -7070,7 +7070,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8061347571894376768} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -7082,7 +7082,7 @@ RectTransform: - {fileID: 2859089164995719961} - {fileID: 537902066735883185} - {fileID: 1020774894406731393} - - {fileID: 5305376504236266478} + - {fileID: 2162368835647687423} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -8873,7 +8873,7 @@ PrefabInstance: type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: - objectReference: {fileID: 5305376504236266477} + objectReference: {fileID: 1829438812490820177} - target: {fileID: 7786001869424608972, guid: 52c284b3dc8d7b94297736ede9ad1f7e, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState @@ -8909,13 +8909,13 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 52c284b3dc8d7b94297736ede9ad1f7e, type: 3} ---- !u!1 &5305376504236266477 stripped +--- !u!1 &1829438812490820177 stripped GameObject: m_CorrespondingSourceObject: {fileID: 5819498693055166909, guid: 52c284b3dc8d7b94297736ede9ad1f7e, type: 3} m_PrefabInstance: {fileID: 5305376504236266476} m_PrefabAsset: {fileID: 0} ---- !u!224 &5305376504236266478 stripped +--- !u!224 &2162368835647687423 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 6314676893636565267, guid: 52c284b3dc8d7b94297736ede9ad1f7e, type: 3} diff --git a/Assets/Res/ui/homepage/homePage.prefab b/Assets/Res/ui/homepage/homePage.prefab index 9175812..680432e 100644 --- a/Assets/Res/ui/homepage/homePage.prefab +++ b/Assets/Res/ui/homepage/homePage.prefab @@ -87,6 +87,7 @@ GameObject: - component: {fileID: 3667549666672144347} - component: {fileID: 1920078014523356616} - component: {fileID: 6975337548619890174} + - component: {fileID: 1960403026344819574} m_Layer: 5 m_Name: "\u5F53\u524D\u8BBE\u5907" m_TagString: Untagged @@ -205,6 +206,36 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!114 &1960403026344819574 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 106281364441604106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &106570155792501790 GameObject: m_ObjectHideFlags: 0 @@ -11212,6 +11243,7 @@ GameObject: - component: {fileID: 6353094632954149818} - component: {fileID: 737337850497317553} - component: {fileID: 6863394478891871580} + - component: {fileID: 2879602480493971984} m_Layer: 5 m_Name: "\u89E3\u9501\u9875" m_TagString: Untagged @@ -11294,6 +11326,62 @@ MonoBehaviour: passwordInput: {fileID: 8983408738872222442} errorText: {fileID: 4491243043907793146} plane: {fileID: 2474256133367177989} +--- !u!114 &2879602480493971984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5883796059177318917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 737337850497317553} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5883796059177318917} + m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine + m_MethodName: SetActive + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &5909758653104010581 GameObject: m_ObjectHideFlags: 0 @@ -16437,8 +16525,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0} m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: -15, y: -3.0199966} - m_SizeDelta: {x: 626.2999, y: 32} + m_AnchoredPosition: {x: -30, y: 3} + m_SizeDelta: {x: 625, y: 40} m_Pivot: {x: 0.5, y: 1} --- !u!222 &887070909065390951 CanvasRenderer: diff --git a/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs b/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs index 40a1c67..2032140 100644 --- a/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs +++ b/Assets/Scripts/UI/Pages/DeviceInfoPage/DeviceInfoPage.cs @@ -345,7 +345,7 @@ namespace Kill.UI.Pages restoreSettingsTips[2].gameObject.SetActive(true); restoreSettingsTips[0].gameObject.SetActive(false); restoreSettingsTips[1].gameObject.SetActive(false); - restoreSettingsTips[2].GetComponent().Init(ResetDeviceAsync, null); + restoreSettingsTips[2].GetComponent().Init(ResetDeviceBluetooth, null); } /// /// 验证密码 @@ -401,11 +401,11 @@ namespace Kill.UI.Pages Debug.Log(data.code); if (data.code == 200) { - ResetDeviceBluetooth(); + StartCoroutine(BackToHomePage()); } else { - ToastUI.Show("100036"); + ToastUI.Show("100302"); } LoadingUI.Hide(); @@ -423,26 +423,44 @@ namespace Kill.UI.Pages ToastUI.Show("100036"); } } - private void ResetDeviceBluetooth() + private async void ResetDeviceBluetooth() { LoadingUI.Show(); - BLECommunicationManager.Instance.FactoryReset((success) => + if (DataManager.Instance.hasWifi && !DataManager.Instance.hasBluetooth) { - Loom.QueueOnMainThread(() => + bool success = await HomePageCtrl.Instance.SendBleCommandByWifiAsync(BLEConstants.CMD_FACTORY_RESET, new byte[] { 0x01 }); + if (success) { - if (success) + LoadingUI.Hide(); + ResetDeviceAsync(); + } + else + { + LoadingUI.Hide(); + ToastUI.Show("100302"); + } + return; + } + else if (DataManager.Instance.hasBluetooth) + { + BLECommunicationManager.Instance.FactoryReset((success) => + { + Loom.QueueOnMainThread(() => { - BluetoothManager.Instance.ChangeAimMac(""); - BluetoothManager.Instance.Disconnect(); - StartCoroutine(BackToHomePage()); - } - else - { - LoadingUI.Hide(); - ToastUI.Show("100068"); - } + if (success) + { + BluetoothManager.Instance.ChangeAimMac(""); + BluetoothManager.Instance.Disconnect(); + ResetDeviceAsync(); + } + else + { + LoadingUI.Hide(); + ToastUI.Show("100302"); + } + }); }); - }); + } } public void OpenShareDevicePage() { diff --git a/Assets/Scripts/UI/Pages/HomePage/CheckPasswordPage.cs b/Assets/Scripts/UI/Pages/HomePage/CheckPasswordPage.cs index 398af07..e805d94 100644 --- a/Assets/Scripts/UI/Pages/HomePage/CheckPasswordPage.cs +++ b/Assets/Scripts/UI/Pages/HomePage/CheckPasswordPage.cs @@ -16,13 +16,19 @@ namespace Kill.UI.Pages public InputField passwordInput; public Text errorText; public GameObject plane; + public void OnEnable() + { + errorText.text=""; + } public async void OnConfirm() { + errorText.text=""; LoadingUI.Show(); string password = passwordInput != null ? passwordInput.text : ""; if (string.IsNullOrEmpty(password)) { errorText.text = LanguageManager.Instance.GetLanguage("100040"); + LoadingUI.Hide(); return; } PasswordRequest requestData=new PasswordRequest diff --git a/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs b/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs index a695bbc..70b2b16 100644 --- a/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs +++ b/Assets/Scripts/UI/Pages/HomePage/HomePageCtrl.cs @@ -847,8 +847,10 @@ namespace Kill.UI.Pages } } hasWifi=await GetDeviceOnlineStatus(); + DataManager.Instance.hasWifi=hasWifi; + hasBluetooth = BluetoothManager.Instance.ChangeAimMac(selectedDevice.ble_mac); - + DataManager.Instance.hasBluetooth=hasBluetooth; selectDeviceButton.GetComponentInChildren().text = selectedDevice.device_name; selectDeviceButton.gameObject.SetActive(true);