{
Package::_PackageManagerImpl* pPkg = Package::_PackageManagerImpl::GetInstance();
- SysTryReturn(NID_APP, pPkg != null, -1, E_INVALID_STATE, "Invalid PackageManager instance.");
+ SysTryReturn(NID_APP, pPkg != null, _API_VISIBILITY_PUBLIC, E_INVALID_STATE, "Invalid PackageManager instance.");
Package::PackageInfo* pInfo = null;
pInfo = pPkg->GetPackageInfoN(_AppInfo::GetPackageId());
- SysTryReturn(NID_APP, pInfo != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+ SysTryReturn(NID_APP, pInfo != null, _API_VISIBILITY_PUBLIC, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
const Package::_PackageInfoImpl* pPkgInfo = Package::_PackageInfoImpl::GetInstance(pInfo);
- SysTryReturnResult(NID_APP, pPkgInfo != null, E_INVALID_STATE, "Invalid PackageInfo instance.");
+ SysTryReturn(NID_APP, pPkgInfo != null, _API_VISIBILITY_PUBLIC, E_INVALID_STATE, "Invalid PackageInfo instance.");
return pPkgInfo->GetApiVisibility();
}
if( IsValidSize(__appId, size.width, size.height) == false )
{
+ SysLog(NID_SHELL, "%fx%f is invalid size.", size.width, size.height);
continue;
}
#include <string.h>
#include <package_manager.h>
#include <shortcut.h>
+#include <livebox-errno.h>
+#include <livebox-service.h>
#include <FBaseSysLog.h>
#include <FBase.h>
#include <FApp_AppImpl.h>
#include <FApp_ServiceAppImpl.h>
#include <FAppPkg_PackageManagerImpl.h>
+#include <FAppPkg_PackageInfoImpl.h>
#include <FBase_StringConverter.h>
#include <FSec_AccessController.h>
const String ARG_KEY_INSTANCE_ID = L"_InstanceId";
const String ARG_KEY_PROVIDER_NAME = L"_ProviderName";
const String ARG_KEY_USER_INFO = L"_UserInfo";
+const String ARG_KEY_X = L"_X";
+const String ARG_KEY_Y = L"_Y";
const String ARG_KEY_WIDTH = L"_Width";
const String ARG_KEY_HEIGHT = L"_Height";
+const String ARG_KEY_POPUP_WIDTH = L"_PopupWidth";
+const String ARG_KEY_POPUP_HEIGHT = L"_PopupHeight";
const String ARG_KEY_ARGUMENT = L"_Argument";
const String ARG_KEY_EVENT_TYPE = L"_EventType";
const String ARG_KEY_TIME_STAMP = L"_TimeStamp";
-const String ARG_KEY_X = L"_X";
-const String ARG_KEY_Y = L"_Y";
+
}
_AppWidgetProviderManagerImpl::_AppWidgetProviderManagerImpl()
_ServiceAppImpl* pServiceAppImpl = _ServiceAppImpl::GetInstance();
if( pServiceAppImpl)
{
- pServiceAppImpl->SetLifeDurationEventListener(this);
+ pServiceAppImpl->SetAppTerminatingInternalEventListener(this);
}
SysLog(NID_SHELL, "Exit.");
return E_SUCCESS;
}
+
+bool
+_AppWidgetProviderManagerImpl::IsPackagedWithTPK(const Tizen::App::AppId& appId)
+{
+ String packageId = _PackageManagerImpl::GetPackageIdByAppId(appId);
+ PackageInfo* pInfo = _PackageManagerImpl::GetInstance()->GetPackageInfoN(packageId);
+ SysTryReturn(NID_APP, pInfo != null, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()) );
+
+ const _PackageInfoImpl* pPkgInfo = _PackageInfoImpl::GetInstance(pInfo);
+ SysTryReturn(NID_APP, pPkgInfo != null, false, E_SYSTEM, "Invalid PackageInfo instance.");
+
+ static const String TPK_TYPE = L"tpk";
+ if( pPkgInfo && pPkgInfo->GetAppType() == TPK_TYPE )
+ {
+ SysLog(NID_SHELL, "tpk app.");
+ return true;
+ }
+ SysLog(NID_SHELL, "not tpk app.");
+ return false;
+}
+
result
_AppWidgetProviderManagerImpl::RequestUpdate(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName, const Tizen::Base::String& argument)
{
// //TODO: optimizing for local request
// }
// else
+
+ if( IsPackagedWithTPK(appId) == true)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
return pProxy->RequestUpdate(appId, providerName, argument);
}
-
+ else
+ {
+ String providerId;
+ if( providerName.IsEmpty())
+ {
+ providerId = appId;
+ }
+ else
+ {
+ providerId = appId + "." + providerName;
+ }
+ unique_ptr<char[]> pPkgName(_StringConverter::CopyToCharArrayN(providerId));
+ int ret = livebox_service_trigger_update(pPkgName.get(), null, null, null, 0);
+ SysTryReturnResult(NID_SHELL, ret == LB_STATUS_SUCCESS || ret == LB_STATUS_ERROR_CANCEL, E_SYSTEM, "Failed to invoke livebox_service_trigger_update() with reason(%d)", ret);
+ return E_SUCCESS;
+ }
}
result
SysLog(NID_SHELL, "id(%ls), name(%ls), param(%ls)", pInstanceId->GetPointer(), pName->GetPointer(), pParam->GetPointer());
- if(operationId.StartsWith(APPWIDGET_POPUP_PREFIX, 0) == true)
- {
- SysTryReturnVoidResult(NID_SHELL, __pAppWidgetPopupProviderFactory, E_FAILURE, "[E_FAILURE] __pAppWidgetPopupProviderFactory is null");
- HandleAppWidgetPopupRequest(operationId, pArgs);
- }
- else
+ if(this->ContainsAppWidget(*pInstanceId) == false)
{
- if(this->ContainsAppWidget(*pInstanceId) == false)
- {
- SysLog(NID_SHELL, "no appwidget instance, creating..");
+ SysLog(NID_SHELL, "no appwidget instance, creating..");
- int width = 0;
- const String* pValue = dynamic_cast<const String*>(pArgs->GetValue(ARG_KEY_WIDTH));
- SysTryReturnVoidResult(NID_SHELL, pValue, E_FAILURE, "Failed to GetValue(%ls)", ARG_KEY_WIDTH.GetPointer() );
- Integer::Parse(*pValue, width);
+ int width = 0;
+ const String* pValue = dynamic_cast<const String*>(pArgs->GetValue(ARG_KEY_WIDTH));
+ SysTryReturnVoidResult(NID_SHELL, pValue, E_FAILURE, "Failed to GetValue(%ls)", ARG_KEY_WIDTH.GetPointer() );
+ Integer::Parse(*pValue, width);
- int height = 0;
- pValue = dynamic_cast<const String*>(pArgs->GetValue(ARG_KEY_HEIGHT));
- SysTryReturnVoidResult(NID_SHELL, pValue, E_FAILURE, "Failed to GetValue(%ls)", ARG_KEY_HEIGHT.GetPointer() );
- Integer::Parse(*pValue, height);
+ int height = 0;
+ pValue = dynamic_cast<const String*>(pArgs->GetValue(ARG_KEY_HEIGHT));
+ SysTryReturnVoidResult(NID_SHELL, pValue, E_FAILURE, "Failed to GetValue(%ls)", ARG_KEY_HEIGHT.GetPointer() );
+ Integer::Parse(*pValue, height);
- this->CreateAppWidget( *pName, *pInstanceId, width, height, *pParam);
+ this->CreateAppWidget( *pName, *pInstanceId, width, height, *pParam);
- if(operationId == APPWIDGET_ON_RESIZE)
- {
- SysLog(NID_SHELL, "operation is resize, but appwidget is already recreated with new size, so OnSize won't be called.");
- return;
- }
+ if(operationId == APPWIDGET_ON_RESIZE)
+ {
+ SysLog(NID_SHELL, "operation is resize, but appwidget is already recreated with new size, so OnSize won't be called.");
+ return;
}
+ }
+ if(operationId.StartsWith(APPWIDGET_POPUP_PREFIX, 0) == true)
+ {
+ SysTryReturnVoidResult(NID_SHELL, __pAppWidgetPopupProviderFactory, E_FAILURE, "[E_FAILURE] __pAppWidgetPopupProviderFactory is null");
+ HandleAppWidgetPopupRequest(operationId, pArgs);
+ }
+ else
+ {
SysTryReturnVoidResult(NID_SHELL, __pAppWidgetFactory, E_FAILURE, "[E_FAILURE] __pAppWidgetFactory is null");
HandleAppWidgetRequest(operationId, pArgs);
}
AppWidgetPopup* pAppWidgetFrame = pPd->GetAppWidgetPopup();
SysTryReturnResult(NID_SHELL, pAppWidgetFrame, E_INVALID_OPERATION, "[E_INVALID_OPERATION] AppWidgetPopup should be set using AppWidgetPopupProvider::SetAppWidgetPopup()");
+ _ServiceAppImpl* pServiceAppImpl = _ServiceAppImpl::GetInstance();
+ SysAssert(pServiceAppImpl);
+ pServiceAppImpl->PauseLifeDurationTimer();
+
return E_SUCCESS;
}
__pAppWidgetPopupProvider = null;
}
+ _ServiceAppImpl* pServiceAppImpl = _ServiceAppImpl::GetInstance();
+ SysAssert(pServiceAppImpl);
+ pServiceAppImpl->ResumeLifeDurationTimer();
+
return E_SUCCESS;
}