mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp
branchRCL_3
changeset 77 da6ac9d688df
parent 66 fc3320e39880
equal deleted inserted replaced
71:17302fa075e1 77:da6ac9d688df
   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 //
  1656             HandleLocalZoomChangeL( (TMsgCommonCommands)aCommand );
  1671             HandleLocalZoomChangeL( (TMsgCommonCommands)aCommand );
  1657             break;
  1672             break;
  1658             }
  1673             }
  1659         case EEikCmdExit:
  1674         case EEikCmdExit:
  1660             {
  1675             {
  1661             //Save message when unieditor is closed though FSW
       
  1662 			//We won't get here when option->exit is selscted since while handling CAknCmdExit in overriden
       
  1663 			//ProcessCommandL we call Exit() 
       
  1664             RemoveWaitNote();
  1676             RemoveWaitNote();
  1665             ExitAndSaveL();
  1677             ExitAndSaveL();
  1666             break;
  1678             break;
  1667             }
  1679             }
  1668         case EAknSoftkeyClose:
  1680         case EAknSoftkeyClose:
  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
  7851                     {
  7881                     {
  7852                     //set the bit to indicate limit exceeded and note shown
  7882                     //set the bit to indicate limit exceeded and note shown
  7853                     iEditorFlags |= ESmsSizeWarningNoteShown;
  7883                     iEditorFlags |= ESmsSizeWarningNoteShown;
  7854                     if( iPopupNote )
  7884                     if( iPopupNote )
  7855                         {
  7885                         {
  7856 						ShowDiscreetPopUpL(iPopupSmsSizeAboveLimitBuffer->Des());
  7886                         iPopupNote->SetTextL( iPopupSmsSizeAboveLimitBuffer->Des() );
       
  7887                         iPopupNote->ShowInfoPopupNote();
  7857                         }
  7888                         }
  7858                     }
  7889                     }
  7859                 }
  7890                 }
  7860             else
  7891             else
  7861                 {
  7892                 {
  7864                     {
  7895                     {
  7865                     //reset the bit to indicate size is below limit and note for transition is showed
  7896                     //reset the bit to indicate size is below limit and note for transition is showed
  7866                     iEditorFlags &= ~ESmsSizeWarningNoteShown;
  7897                     iEditorFlags &= ~ESmsSizeWarningNoteShown;
  7867                     if( iPopupNote )
  7898                     if( iPopupNote )
  7868                         {
  7899                         {
  7869                         ShowDiscreetPopUpL(iPopupSmsSizeBelowLimitBuffer->Des());
  7900                         iPopupNote->SetTextL( iPopupSmsSizeBelowLimitBuffer->Des() );
       
  7901                         iPopupNote->ShowInfoPopupNote();
  7870                         }                
  7902                         }                
  7871                     }
  7903                     }
  7872                 }          
  7904                 }          
  7873             }
  7905             }
  7874         
  7906         
  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