2 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/internal/adaptor/common/lifecycle-controller-impl.h>
22 #include <dali/public-api/object/type-registry.h>
25 #include <dali/devel-api/common/singleton-service.h>
26 #include <dali/internal/adaptor/common/adaptor-impl.h>
34 Dali::LifecycleController LifecycleController::Get()
36 Dali::LifecycleController lifecycleController;
38 Dali::SingletonService service(SingletonService::Get());
41 // Check whether the singleton is already created
42 Dali::BaseHandle handle = service.GetSingleton(typeid(Dali::LifecycleController));
45 // If so, downcast the handle
46 lifecycleController = Dali::LifecycleController(dynamic_cast<LifecycleController*>(handle.GetObjectPtr()));
50 lifecycleController = Dali::LifecycleController(new LifecycleController());
51 service.Register(typeid(lifecycleController), lifecycleController);
55 return lifecycleController;
58 LifecycleController::LifecycleController()
62 LifecycleController::~LifecycleController()
66 Dali::LifecycleController::LifecycleSignalType& LifecycleController::InitSignal()
71 void LifecycleController::EmitInitSignal()
73 if(!mInitSignal.Empty())
79 Dali::LifecycleController::LifecycleSignalType& LifecycleController::TerminateSignal()
81 return mTerminateSignal;
84 void LifecycleController::EmitTerminateSignal()
86 if(!mTerminateSignal.Empty())
88 mTerminateSignal.Emit();
92 Dali::LifecycleController::LifecycleSignalType& LifecycleController::PauseSignal()
97 void LifecycleController::EmitPauseSignal()
99 if(!mPauseSignal.Empty())
105 Dali::LifecycleController::LifecycleSignalType& LifecycleController::ResumeSignal()
107 return mResumeSignal;
110 void LifecycleController::EmitResumeSignal()
112 if(!mResumeSignal.Empty())
114 mResumeSignal.Emit();
118 Dali::LifecycleController::LifecycleSignalType& LifecycleController::ResetSignal()
123 void LifecycleController::EmitResetSignal()
125 if(!mResetSignal.Empty())
131 Dali::LifecycleController::LifecycleSignalType& LifecycleController::LanguageChangedSignal()
133 return mLanguageChangedSignal;
136 void LifecycleController::EmitLanguageChangedSignal()
138 if(!mLanguageChangedSignal.Empty())
140 mLanguageChangedSignal.Emit();
144 void LifecycleController::OnInit(Dali::Application& app)
149 void LifecycleController::OnTerminate(Dali::Application& app)
151 EmitTerminateSignal();
154 void LifecycleController::OnPause(Dali::Application& app)
159 void LifecycleController::OnResume(Dali::Application& app)
164 void LifecycleController::OnReset(Dali::Application& app)
169 void LifecycleController::OnLanguageChanged(Dali::Application& app)
171 EmitLanguageChangedSignal();
174 } // namespace Adaptor
176 } // namespace Internal