emailuis/emailui/src/FreestyleEmailUiAppui.cpp
branchRCL_3
changeset 18 6b8f3b30d0ec
parent 17 67369d1b217f
child 20 efd4f1afd43e
equal deleted inserted replaced
17:67369d1b217f 18:6b8f3b30d0ec
   874     {
   874     {
   875     FUNC_LOG;
   875     FUNC_LOG;
   876     if ( AppUiExitOngoing() )
   876     if ( AppUiExitOngoing() )
   877         {
   877         {
   878         return;
   878         return;
       
   879         }
       
   880 
       
   881     if ( iActiveMailbox ) 
       
   882         {
       
   883         StartMonitoringL(); // start connect automatically
       
   884         SyncActiveMailBoxL(); // start sync
   879         }
   885         }
   880 
   886 
   881     // Do nothing if the externally activated view was already active
   887     // Do nothing if the externally activated view was already active
   882     if ( iCurrentActiveView->Id() != aViewId )
   888     if ( iCurrentActiveView->Id() != aViewId )
   883         {
   889         {
  1325     // to disable voice commands during creating new mail message
  1331     // to disable voice commands during creating new mail message
  1326     if (EStdKeyYes == key && aEvent.Type() == EEventKeyDown  && iCurrentActiveView == iComposeView )
  1332     if (EStdKeyYes == key && aEvent.Type() == EEventKeyDown  && iCurrentActiveView == iComposeView )
  1327 	    {
  1333 	    {
  1328 	    return; //"consume" event
  1334 	    return; //"consume" event
  1329 	    }
  1335 	    }
       
  1336     
       
  1337     // to disable deleting message shortcut (bakspace) when fowarding/replying
       
  1338     if ( EStdKeyBackspace == key && aEvent.Type() == EEventKeyDown 
       
  1339          && iCurrentActiveView == iComposeView )
       
  1340         {
       
  1341         return; // consume event
       
  1342         }
       
  1343     
  1330 	//</cmail>
  1344 	//</cmail>
  1331 	if ( EStdKeyNo == key && aEvent.Type() == EEventKeyDown )
  1345 	if ( EStdKeyNo == key && aEvent.Type() == EEventKeyDown )
  1332 		{
  1346 		{
  1333 		// composeview needs this info when exiting
  1347 		// composeview needs this info when exiting
  1334 		//iAppUiExitOngoing = ETrue;<cmail> set to true in Exit() method
  1348 		//iAppUiExitOngoing = ETrue;<cmail> set to true in Exit() method
  1410                 menu->StopDisplayingMenuBar();
  1424                 menu->StopDisplayingMenuBar();
  1411                 }
  1425                 }
  1412             }
  1426             }
  1413         }
  1427         }
  1414 
  1428 
  1415     CAknAppUi::HandleWsEventL(aEvent, aDestination);
  1429     if ( aEvent.Key()->iCode == EKeyEscape && 
       
  1430          iCurrentActiveView == iComposeView &&
       
  1431          iComposeView->IsOpeningWaitNoteVisible() )
       
  1432         {
       
  1433         return;
       
  1434         }
       
  1435     else
       
  1436         {
       
  1437         CAknAppUi::HandleWsEventL(aEvent, aDestination);
       
  1438         }
  1416 	}
  1439 	}
  1417 
  1440 
  1418 CAlfDisplay& CFreestyleEmailUiAppUi::Display()
  1441 CAlfDisplay& CFreestyleEmailUiAppUi::Display()
  1419 	{
  1442 	{
  1420     FUNC_LOG;
  1443     FUNC_LOG;
  2518             AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
  2541             AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
  2519             }
  2542             }
  2520 		titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconBitmap && iConnectionIconMask);
  2543 		titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconBitmap && iConnectionIconMask);
  2521 		}
  2544 		}
  2522 	iConnectionStatusIconAnimTimer->Stop();
  2545 	iConnectionStatusIconAnimTimer->Stop();
  2523 	iFakeSyncAnimStopTimer->Stop();
  2546     }
       
  2547 
       
  2548 void CFreestyleEmailUiAppUi::GetConnectionStatusL( 
       
  2549         CConnectionStatusQueryExtension::TConnectionStatus& aConnStatus )
       
  2550     {
       
  2551     aConnStatus = CConnectionStatusQueryExtension::EDisconnected;
       
  2552     CFSMailBox* mailbox = GetActiveMailbox();
       
  2553     if ( mailbox )
       
  2554         {
       
  2555         CConnectionStatusQueryExtension* extension( NULL );
       
  2556         TRAPD( error, extension = static_cast<CConnectionStatusQueryExtension*>( 
       
  2557                 mailbox->ExtensionL( KEmailConnectionStatusQueryExtensionUid ) ) );
       
  2558         
       
  2559         if ( error && error != KErrNotSupported )
       
  2560             {
       
  2561             User::Leave( error );
       
  2562             }
       
  2563         
       
  2564         if ( extension )
       
  2565             {
       
  2566             // Query from extension - the new way
       
  2567             aConnStatus = extension->ConnectionStatus(
       
  2568                                 mailbox->GetId(), iForcedConnectionStatus);
       
  2569             mailbox->ReleaseExtension( extension );
       
  2570             }
       
  2571         else
       
  2572             {
       
  2573             // Retain the old way        
       
  2574             TFSMailBoxStatus boxStatus( mailbox->GetMailBoxStatus() );
       
  2575             TSSMailSyncState syncState( mailbox->CurrentSyncState() );
       
  2576 
       
  2577             if ( ( boxStatus == EFSMailBoxOnline && iForcedConnectionStatus != EForceToDisconnected ) ||
       
  2578                     (iForcedConnectionStatus == EForceToConnected || iForcedConnectionStatus == EForceToSync) )
       
  2579                 {
       
  2580                 if (syncState == EmailSyncing || syncState == InboxSyncing ||
       
  2581                         syncState == OutboxSyncing || syncState == SentItemsSyncing ||
       
  2582                         syncState == DraftsSyncing || syncState == CalendarSyncing ||
       
  2583                         syncState == ContactsSyncing || syncState == TasksSyncing ||
       
  2584                         syncState == FilesSyncing || iForcedConnectionStatus == EForceToSync )
       
  2585                     {
       
  2586                     aConnStatus = CConnectionStatusQueryExtension::ESynchronizing;
       
  2587                     }
       
  2588                 else
       
  2589                     {
       
  2590                     aConnStatus = CConnectionStatusQueryExtension::EConnected;
       
  2591                     }
       
  2592                 }
       
  2593             else // EFSMailBoxOffline
       
  2594                 {
       
  2595                 aConnStatus = CConnectionStatusQueryExtension::EDisconnected;
       
  2596                 }            
       
  2597             }
       
  2598         }
  2524     }
  2599     }
  2525 
  2600 
  2526 void CFreestyleEmailUiAppUi::UpdateTitlePaneConnectionStatus(
  2601 void CFreestyleEmailUiAppUi::UpdateTitlePaneConnectionStatus(
  2527 		TForcedStatus aForcedStatus /*= ENoForce*/ )
  2602 		TForcedStatus aForcedStatus /*= ENoForce*/ )
  2528     {
  2603     {
  2529     FUNC_LOG;
  2604     FUNC_LOG;
  2530     iForcedConnectionStatus = aForcedStatus;
  2605     iForcedConnectionStatus = aForcedStatus;
  2531 
  2606 
  2532     if ( iConnectionStatusVisible )
  2607     if ( iConnectionStatusVisible )
  2533     	{
  2608     	{
  2534 
       
  2535     	// Get connection status of the current mailbox
       
  2536     	TFSMailBoxStatus connectionStatus = EFSMailBoxOffline;
       
  2537     	TSSMailSyncState syncState = Idle;
       
  2538 		CFSMailBox* mb = GetActiveMailbox();
       
  2539 		if ( mb )
       
  2540 			{
       
  2541 			connectionStatus = mb->GetMailBoxStatus();
       
  2542 			syncState = mb->CurrentSyncState();
       
  2543 			}
       
  2544 
       
  2545 		TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
  2609 		TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
  2546 		CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
  2610 		CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
  2547             StatusPane()->PaneCapabilities( titlePaneUid );
  2611 			StatusPane()->PaneCapabilities( titlePaneUid );
  2548 
  2612 
  2549 		if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
  2613 		if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
  2550 			{
  2614 			{
  2551 			CAknTitlePane* titlePane = NULL;
  2615 			CAknTitlePane* titlePane = NULL;
  2552 			TRAP_IGNORE( titlePane =
  2616 			TRAP_IGNORE( titlePane =
  2553 				(CAknTitlePane*)StatusPane()->ControlL( titlePaneUid ) );
  2617 				(CAknTitlePane*)StatusPane()->ControlL( titlePaneUid ) );
  2554 
  2618 
  2555 			// Set connection icon
  2619 			// Set connection icon
  2556 			iConnectionStatusIconAnimTimer->Stop();
  2620 			iConnectionStatusIconAnimTimer->Stop();
  2557 			iFakeSyncAnimStopTimer->Stop();
       
  2558 			iConnectionIconBitmap = 0;
  2621 			iConnectionIconBitmap = 0;
  2559 			iConnectionIconMask = 0;
  2622 			iConnectionIconMask = 0;
  2560 			TSize iconSize = LayoutHandler()->statusPaneIconSize();
  2623 			TBool startTimer = EFalse;			
  2561 			TBool startTimer = EFalse;
  2624 
  2562 			if ( ( connectionStatus == EFSMailBoxOnline && iForcedConnectionStatus != EForceToDisconnected ) ||
  2625             // Get connection status of the current mailbox
  2563 					(iForcedConnectionStatus == EForceToConnected || iForcedConnectionStatus == EForceToSync) )
  2626             CConnectionStatusQueryExtension::TConnectionStatus connectionStatus;       
  2564 				{
  2627             TRAP_IGNORE( GetConnectionStatusL( connectionStatus ) );
  2565 				if (syncState == EmailSyncing || syncState == InboxSyncing ||
  2628 
  2566 				        syncState == OutboxSyncing || syncState == SentItemsSyncing ||
  2629             switch ( connectionStatus )
  2567 				        syncState == DraftsSyncing || syncState == CalendarSyncing ||
  2630 			    {
  2568 				        syncState == ContactsSyncing || syncState == TasksSyncing ||
  2631                 case CConnectionStatusQueryExtension::EConnected:
  2569 				        syncState == FilesSyncing || iForcedConnectionStatus == EForceToSync )
  2632                     TRAP_IGNORE( FsTextureManager()->ProvideBitmapL(
  2570 				    {
  2633                         EStatusTextureConnected, iConnectionIconBitmap, iConnectionIconMask ) );
  2571 				    TRAP_IGNORE( FsTextureManager()->ProvideBitmapL(
  2634                     break;
       
  2635                 case CConnectionStatusQueryExtension::EDisconnected:
       
  2636                     TRAP_IGNORE( FsTextureManager()->ProvideBitmapL(
       
  2637                             EStatusTextureDisconnectedGeneral, iConnectionIconBitmap, iConnectionIconMask ) );
       
  2638                     break;
       
  2639                 case CConnectionStatusQueryExtension::ESynchronizing:
       
  2640                     TRAP_IGNORE( FsTextureManager()->ProvideBitmapL(
  2572                         EStatusTextureSynchronising, iConnectionIconBitmap, iConnectionIconMask ) );
  2641                         EStatusTextureSynchronising, iConnectionIconBitmap, iConnectionIconMask ) );
  2573 				    startTimer = ETrue;
  2642                     startTimer = ETrue;
  2574 				    }
  2643                     break;
  2575 				else
  2644                 default:
  2576 				    {
  2645                     break;
  2577 				    TRAP_IGNORE( FsTextureManager()->ProvideBitmapL(
  2646 			    }
  2578                         EStatusTextureConnected, iConnectionIconBitmap, iConnectionIconMask ) );
       
  2579 				    }
       
  2580 				}
       
  2581 			else // EFSMailBoxOffline
       
  2582 				{
       
  2583 				TRAP_IGNORE( FsTextureManager()->ProvideBitmapL(
       
  2584 						EStatusTextureDisconnectedGeneral, iConnectionIconBitmap, iConnectionIconMask ) );
       
  2585 				}
       
  2586 
  2647 
  2587 			if ( iConnectionIconBitmap )
  2648 			if ( iConnectionIconBitmap )
  2588 				{
  2649 				{
       
  2650                 TSize iconSize( LayoutHandler()->statusPaneIconSize() );
  2589 				AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
  2651 				AknIconUtils::SetSize( iConnectionIconBitmap, iconSize, EAspectRatioNotPreserved );
  2590 				}
  2652 				}
  2591 			titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconMask && iConnectionIconBitmap );
  2653 			titlePane->SetSmallPicture( iConnectionIconBitmap, iConnectionIconMask, iConnectionIconMask && iConnectionIconBitmap );
  2592 			if (startTimer)
  2654 			if (startTimer)
  2593 			    {
  2655 			    {
  2594 			    iConnectionStatusIconAnimTimer->Start(KConnectionStatusIconRotationInterval);
  2656 			    iConnectionStatusIconAnimTimer->Start( KConnectionStatusIconRotationInterval );
  2595 			    }
  2657 			    }
  2596             titlePane->DrawNow();
  2658             titlePane->DrawNow();
  2597 			}
  2659 			}
  2598     	}
  2660     	}
  2599     }
  2661     }