diff -r c84cf270c54f -r 8871b09be73b phoneuis/easydialing/tsrc/edta/src/edta_appui.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneuis/easydialing/tsrc/edta/src/edta_appui.cpp Fri Feb 19 22:50:26 2010 +0200 @@ -0,0 +1,310 @@ +/* +* Copyright (c) 2010 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: Easy dialing test application. +* +*/ + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "edta.pan" +#include "edta_appui.h" +#include "edta_appview.h" +#include "edta.hrh" +#include "edta_querydialog.h" +#include + + + + +// CONSTANTS +const TInt KSearchStringMaxLen = 64; + + +// ============================ MEMBER FUNCTIONS =============================== + + +// ----------------------------------------------------------------------------- +// CEdtaAppUi::ConstructL() +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CEdtaAppUi::ConstructL() + { + // Initialise app UI with standard value. + BaseConstructL(CAknAppUi::EAknEnableSkin); + + // Create view object + iAppView = CEdtaAppView::NewL( ClientRect() ); + + // TODO: remove? + iServiceHandler = CAiwServiceHandler::NewL(); + + iRepository = CRepository::NewL( KCRUidEasyDialSettings ); + + AddToStackL(iAppView); + } + +// ----------------------------------------------------------------------------- +// CEdtaAppUi::CEdtaAppUi() +// C++ default constructor can NOT contain any code, that might leave. +// ----------------------------------------------------------------------------- +// +CEdtaAppUi::CEdtaAppUi() + { + // No implementation required + } + +// ----------------------------------------------------------------------------- +// CEdtaAppUi::~CEdtaAppUi() +// Destructor. +// ----------------------------------------------------------------------------- +// +CEdtaAppUi::~CEdtaAppUi() + { + if ( iAppView ) + { + RemoveFromStack(iAppView); + delete iAppView; + iAppView = NULL; + } + delete iServiceHandler; + + if ( iRepository ) + { + // default setting + iRepository->Set(KEasyDialingContactThumbnails, 1); + } + delete iRepository; + } + + +TInt CreateTestContactDatabaseL(); // Should be moved into correct place + +// ----------------------------------------------------------------------------- +// CEdtaAppUi::HandleCommandL() +// Takes care of command handling. +// ----------------------------------------------------------------------------- +// +void CEdtaAppUi::HandleCommandL( TInt aCommand ) + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL enter: 0x%X"), aCommand ); + + switch( aCommand ) + { + case EEikCmdExit: + case EAknSoftkeyExit: + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EXIT")); + Exit(); + break; + + case EEdtaSetPluginInput: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaSetPluginInput")); + + if( CheckPluginLoadedAndShowNote() ) + { + CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( iQueryText ); + if( dlg->ExecuteLD(R_DIALOG_TEXT_EDIT_QUERY)) + { + if (iAppView->GetEasyDialer()) + { + iAppView->GetEasyDialer()->SetInputL( iQueryText ); + } + } + } + } + break; + + case EEdtaCommandShowContacts: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaCommandShowContacts")); + + if( iAppView->IsPCSServerLoaded() ) + { + CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( iQueryText ); + if( dlg->ExecuteLD(R_DIALOG_TEXT_EDIT_QUERY)) + { + iAppView->ShowMatchingContactsL(iQueryText); + } + } + } + break; + + case EEdtaLaunchFirstContact: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaLaunchFirstContact")); + if( iAppView->IsPCSServerLoaded() ) + iAppView->LaunchNthContactL( 0 ); + } + break; + + case EEdtaSelectAndLaunchContact: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaSelectAndLaunchContact")); + iAppView->SelectAndLaunchContactL(); + } + break; + + case EEdtaCommandCheckPCSServer: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaCommandCheckPCSServer")); + if( iAppView->IsPCSServerLoaded() ) + iAppView->CheckPCSServerL(); + } + break; + + case EEdtaCommandShowNameOrdering: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaCommandShowNameOrdering")); + iAppView->ShowNameOrderL(); + } + break; + + case EEdtaCommandCreateTestContactBase: + { + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: EEdtaCommandCreateTestContactBase")); + TInt newContactsCount = CreateTestContactDatabaseL(); + iAppView->GetScreenBuffer()->WriteLineL(_L("Test contacts updated")); + iAppView->GetScreenBuffer()->WriteLineL(_L("%d new contacts"), newContactsCount ); + } + break; + + case EEdtaCommandTwoConsequtiveSearchesTest: + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: Two search test")); + + if( CheckPluginLoadedAndShowNote() ) + { + CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( iQueryText ); + if( dlg->ExecuteLD(R_DIALOG_TEXT_EDIT_QUERY)) + { + HBufC* anotherQueryText = HBufC::NewLC( KSearchStringMaxLen ); + TPtr ptr = anotherQueryText->Des(); + + CAknTextQueryDialog* dlg2 = CAknTextQueryDialog::NewL( ptr ); + + if ( dlg2->ExecuteLD(R_DIALOG_TEXT_EDIT_QUERY) ) + { + if (iAppView->GetEasyDialer()) + { + iAppView->GetEasyDialer()->SetInputL( iQueryText ); + iAppView->GetEasyDialer()->SetInputL( ptr ); + } + } + CleanupStack::PopAndDestroy( anotherQueryText ); + } + } + break; + + case EEdtaCommandMiscCoverageTest: + + if (iAppView->GetEasyDialer()) + { + iAppView->DoMiscellaneousTestsL( ); + } + break; + + case EEdtaCommandShowThumbnails: + iRepository->Set(KEasyDialingContactThumbnails, 1); + break; + + case EEdtaCommandHideThumbnails: + iRepository->Set(KEasyDialingContactThumbnails, 0); + break; + + default: + iServiceHandler->ExecuteMenuCmdL( + aCommand, + iServiceHandler->InParamListL(), // No input parameters + iServiceHandler->OutParamListL(), // No output parameters + 0, // No options used. + NULL); // No need for callback + + DebugPrintF(_L("CEdtaAppUi::HandleCommandL: AIW (or unknown) menu command: 0x%X"), aCommand ); + break; + } + + DebugPrintF(_L("CEdtaAppUi::HandleCommandL exit")); + } + + +void CEdtaAppUi::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane) + { + // First, offer menu pane to AIW framework. It might be the case, that the + // user is opening an AIW submenu. In this case, the AIW handles the menu. + if ( iServiceHandler->HandleSubmenuL( *aMenuPane ) ) + { + return; + } + + // Add your normal (non-AIW) menu initialisation code here... + + // Let AIW provider add its menu items to the menu. + iServiceHandler->InitializeMenuPaneL( + *aMenuPane, + aResourceId, + EEdtaCommandLast, + iServiceHandler->InParamListL()); + } + +// ----------------------------------------------------------------------------- +// Called by the framework when the application status pane +// size is changed. Passes the new client rectangle to the +// AppView +// ----------------------------------------------------------------------------- +// +void CEdtaAppUi::HandleStatusPaneSizeChange() + { + iAppView->SetRect( ClientRect() ); + } + + + +// ----------------------------------------------------------------------------- +// Display note id easydialing plugin is not loaded +// ----------------------------------------------------------------------------- +// +TBool CEdtaAppUi::CheckPluginLoadedAndShowNote() + { + TBool plugin_loaded( ETrue ); + + if( !(iAppView->GetEasyDialer()) ) + { + plugin_loaded = EFalse; + TBuf tempStr; + tempStr.Copy(_L("Easydialing plugin not loaded!")); + + TRAP_IGNORE( + { + CAknErrorNote* myNote = new (ELeave) CAknErrorNote(); + myNote->SetTimeout( CAknNoteDialog::ELongTimeout ); + myNote->ExecuteLD( tempStr ); + } + ); + } + + DebugPrintF(_L("CEdtaAppUi::CheckPluginLoadedAndShowNote: Plugin loaded: %d"), plugin_loaded ); + + return plugin_loaded; + } + +// End of File