internetradio2.0/uisrc/iraddmanuallystationcontainer.cpp
changeset 3 ee64f059b8e1
parent 2 2e1adbfc62af
child 4 3f2d53f144fe
child 5 0930554dc389
--- 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 <akniconutils.h>
-#include <aknindicatorcontainer.h>
-#include <aknutils.h>
-
-#include <akniconarray.h>
-#include <aknlists.h>
-#include <aknview.h>
-#include <barsread.h>
-#include <eikenv.h>
-#include <eiklabel.h>
-#include <eikmenub.h>
-#include <eikedwin.h>
-#include <gulicon.h>
-#include <stringloader.h>
-#include <internetradio.rsg>
-#include <internetradio.mbg>
-#include <baclipb.h>
-#include <aknsfld.h> //CAknSearchField
-#include <txtetext.h>
-#include <eikdialg.h> 
-#include <akntoolbar.h>
-#include <aknappui.h>
-#include <akntouchpane.h>
-#include <aknbutton.h>
-#include <f32file.h>
-#include <s32file.h>
-#include <eikmenub.h>                       
-#include <avkon.hrh>                        
-#include <avkon.rsg>  
-#include <aknnotewrappers.h>                     
-#include <aknpopupfieldtext.h>              
-#include <mgfetch.h> 
-/* the head file is really uplayer case, so we don't need to change it.  */
-#include <AknsConstants.h>
-#include <eikaufty.h>
-#include <hlplch.h>
-#include <aknnavi.h>
-#include <aknnavide.h> 
-
-#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<CIRUi*>( 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<CIRUi*>( iCoeEnv->AppUi() );
-	//for enabling paste button if clipboard contains some data
-	RFs& fs = iEikonEnv->FsSession();
-	CClipboard* clipBoard = CClipboard::NewForReadingLC(fs);
-	TBuf<KMaxLength> 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<KMaxSize> unnamedStation(KUnamedStation);
-			TBuf<KMaxSize> 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<KbufMaxLength> buf(blank);  
-	SetEdwinTextL( EAddStaionDescription,&buf );
-	
-	CEikDialog::SetInitialCurrentLine();
-    TryChangeFocusToL(EAddStaionURL);
-    
-    CCoeControl* cntrl = CEikDialog::Control(EAddStaionURL);
-	CEikEdwin* myEdwin = static_cast<CEikEdwin*> ( 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<CEikEdwin*> ( 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<KMaxLength> 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<CEikEdwin*> ( 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<CIRUi*>( 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<TChar>( aUrlName[i] ) ).Fold();
-		if ( !( static_cast<TChar>( 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<KbufMaxLength> iTextBoxValidateUrl;
-	HBufC *httpstring1 = StringLoader::LoadLC(R_IRAPP_ADDMANUALLY_HTTP);
-	iTextBoxValidateUrl = *httpstring1;
-
-   	HBufC* mmsString  = HBufC::NewLC(KbufMaxLength);
-	*mmsString = KMMSText;
-	TBuf<KbufMaxLength> 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<TChar>( aUrl[i] ) ).Fold();
-		if( ( static_cast<TChar>( aUrl[i] ) ) == '%' || 
-		    ( static_cast<TChar>( aUrl[i] ) ) == '^' ||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '"' ||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '\\'||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '`' ||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '|' ||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '<' ||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '>' ||
-		    ( static_cast<TChar>( aUrl[i] ) ) == '#' )
-			{
-			retVal = EFalse;					
-			}
-		
-		
-		if(!retVal)
-			{
-			i = aUrl.Length();							
-			}
-		}
-	return retVal;		
-	}
-