1 /* |
1 /* |
2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 * Copyright (c) 2005 - 2010 Nokia Corporation and/or its subsidiary(-ies). |
3 * All rights reserved. |
3 * All rights reserved. |
4 * This component and the accompanying materials are made available |
4 * This component and the accompanying materials are made available |
5 * under the terms of "Eclipse Public License v1.0" |
5 * under the terms of "Eclipse Public License v1.0" |
6 * which accompanies this distribution, and is available |
6 * which accompanies this distribution, and is available |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
21 |
21 |
22 #include "phoneui.pan" |
22 #include "phoneui.pan" |
23 #include "cphonetoolbarcontroller.h" |
23 #include "cphonetoolbarcontroller.h" |
24 #include "cphonebuttonscontroller.h" |
24 #include "cphonebuttonscontroller.h" |
25 #include "cphonedialercontroller.h" |
25 #include "cphonedialercontroller.h" |
|
26 #include "cphoneeasydialingcontroller.h" |
|
27 #include "cphonedtmfdialercontroller.h" |
26 #include "cphonemenucontroller.h" |
28 #include "cphonemenucontroller.h" |
27 #include "cphonenotecontroller.h" |
29 #include "cphonenotecontroller.h" |
28 #include "cphonequerycontroller.h" |
30 #include "cphonequerycontroller.h" |
29 #include "cphonekeycapturecontroller.h" |
31 #include "cphonekeycapturecontroller.h" |
30 #include "cphoneview.h" |
32 #include "cphoneview.h" |
104 #include <CPbkFieldInfo.h> |
106 #include <CPbkFieldInfo.h> |
105 #include <PbkFields.hrh> |
107 #include <PbkFields.hrh> |
106 #include <cphcntcontactid.h> |
108 #include <cphcntcontactid.h> |
107 #include <AknUtils.h> |
109 #include <AknUtils.h> |
108 #include <AknSgcc.h> |
110 #include <AknSgcc.h> |
109 #include <SettingsInternalCRKeys.h> |
111 #include <settingsinternalcrkeys.h> |
110 #include <UikonInternalPSKeys.h> |
112 #include <UikonInternalPSKeys.h> |
111 #include <startupdomainpskeys.h> |
113 #include <startupdomainpskeys.h> |
112 #include <utf.h> |
114 #include <utf.h> |
113 #include <activeidle2domainpskeys.h> |
115 #include <activeidle2domainpskeys.h> |
114 #include <telinternalpskeys.h> |
116 #include <telinternalpskeys.h> |
126 #include <vmnumber.h> |
128 #include <vmnumber.h> |
127 #include <coreapplicationuisdomainpskeys.h> |
129 #include <coreapplicationuisdomainpskeys.h> |
128 #include <gfxtranseffect/gfxtranseffect.h> |
130 #include <gfxtranseffect/gfxtranseffect.h> |
129 #include <akntranseffect.h> |
131 #include <akntranseffect.h> |
130 |
132 |
131 #include <GSLauncher.h> // Call Settings launch. |
133 #include <gslauncher.h> // Call Settings launch. |
|
134 |
|
135 #include <dialingextensioninterface.h> |
132 |
136 |
133 // Kastor effect IDs, aknskincontent/101f84b9.sel |
137 // Kastor effect IDs, aknskincontent/101f84b9.sel |
134 const TInt KTouchDialerOpenEffect = 1505; |
138 const TInt KTouchDialerOpenEffect = 1505; |
135 const TInt KTouchDialerCloseEffect = 1506; |
139 const TInt KTouchDialerCloseEffect = 1506; |
136 |
140 |
207 iApplicationExit = CPhoneApplicationExit::NewL( |
211 iApplicationExit = CPhoneApplicationExit::NewL( |
208 this, |
212 this, |
209 iEikEnv.WsSession(), |
213 iEikEnv.WsSession(), |
210 iEikEnv.WsSession().FindWindowGroupIdentifier( 0, KPhoneEikonServer ) ); |
214 iEikEnv.WsSession().FindWindowGroupIdentifier( 0, KPhoneEikonServer ) ); |
211 |
215 |
|
216 CCoeEnv* coeEnv = CCoeEnv::Static(); |
|
217 |
212 if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) ) |
218 if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) ) |
213 { |
219 { |
214 iButtonsController = CPhoneButtonsController::NewL( iBubbleWrapper->TouchPane() ); |
220 iButtonsController = CPhoneButtonsController::NewL( iBubbleWrapper->TouchPane() ); |
|
221 iToolbarController = CPhoneToolbarController::NewL( *coeEnv ); |
215 } |
222 } |
216 |
223 |
217 if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) ) |
224 if ( FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) ) |
218 { |
225 { |
|
226 iDialerActive = EFalse; |
|
227 // Create dialer controller |
|
228 iDialerController = CPhoneDialerController::NewL( iBubbleWrapper, |
|
229 *coeEnv ); |
219 // Create dialer view |
230 // Create dialer view |
220 iDialerView = CPhoneDialerView::NewL( aRect ); |
231 iDialerView = CPhoneDialerView::NewL( aRect ); |
221 iDialerView->DrawableWindow()->SetOrdinalPosition( -1 ); |
232 iDialerView->DrawableWindow()->SetOrdinalPosition( -1 ); |
222 iDialerView->MakeVisible( EFalse ); |
233 iDialerView->MakeVisible( EFalse ); |
223 // Create dialer |
234 // Create dialer |
224 iDialer = CDialer::NewL( *iDialerView, aRect ); |
235 iDialer = CDialer::NewL( *iDialerView, aRect, iDialerController ); |
225 // Set NE for bubbleWrapper |
236 // Set NE for bubbleWrapper |
226 iBubbleWrapper->SetNumberEntry( iDialer->NumberEntry() ); |
237 iBubbleWrapper->SetNumberEntry( iDialer->NumberEntry() ); |
227 CCoeEnv* coeEnv = static_cast<CCoeControl*>(iDialer)->ControlEnv(); |
238 iBubbleWrapper->SetNumberEntryObserver( *this ); |
228 iDialerController = CPhoneDialerController::NewL( *iBubbleWrapper, |
239 // Finalise dialer view |
229 *coeEnv, |
240 iDialerView->SetControl( iDialer ); |
230 *iMenuController ); |
241 iDialerView->ActivateL(); |
231 |
242 |
232 iToolbarController = CPhoneToolbarController::NewL( *coeEnv ); |
243 // Create controller for Easy Dialing |
233 |
244 iEasyDialingController = CPhoneEasyDialingController::NewL( *iDialer ); |
234 |
245 iDialerController->SetEasyDialingController( iEasyDialingController ); |
235 iDialerView->SetControl( iDialer ); |
246 |
236 iDialerView->ActivateL(); |
247 // Create controller for DTMF mode of the dialer |
237 iDialerActive = EFalse; |
248 iDtmfDialerController = CPhoneDtmfDialerController::NewL( iBubbleWrapper, |
|
249 *coeEnv ); |
238 } |
250 } |
239 |
251 |
240 User::LeaveIfError( iKeyLock.Connect() ); |
252 User::LeaveIfError( iKeyLock.Connect() ); |
241 |
253 |
242 // if you are using sgc-client's session to capserver, |
254 // if you are using sgc-client's session to capserver, |
743 case EPhoneViewUpdateCba: |
759 case EPhoneViewUpdateCba: |
744 SetCbaL( aCommandParam ); |
760 SetCbaL( aCommandParam ); |
745 break; |
761 break; |
746 |
762 |
747 case EPhoneViewMenuPane: |
763 case EPhoneViewMenuPane: |
748 iMenuController->SetReplaceFlag( IsReplaceAllowed() ); |
764 // First offer initialization to easydialing, and if no |
749 iMenuController->DynInitMenuPaneL( aCommandParam ); |
765 // initialization done, give it to the menu controller. |
|
766 if ( !iEasyDialingController->InitializeEasyDialingMenuL( aCommandParam ) ) |
|
767 { |
|
768 iMenuController->SetReplaceFlag( IsReplaceAllowed() ); |
|
769 iMenuController->DynInitMenuPaneL( aCommandParam ); |
|
770 } |
750 break; |
771 break; |
751 |
772 |
752 case EPhoneViewMenuBar: |
773 case EPhoneViewMenuBar: |
753 iMenuController->DynInitMenuBar( aCommandParam ); |
774 iMenuController->DynInitMenuBar( aCommandParam ); |
754 break; |
775 break; |
1055 { |
1076 { |
1056 if ( iDialer ) |
1077 if ( iDialer ) |
1057 { |
1078 { |
1058 TPhoneCmdParamBoolean* booleanParam = |
1079 TPhoneCmdParamBoolean* booleanParam = |
1059 static_cast<TPhoneCmdParamBoolean*>( aCommandParam ); |
1080 static_cast<TPhoneCmdParamBoolean*>( aCommandParam ); |
1060 iDialerController->SetDtmfDialerVisibleL( |
1081 if ( booleanParam->Boolean() ) |
1061 booleanParam->Boolean() ); |
1082 { |
|
1083 iDialer->SetControllerL( iDtmfDialerController ); |
|
1084 } |
|
1085 else |
|
1086 { |
|
1087 iDialer->SetControllerL( iDialerController ); |
|
1088 } |
1062 } |
1089 } |
1063 break; |
1090 break; |
1064 } |
1091 } |
1065 |
1092 |
1066 case EPhoneViewSetRetrictedDialer: |
1093 case EPhoneViewSetRestrictedDialer: |
1067 { |
1094 { |
1068 if ( iDialer ) |
1095 if ( iDialer ) |
1069 { |
1096 { |
1070 TPhoneCmdParamBoolean* booleanParam = |
1097 TPhoneCmdParamBoolean* booleanParam = |
1071 static_cast<TPhoneCmdParamBoolean*>( aCommandParam ); |
1098 static_cast<TPhoneCmdParamBoolean*>( aCommandParam ); |
1104 } |
1131 } |
1105 break; |
1132 break; |
1106 |
1133 |
1107 case EPhoneViewShowCustomizedDialer: |
1134 case EPhoneViewShowCustomizedDialer: |
1108 { |
1135 { |
1109 TPhoneCmdParamCustomDialer* customDialerParam = |
1136 if ( iDialer ) |
1110 static_cast<TPhoneCmdParamCustomDialer*>( aCommandParam ); |
1137 { |
1111 iDialerController->ShowCustomizedDialerL( |
1138 TPhoneCmdParamCustomDialer* customDialerParam = |
1112 customDialerParam->DialerController() ); |
1139 static_cast<TPhoneCmdParamCustomDialer*>( aCommandParam ); |
|
1140 iDialer->SetControllerL( customDialerParam->DialerController() ); |
|
1141 } |
1113 } |
1142 } |
1114 break; |
1143 break; |
1115 case EPhoneViewGetNumberFromEntry: |
1144 case EPhoneViewGetNumberFromEntry: |
1116 { |
1145 { |
1117 iBubbleWrapper->GetNumberEntryContent( aCommandParam ); |
1146 iBubbleWrapper->GetNumberEntryContent( aCommandParam ); |
1146 TPhoneCmdParamBoolean* booleanParam = |
1175 TPhoneCmdParamBoolean* booleanParam = |
1147 static_cast<TPhoneCmdParamBoolean*>( aCommandParam ); |
1176 static_cast<TPhoneCmdParamBoolean*>( aCommandParam ); |
1148 iToolbarController->DimToolbar( booleanParam->Boolean()); |
1177 iToolbarController->DimToolbar( booleanParam->Boolean()); |
1149 break; |
1178 break; |
1150 } |
1179 } |
|
1180 |
|
1181 case EPhoneViewSetInvalidCsPhoneNumberFlag: |
|
1182 iMenuController->SetInvalidCsPhoneNumberFlag( aCommandParam ); |
|
1183 break; |
|
1184 |
|
1185 case EPhoneViewGetInvalidCsPhoneNumberFlag: |
|
1186 iMenuController->GetInvalidCsPhoneNumberFlag( aCommandParam ); |
|
1187 break; |
|
1188 |
|
1189 case EPhoneViewGetEasyDialingMenuId: |
|
1190 case EPhoneViewGetEasyDialingCbaId: |
|
1191 { |
|
1192 iEasyDialingController->ExecuteCommandL( aCmdId, aCommandParam ); |
|
1193 } |
|
1194 break; |
1151 |
1195 |
1152 default: |
1196 default: |
1153 __PHONELOG( EBasic, EPhonePhoneapp, |
1197 __PHONELOG( EBasic, EPhonePhoneapp, |
1154 "CPhoneViewController::ExecuteCommandL -> UnKnownMessage !!! " ); |
1198 "CPhoneViewController::ExecuteCommandL -> UnKnownMessage !!! " ); |
1155 break; |
1199 break; |
1370 { |
1414 { |
1371 TPhoneTransEffectType type = |
1415 TPhoneTransEffectType type = |
1372 static_cast<TPhoneCmdParamTransEffect*>( aCommandParam )->Type(); |
1416 static_cast<TPhoneCmdParamTransEffect*>( aCommandParam )->Type(); |
1373 TBool isForeground = iAppui->IsForeground(); |
1417 TBool isForeground = iAppui->IsForeground(); |
1374 |
1418 |
1375 if ( isForeground && // newer run effect if not at front |
1419 // Check whether the idle is on foreground |
|
1420 TBool idleInFore = ForegroundApplicationWindowGroupId() == IdleWindowGroupId() ? |
|
1421 ETrue : EFalse; |
|
1422 |
|
1423 if ( isForeground && // Newer run effect if not at front |
1376 ( ( type == EPhoneTransEffectDialerCreate && !iDialerActive ) || |
1424 ( ( type == EPhoneTransEffectDialerCreate && !iDialerActive ) || |
1377 ( type == EPhoneTransEffectDialerOpen && !iDialerActive && |
1425 ( type == EPhoneTransEffectDialerOpen && !iDialerActive && |
1378 iBubbleWrapper->IsNumberEntryUsed() ) || |
1426 iBubbleWrapper->IsNumberEntryUsed() ) || |
1379 ( type == EPhoneTransEffectDialerClose && iDialerActive ) ) ) |
1427 ( type == EPhoneTransEffectDialerClose && iDialerActive ) ) ) |
1380 { |
1428 { |
1381 HandleTransitionEffect( type ); |
1429 HandleTransitionEffect( type ); |
1382 } |
1430 } |
|
1431 // In case transition is from idle to dialer show transition effects as well. |
|
1432 else if ( idleInFore && !iDialerActive && |
|
1433 type == EPhoneTransEffectDialerCreate ) |
|
1434 { |
|
1435 HandleTransitionEffect( type ); |
|
1436 } |
1383 } |
1437 } |
1384 break; |
1438 break; |
1385 } |
1439 } |
1386 |
1440 |
1387 case EPhoneViewEndTransEffect: |
1441 case EPhoneViewEndTransEffect: |
1445 } |
1498 } |
1446 } |
1499 } |
1447 break; |
1500 break; |
1448 |
1501 |
1449 case EPhoneViewEnableToolbarButton: |
1502 case EPhoneViewEnableToolbarButton: |
|
1503 { |
1450 TPhoneCmdParamInteger* integerParam = |
1504 TPhoneCmdParamInteger* integerParam = |
1451 static_cast<TPhoneCmdParamInteger*>( aCommandParam ); |
1505 static_cast<TPhoneCmdParamInteger*>( aCommandParam ); |
1452 iToolbarController->SetToolbarButtonDimmed( integerParam->Integer(), EFalse ); |
1506 iToolbarController->SetToolbarButtonDimmed( integerParam->Integer(), EFalse ); |
|
1507 } |
1453 break; |
1508 break; |
1454 |
1509 |
1455 default: |
1510 default: |
1456 __PHONELOG( EBasic, EPhonePhoneapp, "CPhoneViewController::ExecuteCommand -> UnHandledMessage !!! " ); |
1511 __PHONELOG( EBasic, EPhonePhoneapp, "CPhoneViewController::ExecuteCommand -> UnHandledMessage !!! " ); |
1457 break; |
1512 break; |
1491 EPhoneViewResponseSuccess : |
1546 EPhoneViewResponseSuccess : |
1492 EPhoneViewResponseFailed; |
1547 EPhoneViewResponseFailed; |
1493 } |
1548 } |
1494 break; |
1549 break; |
1495 |
1550 |
1496 case EPhoneViewIsNumberEntryNumericMode: |
1551 case EPhoneViewGetEasyDialingInFocusStatus: |
|
1552 case EEasyDialingVoiceCall: |
|
1553 case EEasyDialingVideoCall: |
|
1554 case EEasyDialingSendMessage: |
|
1555 case EEasyDialingOpenContact: |
|
1556 case EEasyDialingCallHandlingActivated: |
|
1557 case EEasyDialingEnterKeyAction: |
|
1558 case EEasyDialingOn: |
|
1559 case EEasyDialingOff: |
|
1560 if ( iDialer ) |
|
1561 { |
|
1562 viewResponse = iEasyDialingController->HandleCommandL( aCmdId ); |
|
1563 } |
|
1564 else |
|
1565 { |
|
1566 viewResponse = EPhoneViewResponseFailed; |
|
1567 } |
|
1568 break; |
|
1569 |
|
1570 case EPhoneViewIsNumberEntryNumericMode: |
1497 viewResponse = iBubbleWrapper->IsNENumericMode() ? |
1571 viewResponse = iBubbleWrapper->IsNENumericMode() ? |
1498 EPhoneViewResponseSuccess : |
1572 EPhoneViewResponseSuccess : |
1499 EPhoneViewResponseFailed; |
1573 EPhoneViewResponseFailed; |
1500 break; |
1574 break; |
1501 |
1575 |
1577 } |
1651 } |
1578 |
1652 |
1579 case EPhoneViewIsDTMFEditorVisible: |
1653 case EPhoneViewIsDTMFEditorVisible: |
1580 if ( iDialer ) |
1654 if ( iDialer ) |
1581 { |
1655 { |
1582 viewResponse = iDialerController->IsDTMFDialerVisible() ? |
1656 viewResponse = ( IsDtmfDialerActive() ? |
1583 EPhoneViewResponseSuccess : |
1657 EPhoneViewResponseSuccess : |
1584 EPhoneViewResponseFailed; |
1658 EPhoneViewResponseFailed ); |
1585 } |
1659 } |
1586 else // non-touch. |
1660 else // non-touch. |
1587 { |
1661 { |
1588 viewResponse = iQueryController->IsDTMFQueryVisible() ? |
1662 viewResponse = iQueryController->IsDTMFQueryVisible() ? |
1589 EPhoneViewResponseSuccess : |
1663 EPhoneViewResponseSuccess : |
1629 if ( iBlockingDialogIsDisplayed ) |
1703 if ( iBlockingDialogIsDisplayed ) |
1630 { |
1704 { |
1631 RemovePhoneDialogsL(); |
1705 RemovePhoneDialogsL(); |
1632 } |
1706 } |
1633 // Remove DTMF dialer when exist |
1707 // Remove DTMF dialer when exist |
1634 if ( iDialerController->IsDTMFDialerVisible() ) |
1708 if ( IsDtmfDialerActive() ) |
1635 { |
1709 { |
1636 static_cast<MEikCommandObserver*>( CEikonEnv::Static()->EikAppUi() ) |
1710 static_cast<MEikCommandObserver*>( CEikonEnv::Static()->EikAppUi() ) |
1637 ->ProcessCommandL( EPhoneDtmfDialerExit ); |
1711 ->ProcessCommandL( EPhoneDtmfDialerExit ); |
1638 } |
1712 } |
1639 else if ( iCustomization && |
1713 else if ( iCustomization && |
1640 iDialerController->IsCustomizedDialerVisible() ) |
1714 IsCustomDialerActive() ) |
1641 { |
1715 { |
1642 iCustomization->HandleCommandL( |
1716 iCustomization->HandleCommandL( |
1643 *this, EPhoneViewOpenCallHandling, NULL ); |
1717 *this, EPhoneViewOpenCallHandling, NULL ); |
1644 } |
1718 } |
1645 else |
1719 else |
1681 break; |
1755 break; |
1682 // Dialer specific commands end. |
1756 // Dialer specific commands end. |
1683 |
1757 |
1684 case EPhoneIsCustomizedDialerVisible: |
1758 case EPhoneIsCustomizedDialerVisible: |
1685 { |
1759 { |
1686 viewResponse = iDialerController->IsCustomizedDialerVisible() ? |
1760 viewResponse = IsCustomDialerActive() ? |
1687 EPhoneViewResponseSuccess : |
1761 EPhoneViewResponseSuccess : |
1688 EPhoneViewResponseFailed; |
1762 EPhoneViewResponseFailed; |
1689 } |
1763 } |
1690 break; |
1764 break; |
1691 |
1765 |
1692 case EPhoneViewHideCustomizedDialer: |
1766 case EPhoneViewHideCustomizedDialer: |
1693 { |
1767 { |
1694 iDialerController->HideCustomizedDialer(); |
1768 if ( iDialer ) |
1695 viewResponse = EPhoneViewResponseSuccess; |
1769 { |
|
1770 iDialer->SetControllerL( iDialerController ); |
|
1771 viewResponse = EPhoneViewResponseSuccess; |
|
1772 } |
1696 } |
1773 } |
1697 break; |
1774 break; |
1698 case EPhoneViewShowToolbar: |
1775 case EPhoneViewShowToolbar: |
1699 { |
1776 { |
1700 iToolbarController->ShowToolbar(); |
1777 iToolbarController->ShowToolbar(); |
1839 } |
1916 } |
1840 break; |
1917 break; |
1841 |
1918 |
1842 case EPhoneViewGetCustomizedDialerMenuResourceId: |
1919 case EPhoneViewGetCustomizedDialerMenuResourceId: |
1843 { |
1920 { |
1844 TInt resId = iDialerController->CustomizedMenuResourceId(); |
1921 TInt resId = iDialer->Controller()->MenuResourceId(); // easydialing change |
1845 static_cast<TPhoneCmdParamInteger*>( aCommandParam )->SetInteger( resId ); |
1922 static_cast<TPhoneCmdParamInteger*>( aCommandParam )->SetInteger( resId ); |
1846 viewResponse = EPhoneViewResponseSuccess; |
1923 viewResponse = EPhoneViewResponseSuccess; |
1847 } |
1924 } |
1848 break; |
1925 break; |
1849 case EPhoneViewGetCustomizedDialerCbaResourceId: |
1926 case EPhoneViewGetCustomizedDialerCbaResourceId: |
1850 { |
1927 { |
1851 TInt resId = iDialerController->CustomizedCbaResourceId(); |
1928 TInt resId = iDialer->Controller()->CbaResourceId(); // easydialing change |
1852 static_cast<TPhoneCmdParamInteger*>( aCommandParam )->SetInteger( resId ); |
1929 static_cast<TPhoneCmdParamInteger*>( aCommandParam )->SetInteger( resId ); |
1853 viewResponse = EPhoneViewResponseSuccess; |
1930 viewResponse = EPhoneViewResponseSuccess; |
1854 } |
1931 } |
1855 break; |
1932 break; |
1856 |
1933 |
1857 default: |
1934 default: |
1858 if ( iCustomization ) |
1935 if ( iCustomization ) |
1859 { |
1936 { |
1860 // Let customization handle view command |
1937 // Let customization handle view command |
1861 if ( iCustomization->HandleCommandL( |
1938 if ( iCustomization->HandleCommandL( |
2027 { |
2104 { |
2028 __PHONELOG( EBasic, EPhoneUIView, |
2105 __PHONELOG( EBasic, EPhoneUIView, |
2029 "CPhoneViewController::HandleResourceChangeL()" ) |
2106 "CPhoneViewController::HandleResourceChangeL()" ) |
2030 // Notify the bubble that there has been a resource change |
2107 // Notify the bubble that there has been a resource change |
2031 iBubbleWrapper->Control()->HandleResourceChange( aType ); |
2108 iBubbleWrapper->Control()->HandleResourceChange( aType ); |
2032 |
2109 |
2033 // Notify dialer and switch statuspane layout. |
2110 // Notify dialer and switch statuspane layout. |
2034 if ( iDialer ) |
2111 if ( iDialer ) |
2035 { |
2112 { |
2036 if ( aType == KEikDynamicLayoutVariantSwitch ) |
2113 if ( aType == KEikDynamicLayoutVariantSwitch ) |
2037 { |
2114 { |
2038 SwitchLayoutToFlatStatusPaneL( iDialerActive ); |
2115 SwitchLayoutToFlatStatusPaneL( iDialerActive ); |
2039 |
|
2040 if ( !iDialerActive && Layout_Meta_Data::IsLandscapeOrientation() ) |
|
2041 { |
|
2042 iDialerController->HideToolbar(); |
|
2043 } |
|
2044 } |
2116 } |
2045 static_cast<CCoeControl*>(iDialer)->HandleResourceChange( aType ); |
2117 static_cast<CCoeControl*>(iDialer)->HandleResourceChange( aType ); |
2046 } |
2118 } |
2047 } |
2119 } |
2048 |
2120 |
2062 EXPORT_C void CPhoneViewController::HandleLayoutChange( TRect aRect ) |
2134 EXPORT_C void CPhoneViewController::HandleLayoutChange( TRect aRect ) |
2063 { |
2135 { |
2064 __PHONELOG( EBasic, EPhoneUIView,"CPhoneViewController::HandleLayoutChange()" ) |
2136 __PHONELOG( EBasic, EPhoneUIView,"CPhoneViewController::HandleLayoutChange()" ) |
2065 iPhoneView->SetRect( aRect ); |
2137 iPhoneView->SetRect( aRect ); |
2066 if ( iDialerView ) |
2138 if ( iDialerView ) |
2067 { |
2139 { |
2068 iDialerView->SetRect( aRect ); |
2140 iDialerView->SetRect( aRect ); |
2069 iStatusPane->UpdateTitlePane(); |
2141 iStatusPane->UpdateTitlePane(); |
2070 } |
2142 } |
2071 } |
2143 } |
2072 |
2144 |
2073 // --------------------------------------------------------------------------- |
2145 // --------------------------------------------------------------------------- |
2074 // CPhoneViewController::StatusPaneDisplayed |
2146 // CPhoneViewController::StatusPaneDisplayed |
2075 // --------------------------------------------------------------------------- |
2147 // --------------------------------------------------------------------------- |
2107 { |
2179 { |
2108 iBlockingDialogIsDisplayed = aBlockingDialog; |
2180 iBlockingDialogIsDisplayed = aBlockingDialog; |
2109 __PHONELOG1( EBasic, EPhoneUIView, |
2181 __PHONELOG1( EBasic, EPhoneUIView, |
2110 "CPhoneViewController::SetBlockingDialogIsDisplayed(%d)", |
2182 "CPhoneViewController::SetBlockingDialogIsDisplayed(%d)", |
2111 iBlockingDialogIsDisplayed ); |
2183 iBlockingDialogIsDisplayed ); |
|
2184 } |
|
2185 |
|
2186 // --------------------------------------------------------------------------- |
|
2187 // CPhoneViewController::NumberEntryStateChanged |
|
2188 // --------------------------------------------------------------------------- |
|
2189 // |
|
2190 void CPhoneViewController::NumberEntryStateChanged( TBool aEntryHasText ) |
|
2191 { |
|
2192 iBubbleWrapper->HandleNumberEntryChanged(); |
|
2193 iMenuController->SetNumberEntryEmptyFlag( !aEntryHasText ); |
|
2194 ExecuteCommandL( EPhoneViewUpdateToolbar ); |
2112 } |
2195 } |
2113 |
2196 |
2114 // --------------------------------------------------------------------------- |
2197 // --------------------------------------------------------------------------- |
2115 // CPhoneViewController::GetBlockingDialogIsDisplayed |
2198 // CPhoneViewController::GetBlockingDialogIsDisplayed |
2116 // --------------------------------------------------------------------------- |
2199 // --------------------------------------------------------------------------- |
2594 static_cast<TPhoneCmdParamInteger*>( aCommandParam ); |
2677 static_cast<TPhoneCmdParamInteger*>( aCommandParam ); |
2595 |
2678 |
2596 TInt resourceId = cbaResource->Integer(); |
2679 TInt resourceId = cbaResource->Integer(); |
2597 |
2680 |
2598 iCba->SetCommandSetL( resourceId ); |
2681 iCba->SetCommandSetL( resourceId ); |
|
2682 |
2599 iCba->DrawDeferred(); |
2683 iCba->DrawDeferred(); |
|
2684 |
2600 } |
2685 } |
2601 |
2686 |
2602 // --------------------------------------------------------------------------- |
2687 // --------------------------------------------------------------------------- |
2603 // CPhoneViewController::SetEikonNotifiersDisabled |
2688 // CPhoneViewController::SetEikonNotifiersDisabled |
2604 // --------------------------------------------------------------------------- |
2689 // --------------------------------------------------------------------------- |
3732 |
3817 |
3733 if ( !iDialerActive ) |
3818 if ( !iDialerActive ) |
3734 { |
3819 { |
3735 iDialerActive = ETrue; |
3820 iDialerActive = ETrue; |
3736 |
3821 |
|
3822 // Hide in-call view toolbar |
|
3823 iToolbarController->HideToolbar(); |
|
3824 |
|
3825 // Ensure that toolbar and menu commands are up-to-date |
|
3826 TBuf<1> temp; // we are only interested if the text is empty or not |
|
3827 iDialer->GetTextFromNumberEntry( temp ); |
|
3828 NumberEntryStateChanged( temp.Length() > 0 ); |
|
3829 |
3737 // Make dialer view top most |
3830 // Make dialer view top most |
3738 iDialerView->DrawableWindow()->SetOrdinalPosition( |
3831 iDialerView->DrawableWindow()->SetOrdinalPosition( |
3739 iPhoneView->DrawableWindow()->OrdinalPosition() ); |
3832 iPhoneView->DrawableWindow()->OrdinalPosition() ); |
3740 iDialerView->MakeVisible( ETrue ); |
|
3741 iDialerView->DrawNow(); |
|
3742 |
3833 |
3743 SwitchLayoutToFlatStatusPaneL( ETrue ); |
3834 SwitchLayoutToFlatStatusPaneL( ETrue ); |
3744 |
3835 |
3745 iPhoneView->DrawableWindow()->SetOrdinalPosition( -1 ); |
3836 iPhoneView->DrawableWindow()->SetOrdinalPosition( -1 ); |
3746 iPhoneView->MakeVisible( EFalse ); |
3837 iPhoneView->MakeVisible( EFalse ); |
3747 |
3838 |
3748 iToolbarController->HideToolbar(); |
|
3749 iDialerController->ShowToolbar(); |
|
3750 |
|
3751 // Update control stack |
3839 // Update control stack |
3752 iAppui->AddToStackL( iDialerView ); |
3840 iAppui->AddToStackL( iDialerView ); |
3753 iAppui->RemoveFromStack( iPhoneView ); |
3841 iAppui->RemoveFromStack( iPhoneView ); |
3754 } |
3842 |
|
3843 // Don't make dialer view visible before status pane is updated. |
|
3844 // This prevents unnecessary resizings. |
|
3845 iDialerView->MakeVisible( ETrue ); |
|
3846 iDialerView->DrawDeferred(); |
|
3847 } |
3755 } |
3848 } |
3756 |
3849 |
3757 // --------------------------------------------------------------------------- |
3850 // --------------------------------------------------------------------------- |
3758 // CPhoneViewController::SetControltoCallHandlingL |
3851 // CPhoneViewController::SetControltoCallHandlingL |
3759 // --------------------------------------------------------------------------- |
3852 // --------------------------------------------------------------------------- |
3761 void CPhoneViewController::SetControltoCallHandlingL() |
3854 void CPhoneViewController::SetControltoCallHandlingL() |
3762 { |
3855 { |
3763 __PHONELOG1( EBasic, EPhoneUIView, |
3856 __PHONELOG1( EBasic, EPhoneUIView, |
3764 "CPhoneViewController::SetControltoCallHandlingL iDialerActive (%d)", iDialerActive ); |
3857 "CPhoneViewController::SetControltoCallHandlingL iDialerActive (%d)", iDialerActive ); |
3765 |
3858 |
|
3859 // If securitymode or emergency call not show toolbar |
|
3860 if ( !iPhoneView->IsSecurityMode() && |
|
3861 !iIncallIndicator->IsEmergencyCall() ) |
|
3862 { |
|
3863 iToolbarController->ShowToolbar(); |
|
3864 } |
3766 if ( iDialerActive ) |
3865 if ( iDialerActive ) |
3767 { |
3866 { |
3768 iDialerActive = EFalse; |
3867 iDialerActive = EFalse; |
3769 |
3868 // Hide dialer view. Do this before resizing status pane to prevent unnecessary |
|
3869 // resizing of dialer components. Hiding dialer view already before showing |
|
3870 // phone view might cause screen flickering but tests have proven it doesn't happen. |
|
3871 iDialerView->MakeVisible( EFalse ); |
|
3872 |
3770 SwitchLayoutToFlatStatusPaneL( EFalse ); |
3873 SwitchLayoutToFlatStatusPaneL( EFalse ); |
3771 |
3874 |
3772 // Make call handling view top most |
3875 // Make call handling view top most |
3773 iPhoneView->DrawableWindow()->SetOrdinalPosition( |
3876 iPhoneView->DrawableWindow()->SetOrdinalPosition( |
3774 iDialerView->DrawableWindow()->OrdinalPosition() ); |
3877 iDialerView->DrawableWindow()->OrdinalPosition() ); |
3775 iPhoneView->MakeVisible( ETrue ); |
3878 iPhoneView->MakeVisible( ETrue ); |
3776 iPhoneView->DrawNow(); |
3879 iPhoneView->DrawNow(); |
3777 |
3880 |
3778 iDialerView->DrawableWindow()->SetOrdinalPosition( -1 ); |
3881 iDialerView->DrawableWindow()->SetOrdinalPosition( -1 ); |
3779 iDialerView->MakeVisible( EFalse ); |
|
3780 |
|
3781 iDialerController->HideToolbar(); |
|
3782 |
3882 |
3783 // Update control stack |
3883 // Update control stack |
3784 iAppui->AddToStackL( iPhoneView ); |
3884 iAppui->AddToStackL( iPhoneView ); |
3785 iAppui->RemoveFromStack( iDialerView ); |
3885 iAppui->RemoveFromStack( iDialerView ); |
3786 } |
3886 |
3787 |
3887 iEasyDialingController->HandleCommandL( EEasyDialingCallHandlingActivated ); |
3788 // If securitymode or emergency call not show toolbar |
3888 } |
3789 if ( !iPhoneView->IsSecurityMode() && |
|
3790 !iIncallIndicator->IsEmergencyCall() ) |
|
3791 { |
|
3792 iToolbarController->ShowToolbar(); |
|
3793 } |
|
3794 } |
3889 } |
3795 |
3890 |
3796 // --------------------------------------------------------------------------- |
3891 // --------------------------------------------------------------------------- |
3797 // CPhoneViewController::SetDialerControlAndVisibilityL |
3892 // CPhoneViewController::SetDialerControlAndVisibilityL |
3798 // --------------------------------------------------------------------------- |
3893 // --------------------------------------------------------------------------- |
3895 booleanParam->SetBoolean( EFalse ); |
3990 booleanParam->SetBoolean( EFalse ); |
3896 } |
3991 } |
3897 } |
3992 } |
3898 |
3993 |
3899 // --------------------------------------------------------------------------- |
3994 // --------------------------------------------------------------------------- |
3900 // CPhoneViewController::NumberEntryChangedHandler |
3995 // CPhoneViewController::IsDtmfDialerActive |
3901 // --------------------------------------------------------------------------- |
3996 // --------------------------------------------------------------------------- |
3902 // |
3997 // |
3903 MPhoneNumberEntryChangedHandler* CPhoneViewController::NumberEntryChangedHandler() const |
3998 TBool CPhoneViewController::IsDtmfDialerActive() const |
3904 { |
3999 { |
3905 if( iDialerController ) |
4000 TBool ret = |
3906 return iDialerController; |
4001 ( iDialer && iDtmfDialerController && |
3907 else |
4002 iDialer->Controller() == iDtmfDialerController ); |
3908 return iBubbleWrapper; |
4003 return ret; |
3909 |
4004 } |
|
4005 |
|
4006 // --------------------------------------------------------------------------- |
|
4007 // CPhoneViewController::IsCustomDialerActive |
|
4008 // --------------------------------------------------------------------------- |
|
4009 // |
|
4010 TBool CPhoneViewController::IsCustomDialerActive() const |
|
4011 { |
|
4012 TBool ret = EFalse; |
|
4013 if ( iDialer ) |
|
4014 { |
|
4015 MPhoneDialerController* curController = iDialer->Controller(); |
|
4016 ret = ( curController && |
|
4017 curController != iDialerController && |
|
4018 curController != iDtmfDialerController ); |
|
4019 } |
|
4020 return ret; |
3910 } |
4021 } |
3911 |
4022 |
3912 // End of File |
4023 // End of File |