APP_TYPE dotnet
DETECTION_METHOD TIMEOUT|DEMAND
TIMEOUT 5000
+EXTRA_ARRAY preload
+EXTRA_ARRAY_VAL /usr/lib/libappcore-efl.so.1
+EXTRA_ARRAY_VAL /usr/lib/libappcore-common.so.1
+EXTRA_ARRAY_VAL /usr/lib/libcapi-appfw-application.so.0
+EXTRA_ARRAY_VAL /usr/lib/ecore_imf/modules/wayland/v-1.16/libwltextinputmodule.so
+EXTRA_ARRAY_VAL /usr/lib/libdali-toolkit.so
+EXTRA_ARRAY_VAL /usr/lib/libcairo.so.2
+EXTRA_ARRAY_VAL /usr/lib/libefl-assist.so.0
+EXTRA_ARRAY_VAL /usr/lib/libcapi-media-player.so.0
+EXTRA_ARRAY_VAL /usr/lib/libcapi-media-camera.so.0
#include <aul.h>
#include <Ecore.h>
+#include <Elementary.h>
+#include <bundle_internal.h>
#include <map>
#include <vector>
#include <functional>
#include <unistd.h>
+#include <dlfcn.h>
namespace tizen {
loader_receiver_cb receiver;
};
+static int __argc;
+static char **__argv;
+static Evas_Object *__win;
+static Evas_Object *__bg;
+static Evas_Object *__conform;
+
class LaunchpadAdapterImpl : public LaunchpadAdapter
{
public:
}
}
-void LaunchpadAdapterImpl::LoaderMain(int argc, char* argv[])
+
+static void PreloadLibsAndWindow(bundle *extra, int type, void *user_data)
{
+ int elm_init_cnt = 0;
+ const char **so_array;
+ int len = 0;
+ int i;
+ void *handle = NULL;
+
+ // Preload native libraries
+ if (extra == NULL) {
+ _DBG("No extra data");
+ return;
+ }
+
+ so_array = bundle_get_str_array(extra, "preload", &len);
+ if (!so_array)
+ return;
+
+ for (i = 0; i < len; i++) {
+ handle = dlopen(so_array[i], RTLD_NOW);
+ _DBG("preload %s# - handle : %x\n", so_array[i], handle);
+ }
+
+ // Precreate window
+ elm_init_cnt = elm_init(__argc, __argv);
+ _DBG("[candidate] elm init, returned: %d", elm_init_cnt);
+
+ elm_config_accel_preference_set("hw");
+
+ __win = elm_win_add(NULL, "package_name", ELM_WIN_BASIC);
+ if (__win == NULL) {
+ _DBG("[candidate] elm_win_add() failed");
+ return;
+ }
+
+ elm_win_precreated_object_set(__win);
+
+ __bg = elm_bg_add(__win);
+ if (__bg) {
+ evas_object_size_hint_weight_set(__bg, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(__win, __bg);
+ elm_bg_precreated_object_set(__bg);
+ } else {
+ _DBG("[candidate] elm_bg_add() failed");
+ }
+
+ __conform = elm_conformant_add(__win);
+ if (__conform) {
+ evas_object_size_hint_weight_set(__conform, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(__win, __conform);
+ elm_conformant_precreated_object_set(__conform);
+ } else {
+ _DBG("elm_conformant_add() failed");
+ }
+}
+
+void LaunchpadAdapterImpl::LoaderMain(int argc, char* argv[])
+{
+ __argc = argc;
+ __argv = argv;
callbacks.create = [](bundle *extra, int type, void *user_data)
{
ecore_init();
+ PreloadLibsAndWindow(extra, type, user_data);
WITH_SELF(user_data)
{
if (self->OnCreate != nullptr)