#include <dpl/assert.h>
#include <dpl/semaphore.h>
#include <dpl/sstream.h>
+#include <dpl/errno_string.h>
#include <libxml/parser.h>
#include <vconf.h>
#include <installer_callbacks_translate.h>
#include <installer_controller.h>
#include <language_subtag_rst_tree.h>
-#include <dpl/localization/localization_utils.h>
#include <dpl/wrt-dao-ro/global_config.h>
#include <dpl/utils/widget_version.h>
-#include <dpl/popup/popup_manager.h>
-#include <dpl/popup/popup_controller.h>
#include <wrt_type.h>
#include <dpl/localization/w3c_file_localization.h>
#include <dpl/wrt-dao-ro/WrtDatabase.h>
inline WidgetUpdateMode::Type translateWidgetUpdateMode(
wrt_widget_update_mode_t updateMode)
{
- WidgetUpdateMode::Type result = WidgetUpdateMode::Zero;
+ if (updateMode == WRT_WIM_POLICY_DIRECTORY_FORCE_INSTALL)
+ return WidgetUpdateMode::PolicyDirectoryForceInstall;
+ WidgetUpdateMode::Type result = WidgetUpdateMode::Zero;
if (updateMode & WRT_WIM_NOT_INSTALLED) {
result = result | WidgetUpdateMode::NotInstalled;
}
return result;
}
- void localizationSetting()
- {
- char* lang = vconf_get_str(VCONFKEY_LANGSET);
- if (!lang) {
- LogError("Cannot get locale settings from vconf");
- } else {
- LogDebug("Language set to: " << lang);
-
- using namespace LocalizationUtils;
-
- LanguageTagsList list;
- list.push_back(DPL::FromUTF8String(lang));
- SetSystemLanguageTags(list);
-
- LogDebug("LanguageChanged to " << lang);
- }
- }
-
const char PLUGIN_INSTALL_SEMAPHORE[] = "/.wrt_plugin_install_lock";
static int wrt_count_plugin;
"> does not exist.");
}
- if_ok &= (checkPath(GlobalConfig::GetFactoryInstalledWidgetPath()));
+ if_ok &= (checkPath(GlobalConfig::GetUserInstalledWidgetPath()));
if (!if_ok) {
LogError(
- "Path <" << GlobalConfig::GetFactoryInstalledWidgetPath() <<
+ "Path <" << GlobalConfig::GetUserInstalledWidgetPath() <<
"> does not exist.");
}
- if_ok &= (checkPath(GlobalConfig::GetUserInstalledWidgetPath()));
+ if_ok &= (checkPath(GlobalConfig::GetUserPreloadedWidgetPath()));
if (!if_ok) {
LogError(
- "Path <" << GlobalConfig::GetUserInstalledWidgetPath() <<
+ "Path <" << GlobalConfig::GetUserPreloadedWidgetPath() <<
"> does not exist.");
}
return if_ok;
// Initialize Language Subtag registry
LanguageSubtagRstTreeSingleton::Instance().Initialize();
- localizationSetting();
// Installer init
CONTROLLER_POST_SYNC_EVENT(
WrtInstallerStatusCallback status_cb,
WrtProgressCallback progress_cb,
wrt_widget_update_mode_t update_mode,
- bool quiet)
+ bool quiet,
+ bool preload,
+ std::shared_ptr<PackageManager::IPkgmgrSignal> pkgmgrInterface
+ )
{
UNHANDLED_EXCEPTION_HANDLER_BEGIN
{
new InstallerCallbacksTranslate::StatusCallbackStruct(
userdata, status_cb, progress_cb),
translateWidgetUpdateMode(update_mode),
- quiet)));
+ quiet,
+ preload,
+ pkgmgrInterface)));
}
UNHANDLED_EXCEPTION_HANDLER_END
}
- EXPORT_API void wrt_uninstall_widget(int widget_handle,
+ EXPORT_API void wrt_uninstall_widget(const char * const pkg_name,
void* userdata,
WrtInstallerStatusCallback status_cb,
- WrtProgressCallback progress_cb)
+ WrtProgressCallback progress_cb,
+ std::shared_ptr<PackageManager::IPkgmgrSignal> pkgmgrSignalInterface)
{
UNHANDLED_EXCEPTION_HANDLER_BEGIN
{
- LogInfo("[WRT-API] UNINSTALL WIDGET: " << widget_handle);
+ std::string widgetPkgName(pkg_name);
+ LogInfo("[WRT-API] UNINSTALL WIDGET: " << widgetPkgName);
// Post uninstallation event
CONTROLLER_POST_EVENT(
- Logic::InstallerController,
- InstallerControllerEvents::UninstallWidgetEvent(
- widget_handle,
- WidgetUninstallationStruct(
- InstallerCallbacksTranslate::uninstallFinishedCallback,
- InstallerCallbacksTranslate::installProgressCallback,
- new InstallerCallbacksTranslate::StatusCallbackStruct(
- userdata, status_cb, progress_cb))));
+ Logic::InstallerController,
+ InstallerControllerEvents::UninstallWidgetEvent(
+ widgetPkgName,
+ WidgetUninstallationStruct(
+ InstallerCallbacksTranslate::uninstallFinishedCallback,
+ InstallerCallbacksTranslate::installProgressCallback,
+ new InstallerCallbacksTranslate::StatusCallbackStruct(
+ userdata, status_cb, progress_cb),
+ pkgmgrSignalInterface
+ )
+ )
+ );
}
UNHANDLED_EXCEPTION_HANDLER_END
}
}
if (-1 == TEMP_FAILURE_RETRY(closedir(dir))) {
- LogError("Failed to close dir: " << dir);
+ LogError("Failed to close dir: " << PLUGIN_PATH << " with error: "
+ << DPL::GetErrnoString());
}
if (0 != unlink(installRequest.c_str())) {
}
}
- EXPORT_API WrtErrStatus wrt_get_widget_by_pkgname(const std::string pkgname,
- int *widget_handle)
- {
- try
- {
- LogInfo("[WRT-API] GETTING WIDGET HANDLE BY PKG NAME : "
- << pkgname);
-
- WidgetHandle handle = WidgetDAOReadOnly::getHandle(
- DPL::FromASCIIString(pkgname));
- *widget_handle = static_cast<int>(handle);
- return WRT_SUCCESS;
- }
- catch (WidgetDAOReadOnly::Exception::WidgetNotExist)
- {
- LogError("Error package name is not found");
- return WRT_ERROR_PKGNAME_NOT_FOUND;
- }
- catch (const DPL::Exception& ex)
- {
- LogError("Internal Error during get widget id by package name");
- DPL::Exception::DisplayKnownException(ex);
- return WRT_ERROR_INTERNAL;
- }
- }
-
- EXPORT_API WrtErrStatus wrt_get_widget_by_guid(const std::string guid,
- int *widget_handle)
+ EXPORT_API WrtErrStatus wrt_get_widget_by_guid(std::string & pkgname,
+ const std::string guid)
{
try
{
- LogInfo("[WRT-API] GETTING WIDGET HANDLE BY WidgetID : "
+ LogInfo("[WRT-API] GETTING WIDGET PACKAGE NAME BY WidgetID : "
<< guid);
WidgetGUID widget_guid = DPL::FromUTF8String(guid);
- WidgetHandle handle = WidgetDAOReadOnly::getHandle(widget_guid);
- *widget_handle = static_cast<int>(handle);
+ WrtDB::WidgetDAOReadOnly dao(widget_guid);
+ pkgname = DPL::ToUTF8String(dao.getPkgName());
return WRT_SUCCESS;
}
catch (WidgetDAOReadOnly::Exception::WidgetNotExist)