mmsengine/clientmtm/src/mmsclient.cpp
branchRCL_3
changeset 27 7fdbb852d323
parent 26 ebe688cedc25
equal deleted inserted replaced
26:ebe688cedc25 27:7fdbb852d323
  1561                 Session().CurrentDriveL() );
  1561                 Session().CurrentDriveL() );
  1562             store->CommitL();
  1562             store->CommitL();
  1563             CleanupStack::PopAndDestroy( store ); // store
  1563             CleanupStack::PopAndDestroy( store ); // store
  1564             // We must close the file handle because the attachment manager will also
  1564             // We must close the file handle because the attachment manager will also
  1565             // close the handle.
  1565             // close the handle.
  1566             // The open file handle is always closed unless the function leaves
  1566             // The open file handle is always closed unless the funtion leaves
  1567             aFile.Close();
  1567             aFile.Close();
  1568             TRequestStatus* status = &aStatus;
  1568             TRequestStatus* status = &aStatus;
  1569             aStatus = KRequestPending;
  1569             aStatus = KRequestPending;
  1570             User::RequestComplete( status, KErrNone );
  1570             User::RequestComplete( status, KErrNone );
  1571             return;
  1571             return;
  2046             {
  2046             {
  2047             // skip service
  2047             // skip service
  2048             j++;
  2048             j++;
  2049             }
  2049             }
  2050 
  2050 
  2051         for ( i = aSelection.Count() - 1; i >=j;  --i )
  2051         for ( i = aSelection.Count() - 1; i >=j;  i-- )
  2052             {
  2052             {
  2053             TRAP( error, 
  2053             TRAP( error, 
  2054                 {
  2054                 {
  2055                 cEntry->SetEntryL( aSelection.At( i ) );
  2055                 cEntry->SetEntryL( aSelection.At( i ) );
  2056                 TMsvEntry entry = cEntry->Entry();
  2056                 TMsvEntry entry = cEntry->Entry();
  2131     CMsvEntrySelection* notifications = 
  2131     CMsvEntrySelection* notifications = 
  2132         cEntry->ChildrenWithMtmL( KUidMsgMMSNotification );
  2132         cEntry->ChildrenWithMtmL( KUidMsgMMSNotification );
  2133     CleanupStack::PushL( notifications );
  2133     CleanupStack::PushL( notifications );
  2134 
  2134 
  2135     // Count only notifications that are free for a new operation
  2135     // Count only notifications that are free for a new operation
  2136     for ( TInt i = notifications->Count() - 1 ; i >= 0; --i ) 
  2136     for ( TInt i = notifications->Count() - 1 ; i >= 0; i-- ) 
  2137         {
  2137         {
  2138         TMsvId notifId = notifications->At( i );
  2138         TMsvId notifId = notifications->At( i );
  2139         cEntry->SetEntryL( notifId );
  2139         cEntry->SetEntryL( notifId );
  2140     
  2140     
  2141         TMsvEntry tEntry = cEntry->Entry();
  2141         TMsvEntry tEntry = cEntry->Entry();
  2248         iServiceId = iMmsSettings->Service();
  2248         iServiceId = iMmsSettings->Service();
  2249         }
  2249         }
  2250 
  2250 
  2251     iMmsHeaders = CMmsHeaders::NewL( iMmsSettings->MmsVersion() );
  2251     iMmsHeaders = CMmsHeaders::NewL( iMmsSettings->MmsVersion() );
  2252 
  2252 
  2253     // Address alias separators no longer read from resource.
  2253     // Address alias separators no longer read from resoure.
  2254     // Standard MIME separators < and > always used.
  2254     // Standard MIME separators < and > always used.
  2255     
  2255     
  2256     iAttributes  = new(ELeave) CDesCArrayFlat( KMmsAttributeArrayGranularity );
  2256     iAttributes  = new(ELeave) CDesCArrayFlat( KMmsAttributeArrayGranularity );
  2257 
  2257 
  2258     // Set the original context to the service entry
  2258     // Set the original context to the service entry
  2393     const CDesCArray& aArray, TMsvRecipientType aValue ) 
  2393     const CDesCArray& aArray, TMsvRecipientType aValue ) 
  2394     {
  2394     {
  2395 
  2395 
  2396     TInt size;
  2396     TInt size;
  2397     size = aArray.Count();
  2397     size = aArray.Count();
  2398     for ( TInt i=0; i < size; ++i )
  2398     for ( TInt i=0; i < size; i++ )
  2399         {
  2399         {
  2400         iAddresseeList->AppendL( aValue, aArray[i] );
  2400         iAddresseeList->AppendL( aValue, aArray[i] );
  2401         }
  2401         }
  2402     }
  2402     }
  2403 
  2403 
  2451     // strip off stuff other than notifications
  2451     // strip off stuff other than notifications
  2452     // We are handling the invisible MMS folder now
  2452     // We are handling the invisible MMS folder now
  2453     // There may be delivery reports or binary notifications besides
  2453     // There may be delivery reports or binary notifications besides
  2454     // the normal notifications
  2454     // the normal notifications
  2455 
  2455 
  2456     for ( TInt i = notifications->Count() - 1; i >= 0; --i ) 
  2456     for ( TInt i = notifications->Count() - 1; i >= 0; i-- ) 
  2457         {
  2457         {
  2458         cEntry->SetEntryL( notifications->At( i ));
  2458         cEntry->SetEntryL( notifications->At( i ));
  2459         
  2459         
  2460         TMsvEntry myEntry = cEntry->Entry();
  2460         TMsvEntry myEntry = cEntry->Entry();
  2461         if ( !( ( myEntry.iMtmData1 & KMmsMessageTypeMask ) == 
  2461         if ( !( ( myEntry.iMtmData1 & KMmsMessageTypeMask ) == 
  2499         CMsvEntrySelection* notificationsInInbox = ListNotificationsInInboxL();
  2499         CMsvEntrySelection* notificationsInInbox = ListNotificationsInInboxL();
  2500         CleanupStack::PushL( notificationsInInbox );
  2500         CleanupStack::PushL( notificationsInInbox );
  2501     
  2501     
  2502         // The readOnly flag has to be set on for notifications in inbox
  2502         // The readOnly flag has to be set on for notifications in inbox
  2503         // in order to schedule notifications.
  2503         // in order to schedule notifications.
  2504         for ( TInt j = notificationsInInbox->Count() - 1; j >= 0; --j )
  2504         for ( TInt j = notificationsInInbox->Count() - 1; j >= 0; j-- )
  2505             {
  2505             {
  2506             cEntry->SetEntryL( notificationsInInbox->At( j ) );
  2506             cEntry->SetEntryL( notificationsInInbox->At( j ) );
  2507             TMsvEntry entry = cEntry->Entry();
  2507             TMsvEntry entry = cEntry->Entry();
  2508             entry.SetReadOnly( EFalse ); 
  2508             entry.SetReadOnly( EFalse ); 
  2509             cEntry->ChangeL( entry );
  2509             cEntry->ChangeL( entry );
  2764     writeStream.AssignLC( aStore, KUidMmsAttributeStream );
  2764     writeStream.AssignLC( aStore, KUidMmsAttributeStream );
  2765     
  2765     
  2766     writeStream.WriteInt32L( iAttributes->MdcaCount() );
  2766     writeStream.WriteInt32L( iAttributes->MdcaCount() );
  2767     
  2767     
  2768     TInt i;
  2768     TInt i;
  2769     for ( i = 0; i < iAttributes->MdcaCount(); ++i )
  2769     for ( i = 0; i < iAttributes->MdcaCount(); i++ )
  2770         {
  2770         {
  2771         writeStream << (*iAttributes)[i];
  2771         writeStream << (*iAttributes)[i];
  2772         }
  2772         }
  2773 
  2773 
  2774     writeStream.CommitL();
  2774     writeStream.CommitL();
  2796     
  2796     
  2797     count = readStream.ReadInt32L();
  2797     count = readStream.ReadInt32L();
  2798     TInt i;
  2798     TInt i;
  2799     HBufC* desBuffer;
  2799     HBufC* desBuffer;
  2800     
  2800     
  2801     for ( i = 0; i < count; ++i )
  2801     for ( i = 0; i < count; i++ )
  2802         {
  2802         {
  2803         desBuffer = HBufC::NewLC( readStream, KMaxTInt );
  2803         desBuffer = HBufC::NewLC( readStream, KMaxTInt );
  2804         iAttributes->AppendL( *desBuffer );
  2804         iAttributes->AppendL( *desBuffer );
  2805         CleanupStack::PopAndDestroy( desBuffer );
  2805         CleanupStack::PopAndDestroy( desBuffer );
  2806         }
  2806         }