--- 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;
- }
-