emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp
branchRCL_3
changeset 10 f5907b1a1053
parent 8 e1b6206813b4
child 11 0396474f30f5
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp	Fri Feb 19 22:37:30 2010 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpsif.cpp	Fri Mar 12 15:41:14 2010 +0200
@@ -67,7 +67,6 @@
     for (TInt i=0; i<KMaxMailboxCount; i++)
         {
         iAllowedToPublish[i] = EFalse;
-        iInactive[i] = EFalse;
         }
     
     AllocateResourcesL();
@@ -187,15 +186,52 @@
             KPubId, KContTypeSetupText,
             iInstIdList[instance]->Des(),
             *setupEmail, 
-            KKeySetupText, KTriggerWizard8, NULL, mailBoxId, folderId);	
-    
+            KKeySetupText, KTriggerWizard8);	
+
     PublishImageL(
             iInstIdList[instance]->Des(),
             KContTypeSetupIcon,
             KKeySetupIcon,
             EMbmCmailhandlerpluginQgn_prop_cmail_new_mailbox,
             EMbmCmailhandlerpluginQgn_prop_cmail_new_mailbox_mask,
-            mailBoxId);
+            mailBoxId,
+            KNullDes);
+            
+    PublishImageL(
+            iInstIdList[instance]->Des(),
+            KContTypeSetupBrandIcon1,
+            KKeySetupBrandIcon1,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+            mailBoxId,
+            KSetupBrand1);
+
+    PublishImageL(
+            iInstIdList[instance]->Des(),
+            KContTypeSetupBrandIcon2,
+            KKeySetupBrandIcon2,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+            mailBoxId,
+            KSetupBrand2);
+
+    PublishImageL(
+            iInstIdList[instance]->Des(),
+            KContTypeSetupBrandIcon3,
+            KKeySetupBrandIcon3,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+            mailBoxId,
+            KSetupBrand3);
+
+    PublishImageL(
+            iInstIdList[instance]->Des(),
+            KContTypeSetupBrandIcon4,
+            KKeySetupBrandIcon4,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account,
+            EMbmCmailhandlerpluginQgn_indi_cmail_drop_email_account_mask,
+            mailBoxId,
+            KSetupBrand4);            
 
     CleanupStack::PopAndDestroy(setupEmail);    
     }
@@ -207,10 +243,7 @@
 void CMailCpsIf::PublishActiveMailboxNameL(
     const TInt aInstance,
     const TInt aRowNumber, 
-    const TDesC& aMailboxName,
-    const TInt aMailBoxCount,
-    TFSMailMsgId aMailBoxId,
-    TFSMailMsgId aFolderId)
+    const TDesC& aMailboxName)
     {
     FUNC_LOG;
 
@@ -229,8 +262,7 @@
         KPubId, contentType, 
         iInstIdList[aInstance]->Des(),
         aMailboxName,
-        textKey, KTriggerEmailUi8, aMailBoxCount,
-        aMailBoxId, aFolderId);		
+        textKey, KTriggerEmailUi8);
     }
 
 // ---------------------------------------------------------------------------
@@ -255,7 +287,7 @@
     TFSMailMsgId dummy;
     
     PublishDescriptorL( KPubId, contentType, iInstIdList[aInstance]->Des(),
-        aMailboxName, textKey, aAction, 0, dummy, dummy );
+        aMailboxName, textKey, aAction);
     }
 
 // ---------------------------------------------------------------------------
@@ -289,7 +321,8 @@
               key,
               aIcon,
               aIcon + 1,
-              mailBoxId);
+              mailBoxId,
+              KNullDes);
     }
 
 // ---------------------------------------------------------------------------
@@ -323,7 +356,8 @@
               key,
               aIcon,
               aIcon + 1,
-              aMailBoxId);    
+              aMailBoxId,
+              KNullDes);
     }
 
 // ---------------------------------------------------------------------------
@@ -410,7 +444,11 @@
         {    
         contentType.Copy(KContTypeTime);
         }
-    else
+    else if (aDetail == ESubject)
+        {
+        contentType.Copy(KContTypeSubjectText);
+        }        
+    else //aDetail == ESender
         {
         contentType.Copy(KContTypeBodyText);
         }
