#define APP_LIST_PATH "/user/res/applist_icon"
#define APP_HEARET_ICON_PATH "/user/res/heart_chart/hearticon"//心率动画
+#ifdef SINGLE_USER_PARTITION
+ #define RING_MUSIC "/user/music/ring/ring.mp3"
+#else
+ #define RING_MUSIC "/music/ring/ring.mp3"
+#endif
+
#define MIN_BRIGHTNESS 51 /*最低亮度*/
#define MAX_BRIGHTNESS 255 /*最高亮度*/
#define MAX_BRIGHTNESS_HALF 127 /*最高亮度的一半*/
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPlayer uri %s.", uri.c_str());
playerCtr->SetSource(*source);
- playerCtr->SetAudioStreamType(AUDIO_STREAM_ALARM_CLOCK);
+ playerCtr->SetAudioStreamType(AUDIO_STREAM_RING);
playerCtr->Prepare();
// 申请焦点
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerInterruptListener new fail");
return OHOS_FAILURE;
}
- interrupt = { AUDIO_STREAM_ALARM_CLOCK, sessionId, playerInterruptListener };
+ interrupt = { AUDIO_STREAM_RING, sessionId, playerInterruptListener };
// 激活音频中断 5s超时
if (amIntance.ActivateAudioInterrupt(interrupt) == INTERRUPT_FAILED) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ActivateAudioInterrupt faild");
printf("receive %d bytes(%s)\n", len, data);
if(strstr((char*)data,"vcard-listing.dtd"))
{
- char * name_str=strstr((char*)data,"name");
- char *name_=strtok(name_str,"\"");
- name_=strtok(NULL,"\"");
- OHOS:: CallerLogModel::GetInstance()->Setphonebname(name_,strlen(name_));
+ if(strstr((char*)data,"name"))
+ {
+ char * name_str=strstr((char*)data,"name");
+ char *name_=strtok(name_str,"\"");
+ name_=strtok(NULL,"\"");
+ OHOS:: CallerLogModel::GetInstance()->Setphonebname(name_,strlen(name_));
+ }
+
}
return;
#include "dial_sos_c.h"
#include "cat1_ctl.h"
#include "cat1_server.h"
-
+#include "AlarmClockModel.h"
#ifdef __cplusplus
extern "C" {
#endif
CallerLogModel::GetInstance()->Setphonebname("0",0);
CallerLogModel::GetInstance()->SetCallDial(CallerLogModel::HFP_PHONE_DIAL);
CallerLogModel::GetInstance()->set_RejectIncomingCall_falg(0);
- CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::callleisure);
NotificationManager::GetInstance()->SetWatchCallStatus(false);
CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourcePhone);
DisshakeTimer();
set_call_hungup_flag(0);
-
+ set_TransCallToMobilePhone_falg(0);
+
+ OHOS::AlarmClockModel::GetInstance()->AlarmPlayerStop();
// If the call is handling in the notification, the slice is not switched
- if (!CallerLogModel::GetInstance()->GetNotifyFlag())
+ //if (!CallerLogModel::GetInstance()->GetNotifyFlag())
{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "xxxxxxxxxxxxx");
PhoneServiceScreenCtr(false);
if(NativeAbility::GetInstance().GetCurSliceId() == VIEW_INCOMING_CALL)
{
NativeAbility::GetInstance().Back_CountSlice_make_phone();
}
-
- } else {
- g_isWatchCallView = false;
}
+ // } else {
+ // g_isWatchCallView = false;
+ // }
return;
}
TransCallToMobilePhone();
// If the call is handling in the notification, the slice is not switched
if (!CallerLogModel::GetInstance()->GetNotifyFlag()) {
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); // 退出通话界面,回到主表盘应用
+ //NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); // 退出通话界面,回到主表盘应用
+ StatusReset();
} else {
g_isWatchCallView = false;
}
}
if (GetCurrCallNum() == 0) {
g_phoneStatus = PHONE_SINGLE_STATUS;
+ StatusReset();
+ set_TransCallToMobilePhone_falg(0);
}
+
+
if(get_falg_SOS())
{
sos_falg_add();
else
{
uapi_SetSpeaker_Mute(false);
+ //OHOS::AlarmClockModel::GetInstance()->AlarmPlayerStop();
}
if (phoneCall->operate == OPERATE_WATCH_FINISH && GetCurrCallNum() == 0) {
else
{
uapi_SetSpeaker_Mute(false);
+ OHOS::AlarmClockModel::GetInstance()->AlarmPlayerStop();
}
+
+
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoConnectHandle] g_isCall = %d", g_isCall);
switch (g_isCall) {
case HFP_HF_CALL_STATE_ACTIVE:
void uapi_SetSpeaker_Mute(bool isMute);
+void set_TransCallToMobilePhone_falg(uint8_t date);
#ifdef __cplusplus
#include "gfx_utils/mem_api.h"
#include "ConfigModelC.h"
#include "cat1_ctl.h"
+#include "UiConfig.h"
#ifdef __cplusplus
extern "C" {
#endif
static int g_hdlDnSpk = INVALID_PHONE_SERVICE_VALUE;
static int g_hdlDnSco = INVALID_PHONE_SERVICE_VALUE;
+
+static uint8_t TransCallToMobilePhone_falg=0;
+
PhoneServiceCb g_callChanged;
void HfpIncomingEventPublish(uint16 topic, hfp_hf_calls_info_t callsInfo);
{
int ret;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AudioConnectScoDevInit] start scoFlag:0x%x, audioState:0x%x",
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AudioConnectScoDevInit] start scoFlag:0x%x, audioState:0x%x",
g_scoFlag, g_audioState);
if (g_scoFlag != HFP_SCO_STATE_CONNECTED || g_audioState < AUDIO_ACT_INTERRUPT_BT_SCO) {
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"AudioConnectScoDevInit");
return;
}
return;
}
+
+
ScoStatusCb(HFP_SCO_STATE_CONNECTED);
if (g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_CONNECTED) {
// The call is transferred from the phone to the watch. Need to show the call notification view.
ScoConnectPro();
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connecting!");
}
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO HFP_SCO_STATE_CONNECTING!");
+ }
+
break;
case HFP_SCO_STATE_CONNECTED:
// 同步音量
SyncVolume();
+ if(TransCallToMobilePhone_falg)
+ {
+ TransCallToMobilePhone();
+ }
+
+
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connected!");
break;
// SCO断连中
static void PlayWatchRing(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[PlayWatchRing] start");
- // if(true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()) && true != OHOS::ConfigModel::GetInstance()->GetSilentMode())
- // {
- // OHOS::AlarmClockModel::GetInstance()->testPlayerStart("/music/ring/ring.mp3");
- // }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[PlayWatchRing] start");
+ if(true != OHOS::ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()) && true != OHOS::ConfigModel::GetInstance()->GetSilentMode())
+ {
+
+ OHOS::AlarmClockModel::GetInstance()->testPlayerStart(RING_MUSIC);
+ g_audioState = AUDIO_ACT_INTERRUPT_WATCH_RING;
+
+ }
}
static void CallAudioHandle(const hfp_hf_calls_info_t *call)
{
int state = call->state;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CallAudioHandle] start %d %d",state,call->in_band_ring);
+ //不能主动连接
+ // if (state == HFP_HF_CALL_STATE_INCOMING)
+ // TransCallToWatch();
if (state == HFP_HF_CALL_STATE_INCOMING || state == HFP_HF_CALL_STATE_DIALING ||
state == HFP_HF_CALL_STATE_ALERTING) { // 电话呼入,支持播放手机铃声
PostGraphicEvent(AudioDn);
}
} else {
- if (g_scoFlag != HFP_SCO_STATE_CONNECTED) {
+ //if (g_scoFlag != HFP_SCO_STATE_CONNECTED &&
+ if(state == HFP_HF_CALL_STATE_INCOMING) {
// 播放手表铃声
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"xxxxxxxxxxx");
PostGraphicEvent(PlayWatchRing);
}
}
return g_completeCallFlag;
}
+static void stop_ring(void)
+{
+ OHOS::AlarmClockModel::GetInstance()->AlarmPlayerStop();
+}
+
// 通话状态变化上报回调
static void CallStateChanged(const bd_addr_t *bdAddr, const hfp_hf_calls_info_t *call)
{
CallAudioHandle(call);
uapi_pbap_cmd_pull_vcard_listing((unsigned char *)call->number);
+ if(HFP_HF_CALL_STATE_INCOMING!=call->state)
+ {
+ PostGraphicEvent(stop_ring);
+ //
+ }
+
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "CallStateChanged state:%d", call->state);
switch (call->state) {
//return;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SetSpeakerMute] start!");
- if(isMute==true && (true == OHOS::ConfigModel::GetInstance()->GetDnotdisturb() ||
- (uapi_sleep_mode_flag_get()) || true == OHOS::ConfigModel::GetInstance()->GetSilentMode()))
+ if(isMute==true )
+ // && (true == OHOS::ConfigModel::GetInstance()->GetDnotdisturb() ||
+ // (uapi_sleep_mode_flag_get()) || true == OHOS::ConfigModel::GetInstance()->GetSilentMode()))
{
if(isMute!=SetSpeaker)
{
return PhoneAudioSetMicMute(isMute);
}
-static bool data;
+static uint8_t Mutecat1_data;
int32_t SetMicMutecat1(bool isMute)
{
- data=isMute;
- do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT1_MIC_CTRL, &data, sizeof(bool));
+ Mutecat1_data=isMute;
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT1_MIC_CTRL, &Mutecat1_data, sizeof(bool));
return 0;
}
}
}
+
+void set_TransCallToMobilePhone_falg(uint8_t date)
+{
+ TransCallToMobilePhone_falg=date;
+}
// 通话转移到手机
int TransCallToMobilePhone(void)
{
ret = GetScoConnectState();
if (ret == HFP_SCO_STATE_DISCONNECTED || ret == HFP_SCO_STATE_DISCONNECTING) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[TransCallToMobilePhone] >>");
+ TransCallToMobilePhone_falg=1;
+
return OHOS_SUCCESS;
} else {
ret = hfp_hf_disconnect_sco(&g_bdAddr);
if (ret != 0) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[TransCallToMobilePhone] ret:%d", ret);
}
+ TransCallToMobilePhone_falg=1;
return ret;
}
}
#include "system/include/SystemLogModelC.h"
#include "cat1_ctl.h"
#include "ui_service.h"
+
+#include "UiConfig.h"
+
#define DIALDATASET 1
//#include "Systemupgrade.h"
namespace OHOS {
if(true != ConfigModel::GetInstance()->GetDnotdisturb() && (!uapi_sleep_mode_flag_get()) && true != ConfigModel::GetInstance()->GetSilentMode())
{
-#ifdef SINGLE_USER_PARTITION
- AlarmClockModel::GetInstance()->testPlayerStart("/user/music/ring/ring.mp3");
-#else
- AlarmClockModel::GetInstance()->testPlayerStart("/music/ring/ring.mp3");
-#endif
+ AlarmClockModel::GetInstance()->testPlayerStart(RING_MUSIC);
}
CallerLogModel::GetInstance()->SetoperateNumber(call_data,strlen(call_data));
bool cm_get_SPP_switch(void)
{
bool isopen = OHOS::ConfigModel::GetInstance()->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPP);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getSPPSwitch %d",isopen);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "getSPPSwitch %d",isopen);
return isopen;
}
bool cm_get_HFP_switch(void)
{
bool isopen = OHOS::ConfigModel::GetInstance()->GetHFPState();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getHFPSwitch %d",isopen);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "getHFPSwitch %d",isopen);
return isopen;
}
bool cm_get_A2DP_switch(void)
{
bool isopen = OHOS::ConfigModel::GetInstance()->GetA2DPState();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getA2DPSwitch %d",isopen);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "getA2DPSwitch %d",isopen);
return isopen;
}
void cm_set_timezone_quarters(int16_t timezone_quarters)