diff --git a/services/call/call_state_observer/src/call_records_manager.cpp b/services/call/call_state_observer/src/call_records_manager.cpp index 69e01f3d6fbdd5dcfca0f999a382e2ae9e358943..2b58363b7765879616aad2aeb2c5d86ba8dd185e 100644 --- a/services/call/call_state_observer/src/call_records_manager.cpp +++ b/services/call/call_state_observer/src/call_records_manager.cpp @@ -45,6 +45,9 @@ const char *FORMAT_PATTERN = ",|;"; const char *MARK_SOURCE_OF_ANTIFRAUT_CENTER = "5"; const char *MARK_SOURCE_OF_OTHERS = "3"; const std::string SETTINGS_ANTIFRAUD_CENTER_SWITCH = ""; +const std::string SETTINGS_ANTIFRAUD_BESTMIND_SWITCH = ""; +const std::string ANTIFRAUD_CENTER_BUNDLE_NAME = ""; +const std::string BEST_MIND_BUNDLE_NAME = ""; const std::string TELEPHONY_IDENTITY_SWITCH = ""; CallRecordsManager::CallRecordsManager() : callRecordsHandlerServerPtr_(nullptr) {} @@ -298,6 +301,7 @@ void CallRecordsManager::GetNumberMarkSource(int32_t userId, char *source, unsig { std::string isAntifraudSwitchOn = "0"; std::string isTelephonyIdentityOn = "0"; + std::string isAntiFraudBestMindSwitchOn = "0"; auto settingHelper = SettingsDataShareHelper::GetInstance(); if (settingHelper == nullptr) { return; @@ -307,7 +311,8 @@ void CallRecordsManager::GetNumberMarkSource(int32_t userId, char *source, unsig } OHOS::Uri settingUri(SettingsDataShareHelper::SETTINGS_DATASHARE_URI); settingHelper->Query(settingUri, SETTINGS_ANTIFRAUD_CENTER_SWITCH, isAntifraudSwitchOn); - if (isAntifraudSwitchOn == "0") { + settingHelper->Query(settingUri, SETTINGS_ANTIFRAUD_BESTMIND_SWITCH, isAntiFraudBestMindSwitchOn); + if (isAntifraudSwitchOn == "0" && isAntiFraudBestMindSwitchOn == "0") { strcpy_s(source, size, MARK_SOURCE_OF_OTHERS); return; } @@ -316,7 +321,11 @@ void CallRecordsManager::GetNumberMarkSource(int32_t userId, char *source, unsig strcpy_s(source, size, MARK_SOURCE_OF_OTHERS); return; } - if (!CallManagerUtils::IsBundleInstalled("", userId)) { + bool isAntiFraudCenterApp = + CallManagerUtils::IsBundleInstalled(ANTIFRAUD_CENTER_BUNDLE_NAME, userId); + bool isAntiFraudBestMindApp = + CallManagerUtils::IsBundleInstalled(BEST_MIND_BUNDLE_NAME, userId); + if (!isAntiFraudCenterApp && !isAntiFraudBestMindApp) { strcpy_s(source, size, MARK_SOURCE_OF_OTHERS); return; }