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 } |