--- a/eventsui/eventshandlerui/eventsnotifier/evtinfonote/src/evtinfonoteimpl.cpp Thu Aug 19 09:48:36 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +0,0 @@
-/*
-* Copyright (c) 2008 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: Info Note implementation
-*
-*/
-
-
-// System Includes
-#include <evtinfonote.rsg>
-#include <eikbtgpc.h>
-#include <gulicon.h>
-#include <AknsUtils.h>
-#include <avkon.mbg>
-#include <evtinfonote.mbg>
-#include <eikimage.h>
-#include <StringLoader.h>
-#include <aknlists.h>
-#include <aknPopup.h>
-#include <badesca.h>
-#include <data_caging_path_literals.hrh>
-#include <AknsConstants.h> // Skin Ids
-#include <AknIconUtils.h>
-#include <AknsSkinInstance.h>
-
-// User Includes
-#include "evtinfonoteimpl.h"
-#include "evtinfonoteparams.h"
-#include "evtinfonoteconsts.hrh"
-#include "evtkeylockhandler.h"
-
-// Constant Defintions
-_LIT( KEvtDefaultIconFileName, "evtinfonote.mif" );
-static const TInt KTimetoPlay = 60;
-static const TInt KTimetoSnooze = 60;
-
-// Context menu Array
- const TInt KListGranularity = 5;
-static const TInt KEvtOpenEvent = 0;
-static const TInt KEvtViewDesc = 1;
-static const TInt KEvtNone = 2;
-
-#include "evtdebug.h"
-
-//
-// ------------------------- Member Function definition ----------------------
-
-// ---------------------------------------------------------------------------
-// CEvtInfoNoteImpl::CEvtInfoNoteImpl()
-// ---------------------------------------------------------------------------
-//
-CEvtInfoNoteImpl::CEvtInfoNoteImpl( CEvtInfoNoteInputParam* aInputParam )
- :CAknQueryDialog( CAknQueryDialog::ENoTone ),
- iInputParam( aInputParam )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CEvtInfoNoteImpl::~CEvtInfoNoteImpl()
-// ---------------------------------------------------------------------------
-//
-CEvtInfoNoteImpl::~CEvtInfoNoteImpl()
- {
- // Delete the tone player
- delete iTonePlayer;
-
- // Delete the timer
- if( iTimer )
- {
- iTimer->Cancel();
- delete iTimer;
- }
-
- // Update the Key Lock state before Close.
- if(iKeyLockHandler)
- {
- if(*iExitFlag == EEvtCloseInfoNote || *iExitFlag == EEvtCmdSnoozeEvent )
- iKeyLockHandler->UpdateStateWithNote();
- else
- iKeyLockHandler->UpdateStateWithoutNote();
- }
-
- // Delete Key Lock Handler
- delete iKeyLockHandler;
-
- // Delete the Input parameter object
- delete iInputParam;
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CEvtInfoNoteImpl::ConstructLC()
- {
- EVTUIDEBUG( "+ CEvtInfoNoteImpl::ConstructL" );
-
- CAknQueryDialog::PrepareLC( R_LOC_EVT_INFO_QUERY );
-
- // Prepare the Heading resource
- TPtrC debug( iInputParam->Subject() );
- EVTUIDEBUG1( "Notifier for - Subject = %S", &debug );
-
- // Set the Heading
- QueryHeading()->SetTextL( iInputParam->Subject());
-
- // Set the Query Text
- SetPromptL( iInputParam->Description());
-
- // Load the Image fpr the query
- LoadImageL();
-
- iKeyLockHandler = CEvtKeyLockHandler::NewL( );
-
- // Check if the tone needs to be played. In case, it is true then
- // create the player and update the CBA
- if ( iInputParam->ShowSnooze() )
- {
- if ( iInputParam->ToneEnabled() )
- {
- // Create the tone player
- iTonePlayer = CEvtTonePlayer::NewL( *this );
-
- // Update the CBA - Snooze context silence
- ButtonGroupContainer().SetCommandSetL( R_LOC_EVT_INFONOTE_SNOOZE_TONE_CBA );
- }
- else
- {
- // Update the CBA - Snooze context close
- ButtonGroupContainer().SetCommandSetL( R_LOC_EVT_INFONOTE_SNOOZE_CBA );
- }
- }
- else
- {
- if ( iInputParam->ToneEnabled() )
- {
- // Create the tone player
- iTonePlayer = CEvtTonePlayer::NewL( *this );
-
- // Update the CBA - open context silence
- ButtonGroupContainer().SetCommandSetL( R_LOC_EVT_INFONOTE_OPEN_TONE_CBA );
- }
- }
- EVTUIDEBUG( "- CEvtInfoNoteImpl::ConstructL" )
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::NewL()
-// ---------------------------------------------------------------------------
-//
-CEvtInfoNoteImpl* CEvtInfoNoteImpl::NewLC( CEvtInfoNoteInputParam* aInputParam )
- {
- CEvtInfoNoteImpl* self = new ( ELeave ) CEvtInfoNoteImpl( aInputParam );
- CleanupStack::PushL( self );
- self->ConstructLC();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// TInt CEvtInfoNoteImpl::RunLD()
-// ---------------------------------------------------------------------------
-//
-TInt CEvtInfoNoteImpl::RunLD(TEvtInfoNoteCmds* aFlag)
- {
- // Call RunLD
- iExitFlag = aFlag;
- return RunLD();
- }
-
-// ---------------------------------------------------------------------------
-// TInt CEvtInfoNoteImpl::RunLD()
-// ---------------------------------------------------------------------------
-//
-TInt CEvtInfoNoteImpl::RunLD()
- {
- // Maintain the Key Lock State and Enable if it is already not enabled
- if ( iKeyLockHandler )
- {
- iKeyLockHandler->MaintainState();
- }
-
- TInt timeToPlay = KTimetoPlay;
- if ( iInputParam->ShowSnooze() )
- {
- // Start the Timer if the Event has to be snoozed.
- if( !iTimer )
- {
- iTimer = CPeriodic::NewL( 0 ); // neutral priority
- }
- iTimer->Start( TTimeIntervalMicroSeconds32( KTimetoSnooze * 1000000 ),
- TTimeIntervalMicroSeconds32( KTimetoSnooze * 1000000 ),
- TCallBack(TickL, this));
-
- timeToPlay = 0;
- }
-
- // If tone player is there, then start tone playing
- if ( iTonePlayer )
- {
- iTonePlayer->PlayFileL( iInputParam->Tone(), iInputParam->ToneRepeat(), timeToPlay );
- }
-
- // Pass the function to the base class
- return CAknQueryDialog::RunLD();
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::OkToExitL()
-// ---------------------------------------------------------------------------
-//
-TBool CEvtInfoNoteImpl::OkToExitL( TInt aButtonId )
- {
- EVTUIDEBUG1( "+ CEvtInfoNoteImpl::OkToExitL - ButtonId = %d", aButtonId );
- switch(aButtonId)
- {
- case EEvtCmdSnoozeEvent: // when LSK Snooze is pressed
- {
- *iExitFlag = EEvtCmdSnoozeEvent;
- return ETrue;
- }
- case EEvtCmdOpenEvent: // when LSK Open is pressed
- {
- // Disable the Key Lock irrespective of previously maintained state.
- if ( iKeyLockHandler )
- {
- iKeyLockHandler->EnableKeyLock( EFalse );
- }
- *iExitFlag = EEvtCmdOpenEvent;
- return ETrue;
- }
- case EEvtCmdSilence: // when RSK Silence is pressed
- {
- // If tone player is there, then start tone playing
- if ( iTonePlayer )
- {
- iTonePlayer->StopPlayingL( EFalse );
- }
- *iExitFlag = EEvtCmdSilence;
- return EFalse;
- }
- case EAknSoftkeyContextOptions: //when MSK is pressed
- {
-
- switch( GetMskOptionL() )
- {
- case KEvtOpenEvent:
- // Disable the Key Lock irrespective of previously maintained state.
- if ( iKeyLockHandler )
- {
- iKeyLockHandler->EnableKeyLock( EFalse );
- }
- *iExitFlag = EEvtCmdOpenEvent;
- return ETrue;
- case KEvtViewDesc:
- // Disable the Key Lock irrespective of previously maintained state.
- if ( iKeyLockHandler )
- {
- iKeyLockHandler->EnableKeyLock( EFalse );
- }
- *iExitFlag = EEvtCmdShowDetails;
- return ETrue;
- default:
- return EFalse;
- }
- }
- case EEvtCloseInfoNote: // when RSK Silence is pressed
- {
- *iExitFlag = EEvtCloseInfoNote;
- return ETrue;
- }
- default: // close dialog
- {
- return ETrue;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::PostLayoutDynInitL()
-// ---------------------------------------------------------------------------
-//
-void CEvtInfoNoteImpl::PostLayoutDynInitL()
- {
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::TonePlayCompleteL()
-// ---------------------------------------------------------------------------
-//
-void CEvtInfoNoteImpl::TonePlayCompleteL( TBool aTimeout )
- {
- // Enable KeyLock on Timeout.
- if ( iKeyLockHandler && aTimeout )
- {
- iKeyLockHandler->EnableKeyLock( ETrue );
- iKeyLockHandler->UpdateStateWithoutNote();
- }
-
- // Update the CBA
- if ( iInputParam->ShowSnooze() )
- {
- ButtonGroupContainer().SetCommandSetL( R_LOC_EVT_INFONOTE_SNOOZE_CBA );
- }
- else
- {
- ButtonGroupContainer().SetCommandSetL( R_LOC_EVT_INFONOTE_OPEN_CBA );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// TInt CEvtInfoNoteImpl::GetMskOptionL()
-// ---------------------------------------------------------------------------
-//
-TInt CEvtInfoNoteImpl::GetMskOptionL()
- {
- EVTUIDEBUG( "+ CEvtInfoNoteImpl::GetMskOptionL()" );
- TInt selected(KEvtNone);
-
- CAknSinglePopupMenuStyleListBox* list = new(ELeave)CAknSinglePopupMenuStyleListBox;
- CleanupStack::PushL(list);
-
- CAknPopupList* popupList = CAknPopupList::NewL(list, R_AVKON_SOFTKEYS_OK_CANCEL,
- AknPopupLayouts::EMenuWindow);
- CleanupStack::PushL(popupList);
-
- list->ConstructL(popupList, 0);
- list->CreateScrollBarFrameL(ETrue);
- list->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EAuto);
-
- CDesCArrayFlat* itemArray = new(ELeave)CDesCArrayFlat( KListGranularity );
- CleanupStack::PushL(itemArray);
-
- // add the item popup item here
- HBufC* openevent = StringLoader::LoadLC( R_LOCEV_OPTIONS_OPEN_EVENT );
- itemArray->AppendL(*openevent);
- CleanupStack::PopAndDestroy(); // openevent
-
- if( iInputParam->Description().Length() != 0 )
- {
- HBufC* viewdesc = StringLoader::LoadLC( R_LOCEV_OPTIONS_VIEW_DESCRIPTION );
- itemArray->AppendL(*viewdesc);
- CleanupStack::PopAndDestroy(); // viewdesc
- }
-
- CleanupStack::Pop(); //itemArray
- list->Model()->SetItemTextArray(itemArray);
- list->Model()->SetOwnershipType(ELbmOwnsItemArray);
-
- // Show popup list and then show return value.
- TInt popupOk = popupList->ExecuteLD();
- if (popupOk)
- {
- selected = list->CurrentItemIndex();
- }
-
- CleanupStack::Pop(); // popuplist
- CleanupStack::PopAndDestroy(); // list
-
- EVTUIDEBUG1( "- CEvtInfoNoteImpl::GetMskOptionL() - Selected = %d", selected );
- return selected;
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::LoadImageL()
-// ---------------------------------------------------------------------------
-//
-void CEvtInfoNoteImpl::LoadImageL()
- {
- EVTUIDEBUG( "+ CEvtInfoNoteImpl::LoadImageL" )
-
- // Obtain the text query control
- CAknQueryControl* control = QueryControl();
- if ( control )
- {
- TFileName dllFileName;
- Dll::FileName( dllFileName );
- //dllFileName.Copy( KTempDrive );
-
- TParse parse;
- User::LeaveIfError( parse.Set( KEvtDefaultIconFileName, &KDC_APP_BITMAP_DIR, &dllFileName ));
- TFileName fileName( parse.FullName() );
-
-
- //retrieve accuracy level
- CEvtInfoNoteInputParam::TEvtTriggerAccuracy accuracy = iInputParam->TrigerringAccuracy();
- EVTUIDEBUG1( "Icon creation:Accuracy level = %d", accuracy )
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- EVTUIDEBUG( "AknsUtils::SkinInstance" );
-
- CFbsBitmap* bitmap = NULL;
- CFbsBitmap* bitmapMask = NULL;
- TAknsItemID aSkinID;
- TInt bmpID;
- TInt bmpMaskID;
-
- switch( accuracy )
- {
- case CEvtInfoNoteInputParam::EEvtAccurateTrigger:
- aSkinID = KAknsIIDQgnNoteLocevAlarmAcc;
- bmpID = EMbmEvtinfonoteQgn_note_locev_alarm_acc;
- bmpMaskID = EMbmEvtinfonoteQgn_note_locev_alarm_acc_mask;
- break;
- case CEvtInfoNoteInputParam::EEvtInaccurateTrigger:
- aSkinID = KAknsIIDQgnNoteLocevAlarmInacc;
- bmpID = EMbmEvtinfonoteQgn_note_locev_alarm_inacc;
- bmpMaskID = EMbmEvtinfonoteQgn_note_locev_alarm_inacc_mask;
- break;
- case CEvtInfoNoteInputParam::EEvtHighlyInaccurateTrigger:
- default:
- aSkinID = KAknsIIDQgnNoteLocevAlarmInaccHeavy;
- bmpID = EMbmEvtinfonoteQgn_note_locev_alarm_inacc_heavy;
- bmpMaskID = EMbmEvtinfonoteQgn_note_locev_alarm_inacc_heavy_mask;
- break;
- }
-
- TRAPD( err, AknsUtils::CreateIconL( skin,
- aSkinID,
- bitmap,
- bitmapMask,
- fileName,
- bmpID,
- bmpMaskID ) );
-
-
- EVTUIDEBUG1( "AknsUtils::CreateIconL - %d", err );
- if(err != KErrNone)
- {
- TRAP( err, AknIconUtils::CreateIconL( bitmap,
- bitmapMask,
- fileName,
- bmpID,
- bmpMaskID ) );
- EVTUIDEBUG1( "AknIconUtils::CreateIconL - %d", err );
- }
-
- User::LeaveIfError( err );
-
- EVTUIDEBUG( "Bitmap validation" )
-
- User::LeaveIfNull( bitmap );
-
- EVTUIDEBUG( "Mask validation" )
- User::LeaveIfNull( bitmapMask );
-
- CleanupStack::PushL( bitmap );
- CleanupStack::PushL( bitmapMask );
-
- CEikImage* image = new ( ELeave ) CEikImage;
- CleanupStack::PushL( image );
-
- EVTUIDEBUG( "Settings image" )
- image->SetPicture( bitmap, bitmapMask );
-
- control->SetImageL( image );
-
- // Set the image
- // control->SetImageL( fileName, EMbmAvkonQgn_note_query, EMbmAvkonQgn_note_query_mask );
-
- CleanupStack::Pop( 3 );
- }
-
- EVTUIDEBUG( "- CEvtInfoNoteImpl::LoadImageL" )
- }
-
-// ---------------------------------------------------------------------------
-// CEvtInfoNoteImpl::TickL()
-// ---------------------------------------------------------------------------
-//
-TInt CEvtInfoNoteImpl::TickL(TAny* aObject)
- {
- ((CEvtInfoNoteImpl*)aObject)->TryExitL(EEvtCmdSnoozeEvent);
- return KErrNone;
- }
-
-// ---------------------------------------------------------------------------
-// void CEvtInfoNoteImpl::HandlePointerEventL()
-// ---------------------------------------------------------------------------
-//
-void CEvtInfoNoteImpl::HandlePointerEventL(const TPointerEvent& aPointerEvent)
- {
- CEikDialog::HandlePointerEventL( aPointerEvent );
- if(aPointerEvent.iType == TPointerEvent::EButton1Down )
- {
- TryExitL(EAknSoftkeyContextOptions);
- }
- }
-