Adaptor::IsAvaiable() check the adaptor stop called or not.
It will make more safety if we try to access singleton classes during
terminate application
Change-Id: Iaccad5d0edd6ed036f05e0c49bc1e1973fae0403
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
/*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Dali::LifecycleController lifecycleController = Dali::LifecycleController::Get();
lifecycleController.TerminateSignal().Emit();
+ // Stop adaptor after terminate signal emit
+ if(Dali::Adaptor::IsAvailable() && mAdaptor)
+ {
+ mAdaptor->Stop();
+ }
+
// Need to delete core before we delete the adaptor.
delete mCore;
mCore = NULL;
Toolkit::Visual::Base visual = (*sourceIter)->visual;
if(visual)
{
- if(Stage::IsInstalled())
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
{
Toolkit::VisualFactory::Get().DiscardVisual(visual);
}
void Control::Impl::EmitResourceReadySignal()
{
- if(DALI_LIKELY(Stage::IsInstalled())) ///< Avoid resource ready callback during shutting down
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable())) ///< Avoid resource ready callback during shutting down
{
if(!mIsEmittingResourceReadySignal)
{
// EXTERNAL INCLUDES
#include <dali/devel-api/common/stage.h>
#include <dali/devel-api/scripting/scripting.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
#include <dali/public-api/math/math-utils.h>
#include <dali/public-api/object/type-registry-helper.h>
#include <dali/public-api/object/type-registry.h>
*/
void DiscardImageViewVisual(Dali::Toolkit::Visual::Base& visual)
{
- if(DALI_LIKELY(Dali::Stage::IsInstalled() && visual))
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && visual))
{
Dali::Toolkit::VisualFactory::Get().DiscardVisual(visual);
}
*/
void DiscardTextLabelVisual(Dali::Toolkit::Visual::Base& visual)
{
- if(DALI_LIKELY(Dali::Stage::IsInstalled() && visual))
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && visual))
{
Dali::Toolkit::VisualFactory::Get().DiscardVisual(visual);
}
#include <dali/devel-api/rendering/texture-devel.h>
#include <dali/devel-api/scripting/enum-helper.h>
#include <dali/devel-api/scripting/scripting.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
#include <dali/integration-api/debug.h>
#include <dali/public-api/actors/layer.h>
#include <dali/public-api/adaptor-framework/async-task-manager.h>
ImageVisual::~ImageVisual()
{
- if(Stage::IsInstalled())
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
{
if(mImageUrl.IsValid())
{
Geometry ImageVisual::GenerateGeometry(TextureManager::TextureId textureId, bool createForce)
{
Geometry geometry;
- if(Stage::IsInstalled())
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
{
if(mImpl->mCustomShader)
{
#include <dali/devel-api/adaptor-framework/image-loading.h>
#include <dali/devel-api/common/stage.h>
#include <dali/devel-api/rendering/renderer-devel.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
NPatchVisual::~NPatchVisual()
{
- if(Stage::IsInstalled())
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
{
if(mReleasePolicy != Toolkit::ImageVisual::ReleasePolicy::NEVER)
{
// EXTERNAL INCLUDES
#include <dali/devel-api/common/stage.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
#include <dali/integration-api/debug.h>
#include <dali/public-api/rendering/decorated-visual-renderer.h>
SvgVisual::~SvgVisual()
{
- if(Stage::IsInstalled())
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
{
if(mLoadingTask)
{