From 1f862cef075bef380b4f6558d38a02de5858ee72 Mon Sep 17 00:00:00 2001 From: fangjinliang1 Date: Wed, 12 Jan 2022 16:37:57 +0800 Subject: [PATCH] Support multiple users Signed-off-by: fangjinliang1 Change-Id: Ie9f595d8e3a7ace3b0e770e5f7e0ae2e27d5e2a2 --- services/ans/src/notification_preferences_database.cpp | 5 ++++- services/ans/src/notification_subscriber_manager.cpp | 8 +++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/services/ans/src/notification_preferences_database.cpp b/services/ans/src/notification_preferences_database.cpp index 8d40c0e77..3359c9ccc 100644 --- a/services/ans/src/notification_preferences_database.cpp +++ b/services/ans/src/notification_preferences_database.cpp @@ -1393,7 +1393,10 @@ void NotificationPreferencesDatabase::GetEnableAllNotification(NotificationPrefe key, [&](OHOS::DistributedKv::Status &status, OHOS::DistributedKv::Value &value) { if (status == OHOS::DistributedKv::Status::KEY_NOT_FOUND) { bool enable = true; - info.GetEnabledAllNotification(userId, enable); + if (!info.GetEnabledAllNotification(userId, enable)) { + info.SetEnabledAllNotification(userId, enable); + ANS_LOGW("Enable setting not found, default true."); + } PutNotificationsEnabled(userId, enable); } else if (status == OHOS::DistributedKv::Status::SUCCESS) { if (!value.ToString().empty()) { diff --git a/services/ans/src/notification_subscriber_manager.cpp b/services/ans/src/notification_subscriber_manager.cpp index 86d467ffa..9b7d7e247 100644 --- a/services/ans/src/notification_subscriber_manager.cpp +++ b/services/ans/src/notification_subscriber_manager.cpp @@ -64,9 +64,7 @@ ErrCode NotificationSubscriberManager::AddSubscriber( return ERR_ANS_NO_MEMORY; } - int userId = SUBSCRIBE_USER_INIT; - int uid = IPCSkeleton::GetCallingUid(); - OHOS::AccountSA::OsAccountManager::GetOsAccountLocalIdFromUid(uid, userId); + int userId = SUBSCRIBE_USER_ALL; subInfo->AddAppUserId(userId); } @@ -101,7 +99,6 @@ void NotificationSubscriberManager::NotifyConsumed( ANS_LOGE("handler is nullptr"); return; } - AppExecFwk::EventHandler::Callback NotifyConsumedFunc = std::bind(&NotificationSubscriberManager::NotifyConsumedInner, this, notification, notificationMap); @@ -202,9 +199,10 @@ void NotificationSubscriberManager::AddRecordInfo( { if (subscribeInfo != nullptr) { record->bundleList_.clear(); - record->subscribedAll = false; + record->subscribedAll = true; for (auto bundle : subscribeInfo->GetAppNames()) { record->bundleList_.insert(bundle); + record->subscribedAll = false; } record->userId = subscribeInfo->GetAppUserId(); } else { -- Gitee