/*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
void Adaptor::OnWindowShown()
{
- if ( PAUSED_WHILE_HIDDEN == mState )
+ if( PAUSED_WHILE_HIDDEN == mState )
{
// Adaptor can now be resumed
mState = PAUSED;
}
else
{
- DALI_LOG_RELEASE_INFO( "Adaptor::OnWindowShown: Not shown [%d]\n", mState );
+ DALI_LOG_RELEASE_INFO( "Adaptor::OnWindowShown: Adaptor is not paused state.[%d]\n", mState );
}
}
void Adaptor::OnWindowHidden()
{
- if ( RUNNING == mState )
+ if( RUNNING == mState || READY == mState )
{
- Pause();
+ if( mState == RUNNING )
+ {
+ Pause();
- // Adaptor cannot be resumed until the window is shown
- mState = PAUSED_WHILE_HIDDEN;
+ // Adaptor cannot be resumed until the window is shown
+ mState = PAUSED_WHILE_HIDDEN;
+ }
+ else // mState is READY
+ {
+ // Pause the adaptor after the state gets RUNNING
+ mState = PAUSED_WHILE_INITIALIZING;
+ }
}
else
{
- DALI_LOG_RELEASE_INFO( "Adaptor::OnWindowHidden: Not hidden [%d]\n", mState );
+ DALI_LOG_RELEASE_INFO( "Adaptor::OnWindowHidden: Adaptor is not running state.[%d]\n", mState );
}
}
// Process after surface is created (registering to remote surface provider if required)
SurfaceInitialized();
- mState = RUNNING;
+ if( mState != PAUSED_WHILE_INITIALIZING )
+ {
+ mState = RUNNING;
+
+ DALI_LOG_RELEASE_INFO( "Adaptor::NotifySceneCreated: Adaptor is running\n" );
+ }
+ else
+ {
+ mState = RUNNING;
- DALI_LOG_RELEASE_INFO( "Adaptor::NotifySceneCreated\n" );
+ Pause();
+
+ mState = PAUSED_WHILE_HIDDEN;
+
+ DALI_LOG_RELEASE_INFO( "Adaptor::NotifySceneCreated: Adaptor is paused\n" );
+ }
}
void Adaptor::NotifyLanguageChanged()
enum State
{
- READY, ///< Initial state before Adaptor::Start is called.
- RUNNING, ///< Adaptor is running.
- PAUSED, ///< Adaptor has been paused.
- PAUSED_WHILE_HIDDEN, ///< Adaptor is paused while window is hidden (& cannot be resumed until window is shown).
- STOPPED, ///< Adaptor has been stopped.
+ READY, ///< Initial state before Adaptor::Start is called.
+ RUNNING, ///< Adaptor is running.
+ PAUSED, ///< Adaptor has been paused.
+ PAUSED_WHILE_HIDDEN, ///< Adaptor is paused while window is hidden (& cannot be resumed until window is shown).
+ PAUSED_WHILE_INITIALIZING, ///< Adaptor is paused while application is initializing.
+ STOPPED, ///< Adaptor has been stopped.
};
// A structure to encapsulate each Window instance for the Adaptor to track them