139 |
139 |
140 // Resource identifiers |
140 // Resource identifiers |
141 #include <UniEditor.rsg> |
141 #include <UniEditor.rsg> |
142 #include <MsgEditorAppUi.rsg> |
142 #include <MsgEditorAppUi.rsg> |
143 |
143 |
144 #include <akndiscreetpopup.h> |
|
145 #include <aknsconstants.hrh> |
|
146 |
144 |
147 #include "UniSendingSettings.h" |
145 #include "UniSendingSettings.h" |
148 #include "UniPluginApi.h" |
146 #include "UniPluginApi.h" |
149 #include "UniSmsPlugin.h" |
147 #include "UniSmsPlugin.h" |
150 #include "UniClientMtm.h" |
148 #include "UniClientMtm.h" |
265 CUniEditorAppUi::CUniEditorAppUi() : |
263 CUniEditorAppUi::CUniEditorAppUi() : |
266 iDisplaySize( -1 ), |
264 iDisplaySize( -1 ), |
267 iWaitResId( -1 ), |
265 iWaitResId( -1 ), |
268 iOriginalSlide( -1 ), |
266 iOriginalSlide( -1 ), |
269 iNextFocus( EMsgComponentIdNull ), |
267 iNextFocus( EMsgComponentIdNull ), |
270 iPopupChangedMmsBuffer(NULL), |
|
271 iPopupChangedSmsBuffer(NULL), |
|
272 iEditorFlags( EShowInfoPopups ), |
268 iEditorFlags( EShowInfoPopups ), |
273 iMskResId( R_UNIEDITOR_OPTIONS_CLOSE ), |
269 iMskResId( R_UNIEDITOR_OPTIONS_CLOSE ), |
274 iOptimizedFlow(EFalse) |
270 iOptimizedFlow(EFalse), |
|
271 iSingleJpegImageProcessing(EFalse) |
275 { |
272 { |
276 } |
273 } |
277 |
274 |
278 // --------------------------------------------------------- |
275 // --------------------------------------------------------- |
279 // CUniEditorAppUi::ConstructL |
276 // CUniEditorAppUi::ConstructL |
452 #endif |
449 #endif |
453 iLongTapDetector = CAknLongTapDetector::NewL( this ); |
450 iLongTapDetector = CAknLongTapDetector::NewL( this ); |
454 iLongTapDetector->SetTimeDelayBeforeAnimation( KUniLongTapStartDelay ); |
451 iLongTapDetector->SetTimeDelayBeforeAnimation( KUniLongTapStartDelay ); |
455 iLongTapDetector->SetLongTapDelay( KUniLongTapTimeDelay ); |
452 iLongTapDetector->SetLongTapDelay( KUniLongTapTimeDelay ); |
456 iTapConsumed = EFalse; |
453 iTapConsumed = EFalse; |
457 |
|
458 //Korean Req: 415-5434 |
|
459 if ( iEditorFlags & EShowInfoPopups ) |
|
460 { |
|
461 iPopupNote = CAknInfoPopupNoteController::NewL(); |
|
462 iPopupNote->SetTimeDelayBeforeShow( 0 ); |
|
463 iPopupNote->SetTimePopupInView( 3000 ); |
|
464 |
|
465 iPopupSmsSizeAboveLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_ABOVE_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); |
|
466 iPopupSmsSizeBelowLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_UNDER_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); |
|
467 } |
|
468 |
|
469 } |
454 } |
470 |
455 |
471 |
456 |
472 // --------------------------------------------------------- |
457 // --------------------------------------------------------- |
473 // CUniEditorAppUi::~CUniEditorAppUi |
458 // CUniEditorAppUi::~CUniEditorAppUi |
476 // |
461 // |
477 CUniEditorAppUi::~CUniEditorAppUi() |
462 CUniEditorAppUi::~CUniEditorAppUi() |
478 { |
463 { |
479 iEditorFlags |= EEditorExiting; |
464 iEditorFlags |= EEditorExiting; |
480 |
465 |
481 |
466 //sendui+jepg optimization changes |
|
467 if(iLaunchOperation) |
|
468 { |
|
469 // check Is iLaunchOperation still attached to |
|
470 // iSlideLoader / iHeader |
|
471 // Set the CUniEditorAppUi |
|
472 // instance to NULL, to avoid crash. |
|
473 if(iLaunchOperation->GetHeader()) |
|
474 { |
|
475 iHeader = NULL; |
|
476 } |
|
477 if(iLaunchOperation->GetSlideLoader()) |
|
478 { |
|
479 iSlideLoader = NULL; |
|
480 } |
|
481 } |
482 if ( iView ) |
482 if ( iView ) |
483 { |
483 { |
484 // To prevent focus changes caused by input blocker deletion & toolbar extension |
484 // To prevent focus changes caused by input blocker deletion & toolbar extension |
485 // closing. |
485 // closing. |
486 iEikonEnv->EikAppUi()->RemoveFromStack( iView ); |
486 iEikonEnv->EikAppUi()->RemoveFromStack( iView ); |
681 // Performs all the last actions before editor launch ends. |
681 // Performs all the last actions before editor launch ends. |
682 // --------------------------------------------------------- |
682 // --------------------------------------------------------- |
683 // |
683 // |
684 void CUniEditorAppUi::FinalizeLaunchL() |
684 void CUniEditorAppUi::FinalizeLaunchL() |
685 { |
685 { |
|
686 // In all normal cases other then Sendui+Jepeg |
|
687 // iOptimizedFlow will be false and flow should be |
|
688 // same as the normal launch |
|
689 if(iOptimizedFlow) |
|
690 { |
|
691 //if iOptimizedFlow is True, it means |
|
692 //sendui+Jepg and this is partial complete call |
|
693 iSingleJpegImageProcessing = ETrue; |
|
694 } |
|
695 |
686 iFinalizeLaunchL = ETrue; |
696 iFinalizeLaunchL = ETrue; |
687 iSmilModel = &Document()->DataModel()->SmilModel(); |
697 iSmilModel = &Document()->DataModel()->SmilModel(); |
688 iHeader = iLaunchOperation->DetachHeader(); |
698 |
689 iSlideLoader = iLaunchOperation->DetachSlideLoader(); |
699 if(!iOptimizedFlow) |
|
700 { |
|
701 //detach the iHeader and iSlideLoader |
|
702 iHeader = iLaunchOperation->DetachHeader(); |
|
703 iSlideLoader = iLaunchOperation->DetachSlideLoader(); |
|
704 } |
|
705 else |
|
706 { |
|
707 // get reference to complete partial lauch operation |
|
708 iHeader = iLaunchOperation->GetHeader(); |
|
709 iSlideLoader = iLaunchOperation->GetSlideLoader(); |
|
710 } |
690 |
711 |
691 SetMessageTypeLockingL(); |
712 SetMessageTypeLockingL(); |
692 |
713 |
693 TInt headersVariation = iHeader->AddHeadersVariation(); |
714 TInt headersVariation = iHeader->AddHeadersVariation(); |
694 |
715 |
771 VerifyAddressesL( unused ); |
792 VerifyAddressesL( unused ); |
772 } |
793 } |
773 |
794 |
774 if ( iEditorFlags & EShowInfoPopups ) |
795 if ( iEditorFlags & EShowInfoPopups ) |
775 { |
796 { |
|
797 iPopupNote = CAknInfoPopupNoteController::NewL(); |
|
798 iPopupNote->SetTimeDelayBeforeShow( 0 ); |
|
799 iPopupNote->SetTimePopupInView( 3000 ); |
|
800 |
776 iPopupChangedMmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_MMS, iCoeEnv ); |
801 iPopupChangedMmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_MMS, iCoeEnv ); |
777 iPopupChangedSmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_SMS, iCoeEnv ); |
802 iPopupChangedSmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_SMS, iCoeEnv ); |
|
803 |
|
804 //Korean Req: 415-5434 |
|
805 iPopupSmsSizeAboveLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_ABOVE_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); |
|
806 iPopupSmsSizeBelowLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_UNDER_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); |
778 |
807 |
779 } |
808 } |
780 |
809 |
781 CheckMaxRecipientsAndShowNoteL(); |
810 CheckMaxRecipientsAndShowNoteL(); |
782 |
811 |
783 // Enable task swapper to options menu after launch has been completed. |
812 // Enable task swapper to options menu after launch has been completed. |
784 MenuBar()->SetMenuType( CEikMenuBar::EMenuOptions ); |
813 MenuBar()->SetMenuType( CEikMenuBar::EMenuOptions ); |
785 |
814 |
786 UpdateToolbarL(); |
815 UpdateToolbarL(); |
787 |
816 |
788 iEditorFlags |= ELaunchSuccessful; |
817 // partial launch need to call execute to make |
789 |
818 //the editor visible |
790 iView->ExecuteL( ClientRect(), focusedControlId ); |
819 if(iOptimizedFlow) |
|
820 { |
|
821 iView->ExecuteL( ClientRect(), focusedControlId ); |
|
822 } |
|
823 else// not optmized Flow, common flow |
|
824 { |
|
825 // partial launch, dont set the flag |
|
826 iEditorFlags |= ELaunchSuccessful; |
|
827 |
|
828 // in case of sendui+jepg , again finalize launch will be called |
|
829 //after image processing, no need to call iView->ExecuteL |
|
830 // slide will be loaded already by slide loader. |
|
831 if(!iSingleJpegImageProcessing) |
|
832 { |
|
833 //normal flow |
|
834 iView->ExecuteL( ClientRect(), focusedControlId ); |
|
835 } |
|
836 |
|
837 //after the lauch complete for sendui+jepg |
|
838 //rest it. |
|
839 iSingleJpegImageProcessing = EFalse; |
|
840 } |
|
841 |
791 delete iScreenClearer; |
842 delete iScreenClearer; |
792 iScreenClearer = NULL; |
843 iScreenClearer = NULL; |
|
844 |
|
845 // show note inserting |
|
846 if(iOptimizedFlow) |
|
847 { |
|
848 ShowWaitNoteL( R_QTN_UNI_WAIT_INSERTING ); |
|
849 } |
|
850 |
793 |
851 |
794 } |
852 } |
795 |
853 |
796 // --------------------------------------------------------- |
854 // --------------------------------------------------------- |
797 // CUniEditorAppUi::ShowLaunchNotesL |
855 // CUniEditorAppUi::ShowLaunchNotesL |
1124 |
1182 |
1125 if ( maxSmsCharacters <= 0 ) |
1183 if ( maxSmsCharacters <= 0 ) |
1126 { |
1184 { |
1127 // No absolute maximum characters defined -> Calculate |
1185 // No absolute maximum characters defined -> Calculate |
1128 // character maximum using maximum SMS part limit. |
1186 // character maximum using maximum SMS part limit. |
1129 |
1187 maxSmsCharacters = maxSmsParts * lengthMany; |
1130 if( maxSmsParts > 1 ) |
|
1131 { |
|
1132 maxSmsCharacters = maxSmsParts * lengthMany; |
|
1133 } |
|
1134 else |
|
1135 { |
|
1136 // for korean variant |
|
1137 maxSmsCharacters = lengthOne; |
|
1138 } |
|
1139 |
|
1140 } |
1188 } |
1141 CalculateSMSMsgLen(charsLeft,msgsParts); |
1189 CalculateSMSMsgLen(charsLeft,msgsParts); |
1142 if( model->ObjectList().Count() == 0 && |
1190 if( model->ObjectList().Count() == 0 && |
1143 model->AttachmentList().Count() == 1 && |
1191 model->AttachmentList().Count() == 1 && |
1144 iSmilModel->SlideCount() == 1 && |
1192 iSmilModel->SlideCount() == 1 && |
1401 charsLeft = msgsParts; |
1449 charsLeft = msgsParts; |
1402 } |
1450 } |
1403 } |
1451 } |
1404 } |
1452 } |
1405 |
1453 |
1406 // --------------------------------------------------------- |
|
1407 // CUniEditorAppUi::ProcessCommandL |
|
1408 // --------------------------------------------------------- |
|
1409 // |
|
1410 void CUniEditorAppUi::ProcessCommandL(TInt aCommand) |
|
1411 { |
|
1412 switch(aCommand) |
|
1413 { |
|
1414 case EAknCmdExit: |
|
1415 { |
|
1416 /* |
|
1417 Exit command is handle handled here since handling the same in HandleCommandL is too late for |
|
1418 themes effect to shown when application is exiting while progress note is shown. |
|
1419 BeginFullScreen is called after ProcessCommandL and before HandleCommandL, progress note is |
|
1420 shown in ProcessCommandL ie before BeginFullScreen is made. |
|
1421 */ |
|
1422 |
|
1423 //Only after processing the command, option menu is removed |
|
1424 //ProcessCommandL is called with some false command id which is unique and not used in any other place |
|
1425 const TInt KRandomCommand(8975462); |
|
1426 CAknAppUi::ProcessCommandL( KRandomCommand ); |
|
1427 RemoveWaitNote(); |
|
1428 ExitAndSaveL(); |
|
1429 break; |
|
1430 } |
|
1431 default: |
|
1432 break; |
|
1433 } |
|
1434 |
|
1435 CAknAppUi::ProcessCommandL( aCommand ); |
|
1436 |
|
1437 } |
|
1438 |
|
1439 |
1454 |
1440 // --------------------------------------------------------- |
1455 // --------------------------------------------------------- |
1441 // CUniEditorAppUi::HandleCommandL |
1456 // CUniEditorAppUi::HandleCommandL |
1442 // --------------------------------------------------------- |
1457 // --------------------------------------------------------- |
1443 // |
1458 // |
6480 TUniEditorOperationEvent aEvent ) |
6492 TUniEditorOperationEvent aEvent ) |
6481 { |
6493 { |
6482 if ( iEditorFlags & EEditorExiting ) |
6494 if ( iEditorFlags & EEditorExiting ) |
6483 { |
6495 { |
6484 // Do not handle any event if we are exiting from editor. |
6496 // Do not handle any event if we are exiting from editor. |
6485 // rest values. |
6497 // rest values. |
6486 iOptimizedFlow = EFalse; |
6498 iOptimizedFlow = EFalse; |
|
6499 iSingleJpegImageProcessing = EFalse; |
6487 return; |
6500 return; |
6488 } |
6501 } |
6489 |
6502 |
6490 if ( aEvent == EUniEditorOperationComplete || |
6503 if ( aEvent == EUniEditorOperationComplete || |
6491 aEvent == EUniEditorOperationError || |
6504 aEvent == EUniEditorOperationError || |
6495 if( aOperation == EUniEditorOperationLaunch) |
6508 if( aOperation == EUniEditorOperationLaunch) |
6496 { |
6509 { |
6497 if(iLaunchOperation) |
6510 if(iLaunchOperation) |
6498 { |
6511 { |
6499 iOptimizedFlow = iLaunchOperation->IsOptimizedFlagSet(); |
6512 iOptimizedFlow = iLaunchOperation->IsOptimizedFlagSet(); |
6500 if(iOptimizedFlow ) |
6513 } |
6501 { |
6514 } |
6502 TRAP_IGNORE(ShowWaitNoteL( R_QTN_UNI_WAIT_INSERTING )); |
6515 // sendui+jepg-> this required after image processing |
6503 iOptimizedFlow = EFalse; |
6516 if(!iOptimizedFlow) |
6504 return; |
6517 { |
6505 } |
6518 DeactivateInputBlocker(); |
6506 } |
6519 iEditorFlags &= ~EMsgEditInProgress; |
6507 } |
6520 } |
6508 |
|
6509 DeactivateInputBlocker(); |
|
6510 iEditorFlags &= ~EMsgEditInProgress; |
|
6511 |
|
6512 if ( aEvent == EUniEditorOperationCancel && |
6521 if ( aEvent == EUniEditorOperationCancel && |
6513 aOperation != EUniEditorOperationSend ) |
6522 aOperation != EUniEditorOperationSend ) |
6514 { |
6523 { |
6515 // Operation by operation should be considered what is proper action |
6524 // Operation by operation should be considered what is proper action |
6516 // in Cancel situation. Send operation handles the removing of wait note |
6525 // in Cancel situation. Send operation handles the removing of wait note |
6525 } |
6534 } |
6526 |
6535 |
6527 TRAPD( error, DoEditorOperationEventL( aOperation, aEvent ) ); |
6536 TRAPD( error, DoEditorOperationEventL( aOperation, aEvent ) ); |
6528 if ( error != KErrNone ) |
6537 if ( error != KErrNone ) |
6529 { |
6538 { |
|
6539 // error handling |
|
6540 if(iOptimizedFlow) |
|
6541 { |
|
6542 DeactivateInputBlocker(); |
|
6543 iEditorFlags &= ~EMsgEditInProgress; |
|
6544 } |
|
6545 iOptimizedFlow = EFalse; |
|
6546 iSingleJpegImageProcessing = EFalse; |
|
6547 |
6530 // Handle operation handling error. |
6548 // Handle operation handling error. |
6531 if ( error == KLeaveExit ) |
6549 if ( error == KLeaveExit ) |
6532 { |
6550 { |
6533 // Leaving with KLeaveExit does not make function leavable. See Exit() |
6551 // Leaving with KLeaveExit does not make function leavable. See Exit() |
6534 User::Leave( error ); |
6552 User::Leave( error ); |
6541 { |
6559 { |
6542 Exit( EAknSoftkeyClose ); |
6560 Exit( EAknSoftkeyClose ); |
6543 } |
6561 } |
6544 } |
6562 } |
6545 } |
6563 } |
|
6564 //sendui+jepg-> after first call to finallizelauch,rest |
|
6565 // it, so that next call will cover the code finallizelaunch |
|
6566 //as happened for other launch cases. |
|
6567 iOptimizedFlow = EFalse; |
6546 } |
6568 } |
6547 |
6569 |
6548 // --------------------------------------------------------- |
6570 // --------------------------------------------------------- |
6549 // CUniEditorAppUi::DoEditorOperationEventL |
6571 // CUniEditorAppUi::DoEditorOperationEventL |
6550 // --------------------------------------------------------- |
6572 // --------------------------------------------------------- |
6693 // related processing is done at the FinalizeLaunch function. |
6715 // related processing is done at the FinalizeLaunch function. |
6694 // --------------------------------------------------------- |
6716 // --------------------------------------------------------- |
6695 // |
6717 // |
6696 void CUniEditorAppUi::DoLaunchCompleteL() |
6718 void CUniEditorAppUi::DoLaunchCompleteL() |
6697 { |
6719 { |
6698 // Does no harm to call this even if no wait note is set. |
6720 //sendui+jepg -> this required after image processing |
6699 RemoveWaitNote(); |
6721 if(!iOptimizedFlow) |
6700 |
6722 { |
|
6723 // Does no harm to call this even if no wait note is set. |
|
6724 RemoveWaitNote(); |
|
6725 } |
|
6726 |
6701 TBool shutDown( EFalse ); |
6727 TBool shutDown( EFalse ); |
6702 ShowLaunchNotesL( shutDown ); |
6728 // sendui+jepg-> this required after image processing |
|
6729 if(!iOptimizedFlow) |
|
6730 { |
|
6731 ShowLaunchNotesL( shutDown ); |
|
6732 } |
6703 |
6733 |
6704 if ( shutDown ) |
6734 if ( shutDown ) |
6705 { |
6735 { |
6706 // Avoid direct Exit(). It causes actually leaving with -1003. |
6736 // Avoid direct Exit(). It causes actually leaving with -1003. |
6707 // If non-conformant object is sent from sendui and user is not |
6737 // If non-conformant object is sent from sendui and user is not |
8097 TInt extendedBodyChars = 0; |
8129 TInt extendedBodyChars = 0; |
8098 TInt extendedSubjectChars = 0; |
8130 TInt extendedSubjectChars = 0; |
8099 TBool westernText = ETrue; |
8131 TBool westernText = ETrue; |
8100 |
8132 |
8101 CCnvCharacterSetConverter* conv = doc->CharConverter(); |
8133 CCnvCharacterSetConverter* conv = doc->CharConverter(); |
8102 |
8134 CCnvCharacterSetConverter::TAvailability availability; |
|
8135 availability = conv->PrepareToConvertToOrFromL(KCharacterSetIdentifierExtendedSms7Bit, FsSession()); |
|
8136 if (availability == CCnvCharacterSetConverter::ENotAvailable) |
|
8137 { |
|
8138 availability = conv->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, FsSession()); |
|
8139 if (availability == CCnvCharacterSetConverter::ENotAvailable) |
|
8140 { |
|
8141 UNILOGGER_WRITE( "CCnvCharacterSetConverter -> KCharacterSetIdentifierSms7Bit is not available" ); |
|
8142 } |
|
8143 } |
8103 if ( conv ) |
8144 if ( conv ) |
8104 { |
8145 { |
8105 for( TInt index = 0; index < KUniEdNumberOfEditors; index++ ) |
8146 for( TInt index = 0; index < KUniEdNumberOfEditors; index++ ) |
8106 { |
8147 { |
8107 HBufC* editorTxt = NULL; |
8148 HBufC* editorTxt = NULL; |
8562 // CUniEditorAppUi::ShowPopupNoteL |
8603 // CUniEditorAppUi::ShowPopupNoteL |
8563 // --------------------------------------------------------- |
8604 // --------------------------------------------------------- |
8564 // |
8605 // |
8565 void CUniEditorAppUi::ShowPopupNoteL( TBool aMms ) |
8606 void CUniEditorAppUi::ShowPopupNoteL( TBool aMms ) |
8566 { |
8607 { |
8567 if( iPopupNote && iPopupChangedMmsBuffer ) |
8608 if( iPopupNote ) |
8568 { |
8609 { |
8569 // additional check iPopupChangedMmsBuffer is required as iPopupNote |
8610 iPopupNote->SetTextL( aMms? iPopupChangedMmsBuffer->Des(): |
8570 // will be intialized in ConstructL but not iPopupChangedMmsBuffer. |
8611 iPopupChangedSmsBuffer->Des() ); |
8571 // This change is done as part of Korean req. |
8612 iPopupNote->ShowInfoPopupNote(); |
8572 ShowDiscreetPopUpL(aMms? iPopupChangedMmsBuffer->Des(): iPopupChangedSmsBuffer->Des()); |
|
8573 } |
8613 } |
8574 } |
8614 } |
8575 |
8615 |
8576 // --------------------------------------------------------- |
8616 // --------------------------------------------------------- |
8577 // CUniEditorAppUi::PlayFocusedItemL |
8617 // CUniEditorAppUi::PlayFocusedItemL |
10000 } |
10040 } |
10001 } |
10041 } |
10002 return bCanSave; |
10042 return bCanSave; |
10003 } |
10043 } |
10004 |
10044 |
10005 // --------------------------------------------------------- |
|
10006 // CUniEditorAppUi::ShowDiscreetPopUpL |
|
10007 // Shows the Popup note in ITUT, when message size exceeds or deceeds |
|
10008 // a certain limit or it changes from sms to mms and vice versa |
|
10009 // --------------------------------------------------------- |
|
10010 // |
|
10011 void CUniEditorAppUi::ShowDiscreetPopUpL(const TDesC& aMessage) |
|
10012 { |
|
10013 TInt bitmapId = KErrNotFound; |
|
10014 TInt maskId = KErrNotFound; |
|
10015 |
|
10016 // No discreet popup => Uid 0 |
|
10017 const TUid KDiscreetPopupUidNone = |
|
10018 { |
|
10019 0x0 |
|
10020 }; |
|
10021 |
|
10022 CAknDiscreetPopup::ShowGlobalPopupL(aMessage, // 1st text row |
|
10023 KNullDesC, // second text row |
|
10024 KAknsIIDDefault, // icon skin id |
|
10025 KNullDesC, // bitmap file path |
|
10026 bitmapId, // bitmap id |
|
10027 maskId, // mask id |
|
10028 KAknDiscreetPopupDurationLong, // flags |
|
10029 0, // command id |
|
10030 NULL, // command observer |
|
10031 KDiscreetPopupUidNone, // application to be launched |
|
10032 KDiscreetPopupUidNone); // view to be activated |
|
10033 } |
|
10034 |
|
10035 // End of file |
10045 // End of file |
10036 |
10046 |