uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp
branchRCL_3
changeset 7 08e69e956a8c
parent 3 8ca85d2f0db7
child 8 71dd06cfe933
--- a/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp	Mon Mar 15 12:41:34 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp	Wed Mar 31 21:59:52 2010 +0300
@@ -33,7 +33,7 @@
 #include "avkoninternalpskeys.h"     // KAknIdleAppWindowGroupId
 #include <AknCapServerDefs.h>
 #include <activeidle2domainpskeys.h>
-#include <eikpriv.rsg>
+#include <EIKPRIV.rsg>
 #include <coedef.h>
 #include <eiksvdef.h>
 #include <aknconsts.h>
@@ -107,7 +107,7 @@
 const TInt KKeyEventICodeThreshold = 0x001f;
 const TInt KMaxLanguageCodeLength = 6; // 5 digits + separator
 
-                
+const TInt KRemoveBlankDelay = 200000; // 0.2s     
 
 _LIT(KEikSrvUIResFileName, "z:\\resource\\eiksrvui.rsc");
 _LIT_SECURITY_POLICY_PASS(KPassReadPolicy);
@@ -172,7 +172,8 @@
     delete iMMCUnlock;
     delete iIdler;
     iEikSrv.Close(); // this shouldn't be connected here anyway
-    delete iPtiEngine;          
+    delete iPtiEngine;                          
+    iAlfClient.Close();	
     }
 
 _LIT(KProductSpecificHalFile, "z:\\system\\data\\ProductSpecificHalParams.txt");
@@ -856,12 +857,26 @@
         }
     }
 
-void CAknCapAppServerAppUi::BlankScreenL(TBool aBlank, TBool aToForeground)
+TInt CAknCapAppServerAppUi::RemoveBlankCallBack( TAny* aThis )
+    {
+    static_cast<CAknCapAppServerAppUi*>( aThis )->DoRemoveBlank();
+    return EFalse;
+    }
+
+void CAknCapAppServerAppUi::BlankScreenL(TBool aBlank, TBool /* aToForeground */)
     {
     if (aBlank)
         {
         if (++iBlankWinRefCount == 1)
             {
+            delete iRemoveBlankCallBack;
+            iRemoveBlankCallBack = NULL;
+
+		    // We are ignoring the foreground parameter because we only have one 
+            // type of blanking behaviour in AlfClient. Act as if ETrue
+            iAlfClient.BlankScreen(ETrue);	
+            iForegroundBlankScreen = ETrue; // always as if foreground blanking
+/*
             ASSERT(!iBlankWin);
             if (aToForeground)
                 {
@@ -873,16 +888,30 @@
                 }
             iBlankWin = CAknServBlankWin::NewL(iBackdropWindowGroup, iStatusPane);
             iForegroundBlankScreen = aToForeground;
+*/
             }
         }
     else if (--iBlankWinRefCount <= 0)
         {
         iBlankWinRefCount = 0;
-        if (iForegroundBlankScreen)
+
+        // Blanking IPC is delayed or restarted
+        delete iRemoveBlankCallBack;
+        iRemoveBlankCallBack = NULL;
+        iRemoveBlankCallBack = CPeriodic::NewL(CActive::EPriorityLow);     
+        
+        iRemoveBlankCallBack->Start(
+            KRemoveBlankDelay,
+            KRemoveBlankDelay,
+            TCallBack(RemoveBlankCallBack, this));
+        
+
+/*        if (iForegroundBlankScreen)
             {
+            */
 #ifdef RD_UI_TRANSITION_EFFECTS_LAYOUT_SWITCH
+            /*
             CWsScreenDevice* screen = iEikonEnv->ScreenDevice();
-            /*
             RWsSession& ws = iEikonEnv->WsSession();
             TInt wgId = ws.GetFocusWindowGroup();
             CApaWindowGroupName* wgName = CApaWindowGroupName::NewL(ws, wgId);
@@ -896,18 +925,28 @@
             //        AknTransEffect::GfxTransParam( KTfxServerUid )
             //        );
 
-            GfxTransEffect::EndFullScreen();
+//            GfxTransEffect::EndFullScreen();
 #endif
-            iBackdropWindowGroup.SetOrdinalPosition(1, ECoeWinPriorityNormal);
-            }
+/*            iBackdropWindowGroup.SetOrdinalPosition(1, ECoeWinPriorityNormal);
+           }
         delete iBlankWin;
         iBlankWin = 0;
+*/
         iForegroundBlankScreen = EFalse;
         } 
     }
 
+void CAknCapAppServerAppUi::DoRemoveBlank()
+    {
+    RDebug::Print( _L("CAknCapAppServerAppUi::DoRemoveBlank"));
+    iAlfClient.BlankScreen(EFalse); 
+    delete iRemoveBlankCallBack;
+    iRemoveBlankCallBack = NULL;
+    }
+
 void CAknCapAppServerAppUi::SwapLayoutSwitchBlankScreenL()
     {
+    	/*
     if (iBlankWin)
         {
         if (!iForegroundBlankScreen)
@@ -920,6 +959,7 @@
         delete iBlankWin;
         iBlankWin = newBlankWin;
         }
+        */
     }
 
 TBool CAknCapAppServerAppUi::IsDisplayingForegroundBlankScreen() const