diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/uisrc/iraddmanuallystationcontainer.cpp --- a/internetradio2.0/uisrc/iraddmanuallystationcontainer.cpp Mon May 03 12:25:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,961 +0,0 @@ -/* -* Copyright (c) 2004 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: Container class for channel list view -* -*/ - - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include //CAknSearchField -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -/* the head file is really uplayer case, so we don't need to change it. */ -#include -#include -#include -#include -#include - -#include "irui.h" -#include "ir.hrh" -#include "ircommon.h" -#include "irdebug.h" -#include "irbaseview.h" -#include "iriconloader.h" -#include "irfavoritesdb.h" -#include "irdialoglauncher.h" -#include "irpreset.h" -#include "irhistory.h" - -#include "irisdspreset.h" -#include "irchannelserverurl.h" -#include "irnowplayingwrapper.h" -#include "iraddmanuallystationview.h" -#include "iraddmanuallystationcontainer.h" -#include "irapplication.h" -#include "iraap.hlp.hrh" //Added to implement HELP option SPP -#include "irsettings.h" //Added to maintain the IfAnyFav variable in settings - - -const TInt KBeginning = 0; -const TInt KMaxLength = 100; -const TInt KbufMaxLength = 10; - -_LIT(KUnamedStation,"Unnamed station"); -_LIT(KNullStation,""); -_LIT(KSpace," "); - -const TInt KMaxSize = 256; -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::NewL() -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CIRAddManuallyStationContainer* CIRAddManuallyStationContainer::NewL( - CIRAddManuallyStationView* aView) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::NewL - Begin" ); - CIRAddManuallyStationContainer* self = new ( ELeave ) CIRAddManuallyStationContainer(aView);//(aToolbar) - CleanupStack::PushL( self ); - CleanupStack::Pop( self ); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::NewL - Exiting" ); - return self; - } - - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CIRAddManuallyStationContainer::CIRAddManuallyStationContainer( CIRAddManuallyStationView* aView): - iView(aView) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::CIRAddManuallyStationContainer" ); - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CIRAddManuallyStationContainer::~CIRAddManuallyStationContainer() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::~CIRAddManuallyStationContainer" ); - if(iPreset) - { - delete iPreset; - iPreset=NULL; - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::~CIRAddManuallyStationContainer" ); - } - - -// --------------------------------------------------------------------------- -// From class CCoeControl. -// Opens help by context. -// --------------------------------------------------------------------------- -// -EXPORT_C void CIRAddManuallyStationContainer::GetHelpContext( TCoeHelpContext& aContext ) const - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::GetHelpContext Begin" ); - aContext = TCoeHelpContext( KIRMCVUid, KIR_HELP_ADD_URL ); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::GetHelpContext End" ); - } - - -// --------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::DynInitMenuPaneL() -// Dynamically initialises a menu pane -// --------------------------------------------------------------------------- -// -void CIRAddManuallyStationContainer::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::DynInitMenuPaneL - Begin " ); - CAknForm::DynInitMenuPaneL( aResourceId, aMenuPane ); - if ( aResourceId == R_AVKON_FORM_MENUPANE ) //R_AVKON_FORM_MENUPANE - { - aMenuPane->SetItemDimmed( EAknFormCmdLabel, ETrue); - aMenuPane->SetItemDimmed( EAknFormCmdAdd, ETrue ); - aMenuPane->SetItemDimmed( EAknFormCmdDelete, ETrue ); - aMenuPane->SetItemDimmed( EAknFormCmdSave, ETrue ); - aMenuPane->SetItemDimmed( EAknFormCmdEdit, ETrue ); - if(iView->iNowPlayingWrapper->iPlaying) - { - aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,EFalse); - } - else - { - aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,ETrue); - } - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::DynInitMenuPaneL - Exiting." ); - } - -//------------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::ProcessCommandL -// From CAknForm, takes care of command handling. -// @param aCommand Command to be handled -//-------------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::ProcessCommandL( TInt aCommand ) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::ProcessCommandL - Begin " ); - CIRUi* appUi = static_cast( iCoeEnv->AppUi() ); - switch(aCommand) - { - case EGotoNowPlayingViewCmd: - { - iView->HandleCommandL(EGotoNowPlayingViewCmd); - break; - } - case EHelpCmd: - { - iView->HandleCommandL(EHelpCmd); - break; - } - case EExitCmd: - { - iView->HandleCommandL(EExitCmd); - break; - } - default: - iView->HandleCommandL( aCommand ); - - } - CAknForm::ProcessCommandL(aCommand); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::ProcessCommandL - Exiting " ); - } - - - -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::OkToExitL -// -// ----------------------------------------------------------------------------- -TBool CIRAddManuallyStationContainer::OkToExitL( TInt aButtonId ) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::OkToExitL - Begin " ); - if ( aButtonId == EAknSoftkeyCancel) - { - iView->HandleCommandL(EAknSoftkeyBack); - } - if ( aButtonId == EAknSoftkeyOptions ) - { - DisplayMenuL(); - } - if( aButtonId == EAddExit ) - { - iView->HandleCommandL(EAknSoftkeyBack); - return ETrue; - } - TBool ret = CAknForm::OkToExitL( aButtonId ); - - IRLOG_DEBUG( "CIRAddManuallyStationContainer::OkToExitL - Exiting " ); - return ret; - } - -void CIRAddManuallyStationContainer::PreLayoutDynInitL() - { - CAknForm::PreLayoutDynInitL(); - } - -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::PostLayoutDynInitL -// -// ----------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::PostLayoutDynInitL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::PostLayoutDynInitL - Begin " ); - CIRUi* appUi = static_cast( iCoeEnv->AppUi() ); - //for enabling paste button if clipboard contains some data - RFs& fs = iEikonEnv->FsSession(); - CClipboard* clipBoard = CClipboard::NewForReadingLC(fs); - TBuf pasteData; - CPlainText* plainText = CPlainText::NewL(); - CleanupStack::PushL(plainText); - plainText->PasteFromStoreL(clipBoard->Store(), clipBoard->StreamDictionary(),KBeginning); - plainText->Extract(pasteData,KBeginning,KMaxLength); - TInt length=pasteData.Length() ; - if(length) - { - iView->iIsCopied=ETrue; - iView->SetToolbarItems(); - } - CleanupStack::PopAndDestroy(plainText); - CleanupStack::PopAndDestroy(clipBoard); - iIsEditStation=iView->iUi->GetEditStation(); - if(iIsEditStation) - { - TInt urlCount = iView->iNowPlayingWrapper->iEditStationPreset->GetUrlCount(); - if (urlCount <= 0) - { - DefaultVauleL(); - iView->iIsTextEntered=EFalse; - } - else - { - SetEdwinTextL(EAddStaionURL, - &iView->iNowPlayingWrapper->iEditStationPreset->GetChannelUrlAtL(0) ); - TBuf unnamedStation(KUnamedStation); - TBuf stationName = iView->iNowPlayingWrapper->iEditStationPreset->GetName(); - if(stationName == unnamedStation) - { - stationName.Copy(KNullStation); - } - SetEdwinTextL(EAddStaionName, - &stationName); - - SetEdwinTextL(EAddStaionDescription, - &iView->iNowPlayingWrapper->iEditStationPreset->GetDescription()); - - iView->iIsTextEntered=ETrue; - } - iView->SetAddStationsTitleL(); - iView->SetToolbarItems(); - } - else - { - DefaultVauleL(); - iView->iIsTextEntered=EFalse; - iView->SetToolbarItems(); - } - -// CEikDialog::SetTitleL(R_IRAPP_ADDMANUALLY_TITLE) - CAknForm::PostLayoutDynInitL(); - iView->iUi->HandleResourceChangeL(KEikDynamicLayoutVariantSwitch); - HandleResourceChange(KEikDynamicLayoutVariantSwitch); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::PostLayoutDynInitL - Exiting " ); - } - - - -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::DefaultVauleL() -// -// ----------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::DefaultVauleL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::DefaultVauleL - Begin " ); - HBufC *httpstring = StringLoader::LoadLC(R_IRAPP_ADDMANUALLY_HTTP); - SetEdwinTextL( EAddStaionURL, httpstring ); - CleanupStack::PopAndDestroy(httpstring); - - HBufC *unnamedstring = StringLoader::LoadLC(R_IRAPP_ADDMANUALLY_NONAME); - SetEdwinTextL( EAddStaionName, unnamedstring ); - CleanupStack::PopAndDestroy(unnamedstring); - _LIT(blank,""); - TBuf buf(blank); - SetEdwinTextL( EAddStaionDescription,&buf ); - - CEikDialog::SetInitialCurrentLine(); - TryChangeFocusToL(EAddStaionURL); - - CCoeControl* cntrl = CEikDialog::Control(EAddStaionURL); - CEikEdwin* myEdwin = static_cast ( cntrl ); - TInt txtLength=myEdwin->TextLength(); - myEdwin->SetCursorPosL (txtLength, EFalse); - - iView->SetAddStationsTitleL(); - - - IRLOG_DEBUG( "CIRAddManuallyStationContainer::DefaultVauleL - Exiting " ); - } - -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::CopyData -// -// ----------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::CopyDataL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::CopyDataL - Begin " ); - RFs& fs = iEikonEnv->FsSession(); - CClipboard* clipBoard = CClipboard::NewForWritingLC(fs); - CPlainText* plainText = CPlainText::NewL(); - CleanupStack::PushL(plainText); - TInt idoffocused = CEikDialog::IdOfFocusControl(); - CCoeControl* ictrl = CEikDialog::Control(idoffocused); - CEikEdwin* myEdwin = static_cast ( ictrl ); - TCursorSelection sel=myEdwin->Selection(); - GetEdwinText( iSelText, idoffocused ); - TInt txtlength=myEdwin->TextLength(); - TInt length = sel.Length(); - if(length) - { - HBufC* number = HBufC::NewLC( length ); - TPtr numberPtr = number->Des(); - TInt pos=sel.LowerPos(); - if (pos < iSelText.Length()) - numberPtr.Copy(&iSelText[pos],length); - plainText->InsertL(0, *number); - plainText->CopyToStoreL(clipBoard->Store(), clipBoard->StreamDictionary(),KBeginning, - plainText->DocumentLength()); - clipBoard->CommitL(); - CleanupStack::PopAndDestroy(number); - } - else - { - myEdwin->SetSelectionL(0,txtlength); - plainText->InsertL(0, iSelText); - plainText->CopyToStoreL(clipBoard->Store(), clipBoard->StreamDictionary(),KBeginning, - plainText->DocumentLength()); - clipBoard->CommitL(); - } - CleanupStack::PopAndDestroy(plainText); - CleanupStack::PopAndDestroy(clipBoard); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::CopyDataL - Exiting " ); - } - -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::PasteData -// -// ----------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::PasteDataL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::PasteDataL - Begin " ); - RFs& fs = iEikonEnv->FsSession(); - CClipboard* clipBoard = CClipboard::NewForReadingLC(fs); - TBuf clipBoardText; - CPlainText* plainText = CPlainText::NewL(); - CleanupStack::PushL(plainText); - plainText->PasteFromStoreL(clipBoard->Store(), clipBoard->StreamDictionary(),KBeginning); - TInt idOfFocused=CEikDialog::IdOfFocusControl(); - CCoeControl* ictrl=CEikDialog::Control(idOfFocused); - CEikEdwin* myEdwin = static_cast ( ictrl ); - TCursorSelection sel=myEdwin->Selection(); - GetEdwinText( iSelText, idOfFocused ); - HBufC* number = HBufC::NewLC(KMaxLength); - TPtr numberPtr = number->Des(); - TInt length = sel.Length(); - TInt txtLength=myEdwin->TextLength(); - TInt diffLength=KMaxLength-(txtLength-length); - plainText->Extract(clipBoardText,KBeginning,diffLength); - if (txtLength!=0) - { - numberPtr.Copy(&iSelText[0],txtLength); - if(length!=0) - { - TInt pos=sel.LowerPos(); - - numberPtr.Delete(pos,length); - numberPtr.Insert(pos,clipBoardText); - SetEdwinTextL( idOfFocused, number ); - } - else - { - TInt pos=myEdwin->CursorPos(); - numberPtr.Insert(pos,clipBoardText); - SetEdwinTextL( idOfFocused, number ); - } - } - else - { - numberPtr.Insert(KBeginning,clipBoardText); - SetEdwinTextL( idOfFocused, number ); - } - TBool enable=ValidateUrlL(); - if(enable) - { - iView->iIsTextEntered=ETrue; - iView->SetToolbarItems(); - } - else - { - iView->iIsTextEntered=EFalse; - iView->SetToolbarItems(); - } - TInt txtLengthAfterPaste=myEdwin->TextLength(); - myEdwin->SetSelectionL(0,0); - myEdwin->SetCursorPosL (txtLengthAfterPaste, EFalse); - - CleanupStack::PopAndDestroy(number); - CleanupStack::PopAndDestroy(plainText); - CleanupStack::PopAndDestroy(clipBoard); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::PasteDataL - Exiting " ); - } - -// ----------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::SaveData -// -// ----------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::SaveDataL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::SaveDataL - Begin " ); - CIRUi* appUi = static_cast( iCoeEnv->AppUi() ); - GetEdwinText( iStationURL, EAddStaionURL ); - GetEdwinText( iStationName, EAddStaionName ); - GetEdwinText( iStationDescription, EAddStaionDescription ); - - ReplaceUglyChar(iStationName); - ReplaceUglyChar(iStationDescription); - - - if(iIsEditStation) - { - EditStationL(); - iView->iIsTextEntered=EFalse; - } - - if(!iIsEditStation) - { - TBool urlStatus = iView->iUi->ParseAndPrepareUrl(iStationURL); - if( !urlStatus ) - { - iIsSpaceEntered=ETrue; - iDialogLauncher->ShowErrorNoteL(R_IRAPP_ERROR_ADDRESS, ETrue); - return; - } - else - { - AddToFavouritesL(); - iView->iIsTextEntered=EFalse; - iView->SetToolbarItems(); - DefaultVauleL(); - } - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::SaveDataL - Exiting " ); - } - -/** - * void CIRAddManuallyStationContainer::AddToFavouritesL() - * - * Description : This method is used to Add the stations to Favourites - * - * @Algorithm : - * Step 1: Validate the Staion name by calling 'ReplaceEmptyName' - * method - * Step 2: Validate the entered url by calling 'ParseAndPrepareUrl' - * method. - * Step 3: If Url is incorrect then display an error message, else - * goto step4. - * Step 4: - * Step 5: - * - * @Param : [IN] Nil - * [OUT] Nil - * - * @Return : - * - * Example Usage : - */ -void CIRAddManuallyStationContainer::AddToFavouritesL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::AddToFavouritesL - Begin " ); - - ReplaceEmptyName( iStationName ); - - TBool isInvalidChar = HasInvalidCharsInUrl(iStationURL); - if( !isInvalidChar) - { - iIsSpaceEntered=ETrue; - iDialogLauncher->ShowErrorNoteL(R_IRAPP_ERROR_ADDRESS, ETrue); - return; - } - - /** - * Validate the entered URL - */ - TBool urlStatus = iView->iUi->ParseAndPrepareUrl(iStationURL); - - /** - * If the entered URL is incorrect then display the error message - * "Incorrect URL" - */ - if( !urlStatus ) - { - iDialogLauncher = CIRDialogLauncher::NewL(); - iView->iIsSpaceEntered=ETrue; - iDialogLauncher->ShowErrorNoteL(R_IRAPP_ERROR_ADDRESS, ETrue); - delete iDialogLauncher; - return; - } - if(iPreset) - { - delete iPreset; - iPreset=NULL; - } - iPreset = CIRIsdsPreset::NewL(); - TInt err(KErrNoMemory); - iPreset->SetName(iStationName); - iPreset->SetShortDesc(iStationDescription); - - /** - * only one url is saved for manually added channel - */ - iPreset->SetUrlCount(1); - - _LIT(KNotAvailable,"NA"); - - /** - * bitrate set to zero so that it is accessible to all kinds of - * bitrate settings - */ - iPreset->SetUrlL(KNotAvailable,iStationURL,0); - - /** - * Set the Description - */ - iPreset->SetDescription(iStationDescription); - - /** - * Save into the favourites - */ - iView->iUi->iFavPresets->AddPresetL(*iPreset,err); - - /** - * If there is no space in favourites display error note. - */ - if (err == KErrNoMemory) - { - iDialogLauncher->ShowErrorNoteL(R_IRAPP_ADDFAVOURITES_ERROR, ETrue); - } - else - { - if(iUnNamedFlag) - { - iStationName.Copy(KNullStation); - iUnNamedFlag = EFalse; - iDialogLauncher->ShowConfirmationNoteL( R_IRAPP_STATION_SAVED,ETrue ); - } - else - { - iView->iUi->DisplayInformationL(R_IRAPP_STATIONS_POPUP_SAVED, iStationName); - } - iView->iUi->iIRSettings->SetFlagIfAnyFavL(); - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::AddToFavouritesL - Exiting " ); - } - -/** - * void CIRAddManuallyStationContainer::EditStationL() - * - * Description : This method is used to Edit the userdefined stations - * - * @Algorithm : - * Step 1: Validate the entered Url by using 'ParseAndPrepareUrl' - * Step 2: If Entered Url is incorrect then display an error - * message, else goto step3. - * Step3 : calculate the Index of the station to be deleted - * Step4 : create an instance of 'CIRIsdsPreset' - * Step5 : Set the new name of the station - * Step6 : Set the Short description to the station - * Step7 : Set the Url - * Step8 : Set the Bitrate - * Step9 : Set the UniqId of the Station to edited - * Step10: Update the station with modifed values in favourites - * by calling 'ReplaceUserDefinedPresetL' - * Step11: Display a confirmation note that station saved - * - * @Param : [IN] - * [OUT] - * - * @Return : - * - * Example Usage : - */ -void CIRAddManuallyStationContainer::EditStationL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::EditStationL - Entered" ); - - ReplaceUglyChar(iStationName); - - TBool isInvalidChar = HasInvalidCharsInUrl(iStationURL); - if( !isInvalidChar) - { - iIsSpaceEntered=ETrue; - iDialogLauncher->ShowErrorNoteL(R_IRAPP_ERROR_ADDRESS, ETrue); - return; - } - - TBool urlStatus = iView->iUi->ParseAndPrepareUrl(iStationURL); - if( !urlStatus ) - { - iIsSpaceEntered=ETrue; - iDialogLauncher->ShowErrorNoteL(R_IRAPP_ERROR_ADDRESS, ETrue); - return; - } - else - { - TInt deleteIndex ; - if (iView->iUi->iLastPlayed->FileExists()) - { - deleteIndex = iView->iUi->iEditStationIndex-1; - } - else - { - deleteIndex = iView->iUi->iEditStationIndex; - } - /** - * prepare isdsPreset with the edited values - */ - CIRIsdsPreset* isdsPreset = CIRIsdsPreset::NewL(); - - /** - * Set the Station Name with new station name - */ - if(iStationName.Length()==0) - { - ReplaceEmptyName( iStationName ); - } - isdsPreset->SetName(iStationName); - - /** - * Set Description with the new Description - */ - isdsPreset->SetShortDesc(iStationDescription); - - /** - *only one url is saved for manually added channel - */ - isdsPreset->SetUrlCount(1); - - _LIT(KNotAvailable,"NA"); - - /** - * bitrate set to zero so that it is accessible to all kinds of - * bitrate settings - */ - isdsPreset->SetUrlL(KNotAvailable,iStationURL,0); - - isdsPreset->SetDescription(iStationDescription); - - /** - * Set the UniqId of the Station to edit - */ - if (deleteIndex < iView->iUi->iFavPresets->iFavPresetList.Count()) - isdsPreset->SetUniqId(iView->iUi->iFavPresets-> - iFavPresetList[deleteIndex]->Id()); - /** - * Replace the preset with the new values - */ - iView->iUi->iFavPresets->ReplaceUserDefinedPresetL(*isdsPreset); - - /** - * display a confirmation note - */ - if(iUnNamedFlag) - { - iStationName.Copy(KNullStation); - iUnNamedFlag = EFalse; - iDialogLauncher->ShowConfirmationNoteL( R_IRAPP_STATION_SAVED,ETrue ); - } - else - { - iView->iUi->DisplayInformationL(R_IRAPP_STATIONS_POPUP_SAVED, - iStationName); - } - if (isdsPreset) - { - delete isdsPreset; - isdsPreset = NULL; - } - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::EditStationL - Exited " ); - } - -// ---------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::ReplaceEmptyName( TDes& aUrlName ) -// Checks whether the url name contains only spaces and if the descriptor really was. -// empty replaces its content with default name -// ---------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::ReplaceEmptyName( TDes& aUrlName ) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::ReplaceEmptyName - Begin " ); - TBool isEmpty = ETrue; - for( TInt i = 0; i < aUrlName.Length() && isEmpty; i++ ) - { - ( static_cast( aUrlName[i] ) ).Fold(); - if ( !( static_cast( aUrlName[i] ) ).IsSpace() ) - { - isEmpty = EFalse; - } - } - if ( isEmpty ) - { - StringLoader::Load( aUrlName, R_IRAPP_ADDMANUALLY_NOTEXT ); - iUnNamedFlag = ETrue; - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::ReplaceEmptyName - Exiting " ); - } - - -void CIRAddManuallyStationContainer::ReplaceUglyChar(TDes& aUrlName) - { - for(TInt i = 0; i < aUrlName.Length(); i++) - { - TChar xChar(aUrlName[i]); - if (xChar.GetCategory() == TChar::EZpCategory) - { - aUrlName.Replace(i, 1, KSpace); - } - } - } - -// ---------------------------------------------------------------------------- -// CIRAddManuallyStationContainer::HandlePointerEventL(const TPointerEvent& -// aPointerEvent) -// This function is used handle pen input events -// ---------------------------------------------------------------------------- -void CIRAddManuallyStationContainer::HandlePointerEventL(const TPointerEvent &aPointerEvent) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::HandlePointerEventL - Begin " ); - CAknForm::HandlePointerEventL( aPointerEvent ); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::HandlePointerEventL - Exiting " ); - } - -// --------------------------------------------------------------------------- -//TBool CIRAddManuallyStationContainer::ValidateUrlL() -//Validates The entered URL Scheme -// --------------------------------------------------------------------------- -TBool CIRAddManuallyStationContainer::ValidateUrlL() - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::ValidateUrlL - Begin " ); - TBool retVal = EFalse; - _LIT(KMMSText, "mms://"); - - TBuf iTextBoxValidateUrl; - HBufC *httpstring1 = StringLoader::LoadLC(R_IRAPP_ADDMANUALLY_HTTP); - iTextBoxValidateUrl = *httpstring1; - - HBufC* mmsString = HBufC::NewLC(KbufMaxLength); - *mmsString = KMMSText; - TBuf textBoxValidateMMS(*mmsString); - - - GetEdwinText( iStationURL, EAddStaionURL ); - - CleanupStack::PopAndDestroy(mmsString); - CleanupStack::PopAndDestroy(httpstring1); - - if ( iTextBoxValidateUrl.CompareF( iStationURL.Left( iTextBoxValidateUrl.Length()))== 0) - { - if ( iStationURL.Length() <= iTextBoxValidateUrl.Length() || - iTextBoxValidateUrl.CompareF( iStationURL.Left( iTextBoxValidateUrl.Length() ))) - { - retVal = EFalse; - } - else - { - retVal = ETrue; - } - } - else if (textBoxValidateMMS.CompareF( iStationURL.Left( textBoxValidateMMS.Length()))==0) - { - if ( iStationURL.Length() <= textBoxValidateMMS.Length() || - textBoxValidateMMS.CompareF( iStationURL.Left( textBoxValidateMMS.Length() ))) - { - retVal = EFalse; - } - else - { - retVal = ETrue; - } - } - - else - { - //nothing - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::ValidateUrlL - Exiting " ); - return retVal; - } - - -// --------------------------------------------------------------------------- -// void CIRAddManuallyStationContainer::HandleControlEventL(CCoeControl* aControl, -// TCoeEvent aEventType) -// To handle key events. -// -// --------------------------------------------------------------------------- - -void CIRAddManuallyStationContainer::HandleControlEventL( - CCoeControl* aControl, - TCoeEvent aEventType) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::HandleControlEventL - Begin " ); - CAknForm::HandleControlEventL(aControl, aEventType); - if (aEventType == EEventStateChanged) - { - if (aControl == Control(EAddStaionURL)) - { - TInt focus=CEikDialog::IdOfFocusControl(); - CCoeControl* ictrl=CEikDialog::Control(focus); - TBool enable=ValidateUrlL(); - iIsEnable = enable; - if(enable) - { - iView->iIsTextEntered=ETrue; - iView->SetToolbarItems(); - } - else - { - iView->iIsTextEntered=EFalse; - iView->SetToolbarItems(); - } - } - if (aControl == Control(EAddStaionName)) - { - } - } - IRLOG_DEBUG( "CIRAddManuallyStationContainer::HandleControlEventL - Exiting " ); - } - - -// --------------------------------------------------------------------------- -//void CIRAddManuallyStationContainer::HandleResourceChange (TInt aType) -// -// -// --------------------------------------------------------------------------- - -void CIRAddManuallyStationContainer::HandleResourceChange (TInt /*aType*/) - { - IRLOG_DEBUG( "CIRAddManuallyStationContainer::HandleResourceChange - Begin " ); - CAknForm::HandleResourceChange(KEikDynamicLayoutVariantSwitch); - - iView->RefreshView(); - - SizeChanged(); - DrawDeferred(); - IRLOG_DEBUG( "CIRAddManuallyStationContainer::HandleResourceChange - Exiting " ); - } - -// --------------------------------------------------------------------------- -//void CIRAddManuallyStationContainer::SizeChanged () -// -// --------------------------------------------------------------------------- - -void CIRAddManuallyStationContainer::SizeChanged() - { - CAknForm::SizeChanged(); - } - -// --------------------------------------------------------------------------- -//TBool CIRAddManuallyStationContainer::HasInvalidCharsInUrl (TDes& aUrl) -// -// --------------------------------------------------------------------------- - -TBool CIRAddManuallyStationContainer::HasInvalidCharsInUrl(TDes& aUrl) - { - TBool retVal = EFalse; - for(TInt i = 0; i < aUrl.Length(); i++) - { - TChar xChar(aUrl[i]); - switch(xChar.GetCategory()) - { - case TChar::ESeparatorGroup: - case TChar::EControlGroup: - case TChar::EZpCategory: - case TChar::EWhitespace: - case TChar::EZlCategory: - case TChar::EParagraphSeparator: - case TChar::ESegmentSeparator: - case TChar::EPsCategory: - case TChar::EPeCategory: - { - retVal = EFalse; - } - break; - default: - { - retVal = ETrue; - } - } - (static_cast( aUrl[i] ) ).Fold(); - if( ( static_cast( aUrl[i] ) ) == '%' || - ( static_cast( aUrl[i] ) ) == '^' || - ( static_cast( aUrl[i] ) ) == '"' || - ( static_cast( aUrl[i] ) ) == '\\'|| - ( static_cast( aUrl[i] ) ) == '`' || - ( static_cast( aUrl[i] ) ) == '|' || - ( static_cast( aUrl[i] ) ) == '<' || - ( static_cast( aUrl[i] ) ) == '>' || - ( static_cast( aUrl[i] ) ) == '#' ) - { - retVal = EFalse; - } - - - if(!retVal) - { - i = aUrl.Length(); - } - } - return retVal; - } -