widgets/widgetapp/src/cpspublisher.cpp
changeset 10 a359256acfc6
parent 1 7c90e6132015
child 26 cb62a4f66ebe
--- a/widgets/widgetapp/src/cpspublisher.cpp	Fri Jul 03 15:54:40 2009 +0100
+++ b/widgets/widgetapp/src/cpspublisher.cpp	Thu Aug 27 07:44:59 2009 +0300
@@ -46,23 +46,31 @@
 _LIT8( KItem, "item" );
 _LIT8( KAdd, "Add" );
 
-_LIT(KP,"ai3templatedwidget");
-_LIT(KCT,"wideimage");
+_LIT(KTemplateWidget,"ai3templatedwidget");
 _LIT8( KImageKey, "image1");
 
 _LIT8( KMask, "_mask");
 
-_LIT(KP1,"ai3homescreen");
-_LIT(KCT1,"wideimage");
+_LIT(KHomescreenId,"ai3homescreen");
+_LIT(KTemplateName,"wideimage");
 _LIT( KImageContainer, "image_container" );
 _LIT8( KWidth, "width");
 _LIT8( KHeight, "height");
+
+_LIT( KPublisherInfo, "publisher" );
+_LIT( KInfoType, "network" );
+_LIT( KDisConnected, "disconnected");
+_LIT( KConnected, "connected");
+_LIT8( KAPStatus, "apstatus");
+
 _LIT8( KFilter, "filter" );
 _LIT8( KResults,      "results");
 _LIT8( KOperation, "operation" );
 _LIT8( KRequestNotification, "RequestNotification" );
 _LIT( KUpdate, "update" );
 _LIT8( KChangeInfo, "change_info" );
+_LIT( KWRTPublisher, "wrt_publisher");
+
 const TInt KSkinGfxInnerRectShrink = 5;
 
 static void DoResetAndDestroy( TAny* aPtr )
@@ -171,8 +179,8 @@
     {
     //Create filter criteria for requested entries in form of LIW map:
     CLiwDefaultMap* filter = CLiwDefaultMap::NewLC();
-    filter->InsertL( KPublisherId, TLiwVariant( KP1 ));
-    filter->InsertL( KContentType, TLiwVariant( KCT1 ));
+    filter->InsertL( KPublisherId, TLiwVariant( KHomescreenId ));
+    filter->InsertL( KContentType, TLiwVariant( KTemplateName ));
     filter->InsertL( KContentId, TLiwVariant( KImageContainer ));
     return filter;
     }
@@ -212,11 +220,25 @@
 
 TSize CCpsPublisher::BitmapSize()
     {
-    return iSize;
+    if( iSize.iHeight == 0 || iSize.iWidth == 0 )
+        {
+        // TODO: This is a work around to fix the problem in 'Loading Content' feature.
+        // Miniview does not have size when 'Loading Content' is showing.
+        return TSize(312, 82 );
+        }
+    else
+        {
+        return iSize;
+        }
     }
 
