--- a/phoneapp/phoneuicontrol/src/cphonecbamanager.cpp Mon Aug 23 15:42:12 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonecbamanager.cpp Fri Sep 03 13:33:36 2010 +0300
@@ -52,7 +52,8 @@
MPhoneStateMachine& aStateMachine )
: iState ( aState ),
iViewCommandHandle ( aViewCommandHandle ),
- iStateMachine ( aStateMachine )
+ iStateMachine ( aStateMachine ),
+ iSoftRejectStatus ( ETrue )
{
__LOGMETHODSTARTEND( EPhoneControl, "CPhoneCbaManager::CPhoneCbaManager() ");
}
@@ -118,75 +119,23 @@
btParam.SetBoolean( audioOutput == EPEBTAudioAccessory );
iViewCommandHandle.ExecuteCommand(EPhoneViewSetBlueToothFlag,&btParam);
+ SetSoftRejectDimmedFlag();
+
TPhoneCmdParamBoolean btAvailableParam;
btAvailableParam.SetBoolean( btAvailable );
iViewCommandHandle.ExecuteCommand(
EPhoneViewSetBluetoothAvailableFlag,&btAvailableParam);
-
- // Call setup cases
- if ( EPhoneCallHandlingCallSetupCBA == aResource )
- {
- if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling) )
- {
- if ( audioOutput == EPELoudspeaker )
- {
- resourceId = EPhoneCallHandlingCallSetupToHandsetCBA;
- }
- else if ( audioOutput == EPEHandset )
- {
- resourceId = EPhoneCallHandlingCallSetupToIhfCBA;
- }
- }
- }
-
- // Is numberentry visible
- else if ( iState->IsNumberEntryUsedL() )
- {
- if ( iState->IsAutoLockOn() || !(iState->IsSimOk()) )
- {
- resourceId = EPhoneEmptyBackCBA;
- }
- else
- {
- TPhoneCmdParamInteger activeCallCount;
- iViewCommandHandle.ExecuteCommandL(
- EPhoneViewGetCountOfActiveCalls, &activeCallCount );
-
- TPhoneCmdParamCallStateData callStateData;
- callStateData.SetCallState( EPEStateRinging );
- iViewCommandHandle.HandleCommandL(
- EPhoneViewGetCallIdByState, &callStateData );
-
- TInt incomingCall = callStateData.CallId();
-
- if( activeCallCount.Integer() == ENoActiveCalls )
- {
- resourceId = EPhoneNumberAcqCBA;
- }
- else if ( activeCallCount.Integer() > ENoActiveCalls &&
- incomingCall > KErrNotFound )
- {
- resourceId = EPhoneCallHandlingCallWaitingCBA;
- }
- else
- {
- resourceId = EPhoneInCallNumberAcqCBA;
- }
- }
- }
// Check is Audio muted
- else if ( iStateMachine.PhoneEngineInfo()->AudioMute() )
+ if ( iStateMachine.PhoneEngineInfo()->AudioMute() )
{
resourceId = EPhoneCallHandlingInCallUnmuteCBA;
}
-
// Multicall swap
else if ( EPhoneCallHandlingNewCallSwapCBA == aResource )
{
resourceId = EPhoneCallHandlingNewCallSwapCBA;
}
-
// Call waiting cases
else if ( EPhoneCallHandlingCallWaitingCBA == aResource )
{
@@ -206,13 +155,11 @@
}
}
}
-
// Check is call in hold
else if ( hold.Boolean() )
{
resourceId = EPhoneCallHandlingInCallUnholdCBA;
}
-
// Is BT accessory connected
else if ( audioOutput == EPEBTAudioAccessory &&
IsVoiceCallAlertingOrActiveL() &&
@@ -220,13 +167,11 @@
{
resourceId = EPhoneCallHandlingInCallHandsetCBA;
}
-
else if ( audioOutput == EPEWiredAudioAccessory ||
coverHideSendEndKey || iState->IsSwivelClosed() )
{
resourceId = EPhoneCallHandlingInCallNoIhfCBA;
}
-
// Check BT availability
else if ( audioOutput == EPELoudspeaker )
{
@@ -243,7 +188,6 @@
{
resourceId = EPhoneCallHandlingInCallBtaaCBA;
}
-
SetCbaL( resourceId );
}
@@ -254,7 +198,6 @@
EXPORT_C void CPhoneCbaManager::UpdateIncomingCbaL( TInt aCallId )
{
__LOGMETHODSTARTEND(EPhoneControl,"CPhoneCbaManager::UpdateIncomingCbaL()" );
-
const TBool coverHideSendEndKey =
CPhoneCenRepProxy::Instance()->IsTelephonyFeatureSupported(
KTelephonyLVFlagCoverHideSendEndKey );
@@ -267,14 +210,19 @@
( ringingType == EProfileRingingTypeBeepOnce ));
// Update soft reject flag
- TBool softRejectActivated( ETrue );
+ iSoftRejectStatus = ETrue;
// VoIP calls do not support sms sending
if ( iStateMachine.PhoneEngineInfo()->CallType( aCallId ) == EPECallTypeVoIP
|| iStateMachine.PhoneEngineInfo()->RemotePhoneNumber( aCallId ).Length() == 0 )
{
- softRejectActivated = EFalse;
+ iSoftRejectStatus = EFalse;
}
-
+
+ TPhoneCmdParamBoolean dimSoftRejectParam;
+ dimSoftRejectParam.SetBoolean( !iSoftRejectStatus );
+ iViewCommandHandle.ExecuteCommand(
+ EPhoneViewSetSoftRejectDimmed, &dimSoftRejectParam );
+
TInt incomingCbaResourceId;
if ( iState->IsSwivelClosed() )
@@ -288,7 +236,6 @@
incomingCbaResourceId = EPhoneCallHandlingIncomingSwivelClosedCBA;
}
}
-
else if ( coverHideSendEndKey )
{
if ( callIsAlerting )
@@ -296,7 +243,7 @@
// Set CBA to Options..Silence
incomingCbaResourceId = EPhoneCallHandlingIncomingSliderCBA;
}
- else if ( softRejectActivated )
+ else if ( iSoftRejectStatus )
{
// Set CBA for soft reject
incomingCbaResourceId = EPhoneCallHandlingIncomingSoftRejectSliderCBA;
@@ -307,14 +254,13 @@
incomingCbaResourceId = EPhoneCallHandlingIncomingSilentSliderCBA;
}
}
-
else
{
if ( callIsAlerting )
{
- incomingCbaResourceId = GetIncomingCallSilenceCBA( softRejectActivated );
+ incomingCbaResourceId = GetIncomingCallSilenceCBA( iSoftRejectStatus );
}
- else if ( softRejectActivated )
+ else if ( iSoftRejectStatus )
{
// Set CBA for soft reject
incomingCbaResourceId = EPhoneCallHandlingIncomingSoftRejectCBA;
@@ -324,7 +270,6 @@
incomingCbaResourceId = EPhoneCallHandlingIncomingRejectCBA;
}
}
-
SetCbaL( incomingCbaResourceId );
}
@@ -335,10 +280,14 @@
EXPORT_C void CPhoneCbaManager::SetCbaL( TInt aResource )
{
__LOGMETHODSTARTEND(EPhoneControl,"CPhoneCbaManager::SetCbaL()" );
-
__PHONELOG1( EBasic, EPhoneControl,
"CPhoneCbaManager::SetCbaL : %d",aResource );
-
+ if ( EPhoneCallHandlingIncomingRejectCBA == aResource ||
+ EPhoneCallHandlingIncomingSoftRejectCBA == aResource )
+ {
+ SetSoftRejectDimmedFlag();
+ }
+
TPhoneCmdParamInteger integerParam;
integerParam.SetInteger(
CPhoneMainResourceResolver::Instance()->ResolveResourceID(
@@ -354,7 +303,6 @@
void CPhoneCbaManager::UpdateCbaSwivelStateChangedL()
{
__LOGMETHODSTARTEND(EPhoneControl,"CPhoneCbaManager::UpdateCbaSwivelStateChangedL()" );
-
TPhoneCmdParamCallStateData callStateData;
callStateData.SetCallState( EPEStateRinging );
iViewCommandHandle.HandleCommandL(
@@ -391,7 +339,6 @@
__LOGMETHODSTARTEND( EPhoneControl,
"CPhoneCbaManager::IsVoiceCallAlertingOrActiveL()" );
TBool retVal = EFalse;
-
// Fetch alerting call's id from view
TPhoneCmdParamCallStateData callStateData;
callStateData.SetCallState( EPEStateConnecting );
@@ -402,7 +349,6 @@
{
TPECallType type = iStateMachine.PhoneEngineInfo()->CallType(
callStateData.CallId() );
-
if ( EPECallTypeCSVoice == type || EPECallTypeVoIP == type )
{
retVal = ETrue;
@@ -415,7 +361,6 @@
callStateData.SetCallState( EPEStateConnected );
iViewCommandHandle.HandleCommandL(
EPhoneViewGetCallIdByState, &callStateData );
-
if ( callStateData.CallId() > KErrNotFound )
{
TPECallType type = iStateMachine.PhoneEngineInfo()->CallType(
@@ -447,6 +392,31 @@
}
// -----------------------------------------------------------
+// CPhoneCbaManager::SetSoftRejectStatus
+// -----------------------------------------------------------
+//
+void CPhoneCbaManager::SetSoftRejectStatus( TBool aSoftRejectStatus )
+ {
+ __LOGMETHODSTARTEND(EPhoneControl, "CPhoneCbaManager::SetSoftRejectStatus ()" );
+ // Set the internal TBool variable
+ iSoftRejectStatus = aSoftRejectStatus;
+ __PHONELOG1(
+ EBasic,
+ EPhoneControl,
+ "CPhoneCbaManager::SetSoftRejectStatus - iSoftRejectStatus =%d",
+ iSoftRejectStatus );
+ }
+
+// -----------------------------------------------------------
+// CPhoneCbaManager::SoftRejectStatus
+// -----------------------------------------------------------
+//
+TBool CPhoneCbaManager::SoftRejectStatus()
+ {
+ return iSoftRejectStatus;
+ }
+
+// -----------------------------------------------------------
// CPhoneCbaManager::GetIncomingCallSilenceCBA
// -----------------------------------------------------------
//
@@ -454,10 +424,35 @@
const TBool /*aSoftRejectActivated*/ )
{
__LOGMETHODSTARTEND(EPhoneControl, "CPhoneCbaManager::GetIncomingCallSilenceCBA ()" );
- TInt ret = EPhoneCallHandlingIncomingCBA;
- return ret;
+ return EPhoneCallHandlingIncomingCBA;
}
-// ======== LOCAL FUNCTIONS ========
+// -----------------------------------------------------------
+// CPhoneCbaManager::SetSoftRejectDimmedFlag
+// -----------------------------------------------------------
+//
+void CPhoneCbaManager::SetSoftRejectDimmedFlag()
+ {
+ __LOGMETHODSTARTEND(EPhoneControl, "CPhoneCbaManager::GetIncomingCallSilenceCBA ()" );
+ TPhoneCmdParamCallStateData callStateData;
+ callStateData.SetCallState( EPEStateRinging );
+ iViewCommandHandle.HandleCommandL(
+ EPhoneViewGetCallIdByState, &callStateData );
+ TPhoneCmdParamBoolean dimSoftRejectParam;
+ if ( callStateData.CallId() > KErrNotFound )
+ {
+ TBool privateNumber = iStateMachine.PhoneEngineInfo()->
+ RemotePhoneNumber( callStateData.CallId() ).Length() == 0;
+
+ dimSoftRejectParam.SetBoolean( privateNumber || !iSoftRejectStatus );
+ }
+ else
+ {
+ iSoftRejectStatus = ETrue;
+ dimSoftRejectParam.SetBoolean( EFalse );
+ }
+ iViewCommandHandle.ExecuteCommand(
+ EPhoneViewSetSoftRejectDimmed, &dimSoftRejectParam );
+ }