Dali::Integration::AndroidFramework& AndroidFramework::New()
{
Dali::Integration::AndroidFramework* androidFramework = new Dali::Integration::AndroidFramework;
- AndroidFramework* impl = new AndroidFramework( *androidFramework );
+ AndroidFramework* impl = new AndroidFramework( androidFramework );
androidFramework->mImpl = impl;
return *androidFramework;
}
+void AndroidFramework::Delete()
+{
+ DALI_ASSERT_ALWAYS( gAndroidFramework != nullptr && "Cannot delete already deleted AndroidFramework." );
+
+ delete gAndroidFramework->mAndroidFramework;
+ gAndroidFramework = nullptr;
+}
+
void AndroidFramework::SetNativeApplication( android_app* application )
{
mNativeApplication = application;
{
DALI_ASSERT_ALWAYS( gAndroidFramework != nullptr && "AndroidFramework not instantiated" );
- return gAndroidFramework->mAndroidFramework;
+ return *gAndroidFramework->mAndroidFramework;
}
-AndroidFramework::AndroidFramework( Dali::Integration::AndroidFramework& androidFramework )
+AndroidFramework::AndroidFramework( Dali::Integration::AndroidFramework* androidFramework )
: mAndroidFramework( androidFramework ),
mFramework( nullptr ),
mNativeApplication( nullptr ),
static Dali::Integration::AndroidFramework& New();
/**
+ * @brief Delete an Android framework.
+ */
+ static void Delete();
+
+ /**
* @copydoc Dali::Integration::AndroidFramework::SetNativeApplication()
*/
void SetNativeApplication( android_app* application );
AndroidFramework& operator=( AndroidFramework&& ) = delete; ///< Deleted move assignment operator
private:
- AndroidFramework( Dali::Integration::AndroidFramework& androidFramework );
- Dali::Integration::AndroidFramework& mAndroidFramework;
+ AndroidFramework( Dali::Integration::AndroidFramework* androidFramework );
+ Dali::Integration::AndroidFramework* mAndroidFramework;
Framework* mFramework;
android_app* mNativeApplication;