vB&9(J z=`^Dyow$0 7(xp=(~|+*!8i)IpBU4a&3qD-!ZKD-&1SZ-i!b?# zI!^I3f02?FLKB*kO*eXz!w4pDKa(lrNfxkzms!hZK1|d9Es|Y)#c@s(()F9pT*kHB z!YB%u&I}%5CXbTfF&^g$Dp|qnRI!e29N-WqsY}=YUnE(LYzg`^fE@0kfH6M+GZc z%X@5LH%IuI?>IwhV_%0(bmMAzGl1I}OEFUt!c69|j5k=%M;svYLgxUT>CZZvUu5CX zgFfUifvHsR78}{Y30gJ@p$kLEC7*e$B2guLz*dfNhSp6jNCq>8Nla!2 bJ6sXwNL>P{vctrJTe b0}F$t9nsS;2(%p5rm* zQb{#?Im9V` C=Y|6dCne{n9juy}o@kIvYZ^~}-)vIa=vZFixx2}68GVxrGCCwzXZZUjYco1F z4!1_~V)5*edGW}i% -namespace OHOS { -enum UIResourceTextId : uint16_t { +/* +* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved. +* Description: language +* Author: Graphic develop team +* Create: 2021-07-06 +*/ + +#ifndef UI_RESOURCE_STRING_H +#define UI_RESOURCE_STRING_H +#include +namespace OHOS { +enum UIResourceTextId : uint16_t { STR_EXERCISE_OUTDOORWALKING = 0, STR_EXERCISE_OUTDOORRUNNING = 1, STR_EXERCISE_OUTDOORBIKING = 2, @@ -481,10 +481,14 @@ enum UIResourceTextId : uint16_t { STR_CONNECT_TIMEOUT = 468, STR_PLEASE_RESTART_CHAT = 469, STR_CONTINUE_CHAT = 470, - STR_MAX_ID = 471, + STR_AIMODELS_DOUBAO = 471, + STR_AIMODES_WENXINYIYAN = 472, + STR_AIMODES_KIMI = 473, + STR_AIMODES_CHATGPT = 474, + STR_MAX_ID = 475, }; // UIResourceTextId - -enum FontLanguageId : uint8_t { + +enum FontLanguageId : uint8_t { LANGUAGE_ID_EN, LANGUAGE_ID_ZH, LANGUAGE_ID_MAX diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang index ad99cc0e62fb61b2a641df90d318c628e48af0ad..053d7e382fe277213dc47b21569c419423f5bb8b 100644 GIT binary patch delta 2043 zcmY+_d2AI$7y$6W0zClRQcjC dey z$DB2DriA|;#~L*>TW|xn(3^)CO2gn8 A0g_5^ )Oau~vsjAkmciLiiD%2`hppEq1M!Y`cVGRaLtXiFA%GJqjG z$s}fxPcfyeU@O%e;uLW%kenDo8m;I|SF(AS!9+$06PU)!%%hOSlu^!lHnWF)9OhSQ zI7dB+NhTqaE_9 U3(a}z!2MLz~J zipjjle2Q4cYIab~QI2tzYcx+$|5hnp7Ve@yk28j;%;GhQd5fj2V=Ft^OD%uWqFD$x z(w)2M#{iyTGc{Z!p?L@?w53}_$YD4$XlO5HB?mac6_V}vHuPZ-Pw@;Bc!>g*vxVJ! z#ZitC=Mq;)xIToIbmUed_XuMs=XWkrPfDscn#UN)6lSxKC6uv&Pxz9rIl_;e;528r zNJtAIgHH71UIvnxuKu^B+oL?nQ;cUi`4m%1Ih)wc0e+^I^IYP(mi9g!=tf_1$mLn` zDW;T<*hf-^mB>*4EJ-$Z^9XZU$Z{&ECZ&~naT8f&a}Rk;;CW^;k3yDE##+`>$wzEw z2YcAdHxc0nPI87nxk^&&5ZW<}JVr2@u}o$fGnvaewo=U@j&Yv9NNVHLOBb>kP7&|0 zk;rGlL4M>EXSqz1wkG9yexX-8Z6>mcN TKCe^3HtO4l z+>q!$mO~yVspB$DGS!D3JjhT+GnE-cSi<{!z;(-aVS1pe2Ppogf zpfJ8|Q@rZK5UX4r)2J$`*|;WpE$LwMSo!w4XhFPkW9`m@E#D+JZPGkexh(cpNqqaF zx}rCt-(LS}#-|0fZxn_2s`)jW)`kB@R;2fA6djgY9Q`%5ceGVnr}pux6}4-3hJQ~N zb}ft*Zm26-d|_8{G&ikXM(m$^=&sqYDm%7tK|}xav|FQPX%9tXX(OWXmRZpU(sQCM MGBUSx&X||>HyH @~ delta 2118 zcmY+_d2Eko902f_YPEH>rH=ksMwlZrM;sg3C^ARQY*~k0Y-4V7+XO#?s%AR%i-}4c zovAq*QgsJ$O@_H wtw~{pYQv9{&=7FeV*_8yw8zWSM?myp!57i z(? ogCx@KXHX?{Kh^0CN3%n>eHOobfQO85DwBLZ!(A>jAa_Ln9r9i zXEph3We>+V&t=NEO;jaILmi%>39aZrS9;Qqblzi3rEm~@F3DgK%UH`sirC8`PIG~4 z+~pzB(LqpyMl`229Z97ZuQQl2Okz4&EMp}b*%=m&aF$}qc}$g Fhm&U2ZoJf>3RAc!T71nSU&c7#)fG}0N&CyZq>^T=i?d2C`AM>)qOZg7_h zu|ZIsWE# wRjIFL^Imcjo$QU07IF; zEHYWba#pi}9USI(SU5{D<=iK#N)W{J4BdHyfsEr2e-d5Q?5R(4I+M-_=8?lnwsM(U zRQJ~i(TtwFPk6X6jwxial+7IB6hCvFn>?U$bpw%1W7_ZvX^f|czlg381XZa|Ki*{& z)5#*2{2J vdlyQrDJR&+F2$E<*Te{GfL9|R%V_xGOhBKKtWV3?x6mgJK zT&6rx{qIYHBr~HH4S9ji^dg;)_>^o`u%5$QBBiF4pd+dDVE~KBWiz`uNBvsLMQb{e z8Wz$R#uR3d!D5z?PXRmG%K;8^j1!#ZM}DD{J3JyL* d(vDO{u$*=5=PbpP@jH)+uVZU6k{R5lM_qlUQdn304@kb}3>PUO zp`HVY7IdTs0~pE#mavN5d`DGhVLj3r#vL9KAMye;=4JXbgt5$IUdYWkl6 iQW7;pSDPO z;=ss=q#n(J>npaEtj!HdzTRFInfvd^K}kVw$>N;S?OA0DvV+n!v#)Q-FKk<*Wrd`t eV?7ys)0$Q#nHe4s>7MjlWK&Y8@Q0*n3I70vI%U=X diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h b/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h index 90c7ecdc6..4606d9fba 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-06-12 11:44:04 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-06-13 19:09:49 + * @LastEditTime: 2024-07-10 21:13:23 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/RebootModel.h * @Description: è¿æ¯é»è®¤è®¾ç½®,请设置`customMade`, æå¼koroFileHeaderæ¥çé ç½® è¿è¡è®¾ç½®: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A */ @@ -28,9 +28,11 @@ public: void SetSelectViewId(int16_t value); bool GetExitsView(void); void SetExitsView(bool value); - bool RegisterLongPressEvents(void); - bool RegisterDoubleClickEvents(void); - void RegisterKeyEvents(void); + bool RegisterPowerKeyLongPressEvent(void); + bool RegisterPowerKeyDoubleClickEvent(void); + bool RegisterFuncKeyClickEvent(void); + bool RegisterFuncKeyDoubleClickEvent(void); + void RegisterAllKeyEvents(void); private: RebootModel(); int16_t selectView{0}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp index b083cd02c..bc113aa6e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 11:50:42 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-06-14 18:42:57 + * @LastEditTime: 2024-07-11 14:41:49 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootModel.cpp */ @@ -13,6 +13,7 @@ #include #include #include "power_display_service.h" +#include "aimodels/include/AiModelsModel.h" namespace OHOS { RebootModel::RebootModel() {} @@ -55,76 +56,128 @@ namespace OHOS } #endif - /* - * @brief é¿æåç§å ³æºåè°å½æ° - */ - static void OnKeyLongPress4s_Callback(void) + static void HandlePowerKeyLongPress(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnKeyLongPress4s_Callback"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandlePowerKeyLongPress"); const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if (!display_api) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr"); + return; + } + if (display_api->get_screen_state() != SCREEN_ON) { display_api->turn_on_screen(); } + // 忢å°å ³æº/éå¯å¡ç NativeAbility::GetInstance().ChangeSlice(VIEW_SHUTDOWN_OR_REBOOT); - - return; } - /* - * @brief 注åé¿æçå¬äºä»¶ - * @return 注åæåè¿åtrueï¼åä¹è¿åfalse - */ - bool RebootModel::RegisterLongPressEvents(void) + /*注åçµæºé®çé¿æäºä»¶*/ + bool RebootModel::RegisterPowerKeyLongPressEvent(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterLongPressEvents"); - int32_t ret = uapi_button_register_event_cb(OnKeyLongPress4s_Callback, BUTTON_PWR_LONGPRESS_3S); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterPowerKeyLongPressEvent"); + int32_t ret = uapi_button_register_event_cb(HandlePowerKeyLongPress, BUTTON_PWR_LONGPRESS_3S); if (ret != ERRCODE_SUCC) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register LongPress Events err,ret = %d", ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register PowerKey LongPress Event error, ret = %d", ret); return false; } return true; } - /* - * @brief åå»äºä»¶åè°å½æ° - */ - static void OnKeyDoubleClick_Callback(void) + static void HandlePowerKeyDoubleClick(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandlePowerKeyDoubleClick"); + // Handle PowerKey DoubleClick logic here + } + + /*注åçµæºé®çåå»äºä»¶*/ + bool RebootModel::RegisterPowerKeyDoubleClickEvent(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterPowerKeyDoubleClickEvent"); + // Register PowerKey DoubleClick event here + return true; + } + + static void HandleFuncKeyOnClick(void) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnKeyDoubleClick_Callback"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyOnClick"); + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if (!display_api) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr"); + return; + } + if (display_api->get_screen_state() == SCREEN_ON) { - // 忢å°ä¸»é¢æ ·å¼çé¢ - NativeAbility::GetInstance().EnterSlice(VIEW_THEME_STYLE); - //NativeAbility::GetInstance().ChangeSlice(VIEW_SET_DESKTOP); + AiModelsModel &aiModelsModel = AiModelsModel::GetInstance(); + if (!aiModelsModel.ChangeAiModel()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to change AI model"); + } + } + else + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping AI model change"); } + } + + /*注ååè½é®çåå»äºä»¶*/ + bool RebootModel::RegisterFuncKeyClickEvent(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterFuncKeyClickEvent"); + int32_t ret = uapi_button_register_event_cb(HandleFuncKeyOnClick, BUTTON1_CLICKUP); + if (ret != ERRCODE_SUCC) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey Click Event error, ret = %d", ret); + return false; + } + return true; + } - return; + static void HandleFuncKeyDoubleClick(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyDoubleClick"); + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if (!display_api) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "power_display_svr_get_api returned nullptr"); + return; + } + if (display_api->get_screen_state() == SCREEN_ON) + { + // 忢尿¾ç¤ºæ¹å¼çé¢ + NativeAbility::GetInstance().EnterSlice(VIEW_AI_MODELS); + } + else + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Screen is not on, skipping Slice change"); + } } - /* - * @brief 注ååå»äºä»¶ - * @return 注åæåè¿åtrueï¼åä¹è¿åfalse - */ - bool RebootModel::RegisterDoubleClickEvents(void) + /*注ååè½é®åå»äºä»¶*/ + bool RebootModel::RegisterFuncKeyDoubleClickEvent(void) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterDoubleClickEvents"); - int32_t ret = uapi_button_register_event_cb(OnKeyDoubleClick_Callback, BUTTON1_CLICKUP_2); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RebootModel::RegisterFuncKeyDoubleClickEvent"); + int32_t ret = uapi_button_register_event_cb(HandleFuncKeyDoubleClick, BUTTON1_CLICKUP_2); if (ret != ERRCODE_SUCC) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register DoubleClick Events err,ret = %d", ret); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Register FuncKey DoubleClick Event error, ret = %d", ret); return false; } return true; } - // 注åæé®äºä»¶ - void RebootModel::RegisterKeyEvents(void) + void RebootModel::RegisterAllKeyEvents(void) { - RegisterLongPressEvents(); - RegisterDoubleClickEvents(); + RegisterPowerKeyDoubleClickEvent(); + RegisterPowerKeyLongPressEvent(); + RegisterFuncKeyClickEvent(); + RegisterFuncKeyDoubleClickEvent(); } } \ No newline at end of file diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_bg.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_bg.bin index f9585fd2d..1275fbc03 100644 --- a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_bg.bin +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_bg.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:672cf086d4e285b0f63da94d5dd448d343012999c3e8b0a9878ba9a1621fe859 -size 73064 +oid sha256:88c0f9a3719468cfab7a7396d43edaba4a1ce2b313e0e1f95833f0ef0032f52b +size 77544 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang index 5e5e8b5a0e5ec052363b36a8af414ea744dc9630..a242fedb92864bf92dfa4b3af58531aa2f36695a 100644 GIT binary patch delta 2078 zcmY+^dytJ~7y$6kWwS2Xwd)eQw3Q4cGL~dAYjz1^Ep6K@X2@Cxr{!$+GA`|Oj7v2N zqvH>Rl1sS{i)bZL5|c~hQfL_08uw8uqkd-kr*G!>%=4XZzUQ3tJn#E%$vM$4nl|H? zE}=;9zw75}4{qbAO(Kuco-F#2&q$^-izTdJJzLq$0ZwwBn*^#RkV;G1kvS)t5xpl# zs2&8ZNT(~kc$p!LqLj%jW-VLU!$~f4mzp)yA%)g-qAxEol+jf1F7x<^RW*WWuvt>Y zZVqvZOWfivwQ2@IBbxIh>2xQX!4y!+1g0{R1uS7TmF!?2M>xd=uJU`$Xb{xU>xQKA z1W)lCne-!%K@8 nnoXGo(houWb(0~kV>3Cv&t zE7`<$zU3gNImd6@C$3fyB+-I4bm2wvD5Qu z@H8FiMt|}dMiCQuhgroQvGxPZH_`K@*;#Grh@UG*M>PG5`6JP3-0fXSqXsU5k#kbmV!ulf!UA zL|DcK4seCPiLVy~^+~23pHlr{+nH2akxq702r-S1Swj^^iK`z3jp;%LxlCdKOIXWh z4s(uL2}VRGdN7Dr2~)uoW-yN>tR%WcxJJH{W)Z8{$S(e%eglh&400GwITg%d85`L` z6+8KceH`KpSGY%=B;%khnY@>5{wtDwDeL)yeH`NgH@Q#UhT2AJ(#a&3!4xu%3TCp9 zb!=lV2dLIa4N^#_Kg(Iy$ozLm_HvkC$!KglQb-9gu2Zdv7L!0zT9M5N!i?h$rZJcK zEaekcvz|&mqlz!t6BQ0{g0o!aCU>d#h@zBI&UhwLL6j*>XDRF0#(s`-i+_l3>cHV~ zIxvvQ%wQ4GHNtkj<{-y7%{5vy(=OIfH^q-&8r#^*QO D=w+Ln%pKiH7i^g4tnP1 Z^y!(FSzH$M4UY{6S)&WedJV`6{sn3bQDFc8 delta 2219 zcmY+_dyti57y$5hyJ%Om?QR#L+DuUzg`_a(!bVZLsD@FU?6DoYdse5jx~UV@tftzL zlU+k2F%nXl#kwSmqSZv1qDf8nvnXo2RO>t{6?m#*_=;jdN5!~>iSfJ z ?0Lg>UrTtPnuGl~h6vXCcujv78>Cr9|6Q)D&{p*0uKm+Kh9?ZlYId=^vPIHbZe zl2xqZ9qQS^K8|pbMomIElUzD+30E
iLY_9BPsZ;e;fk zX$V=gq%EE4$<_3yfFX?GF79D6GgwHPCs{)+b$rBjc5;vgexlJCA)HM+E=UQNaxH@y zO_ZrrP{j&f;8oW1F`u%FZ}@?~Xx=P@HgusE{ke^?6fube)0xL&Qq{r=R#VISY-Sr@ za+n5=^AmrPkr_e@T9Hq8`cS|y#xaS>RPZp5u#)Fl$NPMcss9@#+c?Y-P7t#6n=V{P zZ*F8HMa*C(4={__q?p5lJVZ4sd6^pCVl#W#$1xhR^#5l`-kG)p{pe2tcThx 4}W+s&^Wf?D0 z!`o~ow6w=r%X&7lgDj_6KG!gu2_&h=(f>-xv%JnmHnWw__<}tg yxS9e+wbK7WNeSi5rIO{Wp^h!=W b32A`Ikzy9@f3Cp=_Sn$UOXmJQXEE<$HUF>!m_eN{#4^w zyy(ASqC6fyJsc1#PA|^fTQe&w)ij-%olJk%vN&^8A`&}&H$67zs`Mi{9n))a{C(5) zIh~q^o1&3KGJixQ8GSVO%5?AC+nuWaT biV|#^L%M#HrB$`Z?L?=c|O7j0J z7ltKb(ReZ%P5krblCrYG{9)6k7e(VW%d$sgwE4GmLh1aj$yjN0O3%_*yj%KsZl9bR zVpEcl_}y-lb_)Yb%BIw$^Sb5b7nYSzjFg3`(fG7je0pqpBp!-mrLl1Lq)4*pzGV0t Dm{D}; diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h index 8793c2a1e..ede429db9 100644 --- a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h @@ -1,15 +1,15 @@ -/* -* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved. -* Description: language -* Author: Graphic develop team -* Create: 2021-07-06 -*/ - -#ifndef UI_RESOURCE_STRING_H -#define UI_RESOURCE_STRING_H -#include -namespace OHOS { -enum UIResourceTextId : uint16_t { +/* +* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved. +* Description: language +* Author: Graphic develop team +* Create: 2021-07-06 +*/ + +#ifndef UI_RESOURCE_STRING_H +#define UI_RESOURCE_STRING_H +#include +namespace OHOS { +enum UIResourceTextId : uint16_t { STR_EXERCISE_OUTDOORWALKING = 0, STR_EXERCISE_OUTDOORRUNNING = 1, STR_EXERCISE_OUTDOORBIKING = 2, @@ -481,10 +481,14 @@ enum UIResourceTextId : uint16_t { STR_CONNECT_TIMEOUT = 468, STR_PLEASE_RESTART_CHAT = 469, STR_CONTINUE_CHAT = 470, - STR_MAX_ID = 471, + STR_AIMODELS_DOUBAO = 471, + STR_AIMODES_WENXINYIYAN = 472, + STR_AIMODES_KIMI = 473, + STR_AIMODES_CHATGPT = 474, + STR_MAX_ID = 475, }; // UIResourceTextId - -enum FontLanguageId : uint8_t { + +enum FontLanguageId : uint8_t { LANGUAGE_ID_EN, LANGUAGE_ID_ZH, LANGUAGE_ID_MAX diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang index ad99cc0e62fb61b2a641df90d318c628e48af0ad..053d7e382fe277213dc47b21569c419423f5bb8b 100644 GIT binary patch delta 2043 zcmY+_d2AI$7y$6W0zClRQcjC dey z$DB2DriA|;#~L*>TW|xn(3^)CO2gn8 A0g_5^ )Oau~vsjAkmciLiiD%2`hppEq1M!Y`cVGRaLtXiFA%GJqjG z$s}fxPcfyeU@O%e;uLW%kenDo8m;I|SF(AS!9+$06PU)!%%hOSlu^!lHnWF)9OhSQ zI7dB+NhTqaE_9 U3(a}z!2MLz~J zipjjle2Q4cYIab~QI2tzYcx+$|5hnp7Ve@yk28j;%;GhQd5fj2V=Ft^OD%uWqFD$x z(w)2M#{iyTGc{Z!p?L@?w53}_$YD4$XlO5HB?mac6_V}vHuPZ-Pw@;Bc!>g*vxVJ! z#ZitC=Mq;)xIToIbmUed_XuMs=XWkrPfDscn#UN)6lSxKC6uv&Pxz9rIl_;e;528r zNJtAIgHH71UIvnxuKu^B+oL?nQ;cUi`4m%1Ih)wc0e+^I^IYP(mi9g!=tf_1$mLn` zDW;T<*hf-^mB>*4EJ-$Z^9XZU$Z{&ECZ&~naT8f&a}Rk;;CW^;k3yDE##+`>$wzEw z2YcAdHxc0nPI87nxk^&&5ZW<}JVr2@u}o$fGnvaewo=U@j&Yv9NNVHLOBb>kP7&|0 zk;rGlL4M>EXSqz1wkG9yexX-8Z6>mcN TKCe^3HtO4l z+>q!$mO~yVspB$DGS!D3JjhT+GnE-cSi<{!z;(-aVS1pe2Ppogf zpfJ8|Q@rZK5UX4r)2J$`*|;WpE$LwMSo!w4XhFPkW9`m@E#D+JZPGkexh(cpNqqaF zx}rCt-(LS}#-|0fZxn_2s`)jW)`kB@R;2fA6djgY9Q`%5ceGVnr}pux6}4-3hJQ~N zb}ft*Zm26-d|_8{G&ikXM(m$^=&sqYDm%7tK|}xav|FQPX%9tXX(OWXmRZpU(sQCM MGBUSx&X||>HyH @~ delta 2118 zcmY+_d2Eko902f_YPEH>rH=ksMwlZrM;sg3C^ARQY*~k0Y-4V7+XO#?s%AR%i-}4c zovAq*QgsJ$O@_H wtw~{pYQv9{&=7FeV*_8yw8zWSM?myp!57i z(? ogCx@KXHX?{Kh^0CN3%n>eHOobfQO85DwBLZ!(A>jAa_Ln9r9i zXEph3We>+V&t=NEO;jaILmi%>39aZrS9;Qqblzi3rEm~@F3DgK%UH`sirC8`PIG~4 z+~pzB(LqpyMl`229Z97ZuQQl2Okz4&EMp}b*%=m&aF$}qc}$g Fhm&U2ZoJf>3RAc!T71nSU&c7#)fG}0N&CyZq>^T=i?d2C`AM>)qOZg7_h zu|ZIsWE# wRjIFL^Imcjo$QU07IF; zEHYWba#pi}9USI(SU5{D<=iK#N)W{J4BdHyfsEr2e-d5Q?5R(4I+M-_=8?lnwsM(U zRQJ~i(TtwFPk6X6jwxial+7IB6hCvFn>?U$bpw%1W7_ZvX^f|czlg381XZa|Ki*{& z)5#*2{2J vdlyQrDJR&+F2$E<*Te{GfL9|R%V_xGOhBKKtWV3?x6mgJK zT&6rx{qIYHBr~HH4S9ji^dg;)_>^o`u%5$QBBiF4pd+dDVE~KBWiz`uNBvsLMQb{e z8Wz$R#uR3d!D5z?PXRmG%K;8^j1!#ZM}DD{J3JyL* d(vDO{u$*=5=PbpP@jH)+uVZU6k{R5lM_qlUQdn304@kb}3>PUO zp`HVY7IdTs0~pE#mavN5d`DGhVLj3r#vL9KAMye;=4JXbgt5$IUdYWkl6 iQW7;pSDPO z;=ss=q#n(J>npaEtj!HdzTRFInfvd^K}kVw$>N;S?OA0DvV+n!v#)Q-FKk<*Wrd`t eV?7ys)0$Q#nHe4s>7MjlWK&Y8@Q0*n3I70vI%U=X -- 2.17.1