diff -r 13d7c31c74e0 -r b183ec05bd8c syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp --- a/syncmlfw/syncmlnotifier/src/SyncMLDlgNotifier.cpp Thu Aug 19 10:44:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,992 +0,0 @@ -/* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Methods for the SyncML Appserver starter notifier -* -*/ - - - -// INCLUDE FILES -#include // Eikon environment -#include -#include -#include -#include -#include -#include -#include -#include // Localisation stringloader -#include -#include -#include -#include -#include // Own resources -#include "SyncMLDlgNotifier.h" // Class definition -#include "SyncMLTimedMessageQuery.h" -#include "SyncMLAppLaunchNotifier.h" -#include "SyncMLNotifDebug.h" -#include "SyncMLTimedInputTextQuery.h" -#include "SyncMLTimedDateQuery.h" -#include "SyncMLTimedNumberQueryDialog.h" -#include "SyncMLAknPopUplist.h" - -// CONSTANTS -const TInt KSyncMLuSecsInSec = 1000000; // Microseconds in a second - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSyncMLDlgNotifier* CSyncMLDlgNotifier::NewL( - CSyncMLAppLaunchNotifier* aAppLaunchNotif ) - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::NewL()") ); - CSyncMLDlgNotifier* self = new (ELeave) CSyncMLDlgNotifier( aAppLaunchNotif ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::NewL() completed") ); - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CSyncMLDlgNotifier::~CSyncMLDlgNotifier() - { - Cancel(); // Free own resources - if(iListItems) - { - delete iListItems; - iListItems = NULL; - } - if(iChunk.Handle()) - { - iChunk.Close(); - } - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::EnableSyncProgressNoteL -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::EnableSyncProgressNoteL( TBool aEnable ) - { - FTRACE( FPrint( _L( - "[SmlNotif]\t CSyncMLDlgNotifier::EnableSyncProgressNoteL(), aEnable = %d" ), - aEnable ) ); - - TSmlJobId currentJobId( KErrNotFound ); - TSmlUsageType usageType; - TUint serviceId = 0; - RSyncMLSession syncSession; - CleanupClosePushL( syncSession ); - - syncSession.OpenL(); - syncSession.CurrentJobL( currentJobId, usageType ); - syncSession.Close(); - CleanupStack::Pop( &syncSession ); - - if ( currentJobId != KErrNotFound ) - { - switch( usageType ) - { - case ESmlDataSync: - serviceId = KDataSyncServiceStart; - break; - case ESmlDevMan: - serviceId = KDevManServiceStart; - break; - default: - User::Leave( KErrArgument ); - break; - } - - // There should be a valid pointer to the application launcher - // notifier, but we can survive without it. Therefore we'll just - // check for it to prevent a crash. - if ( iAppLaunchNotif ) - { - CSyncService* syncService = iAppLaunchNotif->SyncServiceL( serviceId ); - if ( syncService ) - { - syncService->EnableProgressNoteL( aEnable ); - } - } - } - else - { - User::Leave( KErrNotFound ); - } - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::EnableSyncProgressNoteL() completed") ); - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::RegisterL -// ----------------------------------------------------------------------------- -// -CSyncMLDlgNotifier::TNotifierInfo CSyncMLDlgNotifier::RegisterL() - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RegisterL()") ); - iInfo.iUid = KSyncMLDlgNotifierUid; - iInfo.iChannel = KSmlDlgChannel; - iInfo.iPriority = ENotifierPriorityHigh; - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RegisterL() completed") ); - return iInfo; - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::GetParamsL -// Initialize parameters and check if device is already -// in registry. Jump to RunL as soon as possible. -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::GetParamsL( const TDesC8& aBuffer, - TInt aReplySlot, - const RMessagePtr2& aMessage ) - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::GetParamsL()") ); - const TChar KDRSeparator('-'); - const TChar KChoiceItemSeparator(','); - if ( iReplySlot != NULL || iNeedToCompleteMessage ) - { - User::Leave( KErrInUse ); - } - iMessage = aMessage; - iNeedToCompleteMessage = ETrue; - iReplySlot = aReplySlot; - - TSyncMLDlgNotifParams param; - TPckgC pckg( param ); - pckg.Set( aBuffer ); - iNoteType = pckg().iNoteType; - iServerMsg.Copy( pckg().iServerMsg.Left( KSyncMLMaxServerMsgLength ) ); - iMaxTime = pckg().iMaxTime; - iMaxlen = pckg().iMaxLength; - //check for iDR is there are not - iDR.Copy( pckg().iDR.Left( KSyncMLMaxDefaultResponseMsgLength ) ); - iIT = pckg().iIT; - iET = pckg().iET; - //verification of other params as like maxtime - if ( iMaxlen <= 0 || iMaxlen >KSyncMLMaxDefaultResponseMsgLength ) - { - iMaxlen = KSyncMLMaxDefaultResponseMsgLength; - } - - if ( iIT < ESyncMLInputTypeAlphaNumeric || iIT > ESyncMLInputTypeIPAddress ) - { - iIT = ESyncMLInputTypeAlphaNumeric; - } - - if ( iET < ESyncMLEchoTypeText || iET > ESyncMLEchoTypePassword ) - { - iET = ESyncMLEchoTypeText; - } - - if( iServerMsg.Length() == 0 ) - { - HBufC* stringholder = NULL; - stringholder = StringLoader::LoadLC( R_DEFAULT_ALERT_HEADING ); - iServerMsg.Copy( stringholder->Des() ); - CleanupStack::PopAndDestroy( stringholder ); - } - if ( iMaxTime < 0 ) - { - iMaxTime = 0; - } - if (iNoteType == ESyncMLSingleChoiceQuery || iNoteType == ESyncMLMultiChoiceQuery ) - { - iNumberOfItems = pckg().iNumberOfItems; - if(iNumberOfItems > 0) - { - iListItems = new (ELeave) CDesCArrayFlat( iNumberOfItems ); - } - else - { - aMessage.Complete( KErrCancel ); - iNeedToCompleteMessage = EFalse; - return; - } - TPtrC8 listitemsptr; - TBuf listlengtharray; - User::LeaveIfError(iChunk.OpenGlobal(pckg().iChunkName,EFalse)); - TInt size1 = iChunk.Size(); - listitemsptr.Set(iChunk.Base(),size1); - HBufC* databuf = NULL; - TRAPD(errC, databuf = CnvUtfConverter::ConvertToUnicodeFromUtf8L(listitemsptr)); - iChunk.Close(); - if(errC) - { - aMessage.Complete( errC ); - iNeedToCompleteMessage = EFalse; - return; - } - CleanupStack::PushL(databuf); - TPtr listitems = databuf->Des(); - listlengtharray=pckg().iItemLength; - TPtrC temp1,temp2,temp3,temp4; - TInt currlen=0,itemlength=0; - TInt prevcommapos=0; - TBuf<4> checkon(_L("0\t")); - TBuf<4> checkoff(_L("1\t")); - for(TInt i=0;iDes().Append(checkoff);//by default dont show check on - } - item1->Des().Append(temp4); - iListItems->AppendL(item1->Des()); - CleanupStack::PopAndDestroy(1);//item,dataBuf16 - } - } - CleanupStack::PopAndDestroy(1); - } - SetActive(); - iStatus = KRequestPending; - TRequestStatus* stat = &iStatus; - User::RequestComplete( stat, KErrNone ); - - FTRACE( FPrint( _L( - "[SmlNotif]\t CSyncMLDlgNotifier::GetParamsL() completed, iNoteType = %d, iTimeout = %d, iServerMsg = " ), - iNoteType, iMaxTime ) ); - FTRACE( FPrint( _L( - "[SmlNotif]\t \"%S\"" ), - &iServerMsg ) ); - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::Cancel -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::Cancel() - { - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::Cancel()")); - - CSyncMLNotifierBase::Cancel(); - - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::Cancel() completed")); - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::RunL -// Ask user response and return it to caller. -// Store device into registry if user has accepted authorisation. -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::RunL() - { - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::RunL()")); - const TChar KDRSeparator('-'); - const TChar KChoiceItemSeparator(','); - TInt result( KErrNone ); - EndKeyPress = EFalse; - // Turn lights on and deactivate apps -key - // - TurnLightsOn(); - - switch( iNoteType ) - { - case ESyncMLInfoNote: - { - CAknInformationNote* infoNote = new (ELeave) CAknInformationNote; - TInt maxtime = iMaxTime * KSyncMLuSecsInSec; - if ( maxtime < 0 ) - { - maxtime = 0; - } - infoNote->SetTimeout( (CAknNoteDialog::TTimeout) maxtime ); - result = infoNote->ExecuteLD( iServerMsg ); - if ( result == KErrNone ) - { - result = EAknSoftkeyOk; - } - break; - } - case ESyncMLErrorNote: - { - CAknErrorNote* errNote = new (ELeave) CAknErrorNote; - TInt maxtime = iMaxTime * KSyncMLuSecsInSec; - if ( maxtime < 0 ) - { - maxtime = 0; - } - errNote->SetTimeout( (CAknNoteDialog::TTimeout) maxtime ); - result = errNote->ExecuteLD( iServerMsg ); - if ( result == KErrNone ) - { - result = EAknSoftkeyOk; - }; - break; - } - case ESyncMLOkQuery: - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() Ok/Empty query shown") ); - - CSyncMLTimedMessageQuery* dlg = - CSyncMLTimedMessageQuery::NewL( iServerMsg, iMaxTime ); - - // Pushed dialog is popped inside RunLD - dlg->PrepareLC( R_SML_MESSAGE_QUERY ); - dlg->ButtonGroupContainer().SetCommandSetL( - R_AVKON_SOFTKEYS_OK_EMPTY__OK ); - EnableSyncProgressNoteL( EFalse ); - result = dlg->RunLD(); - dlg = NULL; - EnableSyncProgressNoteL( ETrue ); - break; - } - - case ESyncMLQueryNote: // This enumeration will be removed. - case ESyncMLYesNoQuery: - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() Yes/No query shown") ); - CSyncMLTimedMessageQuery* dlg = - CSyncMLTimedMessageQuery::NewL( iServerMsg, iMaxTime ); - // Pushed dialog is popped inside RunLD - dlg->PrepareLC( R_SML_MESSAGE_QUERY ); - dlg->ButtonGroupContainer().SetCommandSetL( - R_AVKON_SOFTKEYS_YES_NO__YES ); - EnableSyncProgressNoteL( EFalse ); - result = dlg->RunLD(); - dlg = NULL; - EnableSyncProgressNoteL( ETrue ); - break; - } - case ESyncMLSingleChoiceQuery: - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() single choice list query") ); - if ( iNumberOfItems > 0 ) - { - SuppressAppSwitching( ETrue ); - EnableSyncProgressNoteL( EFalse ); - CEikFormattedCellListBox* listBox = new ( ELeave ) - CAknSinglePopupMenuStyleListBox; - CleanupStack::PushL( listBox ); - CSyncMLAknPopUpList* popupList = - CSyncMLAknPopUpList::NewL( (CAknSingleHeadingPopupMenuStyleListBox*)listBox, - R_AVKON_SOFTKEYS_OK_CANCEL__OK, - AknPopupLayouts::EMenuWindow,iMaxTime ); - CleanupStack::PushL( popupList ); - listBox->ConstructL( popupList, ( EAknListBoxSelectionList | EAknListBoxLoopScrolling ) ); - listBox->Model()->SetItemTextArray( iListItems ); - listBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - listBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue ); - listBox->HandleItemAdditionL(); - listBox->CreateScrollBarFrameL( ETrue ); - listBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto); - TInt defaultindex = 0; - TLex drval(iDR); - drval.Val(defaultindex); - if(defaultindex > 0) - defaultindex--; - else - defaultindex = 0; - listBox->SetCurrentItemIndex(defaultindex); - popupList->SetTitleL( iServerMsg ); - CleanupStack::Pop( popupList ); - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() single choice list query shown") ); - result = popupList->ExecuteLD(); - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() single choice list query dismissed") ); - popupList = NULL; - if ( result ) - { - reply.irettext.Num(listBox->CurrentItemIndex()+1); - } - reply.iretval = result; - CleanupStack::PopAndDestroy( listBox ); // Destroys also the icon array - EnableSyncProgressNoteL( ETrue ); - SuppressAppSwitching( EFalse ); - } - else - { - reply.iretval = result; - } - TSyncMLDlgNotifReturnParamsPckg pkg(reply); - iMessage.WriteL(iReplySlot,pkg); - break; - } - case ESyncMLMultiChoiceQuery: - { - if ( iNumberOfItems > 0 ) - { - SuppressAppSwitching( ETrue ); - EnableSyncProgressNoteL( EFalse ); - // create listbox - // list item string format: "0\tLabel" where 0 is an index to icon array - CEikFormattedCellListBox* listBox = - new ( ELeave ) CAknSingleGraphicPopupMenuStyleListBox; - CleanupStack::PushL( listBox ); - // create popup - CSyncMLAknPopUpList* popup = - CSyncMLAknPopUpList::NewL((CAknSingleHeadingPopupMenuStyleListBox*) listBox, - R_AVKON_SOFTKEYS_OK_CANCEL__MARK , - AknPopupLayouts::EMenuWindow,iMaxTime); - CleanupStack::PushL( popup ); - popup->SetTitleL(iServerMsg ); -#ifdef RD_SCALABLE_UI_V2 - if( AknLayoutUtils::PenEnabled() ) - { - listBox->ConstructL( popup, EAknListBoxStylusMultiselectionList ); - } - else - { - listBox->ConstructL( popup, EAknListBoxMultiselectionList ); - } -#else - listBox->ConstructL( popup, EAknListBoxMultiselectionList ); -#endif - listBox->CreateScrollBarFrameL(ETrue); - listBox->ScrollBarFrame()-> - SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto ); - SetIconsL(listBox); - listBox->Model()->SetItemTextArray( iListItems ); - listBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - listBox->SetCurrentItemIndex(iDefindex); - listBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue ); - listBox->HandleItemAdditionL(); - // set all items as selected - TInt count( listBox->Model()->NumberOfItems() ); - TBuf<20> drcheck; - for( TInt index( 0 ); index < count; index++ ) - { - drcheck.Zero(); - drcheck.Append(KDRSeparator); - drcheck.AppendNum(index+1); - drcheck.Append(KDRSeparator); - if(iDR.Find(drcheck) >= KErrNone) - { - listBox->View()->SelectItemL( index ); - } - } - // launch popup - result = popup->ExecuteLD(); - // No leaving functions allowed between executeLD and CleanupStack::Pop(). - CleanupStack::Pop( popup ); - /// Own: ListBox selection array - const CArrayFix* iSelectionArray; - if( result ) - { - iSelectionArray = listBox->View()->SelectionIndexes(); - TBuf<20> temp; - TBuf temp1; - for(TInt i=iSelectionArray->Count()-1;i>=0;i--) - { - temp.Num(iSelectionArray->At(i)+1); - if((temp1.Length() + temp.Length()) < KSyncMLMaxAlertResultLength ) - { - temp1.Append(temp); - temp1.Append(KDRSeparator); - } - else{ - break; - } - } - reply.irettext.Append(temp1); - // delete iSelectionArray; this deletion taken care in ~CEIKLISTBOX (eiklbx.cpp) - } - reply.iretval = result; - CleanupStack::PopAndDestroy(); // listBox - EnableSyncProgressNoteL( ETrue ); - SuppressAppSwitching( EFalse ); - } - else - { - reply.iretval = result; - } - TSyncMLDlgNotifReturnParamsPckg pkg(reply); - iMessage.WriteL(iReplySlot,pkg); - break; - } - case ESyncMLInputQuery: //For 1102 alert - { - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() Input query shown") ); - // For input text server alert - - SuppressAppSwitching( ETrue ); - - switch( iIT ) - { - case ESyncMLInputTypeAlphaNumeric: //Alphanumeric Input type - { - - InputTypeAlphaNumericL(result); - break; - } - - case ESyncMLInputTypeNumeric: //Numeric Input type - { - InputTypeNumericL(result); - break; - } - - case ESyncMLInputTypeDate: //Date Input type - { - InputTypeDateL(result); - break; - } - - case ESyncMLInputTypeTime: //Time Input type - {//create TTime from TBuf iDR - //hhmmss - InputTypeTimeL(result); - break; - } - - case ESyncMLInputTypePhoneNumber: //Phone Number Input type - { - InputTypePhoneNumberL(result); - break; - } - - case ESyncMLInputTypeIPAddress: //IP Address Input type - { - TBuf InputText(iDR); - TInetAddr destAddr; - destAddr.Input(iDR); - EnableSyncProgressNoteL( EFalse );//coment out when using test app - CAknIpAddressQueryDialog* dlg = CAknIpAddressQueryDialog::NewL (destAddr); - CleanupStack::PushL(dlg); - dlg->SetPromptL(iServerMsg); - CleanupStack::Pop(); //dlg - result=dlg->ExecuteLD( R_NEWALERT_IP_QUERY ); - dlg=NULL; - destAddr.Output(InputText); - reply.iretval = result; - reply.irettext=InputText; - EnableSyncProgressNoteL( ETrue );//coment out when using test app - break; - } - - default: - { - User::Leave( KErrArgument ); - } - } - SuppressAppSwitching( EFalse ); - TSyncMLDlgNotifReturnParamsPckg pkg(reply); - iMessage.WriteL(iReplySlot,pkg); - break; - } -//#endif - - default: // Unhandled note type - { - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() Note type not handled")); - User::Leave( KErrArgument ); - break; - } - } - // Complete message, if not cancelled - if ( iNeedToCompleteMessage ) - { - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() completing the message")); - switch ( result ) - { - case EAknSoftkeyYes: - case EAknSoftkeyOk: - case ETrue: - { - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() completing the message with KErrNone")); - iMessage.Complete( KErrNone ); - break; - } - case EAknSoftkeyCancel: - case EAknSoftkeyNo: - case KErrNone: // Pressing "Cancel" or "No" may return zero - { - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() completing the message with KErrCancel")); - iMessage.Complete( KErrCancel ); - break; - } - default: - { - iMessage.Complete( result ); - break; - } - } - } - - iNeedToCompleteMessage = EFalse; - iReplySlot = NULL; - - iServerMsg = KNullDesC; - - FLOG(_L("[SmlNotif]\t CSyncMLDlgNotifier::RunL() completed")); - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::CSyncMLDlgNotifier -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSyncMLDlgNotifier::CSyncMLDlgNotifier( CSyncMLAppLaunchNotifier* aAppLaunchNotif ) - : iAppLaunchNotif( aAppLaunchNotif ),iListItems(NULL),iDefindex(0) - { - } - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::InputTypeAlphaNumericL(TInt & result) -// Process if input type is alphanumeric -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::InputTypeAlphaNumericL(TInt & result) -{ - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeAlphaNumericL() startedd") ); - TBuf InputText(iDR); - if( iET == ESyncMLEchoTypePassword ) //for pwd ET - { - CSyncMLTimedInputTextQuery* dlg = CSyncMLTimedInputTextQuery::NewL( InputText, iServerMsg, EndKeyPress, iMaxTime); - dlg->SetMaxLength( iMaxlen ); - EnableSyncProgressNoteL( EFalse );//coment out when using test app - result = dlg->ExecuteLD( R_NEWALERT_DATA_PWD_QUERY ); - if(EndKeyPress) - { - result = KErrAbort; - } - reply.iretval = result; - reply.irettext=InputText; - dlg=NULL; - EnableSyncProgressNoteL( ETrue );//coment out when using test app - } - else - { - CSyncMLTimedInputTextQuery* dlg = CSyncMLTimedInputTextQuery::NewL( InputText,iServerMsg, EndKeyPress, iMaxTime); - dlg->SetMaxLength( iMaxlen ); - EnableSyncProgressNoteL( EFalse );//coment out when using test app - result = dlg->ExecuteLD( R_INPUTTEXT_DATA_QUERY ); - if(EndKeyPress ) - { - result = KErrAbort; - } - reply.iretval = result; - reply.irettext=InputText; - dlg=NULL; - EnableSyncProgressNoteL( ETrue );//coment out when using test app - } - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeAlphaNumericL() completed") ); -} - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::InputTypeNumericL(TInt & result) -// Process if input type is numeric -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::InputTypeNumericL(TInt & result) -{ - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeNumericL() started") ); - TBuf InputText(iDR); - TReal value = 0; - TLex data(iDR); - if( iDR.Length() != 0 ) - { - data.Val(value); - } - if ( iET == ESyncMLEchoTypePassword ) - { - TChar ch = '0'; - for (TInt i=0;iSetMaxLength( iMaxlen ); - EnableSyncProgressNoteL( EFalse );//coment out when using test app - result = dlg->ExecuteLD( R_NEWALERT_NUMERIC_PWD_QUERY ); - dlg = NULL; - if(EndKeyPress) - { - result = KErrAbort; - } - } - else - { - CSyncMLTimedNumberQueryDialog* dlg = - CSyncMLTimedNumberQueryDialog::NewL( value, iServerMsg, EndKeyPress, iMaxTime); - - EnableSyncProgressNoteL( EFalse );//coment out when using test app - result = dlg->ExecuteLD( R_NEWALERT_NUMBER_QUERY ); - dlg = NULL; - if(EndKeyPress) - { - result = KErrAbort; - } - reply.iretval = result; - data.Val( value ); - _LIT(KSendFormat ,"%10.10f"); - InputText.Format ( KSendFormat, value ); - } - reply.iretval = result; - reply.irettext= InputText; - - EnableSyncProgressNoteL( ETrue );//coment out when using test app - - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeNumericL() completed") ); -} - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::InputTypeDateL(TInt & result) -// Process if input type is Date -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::InputTypeDateL(TInt & result) -{ - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeDateL() started") ); - TBuf InputText(iDR); - TTime date(_L("00010101:")); - TInt BadData = 1; - TChar ch = '0'; - for (TInt i=0;i revdate; - revdate.Append(iDR.Mid(4,4)); - revdate.Append(iDR.Mid(2,2)); - revdate.Append(iDR.Left(2)); - revdate.Append(':'); - date.Set( revdate ); - } - CSyncMLTimedDateQuery* dlg = CSyncMLTimedDateQuery::NewL( date, iServerMsg,EndKeyPress , iMaxTime); - EnableSyncProgressNoteL( EFalse );//coment out when using test app - result = dlg->ExecuteLD(R_NEWALERT_DATE_QUERY); - - if(EndKeyPress) - { - result = KErrAbort;//0-keypress 1-ok,0-cancel,-1=end key - } - reply.iretval = result; - _LIT(KDateFormat,"%F%D%M%Y"); - TBuf <20> StringDate; - date.FormatL(StringDate, KDateFormat); - reply.irettext=StringDate; - dlg = NULL; - EnableSyncProgressNoteL( ETrue );//comented out for emulator testing - - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeDateL() completed") ); -} - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::InputTypeTimeL(TInt & result) -// Process if input type is Time -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::InputTypeTimeL(TInt & result) -{ - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeTimeL() started") ); - TBuf InputText(iDR); - //create TTime from TBuf iDR - //hhmmss - TTime IpTime(_L("120000.")); - TInt BadData=1; - TChar ch= '0'; - for (TInt i=0;iExecuteLD(R_NEWALERT_TIME_QUERY); - if(EndKeyPress) - { - result = KErrAbort;//0-keypress 1-ok,0-cancel,-1=end key - } - reply.iretval = result; - _LIT(KTimeFormat,"%F%H%T%S"); - TBuf <20> StringTime; - IpTime.FormatL(StringTime, KTimeFormat); - reply.irettext=StringTime; - dlg = NULL; - EnableSyncProgressNoteL( ETrue );//coment out when using test app - - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypeTimeL() completed") ); -} - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::InputTypePhoneNumberL(TInt & result) -// Process if input type is Phone number -// ----------------------------------------------------------------------------- -// -void CSyncMLDlgNotifier::InputTypePhoneNumberL(TInt & result) -{ - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypePhoneNumberL() started") ); - TBuf InputText(iDR); - EnableSyncProgressNoteL( EFalse );//comented out for emulator testing - TInt ret=0; - for(TInt i=0;i 0) - { - ret = -1; - break; - } - else - { - continue; - } - } - else - { - TChar ch=iDR[i] ; - if(!ch.IsDigit()) - { - ret = -1; - break; - } - } - } - - if(ret == -1) - InputText.Zero(); - CSyncMLTimedInputTextQuery* dlg = CSyncMLTimedInputTextQuery::NewL(InputText,iServerMsg, EndKeyPress, iMaxTime); - dlg->SetMaxLength( iMaxlen ); - result = dlg->ExecuteLD( R_NEWALERT_PHONE_QUERY ); - if(EndKeyPress ) - { - result = KErrAbort; - } - reply.iretval = result; - reply.irettext=InputText; - dlg=NULL; - EnableSyncProgressNoteL( ETrue );//coment out when using test app - FLOG( _L("[SmlNotif]\t CSyncMLDlgNotifier::InputTypePhoneNumberL() completed") ); -} - -// ----------------------------------------------------------------------------- -// CSyncMLDlgNotifier::SetIconsL() -// Sets the icons to multiselection/markable list -// ----------------------------------------------------------------------------- -void CSyncMLDlgNotifier::SetIconsL(CEikFormattedCellListBox* aListBox) - { - CAknIconArray* iconArray = new( ELeave ) CAknIconArray( 1 ); - CleanupStack::PushL( iconArray ); - CFbsBitmap* checkboxOnBitmap = NULL; - CFbsBitmap* checkboxOnBitmapMask = NULL; - CFbsBitmap* checkboxOffBitmap = NULL; - CFbsBitmap* checkboxOffBitmapMask = NULL; - - //CListItemDrawer is using this logical color as default for its marked icons - TRgb defaultColor; - defaultColor = iEikEnv->Color( EColorControlText ); - - // Create 'ON' checkbox icon - AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(), - KAknsIIDQgnIndiCheckboxOn, - KAknsIIDQsnIconColors, - EAknsCIQsnIconColorsCG13, - checkboxOnBitmap, - checkboxOnBitmapMask, - KAvkonBitmapFile, - EMbmAvkonQgn_indi_checkbox_on, - EMbmAvkonQgn_indi_checkbox_on_mask, - defaultColor - ); - - CGulIcon* checkboxOnIcon = CGulIcon::NewL( checkboxOnBitmap, checkboxOnBitmapMask ); - // cleanup checkboxOnBitmap, checkboxOnBitmapMask - CleanupStack::Pop( checkboxOnBitmapMask ); - CleanupStack::Pop( checkboxOnBitmap ); - - CleanupStack::PushL( checkboxOnIcon ); - iconArray->AppendL( checkboxOnIcon ); - - // Create 'OFF' checkbox icon - AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(), - KAknsIIDQgnIndiCheckboxOff, - KAknsIIDQsnIconColors, - EAknsCIQsnIconColorsCG13, - checkboxOffBitmap, - checkboxOffBitmapMask, - KAvkonBitmapFile, - EMbmAvkonQgn_indi_checkbox_off, - EMbmAvkonQgn_indi_checkbox_off_mask, - defaultColor - ); - - CGulIcon* checkboxOffIcon = CGulIcon::NewL( checkboxOffBitmap, checkboxOffBitmapMask ); - // cleanup checkboxOffBitmap, checkboxOffBitmapMask - CleanupStack::Pop( checkboxOffBitmapMask ); //WILL BE DELETED BY CGUIICON - CleanupStack::Pop( checkboxOffBitmap ); //WILL BE DELETED BY CGUIICON - - - CleanupStack::PushL( checkboxOffIcon ); - iconArray->AppendL( checkboxOffIcon ); - aListBox->ItemDrawer()->ColumnData()->SetIconArray( iconArray ); // changes ownership - - // cleanup checkboxOnIcon, checkboxOffIcon, iconArray - CleanupStack::Pop( checkboxOffIcon ); //WILL BE DELETED BY CGUIICON - CleanupStack::Pop( checkboxOnIcon ); //WILL BE DELETED BY CGUIICON - CleanupStack::Pop( iconArray );//WILL BE DELETED BY CFormattedCellListBoxData:: - - } - -// End of File