Modify Appcontrol information
authorDuyoung Jang <duyoung.jang@samsung.com>
Wed, 24 Oct 2012 05:34:57 +0000 (14:34 +0900)
committerDuyoung Jang <duyoung.jang@samsung.com>
Wed, 24 Oct 2012 07:41:10 +0000 (16:41 +0900)
Change-Id: I8f32fb1a76b8db55a7e803b95775d7b3ef5e8d98

inc/InstallerDefs.h
src/XmlHandler/ManifestGenerator.cpp

index 5c7002e..4f598ab 100755 (executable)
@@ -75,7 +75,7 @@
 #define DIR_MEMORYCARD_OSP_APPLICATIONS_TEMP   L"/opt/storage/sdcard/apps/__@@osp_tmp@@__"
 
 #define OSP_INSTALLER "osp-installer"
-#define OSP_INSTALLER_VERSION "osp-installer version = 2012/10/22"
+#define OSP_INSTALLER_VERSION "osp-installer version = 2012/10/24"
 
 enum InstallationSetStep
 {
index e6bd262..c03822e 100755 (executable)
@@ -435,55 +435,62 @@ ManifestGenerator::WriteAppControl(_PackageAppInfoImpl* pAppInfoImpl) const
        TryReturn(pAppInfoImpl, false, "[osp-installer] pAppInfoImpl is null.");
 
        ArrayList* pAppControlImplList = pAppInfoImpl->GetAppControlList();
-       if (pAppControlImplList)
+       TryReturn(pAppControlImplList, false, "[osp-installer] pAppControlImplList is null.");
+
+       _AppControlInfoImpl* pAppControl = dynamic_cast<_AppControlInfoImpl*>(pAppControlImplList->GetAt(0));
+       TryReturn(pAppControl, false, "[osp-installer] pAppControl is null.");
+
+       ArrayList* pCapabilityList = pAppControl->GetCapabilityList();
+       TryReturn(pCapabilityList, false, "[osp-installer] pCapabilityList is null.");
+
+       int capaCount = pCapabilityList->GetCount();
+       for (int capaIndex = 0 ; capaIndex < capaCount; capaIndex++)
        {
-               _AppControlInfoImpl* pAppControl = dynamic_cast<_AppControlInfoImpl*>(pAppControlImplList->GetAt(0));
-               if (pAppControl)
+               _AppControlCapabilityInfoImpl* pCapability = dynamic_cast<_AppControlCapabilityInfoImpl*>(pCapabilityList->GetAt(capaIndex));
+               if (pCapability == null) continue;
+
+               String operationId = pCapability->GetOperationId();
+
+               ArrayList* pResolutionList = pCapability->GetResolutionList();
+               int resCount = pResolutionList->GetCount();
+
+               if (resCount == 0)
                {
-                       ArrayList* pCapabilityList = pAppControl->GetCapabilityList();
+                       __pWriter->StartElement("application-service");
+                       __pWriter->StartElement("operation");
+                       __pWriter->WriteAttribute("name", operationId);
+                       __pWriter->EndElement();
+                       __pWriter->EndElement();
+                       continue;
+               }
 
-                       for (int i = 0 ; i < pCapabilityList->GetCount(); i++)
-                       {
-                               if (pCapabilityList)
-                               {
-                                       _AppControlCapabilityInfoImpl* pCapability = dynamic_cast<_AppControlCapabilityInfoImpl*>(pCapabilityList->GetAt(i));
-                                       if (pCapability)
-                                       {
-                                               String operationId = pCapability->GetOperationId();
+               for (int resIndex = 0 ; resIndex < resCount; resIndex++)
+               {
+                       __pWriter->StartElement("application-service");
+                       __pWriter->StartElement("operation");
+                       __pWriter->WriteAttribute("name", operationId);
+                       __pWriter->EndElement();
 
-                                               __pWriter->StartElement("application-service");
+                       _AppControlResolutionInfoImpl* pResolution = dynamic_cast <_AppControlResolutionInfoImpl*>(pResolutionList->GetAt(resIndex));
+                       if (pResolution == null) continue;
 
-                                               __pWriter->StartElement("operation");
-                                               __pWriter->WriteAttribute("name", operationId);
-                                               __pWriter->EndElement();
+                       String* pUriScheme = pResolution->GetUriScheme();
+                       if (pUriScheme && pUriScheme->IsEmpty() == false)
+                       {
+                               __pWriter->StartElement("uri");
+                               __pWriter->WriteAttribute("name", *pUriScheme);
+                               __pWriter->EndElement();
+                       }
 
-                                               ArrayList* pResolutionList = pCapability->GetResolutionList();
-                                               if (pResolutionList)
-                                               {
-                                                       _AppControlResolutionInfoImpl* pResolution = dynamic_cast <_AppControlResolutionInfoImpl*>(pResolutionList->GetAt(0));
-                                                       if (pResolution)
-                                                       {
-                                                               String* pUriScheme = pResolution->GetUriScheme();
-                                                               if (pUriScheme && pUriScheme->IsEmpty() == false)
-                                                               {
-                                                                       __pWriter->StartElement("uri");
-                                                                       __pWriter->WriteAttribute("name", *pUriScheme);
-                                                                       __pWriter->EndElement();
-                                                               }
-
-                                                               String* pMimeType = pResolution->GetMimeType();
-                                                               if (pMimeType && pMimeType->IsEmpty() == false)
-                                                               {
-                                                                       __pWriter->StartElement("mime");
-                                                                       __pWriter->WriteAttribute("name", *pMimeType);
-                                                                       __pWriter->EndElement();
-                                                               }
-                                                       }
-                                               }
-                                               __pWriter->EndElement();
-                                       }
-                               }
+                       String* pMimeType = pResolution->GetMimeType();
+                       if (pMimeType && pMimeType->IsEmpty() == false)
+                       {
+                               __pWriter->StartElement("mime");
+                               __pWriter->WriteAttribute("name", *pMimeType);
+                               __pWriter->EndElement();
                        }
+
+                       __pWriter->EndElement();
                }
        }
 }