TraingModel::GetInstance()->Init(); // 训练消息订阅
// 初始化默认首页
ScreenModels::GetInstance()->PreLoadAppimages();
- NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
+ //NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
// 注册长按重启或关机事件
RebootModel::GetInstance()->RegisterLongPressEvents();
{ConfigDataType::DATATYPE_STRING, "Cat1_ModemVer", "" },//CONFIGMODEL_ITEM_CAT1_MODEMVER,
{ConfigDataType::DATATYPE_STRING, "Cat1_PYVer", "" },//CONFIGMODEL_ITEM_CAT1_PYVER,
{ConfigDataType::DATATYPE_INT, "LanguageID", "-1" },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
- {ConfigDataType::DATATYPE_STRING, "LanguageCode", "zh" },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
+ {ConfigDataType::DATATYPE_STRING, "LanguageCode", "" },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
{ConfigDataType::DATATYPE_BOOL, "SlientMode", "false" },//CONFIGMODEL_ITEM_SILENT_MODE,
{ConfigDataType::DATATYPE_INT, "VibratorSwitch", "1" },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关,0 强,1 中,2 弱,3 关
// {ConfigDataType::DATATYPE_BOOL, "HRS_QuickAccess", "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:14:38
- * @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-04-15 14:59:48
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-30 10:25:43
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp
*/
#include <fstream>
#include "wearable_log.h"
#include "language/LanguageInit.h"
#include "config/include/ConfigModel.h"
+#include <NativeAbility.h>
namespace OHOS
{
"user/res/font/zh.lang"// AZ,
};
- static language *g_planguage{nullptr};
+ //static language *g_planguage{nullptr};
language::language()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "language::language");
- g_planguage = this;
+ ///g_planguage = this;
}
language::~language()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "language::~language");
- g_planguage = nullptr;
+ //g_planguage = nullptr;
}
language *language::GetInstance()
{
- return g_planguage;
+ static language instance;
+ return &instance;
}
bool language::InitLangues()
* 如果 thelanguage = -1 证明第一次启动,需要实现弹窗切换语言的功能。
* 在此之前,先设置成默认0
*/
- thelanguage = 0;
+ //thelanguage = 0;
+ NativeAbility::GetInstance().SetDefaultSliceId(VIEW_LANGUAGE_SWITCH);
+ }
+ else
+ {
+ NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
}
FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, thelanguage);
return true;
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[language_status]:%s", resFiles[language_status]);
return true;
}
-
- bool language::ChangeLanguage( char *language_code)
+
+ bool language::ChangeLanguage(std::string language_code)
{
if (!FontGlobalManager::GetInstance() || !UIFont::GetInstance())
{
// 获取语言Code对应的语言Id
LanguageId currentLanguageId = LanguageManager::GetInstance().GetLanguageIdByCode(language_code);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %s", currentLanguageId, language_code);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %s", currentLanguageId, language_code.c_str());
FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, currentLanguageId);
UIFont::GetInstance()->SetCurrentLangId(currentLanguageId);
- ConfigModel::GetInstance()->SetLanguageCode(language_code);
+ ConfigModel::GetInstance()->SetLanguageCode(language_code.c_str());
ConfigModel::GetInstance()->SetLanguage(currentLanguageId);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[%d]:%s", currentLanguageId, resFiles[currentLanguageId]);
return true;
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:30:03
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-01 16:00:57
+ * @LastEditTime: 2024-04-30 10:03:25
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.h
*/
#ifndef LANGUAGE_INIT_H
static language *GetInstance();
bool InitLangues();
bool ChangeLanguage(uint32_t);
- bool ChangeLanguage(char *language_code);
+ bool ChangeLanguage(std::string language_code);
bool fileExists(const char *fileName);
};
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 16:36:58
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 21:10:24
+ * @LastEditTime: 2024-04-30 11:34:16
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h
*/
#define LANGUAGE_SWITCH_MODEL_H
#include "language/include/LanguageSwitchListAdapter.h"
-#include "config/include/ConfigModel.h"
namespace OHOS
{
public:
static LanguageSwitchModel &GetInstance();
void SetCurLanguageCode(char *curlanguageid);
- char *GetCurLanguageCode(void);
- void SetLastLanguageCode(char *prelanguageid);
- char *GetLastLanguageCode(void);
+ const char *GetCurLanguageCode(void);
+ void SetLastLanguageCode(std::string prelanguageid);
+ const char *GetLastLanguageCode(void);
private:
LanguageSwitchModel();
const LanguageSwitchModel &operator=(const LanguageSwitchModel &) = delete;
static const uint16_t LANGUAGE_ITEM_MAX = MAX_LANGUAGE; // 语言总数
char *CurLanguageCode = "zh"; // 当前语言,默认简体中文
- char *PreLanguageCode = nullptr; // 上一次切换的语言
- ConfigModel *p_ConfigModel{nullptr};
+ std::string PreLanguageCode; // 上一次切换的语言
};
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:27:05
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 17:37:29
+ * @LastEditTime: 2024-04-30 11:40:50
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp
*/
#include "language/include/LanguageSwitchListAdapter.h"
// 设置未选中
item->GetUILabelButtonExt()->SetImageSrc(NotSelectedImg, NotSelectedImg);
}
+ item->GetUILabelButtonExt()->Invalidate();
}
return item;
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 16:36:46
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-01 11:52:27
+ * @LastEditTime: 2024-04-30 11:58:38
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp
*/
#include "language/include/LanguageSwitchModel.h"
#include "wearable_log.h"
#include "language/LanguageInit.h"
+#include "config/include/ConfigModel.h"
namespace OHOS
{
LanguageSwitchModel::LanguageSwitchModel()
{
- p_ConfigModel = ConfigModel::GetInstance();
- // if (p_ConfigModel->GetLanguageCode().c_str() != nullptr)
- {
- //printf("%s\n", p_ConfigModel->GetLanguageCode());
- CurLanguageCode = const_cast<char *>(p_ConfigModel->GetLanguageCode().c_str());
- }
+ // CurLanguageCode = const_cast<char *>(ConfigModel::GetInstance()->GetLanguageCode().c_str());
}
LanguageSwitchModel::~LanguageSwitchModel()
*/
void LanguageSwitchModel::SetCurLanguageCode(char *curlanguagecode)
{
- CurLanguageCode = curlanguagecode;
+ // CurLanguageCode = curlanguagecode;
+ ConfigModel::GetInstance()->SetLanguageCode(curlanguagecode);
}
/*
* @brief 获取当前设置的语言code
*/
- char *LanguageSwitchModel::GetCurLanguageCode(void)
+ const char *LanguageSwitchModel::GetCurLanguageCode(void)
{
- return CurLanguageCode;
+ // return CurLanguageCode;
+ return ConfigModel::GetInstance()->GetLanguageCode().c_str();
}
/*
* @brief 设置上一次语言code
*/
- void LanguageSwitchModel::SetLastLanguageCode(char *prelanguagecode)
+ void LanguageSwitchModel::SetLastLanguageCode(std::string prelanguagecode)
{
PreLanguageCode = prelanguagecode;
}
/*
* @brief 获取上一次设置的语言code
*/
- char *LanguageSwitchModel::GetLastLanguageCode(void)
+ const char *LanguageSwitchModel::GetLastLanguageCode(void)
{
- return PreLanguageCode;
+ return PreLanguageCode.c_str();
}
}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:17:43
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-08 11:21:43
+ * @LastEditTime: 2024-04-30 11:27:38
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp
*/
#include "AppViewIDs.h"
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
- NativeAbility::GetInstance().ChangeSlice(preSlice);
+ NativeAbility::GetInstance().Back();
}
return true;
}
bool LanguageSwitchPresenter::OnClick(UIView &view, const ClickEvent &event)
{
UNUSED(event);
- char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
+ const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
UILabelButtonExt *p_UILabelButtonExt = dynamic_cast<UILabelButtonExt *>(&view);
char *id = const_cast<char *>(p_UILabelButtonExt->GetViewId());
- language *g_planguage = new language();
+ language *g_planguage = language::GetInstance();
if (p_UILabelButtonExt != nullptr)
{
return false;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "lastLanguageCode = %s , CurrLanguageCode = %s", p_LanguageSwitchModel->GetLastLanguageCode(), p_LanguageSwitchModel->GetCurLanguageCode());
- // 检查当前语言ID是否已经是点击的语言ID,否则重复点击同一语言不响应切换
- if (p_LanguageSwitchModel->GetCurLanguageCode() == lastLanguageCode)
+ // 检查当前语言ID是否已经是点击的语言ID,否则重复点击同一语言不响应切换
+ if (strcmp(p_LanguageSwitchModel->GetCurLanguageCode(), lastLanguageCode) == 0)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Do not ChangeLanguage!!");
return true;
// 更新上一个语言ID
p_LanguageSwitchModel->SetLastLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode());
}
+ NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);//暂定选完语言后设置默认的Sliceid为主界面
return true;
}
// 如果是power键,且是亮屏状态,按键释放就返回上一级
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
{
- uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
- NativeAbility::GetInstance().ChangeSlice(preSlice);
+ NativeAbility::GetInstance().Back();
}
return true;
}
\r
if (strcmp(view.GetViewId(), "SystemLanguageButton") == 0)\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_LANGUAGE_SWITCH);\r
+ NativeAbility::GetInstance().EnterSlice(VIEW_LANGUAGE_SWITCH);\r
return true;\r
}\r
\r
if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT))\r
{\r
SystemPresenter::GetInstance()->set_key_falg(false);\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
\r
/* -------------------------------------------------------------------------- */\r
// 获取语言类\r
- language *g_planguage = new language;\r
+ //language *g_planguage = new language();\r
/* -------------------------------------------------------------------------- */\r
// 用来监听语言切换\r
bool RadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
{\r
- language *g_planguage;\r
- // static const char *en = "user/res/font/en.lang";\r
- // static const char *zh_CN = "user/res/font/zh.lang";\r
- switch (state)\r
- {\r
- case UICheckBox::SELECTED:\r
- if (isChineseRadioButtonSelected())\r
- {\r
- // 中文文本\r
- g_planguage->ChangeLanguage(LanguageId::ZH_CN);\r
- }\r
- else if (isEnglishRadioButtonSelected())\r
- {\r
- // 英语文本\r
- g_planguage->ChangeLanguage(LanguageId::EN);\r
- }\r
- m_label->SetTextId(0);\r
- // 强制刷新\r
- m_label->ForceResetText();\r
- RootView::GetInstance()->Invalidate();\r
- break;\r
- case UICheckBox::UNSELECTED:\r
- // Handle unselected state if needed\r
- break;\r
- default:\r
- break;\r
- }\r
+ // language *g_planguage;\r
+ // // static const char *en = "user/res/font/en.lang";\r
+ // // static const char *zh_CN = "user/res/font/zh.lang";\r
+ // switch (state)\r
+ // {\r
+ // case UICheckBox::SELECTED:\r
+ // if (isChineseRadioButtonSelected())\r
+ // {\r
+ // // 中文文本\r
+ // g_planguage->ChangeLanguage(LanguageId::ZH_CN);\r
+ // }\r
+ // else if (isEnglishRadioButtonSelected())\r
+ // {\r
+ // // 英语文本\r
+ // g_planguage->ChangeLanguage(LanguageId::EN);\r
+ // }\r
+ // m_label->SetTextId(0);\r
+ // // 强制刷新\r
+ // m_label->ForceResetText();\r
+ // RootView::GetInstance()->Invalidate();\r
+ // break;\r
+ // case UICheckBox::UNSELECTED:\r
+ // // Handle unselected state if needed\r
+ // break;\r
+ // default:\r
+ // break;\r
+ // }\r
return true;\r
}\r
\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
{\r
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
- if (preSlice == VIEW_LANGUAGE_SWITCH)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
- return true;\r
- }\r
- NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ NativeAbility::GetInstance().Back();\r
}\r
}\r
return true;\r
void WeatherModel::TimestampToMonthDayString(time_t timestamp, char *buffer)
{
- // 将时间戳转换成tm结构
- struct tm *timeinfo = localtime(×tamp);
+ // 将时间戳转换成tm结构
+ struct tm timeinfo;
+ localtime_r(×tamp, &timeinfo);
// 格式化输出月份和日期
// 注意: 月份tm_mon从0开始计数,所以显示时需要加1
- sprintf(buffer, "%02d.%02d", timeinfo->tm_mon + 1, timeinfo->tm_mday);
+ sprintf(buffer, "%02d.%02d", timeinfo.tm_mon + 1, timeinfo.tm_mday);
}
// 获取天气图片
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-22 10:04:36
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 09:28:18
+ * @LastEditTime: 2024-04-29 20:09:47
* @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp
*/
#include "notification_manager.h"
DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_TEXT_FONT, 30);
DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_LINE_HEIGHT, 40);
char str[512];
- memcpy(str, 0, 512);
+ memset(str, 0, 512);
sprintf(str, "当前设备已经与 %s 绑定", PairingViewEventListener::GetInstance().GetDeviceName());
DeviceUnbindingRequestViewLabel[0]->SetText(str);
DeviceUnbindingRequestViewLabel[0]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
DeviceUnbindingRequestViewLabel[1]->SetPosition(33, y, 400, 300);
DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_TEXT_FONT, 30);
DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_LINE_HEIGHT, 40);
- memcpy(str, 0, 512);
+ memset(str, 0, 512);
sprintf(str, "继续连接操作会解除与%s的绑定并将手表恢复出厂设置(会清空手表数据)\n\n是否继续此操作\n", PairingViewEventListener::GetInstance().GetDeviceName());
// str = "继续连接操作会解除与 " + GetDeviceName() + " 的绑定并将手表恢复出厂设置(会清空手表数据)\n\n是否继续此操作\n";
DeviceUnbindingRequestViewLabel[1]->SetText(str);