--- a/phoneapp/phoneui/src/cphoneappui.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/phoneui/src/cphoneappui.cpp Tue May 25 12:41:50 2010 +0300
@@ -35,7 +35,6 @@
#include <AknsConstants.h> // KAknsMessageSkinChange
#include <bautils.h>
#include <StringLoader.h>
-#include <aknsoundsystem.h>
#include <aknnotewrappers.h> // for Notification for startup...
#include <eikbtgpc.h>
#include <eiksoftkeyimage.h> // EikSoftkeyImage
@@ -129,10 +128,6 @@
iEnvChangeNotifier->Start();
- // Push key sounds to sound system.
- CAknKeySoundSystem* keySounds = KeySounds();
- keySounds->PushContextL( R_PHONEUI_DEFAULT_SKEY_LIST );
-
iPhoneViewController = CPhoneViewController::NewL( ClientRect() );
iPhoneUIController = CPhoneUIController::NewL( *iPhoneViewController );
--- a/phoneapp/phoneuicontrol/src/cphonestateincall.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestateincall.cpp Tue May 25 12:41:50 2010 +0300
@@ -300,8 +300,6 @@
// Remove call
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
- //Make sure that toolbar is not shown
- iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
BeginUiUpdateLC();
SetDefaultFlagsL();
if ( IsNumberEntryUsedL() )
@@ -363,6 +361,9 @@
// Go to idle state
iStateMachine->ChangeState( EPhoneStateIdle );
+
+ //Make sure that toolbar is not shown
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
}
// -----------------------------------------------------------
--- a/phoneapp/phoneuistates/src/cphoneemergency.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneemergency.cpp Tue May 25 12:41:50 2010 +0300
@@ -218,6 +218,8 @@
if ( aCallId == KEmergencyCallId )
{
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
+ // Make sure that toolbar is not shown any more
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar );
// Remove emergency connecting note if still there
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote );
// Close menu bar, if it is displayed
@@ -338,6 +340,14 @@
// Close menu bar, if it is displayed
iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
+ // Dim toolbar items
+ SetToolbarDimming( ETrue );
+
+ // Request that dimmed toolbar is visible.
+ // Do it already here. Otherwice a white/black toolbar area is shortly shown and
+ // a white screen can be a result when touching it.
+ iViewCommandHandle->HandleCommandL( EPhoneViewShowToolbar );
+
// Disable global notes when the phone is dialling
TPhoneCmdParamBoolean globalNotifierParam;
globalNotifierParam.SetBoolean( ETrue );
@@ -381,8 +391,6 @@
SetTouchPaneButtons( EPhoneEmergencyCallButtons );
- SetToolbarDimming( ETrue );
-
ShowNoteL( EPhoneEmergencyConnectWaitNote );
UpdateSetupCbaL();
--- a/phoneapp/phoneuiview/src/cphoneviewcontroller.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/phoneuiview/src/cphoneviewcontroller.cpp Tue May 25 12:41:50 2010 +0300
@@ -142,6 +142,8 @@
const TInt KTouchDialerOpenEffect = 3;
const TInt KTouchDialerCloseEffect = 5;
+const TInt KDialerInputMaxChars( 100 );
+
// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------------------------
@@ -178,6 +180,8 @@
// Reserve the title pane
iStatusPane->AddTitlePaneHandlerL( *this );
iStatusPane->ReserveTitlePane( *this );
+ // Set status pane dimming
+ iStatusPane->StatusPane().SetDimmed( iSecurityMode );
iAppui = (CAknAppUi*)iEikEnv.EikAppUi();
iCba = iEikEnv.AppUiFactory()->Cba();
@@ -2167,12 +2171,39 @@
iMenuController->SetSecurityMode( aIsEnabled );
if ( iDialer )
{
- iDialerController->SetRestrictedDialer( aIsEnabled );
+ CDialingExtensionInterface* easyDialing = iDialer->GetEasyDialingInterface();
+ if ( easyDialing )
+ {
+ if ( aIsEnabled )
+ {
+ // Reset the Easy Dialing just in case, this clears the existing matches
+ // when restricted mode is activated
+ easyDialing->Reset();
+ }
+ else
+ {
+ if ( easyDialing->IsEnabled() )
+ {
+ // If Easy Dialing is enabled, set the input from the numeric entry
+ // field for updating the search result when restricted mode is
+ // deactivated.
+ TBuf<KDialerInputMaxChars> buf;
+ iDialer->NumberEntry()->GetTextFromNumberEntry( buf );
+ easyDialing->SetInputL( buf );
+ }
+ }
+ }
+ iDialerController->SetRestrictedDialer( aIsEnabled );
if ( iSecurityMode != aIsEnabled )
{
iDialer->RelayoutAndDraw();
}
}
+ if ( iSecurityMode != aIsEnabled )
+ {
+ // Update status pane dimming
+ iStatusPane->StatusPane().SetDimmed( aIsEnabled );
+ }
iSecurityMode = aIsEnabled;
}
@@ -3623,53 +3654,32 @@
__LOGMETHODSTARTEND(EPhoneUIView,
"CPhoneViewController::SwitchLayoutToFlatStatusPaneL()" );
- TInt currentLayout = iStatusPane->StatusPane().CurrentLayoutResId();
-
if ( aSwitch )
{
- // If current layout is different than flat layout then we
- // need to do PushDefault for navipane and SwitchLayoutL for
- // statuspane.
- if ( currentLayout != R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ||
- currentLayout != R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT )
+ SwapEmptyIndicatorPaneInSecureStateL( ETrue );
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
{
- SwapEmptyIndicatorPaneInSecureStateL( ETrue );
-
- // Push default so that Operator name can be shown in title pane.
- iStatusPane->NaviPane().PushDefaultL();
-
- if ( !Layout_Meta_Data::IsLandscapeOrientation() )
- {
- iStatusPane->StatusPane().SwitchLayoutL
- ( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
- }
- else
- {
- iStatusPane->StatusPane().SwitchLayoutL
- ( R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT );
- }
+ iStatusPane->StatusPane().SwitchLayoutL
+ ( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ }
+ else
+ {
+ iStatusPane->StatusPane().SwitchLayoutL
+ ( R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT );
}
}
else
{
- // If current layout is flat layout then do Pop for navipane,
- // layout is something else there is no need to do Pop and
- // SwitchLayoutL for statuspane.
- if ( currentLayout == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ||
- currentLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT )
+ SwapEmptyIndicatorPaneInSecureStateL( EFalse );
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
{
- SwapEmptyIndicatorPaneInSecureStateL( EFalse );
-
- if ( !Layout_Meta_Data::IsLandscapeOrientation() )
- {
- iStatusPane->StatusPane().SwitchLayoutL
- ( R_AVKON_STATUS_PANE_LAYOUT_IDLE );
- }
- else
- {
- iStatusPane->StatusPane().SwitchLayoutL
- ( R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT );
- }
+ iStatusPane->StatusPane().SwitchLayoutL
+ ( R_AVKON_STATUS_PANE_LAYOUT_IDLE );
+ }
+ else
+ {
+ iStatusPane->StatusPane().SwitchLayoutL
+ ( R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT );
}
}
// ApplyCurrentSettingsL is called whenever statuspane
@@ -3786,9 +3796,6 @@
{
iDialerActive = ETrue;
- // Hide in-call view toolbar
- iToolbarController->HideToolbar();
-
// Ensure that toolbar and menu commands are up-to-date
TBuf<1> temp; // we are only interested if the text is empty or not
iDialer->GetTextFromNumberEntry( temp );
@@ -3798,23 +3805,27 @@
iDialerView->DrawableWindow()->SetOrdinalPosition(
iPhoneView->DrawableWindow()->OrdinalPosition() );
+ // Hide in-call view toolbar
+ iToolbarController->HideToolbar();
+
SwitchLayoutToFlatStatusPaneL( ETrue );
+ // Don't make dialer view visible before status pane is updated.
+ // This prevents unnecessary resizings.
+ // But do it right away after it. Otherwice a black toolbar area is shortly shown.
+ iDialerView->MakeVisible( ETrue );
+ // Number entry is emptied when dialer is hidden but drawing doesn't
+ // succeed at that point as dialer is hidden first. So must draw
+ // dialer as soon as it becomes visible to prevent the flashing of
+ // number entry (DrawDeferred() isn't fast enough here).
+ iDialerView->DrawNow();
+
iPhoneView->DrawableWindow()->SetOrdinalPosition( -1 );
iPhoneView->MakeVisible( EFalse );
// Update control stack
iAppui->AddToStackL( iDialerView );
iAppui->RemoveFromStack( iPhoneView );
-
- // Don't make dialer view visible before status pane is updated.
- // This prevents unnecessary resizings.
- iDialerView->MakeVisible( ETrue );
- // Number entry is emptied when dialer is hidden but drawing doesn't
- // succeed at that point as dialer is hidden first. So must draw
- // dialer as soon as it becomes visible to prevent the flashing of
- // number entry (DrawDeferred() isn't fast enough here).
- iDialerView->DrawNow();
}
}
--- a/phoneapp/phoneuiview/src/phoneringingtonesrv.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/phoneuiview/src/phoneringingtonesrv.cpp Tue May 25 12:41:50 2010 +0300
@@ -265,6 +265,14 @@
TProfileRingingType ringingType = (TProfileRingingType)aMessage.Int2();
TInt ttsLen = aMessage.GetDesLength( 0 );
+
+ if( ttsLen <= 0 )
+ {
+ PHONEUIVIEW_PRINTF("CPhoneRingingToneServer::PlayTtsTone: TTS length error: %d!", ttsLen);
+ PHONEUIVIEW_PRINT("CPhoneRingingToneServer::PlayTtsTone >");
+ return;
+ }
+
HBufC* textToSay = HBufC::New( ttsLen );
if ( !textToSay )
{
--- a/phoneapp/phoneuivoipextension/src/cphonevcchandler.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/phoneuivoipextension/src/cphonevcchandler.cpp Tue May 25 12:41:50 2010 +0300
@@ -312,7 +312,7 @@
if ( tone == 1 )
{
- globalNoteParam.SetTone( EAvkonSIDConfirmationTone );
+ globalNoteParam.SetTone( EAvkonSIDDefaultSound );
}
else
{
--- a/phoneapp/silenceactionplugin/data/silence.rul Tue May 11 16:13:03 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<script xmlns="http://www.nokia.com/ns/cep/script/1.0/"
-xmlns:cep="http://www.nokia.com/ns/cep/1.0/">
-
- <!-- Check if we have incoming call and we receive display down orientation event -->
- <if>
- <and>
- <!-- Must have a ringin call and receive orientation event from sensor -->
- <equals>
- <contextRef source='Call' type='State'/>
- <string>Ringing</string>
- </equals>
- <equals>
- <contextRef source='Sensor' type='Setting.Active'/>
- <string>On</string>
- </equals>
- <!-- Check that turning interaction is set -->
- <equals>
- <contextRef source='Sensor' type='Setting.TurningInteraction.SilenceCalls'/>
- <string>On</string>
- </equals>
- <!-- ...and previous orientation is not 'Undefined' ... -->
- <notEqual>
- <contextRef source='Sensor' type='Event.Orientation.Previous'/>
- <string>Undefined</string>
- </notEqual>
- <contextChanged>
- <contextRef source='Sensor' type='Event.Orientation'/>
- </contextChanged>
- <equals>
- <contextRef source='Sensor' type='Event.Orientation'/>
- <string>DisplayDownwards</string>
- </equals>
- </and>
- <actions>
- <!-- DEBUG -->
- <!-- <publishContext><contextRef source="Test" type="Log" value="silence.rul - 01 silence call only"/></publishContext> -->
-
- <!-- Silence ringing tone -->
- <Phone Command='Silence'/>
- <!-- Vibra feedback -->
- <Vibra Mode='Start' Delay='0' Repeats='2' RepeatInterval='200' Duration='50' Intensity='50'/>
- </actions>
- </if>
-
-</script>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/silenceactionplugin/data/silenceringingtone_activate.rul Tue May 25 12:41:50 2010 +0300
@@ -0,0 +1,63 @@
+<script xmlns="http://www.nokia.com/ns/cep/script/1.0/" xmlns:cep="http://www.nokia.com/ns/cep/1.0/">
+ <!-- Do nothing if the following pre-conditions do not match -->
+ <if>
+ <or>
+ <!-- sensor settings are disabled -->
+ <notEqual>
+ <contextRef source='Sensor' type='Setting.Active' value='On'/>
+ </notEqual>
+ <!-- silence ringing tone turning interaction is disabled -->
+ <notEqual>
+ <contextRef source='Sensor' type='Setting.TurningInteraction.SilenceCalls' value='On'/>
+ </notEqual>
+ </or>
+ <actions>
+ <!-- do nothing -->
+ </actions>
+ </if>
+
+ <!-- activate silence ringing tone feature and orientation sensor channel-->
+ <elseIf>
+ <!-- call ringing -->
+ <contextChanged>
+ <contextRef source='Call' type='State' value='Ringing'/>
+ </contextChanged>
+ <actions>
+ <!-- Activate orientation channel (0x01) from sensor source (0x10282DF0) -->
+ <sourceCommand uid='0x10282DF0'>
+ <sensorCommand channelId='0x01' id='activate'/>
+ </sourceCommand>
+ <!-- Publish context that indicates that alarm is active -->
+ <publishContext define='true'>
+ <contextRef source='Feature' type='SilenceRingingTone.Active' value='true'/>
+ </publishContext>
+ </actions>
+ </elseIf>
+
+ <!-- deactivate silence ringing tone feature and orientation sensor channel-->
+ <elseIf>
+ <or>
+ <!-- call was connected -->
+ <contextChanged>
+ <contextRef source='Call' type='State' value='Connected'/>
+ </contextChanged>
+ <!-- call was disconnected -->
+ <contextChanged>
+ <contextRef source='Call' type='State' value='Disconnected'/>
+ </contextChanged>
+ <contextChanged>
+ <contextRef source='Call' type='State' value='Disconnecting'/>
+ </contextChanged>
+ </or>
+ <actions>
+ <!-- Deactivate orientation channel (0x01) from sensor source (0x10282DF0) -->
+ <sourceCommand uid='0x10282DF0'>
+ <sensorCommand channelId='0x01' id='deactivate'/>
+ </sourceCommand>
+ <!-- Publish context that indicates that alarm is active -->
+ <publishContext define='true'>
+ <contextRef source='Feature' type='SilenceRingingTone.Active' value='false'/>
+ </publishContext>
+ </actions>
+ </elseIf>
+</script>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/silenceactionplugin/data/silenceringingtone_silence.rul Tue May 25 12:41:50 2010 +0300
@@ -0,0 +1,30 @@
+<script xmlns="http://www.nokia.com/ns/cep/script/1.0/" xmlns:cep="http://www.nokia.com/ns/cep/1.0/">
+ <!-- do nothing if the pre-conditions do not match -->
+ <if>
+ <!-- silence ringing tone feature is not active -->
+ <notEqual>
+ <contextRef source='Feature' type='SilenceRingingTone.Active' value='true'/>
+ </notEqual>
+ <actions>
+ <!-- do nothing -->
+ </actions>
+ </if>
+
+ <!-- silence the ringing tone -->
+ <elseIf>
+ <and>
+ <!-- display is turned down -->
+ <contextChanged>
+ <contextRef source='Sensor' type='Event.Orientation' value='DisplayDownwards'/>
+ </contextChanged>
+ <!-- previous orientation state is not undefined -->
+ <notEqual>
+ <contextRef source='Sensor' type='Event.Orientation.Previous' value='Undefined'/>
+ </notEqual>
+ </and>
+ <actions>
+ <!-- Silence ringing tone -->
+ <Phone Command='Silence'/>
+ </actions>
+ </elseIf>
+</script>
\ No newline at end of file
--- a/phoneapp/silenceactionplugin/group/bld.inf Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/silenceactionplugin/group/bld.inf Tue May 25 12:41:50 2010 +0300
@@ -23,11 +23,17 @@
DEFAULT
PRJ_EXPORTS
-../data/silence.rul\
- /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Rules/silence.rul
+../data/silenceringingtone_activate.rul\
+ /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Rules/silenceringingtone_activate.rul
+
+../data/silenceringingtone_activate.rul\
+ /epoc32/data/Z/private/10282BC4/Rules/silenceringingtone_activate.rul
-../data/silence.rul\
- /epoc32/data/Z/private/10282BC4/Rules/silence.rul
+../data/silenceringingtone_silence.rul\
+ /epoc32/RELEASE/winscw/UDEB/Z/private/10282BC4/Rules/silenceringingtone_silence.rul
+
+../data/silenceringingtone_silence.rul\
+ /epoc32/data/Z/private/10282BC4/Rules/silenceringingtone_silence.rul
../data/silenceactionplugin_stub.SIS\
/epoc32/data/z/system/install/silenceactionplugin_stub.SIS
--- a/phoneapp/silenceactionplugin/rom/silenceactionplugin.iby Tue May 11 16:13:03 2010 +0300
+++ b/phoneapp/silenceactionplugin/rom/silenceactionplugin.iby Tue May 25 12:41:50 2010 +0300
@@ -22,7 +22,8 @@
#ifdef RD_CONTEXT_FRAMEWORK
ECOM_PLUGIN( silenceactionplugin.dll, silenceactionplugin.rsc )
-data=\epoc32\data\Z\private\10282BC4\Rules\silence.rul private\10282BC4\Rules\silence.rul
+data=\epoc32\data\Z\private\10282BC4\Rules\silenceringingtone_activate.rul private\10282BC4\Rules\silenceringingtone_activate.rul
+data=\epoc32\data\Z\private\10282BC4\Rules\silenceringingtone_silence.rul private\10282BC4\Rules\silenceringingtone_silence.rul
data=ZSYSTEM\install\silenceactionplugin_stub.SIS System\Install\silenceactionplugin_stub.SIS
#endif // RD_CONTEXT_FRAMEWORK
--- a/phoneengine/PhoneCntFinder/ContactService/src/CPhCntContactManager.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneengine/PhoneCntFinder/ContactService/src/CPhCntContactManager.cpp Tue May 25 12:41:50 2010 +0300
@@ -74,7 +74,6 @@
{
TRAP_IGNORE( iContactManager->ContactStoresL().CloseAll( *this ) );
}
- delete iContactStore;
delete iContactManager;
delete iContactStoreUris;
}
--- a/phoneengine/PhoneCntFinder/ContactService/src/tphcntservicerequestparams.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneengine/PhoneCntFinder/ContactService/src/tphcntservicerequestparams.cpp Tue May 25 12:41:50 2010 +0300
@@ -124,11 +124,10 @@
AiwContactAssign::TAiwSingleContactAssignDataV1 data =
AiwContactAssign::TAiwSingleContactAssignDataV1();
-
- // EHideEditorExit has to be set because otherwise AIW provider offers
- // exit menu item which will also exit the phone application.
- data.SetFlags( AiwContactAssign::ECreateNewContact |
- AiwContactAssign::EHideEditorExit );
+
+ // By default an existing contact is opened, we'll override this behaviour
+ // by setting the ECreateNewContact flag
+ data.SetFlags( AiwContactAssign::ECreateNewContact );
iGenericParamList->AppendL(
TAiwGenericParam(
@@ -191,8 +190,6 @@
AiwContactAssign::TAiwSingleContactAssignDataV1 data =
AiwContactAssign::TAiwSingleContactAssignDataV1();
- data.SetFlags( AiwContactAssign::EHideEditorExit );
-
iGenericParamList->AppendL(
TAiwGenericParam(
EGenericParamPhoneNumber,
--- a/phoneengine/audiohandling/src/cpeaudiodtmftoneplayer.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneengine/audiohandling/src/cpeaudiodtmftoneplayer.cpp Tue May 25 12:41:50 2010 +0300
@@ -33,7 +33,7 @@
// CONSTANTS
const TInt KDtmfSilent = 0;
-const TInt KDtmfPauseAfterTone = 100000;
+const TInt KDtmfPauseAfterTone = 45000;
const TInt KDtmfToneZero = 0;
const TInt KBufSize = 10;
_LIT( KPhoneTone_Asterisk, "*+w" );
--- a/phoneengine/phonemodel/inc/cpemessagehandler.h Tue May 11 16:13:03 2010 +0300
+++ b/phoneengine/phonemodel/inc/cpemessagehandler.h Tue May 25 12:41:50 2010 +0300
@@ -761,6 +761,11 @@
TInt HandleDialCallL( const TBool aClientCall );
/**
+ * Reset CCCECallParameters to prevent of use a previous call´s parameters
+ */
+ void ResetClientCallData();
+
+ /**
* Checks if there are any connected video calls
* @return EFalse: no active video call,
* ETrue: active video call
--- a/phoneengine/phonemodel/src/cpemessagehandler.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneengine/phonemodel/src/cpemessagehandler.cpp Tue May 25 12:41:50 2010 +0300
@@ -1868,6 +1868,10 @@
{
HandleClientCallData();
}
+ else
+ {
+ ResetClientCallData();
+ }
//Get number of calls
numberOfCalls = iCallHandling.GetNumberOfCalls();
@@ -1923,6 +1927,23 @@
}
// -----------------------------------------------------------------------------
+// CPEMessageHandler::ResetClientCallData
+// Reset CCCECallParameters to prevent of use a previous call´s parameters
+// -----------------------------------------------------------------------------
+//
+void CPEMessageHandler::ResetClientCallData()
+ {
+ TEFLOGSTRING( KTAINT, "PE CPEMessageHandler::ResetClientCallData()" );
+
+ CCCECallParameters& params = iDataStore.CallParameters();
+ params.SetLineType( CCCECallParameters::ECCELineTypePrimary );
+ params.SetUUSId( KNullDesC() );
+ params.SetBearer( KNullDesC8() );
+ params.SetSubAddress( KNullDesC() );
+ params.SetOrigin( CCCECallParameters::ECCECallOriginPhone );
+ }
+
+// -----------------------------------------------------------------------------
// CPEMessageHandler::HandleSatCallRequestCompleted
// Sends respond to SAT after dial request completion
// -----------------------------------------------------------------------------
--- a/phoneuis/BubbleManager/Inc/BMTouchPane.h Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Inc/BMTouchPane.h Tue May 25 12:41:50 2010 +0300
@@ -163,7 +163,15 @@
* Replaces button with other.
*/
void ReplaceButtonL( TInt aButtonIndex, TInt aResourceId );
-
+
+ /**
+ * Set used button layout.
+ * @param aButtonIndex Button index.
+ * @param aColumn Column index.
+ * @param aRow Row index.
+ */
+ void SetButtonLayout( TInt aButtonIndex, TInt aColumn, TInt aRow );
+
private:
/**
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookBottom.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookBottom.cpp Tue May 25 12:41:50 2010 +0300
@@ -244,18 +244,7 @@
iFrameId,
outerRect,
innerRect,
- iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
+ iBubble );
break;
}
@@ -278,22 +267,18 @@
BubbleLayout2::BubbleFrameInnerOuterRects( frameRect,
outerRect,
innerRect);
-
- TAknsItemID coMaskFrameId;
+
if ( callState == CBubbleManager::EOnHold )
{
iFrameId = KAknsIIDQsnFrCall2Bubble;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleCoMask;
}
else if ( callState == CBubbleManager::EDisconnected )
{
iFrameId = KAknsIIDQsnFrCall2BubbleFirstDisconn;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
}
else
{
iFrameId = KAknsIIDQsnFrCall2BubbleFirst;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
}
// for possible frame draw
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomCnap.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomCnap.cpp Tue May 25 12:41:50 2010 +0300
@@ -240,17 +240,6 @@
outerRect,
innerRect,
iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
break;
}
@@ -275,21 +264,17 @@
outerRect,
innerRect);
- TAknsItemID coMaskFrameId;
if ( callState == CBubbleManager::EOnHold )
{
iFrameId = KAknsIIDQsnFrCall2Bubble;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleCoMask;
}
else if ( callState == CBubbleManager::EDisconnected )
{
- iFrameId = KAknsIIDQsnFrCall2BubbleFirstDisconn;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
+ iFrameId = KAknsIIDQsnFrCall2BubbleFirstDisconn;
}
else
{
- iFrameId = KAknsIIDQsnFrCall2BubbleFirst;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
+ iFrameId = KAknsIIDQsnFrCall2BubbleFirst;
}
// for possible frame draw
@@ -368,15 +353,6 @@
innerRect,
iBubble );
-
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- coMaskFrameId,
- outerRect,
- innerRect,
- iBubble );
-
-
break;
}
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomImCnap.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomImCnap.cpp Tue May 25 12:41:50 2010 +0300
@@ -158,22 +158,18 @@
BubbleLayout2::BubbleFrameInnerOuterRects( frameRect,
outerRect,
innerRect);
-
- TAknsItemID coMaskFrameId;
+
if ( callState == CBubbleManager::EOnHold )
{
iFrameId = KAknsIIDQsnFrCall2Bubble;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleCoMask;
}
else if ( callState == CBubbleManager::EDisconnected )
{
iFrameId = KAknsIIDQsnFrCall2BubbleFirstDisconn;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
}
else
{
iFrameId = KAknsIIDQsnFrCall2BubbleFirst;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
}
iOuterRect = outerRect;
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomImage.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomImage.cpp Tue May 25 12:41:50 2010 +0300
@@ -155,22 +155,18 @@
BubbleLayout2::BubbleFrameInnerOuterRects( frameRect,
outerRect,
innerRect);
-
- TAknsItemID coMaskFrameId;
+
if ( callState == CBubbleManager::EOnHold )
{
iFrameId = KAknsIIDQsnFrCall2Bubble;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleCoMask;
}
else if ( callState == CBubbleManager::EDisconnected )
{
iFrameId = KAknsIIDQsnFrCall2BubbleFirstDisconn;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
}
else
{
iFrameId = KAknsIIDQsnFrCall2BubbleFirst;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleFirstCoMask;
}
iOuterRect = outerRect;
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomRiCnap.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomRiCnap.cpp Tue May 25 12:41:50 2010 +0300
@@ -242,18 +242,7 @@
iFrameId,
outerRect,
innerRect,
- iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
+ iBubble );
break;
}
@@ -277,22 +266,18 @@
BubbleLayout2::BubbleFrameInnerOuterRects( frameRect,
outerRect,
innerRect);
-
- TAknsItemID coMaskFrameId;
+
if ( callState == CBubbleManager::EOnHold )
{
iFrameId = KAknsIIDQsnFrCall2Bubble;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleCoMask;
}
else if ( callState == CBubbleManager::EDisconnected )
{
iFrameId = KAknsIIDQsnFrCall2BubbleSecondDisconn;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleSecondCoMask;
}
else
{
iFrameId = KAknsIIDQsnFrCall2BubbleSecond;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleSecondCoMask;
}
// for possible frame draw
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomRight.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookBottomRight.cpp Tue May 25 12:41:50 2010 +0300
@@ -237,17 +237,7 @@
outerRect,
innerRect,
iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
+
break;
}
case CBubbleManager::EDisconnected:
@@ -270,22 +260,18 @@
BubbleLayout2::BubbleFrameInnerOuterRects( frameRect,
outerRect,
innerRect);
-
- TAknsItemID coMaskFrameId;
+
if ( callState == CBubbleManager::EOnHold )
{
iFrameId = KAknsIIDQsnFrCall2Bubble;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleCoMask;
}
else if ( callState == CBubbleManager::EDisconnected )
{
iFrameId = KAknsIIDQsnFrCall2BubbleSecondDisconn;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleSecondCoMask;
}
else
{
iFrameId = KAknsIIDQsnFrCall2BubbleSecond;
- coMaskFrameId = KAknsIIDQsnFrCall2BubbleSecondCoMask;
}
iOuterRect = outerRect;
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookMiddle.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookMiddle.cpp Tue May 25 12:41:50 2010 +0300
@@ -261,17 +261,7 @@
outerRect,
innerRect,
iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
+
break;
}
case CBubbleManager::EDisconnected:
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookMiddleCnap.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookMiddleCnap.cpp Tue May 25 12:41:50 2010 +0300
@@ -231,16 +231,6 @@
innerRect,
iBubble );
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
break;
}
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookTopLeft.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookTopLeft.cpp Tue May 25 12:41:50 2010 +0300
@@ -210,17 +210,7 @@
outerRect,
innerRect,
iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
+
break;
}
case CBubbleManager::EDisconnected:
--- a/phoneuis/BubbleManager/Src/BMBubbleOutlookTopRight.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMBubbleOutlookTopRight.cpp Tue May 25 12:41:50 2010 +0300
@@ -207,17 +207,7 @@
outerRect,
innerRect,
iBubble );
-
- if ( iHeader->CallObjectImage() &&
- !iHeader->CallObjectText().Length() )
- {
- // Add transparency
- BubbleUtils::AddTransparencyToBubbleImageL(
- KAknsIIDQsnFrCall2RectCoMask, // gradient tp mask
- outerRect,
- innerRect,
- iBubble );
- }
+
break;
}
case CBubbleManager::EDisconnected:
--- a/phoneuis/BubbleManager/Src/BMTouchPane.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/BubbleManager/Src/BMTouchPane.cpp Tue May 25 12:41:50 2010 +0300
@@ -80,45 +80,74 @@
void CBubbleTouchPane::SizeChanged( )
{
if ( !iButtons.Count() )
+ {
return;
-
+ }
+
// button index
// 1 2 OR 1 2 3 4
// 3 4
- TInt i = 0;
-
+ TInt buttonInd = 0;
+
TInt rows = 0;
TInt columns = 0;
BubbleLayout6::button_grp_row_column_count(0, rows, columns);
- for ( TInt row = 0; row < rows; row++ )
+ if ( Layout_Meta_Data::IsLandscapeOrientation() &&
+ !Layout_Meta_Data::IsMirrored() )
{
+ // Set places of the touch buttons so that they correspond places in portrait.
+ // However, don't change order if mirrored display is used.
for ( TInt col = 0; col < columns; col++ )
{
- TAknLayoutRect buttonPane;
- buttonPane.LayoutRect(
- Rect(),
- BubbleLayout6::cell_call6_button_pane(0, col, row) );
-
- if ( i < iButtons.Count() && iButtons[i] )
+ for ( TInt row = rows - 1; row >= 0; row-- )
+ {
+ SetButtonLayout( buttonInd, col, row );
+ buttonInd++;
+ }
+ }
+ }
+ else
+ {
+ for ( TInt row = 0; row < rows; row++ )
+ {
+ for ( TInt col = 0; col < columns; col++ )
{
- // Button control layout according to background
- AknLayoutUtils::LayoutControl(
- iButtons[i],
- buttonPane.Rect(),
- BubbleLayout6::button_call6_background_graphics(0));
-
- TAknLayoutText text;
- text.LayoutText( buttonPane.Rect(),
- BubbleLayout6::button_call6_function_text(0));
+ SetButtonLayout( buttonInd, col, row );
+ buttonInd++;
+ }
+ }
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// SetButtonLayout
+// ---------------------------------------------------------------------------
+//
+void CBubbleTouchPane::SetButtonLayout( TInt aButtonIndex, TInt aColumn, TInt aRow )
+ {
+ TAknLayoutRect buttonPane;
+ buttonPane.LayoutRect(
+ Rect(),
+ BubbleLayout6::cell_call6_button_pane(0, aColumn, aRow) );
- TAknLayoutRect icon;
- icon.LayoutRect( buttonPane.Rect(),
- BubbleLayout6::button_call6_function_graphics(0));
-
- iButtons[i]->SetIconSize( icon.Rect().Size() );
- iButtons[i++]->SetLayout( text, icon.Rect() );
- }
- }
+ if ( aButtonIndex < iButtons.Count() && iButtons[aButtonIndex] )
+ {
+ // Button control layout according to background
+ AknLayoutUtils::LayoutControl(
+ iButtons[aButtonIndex],
+ buttonPane.Rect(),
+ BubbleLayout6::button_call6_background_graphics(0));
+
+ TAknLayoutText text;
+ text.LayoutText( buttonPane.Rect(),
+ BubbleLayout6::button_call6_function_text(0));
+
+ TAknLayoutRect icon;
+ icon.LayoutRect( buttonPane.Rect(),
+ BubbleLayout6::button_call6_function_graphics(0));
+
+ iButtons[aButtonIndex]->SetIconSize( icon.Rect().Size() );
+ iButtons[aButtonIndex]->SetLayout( text, icon.Rect() );
}
}
--- a/phoneuis/dialer/inc/cdialer.h Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/dialer/inc/cdialer.h Tue May 25 12:41:50 2010 +0300
@@ -397,6 +397,11 @@
void UpdateEdwinState( TEditorType aType );
/**
+ * Disables numeric key sounds, or removed disabling.
+ */
+ void DisableNumericKeySounds( TBool aSounds );
+
+ /**
* Loads easydialing plugin. If loading fails (for instance when
* easydialing feature flag is not enabled in the device),
* iEasyDialer will be NULL after this function returns.
@@ -486,6 +491,12 @@
* for the alphabetic characters.
*/
TEditorType iEditorType;
+
+ /*
+ * ETrue if numeric keysounds are disabled. They are disabled when number
+ * key should produce DTMF tone.
+ */
+ TBool iNumericKeySoundsDisabled;
};
#endif // CDIALER_H
--- a/phoneuis/dialer/src/cdialer.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/dialer/src/cdialer.cpp Tue May 25 12:41:50 2010 +0300
@@ -26,6 +26,7 @@
#include <AknUtils.h>
#include <AknsUtils.h>
#include <aknappui.h>
+#include <aknsoundsystem.h>
#include <aknlayoutscalable_apps.cdl.h>
#include <layoutmetadata.cdl.h>
#include <data_caging_path_literals.hrh> // for KDC_APP_RESOURCE_DIR
@@ -35,6 +36,7 @@
#include <dialingextensioninterface.h>
#include <easydialingcommands.hrh>
#include <dialer.rsg>
+#include <phoneui.rsg>
#include <featmgr.h>
#include "cdialer.h"
@@ -137,6 +139,9 @@
SetRect( aRect );
SetComponentsToInheritVisibility( EFalse );
+
+ // By default, numeric keysounds are disabled.
+ DisableNumericKeySounds( ETrue );
ActivateL();
#ifdef RD_SCALABLE_UI_V2
@@ -260,6 +265,10 @@
}
UpdateEdwinState( editorType );
+
+ // Numeric keysound are disabled in if not in alpha mode.
+ // In numeric mode numeric keys should play DTMF only.
+ DisableNumericKeySounds( editorType != EAlphanumericEditor );
}
// ---------------------------------------------------------------------------
@@ -831,6 +840,30 @@
}
// ---------------------------------------------------------------------------
+// CDialer::SetNumericKeySounds
+// ---------------------------------------------------------------------------
+//
+void CDialer::DisableNumericKeySounds( TBool aDisable )
+ {
+ CAknAppUi *appUi = static_cast<CAknAppUi*>( ControlEnv()->AppUi() );
+ CAknKeySoundSystem* keySounds = appUi->KeySounds();
+
+ if ( aDisable && !iNumericKeySoundsDisabled )
+ {
+ // Disable numeric key sounds. This is done only if key sounds were not disabled previously,
+ // to avoid situation that there were multiple key sound contexts in the stack.
+ TRAP_IGNORE( keySounds->PushContextL( R_PHONEUI_DEFAULT_SKEY_LIST ) );
+ }
+ else if ( !aDisable && iNumericKeySoundsDisabled )
+ {
+ // Remove numeric key sound disabling.
+ keySounds->PopContext();
+ }
+
+ iNumericKeySoundsDisabled = aDisable;
+ }
+
+// ---------------------------------------------------------------------------
// CDialer::LoadEasyDialingPlugin
// ---------------------------------------------------------------------------
//
--- a/phoneuis/dialer/src/cdialernumberentry.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/dialer/src/cdialernumberentry.cpp Tue May 25 12:41:50 2010 +0300
@@ -98,7 +98,7 @@
iFrameContext = CAknsFrameBackgroundControlContext::NewL(
KAknsIIDNone, TRect(0,0,4,4), TRect(1,1,3,3), EFalse );
- iFrameContext->SetFrame( KAknsIIDQsnFrCall2Rect );
+ iFrameContext->SetFrame( KAknsIIDQsnFrInput );
iFrameContext->SetParentContext(
AknsDrawUtils::ControlContextOfParent(this) );
@@ -434,7 +434,7 @@
(CWindowGc&) gc,
iOuterRect,
iInnerRect,
- KAknsIIDQsnFrCall2Rect,
+ KAknsIIDQsnFrInput,
KAknsIIDDefault ))
{
DIALER_PRINT("numberentry::Draw.Frame.failed");
@@ -496,7 +496,7 @@
AknsDrawUtils::PrepareFrame( skin,
iOuterRect,
iInnerRect,
- KAknsIIDQsnFrCall2Rect,
+ KAknsIIDQsnFrInput,
KAknsIIDDefault );
// Label layout
--- a/phoneuis/dialer/tsrc/public/basic/T_VideoDtmfDialer/group/T_VideoDtmfDialer.mmp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/dialer/tsrc/public/basic/T_VideoDtmfDialer/group/T_VideoDtmfDialer.mmp Tue May 25 12:41:50 2010 +0300
@@ -33,7 +33,9 @@
SOURCEPATH ../group
-USERINCLUDE ../inc
+USERINCLUDE ../../../../../../../phoneapp/phoneuiutils/inc/
+USERINCLUDE ../inc
+
APP_LAYER_SYSTEMINCLUDE
SYSTEMINCLUDE ../../../../../inc // Telephony internal headers
--- a/phoneuis/dialer/tsrc/public/basic/T_VideoDtmfDialer/src/T_VideoDtmfDialerBlocks.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/dialer/tsrc/public/basic/T_VideoDtmfDialer/src/T_VideoDtmfDialerBlocks.cpp Tue May 25 12:41:50 2010 +0300
@@ -114,9 +114,9 @@
{
if( iVideoDtmfDialerControl )
{
- iDialer = CDialer::NewL(
- *iVideoDtmfDialerControl,
- CEikonEnv::Static()->EikAppUi()->ClientRect() );
+ iDialer = CDialer::NewL( *iVideoDtmfDialerControl,
+ CEikonEnv::Static()->EikAppUi()->ClientRect(),
+ NULL );
iNumberEntry = iDialer->NumberEntry();
return KErrNone;
--- a/phoneuis/easydialing/data/easydialingpluginresources.rss Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/easydialing/data/easydialingpluginresources.rss Tue May 25 12:41:50 2010 +0300
@@ -209,5 +209,15 @@
};
}
+//----------------------------------------------------------------------------
+// r_qtn_easydial_enter_number
+//
+// Info text shown in dialer when when number entry is empty.
+// ---------------------------------------------------------------------------
+//
+RESOURCE TBUF r_qtn_easydial_enter_number
+ {
+ buf = qtn_easydial_enter_number;
+ }
// End of File
--- a/phoneuis/easydialing/inc/easydialingplugin.h Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/easydialing/inc/easydialingplugin.h Tue May 25 12:41:50 2010 +0300
@@ -70,7 +70,7 @@
class CEDContactorService;
class CEikMenuPane;
class CAsyncCallBack;
-
+class CEikLabel;
// CLASS DECLARATION
@@ -122,6 +122,11 @@
* From CCoeControl
*/
void MakeVisible( TBool aVisible );
+
+ /**
+ * From CCoeControl
+ */
+ void HandleResourceChange( TInt aType );
protected:
@@ -436,7 +441,11 @@
*/
TBool CanListBoxEffectBeUsed() const;
-
+ /**
+ * Sets correct info label text color from theme.
+ */
+ void SetInfoLabelColourL();
+
private:
/** Textual version of current search string. */
@@ -517,12 +526,29 @@
/** Action to be launched next asynchronously. */
TEasyDialingAction iActionToBeLaunched;
+ /** Contact link related to the asynchronous action. */
+ HBufC8* iContactToBeLaunched;
+
+ /** Contact name related to the asynchronous action. */
+ HBufC* iContactToBeLaunchedName;
+
/** Key event to be simulated asynchronously. */
TKeyEvent iKeyEventToSimulate;
/** Is virtual keyboard currently open or not.*/
TBool iVirtualKeyboardOpen;
+
+ /** First line of info text shown when number entry is empty. Owned. */
+ HBufC* iInfoLabelTextLine1;
+ /** Second line of info text shown when number entry is empty. Owned. */
+ HBufC* iInfoLabelTextLine2;
+
+ /** Label for showing first line of info text when number entry is empty. Owned. */
+ CEikLabel* iInfoLabelLine1;
+
+ /** Label for showing second line of info text when number entry is empty. Owned. */
+ CEikLabel* iInfoLabelLine2;
};
--- a/phoneuis/easydialing/loc/easydialing.loc Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/easydialing/loc/easydialing.loc Tue May 25 12:41:50 2010 +0300
@@ -35,4 +35,12 @@
//
#define qtn_easy_dialing_off "Off"
+//d: Info text shown in dialer when when number entry is empty.
+//d: Text is shown in the place of the contact matches listbox.
+//d: Text can span multiple lines. Line breaks must be indicated with \n
+//l: main_list_empty_pane
+//r:9.2
+//
+#define qtn_easydial_enter_number "Enter number or name"
+
// End of File
--- a/phoneuis/easydialing/src/easydialinglistbox.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/easydialing/src/easydialinglistbox.cpp Tue May 25 12:41:50 2010 +0300
@@ -513,6 +513,10 @@
ReportListBoxEventL( static_cast<MEikListBoxObserver::TListBoxEvent>
( KEasyDialingContactLongTapped ) );
iPointerLongPressHandled = ETrue;
+
+ TPointerEvent simulatedButtonUpEvent( TPointerEvent::EButton1Up, 0,
+ TPoint(), TPoint() );
+ TRAP_IGNORE( CEikFormattedCellListBox::HandlePointerEventL( simulatedButtonUpEvent ) );
}
--- a/phoneuis/easydialing/src/easydialingplugin.cpp Tue May 11 16:13:03 2010 +0300
+++ b/phoneuis/easydialing/src/easydialingplugin.cpp Tue May 25 12:41:50 2010 +0300
@@ -34,6 +34,8 @@
#include <e32cmn.h>
#include <bidivisual.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+
// Predictive search header files
#include <CPsSettings.h>
#include <CPsQuery.h>
@@ -63,6 +65,8 @@
#include <AiwContactAssignDataTypes.h>
#include <AiwContactSelectionDataTypes.h>
+#include <StringLoader.h>
+
// CCA contactor service.
#include "edcontactorservice.h"
@@ -267,6 +271,11 @@
GfxTransEffect::Deregister( iContactListBox );
}
+ delete iInfoLabelLine1;
+ delete iInfoLabelLine2;
+ delete iInfoLabelTextLine1;
+ delete iInfoLabelTextLine2;
+
delete iContactListBox;
if (iContactLauncher)
@@ -286,6 +295,9 @@
}
delete iAsyncCallBack;
+ delete iContactToBeLaunched;
+ delete iContactToBeLaunchedName;
+
OstTrace0( TRACE_NORMAL, CEASYDIALINGPLUGIN_UNLOAD_PLUGIN, "Plugin unloaded" );
LOGSTRING("EasyDialingPlugin: Plugin unloaded");
}
@@ -325,6 +337,40 @@
SetFocus( EFalse );
iContactListBox->ActivateL();
+ _LIT( KEDNewLine, "\n" );
+ HBufC* infoLabelText = StringLoader::LoadLC( R_QTN_EASYDIAL_ENTER_NUMBER, iCoeEnv );
+ TInt newLine = infoLabelText->Find( KEDNewLine );
+ if ( newLine == KErrNotFound )
+ {
+ iInfoLabelTextLine1 = infoLabelText;
+ CleanupStack::Pop( infoLabelText );
+ iInfoLabelTextLine2 = HBufC::NewL(0);
+ }
+ else
+ {
+ iInfoLabelTextLine1 = infoLabelText->Left( newLine ).AllocL();
+ iInfoLabelTextLine2 = infoLabelText->Mid( newLine + 1 ).AllocL();
+ CleanupStack::PopAndDestroy( infoLabelText );
+ }
+
+ iInfoLabelLine1 = new( ELeave ) CEikLabel;
+ iInfoLabelLine1->SetContainerWindowL( *this );
+ iInfoLabelLine1->SetParent( this );
+ iInfoLabelLine1->SetMopParent( this );
+ iInfoLabelLine1->SetLabelAlignment( ELayoutAlignCenter );
+ iInfoLabelLine1->SetTextL( *iInfoLabelTextLine1 );
+ iInfoLabelLine1->ActivateL();
+
+ iInfoLabelLine2 = new( ELeave ) CEikLabel;
+ iInfoLabelLine2->SetContainerWindowL( *this );
+ iInfoLabelLine2->SetParent( this );
+ iInfoLabelLine2->SetMopParent( this );
+ iInfoLabelLine2->SetLabelAlignment( ELayoutAlignCenter );
+ iInfoLabelLine2->SetTextL( *iInfoLabelTextLine2 );
+ iInfoLabelLine2->ActivateL();
+
+ SetInfoLabelColourL();
+
GfxTransEffect::Register( iContactListBox,
KGfxContactListBoxUid, EFalse );
@@ -567,7 +613,7 @@
//
TInt CEasyDialingPlugin::CountComponentControls() const
{
- return iNumberOfNames > 0 ? 1 : 0;
+ return iNumberOfNames > 0 ? 3 : 2;
}
@@ -578,7 +624,17 @@
//
CCoeControl* CEasyDialingPlugin::ComponentControl( TInt aIndex ) const
{
- return aIndex == 0 ? iContactListBox : NULL;
+ switch ( aIndex )
+ {
+ case 0:
+ return iInfoLabelLine1;
+ case 1:
+ return iInfoLabelLine2;
+ case 2:
+ return iContactListBox;
+ default:
+ return NULL;
+ }
}
@@ -600,6 +656,15 @@
}
}
+// -----------------------------------------------------------------------------
+// HandleResourceChange
+//
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::HandleResourceChange( TInt /*aType*/ )
+ {
+ TRAP_IGNORE( SetInfoLabelColourL() );
+ }
// -----------------------------------------------------------------------------
// SizeChanged
@@ -623,6 +688,26 @@
itemToMakeVisible = iNumberOfNames - 1;
}
iContactListBox->ScrollToMakeItemVisible( itemToMakeVisible );
+
+ // get info label locations and fonts from layout
+ TRect baseRect = Rect();
+ TAknTextComponentLayout labelLayoutLine1 =
+ AknLayoutScalable_Avkon::main_pane_empty_t1( 0 );
+ TAknTextComponentLayout labelLayoutLine2 =
+ AknLayoutScalable_Avkon::main_pane_empty_t2( 0 );
+ AknLayoutUtils::LayoutLabel( iInfoLabelLine1, baseRect, labelLayoutLine1 );
+ AknLayoutUtils::LayoutLabel( iInfoLabelLine2, baseRect, labelLayoutLine2 );
+
+ // the layouts used place the text too low, so center the labels vertically
+ TInt labelHeight = iInfoLabelLine2->Rect().iBr.iY - iInfoLabelLine1->Rect().iTl.iY;
+ TInt centeredTop = ( baseRect.Height() - labelHeight ) / 2;
+ TInt offset = centeredTop - iInfoLabelLine1->Rect().iTl.iY;
+ iInfoLabelLine1->SetPosition( TPoint( iInfoLabelLine1->Rect().iTl.iX,
+ iInfoLabelLine1->Rect().iTl.iY + offset ) );
+ iInfoLabelLine2->SetPosition( TPoint( iInfoLabelLine2->Rect().iTl.iX,
+ iInfoLabelLine2->Rect().iTl.iY + offset ) );
+
+ TRAP_IGNORE( SetInfoLabelColourL() );
}
@@ -638,6 +723,7 @@
{
// To be on the safe side, cancel async callback and reset input block.
CancelActionLaunchAndInputBlock();
+ iContactListBox->View()->ItemDrawer()->ClearFlags( CListItemDrawer::ESingleClickDisabledHighlight );
}
CCoeControl::FocusChanged( aDrawNow );
InformObservers( MDialingExtensionObserver::EFocusChanged );
@@ -677,10 +763,18 @@
// However if user empties number entry, then it's feasible to show
// effect.
HideContactListBoxWithEffect();
+ iInfoLabelLine1->SetTextL( *iInfoLabelTextLine1 );
+ iInfoLabelLine2->SetTextL( *iInfoLabelTextLine2 );
+ iInfoLabelLine1->DrawDeferred();
+ iInfoLabelLine2->DrawDeferred();
Reset();
}
else // proper search string
{
+ iInfoLabelLine1->SetTextL( KNullDesC );
+ iInfoLabelLine2->SetTextL( KNullDesC );
+ iInfoLabelLine1->DrawDeferred();
+ iInfoLabelLine2->DrawDeferred();
iSearchString.Copy( aSearchString.Left( iSearchString.MaxLength() ) );
LaunchSearchL();
}
@@ -1127,6 +1221,8 @@
iContactListBox->ScrollToMakeItemVisible( iNumberOfNames-1 );
ShowContactListBoxWithEffect();
+ iContactListBox->View()->ItemDrawer()->ClearFlags( CListItemDrawer::ESingleClickDisabledHighlight );
+ static_cast<CEasyDialingListBoxView*>( iContactListBox->View() )->SetCurrentItemIndexToNone();
}
else
{
@@ -1193,9 +1289,9 @@
void CEasyDialingPlugin::LaunchCurrentContactL()
{
__ASSERT_DEBUG( iNumberOfNames > 0, EasyDialingPanic( EEasyDialingPanicNoResults ) );
- __ASSERT_DEBUG( iContactListBox->CurrentItemIndex() >= 0, EasyDialingPanic( EEasyDialingPanicNoContactSelected ) );
+ __ASSERT_DEBUG( iContactToBeLaunched, EasyDialingPanic( EEasyDialingPanicNoContactSelected ) );
- if (( iContactLauncherActive ) || ( iNumberOfNames == 0 ) || ( !iContactListBox ) || ( iContactListBox->CurrentItemIndex() < 0 ))
+ if (( iContactLauncherActive ) || ( iNumberOfNames == 0 ) || ( !iContactListBox ) || ( !iContactToBeLaunched ))
{
OstTrace0( TRACE_ERROR, CEASYDIALINGPLUGIN_LAUNCHCURRENTCONTACTL_ERROR, "LaunchCurrentContactL: Parameter error" );
LOGSTRING("EasyDialingPlugin: LaunchCurrentContactL - Parameter error");
@@ -1213,22 +1309,22 @@
launchParameters->SetContactDataFlag(MCCAParameter::EContactLink);
- // Get the contact link of the current contact item.
- HBufC8* contact8 = iContactListBox->CurrentContactLinkLC();
-
- // Expand it into 16-bit descriptor because cca launcher api expects this.
- HBufC16* contact16 = HBufC16::NewLC( contact8->Length() );
- contact16->Des().Copy( *contact8 );
+ // Expand contact link into 16-bit descriptor because cca launcher api expects this.
+ HBufC16* contact16 = HBufC16::NewLC( iContactToBeLaunched->Length() );
+ contact16->Des().Copy( *iContactToBeLaunched );
launchParameters->SetContactDataL( *contact16 );
CleanupStack::PopAndDestroy( contact16 );
- CleanupStack::PopAndDestroy( contact8 );
+
+ OstTraceExt1( TRACE_NORMAL, CEASYDIALINGPLUGIN_LAUNCHCURRENTCONTACTL_LAUNCH_CCA, "Launch CL for contact: '%S'", *iContactToBeLaunchedName );
+ LOGSTRING1("EasyDialingPlugin: Launch CL for contact: '%S'", iContactToBeLaunchedName );
- TPtrC selectedName = iListBoxModel->MdcaPoint( iContactListBox->CurrentItemIndex() );
- OstTraceExt1( TRACE_NORMAL, CEASYDIALINGPLUGIN_LAUNCHCURRENTCONTACTL_LAUNCH_CCA, "Launch CL for contact: '%S'", selectedName );
- LOGSTRING1("EasyDialingPlugin: Launch CL for contact: '%S'", &selectedName );
-
+ delete iContactToBeLaunched;
+ iContactToBeLaunched = NULL;
+ delete iContactToBeLaunchedName;
+ iContactToBeLaunchedName = NULL;
+
iContactLauncher->LaunchAppL( *launchParameters, this );
// Ownership of parameter transferred to CCA launcher => pop but do not destroy.
@@ -1621,6 +1717,31 @@
void CEasyDialingPlugin::AsyncActionLaunchL( TEasyDialingAction aAction )
{
iActionToBeLaunched = aAction;
+
+ delete iContactToBeLaunched;
+ iContactToBeLaunched = NULL;
+ delete iContactToBeLaunchedName;
+ iContactToBeLaunchedName = NULL;
+
+ if ( aAction == ECallCurrentContact
+ || aAction == EVideoCallCurrentContact
+ || aAction == ESendMessageCurrentContact
+ || aAction == ELaunchCurrentContact )
+ {
+ // Need to save current contact link and name. Listbox current item
+ // index might not be correct when callback is handled.
+ iContactToBeLaunched = iContactListBox->CurrentContactLinkLC();
+ CleanupStack::Pop( iContactToBeLaunched );
+
+ TPtrC contactString( iListBoxModel->MdcaPoint( iContactListBox->CurrentItemIndex() ) );
+ TPtrC fullNameSeparators;
+ TInt error = TextUtils::ColumnText( fullNameSeparators, 1, &contactString );
+ __ASSERT_DEBUG( error == KErrNone, EasyDialingPanic( EEasyDialingPanicInvalidListBoxModelString ) );
+
+ // Remove highlight separators. It is possible that some contactor API has problem with them.
+ iContactToBeLaunchedName = AllocWithoutHighlightSeparatorsLC( fullNameSeparators );
+ CleanupStack::Pop( iContactToBeLaunchedName );
+ }
CancelActionLaunchAndInputBlock();
@@ -1715,18 +1836,6 @@
return;
}
- // Get current contact link.
- HBufC8* contact8 = iContactListBox->CurrentContactLinkLC();
-
- TPtrC contactString( iListBoxModel->MdcaPoint( iContactListBox->CurrentItemIndex() ) );
-
- TPtrC fullNameSeparators;
- TInt error = TextUtils::ColumnText( fullNameSeparators , 1, &contactString );
- __ASSERT_DEBUG( error == KErrNone, EasyDialingPanic( EEasyDialingPanicInvalidListBoxModelString ) );
-
- // Remove highlight separators. It is possible that some contactor API has problem with them.
- HBufC* fullName = AllocWithoutHighlightSeparatorsLC( fullNameSeparators );
-
VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector selector(
VPbkFieldTypeSelectorFactory::EEmptySelector );
@@ -1769,20 +1878,24 @@
break;
default:
- CleanupStack::PopAndDestroy( fullName );
- CleanupStack::PopAndDestroy( contact8 );
+ delete iContactToBeLaunched;
+ iContactToBeLaunched = NULL;
+ delete iContactToBeLaunchedName;
+ iContactToBeLaunchedName = NULL;
__ASSERT_DEBUG( EFalse, EasyDialingPanic( EEasyDialingActionNotSupported ) );
return;
}
- CEDContactorService::TCSParameter param( selector, *contact8,
+ CEDContactorService::TCSParameter param( selector, *iContactToBeLaunched,
CEDContactorService::TCSParameter::EEnableDefaults,
- *fullName );
+ *iContactToBeLaunchedName );
iContactorService->ExecuteServiceL( param );
- CleanupStack::PopAndDestroy( fullName );
- CleanupStack::PopAndDestroy( contact8 );
+ delete iContactToBeLaunched;
+ iContactToBeLaunched = NULL;
+ delete iContactToBeLaunchedName;
+ iContactToBeLaunchedName = NULL;
}
@@ -1832,6 +1945,8 @@
case EEventFlickStopped:
case EEventPanningStopped:
case KEasyDialingScrollingStopped:
+ iContactListBox->View()->ItemDrawer()->ClearFlags( CListItemDrawer::ESingleClickDisabledHighlight );
+ static_cast<CEasyDialingListBoxView*>( iContactListBox->View() )->SetCurrentItemIndexToNone();
iContactDataManager->Pause( EFalse );
// Touching the listbox always removes the visual focus from any list item.
@@ -1996,6 +2111,25 @@
return canBeUsed;
}
+// -----------------------------------------------------------------------------
+// CEasyDialingPlugin::SetInfoLabelColourL
+// -----------------------------------------------------------------------------
+//
+void CEasyDialingPlugin::SetInfoLabelColourL()
+ {
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ TRgb skinColor;
+ TInt error = AknsUtils::GetCachedColor( skin, skinColor,
+ KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+
+ if ( error == KErrNone )
+ {
+ iInfoLabelLine1->OverrideColorL( EColorLabelText, skinColor );
+ iInfoLabelLine2->OverrideColorL( EColorLabelText, skinColor );
+ }
+ }
+
+
/*
* ==============================================================================
*