// ConfigModel::GetInstance()->Init();
// 初始化语言
GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::VECTOR_FONT_DIR, HARMONYOS_VECTOR_FONT_FILENAME);
+ //GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, HARMONYOS_VECTOR_ARABIC_FILENAME);
GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, GILROY_BOLD_FONT); // 注册字体
GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, AUDIOWIDE_REGULAR_FONT); // 注册字体
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, KOREA_FONT); // 注册字体 //韩语
-#if 0
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, HINDI_FONT); // 注册字体 //印地语
- // GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, THAI_FONT); // 注册字体 //泰语
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, PERSIAN_FONT); // 注册字体 //波斯语
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, ARABIC_FONT); // 注册字体 //阿拉伯语
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, HEBREW_FONT); // 注册字体 //希伯来语
-
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, SHEEPING_CATS_FONT); // 注册字体
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, GILROY_REGULAR_FONT); // 注册字体
-#endif
// 默认设置全局字体为HarmonyOSFont,其他时候根据语言选择字体名字
set_current_global_font_name(HARMONYOS_VECTOR_FONT_FILENAME);
-
+
WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "NativeLauncher::InitNativeLauncher fontname %s", DEFAULT_VECTOR_FONT_FILENAME);
/* -------------------------------------------------------------------------- */
// 从语言json配置里面读取语言包
#include <NativeAbility.h>
#include "AppViewIDs.h"
#include "languagecode/include/LanguageSwitchModel.h"
+#include "common/graphic_startup.h"
+
namespace OHOS
{
// 初始化 languages 数组
{ID, "id", "Bahasa Indonesia", "印尼语",HARMONYOS_VECTOR_FONT_FILENAME},
{MS, "ms", "Bahasa Melayu", "马来语",HARMONYOS_VECTOR_FONT_FILENAME},
{PL, "pl", "Polski", "波兰语",HARMONYOS_VECTOR_FONT_FILENAME},
- {TH, "th", "ไทย", "泰语",HARMONYOS_VECTOR_FONT_FILENAME},//THAI_FONT
+ {TH, "th", "ไทย", "泰语",ANUPHAN_FONT},//THAI_FONT
{VI, "vi", "Tiếng Việt", "越南语",HARMONYOS_VECTOR_FONT_FILENAME},
{FI, "fi", "Suomi", "芬兰语",HARMONYOS_VECTOR_FONT_FILENAME},
{RO, "ro", "Română", "罗马尼亚语",HARMONYOS_VECTOR_FONT_FILENAME},
{TR, "tr", "Türkçe", "土耳其语",HARMONYOS_VECTOR_FONT_FILENAME},
- {FA, "fa", "فارسی", "波斯语",PERSIAN_FONT},
- {AR, "ar", "العربية", "阿拉伯语",ARABIC_FONT},
+ {FA, "fa", "فارسی", "波斯语",HARMONYOS_VECTOR_ARABIC_FILENAME},
+ {AR, "ar", "العربية", "阿拉伯语",HARMONYOS_VECTOR_ARABIC_FILENAME},
{HE, "he", "עברית", "希伯来语",HEBREW_FONT},
{UK, "uk", "Українська", "乌克兰语",HARMONYOS_VECTOR_FONT_FILENAME},
{SV, "sv", "Svenska", "瑞典语",HARMONYOS_VECTOR_FONT_FILENAME},
{UZ, "uz", "O‘zbek", "乌兹别克语",HARMONYOS_VECTOR_FONT_FILENAME},
{AZ, "az", "Azərbaycan dili", "阿塞拜疆语",HARMONYOS_VECTOR_FONT_FILENAME},
};
+
+ //稀有语言单独字库,此列需要重新加载字体
+ // struct Language uncommon_languages[] =
+ // {
+ // {KO, "ko", "한국어", "韩语",KOREA_FONT},
+ // {HI, "hi", "हिन्दी", "印地语",HINDI_FONT_TTF},
+ // {TH, "th", "ไทย", "泰语",ANUPHAN_FONT},//THAI_FONT
+ // {HE, "he", "עברית", "希伯来语",HEBREW_FONT},
+ // };
+
// static const uint8_t langcount = 2;
// 波斯语(Persian,也称为法尔斯语)
// 乌尔都语(Urdu)
// 阿拉米语(Aramaic)
- char* fontname=get_current_global_font_name();
- if (memcpy_s(fontname,strlen(fontname),PERSIAN_FONT,strlen(PERSIAN_FONT)) == 0)
- return 1;
- else if (memcpy_s(fontname,strlen(fontname),ARABIC_FONT,strlen(ARABIC_FONT)) == 0)
- return 1;
- else if (memcpy_s(fontname,strlen(fontname),HEBREW_FONT,strlen(HEBREW_FONT)) == 0)
- return 1;
- else
- return 0;
+ // char* fontname=get_current_global_font_name();
+ // if (memcpy_s(fontname,strlen(fontname),PERSIAN_FONT,strlen(PERSIAN_FONT)) == 0)
+ // return 1;
+ // else if (memcpy_s(fontname,strlen(fontname),ARABIC_FONT,strlen(ARABIC_FONT)) == 0)
+ // return 1;
+ // else if (memcpy_s(fontname,strlen(fontname),HEBREW_FONT,strlen(HEBREW_FONT)) == 0)
+ // return 1;
+ // else
+ return 0;
}
+ const char* get_language_font(uint8_t id)
+ {
+ for(int i=0;i<(sizeof( languages)/sizeof(languages[0]));i++)
+ {
+ if(languages[i].languageid==id)
+ {
+ return languages[i].fontname;
+ }
+ }
+ return NULL;
+ }
+
+ bool is_load_languages(uint8_t id)
+ {
+ for(int i=0;i<(sizeof( languages)/sizeof(languages[0]));i++)
+ {
+ if(languages[i].languageid==id)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",languages[i].fontname);
+ if(strcmp(languages[i].fontname,get_current_global_font_name())!=0 && (strcmp(languages[i].fontname,HARMONYOS_VECTOR_FONT_FILENAME)!=0))
+ return true;
+ else
+ return false;
+ }
+ }
+ return false;
+ }
language::language()
{
FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, 0);
#else
int thelanguage = ConfigModel::GetInstance()->GetLanguage();
+ if(is_load_languages(thelanguage))
+ {
+ GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, get_language_font(thelanguage)); // 注册字体
+ set_current_global_font_name(get_language_font(thelanguage));
+ }
+
+
if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
{
/**
#include "components/ui_label_ext.h"
#include "components/ui_list.h"
#include "languagecode/include/LanguageSwitchListAdapter.h"
-
+#include "string"
namespace OHOS
{
class LanguageSwitchPresenter;
void OnStop() override;
void AddLanguageItemToList(const Language &item);
UIList *GetLanguageList(void);
+ void InithintView();
+ void show_hint_group(std::string code,bool data);
+
+ std::string get_hint_id_code()
+ {
+ return hint_id_code;
+ }
+
+ UIButton *GetLanguagebutton_cancel(void);
+
+
+ UIButton *GetLanguagebutton_ensure(void);
private:
bool LanguageSwitchScrollViewInit(void);
bool LanguageSwitchListViewInit(void);
void LanguageSwitchViewInit(void);
void ClearAll(void);
+ UIViewGroup *group{nullptr};
+ UIButton *button_cancel{nullptr};
+ UIButton *button_ensure{nullptr};
+ UILabel *LanguageSwitchViewhintLabel{nullptr}; // "语言"
+ std::string hint_id_code;
+
UIScrollView *LanguageSwitchScrollView{nullptr};
UILabelExt *LanguageSwitchViewTitleLabel{nullptr}; // "语言"
UIList *LanguageList{nullptr}; // 语言列表
#include "ConfigModel.h"
#include "settings/include/SettingModel.h"
#include "bleService.h"
+#include "broadcast_feature.h"
namespace OHOS
{
extern Language languages[];
bool LanguageSwitchPresenter::OnClick(UIView &view, const ClickEvent &event)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnClick");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnClick");
+ UNUSED(event);
+ const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
+ UILabelButtonExt *p_UILabelButtonExt = dynamic_cast<UILabelButtonExt *>(&view);
+ char *id = const_cast<char *>(p_UILabelButtonExt->GetViewId());
+ language *g_planguage = language::GetInstance();
+
+
/* -------------------------------------------------------------------------- */
- if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
+ if(strcmp(view.GetViewId() ,"BUTTON_CHECK_OK")==0)
+ {
+ uint8_t power_buf[2]={0};
+ power_buf[0]=3;
+ std::string Hint_ID= LanguageSwitchView::GetInstance()->get_hint_id_code();
+
+ g_planguage->ChangeLanguage(Hint_ID);
+
+ CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,power_buf,2);
+ return true;
+ }
+ else if(strcmp(view.GetViewId(), "BUTTON_CHECK_NO")==0)
{
- NativeAbility::GetInstance().EnterSlice(VIEW_WATCH_QR_CODE);
+
+
+ LanguageSwitchView::GetInstance()->show_hint_group("",false);
+
+ return true;
}
+
// if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true && SettingModel::GetInstance().GetPhoneConnectStatus() == false)
// {
// NativeAbility::GetInstance().EnterSlice(VIEW_WATCH_QR_CODE);
// }
/* -------------------------------------------------------------------------- */
- UNUSED(event);
- const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
- UILabelButtonExt *p_UILabelButtonExt = dynamic_cast<UILabelButtonExt *>(&view);
- char *id = const_cast<char *>(p_UILabelButtonExt->GetViewId());
- language *g_planguage = language::GetInstance();
+
if (p_UILabelButtonExt != nullptr)
{
char *currentLanguageCode = id;
p_LanguageSwitchModel->SetCurLanguageCode(currentLanguageCode); // 设置新的当前语言Code
+
}
else
{
}
else
{
- g_planguage->ChangeLanguage(p_LanguageSwitchModel->GetCurLanguageCode());
- m_labelext->SetTextId(STR_LANGUAGE_SELECTION);
- m_labelext->ForceResetText(); // 强制刷新
-
- p_UILabelButtonExt->SetImageSrc(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_ON_IMAGE);
- p_UILabelButtonExt->Invalidate();
- LanguageSwitchView::GetInstance()->GetLanguageList()->RefreshList();
- // 更新上一个语言ID
- p_LanguageSwitchModel->SetLastLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode());
+
+ LanguageId currentLanguageId = LanguageManager::GetInstance().GetLanguageIdByCode(id);
+ if(is_load_languages(currentLanguageId))
+ {
+ LanguageSwitchView::GetInstance()->show_hint_group(id,true);
+ }
+ else
+ {
+ g_planguage->ChangeLanguage(p_LanguageSwitchModel->GetCurLanguageCode());
+ m_labelext->SetTextId(STR_LANGUAGE_SELECTION);
+ m_labelext->ForceResetText(); // 强制刷新
+
+ p_UILabelButtonExt->SetImageSrc(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_ON_IMAGE);
+ p_UILabelButtonExt->Invalidate();
+ LanguageSwitchView::GetInstance()->GetLanguageList()->RefreshList();
+ // 更新上一个语言ID
+ p_LanguageSwitchModel->SetLastLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode());
+
+
+ }
+
}
return true;
}
#include "languagecode/include/LanguageSwitchView.h"
#include "languagecode/include/LanguageSwitchPresenter.h"
#include "wearable_log.h"
+#include "UiConfig.h"
namespace OHOS
{
delete LanguageSwitchScrollView;
LanguageSwitchScrollView = nullptr;
+
+ if(group)
+ {
+ group->RemoveAll();
+
+ delete button_cancel;
+ button_cancel = nullptr;
+
+ delete button_ensure;
+ button_ensure = nullptr;
+
+ delete LanguageSwitchViewhintLabel;
+ LanguageSwitchViewhintLabel = nullptr;
+ }
}
}
}
}
+ void LanguageSwitchView::show_hint_group(std::string code,bool data)
+ {
+ group->SetVisible(data);
+ RootView::GetInstance()->Invalidate();
+ if(data)
+ {
+ hint_id_code=code;
+ }
+ return;
+ }
+
+ UIButton *LanguageSwitchView::GetLanguagebutton_cancel(void)
+ {
+ return button_cancel;
+ }
+
+
+ UIButton *LanguageSwitchView::GetLanguagebutton_ensure(void)
+ {
+ return button_ensure;
+ }
+
+ //Take effect after restart
+ void LanguageSwitchView::InithintView()
+ {
+
+ group = new UIViewGroup();
+ if(group==nullptr)
+ {
+ return;
+ }
+ group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ group->SetTouchable(true);
+ group->SetDraggable(true);
+ group->SetOnDragListener(presenter_);
+
+
+ if (LanguageSwitchViewhintLabel == nullptr) {
+ LanguageSwitchViewhintLabel = new UILabel();
+ }
+ LanguageSwitchViewhintLabel->SetPosition(47, 194); // widget's left position and top position
+ LanguageSwitchViewhintLabel->Resize(370, 60); // widget's width and height
+ LanguageSwitchViewhintLabel->SetViewId("label1");// Set style
+ LanguageSwitchViewhintLabel->SetStyle(STYLE_TEXT_FONT, 30);
+
+ LanguageSwitchViewhintLabel->SetText("Take effect after restart");
+ LanguageSwitchViewhintLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ LanguageSwitchViewhintLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ LanguageSwitchViewhintLabel->SetRollSpeed(0);
+ LanguageSwitchViewhintLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+
+ group->Add(LanguageSwitchViewhintLabel);
+ LanguageSwitchViewhintLabel->SetVisible(true);
+
+
+
+ button_cancel = new UIButton();
+ if (button_cancel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemShutdown::new button_cancel fail!");
+ return ;
+ }
+ button_cancel->SetPosition(97, 299, 130, 130);
+ button_cancel->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ button_cancel->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ button_cancel->SetImagePosition(15, 15);
+ button_cancel->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);
+ button_cancel->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
+ button_cancel->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, PNG_SYSTEM_CHECK_OFF_IMAGE);
+ button_cancel->SetViewId("BUTTON_CHECK_NO");
+ group->Add(button_cancel);
+ /* ------------------------ button_ensure ----------------------- */
+ button_ensure = new UIButton();
+ if (button_ensure == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemShutdown::new button_ensure fail!");
+ return ;
+ }
+ button_ensure->SetPosition(240, 299, 130, 130);
+ button_ensure->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ button_ensure->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ button_ensure->SetImagePosition(15, 15);
+ button_ensure->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);
+ button_ensure->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
+ button_ensure->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, PNG_SYSTEM_CHECK_ON_IMAGE);
+ button_ensure->SetViewId("BUTTON_CHECK_OK");
+ group->Add(button_ensure);
+
+ button_cancel->SetOnClickListener(presenter_);
+ button_ensure->SetOnClickListener(presenter_);
+ group->SetVisible(false);
+
+ }
+
+
void LanguageSwitchView::OnStart()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStart");
container_->SetOnDragListener(presenter_);
LanguageSwitchViewInit();
+ InithintView();
SetKeyActListener();
}
container_->Add(LanguageSwitchScrollView);
LanguageList->SetAdapter(p_LanguageSwitchListAdapter);
LanguageSwitchScrollView->Add(LanguageList);
+ container_->Add(group);
Draw();
}
\r
//0空闲状态 9 usb状态 10 运动训练状态\r
uint8_t watchStatus = 0;\r
+ \r
if(uapi_dev_runtime_get_train_status())\r
watchStatus=10;\r
\r
- value[17] = 0;\r
+ value[17] = watchStatus;\r
value[18] = Calculate_CRC(value,18);\r
sendBleData(value,19);\r
}\r
printf("Send_Sleep_Bin_Data file_size : %d \r\n",file_size);\r
\r
data=(char *)malloc(file_size);\r
+ \r
+ if(data==NULL)\r
+ {\r
+ return;\r
+ }\r
+ memset(data,0,file_size);\r
+\r
data[0]=sleep_count;\r
\r
if(data==NULL)\r
\r
ble_data_type type_={0x01,0x4b,file_size,pack,pack_id};\r
send_big_data(type_,data+offset,num);\r
+ \r
//send_big_data(1,data+offset,num,file_size,pack_id,pack,0x4b,1);\r
offset+=num;\r
}\r
//#endif\r
ble_data_type type_={0x01,0x4b,file_size,pack,pack_id};\r
send_big_data(type_,data+offset,surplus_len);\r
+ printf("开始\r\n");\r
+ for(int i=0;i<surplus_len;i++)\r
+ {\r
+ printf("%02X ",(uint8_t)data[i]);\r
+ }\r
+ printf("结束\r\n");\r
\r
//send_big_data(1,data+offset,surplus_len,file_size,pack_id,pack,0x4b,1);\r
break;\r
#define GILROY_MEDIUM_FONT "Gilroy_Medium.ttf"
#define SHEEPING_CATS_FONT "Sheeping_Cats.ttf"
#define AUDIOWIDE_REGULAR_FONT "Audiowide_Regular.ttf"
+//多国语言字体
#define KOREA_FONT "Orbit-Regular.ttf" //韩语
-#define HINDI_FONT "AGRA_TH.ttf" //印地语
-#define THAI_FONT "KartriderThaiOTFMedium.ttf" //泰语
-#define PERSIAN_FONT "Championship.ttf" //波斯语
-#define ARABIC_FONT "Rubik-VariableFont_wght.ttf"//阿拉伯语
+#define HINDI_FONT "hindi.ttf" //印地语
#define HEBREW_FONT "Handjet.ttf"//希伯来语
+#define HARMONYOS_VECTOR_ARABIC_FILENAME "HarmonyOS_Sans_Naskh_Arabic_Regular.ttf"//阿拉伯语
+#define ANUPHAN_FONT "Anuphan-VariableFont_wght.ttf"//泰语
#else
#if ENABLE_VECTOR_FONT
*/
int get_current_font_direction(void);
+const char* get_language_font(uint8_t id);
+
+bool is_load_languages(uint8_t id);
+
#define DEFAULT_VECTOR_FONT_FILENAME get_current_global_font_name()
/* resources path. */