Update for getting a bitmap resource
authorJaesung Ku <jaesung.ku@samsung.com>
Tue, 26 Mar 2013 12:08:48 +0000 (21:08 +0900)
committerYoung Ik Cho <youngik.cho@samsung.com>
Wed, 27 Mar 2013 23:55:13 +0000 (08:55 +0900)
Change-Id: I316ddf899e629196089ea4a22cd010b2d3427e0b
Signed-off-by: Jaesung Ku <jaesung.ku@samsung.com>
src/app/FApp_AppResourceBitmap.cpp [changed mode: 0644->0755]
src/app/FApp_AppResourceBitmapUtil.cpp [changed mode: 0644->0755]
src/app/FApp_AppResourceBitmapUtil.h [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 6e340eb..8011183
@@ -76,10 +76,19 @@ _AppResourceBitmap::GetBitmapN(const String& imageFileName, BitmapPixelFormat pi
        bool imageScaling(true);
        _AppResourceBitmapUtil::_Density resourceDensity = _AppResourceBitmapUtil::DENSITY_NONE;
 
-       result r = __pAppResourceBitmapUtil->GetResourcePath(imageFileName, resourcePath, resourceDensity, imageScaling);
-       SysTryReturn(NID_APP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
-       SysTryReturn(NID_APP, resourcePath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] The specified file does not exist.");
-
+       result r = E_SUCCESS;
+       if(__pAppResourceBitmapUtil->GetAppResourceType() != _AppResourceBitmapUtil::APP_RESOURCE_BITMAP)
+       {
+               r = __pAppResourceBitmapUtil->GetResourcePath(imageFileName, resourcePath, resourceDensity, imageScaling);
+               SysTryReturn(NID_APP, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
+               SysTryReturn(NID_APP, resourcePath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] The specified file does not exist.");
+       }
+       else
+       {
+               resourcePath = imageFileName;
+               imageScaling = false;
+               pixelFormat = BITMAP_PIXEL_FORMAT_ARGB8888;
+       }
 
        // GetBitmapN
        Bitmap* pBitmap = null;
old mode 100644 (file)
new mode 100755 (executable)
index 0d385b5..f1b604c
@@ -96,9 +96,13 @@ _AppResourceBitmapUtil*
 _AppResourceBitmapUtil::GetInstanceN(int type, const String& value)
 {
        String resourceFolder(L"");
+       Tizen::App::_AppResourceBitmapUtil::AppResourceBy appResourceType = _AppResourceBitmapUtil::APP_RESOURCE_DEFAULT;
 
        switch(type)
        {
+       case _AppResourceBitmapUtil::APP_RESOURCE_BITMAP:
+               appResourceType = _AppResourceBitmapUtil::APP_RESOURCE_BITMAP;
+               break;
        case _AppResourceBitmapUtil::APP_RESOURCE_DEFAULT:
                //fall through
        case _AppResourceBitmapUtil::APP_RESOURCE_BY_LIBRARY_NAME:
@@ -112,7 +116,6 @@ _AppResourceBitmapUtil::GetInstanceN(int type, const String& value)
                        resourceFolder.Append(L'/');
                }
                break;
-
        case _AppResourceBitmapUtil::APP_RESOURCE_BY_APP_ID:
                std::unique_ptr< PackageInfo> pPkgInfo(_PackageManagerImpl::GetInstance()->GetPackageInfoN(value));
                SysTryReturn(NID_APP, pPkgInfo != null, null, E_APP_NOT_INSTALLED, "[E_APP_NOT_INSTALLED] Failed to get the package info.");
@@ -128,6 +131,8 @@ _AppResourceBitmapUtil::GetInstanceN(int type, const String& value)
        std::unique_ptr< _AppResourceBitmapUtil > pAppResourceBitmapUtil(new (std::nothrow) _AppResourceBitmapUtil());
        SysTryReturn(NID_APP, pAppResourceBitmapUtil != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient." );
 
+       pAppResourceBitmapUtil->__resourceType = appResourceType;
+
        result r = pAppResourceBitmapUtil->Construct(resourceFolder);
        SysTryReturn(NID_APP, r == E_SUCCESS, null, r, "[%s] Failed to construct _AppResourceBitmapUtil.", GetErrorMessage(r));
 
@@ -137,6 +142,12 @@ _AppResourceBitmapUtil::GetInstanceN(int type, const String& value)
 result
 _AppResourceBitmapUtil::Construct(const String& resourceFolder)
 {
+       if (__resourceType == _AppResourceBitmapUtil::APP_RESOURCE_BITMAP)
+       {
+               SysLog(NID_APP, "This is a BitmapUtil for getting a non-scaling bitmap resource");
+               return E_SUCCESS;
+       }
+
        int deviceDPI = 0;
        result r = Tizen::System::_SystemInfoImpl::GetSysInfo(L"http://tizen.org/feature/screen.dpi", deviceDPI);
        SysTryReturnResult(NID_APP, r == E_SUCCESS, r, "[%s] Failed to get Screen DPI", GetErrorMessage(r));
@@ -467,4 +478,10 @@ _AppResourceBitmapUtil::GetBitmapN(const String& resourcePath, const _Density re
        return pBitmap.release();
 }
 
+Tizen::App::_AppResourceBitmapUtil::AppResourceBy 
+_AppResourceBitmapUtil::GetAppResourceType(void)
+{
+       return __resourceType;
+}
+
 }} // Tizen::App
old mode 100644 (file)
new mode 100755 (executable)
index f8181f6..8d1da57
@@ -62,7 +62,8 @@ public:
        {
                APP_RESOURCE_DEFAULT,
                APP_RESOURCE_BY_APP_ID,
-               APP_RESOURCE_BY_LIBRARY_NAME
+               APP_RESOURCE_BY_LIBRARY_NAME,
+               APP_RESOURCE_BITMAP
        };
 
        // This is the default constructor for this class.
@@ -93,6 +94,8 @@ public:
 
        static _AppResourceBitmapUtil* GetInstanceN(int type = APP_RESOURCE_DEFAULT, const Tizen::Base::String& value = L"");
 
+       Tizen::App::_AppResourceBitmapUtil::AppResourceBy GetAppResourceType(void);
+       
 private:
        // This is the copy constructor for this class.
        _AppResourceBitmapUtil(const _AppResourceBitmapUtil& rhs);
@@ -120,6 +123,8 @@ private:
        _Density __sortedDensity[DENSITY_MAX];
        Tizen::Base::String __sortedDensityDirectories[DENSITY_MAX];
 
+       Tizen::App::_AppResourceBitmapUtil::AppResourceBy __resourceType;
+
 }; // _AppResourceBitmapUtil
 
 }} // Tizen::App