@@ -421,6 +459,10 @@
         {
         textKey.Copy(KKeyTime);
         }
+    else if (aDetail == ESubject)
+        {
+        textKey.Copy(KKeySubjectText);
+        }     
     else
         {
         textKey.Copy(KKeyBodyText);
@@ -434,8 +476,7 @@
         KPubId, contentType, 
         iInstIdList[aInstance]->Des(),
         aText,
-        textKey, KNullDes8, NULL,
-        mailBoxId, folderId);  
+        textKey, KNullDes8);  
     }
 
 // ---------------------------------------------------------------------------
@@ -478,10 +519,7 @@
     const TDesC& aContentId, 
     const TDesC& aTextToAdd,
     const TDesC& aKey,
-    const TDesC8& aTrigger,
-    const TInt /*aMailBoxCount*/,
-    TFSMailMsgId /*aMailBoxId*/,
-    TFSMailMsgId /*aFolderId*/ )
+    const TDesC8& aTrigger)
     {
     FUNC_LOG;
 
@@ -545,7 +583,8 @@
         const TDesC8& aKey,
         TInt aBitmapId,
         TInt aBitmapMaskId,
-        TFSMailMsgId aMailBoxId )
+        TFSMailMsgId aMailBoxId,
+        const TDesC& aBrandId )
     {
     FUNC_LOG;
 
@@ -558,9 +597,19 @@
         TBuf<KMaxDescLen> brandedIconIds(KNullDesC);
         
         MFSMailBrandManager& brandManager = iMailCpsHandler->MailClient().GetBrandManagerL();
-        TRAPD( err, error = brandManager.GetGraphicIdsL( EFSMailboxIcon,  aMailBoxId, brandedIconIds ) );        
+        TInt err2(KErrNone);
+        if (aBrandId.Length() > 0)
+            {
+            TRAPD( err, error = brandManager.GetGraphicIdsL( EFSMailboxIcon,  aBrandId, brandedIconIds ) );
+            err2 = err;
+            }
+        else
+            {
+            TRAPD( err, error = brandManager.GetGraphicIdsL( EFSMailboxIcon,  aMailBoxId, brandedIconIds ) );
+            err2 = err;
+            }
 
-        if ( err == KErrNone && error == KErrNone )
+        if ( err2 == KErrNone && error == KErrNone )
             {            
             iconIds.Copy(KMifPrefix);
             iconIds.Append(brandedIconIds);
@@ -677,11 +726,10 @@
 
     // Create the action map for publisher registry
     CLiwDefaultMap* mapAction = CLiwDefaultMap::NewLC();
-    mapAction->InsertL(KActive, TLiwVariant( KData ));
-    mapAction->InsertL(KDeActive, TLiwVariant( KData ));
+    mapAction->InsertL(KPluginStartup, TLiwVariant( KData ));
+    mapAction->InsertL(KPluginShutdown, TLiwVariant( KData ));
     mapAction->InsertL(KSuspend, TLiwVariant( KData ));
     mapAction->InsertL(KResume, TLiwVariant( KData ));
-    mapAction->InsertL(KInactive, TLiwVariant( KData ));    
 
     publishermap->InsertL( KActionMap, TLiwVariant(mapAction));
     CleanupStack::PopAndDestroy(mapAction);
@@ -798,7 +846,7 @@
 
         TInt mapslistcount (changeMapsList->Count());
 
-        for (TInt i = 0; i < changeMapsList->Count(); ++i)
+        for (TInt i = 0; i < mapslistcount; ++i)
             {
              if ( changeMapsList->AtL(i, variant) ) 
                  {
@@ -817,16 +865,7 @@
                              {
                              variant.Get(trigger );
                              }
-                         if (trigger.Compare(KInactive16) == 0)
-                             {
-                             // Homescreen page is about to change.
-                             // Ignore next deactivate event of this particular widget instance.
-                             HBufC* cid = contentid.AllocLC();
-                             TInt widgetInstance = FindWidgetInstanceId(cid->Des());
-                             iInactive[widgetInstance] = ETrue;
-                             CleanupStack::PopAndDestroy( cid );                             
-                             }                         
-                         else if (trigger.Compare(KSuspend16) == 0)
+                         if (trigger.Compare(KSuspend16) == 0)
                              {
                              // Publishing to homescreen suspended.
                              HBufC* cid = contentid.AllocLC();
@@ -844,43 +883,36 @@
                              TInt widgetInstance = FindWidgetInstanceId(cid->Des());
                              PublishSetupWizardL(widgetInstance);
                              iMailCpsHandler->UpdateMailboxesL(widgetInstance, cid->Des());
-                             iMailCpsHandler->UpdateExtAccountL( cid->Des() );
                              // Widget visible on the homescreen. Publishing allowed.
                              iAllowedToPublish[widgetInstance] = ETrue;
-                             iInactive[widgetInstance] = EFalse;
                              CleanupStack::PopAndDestroy( cid );
                              }
-                         else if (trigger.Compare(KActive16) == 0)
+                         else if (trigger.Compare(KPluginStartup16) == 0)
                              {
-                             // Widget added to homescreen (or already on the screen when boot completes).
+                             // Widget added to homescreen
                              HBufC* cid = contentid.AllocLC();
-                             TInt widgetInstance = FindWidgetInstanceId(cid->Des());
-                             if (iInactive[widgetInstance])
+                             iInstIdList.AppendL( contentid.AllocL() );
+                             if ( iMailCpsHandler->TotalMailboxCountL() )
                                  {
-                                 iInactive[widgetInstance] = EFalse;
+                                 iMailCpsHandler->LaunchWidgetSettingsL(cid->Des());
                                  }
                              else
                                  {
-                                 iInstIdList.AppendL( contentid.AllocL() );
-                                 iMailCpsHandler->ManualAccountSelectionL(cid->Des());                                 
+                                 iMailCpsHandler->LaunchEmailWizardL(cid->Des());
                                  }
                              CleanupStack::PopAndDestroy( cid );
                              }
-                         else if (trigger.Compare(KDeActive16) == 0)
+                         else if (trigger.Compare(KPluginShutdown16) == 0)
                              {                            
                              // Widget removed from homescreen.
-                             HBufC* cid = contentid.AllocLC();
-                             ResetPublishedDataL( cid->Des() );
-                             TInt widgetInstance = FindWidgetInstanceId(cid->Des());
+                             HBufC* cid = contentid.AllocLC();                             
+                             ResetPublishedDataL( cid->Des() );							 
+                             iMailCpsHandler->DissociateWidgetFromSettingL( cid->Des() );
+                             TInt widgetInstance = FindWidgetInstanceId( cid->Des() );
                              if (widgetInstance != KErrNotFound )
-                            	 {
-								 if (!iInactive[widgetInstance])
-									 {
-									 iMailCpsHandler->DissociateWidgetFromSettingL( cid->Des() );                                 
-									 iInstIdList.Remove(widgetInstance);                                 
-									 }
-								 iAllowedToPublish[widgetInstance] = EFalse;
-                            	 }
+                                 {
+                                 iInstIdList.Remove(widgetInstance);
+                                 }
                              CleanupStack::PopAndDestroy( cid );
                              }
                          else if (trigger.Compare(KTriggerEmailUi) == 0)
@@ -893,17 +925,17 @@
                                  ( trigger.Compare(KSettings16) == 0))
                              {
                              // If no accounts are created launch email wizard
-                             // otherwice launch widget settings app                             
+                             // otherwice launch widget settings app
+                             HBufC* cid = contentid.AllocLC();
                              if ( iMailCpsHandler->TotalMailboxCountL() )
                                  {
-                                 HBufC* cid = contentid.AllocLC();
                                  iMailCpsHandler->LaunchWidgetSettingsL(cid->Des());
-                                 CleanupStack::PopAndDestroy( cid );                                 
                                  }
                              else
                                  {
-                                 iMailCpsHandler->LaunchEmailWizardL();
+                                 iMailCpsHandler->LaunchEmailWizardL(cid->Des());
                                  }
+                             CleanupStack::PopAndDestroy( cid );
                              }
                          }
                      }