fix crash on viewing slp dynamic box that doesn't have provider name
authorjungmin76.park <jungmin76.park@samsung.com>
Tue, 25 Jun 2013 06:37:12 +0000 (15:37 +0900)
committerjungmin76.park <jungmin76.park@samsung.com>
Tue, 25 Jun 2013 06:37:12 +0000 (15:37 +0900)
Change-Id: Ic96975313bdb8e4cf06ec62825909568fbe7228f
Signed-off-by: jungmin76.park <jungmin76.park@samsung.com>
src/FShell_AppWidgetProviderInfoImpl.cpp
src/FShell_AppWidgetProviderManagerImpl.cpp
src/inc/FShell_AppWidgetProviderInfoImpl.h

index 40db8a1..2a10f52 100644 (file)
@@ -144,14 +144,13 @@ _AppWidgetProviderInfoImpl::GetPrivilegeLevel(const AppId& appId)
 bool
 _AppWidgetProviderInfoImpl::IsValidSize(const AppId& appId, int w, int h)
 {
-       if (appId.StartsWith("com.samsung.", 0) == true)
+       if (IsInhouseApp(appId) == true)//TODO: remove this
        {
                return true;
        }
 
 //     static const int UNIT_SIZE_BASE = 175;
        static const int UNIT_SIZE_2 = 354;// UNIT_SIZE_BASE*n + 4*(n-1)
-//     static const int UNIT_SIZE_4 = 712;
 
        int privilegeLevel = GetPrivilegeLevel(appId);
        if( privilegeLevel == _API_VISIBILITY_PUBLIC || privilegeLevel == _API_VISIBILITY_PARTNER)
@@ -214,7 +213,7 @@ _AppWidgetProviderInfoImpl::GetSizeInfoListN() const
 AppWidgetProviderInfo*
 _AppWidgetProviderInfoImpl::GetAppWidgetProviderInfoN(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName)
 {
-       SysTryReturn(NID_SHELL, !providerName.IsEmpty(), null, E_OBJ_NOT_FOUND, "The provider name is empty.");
+       SysTryReturn(NID_SHELL, !providerName.IsEmpty() || IsInhouseApp(appId), null, E_OBJ_NOT_FOUND, "The provider name is empty.");
        std::unique_ptr<char[]> pProviderId(_StringConverter::CopyToCharArrayN(_AppWidgetManagerImpl::MakeProviderName(appId, providerName)));
 
        bool isDefault = livebox_service_is_primary(pProviderId.get());
@@ -252,5 +251,11 @@ _AppWidgetProviderInfoImpl::GetImpl(const AppWidgetProviderInfo& appwidgetProvid
        return static_cast<_AppWidgetProviderInfoImpl*>(appwidgetProviderInfo.__pAppWidgetProviderInfoImpl);
 }
 
+bool
+_AppWidgetProviderInfoImpl::IsInhouseApp(const Tizen::App::AppId& appId)
+{
+       return (appId.StartsWith("com.samsung.", 0) == true);
+}
+
 } /* namespace AppWidget */
 } /* namespace Samsung */
index 5424930..9f61e3b 100644 (file)
@@ -347,17 +347,7 @@ _AppWidgetProviderManagerImpl::AddAppWidget(const AppId& providerAppId, const St
        r = CheckCertificate(Tizen::App::App::GetInstance()->GetAppId(), providerAppId);
        SysTryReturnResult(NID_SHELL, !IsFailed(r), r, "VerifyCertification failed.");
 
-       String providerId;
-       if( providerAppId.StartsWith(L"com.samsung", 0) == true )
-       {
-               SysLog(NID_SHELL, "[E_INVALID_OPERATION] but allowed to test");
-               //TODO:return E_INVALID_OPERATION
-               providerId = providerAppId;
-       }
-       else
-       {
-               providerId = providerAppId + "." + providerName;
-       }
+       String providerId = providerAppId + "." + providerName;
 
        PackageAppInfo* pPackageInfo = _PackageManagerImpl::GetInstance()->GetPackageAppInfoN(providerAppId);
        r = GetLastResult();
index 2f2c950..66de7ec 100644 (file)
@@ -109,10 +109,7 @@ public:
     // internal
     static AppWidgetProviderInfo* GetAppWidgetProviderInfoN(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName);
     static AppWidgetProviderInfo* GetAppWidgetProviderInfoN(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName, bool isDefault);
-
     static _AppWidgetProviderInfoImpl* GetImpl(const AppWidgetProviderInfo& appwidgetProviderInfo);
-    static int GetPrivilegeLevel(const Tizen::App::AppId& appId);
-    static bool IsValidSize(const Tizen::App::AppId& appId, int w, int h);
 
 private:
        /**
@@ -142,6 +139,12 @@ private:
 
        static bool IsExist(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName);
 
+       static int GetPrivilegeLevel(const Tizen::App::AppId& appId);
+
+       static bool IsValidSize(const Tizen::App::AppId& appId, int w, int h);
+
+       static bool IsInhouseApp(const Tizen::App::AppId& appId);
+
 
 private:
     Tizen::Base::String __appId;