-void CCpsPublisher::PublishBitmapL( CFbsBitmap& aBitmap, const TDesC& aBundleName )
+void CCpsPublisher::PublishBitmapL( CFbsBitmap& aBitmap, const TDesC& aBundleId )
     {
+#ifdef _DEBUG
+    TSize bitmapSize = aBitmap.SizeInPixels();
+    RDebug::Printf("CCpsPublisher::PublishBitmapL bitmap width %d height %d", bitmapSize.iWidth, bitmapSize.iHeight);
+#endif
+    
     // Load the mask bitmap from skin
     if( !iMaskBitmap ||
         aBitmap.SizeInPixels() != iMaskBitmap->SizeInPixels())
@@ -234,11 +256,85 @@
         {
         maskHandle = iMaskBitmap->Handle();
         }    
-    RDebug::Printf("CCpsPublisher::PublishBitmapL");
-    AddImageHandleL( KP() ,KCT(), aBundleName,
+#ifdef _DEBUG
+    RDebug::Printf("CCpsPublisher::PublishBitmapL, bitmap handle 0x%x", handle);
+#endif
+    AddImageHandleL( aBundleId,
             handle, maskHandle, KImageKey() );
     }
 
+void CCpsPublisher::NetworkConnectionCancelledL()
+    {
+    CLiwGenericParamList& inparam = iServiceHandler->InParamListL();
+    CLiwGenericParamList& outparam = iServiceHandler->OutParamListL();
+
+    TLiwGenericParam type( KType, TLiwVariant( KCpData ));
+    type.PushL();
+    inparam.AppendL( type );
+    
+    CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
+    CLiwDefaultMap* datamap = CLiwDefaultMap::NewLC();
+    
+    // Create content map
+    cpdatamap->InsertL( KPublisherId, TLiwVariant( KHomescreenId ));
+    cpdatamap->InsertL( KContentType, TLiwVariant( KPublisherInfo )); 
+    cpdatamap->InsertL( KContentId, TLiwVariant( KInfoType ));
+    // Create the data map
+    datamap->InsertL( KAPStatus, TLiwVariant( KDisConnected ));
+    cpdatamap->InsertL( KDataMap, TLiwVariant(datamap) );
+    
+    TLiwGenericParam item( KItem, TLiwVariant( cpdatamap ));     
+    item.PushL(); 
+       
+    inparam.AppendL( item );
+    
+    iCpsInterface->ExecuteCmdL( KAdd , inparam, outparam);
+
+    CleanupStack::PopAndDestroy( &item );
+    CleanupStack::PopAndDestroy( datamap );
+    CleanupStack::PopAndDestroy( cpdatamap );
+    CleanupStack::PopAndDestroy( &type );
+
+    outparam.Reset();
+    inparam.Reset();
+    }
+
+void CCpsPublisher::NetworkConnectionAllowedL()
+    {
+    CLiwGenericParamList& inparam = iServiceHandler->InParamListL();
+    CLiwGenericParamList& outparam = iServiceHandler->OutParamListL();
+
+    TLiwGenericParam type( KType, TLiwVariant( KCpData ));
+    type.PushL();
+    inparam.AppendL( type );
+    
+    CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
+    CLiwDefaultMap* datamap = CLiwDefaultMap::NewLC();
+    
+    // Create content map
+    cpdatamap->InsertL( KPublisherId, TLiwVariant( KHomescreenId ));
+    cpdatamap->InsertL( KContentType, TLiwVariant( KPublisherInfo )); 
+    cpdatamap->InsertL( KContentId, TLiwVariant( KInfoType ));
+    // Create the data map
+    datamap->InsertL( KAPStatus, TLiwVariant( KConnected ));
+    cpdatamap->InsertL( KDataMap, TLiwVariant(datamap) );
+    
+    TLiwGenericParam item( KItem, TLiwVariant( cpdatamap ));     
+    item.PushL(); 
+       
+    inparam.AppendL( item );
+    
+    iCpsInterface->ExecuteCmdL( KAdd , inparam, outparam);
+
+    CleanupStack::PopAndDestroy( &item );
+    CleanupStack::PopAndDestroy( datamap );
+    CleanupStack::PopAndDestroy( cpdatamap );
+    CleanupStack::PopAndDestroy( &type );
+
+    outparam.Reset();
+    inparam.Reset();
+    }
+
 void CCpsPublisher::GetBitmapSizeL()
     {
     CLiwDefaultMap *outDataMap = CLiwDefaultMap::NewLC();
@@ -322,10 +418,8 @@
 // 
 // ---------------------------------------------------------------------------
 // 
-void CCpsPublisher::AddImageHandleL( 
-        const TDesC& aPublisherId, const TDesC& aContentType, 
-        const TDesC& aContentId, const TInt& aHandle, const TInt& aMaskHandle,
-        const TDesC8& aImageKey )
+void CCpsPublisher::AddImageHandleL( const TDesC& aBundleId, const TInt& aHandle,
+        const TInt& aMaskHandle, const TDesC8& aImageKey )
     {
     __UHEAP_MARK;
     CLiwGenericParamList& inparam = iServiceHandler->InParamListL();
@@ -351,9 +445,9 @@
     CleanupStack::PopAndDestroy( maskKey );
 
     // Create content data map
-    cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId ));
-    cpdatamap->InsertL( KContentType, TLiwVariant( aContentType )); 
-    cpdatamap->InsertL( KContentId, TLiwVariant( aContentId ));
+    cpdatamap->InsertL( KPublisherId, TLiwVariant( KWRTPublisher ));
+    cpdatamap->InsertL( KContentType, TLiwVariant( KTemplateWidget )); 
+    cpdatamap->InsertL( KContentId, TLiwVariant( aBundleId ));
     cpdatamap->InsertL( KDataMap, TLiwVariant(map) );
             
     TLiwGenericParam item( KItem, TLiwVariant( cpdatamap ));