void (*finish)(void);
void (*run)(void *data);
void (*exit)(void *data);
+ void (*trim_memory)(void *data);
} widget_base_ops;
typedef struct _widget_base_class {
void widget_base_on_finish(void);
void widget_base_on_run(void);
void widget_base_on_exit(void);
+int widget_base_on_trim_memory(void);
widget_base_ops widget_base_get_default_ops(void);
void widget_base_fini(void);
int widget_base_exit(void);
__context.ops.exit(data);
}
+static void __multiwindow_trim_memory(void *data)
+{
+ if (__context.ops.trim_memory)
+ __context.ops.trim_memory(data);
+}
+
EXPORT_API int widget_base_exit(void)
{
int ret;
raw_ops.base.finish = __multiwindow_finish;
raw_ops.base.run = __multiwindow_run;
raw_ops.base.exit = __multiwindow_exit;
+ raw_ops.base.trim_memory = __multiwindow_trim_memory;
if (!__is_widget_feature_enabled()) {
LOGE("not supported"); /* LCOV_EXCL_LINE */
widget_base_on_exit();
}
+static void __on_trim_memory(void *data)
+{
+ widget_base_on_trim_memory();
+}
+
EXPORT_API int widget_base_on_create(void)
{
appcore_multiwindow_base_on_create();
{
}
+EXPORT_API int widget_base_on_trim_memory(void)
+{
+ appcore_multiwindow_base_on_trim_memory();
+
+ return 0;
+}
+
EXPORT_API widget_base_ops widget_base_get_default_ops(void)
{
widget_base_ops ops;
ops.finish = __on_finish;
ops.run = __on_run;
ops.exit = __on_exit;
+ ops.trim_memory = __on_trim_memory;
return ops;
}
elm_exit();
}
+static void __widget_app_trim_memory(void *data)
+{
+ _D("Trim memory");
+ elm_cache_all_flush();
+ widget_base_on_trim_memory();
+}
+
EXPORT_API int widget_app_main(int argc, char **argv,
widget_app_lifecycle_callback_s *callback, void *user_data)
{
ops.finish = __widget_app_finish;
ops.run = __widget_app_run;
ops.exit = __widget_app_exit;
+ ops.trim_memory = __widget_app_trim_memory;
cb_info.callback = callback;
cb_info.user_data = user_data;