From b2283ea033300ad73a189060f3c19332fd8668fe Mon Sep 17 00:00:00 2001 From: cff-gite Date: Wed, 24 Jul 2024 18:54:25 +0800 Subject: [PATCH 01/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I794682336a843e665a08df49959bac357344c6e5 --- services/miscdevice_service/BUILD.gn | 2 ++ .../include/vibration_priority_manager.h | 1 + .../src/vibration_priority_manager.cpp | 12 ++++++++++++ 3 files changed, 15 insertions(+) diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index 73c781f..5b9de02 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -59,6 +59,7 @@ ohos_shared_library("libmiscdevice_service") { external_deps = [ "ability_base:want", "ability_base:zuri", + "ability_runtime:app_manager", "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", @@ -146,6 +147,7 @@ ohos_static_library("libmiscdevice_service_static") { external_deps = [ "ability_base:want", "ability_base:zuri", + "ability_runtime:app_manager", "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", diff --git a/services/miscdevice_service/include/vibration_priority_manager.h b/services/miscdevice_service/include/vibration_priority_manager.h index e885a0d..c3eb2db 100644 --- a/services/miscdevice_service/include/vibration_priority_manager.h +++ b/services/miscdevice_service/include/vibration_priority_manager.h @@ -63,6 +63,7 @@ public: DISALLOW_COPY_AND_MOVE(VibrationPriorityManager); bool Init(); VibrateStatus ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, std::shared_ptr vibratorThread); + bool ShouldIgnoreSwitch(const VibrateInfo &info); private: bool IsCurrentVibrate(std::shared_ptr vibratorThread) const; diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 6c17fe7..9a78063 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -15,6 +15,7 @@ #include "vibration_priority_manager.h" +#include "app_mgr_client.h" #include "ipc_skeleton.h" #include "iservice_registry.h" #include "system_ability_definition.h" @@ -168,6 +169,17 @@ void VibrationPriorityManager::UpdateStatus() } } +bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &info) +{ + int32_t pid = info.pid; + AppExecfwk::RunningProcessInfo processinfo{}; + DelayedSingleton::GetInstance()->AppExecfwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); + if (processinfo.extensionType_ == AppExecfwk::ExtensionAbilityType::INPUTMETHOD) { + return true; + } + return false; +} + VibrateStatus VibrationPriorityManager::ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, std::shared_ptr vibratorThread) { -- Gitee From 471866b179ec05d81b880da348a07cb381cc0fe1 Mon Sep 17 00:00:00 2001 From: cff-gite Date: Wed, 24 Jul 2024 19:05:43 +0800 Subject: [PATCH 02/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I86f4178a3ac064e821b5eb6fb79537e33daa70b0 --- .../src/vibration_priority_manager.cpp | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 9a78063..7207a7a 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -169,12 +169,13 @@ void VibrationPriorityManager::UpdateStatus() } } -bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &info) +bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo) { - int32_t pid = info.pid; - AppExecfwk::RunningProcessInfo processinfo{}; - DelayedSingleton::GetInstance()->AppExecfwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); - if (processinfo.extensionType_ == AppExecfwk::ExtensionAbilityType::INPUTMETHOD) { + int32_t pid = vibrateInfo.pid; + AppExecFwk::RunningProcessInfo processinfo{}; + DelayedSingleton::GetInstance()-> + AppExecFwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); + if (processinfo.extensionType_ == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { return true; } return false; @@ -188,16 +189,19 @@ VibrateStatus VibrationPriorityManager::ShouldIgnoreVibrate(const VibrateInfo &v return VIBRATION; } UpdateStatus(); - if ((vibrateInfo.usage == USAGE_ALARM || vibrateInfo.usage == USAGE_RING || vibrateInfo.usage == USAGE_NOTIFICATION - || vibrateInfo.usage == USAGE_COMMUNICATION) && (miscAudioRingerMode_ == RINGER_MODE_SILENT)) { - MISC_HILOGD("Vibration is ignored for ringer mode:%{public}d", static_cast(miscAudioRingerMode_)); - return IGNORE_RINGER_MODE; - } - if ((vibrateInfo.usage == USAGE_TOUCH || vibrateInfo.usage == USAGE_MEDIA || vibrateInfo.usage == USAGE_UNKNOWN - || vibrateInfo.usage == USAGE_PHYSICAL_FEEDBACK || vibrateInfo.usage == USAGE_SIMULATE_REALITY) - && (miscFeedback_ == FEEDBACK_MODE_OFF)) { - MISC_HILOGD("Vibration is ignored for feedback:%{public}d", static_cast(miscFeedback_)); - return IGNORE_FEEDBACK; + if (!ShouldIgnoreSwitch(vibrateInfo)) { + if ((vibrateInfo.usage == USAGE_ALARM || vibrateInfo.usage == USAGE_RING || + vibrateInfo.usage == USAGE_NOTIFICATION + || vibrateInfo.usage == USAGE_COMMUNICATION) && (miscAudioRingerMode_ == RINGER_MODE_SILENT)) { + MISC_HILOGD("Vibration is ignored for ringer mode:%{public}d", static_cast(miscAudioRingerMode_)); + return IGNORE_RINGER_MODE; + } + if ((vibrateInfo.usage == USAGE_TOUCH || vibrateInfo.usage == USAGE_MEDIA || vibrateInfo.usage == USAGE_UNKNOWN + || vibrateInfo.usage == USAGE_PHYSICAL_FEEDBACK || vibrateInfo.usage == USAGE_SIMULATE_REALITY) + && (miscFeedback_ == FEEDBACK_MODE_OFF)) { + MISC_HILOGD("Vibration is ignored for feedback:%{public}d", static_cast(miscFeedback_)); + return IGNORE_FEEDBACK; + } } if (vibratorThread == nullptr) { MISC_HILOGD("There is no vibration, it can vibrate"); -- Gitee From a039fcfc130161471e66826a8aa598d0fb631e65 Mon Sep 17 00:00:00 2001 From: cff-gite Date: Wed, 24 Jul 2024 19:16:19 +0800 Subject: [PATCH 03/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I627b8e96f17080c921fb66a2cde4b3e93d671b6d --- .../miscdevice_service/include/vibration_priority_manager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/miscdevice_service/include/vibration_priority_manager.h b/services/miscdevice_service/include/vibration_priority_manager.h index c3eb2db..f3830fa 100644 --- a/services/miscdevice_service/include/vibration_priority_manager.h +++ b/services/miscdevice_service/include/vibration_priority_manager.h @@ -63,7 +63,7 @@ public: DISALLOW_COPY_AND_MOVE(VibrationPriorityManager); bool Init(); VibrateStatus ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, std::shared_ptr vibratorThread); - bool ShouldIgnoreSwitch(const VibrateInfo &info); + bool ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo); private: bool IsCurrentVibrate(std::shared_ptr vibratorThread) const; -- Gitee From 8ccb1d399c53b6fb1eee5a73fc6b9c9c7f685328 Mon Sep 17 00:00:00 2001 From: cff-gite Date: Thu, 25 Jul 2024 09:14:18 +0800 Subject: [PATCH 04/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I9af448bdd8a92e03647008142e1bcd265061038d --- .../include/vibration_priority_manager.h | 4 +++- .../src/vibration_priority_manager.cpp | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/services/miscdevice_service/include/vibration_priority_manager.h b/services/miscdevice_service/include/vibration_priority_manager.h index f3830fa..4a690ab 100644 --- a/services/miscdevice_service/include/vibration_priority_manager.h +++ b/services/miscdevice_service/include/vibration_priority_manager.h @@ -21,6 +21,7 @@ #include #include +#include "app_mgr_client.h" #include "datashare_helper.h" #include "iremote_object.h" #include "singleton.h" @@ -63,11 +64,11 @@ public: DISALLOW_COPY_AND_MOVE(VibrationPriorityManager); bool Init(); VibrateStatus ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, std::shared_ptr vibratorThread); - bool ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo); private: bool IsCurrentVibrate(std::shared_ptr vibratorThread) const; bool IsLoopVibrate(const VibrateInfo &vibrateInfo) const; + bool ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo); VibrateStatus ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, VibrateInfo currentVibrateInfo) const; static void ExecRegisterCb(const sptr &observer); int32_t RegisterObserver(const sptr &observer); @@ -82,6 +83,7 @@ private: void UpdateStatus(); sptr remoteObj_ { nullptr }; sptr observer_ { nullptr }; + std::shared_ptr appMgrClientPtr_ {nullptr}; std::atomic_int32_t miscFeedback_ = FEEDBACK_MODE_INVALID; std::atomic_int32_t miscAudioRingerMode_ = RINGER_MODE_INVALID; }; diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 7207a7a..e3f9af1 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -15,7 +15,6 @@ #include "vibration_priority_manager.h" -#include "app_mgr_client.h" #include "ipc_skeleton.h" #include "iservice_registry.h" #include "system_ability_definition.h" @@ -173,8 +172,12 @@ bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo { int32_t pid = vibrateInfo.pid; AppExecFwk::RunningProcessInfo processinfo{}; - DelayedSingleton::GetInstance()-> - AppExecFwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); + appMgrClientPtr_ = DelayedSingleton::GetInstance(); + if (appMgrClientPtr_ == nullptr) { + MISC_HILOGD("appMgrClientPtr is nullptr"); + return false; + } + appMgrClientPtr_->AppExecFwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); if (processinfo.extensionType_ == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { return true; } -- Gitee From bde481304e2e8e87968e9a8aa90ce1c0a62d196b Mon Sep 17 00:00:00 2001 From: cff-gite Date: Thu, 25 Jul 2024 09:20:49 +0800 Subject: [PATCH 05/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I67b321a674eaa96317f4a4547faeaeef2792e3eb --- .../miscdevice_service/src/vibration_priority_manager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index e3f9af1..dffb361 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -177,7 +177,11 @@ bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo MISC_HILOGD("appMgrClientPtr is nullptr"); return false; } - appMgrClientPtr_->AppExecFwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); + int32_t ret = appMgrClientPtr_->AppExecFwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); + if (ret != ERR_OK) { + MISC_HILOGD("Getrunningprocessinfobypid failed"); + return false; + } if (processinfo.extensionType_ == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { return true; } -- Gitee From 862e96b7c7669f9f3b4bd2bfb10687eadc8d437f Mon Sep 17 00:00:00 2001 From: cff-gite Date: Thu, 25 Jul 2024 10:05:30 +0800 Subject: [PATCH 06/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I6c90ae47b5486176fa4499215f0054fdf190c491 --- .../miscdevice_service/src/vibration_priority_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index dffb361..1d5bb55 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -174,12 +174,12 @@ bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo AppExecFwk::RunningProcessInfo processinfo{}; appMgrClientPtr_ = DelayedSingleton::GetInstance(); if (appMgrClientPtr_ == nullptr) { - MISC_HILOGD("appMgrClientPtr is nullptr"); + MISC_HILOGE("appMgrClientPtr is nullptr"); return false; } int32_t ret = appMgrClientPtr_->AppExecFwk::AppMgrClient::GetRunningProcessInfoByPid(pid, processinfo); if (ret != ERR_OK) { - MISC_HILOGD("Getrunningprocessinfobypid failed"); + MISC_HILOGE("Getrunningprocessinfobypid failed"); return false; } if (processinfo.extensionType_ == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { -- Gitee From dea5f1bbb8d25c8344a52dcf621361dc97dfc109 Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 10:18:40 +0800 Subject: [PATCH 07/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: Ic615f32d341d3af1701e6386507e7db1b5765469 --- bundle.json | 2 + services/miscdevice_service/BUILD.gn | 2 + .../include/vibration_priority_manager.h | 2 +- .../src/vibration_priority_manager.cpp | 56 ++++++++++++++----- 4 files changed, 47 insertions(+), 15 deletions(-) diff --git a/bundle.json b/bundle.json index 2e8b6f4..6795f49 100644 --- a/bundle.json +++ b/bundle.json @@ -25,6 +25,7 @@ "ability_runtime", "access_token", "bounds_checking_function", + "bundle_framework", "common_event_service", "c_utils", "data_share", @@ -38,6 +39,7 @@ "json", "memmgr", "napi", + "os_account", "safwk", "samgr", "cJSON" diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index 5b9de02..ec8edcd 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -151,6 +151,7 @@ ohos_static_library("libmiscdevice_service_static") { "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", + "bundle_framework:appexecfwk_core", "cJSON:cjson", "c_utils:utils", "common_event_service:cesfwk_innerkits", @@ -163,6 +164,7 @@ ohos_static_library("libmiscdevice_service_static") { "hitrace:hitrace_meter", "ipc:ipc_single", "json:nlohmann_json_static", + "os_account:os_account_innerkits", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] diff --git a/services/miscdevice_service/include/vibration_priority_manager.h b/services/miscdevice_service/include/vibration_priority_manager.h index 4a690ab..515e1df 100644 --- a/services/miscdevice_service/include/vibration_priority_manager.h +++ b/services/miscdevice_service/include/vibration_priority_manager.h @@ -68,8 +68,8 @@ public: private: bool IsCurrentVibrate(std::shared_ptr vibratorThread) const; bool IsLoopVibrate(const VibrateInfo &vibrateInfo) const; - bool ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo); VibrateStatus ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, VibrateInfo currentVibrateInfo) const; + bool ShouldIgnoreInputManager(const VibrateInfo &vibrateInfo); static void ExecRegisterCb(const sptr &observer); int32_t RegisterObserver(const sptr &observer); int32_t UnregisterObserver(const sptr &observer); diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 1d5bb55..3f9f8f0 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -15,8 +15,11 @@ #include "vibration_priority_manager.h" +#include "bundle_mgr_client.h" #include "ipc_skeleton.h" #include "iservice_registry.h" +#include "os_account_manager.h" +#include "running_process_info.h" #include "system_ability_definition.h" #include "uri.h" @@ -168,7 +171,7 @@ void VibrationPriorityManager::UpdateStatus() } } -bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo) +bool VibrationPriorityManager::ShouldIgnoreInputManager(const VibrateInfo &vibrateInfo) { int32_t pid = vibrateInfo.pid; AppExecFwk::RunningProcessInfo processinfo{}; @@ -185,6 +188,33 @@ bool VibrationPriorityManager::ShouldIgnoreSwitch(const VibrateInfo &vibrateInfo if (processinfo.extensionType_ == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { return true; } + for (const auto &bundleName : processinfo.bundleNames) { + MISC_HILOGD("bundleName = %{public}s", bundleName.c_str()); + std::vector activeUserIds; + int ret = AccountSA::OsAccountManager::QueryActiveOsAccountIds(activeUserIds); + if (ret != 0) { + MISC_HILOGD("QueryActiveOsAccountIds failed %{public}d", ret); + return false; + } + if (activeUserIds.empty()) { + MISC_HILOGD("activeUserId empty"); + return false; + } + AppExecFwk::BundleMgrClient bundleMgrClient; + AppExecFwk::BundleInfo bundleInfo; + auto res = bundleMgrClient.AppExecFwk::BundleMgrClient::GetBundleInfo(bundleName, + AppExecFwk::BundleFlag::GET_BUNDLE_WITH_EXTENSION_INFO, bundleInfo, activeUserIds[0]); + if (!res) { + MISC_HILOGE("Getbundleinfo fail, res = %{public}d", res); + return false; + } + for (const auto &extensionInfo : bundleInfo.extensionInfos) { + if (extensionInfo.type == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { + MISC_HILOGE("extensioninfo type is %{public}d", extensionInfo.type); + return true; + } + } + } return false; } @@ -196,19 +226,17 @@ VibrateStatus VibrationPriorityManager::ShouldIgnoreVibrate(const VibrateInfo &v return VIBRATION; } UpdateStatus(); - if (!ShouldIgnoreSwitch(vibrateInfo)) { - if ((vibrateInfo.usage == USAGE_ALARM || vibrateInfo.usage == USAGE_RING || - vibrateInfo.usage == USAGE_NOTIFICATION - || vibrateInfo.usage == USAGE_COMMUNICATION) && (miscAudioRingerMode_ == RINGER_MODE_SILENT)) { - MISC_HILOGD("Vibration is ignored for ringer mode:%{public}d", static_cast(miscAudioRingerMode_)); - return IGNORE_RINGER_MODE; - } - if ((vibrateInfo.usage == USAGE_TOUCH || vibrateInfo.usage == USAGE_MEDIA || vibrateInfo.usage == USAGE_UNKNOWN - || vibrateInfo.usage == USAGE_PHYSICAL_FEEDBACK || vibrateInfo.usage == USAGE_SIMULATE_REALITY) - && (miscFeedback_ == FEEDBACK_MODE_OFF)) { - MISC_HILOGD("Vibration is ignored for feedback:%{public}d", static_cast(miscFeedback_)); - return IGNORE_FEEDBACK; - } + if ((vibrateInfo.usage == USAGE_ALARM || vibrateInfo.usage == USAGE_RING || + vibrateInfo.usage == USAGE_NOTIFICATION + || vibrateInfo.usage == USAGE_COMMUNICATION) && (miscAudioRingerMode_ == RINGER_MODE_SILENT)) { + MISC_HILOGD("Vibration is ignored for ringer mode:%{public}d", static_cast(miscAudioRingerMode_)); + return IGNORE_RINGER_MODE; + } + if (((vibrateInfo.usage == USAGE_TOUCH || vibrateInfo.usage == USAGE_MEDIA || vibrateInfo.usage == USAGE_UNKNOWN + || vibrateInfo.usage == USAGE_PHYSICAL_FEEDBACK || vibrateInfo.usage == USAGE_SIMULATE_REALITY) + && (miscFeedback_ == FEEDBACK_MODE_OFF)) && !ShouldIgnoreSwitch(vibrateInfo)) { + MISC_HILOGD("Vibration is ignored for feedback:%{public}d", static_cast(miscFeedback_)); + return IGNORE_FEEDBACK; } if (vibratorThread == nullptr) { MISC_HILOGD("There is no vibration, it can vibrate"); -- Gitee From 01d60b7ee125e8b86c9cec469737a63921d87f04 Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 11:43:24 +0800 Subject: [PATCH 08/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: If7306010b576db27315cd688538f81a3d28a3ed0 --- services/miscdevice_service/BUILD.gn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index ec8edcd..7caaef6 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -60,6 +60,7 @@ ohos_shared_library("libmiscdevice_service") { "ability_base:want", "ability_base:zuri", "ability_runtime:app_manager", + "bundle_framework:appexecfwk_core", "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", @@ -73,6 +74,7 @@ ohos_shared_library("libmiscdevice_service") { "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", + "os_account:os_account_innerkits", "ipc:ipc_single", "json:nlohmann_json_static", "safwk:system_ability_fwk", @@ -147,7 +149,7 @@ ohos_static_library("libmiscdevice_service_static") { external_deps = [ "ability_base:want", "ability_base:zuri", - "ability_runtime:app_manager", + "ability_runtime:app_manager" "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", -- Gitee From 20b7d8bf9844e0b72121a72aa50b8d95905bc7aa Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 15:47:22 +0800 Subject: [PATCH 09/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: Id299140f4d0faf850823d257375ff998a023e6e1 --- .../src/vibration_priority_manager.cpp | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 3f9f8f0..8396111 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -188,18 +188,18 @@ bool VibrationPriorityManager::ShouldIgnoreInputManager(const VibrateInfo &vibra if (processinfo.extensionType_ == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { return true; } + std::vector activeUserIds; + int retId = AccountSA::OsAccountManager::QueryActiveOsAccountIds(activeUserIds); + if (retId != 0) { + MISC_HILOGE("QueryActiveOsAccountIds failed %{public}d", retId); + return false; + } + if (activeUserIds.empty()) { + MISC_HILOGE("activeUserId empty"); + return false; + } for (const auto &bundleName : processinfo.bundleNames) { MISC_HILOGD("bundleName = %{public}s", bundleName.c_str()); - std::vector activeUserIds; - int ret = AccountSA::OsAccountManager::QueryActiveOsAccountIds(activeUserIds); - if (ret != 0) { - MISC_HILOGD("QueryActiveOsAccountIds failed %{public}d", ret); - return false; - } - if (activeUserIds.empty()) { - MISC_HILOGD("activeUserId empty"); - return false; - } AppExecFwk::BundleMgrClient bundleMgrClient; AppExecFwk::BundleInfo bundleInfo; auto res = bundleMgrClient.AppExecFwk::BundleMgrClient::GetBundleInfo(bundleName, -- Gitee From d7c25821199b9c34f5d7920853dec15bf300b6d8 Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 16:21:54 +0800 Subject: [PATCH 10/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: Ifca8af624f6ac6c139d795e18a87bba2ac34a5fc --- services/miscdevice_service/BUILD.gn | 2 +- .../include/vibration_priority_manager.h | 2 +- .../src/vibration_priority_manager.cpp | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index 7caaef6..7cd46dd 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -60,10 +60,10 @@ ohos_shared_library("libmiscdevice_service") { "ability_base:want", "ability_base:zuri", "ability_runtime:app_manager", - "bundle_framework:appexecfwk_core", "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", + "bundle_framework:appexecfwk_core", "cJSON:cjson", "c_utils:utils", "common_event_service:cesfwk_innerkits", diff --git a/services/miscdevice_service/include/vibration_priority_manager.h b/services/miscdevice_service/include/vibration_priority_manager.h index 515e1df..ab08dd8 100644 --- a/services/miscdevice_service/include/vibration_priority_manager.h +++ b/services/miscdevice_service/include/vibration_priority_manager.h @@ -69,7 +69,7 @@ private: bool IsCurrentVibrate(std::shared_ptr vibratorThread) const; bool IsLoopVibrate(const VibrateInfo &vibrateInfo) const; VibrateStatus ShouldIgnoreVibrate(const VibrateInfo &vibrateInfo, VibrateInfo currentVibrateInfo) const; - bool ShouldIgnoreInputManager(const VibrateInfo &vibrateInfo); + bool ShouldIgnoreInputMethod(const VibrateInfo &vibrateInfo); static void ExecRegisterCb(const sptr &observer); int32_t RegisterObserver(const sptr &observer); int32_t UnregisterObserver(const sptr &observer); diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 8396111..897b248 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -171,7 +171,7 @@ void VibrationPriorityManager::UpdateStatus() } } -bool VibrationPriorityManager::ShouldIgnoreInputManager(const VibrateInfo &vibrateInfo) +bool VibrationPriorityManager::ShouldIgnoreInputMethod(const VibrateInfo &vibrateInfo) { int32_t pid = vibrateInfo.pid; AppExecFwk::RunningProcessInfo processinfo{}; @@ -205,16 +205,16 @@ bool VibrationPriorityManager::ShouldIgnoreInputManager(const VibrateInfo &vibra auto res = bundleMgrClient.AppExecFwk::BundleMgrClient::GetBundleInfo(bundleName, AppExecFwk::BundleFlag::GET_BUNDLE_WITH_EXTENSION_INFO, bundleInfo, activeUserIds[0]); if (!res) { - MISC_HILOGE("Getbundleinfo fail, res = %{public}d", res); + MISC_HILOGE("Getbundleinfo fail"); return false; } for (const auto &extensionInfo : bundleInfo.extensionInfos) { if (extensionInfo.type == AppExecFwk::ExtensionAbilityType::INPUTMETHOD) { - MISC_HILOGE("extensioninfo type is %{public}d", extensionInfo.type); + MISC_HILOGD("extensioninfo type is %{public}d", extensionInfo.type); return true; } } - } + } return false; } @@ -234,7 +234,7 @@ VibrateStatus VibrationPriorityManager::ShouldIgnoreVibrate(const VibrateInfo &v } if (((vibrateInfo.usage == USAGE_TOUCH || vibrateInfo.usage == USAGE_MEDIA || vibrateInfo.usage == USAGE_UNKNOWN || vibrateInfo.usage == USAGE_PHYSICAL_FEEDBACK || vibrateInfo.usage == USAGE_SIMULATE_REALITY) - && (miscFeedback_ == FEEDBACK_MODE_OFF)) && !ShouldIgnoreSwitch(vibrateInfo)) { + && (miscFeedback_ == FEEDBACK_MODE_OFF)) && !ShouldIgnoreInputMethod(vibrateInfo)) { MISC_HILOGD("Vibration is ignored for feedback:%{public}d", static_cast(miscFeedback_)); return IGNORE_FEEDBACK; } -- Gitee From ef77ce832926ad8bb70537d73c24c713b99fef4d Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 16:24:54 +0800 Subject: [PATCH 11/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: If3747dacabfc8d7d09d497d9d6676b8d4f3496ba --- services/miscdevice_service/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index 7cd46dd..6625005 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -149,7 +149,7 @@ ohos_static_library("libmiscdevice_service_static") { external_deps = [ "ability_base:want", "ability_base:zuri", - "ability_runtime:app_manager" + "ability_runtime:app_manager", "ability_runtime:dataobs_manager", "access_token:libaccesstoken_sdk", "access_token:libprivacy_sdk", -- Gitee From 273da2e6bad2cc5ded7b782174b03a6678bdf21b Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 16:27:24 +0800 Subject: [PATCH 12/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I703bbdc7d057286dc8719ab8ce74deb5b0737966 --- services/miscdevice_service/BUILD.gn | 2 +- services/miscdevice_service/BUILD.gn:Zone.Identifier | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 services/miscdevice_service/BUILD.gn:Zone.Identifier diff --git a/services/miscdevice_service/BUILD.gn b/services/miscdevice_service/BUILD.gn index 6625005..dddbe33 100644 --- a/services/miscdevice_service/BUILD.gn +++ b/services/miscdevice_service/BUILD.gn @@ -74,9 +74,9 @@ ohos_shared_library("libmiscdevice_service") { "hilog:libhilog", "hisysevent:libhisysevent", "hitrace:hitrace_meter", - "os_account:os_account_innerkits", "ipc:ipc_single", "json:nlohmann_json_static", + "os_account:os_account_innerkits", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] diff --git a/services/miscdevice_service/BUILD.gn:Zone.Identifier b/services/miscdevice_service/BUILD.gn:Zone.Identifier new file mode 100644 index 0000000..e69de29 -- Gitee From 2d6e5dbde43c3ac4402baae178b9e9828f44027a Mon Sep 17 00:00:00 2001 From: cff-gite Date: Fri, 26 Jul 2024 16:28:06 +0800 Subject: [PATCH 13/13] Add bypass switch Settings Signed-off-by: cff-gite Change-Id: I62f4a89dc926dd77e8853ca442b0b6c45ebb6936 --- services/miscdevice_service/BUILD.gn:Zone.Identifier | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 services/miscdevice_service/BUILD.gn:Zone.Identifier diff --git a/services/miscdevice_service/BUILD.gn:Zone.Identifier b/services/miscdevice_service/BUILD.gn:Zone.Identifier deleted file mode 100644 index e69de29..0000000 -- Gitee