*
*/
- // FILE HEADER
+// FILE HEADER
#include "execute-process.h"
- // EXTERNAL INCLUDES
-#include <sstream>
+// EXTERNAL INCLUDES
#include <unistd.h>
+#include <sstream>
+
+#include <dali/integration-api/adaptor-framework/android/android-framework.h>
+#include <dali/integration-api/debug.h>
#include <dali/public-api/common/dali-common.h>
-void ExecuteProcess( const std::string& processName, Dali::Application& application )
-{
- std::stringstream stream;
- stream << "am start -a android.intent.action.MAIN -n com.sec.dalidemo/.DaliDemoNativeActivity --user 0 --es start " << processName.c_str();
- pid_t parentPID = getpid();
+#include <android_native_app_glue.h>
+#include <dali-demo-native-activity-jni.h>
- pid_t pid = fork();
- if( pid == 0 )
- {
- do
- {
- sleep( 1 );
- }
- while( kill( parentPID, 0 ) == 0 );
-
- system( stream.str().c_str() );
- exit( 0 );
- }
- else
+void ExecuteProcess(const std::string& processName, Dali::Application& application)
+{
+ struct android_app* nativeApp = Dali::Integration::AndroidFramework::Get().GetNativeApplication();
+ if(!nativeApp)
{
- application.Quit();
+ DALI_LOG_ERROR("Couldn't get native app.");
+ return;
}
+
+ DaliDemoNativeActivity nativeActivity(nativeApp->activity);
+ nativeActivity.LaunchExample(processName);
}