30 #ifdef RD_INTELLIGENT_TEXT_INPUT |
30 #ifdef RD_INTELLIGENT_TEXT_INPUT |
31 #include <AknFepInternalPSKeys.h> // KAknFepFnKeyState |
31 #include <AknFepInternalPSKeys.h> // KAknFepFnKeyState |
32 #endif |
32 #endif |
33 #include "avkoninternalpskeys.h" // KAknIdleAppWindowGroupId |
33 #include "avkoninternalpskeys.h" // KAknIdleAppWindowGroupId |
34 #include <AknCapServerDefs.h> |
34 #include <AknCapServerDefs.h> |
|
35 #include <activeidle2domainpskeys.h> |
35 #include <eikpriv.rsg> |
36 #include <eikpriv.rsg> |
36 #include <coedef.h> |
37 #include <coedef.h> |
37 #include <eiksvdef.h> |
38 #include <eiksvdef.h> |
38 #include <aknconsts.h> |
39 #include <aknconsts.h> |
39 #include <AknsConstants.h> |
40 #include <AknsConstants.h> |
71 #ifdef RD_UI_TRANSITION_EFFECTS_LAYOUT_SWITCH |
72 #ifdef RD_UI_TRANSITION_EFFECTS_LAYOUT_SWITCH |
72 #include <gfxtranseffect/gfxtranseffect.h> |
73 #include <gfxtranseffect/gfxtranseffect.h> |
73 #include <akntranseffect.h> // for Transition effect enumerations |
74 #include <akntranseffect.h> // for Transition effect enumerations |
74 #endif |
75 #endif |
75 |
76 |
|
77 #ifdef SYMBIAN_BUILD_GCE |
|
78 #include <alf/alfclientbase.h> |
|
79 #endif |
|
80 |
76 #ifdef RD_INTELLIGENT_TEXT_INPUT |
81 #ifdef RD_INTELLIGENT_TEXT_INPUT |
77 #include <AvkonInternalCRKeys.h> |
82 #include <AvkonInternalCRKeys.h> |
78 |
83 |
79 #include "akncapserverdiscreetpopuphandler.h" |
84 #include "akncapserverdiscreetpopuphandler.h" |
80 |
85 |
81 const TUid KPtiEnginePSUid = {0x101F8610}; // Same as PtiEngine dll |
86 const TUid KPtiEnginePSUid = {0x101F8610}; // Same as PtiEngine dll |
82 const TUid KPhoneUid = { 0x100058B3 }; |
87 |
83 enum TPtiEnginePSKeys |
88 enum TPtiEnginePSKeys |
84 { |
89 { |
85 EKeyMapPropertyCount, |
90 EKeyMapPropertyCount, |
86 EKeyMapPropertyData, |
91 EKeyMapPropertyData, |
87 EKeyMapPropertyCount2, |
92 EKeyMapPropertyCount2, |
100 |
105 |
101 const TInt KWgPriorityCoverEverything = 10000; |
106 const TInt KWgPriorityCoverEverything = 10000; |
102 const TInt KKeyEventICodeThreshold = 0x001f; |
107 const TInt KKeyEventICodeThreshold = 0x001f; |
103 const TInt KMaxLanguageCodeLength = 6; // 5 digits + separator |
108 const TInt KMaxLanguageCodeLength = 6; // 5 digits + separator |
104 |
109 |
105 |
110 const TInt KRemoveBlankDelay = 200000; // 0.2s |
106 |
111 |
107 _LIT(KEikSrvUIResFileName, "z:\\resource\\eiksrvui.rsc"); |
112 _LIT(KEikSrvUIResFileName, "z:\\resource\\eiksrvui.rsc"); |
108 _LIT_SECURITY_POLICY_PASS(KPassReadPolicy); |
113 _LIT_SECURITY_POLICY_PASS(KPassReadPolicy); |
109 _LIT_SECURITY_POLICY_C1(KWriteDDPolicy, ECapabilityWriteDeviceData); |
114 _LIT_SECURITY_POLICY_C1(KWriteDDPolicy, ECapabilityWriteDeviceData); |
110 _LIT_SECURITY_POLICY_C1(KReadPolicy, ECapability_None); |
115 _LIT_SECURITY_POLICY_C1(KReadPolicy, ECapability_None); |
222 // we panic here if something goes wrong as startup will fail anyway. |
229 // we panic here if something goes wrong as startup will fail anyway. |
223 __ASSERT_ALWAYS(err==KErrNone, User::Invariant()); |
230 __ASSERT_ALWAYS(err==KErrNone, User::Invariant()); |
224 |
231 |
225 me->iEikSrv.AllowNotifierAppServersToLoad(); |
232 me->iEikSrv.AllowNotifierAppServersToLoad(); |
226 me->iEikSrv.Close(); // currently there is no use to keep this session alive. |
233 me->iEikSrv.Close(); // currently there is no use to keep this session alive. |
227 |
234 |
|
235 #ifdef SYMBIAN_BUILD_GCE |
|
236 TRAP(err, CAlfAsynchStartup::StartL()); |
|
237 #endif |
|
238 |
228 return err; |
239 return err; |
229 } |
240 } |
230 |
241 |
231 void CAknCapAppServerAppUi::LoadAlternateFsPlugin() |
242 void CAknCapAppServerAppUi::LoadAlternateFsPlugin() |
232 { |
243 { |
264 void CAknCapAppServerAppUi::ConstructL() |
275 void CAknCapAppServerAppUi::ConstructL() |
265 { |
276 { |
266 User::SetCritical(User::ESystemCritical); |
277 User::SetCritical(User::ESystemCritical); |
267 |
278 |
268 InitiateOFNStatus(); |
279 InitiateOFNStatus(); |
|
280 |
|
281 iEikonEnv->SetSystem( ETrue ); |
269 |
282 |
270 // install default FEP if none set before |
283 // install default FEP if none set before |
271 if (iEikonEnv->FepUid() == KNullUid) |
284 if (iEikonEnv->FepUid() == KNullUid) |
272 { |
285 { |
273 iEikonEnv->InstallFepL(TUid::Uid(0x101FD65A)); |
286 iEikonEnv->InstallFepL(TUid::Uid(0x101FD65A)); |
356 iKeyCaptureControl->ConstructL(*this); |
369 iKeyCaptureControl->ConstructL(*this); |
357 |
370 |
358 TFileName fileName(KEikSrvUIResFileName); |
371 TFileName fileName(KEikSrvUIResFileName); |
359 BaflUtils::NearestLanguageFile(iEikonEnv->FsSession(),fileName); |
372 BaflUtils::NearestLanguageFile(iEikonEnv->FsSession(),fileName); |
360 iResourceFileOffset=iCoeEnv->AddResourceFileL(fileName); |
373 iResourceFileOffset=iCoeEnv->AddResourceFileL(fileName); |
361 |
|
362 // Create FSW |
|
363 iFSControl= new (ELeave) CAknFastSwapWindowControl(*this); |
|
364 iFSControl->ConstructL(); |
|
365 |
374 |
366 // MMC unlocker |
375 // MMC unlocker |
367 iMMCUnlock = CAknMMCPasswordRequester::NewL(); |
376 iMMCUnlock = CAknMMCPasswordRequester::NewL(); |
368 |
377 |
369 // Boost our priority similar to eikon server. |
378 // Boost our priority similar to eikon server. |
430 TCallBack(GlobalNotesAllowedCallBack, this), |
439 TCallBack(GlobalNotesAllowedCallBack, this), |
431 iGlobalNotesAllowedProperty); |
440 iGlobalNotesAllowedProperty); |
432 |
441 |
433 iGlobalNotesAllowedSubscriber->Subscribe(); |
442 iGlobalNotesAllowedSubscriber->Subscribe(); |
434 |
443 |
|
444 // Start listening "telephony idle uid" property. |
|
445 User::LeaveIfError(iTelephonyIdleUidProperty.Attach( |
|
446 KPSUidAiInformation, |
|
447 KActiveIdleUid)); |
|
448 |
|
449 iTelephonyIdleUidSubscriber = new (ELeave) CPropertySubscriber( |
|
450 TCallBack(TelephonyIdleUidCallBack, this), |
|
451 iTelephonyIdleUidProperty); |
|
452 |
|
453 iTelephonyIdleUidSubscriber->Subscribe(); |
435 #ifdef RD_INTELLIGENT_TEXT_INPUT |
454 #ifdef RD_INTELLIGENT_TEXT_INPUT |
436 |
455 |
437 TInt err1 = 0; |
456 TInt err1 = 0; |
438 |
457 |
439 err1 = RProperty::Define(KPtiEnginePSUid, EKeyMapPropertyCount, RProperty::EInt, |
458 err1 = RProperty::Define(KPtiEnginePSUid, EKeyMapPropertyCount, RProperty::EInt, |
464 } |
483 } |
465 #endif |
484 #endif |
466 |
485 |
467 // Create capserver discreetpopuphandler |
486 // Create capserver discreetpopuphandler |
468 CAknCapServerDiscreetPopupHandler::CreateDiscreetPopupHandlerL(); |
487 CAknCapServerDiscreetPopupHandler::CreateDiscreetPopupHandlerL(); |
469 LoadAlternateFsPlugin(); |
488 |
470 |
489 LoadAlternateFsPlugin(); |
|
490 // Create FSW |
|
491 if ( iAlternateFS == NULL ) |
|
492 { |
|
493 iFSControl= new (ELeave) CAknFastSwapWindowControl(*this); |
|
494 iFSControl->ConstructL(); |
|
495 } |
471 ProcessInitFlipStatus(); |
496 ProcessInitFlipStatus(); |
472 } |
497 } |
473 |
498 |
474 TKeyResponse CAknCapAppServerAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) |
499 TKeyResponse CAknCapAppServerAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) |
475 { |
500 { |
559 iAlternateFS->Dismiss(); |
584 iAlternateFS->Dismiss(); |
560 } |
585 } |
561 } |
586 } |
562 else |
587 else |
563 { |
588 { |
564 if ( aMessage.Int0() ) |
589 if ( iFSControl ) |
565 { |
590 { |
566 TInt err = KErrNone; |
591 if ( aMessage.Int0() ) |
567 TRAP( err, iFSControl->InitializeWindowGroupListL( EFalse )); |
592 { |
568 if ( !err ) |
593 TInt err = KErrNone; |
569 { |
594 TRAP( err, iFSControl->InitializeWindowGroupListL( EFalse )); |
570 iFSControl->RunFastSwapL(); |
595 if ( !err ) |
|
596 { |
|
597 iFSControl->RunFastSwapL(); |
|
598 } |
571 } |
599 } |
572 } |
600 else |
573 else |
601 { |
574 { |
602 iFSControl->CloseFastSwap(); |
575 iFSControl->CloseFastSwap(); |
603 } |
576 } |
604 } |
577 } |
605 } |
578 } |
606 } |
579 aMessage.Complete(KErrNone); |
607 aMessage.Complete(KErrNone); |
580 break; |
608 break; |
581 } |
609 } |
582 case EAknSRefreshTaskList: |
610 case EAknSRefreshTaskList: |
583 { |
611 { |
584 TInt err = UpdateTaskListL( ETrue ); |
612 TInt err = UpdateTaskListL( ETrue ); |
585 if ( err != KErrNone ) |
613 if ( err != KErrNone ) |
586 { |
614 { |
587 iFSControl->CloseFastSwap(); |
615 if ( iFSControl ) |
|
616 { |
|
617 iFSControl->CloseFastSwap(); |
|
618 } |
588 } |
619 } |
589 aMessage.Complete(err); |
620 aMessage.Complete(err); |
590 break; |
621 break; |
591 } |
622 } |
592 default: |
623 default: |
777 if(iAlternateFS && iAlternateFS->IsReady() && iAlternateFS->IsVisible()) |
808 if(iAlternateFS && iAlternateFS->IsReady() && iAlternateFS->IsVisible()) |
778 { |
809 { |
779 iAlternateFS->HandleShortAppKeyPress(); |
810 iAlternateFS->HandleShortAppKeyPress(); |
780 return ETrue; |
811 return ETrue; |
781 } |
812 } |
782 if (iFSControl->IsVisible()) |
813 if ( iFSControl ) |
783 { |
814 { |
784 iFSControl->HandleShortAppsKeyPressL(); |
815 if (iFSControl->IsVisible()) |
785 return ETrue; |
816 { |
786 } |
817 iFSControl->HandleShortAppsKeyPressL(); |
|
818 return ETrue; |
|
819 } |
|
820 } |
|
821 |
787 |
822 |
788 return EFalse; |
823 return EFalse; |
789 } |
824 } |
790 |
825 |
791 TBool CAknCapAppServerAppUi::HandleLongAppsKeyPressL() |
826 TBool CAknCapAppServerAppUi::HandleLongAppsKeyPressL() |
832 { |
871 { |
833 iStatusPane->SwitchLayoutL(aLayoutResId); |
872 iStatusPane->SwitchLayoutL(aLayoutResId); |
834 } |
873 } |
835 } |
874 } |
836 |
875 |
837 void CAknCapAppServerAppUi::BlankScreenL(TBool aBlank, TBool aToForeground) |
876 TInt CAknCapAppServerAppUi::RemoveBlankCallBack( TAny* aThis ) |
|
877 { |
|
878 static_cast<CAknCapAppServerAppUi*>( aThis )->DoRemoveBlank(); |
|
879 return EFalse; |
|
880 } |
|
881 |
|
882 void CAknCapAppServerAppUi::BlankScreenL(TBool aBlank, TBool /* aToForeground */) |
838 { |
883 { |
839 if (aBlank) |
884 if (aBlank) |
840 { |
885 { |
841 if (++iBlankWinRefCount == 1) |
886 if (++iBlankWinRefCount == 1) |
842 { |
887 { |
|
888 delete iRemoveBlankCallBack; |
|
889 iRemoveBlankCallBack = NULL; |
|
890 |
|
891 // We are ignoring the foreground parameter because we only have one |
|
892 // type of blanking behaviour in AlfClient. Act as if ETrue |
|
893 iAlfClient.BlankScreen(ETrue); |
|
894 iForegroundBlankScreen = ETrue; // always as if foreground blanking |
|
895 /* |
843 ASSERT(!iBlankWin); |
896 ASSERT(!iBlankWin); |
844 if (aToForeground) |
897 if (aToForeground) |
845 { |
898 { |
846 iBackdropWindowGroup.SetOrdinalPosition(0, KWgPriorityCoverEverything); |
899 iBackdropWindowGroup.SetOrdinalPosition(0, KWgPriorityCoverEverything); |
847 } |
900 } |
849 { |
902 { |
850 iBackdropWindowGroup.SetOrdinalPosition(1, ECoeWinPriorityNormal); |
903 iBackdropWindowGroup.SetOrdinalPosition(1, ECoeWinPriorityNormal); |
851 } |
904 } |
852 iBlankWin = CAknServBlankWin::NewL(iBackdropWindowGroup, iStatusPane); |
905 iBlankWin = CAknServBlankWin::NewL(iBackdropWindowGroup, iStatusPane); |
853 iForegroundBlankScreen = aToForeground; |
906 iForegroundBlankScreen = aToForeground; |
|
907 */ |
854 } |
908 } |
855 } |
909 } |
856 else if (--iBlankWinRefCount <= 0) |
910 else if (--iBlankWinRefCount <= 0) |
857 { |
911 { |
858 iBlankWinRefCount = 0; |
912 iBlankWinRefCount = 0; |
859 if (iForegroundBlankScreen) |
913 |
860 { |
914 // Blanking IPC is delayed or restarted |
|
915 delete iRemoveBlankCallBack; |
|
916 iRemoveBlankCallBack = NULL; |
|
917 iRemoveBlankCallBack = CPeriodic::NewL(CActive::EPriorityLow); |
|
918 |
|
919 iRemoveBlankCallBack->Start( |
|
920 KRemoveBlankDelay, |
|
921 KRemoveBlankDelay, |
|
922 TCallBack(RemoveBlankCallBack, this)); |
|
923 |
|
924 |
|
925 /* if (iForegroundBlankScreen) |
|
926 { |
|
927 */ |
861 #ifdef RD_UI_TRANSITION_EFFECTS_LAYOUT_SWITCH |
928 #ifdef RD_UI_TRANSITION_EFFECTS_LAYOUT_SWITCH |
|
929 /* |
862 CWsScreenDevice* screen = iEikonEnv->ScreenDevice(); |
930 CWsScreenDevice* screen = iEikonEnv->ScreenDevice(); |
863 /* |
|
864 RWsSession& ws = iEikonEnv->WsSession(); |
931 RWsSession& ws = iEikonEnv->WsSession(); |
865 TInt wgId = ws.GetFocusWindowGroup(); |
932 TInt wgId = ws.GetFocusWindowGroup(); |
866 CApaWindowGroupName* wgName = CApaWindowGroupName::NewL(ws, wgId); |
933 CApaWindowGroupName* wgName = CApaWindowGroupName::NewL(ws, wgId); |
867 CleanupStack::PushL( wgName ); |
934 CleanupStack::PushL( wgName ); |
868 TUid appUid = wgName->AppUid(); |
935 TUid appUid = wgName->AppUid(); |
872 // TRect( screen->SizeInPixels() ), |
939 // TRect( screen->SizeInPixels() ), |
873 // AknTransEffect::EParameterType, |
940 // AknTransEffect::EParameterType, |
874 // AknTransEffect::GfxTransParam( KTfxServerUid ) |
941 // AknTransEffect::GfxTransParam( KTfxServerUid ) |
875 // ); |
942 // ); |
876 |
943 |
877 GfxTransEffect::EndFullScreen(); |
944 // GfxTransEffect::EndFullScreen(); |
878 #endif |
945 #endif |
879 iBackdropWindowGroup.SetOrdinalPosition(1, ECoeWinPriorityNormal); |
946 /* iBackdropWindowGroup.SetOrdinalPosition(1, ECoeWinPriorityNormal); |
880 } |
947 } |
881 delete iBlankWin; |
948 delete iBlankWin; |
882 iBlankWin = 0; |
949 iBlankWin = 0; |
|
950 */ |
883 iForegroundBlankScreen = EFalse; |
951 iForegroundBlankScreen = EFalse; |
884 } |
952 } |
885 } |
953 } |
886 |
954 |
|
955 void CAknCapAppServerAppUi::DoRemoveBlank() |
|
956 { |
|
957 RDebug::Print( _L("CAknCapAppServerAppUi::DoRemoveBlank")); |
|
958 iAlfClient.BlankScreen(EFalse); |
|
959 delete iRemoveBlankCallBack; |
|
960 iRemoveBlankCallBack = NULL; |
|
961 } |
|
962 |
887 void CAknCapAppServerAppUi::SwapLayoutSwitchBlankScreenL() |
963 void CAknCapAppServerAppUi::SwapLayoutSwitchBlankScreenL() |
888 { |
964 { |
|
965 /* |
889 if (iBlankWin) |
966 if (iBlankWin) |
890 { |
967 { |
891 if (!iForegroundBlankScreen) |
968 if (!iForegroundBlankScreen) |
892 { |
969 { |
893 iBackdropWindowGroup.SetOrdinalPosition(0, KWgPriorityCoverEverything); |
970 iBackdropWindowGroup.SetOrdinalPosition(0, KWgPriorityCoverEverything); |
896 CAknServBlankWin* newBlankWin = CAknServBlankWin::NewL(iBackdropWindowGroup, iStatusPane); |
973 CAknServBlankWin* newBlankWin = CAknServBlankWin::NewL(iBackdropWindowGroup, iStatusPane); |
897 newBlankWin->SetLayoutBlank(ETrue); |
974 newBlankWin->SetLayoutBlank(ETrue); |
898 delete iBlankWin; |
975 delete iBlankWin; |
899 iBlankWin = newBlankWin; |
976 iBlankWin = newBlankWin; |
900 } |
977 } |
|
978 */ |
901 } |
979 } |
902 |
980 |
903 TBool CAknCapAppServerAppUi::IsDisplayingForegroundBlankScreen() const |
981 TBool CAknCapAppServerAppUi::IsDisplayingForegroundBlankScreen() const |
904 { |
982 { |
905 return iForegroundBlankScreen; |
983 return iForegroundBlankScreen; |
943 } |
1021 } |
944 } |
1022 } |
945 |
1023 |
946 void CAknCapAppServerAppUi::HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination) |
1024 void CAknCapAppServerAppUi::HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination) |
947 { |
1025 { |
948 if ( iMessageReaderLongPressDetector && !IsAppsKeySuppressed() && !iFSControl->IsDisplayed() ) |
1026 if ( iMessageReaderLongPressDetector && |
|
1027 !IsAppsKeySuppressed() && |
|
1028 ( iFSControl == NULL || !iFSControl->IsDisplayed() ) ) |
949 { |
1029 { |
950 // Message Reader can be launched by long pressing left soft key |
1030 // Message Reader can be launched by long pressing left soft key |
951 // events need to be intercepted/consumed before they are forwarded to cba |
1031 // events need to be intercepted/consumed before they are forwarded to cba |
952 if ( iMessageReaderLongPressDetector->HandleWsEventL( aEvent, aDestination ) ) |
1032 if ( iMessageReaderLongPressDetector->HandleWsEventL( aEvent, aDestination ) ) |
953 { |
1033 { |
1003 // --------------------------------------------------------- |
1083 // --------------------------------------------------------- |
1004 // |
1084 // |
1005 TInt CAknCapAppServerAppUi::UpdateTaskListL( TBool aTaskListRefreshNeeded ) |
1085 TInt CAknCapAppServerAppUi::UpdateTaskListL( TBool aTaskListRefreshNeeded ) |
1006 { |
1086 { |
1007 TInt err = KErrNone; |
1087 TInt err = KErrNone; |
1008 if ( iFSControl->IsDisplayed() ) |
1088 if ( iFSControl && iFSControl->IsDisplayed() ) |
1009 { |
1089 { |
1010 // update window group list (task list) |
1090 // update window group list (task list) |
1011 TInt windowGroupListChanged = ETrue; |
1091 TInt windowGroupListChanged = ETrue; |
1012 |
1092 |
1013 TRAP( err, windowGroupListChanged = iFSControl->InitializeWindowGroupListL( |
1093 TRAP( err, windowGroupListChanged = iFSControl->InitializeWindowGroupListL( |
1049 { |
1129 { |
1050 TChar::TBdCategory numCategory; |
1130 TChar::TBdCategory numCategory; |
1051 TBool isNumber = EFalse; |
1131 TBool isNumber = EFalse; |
1052 numCategory = (TChar(aChar)).GetBdCategory(); |
1132 numCategory = (TChar(aChar)).GetBdCategory(); |
1053 isNumber = ((numCategory == TChar::EEuropeanNumber) || (numCategory == TChar::EArabicNumber) || |
1133 isNumber = ((numCategory == TChar::EEuropeanNumber) || (numCategory == TChar::EArabicNumber) || |
1054 (numCategory == TChar::EEuropeanNumberTerminator) || (aChar == 0x2E) || |
1134 (numCategory == TChar::EEuropeanNumberTerminator) || |
|
1135 ( numCategory == TChar::EEuropeanNumberSeparator ) || |
|
1136 (aChar == 0x2E) || |
1055 (aChar == 0x2A) || (aChar == 0x3D) || (aChar == 0x2F)); |
1137 (aChar == 0x2A) || (aChar == 0x3D) || (aChar == 0x2F)); |
1056 return isNumber; |
1138 return isNumber; |
1057 } |
1139 } |
1058 #endif |
1140 #endif |
1059 |
1141 |
1337 self->HandlePropertyChange(KUikGlobalNotesAllowed); |
1419 self->HandlePropertyChange(KUikGlobalNotesAllowed); |
1338 } |
1420 } |
1339 return KErrNone; |
1421 return KErrNone; |
1340 } |
1422 } |
1341 |
1423 |
|
1424 TInt CAknCapAppServerAppUi::TelephonyIdleUidCallBack(TAny* aPtr) |
|
1425 { |
|
1426 CAknCapAppServerAppUi* self = static_cast<CAknCapAppServerAppUi*>(aPtr); |
|
1427 if (self) |
|
1428 { |
|
1429 self->HandlePropertyChange(KActiveIdleUid); |
|
1430 } |
|
1431 return KErrNone; |
|
1432 } |
1342 |
1433 |
1343 void CAknCapAppServerAppUi::HandlePropertyChange(const TInt aProperty) |
1434 void CAknCapAppServerAppUi::HandlePropertyChange(const TInt aProperty) |
1344 { |
1435 { |
1345 switch(aProperty) |
1436 switch(aProperty) |
1346 { |
1437 { |
1347 case KUikGlobalNotesAllowed: |
1438 case KUikGlobalNotesAllowed: |
1348 { |
1439 { |
1349 TUid uid = KPhoneUid; |
1440 TInt globalNotesAllowed = 0; |
1350 TApaTaskList taskList ( CEikonEnv::Static ()->WsSession () ); |
1441 TInt err = iTelephonyIdleUidProperty.Get(globalNotesAllowed); |
1351 TApaTask task = taskList.FindApp ( uid ); |
1442 if(!err && globalNotesAllowed) |
1352 if ( task.Exists() ) |
|
1353 { |
1443 { |
1354 TInt wgId = task.WgId (); |
1444 // Global notes allowed, so the boot is finished. Now the idle app uid and its |
|
1445 // window group id can be fetched. |
|
1446 HandlePropertyChange(KActiveIdleUid); |
|
1447 } |
|
1448 } |
|
1449 break; |
|
1450 case KActiveIdleUid: |
|
1451 { |
|
1452 TInt idleAppUid = 0; |
|
1453 TInt err = iTelephonyIdleUidProperty.Get(idleAppUid); |
|
1454 if(!err) |
|
1455 { |
|
1456 // Fetch the Idle application window group id. |
|
1457 TApaTaskList taskList(CEikonEnv::Static()->WsSession()); |
|
1458 TApaTask task = taskList.FindApp(TUid::Uid(idleAppUid)); |
|
1459 TInt wgId = task.WgId(); |
|
1460 |
1355 // Save the window group id to PubSub. |
1461 // Save the window group id to PubSub. |
1356 RProperty::Set ( KPSUidAvkonInternal, KAknIdleAppWindowGroupId, |
1462 RProperty::Set(KPSUidAvkonInternal, KAknIdleAppWindowGroupId, wgId); |
1357 wgId ); |
|
1358 } |
1463 } |
1359 } |
1464 } |
1360 break; |
1465 break; |
1361 default: |
1466 default: |
1362 break; |
1467 break; |