--- a/satui/satapp/SATUISrc/CSatUiViewAppUi.cpp Thu Aug 19 10:28:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3563 +0,0 @@
-/*
-* Copyright (c) 2002-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:
-* Implements the application UI and the methods derived from
-* MSatUiActionImplementer i.e. showing messages and asking input.
-*
-*
-*/
-
-
-// INCLUDE FILES
-#include <barsread.h>
-#include <badesca.h> // for descriptor arrays
-#include <e32std.h>
-#include <eikenv.h>
-#include <eikapp.h>
-#include <StringLoader.h>
-#include <aknview.h>
-#include <aknnotedialog.h>
-#include <aknstaticnotedialog.h>
-#include <AknGlobalNote.h>
-#include <AknQueryDialog.h>
-#include <aknmessagequerydialog.h>
-#include <AudioPreference.h>
-#include <mdaaudiotoneplayer.h>
-#include <activitymanager.h>
-#include <AknIconArray.h>
-#include <AknPopupform.h> //DisplayText icon popupform
-#include <eikcapc.h> //CEikCaptionedControl
-#include <txtrich.h> //CRichText
-#include <eikrted.h> //CEikRichTextEditor
-#include <hlplch.h>
-#include <aknsoundsystem.h>
-#include <AknWaitDialog.h>
-#include <akntitle.h>
-#include <AknUtils.h>
-#include <AknIconUtils.h>
-#include <aknconsts.h>
-#include <avkon.hrh>
-#include <SatUi.rsg>
-#include <msatuiadapter.h>
-#include <aknkeylock.h>
-
-#include "satui.hrh"
-#include "CSatUiApplication.h"
-#include "CSatUiViewAppUi.h"
-#include "CSatUiView.h"
-#include "CSatUiTextQueryDialog.h"
-#include "CSatUiMessageQueryIcon.h"
-#include "CSatUiWaitDialog.h"
-#include "tflogger.h"
-
-#include <MProfile.h>
-#include <MProfileEngine.h>
-#include <MProfileTones.h>
-#include <TProfileToneSettings.h>
-#include <MProfileName.h>
-#include <MProfileExtraTones.h>
-#include <featmgr.h> // Used for FeatureManager
-#include <BTSapDomainPSKeys.h> // For BT SAP connection state keys.
-#include <e32property.h> // Used for RProperty
-#include <aknnotewrappers.h>
-
-#include <aknlayout.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <ctsydomainpskeys.h>
-#include <mda/common/resource.h>
-
-#include <ProfileEngineSDKCRKeys.h>
-#include <centralrepository.h>
-
-
-// CONSTANTS
-const TInt KSatActiveProfileOffline = 5; // value from ProfileEngine
-const TInt K32TIntMaxValue = 0x7FFFFFFF;
-// From UI spec 60 sec delay user response.
-const TInt KNoResponseFromUserDelay = 60;
-const TInt KMicroSecondsInSecond = 1000000;
-const TInt KClearScreenDelay = 3;
-const TInt KMicroSecondsInTenthOfSecond = 100000;
-const TInt K3Seconds = 3000000;
-
-// Maximum length for sound file.
-const TInt KMaxSoundFileLength = 256;
-// Audio sample is repeated indefinitely.
-const TInt KSoundPlayerRepeatForever = KMdaRepeatForever;
-// Used when dividing some values. Used only for preventing the use of magic
-// numbers
-const TInt KDivideByEight = 8;
-
-const TUint8 KGetInputStringMaxSize = 0xEF;
-
-_LIT( K3Spaces, " " ); // Used for empty title.
-const TInt KEmptyTitleLength( 3 ); // Length of empty title.
-_LIT( KSatEmptySpace, " " ); // Used for empty item.
-_LIT( KSatEmptyDes, "" );
-
-const TUint8 KKeyZero = 0x30;
-const TUint8 KKeyNine = 0x39;
-const TUint8 KHwAsterisk = 0x2a; // In hw scan code value for asterisk
-
-// The max volume value from settings.
-// From TProfileToneSettings.h
-const TInt KMaxVolumeFromProfile( 10 );
-
-// ================= MEMBER FUNCTIONS =======================
-
-// C++ default constructor can NOT contain any code, that
-// might leave.
-//
-CSatUiViewAppUi::CSatUiViewAppUi():
- iHelp( EFalse ),
- iSetUpMenuFirst( ETrue ),
- iSelectItemFirst( ETrue ),
- iPreviousForeground( EFalse ),
- iViewLoopCounter( 0 ),
- iDuration( TTimeIntervalMicroSeconds( static_cast<TInt64>( 0 ) ) ),
- iReqWSBufferID( KErrNone )
- {
- }
-
-// Symbian OS default constructor can leave.
-void CSatUiViewAppUi::ConstructL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConstructL() called" )
- BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible );
-
- // Requests Window Server client buffer used by the application to
- // be of at least the given size.
- iReqWSBufferID = CAknEnv::Static()->RequestWsBuffer( KAknMaxWsBufferSize );
- TFLOGSTRING2( "iReqWSBufferID is %d", iReqWSBufferID )
-
- if ( BTSAPActivatedL() )
- {
- HBufC* sapText =
- iCoeEnv->AllocReadResourceLC( R_QTN_OFFLINE_NOT_POSSIBLE_SAP );
- CAknInformationNote* note = new ( ELeave ) CAknInformationNote( ETrue );
- iForegroundControl = note;
- note->ExecuteLD( *sapText );
- iForegroundControl = NULL;
- CleanupStack::PopAndDestroy( sapText );
- Exit();
- }
-
- if ( ProfileState() == KSatActiveProfileOffline )
- {
- ShowNotAvailableNoteL();
- Exit();
- }
-
-
- if ( StatusPane()->PaneCapabilities( TUid::Uid(
- EEikStatusPaneUidTitle ) ).IsPresent() )
- {
- CAknTitlePane* titlePane = STATIC_CAST( CAknTitlePane*,
- StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
- titlePane->SetTextL( KNullDesC );
- titlePane->DrawNow();
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::ConstructL() exit" )
- }
-
-// Destructor.
-CSatUiViewAppUi::~CSatUiViewAppUi()
- {
- TFLOGSTRING( "CSatUiViewAppUi::~CSatUiViewAppUi() called" )
- this->StopShowWaitNote();
-
- delete iTitle;
- delete iAppName;
- delete iPlayer;
- delete iTimer;
-
- TFLOGSTRING( "CSatUiViewAppUi::~CSatUiViewAppUi() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CreateEmptyMenuL
-// Creates empty menu. This is used in SIM originated commands.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::CreateEmptyMenuL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::CreateEmptyMenuL() called" )
-
- // Create the menu item array with no content.
- CDesCArrayFlat* menuItems = new( ELeave ) CDesCArrayFlat( 1 );
- CleanupStack::PushL( menuItems );
- menuItems->Reset();
- menuItems->AppendL( KSatEmptySpace );
-
- // Create the empty next action indicator array.
- CArrayFixFlat<TSatAction>* menuActions =
- new( ELeave ) CArrayFixFlat<TSatAction>( 1 );
- CleanupStack::PushL( menuActions );
- menuActions->Reset();
-
- // Create empty title pane.
- HBufC* satTitle = HBufC::NewLC( KEmptyTitleLength );
- satTitle->Des().Append( K3Spaces );
-
- iSetUpMenuFirst = EFalse;
- iSetUpMenuView = CSatUiView::NewL( ETrue, this, ETrue );
- iSetUpMenuView->SetItemsL( satTitle,
- *menuItems,
- menuActions,
- EFalse );
-
- // Hide list box.
- iSetUpMenuView->MakeListBoxVisible( EFalse );
-
- // Transfer ownership to CAknViewAppUi.
- AddViewL( iSetUpMenuView );
-
- iSetUpMenuView->SetAdapter( iAdapter );
- iActiveView = KSetUpMenuViewId;
-
- // satTitle, menuActions, menuItems
- CleanupStack::PopAndDestroy( satTitle );
- CleanupStack::PopAndDestroy( menuActions );
- CleanupStack::PopAndDestroy( menuItems );
- TFLOGSTRING( "CSatUiViewAppUi::CreateEmptyMenuL() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::SetAdapter
-// Sets the pointer to MSatUiAdapter object.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::SetAdapter(
- MSatUiAdapter* aAdapter )
- {
- iAdapter = aAdapter;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowWaitNoteL
-// Displays the wait note.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowWaitNoteL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowWaitNoteL() called" )
- if ( !iWaitNote )
- {
- iWaitNote = new(ELeave)CAknWaitDialog(
- (REINTERPRET_CAST(CEikDialog**,&iWaitNote)));
- iForegroundControl = iWaitNote;
- iWaitNote->ExecuteLD( R_SATUI_WAIT_NOTE );
- // iForegroundControl won't be clear until the wait dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- }
- TFLOGSTRING( "CSatUiViewAppUi::ShowWaitNoteL() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowWaitNoteWithoutDelayL
-// Displays the wait note without delay
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowWaitNoteWithoutDelayL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowWaitNoteWithoutDelayL() called" )
- if ( !iWaitNote )
- {
- iWaitNote = new(ELeave)CAknWaitDialog(
- (REINTERPRET_CAST(CEikDialog**,&iWaitNote)), ETrue );
- iForegroundControl = iWaitNote;
- iWaitNote->ExecuteLD( R_SATUI_WAIT_NOTE );
- // iForegroundControl won't be clear until the wait dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- }
- TFLOGSTRING( "CSatUiViewAppUi::ShowWaitNoteWithoutDelayL() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::StopShowWaitNote
-// Removes the wait note from the screen.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::StopShowWaitNote()
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopShowWaitNote() called" )
-
- if ( iNoteDialog )
- {
- iForegroundControl = NULL;
-
- TFLOGSTRING( "CSatUiViewAppUi::StopShowWaitNote() Closing \
- NoteDialog" )
- delete iNoteDialog;
- iNoteDialog = NULL;
- }
-
- if ( iWaitNote )
- {
- iForegroundControl = NULL;
-
- TFLOGSTRING( "CSatUiViewAppUi::StopShowWaitNote() Closing WaitNote" )
- // Process finished. The function was either ExecuteLD or RunLD.
- // This function call stops the execution of these function and
- // causes the deletion of object
- TInt err(0);
- TRAP( err, iWaitNote->ProcessFinishedL() )
- TFLOGSTRING2(" 2nd: iWaitNote: %x ", iWaitNote )
- TFLOGSTRING2( "TRAP: %d", err )
- // Delete the object just in case. Seems that above method does not
- // delete the object in some cases. e.g in very fast execution
- delete iWaitNote;
- iWaitNote = NULL;
- }
- if ( iBipWaitNote )
- {
- iForegroundControl = NULL;
-
- TFLOGSTRING( "CSatUiViewAppUi::StopShowWaitNote() Closing BIP note" )
- delete iBipWaitNote;
- iBipWaitNote = NULL;
- }
-
- if ( iPermanentNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopShowWaitNote() \
- iPermanentNote cleared" )
- // If iPermanentNote exists until wait note is stopped,
- // then dialog has been already removed.
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::StopShowWaitNote() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::BTSAPActivatedL
-// Check that if BT SAP connection activated.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TBool CSatUiViewAppUi::BTSAPActivatedL()
- {
-
- TFLOGSTRING( "CSatUiViewAppUi::BTSAPActivated() called" )
-
- TBool isActive( EFalse );
- FeatureManager::InitializeLibL();
- if ( FeatureManager::FeatureSupported( KFeatureIdBtSap ) )
- {
- TFLOGSTRING( "BTSAP is supported by ME" )
- TInt status( EBTSapNotConnected );
- TInt err = RProperty::Get( KPSUidBluetoothSapConnectionState,
- KBTSapConnectionState,
- status );
-
- if ( EBTSapNotConnected != status && !err )
- {
- TFLOGSTRING( "BTSAP is connected" )
- isActive = ETrue;
- }
- else
- {
- TFLOGSTRING3( "BTSAP status %d and error %d", status, err )
- }
- }
- else
- {
- TFLOGSTRING( "BTSAP is not supported by ME" )
- }
-
- FeatureManager::UnInitializeLib();
- TFLOGSTRING( "CSatUiViewAppUi::BTSAPActivated() exit" )
- return isActive;
-
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CoeEnv
-// Returns CoeEnv.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-CCoeEnv* CSatUiViewAppUi::CoeEnv()
- {
- return iCoeEnv;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::DisplayTextL
-// Displays the text in a note.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::DisplayTextL(
- const TDesC& aText,
- const TDesC& aSimApplicationName,
- CFbsBitmap* aIconBitmapDisplayText,
- const TBool aSelfExplanatoryIcon,
- const TBool aSustainedText,
- const TTimeIntervalSeconds aDuration,
- const TBool aWaitUserToClear )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL called" )
- StopShowWaitNote();
-
- TSatUiResponse response( ESatSuccess );
- iHighPriorityEvent = EFalse;
-
- // Indication immediate response TLV for Display Text during MT call,
- // if it is immediate response, close dialog, otherwise leave it alone.
- iImmediateRsp = aSustainedText;
- TFLOGSTRING2( "CSatUiViewAppUi::DisplayTextL immediate rsp: %d",
- iImmediateRsp )
-
- HBufC* header;
-
- if ( iHelp )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL iHelp ETrue" )
- header = StringLoader::LoadLC(
- R_QTN_SAT_HELP_HEADER, iCoeEnv );
- iHelp = EFalse;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL iHelp EFalse" )
- TFLOGSTRING2( "CSatUiViewAppUi::DisplayTextL length of \
- aSimApplicationName: %d", aSimApplicationName.Length() )
- if ( aSimApplicationName.Length() > 0 )
- {
- header = aSimApplicationName.AllocLC();
- }
- else
- {
- //Reads a resource string with memory allocation
- header = StringLoader::LoadLC( R_QTN_SAT_MESSAGE_HEADER, iCoeEnv );
- }
- }
-
- // Remove NULL characters from title
- RemoveNullCharacters( header );
-
- if ( aIconBitmapDisplayText )
- {
- //icon available use querydialog
- iDisplayTextIconDialog = CAknPopupForm::NewL();
- }
-
- CUserActivityManager* activityManager =
- CUserActivityManager::NewL( EPriorityNormal );
-
- CleanupStack::PushL( activityManager );
-
- // Duration handling:
- // If duration is given use that value for timeout.
- TTimeIntervalSeconds duration ( aDuration );
-
- // If user is expected to clear shown dialog and
- // duration is NOT given use 60s timeout.
- if ( aWaitUserToClear && !aDuration.Int() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL wait user to clear" )
- duration = TTimeIntervalSeconds( KNoResponseFromUserDelay );
- }
- // If user is NOT expected to clear shown dialog and
- // duration is NOT given use 3s timeout.
- else if ( !aDuration.Int() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL don't wait user \
- to clear" )
- duration = TTimeIntervalSeconds( KClearScreenDelay );
- }
-
- // If not sustained or Clear after delay requested start timer
- if ( !aSustainedText || aDuration.Int() || !aWaitUserToClear )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL No sustained text" )
- TFLOGSTRING2( "CSatUiViewAppUi::DisplayTextL duration: %d",
- duration.Int() )
-
- // If duration is given start timer which doesn't
- // care about user activity.
- if ( aDuration.Int() )
- {
- CreateCallBackTimerL( duration.Int() * KMicroSecondsInSecond,
- DelayCallback );
- }
- // Otherwise start timer which takes account user activity.
- else
- {
- User::ResetInactivityTime();
- activityManager->Start( duration,
- TCallBack( DispatchUserInactive, this ), 0 );
- }
- }
-
- TInt userResponse;
-
- if ( aIconBitmapDisplayText )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL have IconBitmap" )
- // Prepare dialog with icon
- iDisplayTextIconDialog->SetPopupFormType( EAknQuery );
- iDisplayTextIconDialog->PrepareLC( R_SATUI_MESSAGE_TEXT_ICON );
- iDisplayTextIconDialog->SetTitleL( *header );
-
- // Get richtext control
- CEikCaptionedControl* capControl =
- iDisplayTextIconDialog->GetControlByControlType
- ( EEikCtRichTextEditor );
- CCoeControl* coeControl = NULL;
- if ( capControl )
- {
- coeControl = capControl->iControl;
- }
- if ( !coeControl )
- {
- User::Leave( KErrUnknown );
- }
- CEikRichTextEditor* rtxtEditor =
- reinterpret_cast<CEikRichTextEditor*>( coeControl );
-
- if ( !aSelfExplanatoryIcon )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL not \
- SelfExplanatoryIcon" )
- // Not selfexplanatory icon, add text
- // Get font
- const CFont* logicalFont = AknLayoutUtils::FontFromId(
- EAknLogicalFontSecondaryFont );
-
- // Extract font information
- TFontSpec fontspec = logicalFont->FontSpecInTwips();
- TCharFormat charFormat( fontspec.iTypeface.iName,
- fontspec.iHeight );
-
- // Make the font to be anti-aliased
- TFontStyle style;
- style.SetBitmapType( EAntiAliasedGlyphBitmap );
- charFormat.iFontSpec.iFontStyle = style;
-
- // Set mask (which settings are set)
- TCharFormatMask charFormatMask;
- charFormatMask.SetAttrib( EAttColor );
- charFormatMask.SetAttrib( EAttFontTypeface );
- charFormatMask.SetAttrib( EAttFontHeight );
-
- // Apply settings
- rtxtEditor->RichText()->ApplyCharFormatL(
- charFormat, charFormatMask, 0, 0 );
-
- // One space between icon and text
- rtxtEditor->RichText()->InsertL( 0, KSatEmptySpace );
- rtxtEditor->RichText()->InsertL( 1, aText );
- }
-
- // Count icon size in twips
- CWsScreenDevice* device = CCoeEnv::Static()->ScreenDevice();
- TInt width = device->HorizontalPixelsToTwips(
- aIconBitmapDisplayText->SizeInPixels().iWidth );
- TInt height = device->VerticalPixelsToTwips(
- aIconBitmapDisplayText->SizeInPixels().iHeight );
- TSize twipsSize( width, height );
-
- // Create picture
- CSatUiMessageQueryIcon* picture = new( ELeave )
- CSatUiMessageQueryIcon( twipsSize, *aIconBitmapDisplayText );
- TPictureHeader pictureHeader;
- pictureHeader.iPicture = TSwizzle<CPicture>( picture );
- //Insert picture
- rtxtEditor->RichText()->InsertL( 0, pictureHeader );
- //Needed to show whole picture
- _LIT( KString, "\f\f\f");
- rtxtEditor->RichText()->InsertL( rtxtEditor->Text()->DocumentLength(),
- KString );
-
- // Set MSK same as LSK without any text causing the icon drawing
- iDisplayTextIconDialog->ButtonGroupContainer().SetCommandL(
- CEikButtonGroupContainer::EMiddleSoftkeyPosition, EAknSoftkeyOk,
- KSatEmptyDes );
- iForegroundControl = iDisplayTextIconDialog;
- userResponse = iDisplayTextIconDialog->RunLD();
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL don't have IconBitmap" )
- // Dialog without icon
- iDisplayTextDialog = new (ELeave) CAknMessageQueryDialog();
- iDisplayTextDialog->PrepareLC( R_SATUI_MESSAGE );
- iDisplayTextDialog->SetMessageTextL( aText );
- iDisplayTextDialog->QueryHeading()->SetTextL( *header );
-
- // Set MSK same as LSK without any text causing the icon drawing
- iDisplayTextDialog->ButtonGroupContainer().SetCommandL(
- CEikButtonGroupContainer::EMiddleSoftkeyPosition, EAknSoftkeyOk,
- KSatEmptyDes );
- iForegroundControl = iDisplayTextDialog;
- userResponse = iDisplayTextDialog->RunLD();
- }
- iForegroundControl = NULL;
-
- CleanupStack::PopAndDestroy( activityManager );
- CleanupStack::PopAndDestroy( header ); // header,activityManager
- // After duration call back timer is destroyed
- DestroyCallBackTimer();
-
- // If user is not expected to clear message used response is success
- // in timeout case.
- if ( userResponse
- || ( iNoteClearedAfterDelay && !aWaitUserToClear ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL successful response" )
- response = ESatSuccess;
- }
- else if ( iNoResponseFromUserAfterDelay ||
- ( aWaitUserToClear && iHighPriorityEvent ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL no user response" )
- // User did not close the text, closed by the timer or MT call
- response = ESatNoResponseFromUser;
- }
- else
- {
- if ( IsAppShutterRunning() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL satsession \
- terminated by user " )
- response = ESatSessionTerminatedByUser;
- iSessionTerminated = ETrue;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::DisplayTextL backward \
- requested by user " )
- response = ESatBackwardModeRequestedByUser;
- }
- }
-
- if ( iDisplayTextDialog )
- {
- iDisplayTextDialog = NULL;
- }
- if ( iDisplayTextIconDialog )
- {
- iDisplayTextIconDialog = NULL;
- }
-
- iNoteClearedAfterDelay = EFalse;
- iNoResponseFromUserAfterDelay = EFalse;
-
- ShowWaitNoteL();
-
- TFLOGSTRING2( "CSatUiViewAppUi::DisplayTextL exit, return: %d", response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ClearScreen
-// Displays yes/no confirmation query.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ClearScreen()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ClearScreen() called" )
-
- iNoteClearedAfterDelay = ETrue;
- CloseDialogs();
-
- TFLOGSTRING( "CSatUiViewAppUi::ClearScreen() exit" )
- }
-// ---------------------------------------------------------
-// CSatUiViewAppUi::GetYesNoL
-// Displays yes/no confirmation query.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::GetYesNoL(
- const TDesC& aText,
- const TSatCharacterSet aCharacterSet,
- TChar& aInkey,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory,
- TUint& aDuration,
- const TBool aImmediateDigitResponse )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL called" )
- TSatUiResponse response( ESatSuccess );
-
- StopShowWaitNote();
-
- CUserActivityManager* activityManager =
- CUserActivityManager::NewL( EPriorityNormal );
- CleanupStack::PushL( activityManager );
-
- // Start time for duration
- TTime startTime;
- iImmediateDigitResponse = aImmediateDigitResponse;
-
- TFLOGSTRING2( "CSatUiViewAppUi::GetYesNoL duration in 1/10 sec: %d",
- aDuration )
-
- // If duration is given use that value for timeout.
- // Start timer which doesn't care about user activity.
- if ( aDuration )
- {
- TInt duration ( 0 );
-
- TTimeIntervalMicroSeconds max32Bit(
- static_cast<TInt64>( K32TIntMaxValue ) );
- TTimeIntervalMicroSeconds durationInTenthOfSeconds(
- static_cast<TInt64>( aDuration ) );
- TTimeIntervalMicroSeconds durationInus(
- durationInTenthOfSeconds.Int64() * KMicroSecondsInTenthOfSecond );
-
- if ( durationInus > max32Bit )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL durationInus bigger \
- than max32Bit" )
- // since timers can only handle 32-bit values,
- // let's break the aDuration to smaller bits.
- // we break it here to 8 bits to fit in 32-bit value
- duration = durationInus.Int64() / KDivideByEight;
- iTimerRepeatOn = ETrue;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL durationInus less \
- than max32Bit" )
- duration = durationInus.Int64();
- }
-
- CreateCallBackTimerL( duration, DelayCallback );
- startTime.HomeTime();
- }
- // Otherwise start timer which takes account user activity.
- else
- {
- User::ResetInactivityTime();
- activityManager->Start(
- TTimeIntervalSeconds( KNoResponseFromUserDelay ),
- TCallBack( DispatchUserInactive, this ), 0 );
- }
-
- TInt resource( 0 );
-
- if ( aIconBitmap )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL iGetYesNoIconDialog" )
-
- if ( ESatYesNo == aCharacterSet )
- {
- resource = R_SATUI_CONFIRM_YES_NO_QUERY_WITH_ICON;
- }
- else
- {
- resource = R_SATUI_IMMEDIATE_DIGIT_NOTE_WITH_ICON;
- }
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL iGetYesNoDialog" )
-
- if ( ESatYesNo == aCharacterSet )
- {
- resource = R_SATUI_CONFIRM_YES_NO_QUERY;
- }
- else
- {
- resource = R_SATUI_IMMEDIATE_DIGIT_QUERY;
- }
- }
-
- TInt userResponse = RunQueryDialogL( resource , aText, aIconBitmap,
- aSelfExplanatory, EAknSoftkeyYes );
-
- iImmediateDigitResponse = EFalse;
-
- // set received immediate digit response
- aInkey = iKey;
- iKey = 0;
-
- if ( aDuration )
- {
- TTime endTime;
- endTime.HomeTime();
- TTimeIntervalMicroSeconds timeDifference( 0 );
- timeDifference = endTime.MicroSecondsFrom( startTime );
- aDuration = timeDifference.Int64() / KMicroSecondsInTenthOfSecond;
-
- // After duration call back timer is destroyed
- DestroyCallBackTimer();
- }
-
- CleanupStack::PopAndDestroy( activityManager );
-
- // Timeout
- if ( iNoResponseFromUserAfterDelay )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL no response from user" )
- response = ESatNoResponseFromUser;
- }
- // Cancel is pressed if immediate digit response without Yes/No
- else if ( !userResponse && ESatYesNo != aCharacterSet && !aInkey )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL backward request by user" )
- response = ESatBackwardModeRequestedByUser;
- }
- // Yes button is used
- else if ( userResponse && !aInkey)
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL button used" )
- aInkey = 1;
- }
- // No button is used
- else if ( !aInkey )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetYesNoL no button used" )
- aInkey = 0;
- }
-
- iNoResponseFromUserAfterDelay = EFalse;
-
- ShowWaitNoteL();
-
- TFLOGSTRING2( "CSatUiViewAppUi::GetYesNoL exit, return: %d", response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::GetInputL
-// Displays data query.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::GetInputL(
- const TDesC& aText,
- const TSatCharacterSet aCharacterSet,
- TDes& aInput,
- const TInt aMinLength,
- const TInt aMaxLength,
- const TBool aHideInput,
- const TBool aGetInkey,
- const CFbsBitmap* aIconBitmapGetInput,
- const TBool aSelfExplanatory,
- TUint& aDuration )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL called" )
- StopShowWaitNote();
-
- TSatUiResponse response( ESatSuccess );
-
- TPtrC textPtr( aText );
-
- TInt minLength( 0 );
- TInt maxLength( 1 );
-
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL aMinLength %d", aMinLength )
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL aMaxLength %d", aMaxLength )
- //lint -e{961} else block not needed, minLength initialized.
- if ( aMinLength <= KGetInputStringMaxSize && aMinLength > 0 )
- {
- minLength = aMinLength;
- }
- else if ( aMinLength > KGetInputStringMaxSize )
- {
- minLength = KGetInputStringMaxSize;
- }
-
- //lint -e{961} else block not needed, maxLength initialized.
- if ( aMaxLength < minLength )
- {
- maxLength = minLength;
- }
- else if ( aMaxLength <= KGetInputStringMaxSize && aMaxLength > 1 )
- {
- maxLength = aMaxLength;
- }
- else if ( aMaxLength > KGetInputStringMaxSize )
- {
- maxLength = KGetInputStringMaxSize;
- }
-
- HBufC* input = HBufC::NewLC( KGetInputStringMaxSize );
- TPtr inputPtr(input->Des());
-
- HBufC* textHolder = NULL;
-
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL aInput.Length %d",\
- aInput.Length() )
-
- if ( ( aInput.Length() >= minLength )
- && ( aInput.Length() <= maxLength ) )
- {
- inputPtr = aInput;
- }
-
- TInt userResponse;
-
- CUserActivityManager* activityManager =
- CUserActivityManager::NewL( EPriorityNormal );
-
- CleanupStack::PushL( activityManager );
-
- // Start time for timer
- TTime startTime;
-
- // If duration is given use that value for timeout.
- // Start timer which doesn't care about user activity.
- if ( aDuration && aGetInkey )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL duration in 1/10 sec: %d",
- aDuration )
-
- TInt duration ( 0 );
-
- TTimeIntervalMicroSeconds max32Bit(
- static_cast<TInt64>( K32TIntMaxValue ) );
- TTimeIntervalMicroSeconds durationInTenthOfSeconds(
- static_cast<TInt64>( aDuration ) );
- TTimeIntervalMicroSeconds durationInus(
- durationInTenthOfSeconds.Int64() * KMicroSecondsInTenthOfSecond );
-
- if ( durationInus > max32Bit )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL durationInus bigger \
- than max32Bit" )
- // since timers can only handle 32-bit values,
- // let's break the aDuration to smaller bits.
- // we break it here to 8 bits to fit in 32-bit value
- duration = durationInus.Int64() / KDivideByEight;
- iTimerRepeatOn = ETrue;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL durationInus less \
- than max32Bit" )
- duration = durationInus.Int64();
- }
-
- CreateCallBackTimerL( duration, DelayCallback );
- startTime.HomeTime();
- }
- // Otherwise start timer which takes account user activity.
- else
- {
- User::ResetInactivityTime();
- activityManager->Start(
- TTimeIntervalSeconds( KNoResponseFromUserDelay ),
- TCallBack( DispatchUserInactive, this ), 0 );
- }
-
- CEikImage* image = new(ELeave) CEikImage;
- CleanupStack::PushL( image );
-
- if ( aIconBitmapGetInput )
- {
- image->SetBitmap( aIconBitmapGetInput );
-
- // Create mask for icon bitmap
- CFbsBitmap* mask = new(ELeave) CFbsBitmap;
-
- TSize size = aIconBitmapGetInput->SizeInPixels();
- CleanupStack::PushL( mask );
- MakeGetInputBitmapMask( mask, size );
-
- image->SetMask( mask );
- CleanupStack::Pop( mask );
- }
-
- TInt resource( 0 );
- TInt textResource( 0 );
- // Query dialog
- iGetInputDialog = new (ELeave) CSatUiTextQueryDialog( inputPtr,
- CAknQueryDialog::ENoTone, minLength, maxLength );
- iForegroundControl = iGetInputDialog;
-
- if ( aCharacterSet == ESatDigitOnly )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL ESatDigitOnly" )
- if ( aText.Length() == 0 )
- {
- if ( aGetInkey )
- {
- textResource = R_TEXT_SIMATK_ENTER_NBR;
- }
- else
- {
- textResource = R_TEXT_SIMATK_ENTER_NBR_STRING;
- }
- }
-
- // Hidden digit as input
- if ( aHideInput )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL Hidden digit" )
- if ( aIconBitmapGetInput )
- {
- resource = R_SATUI_HIDDEN_NUMBER_QUERY_WITH_LABEL_AND_ICON;
- }
- else
- {
- resource = R_SATUI_HIDDEN_NUMBER_QUERY_WITHOUT_LABEL;
- }
- }
- // Normal number query
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL normal digit" )
- if ( aIconBitmapGetInput )
- {
- resource = R_SATUI_NUMBER_QUERY_WITH_LABEL_AND_ICON;
- }
- else
- {
- resource = R_SATUI_NUMBER_QUERY_WITHOUT_LABEL;
- }
- }
- }
-
- else // ESatCharSmsDefaultAlphabet or ESatCharUcs2Alphabet
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL ESatCharSmsDefaultAlphabet \
- or ESatCharUcs2Alphabet" )
- if ( aText.Length() == 0 )
- {
- if ( aGetInkey )
- {
- textResource = R_TEXT_SIMATK_ENTER_CHAR;
- }
- else
- {
- textResource = R_TEXT_SIMATK_ENTER_CHAR_STRING;
- }
- }
-
- if ( !aGetInkey )
- {
- iGetInputDialog->SetPredictiveTextInputPermitted( ETrue );
- }
-
- iGetInputDialog->SetMaxLength( maxLength );
-
- if ( aIconBitmapGetInput )
- {
- resource = R_SATUI_TEXT_QUERY_WITH_LABEL_AND_ICON;
- }
- else
- {
- resource = R_SATUI_TEXT_QUERY_WITHOUT_LABEL;
- }
- }
-
- // Read default text if sim doesn't provide text to dialog
- if ( aText.Length() == 0 )
- {
- // Reads a resource string with memory allocation
- // and pushes the string onto the cleanup stack.
- textHolder = StringLoader::LoadLC( textResource, iCoeEnv);
- textPtr.Set( *textHolder );
- }
-
- // Icon is used and command is get input
- if ( aIconBitmapGetInput )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL icon is used" )
- iGetInputDialog->PrepareLC( resource );
- if ( !aSelfExplanatory )
- {
- // Icon is not self-explanatory, show also text
- iGetInputDialog->SetPromptL( textPtr );
- }
- // Add icon to query
- iGetInputDialog->QueryHeading()->SetHeaderImageL( image );
- // Set MSK same as LSK without any text causing the icon drawing
- iGetInputDialog->ButtonGroupContainer().SetCommandL(
- CEikButtonGroupContainer::EMiddleSoftkeyPosition, EAknSoftkeyOk,
- KSatEmptyDes );
- userResponse = iGetInputDialog->RunLD();
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL userResponse is: %d",
- userResponse )
- }
- // No icon in use
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL icon isn't used" )
- iGetInputDialog->PrepareLC( resource );
- iGetInputDialog->SetPromptL( textPtr );
- // Set MSK same as LSK without any text causing the icon drawing
- iGetInputDialog->ButtonGroupContainer().SetCommandL(
- CEikButtonGroupContainer::EMiddleSoftkeyPosition, EAknSoftkeyOk,
- KSatEmptyDes );
- userResponse = iGetInputDialog->RunLD();
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL userResponse is: %d",
- userResponse )
- }
- iForegroundControl = NULL;
-
- if ( textHolder )
- {
- CleanupStack::PopAndDestroy( textHolder );
- }
-
- if ( aDuration && aGetInkey )
- {
- TTime endTime;
- endTime.HomeTime();
- TTimeIntervalMicroSeconds timeDifference( 0 );
- timeDifference = endTime.MicroSecondsFrom( startTime );
- aDuration = timeDifference.Int64() / KMicroSecondsInTenthOfSecond;
-
- // After duration call back timer is destroyed
- DestroyCallBackTimer();
- }
-
- CleanupStack::PopAndDestroy( image );
- CleanupStack::PopAndDestroy( activityManager ); // image, activityManager
- iGetInputDialog = NULL;
-
- if ( iNoResponseFromUserAfterDelay )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL no response from user" )
- response = ESatNoResponseFromUser;
- }
- else if ( userResponse )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL successful response" )
- if ( inputPtr.Length() )
- {
- aInput.Copy( inputPtr );
- }
- response = ESatSuccess;
- }
- else
- {
- if ( IsAppShutterRunning() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL satsession \
- terminated by user " )
- response = ESatSessionTerminatedByUser;
- iSessionTerminated = ETrue;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetInputL backward \
- requested by user " )
- response = ESatBackwardModeRequestedByUser;
- }
- }
-
- iNoResponseFromUserAfterDelay = EFalse;
-
- CleanupStack::PopAndDestroy( input ); // input
-
- ShowWaitNoteL();
-
- TFLOGSTRING2( "CSatUiViewAppUi::GetInputL exit, return: %d", response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::SetUpMenuL
-// Sets the parameters for SetUpMenu view and calls the method
-// from the CSatUiView class.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::SetUpMenuL(
- const TDesC& aText,
- const MDesCArray& aMenuItems,
- const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
- const CFbsBitmap* aIconBitmap,
- const CAknIconArray* aItemsIconArray,
- const TBool aSelfExplanatoryItems,
- const TBool aHelpIsAvailable )
- {
- TFLOGSTRING( "CSatUiViewAppUi::SetUpMenuL called" )
- StopShowWaitNote();
- TSatUiResponse response( ESatSuccess );
-
- delete iTitle;
- iTitle = NULL;
-
- delete iAppName;
- iAppName = NULL;
-
- TFLOGSTRING2( "CSatUiViewAppUi::SetUpMenuL length of aText %d", \
- aText.Length() )
- if ( aText.Length() > 0 )
- {
- iTitle = aText.AllocL();
- iAppName = aText.AllocL();
- }
- else
- {
- //Reads a resource string with memory allocation
- iTitle = StringLoader::LoadL( R_QTN_SAT_TITLE, iCoeEnv );
- }
-
- if ( iSetUpMenuFirst )
- {
- iSetUpMenuFirst = EFalse;
- iSetUpMenuView = CSatUiView::NewL( ETrue, this, EFalse );
-
- // transfer ownership to CAknViewAppUi:
- AddViewL( iSetUpMenuView );
-
- iSetUpMenuView->SetAdapter( iAdapter );
- }
-
- // Make list box visible.
- iSetUpMenuView->MakeListBoxVisible( ETrue );
-
- //set contextpane icon and item icons
- iSetUpMenuView->SetIconL( aIconBitmap );
- iSetUpMenuView->SetItemsIconL( aItemsIconArray, aSelfExplanatoryItems );
- iSetUpMenuView->SetTitle( iTitle );
-
- response = iSetUpMenuView->SetUpMenuL( iTitle, aMenuItems,
- aMenuItemNextActions, aHelpIsAvailable );
-
- iActiveView = KSetUpMenuViewId;
-
- // Reset counter for detecting possible loop in HandleForegroundEventL.
- iViewLoopCounter = 0;
-
- TFLOGSTRING2( "CSatUiViewAppUi::SetUpMenuL exit, return: %d", response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::HandleForegroundEventL
-// Called when satui is brought to foreground or put into
-// background
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::HandleForegroundEventL( TBool aForeground )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::HandleForegroundEventL called \
- value %d", aForeground )
-
- iForeground = aForeground;
-
- // Check whether it is only need to display a dialog.
- if ( iForeground && ( iForegroundControl || iCcNote ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleForegroundEventL \
- need to display a dialog" )
- if ( iForegroundControl && ForegroundAlive() )
- {
- iForegroundControl->SetFocus( ETrue, EDrawNow );
- }
- }
- // Check is it allowed to activate local view.
- // Removes possibility of view activation loop for example when
- // launching Browser.
- else if ( ViewActivationAllowed( aForeground, iActiveView ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleForegroundEventL \
- activate local view allowed" )
- TVwsViewId viewId;
- GetActiveViewId( viewId );
- TFLOGSTRING2( "CSatUiViewAppUi::HandleForegroundEventL called \
- appUid %x", viewId.iAppUid )
- TFLOGSTRING2( "CSatUiViewAppUi::HandleForegroundEventL called \
- viewUid %x", viewId.iViewUid )
-
- if( ( KUidSATUI != viewId.iAppUid ) ||
- ( ( KUidSATUI == viewId.iAppUid )
- && ( viewId.iViewUid != iActiveView ) ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleForegroundEventL \
- activate local view executing" )
- if ( KSetUpMenuViewId == iActiveView )
- {
- ActivateLocalViewL( KSetUpMenuViewId );
- }
- else
- {
- ActivateLocalViewL( KSelectItemViewId );
- }
- }
-
- }
- // Forwards event to the base class.
- CAknViewAppUi::HandleForegroundEventL( aForeground );
- TFLOGSTRING( "CSatUiViewAppUi::HandleForegroundEventL exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ViewActivationAllowed
-// Sets the parameters for SelectItem view and calls the method
-// from the CSatUiView class.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TBool CSatUiViewAppUi::ViewActivationAllowed( const TBool aForeground,
- const TUid aActiveView )
- {
-
- TFLOGSTRING( "CSatUiViewAppUi::ViewActivationAllowed called" )
- TBool activationAllowed( EFalse );
- // Value for detecting view activation loop.
- const TInt certainViewLoopCount( 6 );
-
- // Check for foreground event, background event,
- // foreground event, background event, ... sequence.
- if ( aForeground ^ iPreviousForeground )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ViewActivationAllowed \
- check foreground event" )
- iViewLoopCounter++;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ViewActivationAllowed \
- no foreground event" )
- iViewLoopCounter = 0;
- }
-
- // Store information is application in foreground or
- // in background for next evaluation round.
- iPreviousForeground = aForeground;
-
- // Check that there is no loop.
- if ( aForeground && aActiveView.iUid )
- {
- if ( iViewLoopCounter < certainViewLoopCount )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ViewActivationAllowed \
- there are loops" )
- activationAllowed = ETrue;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ViewActivationAllowed \
- no loop" )
- // Counter is reset in case of foreground event
- // because of background event does not draw anything.
- iViewLoopCounter = 0;
- }
-
- }
-
- if ( iDisplayTextDialog || iDisplayTextIconDialog )
- {
- activationAllowed = EFalse;
- }
-
- TFLOGSTRING2( "CSatUiViewAppUi::ViewActivationAllowed exit, return: %d",\
- activationAllowed )
- return activationAllowed;
-
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::SelectItemL
-// Sets the parameters for SelectItem view and calls the method
-// from the CSatUiView class.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::SelectItemL(
- const TDesC& aText,
- const MDesCArray& aMenuItems,
- const CArrayFixFlat<TSatAction>* aMenuItemNextActions,
- const TInt aDefaultItem,
- TUint8& aSelection,
- const CFbsBitmap* aIconBitmap,
- const CAknIconArray* aItemsIconArray,
- const TBool aSelfExplanatoryItems,
- const TBool aHelpIsAvailable )
- {
- TFLOGSTRING( "CSatUiViewAppUi::SelectItemL called" )
- StopShowWaitNote();
-
- TSatUiResponse response( ESatSuccess );
-
- delete iTitle;
- iTitle = NULL;
-
- TFLOGSTRING2( "CSatUiViewAppUi::SelectItemL length of aText %d",
- aText.Length() )
- if ( aText.Length() > 0 )
- {
- iTitle = aText.AllocL();
- }
- else if ( iAppName )
- {
- TFLOGSTRING( "CSatUiViewAppUi::SelectItemL there is appname" )
- iTitle = iAppName->AllocL();
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::SelectItemL read appname" )
- //Reads a resource string with memory allocation
- iTitle = StringLoader::LoadL( R_QTN_SAT_TITLE, iCoeEnv );
- }
-
- if ( iSelectItemFirst )
- {
- iSelectItemFirst = EFalse;
- iSelectItemView = CSatUiView::NewL( EFalse, this, EFalse );
-
- // transfer ownership to CAknViewAppUi:
- AddViewL( iSelectItemView );
- }
-
- iSelectItemPending = ETrue;
- iActiveView = KSelectItemViewId;
-
- //set contextpane icon and item icons
- iSelectItemView->SetIconL( aIconBitmap );
- iSelectItemView->SetItemsIconL( aItemsIconArray, aSelfExplanatoryItems );
- response = iSelectItemView->SelectItemL( iTitle, aMenuItems,
- aMenuItemNextActions, aDefaultItem, aSelection, aHelpIsAvailable );
-
- iSelectItemPending = EFalse;
-
- if ( iEndKeyPressed )
- {
- response = ESatSessionTerminatedByUser;
- }
-
- if ( response != ESatSessionTerminatedByUser )
- {
- ShowWaitNoteL();
- }
-
- TFLOGSTRING2( "CSatUiViewAppUi::SelectItemL exit, return: %d", response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::MatoPrepareComplete
-// Indicates success or failure.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::MatoPrepareComplete(TInt aError)
- {
- TFLOGSTRING( "CSatUiViewAppUi::MatoPrepareComplete called" )
- TFLOGSTRING2( "CSatUiViewAppUi::MatoPrepareComplete error %i", aError )
- if ( KErrNone == aError )
- {
- iPlayToneError = ESatSuccess;
-
- TTimeIntervalMicroSeconds zero( static_cast<TInt64>( 0 ) );
-
- iPlayer->SetPriority( KAudioPriorityLowLevel,
- STATIC_CAST( TMdaPriorityPreference, KAudioPrefConfirmation ) );
-
- iPlayer->SetRepeats( KMdaAudioToneRepeatForever, zero );
-
- iPlayer->Play();
- }
- else
- {
- iPlayToneError = ESatFailure;
- }
- TFLOGSTRING( "CSatUiViewAppUi::MatoPrepareComplete exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::MatoPlayComplete
-// Indicates success or failure.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::MatoPlayComplete( TInt aError )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MatoPlayComplete calling" )
- if ( KErrNone == aError && iPlayer )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MatoPlayComplete play" )
- iPlayer->Play();
- }
- else if ( iWait && iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MatoPlayComplete stop playing" )
- // Stops playing if error.
- iWait->AsyncStop();
- }
- TFLOGSTRING2( "CSatUiViewAppUi::MatoPlayComplete exit, error %i", aError )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::PlayStandardToneL
-// Plays Standard Tone. If needed displays the text in a note
-// while playing.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::PlayStandardToneL(
- const TDesC& aText,
- const TDesC8& aSequence,
- TTimeIntervalMicroSeconds aDuration,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory )
- {
- TFLOGSTRING( "CSatUiViewAppUi::PlayStandardToneL called" )
- StopShowWaitNote();
- // Delete timer just in case e.g. if DisplayText was on the screen
- DestroyCallBackTimer();
-
- iPermanentNote = NULL;
- iTimerRepeatOn = EFalse;
-
- TFLOGSTRING2( "CSatUiViewAppUi::PlayStandardToneL length of aText %i", \
- aText.Length() )
- if (aText.Length() != 0)
- {
- iPermanentNote = new (ELeave) CAknStaticNoteDialog();
- iPermanentNote->PrepareLC( R_SATUI_PERMANENT_NOTE );
-
- if ( ( !aSelfExplanatory ) || ( !aIconBitmap ) )
- {
- // Set text
- iPermanentNote->SetTextL( aText );
- }
-
- if ( aIconBitmap )
- {
- //Set image
- TFLOGSTRING( "CSatUiViewAppUi::PlayStandardToneL SetImage" )
- // Get scalable bitmap if available.
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iPermanentNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
-
- iForegroundControl = iPermanentNote;
- iPermanentNote->RunLD();
- iPermanentNote->DrawNow();
- iCoeEnv->WsSession().Flush();
- }
-
- iPlayer = CMdaAudioToneUtility::NewL(*this);
-
- TInt volume( iPlayer->MaxVolume() );
- iPlayer->SetVolume( volume );
- TFLOGSTRING2( "CSatUiViewAppUi::PlayStandardToneL SetVolume %d",
- volume )
-
- iPlayer->PrepareToPlayDesSequence( aSequence );
-
- TTimeIntervalMicroSeconds max32Bit(
- static_cast<TInt64>( K32TIntMaxValue ) );
-
- if ( aDuration > max32Bit )
- {
- // since timers can only handle 32-bit values,
- // let's break the aDuration to smaller bits.
- // we break it here to 8 bits to fit in 32-bit value
- aDuration = aDuration.Int64() / KDivideByEight;
- iTimerRepeatOn = ETrue;
- }
-
- CreateCallBackTimerL( I64INT( aDuration.Int64() ), DelayCallback );
-
- if ( !iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::PlayStandardToneL starting iWait" )
- iWait->Start();
- TFLOGSTRING( "CSatUiViewAppUi::PlayStandardToneL strarting done" )
- }
-
- iPlayer->CancelPlay();
-
- DestroyCallBackTimer();
-
- delete iPlayer;
- iPlayer = NULL;
-
- if ( iPermanentNote )
- {
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
- iForegroundControl = NULL;
-
- if ( !iEndKeyPressed )
- {
- ShowWaitNoteL();
- }
-
- //get warning and game tones setting from active profile
- GetProfileParamsL();
-
- if( ( EFalse == iWarningAndPlayTones ) &&
- ( ESatSuccess == iPlayToneError ) )
- {
- iPlayToneError = ESatSuccessToneNotPlayed;
- }
-
- TFLOGSTRING2( "CSatUiViewAppUi::PlayStandardToneL exit,return: %d", \
- iPlayToneError )
- return iPlayToneError;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ConfirmSendL
-// Displays a query to get confirmation for Send SMS,
-// Send SS or Send USSD command.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::ConfirmSendL(
- const TDesC& /* aText */,
- TBool& aActionAccepted,
- TInt aType)
- {
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmSendL called, aType: %d", \
- aType )
- HBufC* textHolder = NULL;
-
- switch ( aType )
- {
- case ESatUiConfirmSendSms:
- textHolder = StringLoader::LoadLC( R_TEXT_SIMATK_SEND_SMS,
- iCoeEnv );
- break;
- case ESatUiConfirmSendSs:
- case ESatUiConfirmSendUssd: //the same string for SS and USSD
- textHolder = StringLoader::LoadLC( R_TEXT_SIMATK_SEND_SS,
- iCoeEnv );
- break;
- default:
- return ESatFailure;
- }
-
- TInt userResponse = RunQueryDialogL( R_SATUI_CONFIRM_SEND_CANCEL_QUERY,
- *textHolder, NULL, EFalse, ESatUiSoftkeySend );
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmSendL userResponse: %d", \
- userResponse )
- if ( userResponse )
- {
- aActionAccepted = ETrue;
- }
- else
- {
- aActionAccepted = EFalse;
- }
-
- if ( textHolder )
- {
- CleanupStack::PopAndDestroy( textHolder ); //textHolder
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmSendL return ESatSuccess" )
- return ESatSuccess;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowSmsWaitNoteL
-// Displays a wait note to indicate SMS sending.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowSmsWaitNoteL( const TDesC& aText,
- const CFbsBitmap* aIconBitmapSendSM,
- const TBool aSelfExplanatoryIcon )
- {
-
- TFLOGSTRING( "CSatUiViewAppUi::ShowSmsWaitNoteL called" )
-
- iWaitNoteInUse = ETrue;
-
- TFLOGSTRING2( "CSatUiViewAppUi::ShowSmsWaitNoteL iWaitNote: %d", \
- iWaitNote )
- if ( NULL == iWaitNote )
- {
- iWaitNote = new(ELeave) CAknWaitDialog(
- ( REINTERPRET_CAST( CEikDialog**, &iWaitNote ) ), ETrue );
- iWaitNote->PrepareLC( R_SATUI_SMS_WAIT_NOTE );
-
- if ( ( aText.Length() > 0 ) && ( !aSelfExplanatoryIcon ||
- !aIconBitmapSendSM ) )
- {
- //Set text
- TFLOGSTRING( "CSatUiViewAppUi::ShowSmsWaitNoteL SetText" )
- iWaitNote->SetTextL( aText );
- }
-
- if ( aIconBitmapSendSM )
- {
- //Set image
- TFLOGSTRING( "CSatUiViewAppUi::ShowSmsWaitNoteL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmapSendSM );
- iWaitNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
-
- iForegroundControl = iWaitNote;
- iWaitNote->RunLD();
- // iForegroundControl won't be clear until the wait dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::ShowSmsWaitNoteL exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowSsWaitNoteL
-// Displays a wait note to indicate SS sending.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowSsWaitNoteL( const TDesC& aText,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatoryIcon )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowSsWaitNoteL called" )
-
- iWaitNoteInUse = ETrue;
-
- TFLOGSTRING2( "CSatUiViewAppUi::ShowSsWaitNoteL iWaitNote: %d", \
- iWaitNote )
- if ( !iWaitNote )
- {
- iWaitNote = new ( ELeave ) CSatUiWaitDialog(
- ( REINTERPRET_CAST ( CEikDialog**,&iWaitNote ) ),
- *iAdapter, ETrue );
- iForegroundControl = iWaitNote;
-
- TFLOGSTRING2( "CSatUiViewAppUi::ShowSsWaitNoteL length of aText: %d",\
- aText.Length() )
- // if there is an alpha id
- if ( aText.Length() > 0 )
- {
- // if there is not an icon or it's not self explanatory
- if ( ( !aSelfExplanatoryIcon ) || ( !aIconBitmap ) )
- {
- iWaitNote->SetTextL( aText );
- }
-
- if ( aIconBitmap )
- {
- //Set image
- TFLOGSTRING( "CSatUiViewAppUi::ShowSsWaitNoteL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iWaitNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
-
- iWaitNote->ExecuteLD( R_SATUI_SS_WAIT_NOTE );
- }
- else
- {
- iWaitNote->ExecuteLD( R_SATUI_REQUESTING_WAIT_NOTE );
- }
- // iForegroundControl won't be clear until the wait dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- }
- TFLOGSTRING( "CSatUiViewAppUi::ShowSsWaitNoteL exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowDtmfWaitNoteL
-// Shows a wait note while DTMF are being sent.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::ShowDtmfWaitNoteL( const TDesC& aText,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatoryIcon )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowDtmfWaitNoteL called" )
- TSatUiResponse response(ESatFailure);
-
- iWaitNoteInUse = ETrue;
-
- TFLOGSTRING2( "CSatUiViewAppUi::ShowDtmfWaitNoteL iWaitNote: %d", \
- iWaitNote )
- if ( !iWaitNote )
- {
- iWaitNote = new ( ELeave ) CSatUiWaitDialog(
- (REINTERPRET_CAST( CEikDialog**,&iWaitNote ) ), *iAdapter, ETrue );
-
- if ( ( aText.Length() > 0 ) &&
- ( ( !aSelfExplanatoryIcon ) || ( !aIconBitmap ) ) )
- {
- iWaitNote->SetTextL( aText );
- }
-
- if ( aIconBitmap )
- {
- //Set image
- TFLOGSTRING( "CSatUiViewAppUi::ShowDtmfWaitNoteL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iWaitNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
-
- iForegroundControl = iWaitNote;
- iWaitNote->ExecuteLD( R_SATUI_DTMF_WAIT_NOTE );
- // iForegroundControl won't be clear until the wait dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- response = ESatSuccess;
- }
- TFLOGSTRING2( "CSatUiViewAppUi::ShowDtmfWaitNoteL exit, return: %d",\
- response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ConfirmRefreshL
-// Displays a query to get confirmation Refresh command.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::ConfirmRefreshL(TBool& aActionAccepted)
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmRefreshL called" )
- StopShowWaitNote();
-
- TSatUiResponse response( ESatSuccess );
-
- HBufC* textHolder = NULL;
-
- textHolder = StringLoader::LoadLC( R_QTN_SAT_QUERY_ALLOW_RESET,
- iCoeEnv );
-
- TInt userResponse = RunQueryDialogL( R_SATUI_CONFIRM_OK_CANCEL_QUERY,
- *textHolder, NULL, EFalse, EAknSoftkeyOk );
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmRefreshL userResponse: %d", \
- userResponse )
- if ( userResponse )
- {
- aActionAccepted = ETrue;
- }
- else
- {
- aActionAccepted = EFalse;
- }
-
- if ( textHolder )
- {
- CleanupStack::PopAndDestroy( textHolder ); //textHolder
- }
-
- ShowWaitNoteL();
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmRefreshL exit, return: %d",\
- response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CallControlL
-// Displays info about call control to user
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::CallControlL(
- const TDesC& aText,
- const TSatAlphaIdStatus aAlphaIdStatus )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CallControlL called" )
-
- if ( !iCcNote )
- {
- iCcNote = CAknGlobalNote::NewL();
- }
- iCcNote->SetTone( CAknNoteDialog::ENoTone );
-
- if ( ESatAlphaIdNotNull == aAlphaIdStatus )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CallControlL AlphaIdNotNull" )
-
- // The note will be disabled by the phone UI when the call is
- // in connecting status. But call controll case is an exception, So we
- // use RAknKeyLock to enable soft notifications.
- RAknKeyLock keyLock;
- TInt errorCode = keyLock.Connect();
- TFLOGSTRING2( "CSatUiViewAppUi::CallControlL connect error %d", \
- errorCode )
- if ( KErrNone == errorCode )
- {
- keyLock.EnableSoftNotifications( ETrue );
- }
- keyLock.Close();
-
- iCcNote->SetSoftkeys( R_AVKON_SOFTKEYS_OK_EMPTY );
- iCcNoteId = iCcNote->ShowNoteL(
- EAknGlobalInformationNote, aText );
- CreateCallBackTimerL( K3Seconds, CloseCallControlNoteL );
- if ( iWait && !iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CallControlL iWait starting" )
- iWait->Start();
- }
- DestroyCallBackTimer();
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::CallControlL AlphaId Null" )
- iCcNote->ShowNoteL( EAknGlobalInformationNote, aText );
- }
-
- if ( iCcNote )
- {
- delete iCcNote;
- iCcNote = NULL;
- }
- TFLOGSTRING( "CSatUiViewAppUi::CallControlL exit" )
-
- return ESatSuccess;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::MoSmControlL
-// Displays info about Mo SM control to user
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::MoSmControlL(
- const TDesC& aText,
- const TSatAlphaIdStatus aAlphaIdStatus )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MoSmControlL called" )
- if ( ESatAlphaIdNotNull == aAlphaIdStatus )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MoSmControlL AlphaIdNotNull" )
- CAknNoteDialog* dialog = new (ELeave) CAknNoteDialog(
- REINTERPRET_CAST( CEikDialog**,&dialog ),
- CAknNoteDialog::ENoTone,
- CAknNoteDialog::ELongTimeout );
-
- dialog->PrepareLC( R_SATUI_MOSM_CONTROL_NOTE );
-
- dialog->SetTextL( aText );
-
- iForegroundControl = dialog;
- dialog->RunLD();
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::MoSmControlL AlphaId Null" )
- CAknNoteDialog* dialog = new (ELeave) CAknNoteDialog(
- REINTERPRET_CAST( CEikDialog**,&dialog ),
- CAknNoteDialog::ENoTone,
- CAknNoteDialog::ELongTimeout );
-
- dialog->PrepareLC( R_SATUI_INFORMATION_NOTE );
-
- dialog->SetTextL( aText );
-
- iForegroundControl = dialog;
- dialog->RunLD();
- }
- iForegroundControl = NULL;
- TFLOGSTRING( "CSatUiViewAppUi::MoSmControlL exit" )
- return ESatSuccess;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ConfirmLaunchBrowserL
-// Displays a query to get confirmation for Launch Browser
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ConfirmLaunchBrowserL(
- const TDesC& aText,
- TBool& aActionAccepted,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmLaunchBrowserL called" )
-
- TInt resource( 0 );
-
- if ( aIconBitmap )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmLaunchBrowserL icon" )
- resource = R_SATUI_CONFIRM_OK_CANCEL_QUERY_WITH_ICON;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmLaunchBrowserL no icon" )
- resource = R_SATUI_CONFIRM_OK_CANCEL_QUERY;
- }
-
- TInt userResponse = RunQueryDialogL( resource, aText, aIconBitmap,
- aSelfExplanatory, EAknSoftkeyOk );
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmLaunchBrowserL userResponse %d",\
- userResponse )
- if ( userResponse )
- {
- aActionAccepted = ETrue;
- }
- else
- {
- aActionAccepted = EFalse;
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmLaunchBrowserL exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::HandleCommandL
-// Called by CSatUiView::HandleCommandL.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::HandleCommandL(
- TInt aCommand )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::HandleCommandL called, aCommand: %d",\
- aCommand )
- switch ( aCommand )
- {
- case EEikCmdExit:
- {
- HandleExitCommandL();
- break;
- }
- case EAknCmdHelp:
- {
- //Show Series 60 Help
- HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
- AppHelpContextL() );
- break;
- }
- default:
- break;
- }
- TFLOGSTRING( "CSatUiViewAppUi::HandleCommandL exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::HandleExitCommandL
-// Handling of the exit softkey.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::HandleExitCommandL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL called" )
-
- if ( iBipWaitNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL iBipWaitNote" )
- SetCommandPending( EFalse );
- }
-
- if ( iWait )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL iWait " )
- if ( iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL \
- iWait->AsyncStop()" )
- iWait->AsyncStop();
- }
- }
-
- CloseDialogs();
-
- if ( iEndKeyPressed )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL endkeypressed" )
- // Inform SAT Server that end key has been pressed
- iAdapter->SessionTerminated( EEndKeyUsed );
- }
-
- if ( !iCommandPending )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL !iCommandPending" )
-
- if ( iPlayer && EMdaAudioToneUtilityPlaying == iPlayer->State() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL cancel playtone")
- iPlayer->CancelPlay();
- }
-
- if ( iAudioPlayer )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL cancel \
- userselected tone" )
- iAudioPlayer->Stop();
- delete iAudioPlayer;
- iAudioPlayer = NULL;
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL\
- iAudioPlayer deleted" )
- }
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL exiting AppUI ")
- Exit();
- }
- if ( iWaitNoteInUse )
- {
- iCommandPending = EFalse;
- }
- if ( iSelectItemPending && !iEndKeyPressed )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL SelectItem pending" )
- iSessionTerminated = ETrue;
- iSelectItemView->HandleCommandL( ESatUiCmdExit );
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::HandleExitCommandL exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::HandleWsEventL
-// Handling of the window server events.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::HandleWsEventL(
- const TWsEvent& aEvent,
- CCoeControl* aDestination )
- {
- switch ( aEvent.Type() )
- {
- // This is End key closing event. If this window server event is
- // received, by default application will be closed unless it is
- // the system application.
- case KAknUidValueEndKeyCloseEvent:
- {
- // Performs the same behaviour as when Exit softkey is pressed.
- TFLOGSTRING( "CSatUiViewAppUi::HandleWsEventL End key pressed" )
- iEndKeyPressed = ETrue;
- HandleExitCommandL();
- break;
- }
- case EEventPointer:
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleWsEventL EEventPointer" )
- const TPointerEvent& pointer = *( aEvent.Pointer() );
- const TPointerEvent::TType pointerType = pointer.iType;
-
- if ( ( TPointerEvent::EButton1Down == pointerType ) ||
- ( TPointerEvent::EButton2Down == pointerType ) ||
- ( TPointerEvent::EButton3Down == pointerType ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleWsEventL EEventPointer\
- handle the event" )
- // Check if we need to end play tone
- StopPlayToneL();
- }
- break;
- }
- case EEventKeyDown:
- {
- // Handles other user key presses
- TFLOGSTRING( "CSatUiViewAppUi::HandleWsEventL EEventKeyDown" )
- // Check if we need to end play tone
- StopPlayToneL();
- if ( iImmediateDigitResponse )
- {
- HandleImmediateDigitResponse( aEvent.Key()->iScanCode );
- }
- break;
- }
-
- default:
- break;
- }
- // Forwards event to the base class.
- CAknViewAppUi::HandleWsEventL( aEvent, aDestination );
- PriorityVerifyAndClose( aEvent );
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::HelpStatus
-// Help support status
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::HelpStatus( TBool aStatus )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HelpStatus calling" )
- iHelp = aStatus;
- TFLOGSTRING( "CSatUiViewAppUi::HelpStatus exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::DelayCallback
-// Delay Callback function. Completes after predefined
-// time has passed
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TInt CSatUiViewAppUi::DelayCallback( TAny* aPtr )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback calling" )
- if ( ((CSatUiViewAppUi* )aPtr)->iTimerRepeatOn )
- {
- if ( ((CSatUiViewAppUi* )aPtr)->iTimerRepeatCount++ == KDivideByEight )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 1" )
- if ( ((CSatUiViewAppUi* )aPtr)->iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 2" )
- ((CSatUiViewAppUi* )aPtr)->iWait->AsyncStop();
- }
- if ( ( ( CSatUiViewAppUi* ) aPtr )->iGetInputDialog ||
- ( ( CSatUiViewAppUi* ) aPtr )->iQueryDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 3" )
- ( ( CSatUiViewAppUi* ) aPtr )->
- iNoResponseFromUserAfterDelay = ETrue;
- ( ( CSatUiViewAppUi* ) aPtr )->CloseDialogs();
- }
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 4" )
- return ( ETrue );
- }
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 5" )
- if ( ((CSatUiViewAppUi* )aPtr)->iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 6" )
- ((CSatUiViewAppUi* )aPtr)->iWait->AsyncStop();
- }
- }
-
- // Close DisplayText dialog if clearing after delay is requested
- if ( ((CSatUiViewAppUi* )aPtr)->iDisplayTextDialog ||
- ((CSatUiViewAppUi* )aPtr)->iDisplayTextIconDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 7" )
- ( ( CSatUiViewAppUi* ) aPtr )->iNoResponseFromUserAfterDelay = ETrue;
- ( ( CSatUiViewAppUi* ) aPtr )->ClearScreen();
- }
- else if ( ( ( CSatUiViewAppUi* ) aPtr )->iGetInputDialog ||
- ( ( CSatUiViewAppUi* ) aPtr )->iQueryDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback -- 8" )
- ( ( CSatUiViewAppUi* ) aPtr )->iNoResponseFromUserAfterDelay = ETrue;
- ( ( CSatUiViewAppUi* ) aPtr )->CloseDialogs();
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::DelayCallback exiting" )
- return ( EFalse );
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CreateCallBackTimerLC
-// Creates a callback timer
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::CreateCallBackTimerL( const TInt aDelay,
- TInt (*aFunction)(TAny* aPtr) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CreateCallBackTimerLC called" )
- iTimerRepeatCount = 0;
- iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-
- if ( iTimerRepeatOn )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CreateCallBackTimerLC repeating" )
- iTimer->Start( aDelay, aDelay,
- TCallBack( aFunction, this ) );
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::CreateCallBackTimerLC \
- no repeating" )
- iTimer->Start( aDelay, KMicroSecondsInSecond,
- TCallBack( aFunction, this ) );
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::CreateCallBackTimerLC exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::DestroyCallBackTimer
-// Destroys the callback timer
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::DestroyCallBackTimer( )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DestroyCallBackTimer() called" )
- delete iTimer;
- iTimer = NULL;
- iTimerRepeatOn = EFalse;
- TFLOGSTRING( "CSatUiViewAppUi::DestroyCallBackTimer() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ProcessCommandParametersL
-// Takes care of external launching.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TBool CSatUiViewAppUi::ProcessCommandParametersL(
- TApaCommand aCommand,
- TFileName& aDocumentName,
- const TDesC8& aTail )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::ProcessCommandParametersL called,\
- aCommand: %d", aCommand )
- // TApaCommand is 0 for SIM originated opening and 2 for user originated
- // opening. Empty view is only needed for SIM originated opening.
- if ( EApaCommandOpen == aCommand )
- {
- // Creates empty view for commands without view.
- CreateEmptyMenuL();
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::ProcessCommandParametersL exit" )
- return CAknViewAppUi::ProcessCommandParametersL( aCommand, aDocumentName,
- aTail );
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::DispatchUserInactive
-// Called when user has been inactive for a pre-defined time period
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TInt CSatUiViewAppUi::DispatchUserInactive( TAny* aPtr )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DispatchUserInactive calling" )
- ((CSatUiViewAppUi* )aPtr)->iNoResponseFromUserAfterDelay = ETrue;
-
- //lint -e{961} else block not needed.
- if ( ( ( CSatUiViewAppUi* ) aPtr )->iDisplayTextDialog ||
- ( ( CSatUiViewAppUi* ) aPtr )->iDisplayTextIconDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DispatchUserInactive clear screen" )
- ( ( CSatUiViewAppUi* ) aPtr )->ClearScreen();
- }
- else if ( ( ( CSatUiViewAppUi* ) aPtr )->iQueryDialog ||
- ( (CSatUiViewAppUi* ) aPtr )->iGetInputDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DispatchUserInactive close dialog" )
- ( ( CSatUiViewAppUi* ) aPtr )->CloseDialogs();
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::DispatchUserInactive exiting" )
- return (EFalse);
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::MakeGetInputBitmapMask
-// Make a mask for get input icon
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::MakeGetInputBitmapMask( CFbsBitmap* aMask,
- TSize aSize ) const
- {
- TFLOGSTRING( "CSatUiViewAppUi::MakeGetInputBitmapMask calling" )
- TInt width = aSize.iWidth;
- TInt height = aSize.iHeight;
- aMask->Create( TSize( width, height ), EColor16M );
-
- TBitmapUtil bitmap1Util( aMask );
- // Begin manipulation with bitmap1Util, setting initial pixel to 0,0
- bitmap1Util.Begin( TPoint( 0,0 ) );
-
- // Make mask which covers whole icon
- for ( TInt y = 0; y < height; y++ )
- {
- for ( TInt x = 0; x < width; x++ )
- {
- bitmap1Util.SetPos( TPoint( x, y ) );
- bitmap1Util.SetPixel( 0x0000ff );
- }
- }
- bitmap1Util.End();
- TFLOGSTRING( "CSatUiViewAppUi::MakeGetInputBitmapMask exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::DispatchTimer
-// Dispatch iWait to action implementer.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::DispatchTimer( CActiveSchedulerWait& aWait )
- {
- TFLOGSTRING( "CSatUiViewAppUi::DispatchTimer calling" )
- iWait = &aWait;
- TFLOGSTRING( "CSatUiViewAppUi::DispatchTimer exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::GetEndKey
-// Get a flag which is indicating if end key is pressed.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TBool CSatUiViewAppUi::GetEndKey()
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetEndKey calling-exiting" )
- return iEndKeyPressed;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::SetEndKey
-// Set a flag which is indicating if end key is pressed.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::SetEndKey( TBool aValue )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::SetEndKey calling, aValue:%d", aValue )
- iEndKeyPressed = aValue;
- TFLOGSTRING( "CSatUiViewAppUi::SetEndKey exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::SetCommandPending
-// Set a flag which is indicating proactive command is pending.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::SetCommandPending( TBool aValue )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::SetCommandPending calling, aValue:%d", \
- aValue )
- iCommandPending = aValue;
- if ( aValue )
- {
- // Cancels a request to save RAM when higher than normal buffer size is
- // no longer required.
- CAknEnv::Static()->CancelWsBufferRequest( iReqWSBufferID );
- }
- TFLOGSTRING( "CSatUiViewAppUi::SetCommandPending exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CloseDialogs
-// Close all existing dialogs.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::CloseDialogs()
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() called" )
- if ( iWaitNote || iBipWaitNote || iNoteDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() StopShowWaitNote" )
- StopShowWaitNote();
- }
- if ( iDisplayTextDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() iDisplayTextDialog" )
- delete iDisplayTextDialog;
- iDisplayTextDialog = NULL;
- iImmediateRsp = EFalse;
- }
- if ( iDisplayTextIconDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() iDisplayTextIconDialog" )
- delete iDisplayTextIconDialog;
- iDisplayTextIconDialog = NULL;
- iImmediateRsp = EFalse;
- }
- if ( iGetInputDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() iGetInputDialog" )
- TRAP_IGNORE( iGetInputDialog->DismissQueryL() )
- iGetInputDialog = NULL;
- }
- if ( iQueryDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() iQueryDialog" )
- delete iQueryDialog;
- iQueryDialog = NULL;
- }
- if ( iPermanentNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() iPermanentNote" )
- // CAknNoteDialog has already performed deletion when user action.
- iPermanentNote = NULL;
- }
- TFLOGSTRING( "CSatUiViewAppUi::CloseDialogs() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::MapcInitComplete
-// Plays the tone.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::MapcInitComplete( TInt aError,
- const TTimeIntervalMicroSeconds& /*aDuration*/ )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcInitComplete called" )
- // Audio player is initialised, so if there is no error, we can start
- // playing the tone.
- if( KErrNone == aError )
- {
- const TInt volume( Max( 0, Min( iVolume,
- iAudioPlayer->MaxVolume() ) ) );
- TFLOGSTRING2( "CSatUiViewAppUi::\
- MapcInitComplete SetVolume %i", volume )
- // Set volume according Settings.
- iAudioPlayer->SetVolume( volume );
- iAudioPlayer->Play();
- TFLOGSTRING( "CSatUiViewAppUi::MapcInitComplete Play" )
- }
- else
- {
- // Otherwise, we delete the initialised audio player.
- if ( iAudioPlayer )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcInitComplete iAudioPlayer \
- true" )
- delete iAudioPlayer;
- iAudioPlayer = NULL;
- }
-
- // Remove also the note for play tone
- if ( iPermanentNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcInitComplete iPermanentNote \
- true" )
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
-
- // If there was a duration for play tone, stop waiting
- if ( iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcInitComplete stop iWait" )
- iWait->AsyncStop();
- }
-
- TFLOGSTRING2( "CSatUiViewAppUi::MapcInitComplete Error %i", aError )
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::MapcInitComplete exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::MapcPlayComplete
-// Deletes audio player after playing is completed.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::MapcPlayComplete( TInt aError )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcPlayComplete called" )
-
- // When playing is completed, deleting the audio player.
- if ( iAudioPlayer )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcPlayComplete delete iAudioPlayer" )
- delete iAudioPlayer;
- iAudioPlayer = NULL;
- }
- // Remove note after play has completed.
- if ( iPermanentNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::MapcPlayComplete ExitSleepingDialog" )
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
- // Show wait note only for samples that have duration, otherwise there is
- // chance that wait note is not stopped.
- if ( TTimeIntervalMicroSeconds( static_cast<TInt64>( 0 ) ) != iDuration )
- {
- // It does not affect for tone playing if wait note
- // is not able to show.
- TFLOGSTRING( "CSatUiViewAppUi::MapcPlayComplete ShowWaitNoteL" )
- TRAP_IGNORE( ShowWaitNoteL() )
- }
-
- TFLOGSTRING2( "CSatUiViewAppUi::MapcPlayComplete exit, error:%i", aError )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::PlayUserSelectedToneL
-// Plays user selected tone from active Profile.
-// If needed displays the text in a note while playing.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::PlayUserSelectedToneL(
- const TDesC& aText,
- TTimeIntervalMicroSeconds aDuration,
- TSatTone aTone,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory )
- {
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL called" )
- StopShowWaitNote();
- // Delete timer just in case e.g. if DisplayText was on the screen
- DestroyCallBackTimer();
-
- iPermanentNote = NULL;
- iDuration = aDuration;
-
- TFLOGSTRING2( "CSatUiViewAppUi::PlayUserSelectedToneL length of aText \
- %d", aText.Length() )
- if ( 0 != aText.Length() )
- {
- iPermanentNote = new (ELeave) CAknStaticNoteDialog();
- iPermanentNote->PrepareLC( R_SATUI_PERMANENT_NOTE );
-
- if ( ( !aSelfExplanatory ) || ( !aIconBitmap ) )
- {
- // Set text
- iPermanentNote->SetTextL( aText );
- }
-
- if ( aIconBitmap )
- {
- //Set image
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iPermanentNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
-
- iPermanentNote->SetTimeout( CAknNoteDialog::ENoTimeout );
- iForegroundControl = iPermanentNote;
- iPermanentNote->RunLD();
- }
-
- // If several messages/calls arrive during a small amount of time and if the
- // message received or incoming call tone is already being played we do not
- // restart it.
- if ( iAudioPlayer )
- {
- TFLOGSTRING( "CSatUiViewAppUi::\
- PlayUserSelectedToneL Error - already played" )
- return ESatFailure;
- }
-
- // This defines name for the current message alert or incoming call tone.
- TBuf<KMaxSoundFileLength> soundFileName;
- GetProfileParamsL( aTone, &soundFileName );
- // This defines the behaviour to be adopted by an
- // audio client if a higher priority client takes over the device.
- TInt mdaPriority( KAudioPrefIncomingCall );
- // This is used to resolve conflicts when more than one client tries to
- // access the same sound output device simultaneously.
- TInt audioPriority( KAudioPriorityPhoneCall );
-
- TFLOGSTRING2( "CSatUiViewAppUi::PlayUserSelectedToneL\
- Volume is %i ", iVolume )
-
- // Creates the audio player.
- iAudioPlayer = CMdaAudioPlayerUtility::NewFilePlayerL(
- soundFileName,
- *this,
- audioPriority,
- ( TMdaPriorityPreference ) mdaPriority );
-
- if ( TTimeIntervalMicroSeconds( static_cast<TInt64>( 0 ) ) != aDuration )
- {
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL duration not 0" )
- TTimeIntervalMicroSeconds max32Bit(
- static_cast<TInt64>( K32TIntMaxValue ) );
- if ( aDuration > max32Bit )
- {
- // Timers can only handle 32-bit values
- // and 64-bit value is received.
- // Let's break the aDuration to smaller bits.
- // Divided here by 8 to fit in 32-bit maxvalue.
- // Loops 8 times in DelayCallback to play tone
- // right duration.
- aDuration = aDuration.Int64() / KDivideByEight;
- iTimerRepeatOn = ETrue;
- }
- iAudioPlayer->SetRepeats( KSoundPlayerRepeatForever,
- TTimeIntervalMicroSeconds(
- static_cast<TInt64>( 0 ) ) );
- CreateCallBackTimerL( I64INT( aDuration.Int64() ), DelayCallback );
-
- if ( !iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL\
- starting iWait" )
- iWait->Start();
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL\
- strarting done" )
- }
-
- // Sample is played in forever loop for the duration.
- // After duration call back timers are destroyed
- DestroyCallBackTimer();
- // If player exists, stop playing and delete player. MapcPlayComplete
- // is not called because CallBackTimer stops the playing.
- if ( iAudioPlayer )
- {
- iAudioPlayer->Stop();
- delete iAudioPlayer;
- iAudioPlayer = NULL;
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL\
- iAudioPlayer deleted" )
- }
- // Remove note after play has completed.
- if ( iPermanentNote )
- {
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
- iForegroundControl = NULL;
-
- if ( !iEndKeyPressed )
- {
- ShowWaitNoteL();
- }
-
- }
- else
- {
- // If duration is zero then tone is played only once.
- // Playing duration is same as duration of the sample.
- iAudioPlayer->SetRepeats(
- 0, TTimeIntervalMicroSeconds( static_cast<TInt64>( 0 ) ) );
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL SetRepeats 0" )
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::PlayUserSelectedToneL exit" )
- if( EFalse == iWarningAndPlayTones )
- {
- return ESatSuccessToneNotPlayed;
- }
-
- return ESatSuccess;
- }
-
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ConfirmOpenChannelL
-// Displays a query to get confirmation for Open Channel command.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TSatUiResponse CSatUiViewAppUi::ConfirmOpenChannelL(
- const TDesC& aText,
- TBool& aActionAccepted,
- const CFbsBitmap* aIconBitmapOpenChannel,
- const TBool aSelfExplanatory )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmOpenChannelL called" )
-
- TSatUiResponse response( ESatSuccess );
- TInt resource( 0 );
- TPtrC textPtr( aText );
- HBufC* textHolder = NULL;
-
- if ( aIconBitmapOpenChannel )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmOpenChannelL have icon" )
- resource = R_SATUI_CONFIRM_OK_CANCEL_QUERY_WITH_ICON;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmOpenChannelL no icon" )
- resource = R_SATUI_CONFIRM_OK_CANCEL_QUERY;
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmOpenChannelL length of \
- aText %d", aText.Length() )
- if ( 0 == aText.Length() )
- {
- textHolder = StringLoader::LoadLC( R_QTN_SAT_CONF_OPEN_CHANNEL_BIP,
- iCoeEnv );
- textPtr.Set( *textHolder );
- }
- }
-
- TInt userResponse = RunQueryDialogL( resource, textPtr,
- aIconBitmapOpenChannel, aSelfExplanatory, EAknSoftkeyOk );
-
- if ( textHolder )
- {
- CleanupStack::PopAndDestroy( textHolder );
- }
-
- if ( userResponse )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmOpenChannelL action accepted" )
- aActionAccepted = ETrue;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmOpenChannelL action not \
- accepted" )
- aActionAccepted = EFalse;
- }
-
-
-
- ShowWaitNoteL();
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmOpenChannelL exit,return: %d",\
- response )
- return response;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowBIPNoteL
-// Displays the BIP note.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowBIPNoteL( TInt aCommand, const TDesC& aText,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL() called" )
- TFLOGSTRING2( "CSatUiViewAppUi::ShowBIPNoteL() aCommand: %d", aCommand )
-
- iWaitNoteInUse = ETrue;
- TBool showNote( EFalse );
- TInt resourceId( 0 );
- switch ( aCommand )
- {
- case ESendDataIdentier: // fall through
- case EReceiveDataIdentifier:
- {
- resourceId = R_SATUI_BIP_WAIT_NOTE;
- showNote = ETrue;
- break;
- }
- case ECloseChannelIdentifier:
- {
- HBufC* textHolder = StringLoader::LoadLC(
- R_QTN_SAT_CONF_CLOSE_CHANNEL_BIP, iCoeEnv );
-
- if ( !iNoteDialog )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL no NoteDialog" )
- iNoteDialog = new (ELeave) CAknNoteDialog(
- REINTERPRET_CAST( CEikDialog**, &iNoteDialog ),
- CAknNoteDialog::ENoTone,
- CAknNoteDialog::EShortTimeout );
-
- if ( aIconBitmap )
- {
- iNoteDialog->PrepareLC( R_SATUI_CLOSE_CHANNEL_ICON_NOTE );
- //Set image
- TFLOGSTRING(
- "CSatUiViewAppUi::ShowBIPNoteL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iNoteDialog->SetImageL( image );
- CleanupStack::Pop( image );
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL no Icon" )
- iNoteDialog->PrepareLC( R_SATUI_CLOSE_CHANNEL_NOTE );
- }
-
- // inform the user using received alpha id
- if ( ( aText.Length() > 0 ) &&
- ( !aSelfExplanatory || !aIconBitmap ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL using \
- received alpha id" )
- iNoteDialog->SetTextL( aText );
- }
- // inform the user using localized text
- else if ( aText.Length() == 0 )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL using \
- localized text" )
- iNoteDialog->SetTextL( *textHolder );
- }
-
- iForegroundControl = iNoteDialog;
- iNoteDialog->RunLD();
- // iForegroundControl won't be clear until the note dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- }
-
- CleanupStack::PopAndDestroy( textHolder ); // textHolder
-
- showNote = EFalse;
- break;
- }
- default:
- {
- showNote = EFalse;
- break;
- }
- }
- if ( showNote )
- {
-
- // First, stop normal wait note.
- if ( iWaitNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL() Closing WaitNote" )
- TRAP_IGNORE( iWaitNote->ProcessFinishedL() )
- iWaitNote = NULL;
- }
-
- if ( !iBipWaitNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL() no BipWaitNote" )
- iBipWaitNote = new ( ELeave ) CSatUiWaitDialog(
- (REINTERPRET_CAST(CEikDialog**,&iBipWaitNote)),
- *iAdapter, ETrue );
-
- if ( ( aText.Length() > 0 ) && ( !aSelfExplanatory ||
- !aIconBitmap ) )
- {
- iBipWaitNote->SetTextL( aText );
- }
-
- if ( aIconBitmap )
- {
- //Set image
- TFLOGSTRING(
- "CSatUiViewAppUi::ShowBIPNoteL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iBipWaitNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
-
- iForegroundControl = iBipWaitNote;
- iBipWaitNote->ExecuteLD( resourceId );
- // iForegroundControl won't be clear until the BipWait dialog
- // closed. It will avoid we lose the chance to set focus for
- // the wait dialog when the switch of foreground/background
- // happened.
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL() have BipWaitNote" )
- // BIP note already exists, update text if not with self
- // explanatory icon
- if ( ( aText.Length() > 0 ) &&
- ( !aSelfExplanatory || !aIconBitmap ) )
- {
- iBipWaitNote->SetTextL( aText );
- }
- else if ( aSelfExplanatory && aIconBitmap )
- {
- const TDesC emptyText( KNullDesC );
- iBipWaitNote->SetTextL( emptyText );
- }
- // BIP note already exists, update image
- if ( aIconBitmap )
- {
- //Set image
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL SetImage" )
- CEikImage* image = new ( ELeave ) CEikImage();
- CleanupStack::PushL( image );
- image->SetBitmap( aIconBitmap );
- iBipWaitNote->SetImageL( image );
- CleanupStack::Pop( image );
- }
- }
- }
- TFLOGSTRING( "CSatUiViewAppUi::ShowBIPNoteL() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::RemoveNullCharacters
-// Null characters are removed from text
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::RemoveNullCharacters( HBufC* aText )
- {
- TFLOGSTRING( "CSatUiViewAppUi::RemoveNullCharacters calling" )
- TPtr titleptr = aText->Des();
- TInt nullLocation( 0 );
- while ( ( nullLocation = titleptr.Locate( NULL ) ) >= 0 )
- {
- titleptr.Delete( nullLocation, 1 );
- }
- TFLOGSTRING( "CSatUiViewAppUi::RemoveNullCharacters exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ConfirmSetUpCallL
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ConfirmSetUpCallL(
- const TDesC& aText,
- const TDesC& aSimAppName,
- TBool& aActionAccepted,
- const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmSetUpCallL calling" )
-
- aActionAccepted = EFalse;
- TPtrC text( aText );
- HBufC* textHolder = NULL;
- HBufC* titleHolder = NULL;
- TInt resource( 0 );
-
- if ( aIconBitmap )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmSetUpCallL have icon" )
- resource = R_SATUI_CONFIRM_CALL_CANCEL_QUERY_WITH_ICON;
-
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmSetUpCallL no icon" )
- resource = R_SATUI_CONFIRM_CALL_CANCEL_QUERY;
-
- TFLOGSTRING2( "CSatUiViewAppUi::ConfirmSetUpCallL length of aText, \
- %d", aText.Length() )
- if ( aText.Length() == 0 )
- {
-
- if ( aSimAppName.Length() > 0 )
- {
- titleHolder = aSimAppName.AllocLC();
- }
- else
- {
- titleHolder = StringLoader::LoadLC( R_QTN_SAT_QUERY_TITLE,
- iCoeEnv );
- }
-
- textHolder = StringLoader::LoadLC( R_TEXT_CALL_SETUP_BY_SIMATK,
- *titleHolder, iCoeEnv );
-
- RemoveNullCharacters( textHolder );
-
- text.Set(*textHolder);
- }
- }
-
- TInt userResponse = RunQueryDialogL( resource, text, aIconBitmap,
- aSelfExplanatory, ESatUiSoftkeyCall );
-
- if ( textHolder )
- {
- CleanupStack::PopAndDestroy( textHolder ); //textHolder
- }
-
- if ( titleHolder )
- {
- CleanupStack::PopAndDestroy( titleHolder ); //titleHolder
- }
-
- if ( userResponse )
- {
- aActionAccepted = ETrue;
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::ConfirmSetUpCallL exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowNotAvailableNoteL
-// Show note indicating SAT is not available
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowNotAvailableNoteL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowNotAvailableNoteL() called" )
- CAknNoteDialog* noteDialog = new (ELeave) CAknNoteDialog(
- REINTERPRET_CAST(CEikDialog**,¬eDialog),
- CAknNoteDialog::ENoTone,
- CAknNoteDialog::ELongTimeout );
-
- HBufC* textHolder = StringLoader::LoadLC( R_QTN_SAT_SERVICES_NOT_AVAILABLE,
- iCoeEnv );
-
- noteDialog->PrepareLC( R_SATUI_INFORMATION_NOTE );
- noteDialog->SetTextL( *textHolder );
- iForegroundControl = noteDialog;
- noteDialog->RunLD();
- iForegroundControl = NULL;
-
- CleanupStack::PopAndDestroy( textHolder );
-
- TFLOGSTRING( "CSatUiViewAppUi::ShowNotAvailableNoteL() exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::RunQueryIconDialogL
-// Make and run note dialog with an icon
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TInt CSatUiViewAppUi::RunQueryDialogL(
- TInt aResourceId, const TDesC& aText, const CFbsBitmap* aIconBitmap,
- const TBool aSelfExplanatory, TInt aMskCommand )
- {
- TFLOGSTRING( "CSatUiViewAppUi::RunQueryDialogL called" )
- CEikImage* image = new(ELeave) CEikImage;
- CleanupStack::PushL( image );
- iQueryDialog = CAknQueryDialog::NewL();
- iQueryDialog->PrepareLC( aResourceId );
- TInt userResponse( 0 );
-
- if ( aIconBitmap )
- {
- TFLOGSTRING( "CSatUiViewAppUi::RunQueryDialogL set icon" )
- image->SetBitmap( aIconBitmap );
-
- // Create mask for icon bitmap
- CFbsBitmap* mask = new(ELeave) CFbsBitmap;
- TSize size = aIconBitmap->SizeInPixels();
- MakeGetInputBitmapMask( mask, size );
- image->SetMask( mask );
- // Add icon to query
- iQueryDialog->QueryHeading()->SetHeaderImageL( image );
- }
-
- if ( !aSelfExplanatory || !aIconBitmap )
- {
- TFLOGSTRING( "CSatUiViewAppUi::RunQueryDialogL set text" )
- TPtrC textPtr( aText );
- // Icon is not self-explanatory, show also text
- iQueryDialog->SetPromptL( textPtr );
- }
-
- // Set MSK same as LSK without any text causing the icon drawing
- iQueryDialog->ButtonGroupContainer().SetCommandL(
- CEikButtonGroupContainer::EMiddleSoftkeyPosition, aMskCommand,
- KSatEmptyDes );
- iForegroundControl = iQueryDialog;
- userResponse = iQueryDialog->RunLD();
- iForegroundControl = NULL;
- CleanupStack::PopAndDestroy( image ); // image
-
- iQueryDialog = NULL;
-
- TFLOGSTRING2( "CSatUiViewAppUi::RunQueryDialogL exit,return: %d", \
- userResponse )
- return userResponse;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CloseSatUI
-// Start SatUi closing process
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::CloseSatUI()
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseSatUI called" )
-
- TRAP_IGNORE( HandleExitCommandL() );
-
- if ( !IsAppShutterRunning() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseSatUI RunAppShutter" )
- RunAppShutter();
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::CloseSatUI exit" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::GetProfileParamsL
-// Get and store settings from current profile
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::GetProfileParamsL( TSatTone aTone /*= ESatToneNotSet*/,
- TDes* aToneName /*= NULL*/ )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetProfileParamsL calling" )
-
- MProfile* profile = NULL;
- MProfileEngine* engine = NULL;
-
- engine = CreateProfileEngineL();
- CleanupReleasePushL( *engine );
-
- profile = engine->ActiveProfileLC();
-
- const MProfileTones& tones = profile->ProfileTones();
-
- // Takes a current warning and gametones setting.
- const TProfileToneSettings& ts = tones.ToneSettings();
- iWarningAndPlayTones = ts.iWarningAndGameTones;
- iVolume = ts.iRingingVolume;
- TFLOGSTRING2( "CSatUiViewAppUi::GetProfileParamsL \
- iVolume before mapping %d", iVolume )
-
- // Max volume from profile is KMaxVolumeFromProfile, Max volume from
- // CMdaAudioToneUtility is different, maybe 10,000. So,
- // rate = maxVolumeFromPlayer / KMaxVolumeFromProfile
- // User may never hear the TONE, because volume is too small.
- // iVolume times the rate make it can be heard.
-
- CMdaAudioToneUtility* toneUtl = CMdaAudioToneUtility::NewL( *this );
- TInt maxVolumeFromPlayer( toneUtl->MaxVolume() );
- iVolume *= maxVolumeFromPlayer / KMaxVolumeFromProfile;
- delete toneUtl;
- toneUtl = NULL;
- TFLOGSTRING2( "CSatUiViewAppUi::GetProfileParamsL \
- iVolume after mapping %d", iVolume )
-
- if ( ( ESatUserSelectedToneIncomingSms == aTone ) && ( aToneName ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetProfileParamsL message tone" )
- aToneName->Copy( tones.MessageAlertTone() );
- }
- else if( aToneName )
- {
- TFLOGSTRING( "CSatUiViewAppUi::GetProfileParamsL ring tone" )
- aToneName->Copy( tones.RingingTone1() );
- }
-
- CleanupStack::PopAndDestroy( 2 ); // engine, profile
-
- TFLOGSTRING( "CSatUiViewAppUi::GetProfileParamsL exits" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::HandleImmediateDigitResponse
-// Check received key event.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::HandleImmediateDigitResponse( TInt aScanCode )
- {
- TFLOGSTRING2( "CSatUiViewAppUi::HandleImmediateDigitResponse() code: %d",
- aScanCode )
- TBool closeDialog( ETrue );
-
- // If number button is pressed
- if ( ( KKeyZero <= aScanCode ) && ( KKeyNine >= aScanCode ) )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleImmediateDigitResponse press \
- digit 0-9" )
- iKey = aScanCode;
- }
- else if ( EStdKeyNkpAsterisk == aScanCode || KHwAsterisk == aScanCode )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleImmediateDigitResponse press \
- *" )
- iKey = 0x2A;
- }
- else if ( EStdKeyHash == aScanCode )
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleImmediateDigitResponse press \
- #" )
- iKey = 0x23;
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::HandleImmediateDigitResponse press \
- others" )
- closeDialog = EFalse;
- iKey = 0x00;
- }
-
- if( closeDialog )
- {
- CloseDialogs();
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::HandleImmediateDigitResponse exits" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::PriorityVerifyAndClose
-// Handle closing display text in high priority events
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::PriorityVerifyAndClose( const TWsEvent& aEvent )
- {
- TFLOGSTRING( "CSatUiViewAppUi::PriorityVerifyAndClose calling" )
-
- if ( ( iDisplayTextDialog || iDisplayTextIconDialog ) &&
- ( EEventFocusLost == aEvent.Type() ) )
- {
- // Open the WS server session.
- RWsSession wsSession;
- if ( KErrNone == wsSession.Connect() )
- {
- TInt wgFocus( wsSession.GetFocusWindowGroup() );
- TInt wgPriority(
- wsSession.GetWindowGroupOrdinalPriority( wgFocus ) );
- TFLOGSTRING2(
- "CSatUiViewAppUi::PriorityVerifyAndClose priority=%d",
- wgPriority )
-
- // For some reason window group priority for call dialogs was 0
- // so those cases must be checked in addition
- TInt callActiveState = EPSCTsyCallStateNone;
-
- // Get current call status from P&S
- const TInt errCode( RProperty::Get(
- KPSUidCtsyCallInformation,
- KCTsyCallState,
- callActiveState ) );
-
- // Receiving MT or creating MO call
- const TBool callIncoming(
- ( EPSCTsyCallStateAlerting == callActiveState ) ||
- ( EPSCTsyCallStateRinging == callActiveState ) ||
- ( EPSCTsyCallStateDialling == callActiveState ) );
- TFLOGSTRING2(
- "CSatUiViewAppUi::PriorityVerifyAndClose callActiveState=%d",
- callActiveState )
- TFLOGSTRING2(
- "CSatUiViewAppUi::PriorityVerifyAndClose iImmediateRsp=%d",
- iImmediateRsp )
-
- // If the new focus window group has high priority
- // close dialog
- if ( ( wgPriority > 0 && iForeground ) ||
- ( iImmediateRsp && callIncoming ) )
- {
- iHighPriorityEvent = ETrue;
- CloseDialogs();
- }
-
- wsSession.Close();
- }
- }
-
- TFLOGSTRING( "CSatUiViewAppUi::PriorityVerifyAndClose exiting" )
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::CloseCallControlNote
-// Call back method, close the note in call control.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TInt CSatUiViewAppUi::CloseCallControlNoteL( TAny* aPtr )
- {
- TFLOGSTRING( "CSatUiViewAppUi::CloseCallControlNote calling" )
-
- if ( !aPtr )
- {
- return KErrArgument;
- }
-
- CSatUiViewAppUi* pAppUi =
- reinterpret_cast<CSatUiViewAppUi*>( aPtr );
-
- TRAPD( err, pAppUi->iCcNote->CancelNoteL( pAppUi->iCcNoteId ) );
- if( KErrNone != err )
- {
- return err;
- }
-
- if ( pAppUi->iWait->IsStarted() )
- {
- pAppUi->iWait->AsyncStop();
- }
- delete pAppUi->iCcNote;
- pAppUi->iCcNote = NULL;
-
- TFLOGSTRING( "CSatUiViewAppUi::CloseCallControlNote exiting" )
-
- return 0;
- }
-
-// ---------------------------------------------------------
-// CSatUiViewAppUi::ShowSsErrorNoteL
-// Show a Ss Error note.
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CSatUiViewAppUi::ShowSsErrorNoteL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ShowSsErrorNoteL calling" )
- CAknNoteDialog* errorNote = new ( ELeave ) CAknNoteDialog(
- REINTERPRET_CAST( CEikDialog**,&errorNote ),
- CAknNoteDialog::ENoTone,
- CAknNoteDialog::ELongTimeout );
- CleanupStack::PushL( errorNote );
-
- HBufC* textHolder = StringLoader::LoadLC(R_TEXT_NOT_DONE, iCoeEnv );
- errorNote->SetTextL( *textHolder );
- CleanupStack::PopAndDestroy( textHolder );
- CleanupStack::Pop( errorNote );
- errorNote->ExecuteLD( R_SATUI_INFORMATION_NOTE );
-
- TFLOGSTRING( "CSatUiViewAppUi::ShowSsErrorNoteL exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatUiViewAppUi::ProfileState
-// Return current profile state
-// -----------------------------------------------------------------------------
-//
-TInt CSatUiViewAppUi::ProfileState()
- {
- TFLOGSTRING( "CSatUiViewAppUi::ProfileState called" )
-
- TInt profileId( 0 );
- CRepository* cr ( NULL );
-
- TRAPD( err, cr = CRepository::NewL( KCRUidProfileEngine ) );
- if ( ( KErrNone == err ) && cr )
- {
- TFLOGSTRING( "CSatUiViewAppUi::ProfileState no err" )
- // Get the ID of the currently active profile:
- cr->Get( KProEngActiveProfile, profileId );
- delete cr;
- }
-
- else
- {
- TFLOGSTRING2( "CR failed: %i", err )
- }
-
- TFLOGSTRING2( "CSatUiViewAppUi::ProfileState exit value: %d",
- profileId )
-
- return profileId;
- }
-// -----------------------------------------------------------------------------
-// CSatUiViewAppUi::StopPlayToneL
-// Stops playing play tone. Used when user terminates play tone
-// -----------------------------------------------------------------------------
-//
-void CSatUiViewAppUi::StopPlayToneL()
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL called" )
- if ( iPlayer && iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL\
- iPlayer exists" )
- iPlayToneError = ESatSessionTerminatedByUser;
- iWait->AsyncStop();
- }
- if ( iAudioPlayer )
- {
- TFLOGSTRING( "StopPlayToneL iAudioPlayer exists" )
- if ( iWait->IsStarted() )
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL\
- iWait started" )
- // Remove note when play has been interrupted.
- if ( iPermanentNote )
- {
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
- iPlayToneError = ESatSessionTerminatedByUser;
- iWait->AsyncStop();
- }
- else
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL\
- iWait not started" )
- iAudioPlayer->Stop();
- // When playing is stopped, deleting the audio player.
- // MapcPlayComplete is not called because user stops
- // the playing.
- if ( iAudioPlayer )
- {
- delete iAudioPlayer;
- iAudioPlayer = NULL;
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL\
- iAudioPlayer deleted" )
-
- // Remove note after play has completed.
- if ( iPermanentNote )
- {
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL\
- iPermanentNote true" )
- iPermanentNote->ExitSleepingDialog();
- delete iPermanentNote;
- iPermanentNote = NULL;
- }
-
- // Show wait note only for samples that have
- // duration, otherwise there is chance that wait
- // note is not stopped.
- if ( TTimeIntervalMicroSeconds(
- static_cast<TInt64>( 0 ) ) != iDuration )
- {
- ShowWaitNoteL();
- }
- }
- }
- }
- TFLOGSTRING( "CSatUiViewAppUi::StopPlayToneL exiting" )
- }
-
-// -----------------------------------------------------------------------------
-// CSatUiViewAppUi::ForegroundAlive
-// Check if foreground control is alive when HandleForegroundEventL is called.
-// -----------------------------------------------------------------------------
-//
-TBool CSatUiViewAppUi::ForegroundAlive() const
- {
- TFLOGSTRING( "CSatUiViewAppUi::ForegroundAlive called" )
-
- // Only if value of iForegroundControl equals to one of the following 8
- // pointers, the alive value will be set to true. This will check if
- // the foreground control is alive.
- TBool alive =
- iForegroundControl == static_cast<CCoeControl*>( iWaitNote )
- || iForegroundControl == static_cast<CCoeControl*>(
- iDisplayTextIconDialog )
- || iForegroundControl == static_cast<CCoeControl*>(
- iDisplayTextDialog )
- || iForegroundControl == static_cast<CCoeControl*>( iGetInputDialog )
- || iForegroundControl == static_cast<CCoeControl*>( iPermanentNote )
- || iForegroundControl == static_cast<CCoeControl*>( iNoteDialog )
- || iForegroundControl == static_cast<CCoeControl*>( iBipWaitNote )
- || iForegroundControl == static_cast<CCoeControl*>( iQueryDialog );
-
- TFLOGSTRING2( "CSatUiViewAppUi::ForegroundAlive exiting alive=%d", alive )
-
- return alive;
- }
-
-// End of File