m_willRemoveContext(NULL),
m_encrypted(false),
m_resDec(NULL),
- m_widgetType(WrtDB::APP_TYPE_UNKNOWN)
+ m_widgetType(WrtDB::APP_TYPE_UNKNOWN),
+ m_initialized(false)
{
LOG_PROFILE_START("Bundle attachToThread");
WrtDB::WrtDatabase::attachToThreadRO();
BundleMessages::INIT))
{
LogDebug("initializing plugins");
- auto msgString = toString(static_cast<WKStringRef>(messageBody));
- m_widgetTizenId = DPL::FromASCIIString(msgString);
-
- WrtDB::WidgetDAOReadOnly dao(m_widgetTizenId);
- /* This type of message is received when widget is restarting
- * (proably in other situation too). Widget restart can be
- * called after system language change so language tags have to
- * be recreated here.
- * Do NOT MOVE LanguageTags reset before m_widgetHandle initialization
- */
- // reset language tags (create new tags based on system locales)
- LanguageTagsProviderSingleton::Instance().resetLanguageTags();
- DPL::OptionalString defaultLocale = dao.getDefaultlocale();
- if (!defaultLocale.IsNull()) {
- LanguageTagsProviderSingleton::Instance().addWidgetDefaultLocales(
- *defaultLocale);
- }
- LanguageTags tags =
- LanguageTagsProviderSingleton::Instance().getLanguageTags();
- LogDebug("Current widget locales (language tags):");
- FOREACH(it, tags) {
- LogDebug("Locale: " << *it);
- }
+ if (!m_initialized)
+ {
+ auto msgString = toString(static_cast<WKStringRef>(messageBody));
+
+ m_widgetTizenId = DPL::FromASCIIString(msgString);
+
+ WrtDB::WidgetDAOReadOnly dao(m_widgetTizenId);
+ /* This type of message is received when widget is restarting
+ * (proably in other situation too). Widget restart can be
+ * called after system language change so language tags have to
+ * be recreated here.
+ * Do NOT MOVE LanguageTags reset before m_widgetHandle initialization
+ */
+ // reset language tags (create new tags based on system locales)
+ LanguageTagsProviderSingleton::Instance().resetLanguageTags();
+ DPL::OptionalString defaultLocale = dao.getDefaultlocale();
+ if (!defaultLocale.IsNull()) {
+ LanguageTagsProviderSingleton::Instance().addWidgetDefaultLocales(
+ *defaultLocale);
+ }
+ LanguageTags tags =
+ LanguageTagsProviderSingleton::Instance().getLanguageTags();
+ LogDebug("Current widget locales (language tags):");
+ FOREACH(it, tags) {
+ LogDebug("Locale: " << *it);
+ }
+
+ m_widgetType = dao.getWidgetType();
+ LogDebug("m_widgetType : " << m_widgetType.getApptypeToString() <<
+ "(m_widgetTizenId:" << m_widgetTizenId << ")");
- m_widgetType = dao.getWidgetType();
- LogDebug("m_widgetType : " << m_widgetType.getApptypeToString() <<
- "(m_widgetTizenId:" << m_widgetTizenId << ")");
+ LogDebug("Preload PluginLogicSingleton");
+ PluginModule::init(WrtDB::WidgetDAOReadOnly::getHandle(m_widgetTizenId));
+ LogDebug("Preload PluginLogicSingleton_end");
- LogDebug("Preload PluginLogicSingleton");
- PluginModule::init(WrtDB::WidgetDAOReadOnly::getHandle(m_widgetTizenId));
- LogDebug("Preload PluginLogicSingleton_end");
+ m_initialized = true;
+ }
+ else
+ {
+ LogDebug("already initalized");
+ }
}
}