1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "ability_record_observer_manager.h" 17 18 namespace OHOS { 19 namespace AbilitySlite { GetInstance()20AbilityRecordObserverManager &AbilityRecordObserverManager::GetInstance() 21 { 22 static AbilityRecordObserverManager instance; 23 return instance; 24 } 25 AddObserver(AbilityRecordObserver * observer)26void AbilityRecordObserverManager::AddObserver(AbilityRecordObserver *observer) 27 { 28 for (auto it = observers_.Begin(); it != observers_.End(); it = it->next_) { 29 if (it->value_ == observer) { 30 return; 31 } 32 } 33 observers_.PushBack(observer); 34 } 35 RemoveObserver(AbilityRecordObserver * observer)36void AbilityRecordObserverManager::RemoveObserver(AbilityRecordObserver *observer) 37 { 38 for (auto it = observers_.Begin(); it != observers_.End(); it = it->next_) { 39 if (it->value_ == observer) { 40 observers_.Remove(it); 41 return; 42 } 43 } 44 } 45 NotifyAbilityRecordStateChanged(const AbilityRecordStateData & data)46void AbilityRecordObserverManager::NotifyAbilityRecordStateChanged(const AbilityRecordStateData &data) 47 { 48 for (auto it = observers_.Begin(); it != observers_.End(); it = it->next_) { 49 if (it->value_ != nullptr) { 50 it->value_->OnAbilityRecordStateChanged(data); 51 } 52 } 53 } 54 NotifyAbilityRecordCleanup(char * appName)55void AbilityRecordObserverManager::NotifyAbilityRecordCleanup(char *appName) 56 { 57 for (auto it = observers_.Begin(); it != observers_.End(); it = it->next_) { 58 if (it->value_ != nullptr) { 59 it->value_->OnAbilityRecordCleanup(appName); 60 } 61 } 62 } 63 } // namespace AbilitySlite 64 } // namespace OHOS 65