idlefw/plugins/pslnactiveidleplugin/src/pslnactiveidlepluginengine.cpp
branchRCL_3
changeset 9 d0529222e3f0
parent 4 1a2a00e78665
child 10 5ef93ea513cb
child 18 bd874ee5e5e2
--- a/idlefw/plugins/pslnactiveidleplugin/src/pslnactiveidlepluginengine.cpp	Tue Feb 02 00:23:10 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,724 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Container for the Active Idle plugin.
-*
-*/
-
-
-// From this plugin.
-#include <aisystemuids.hrh>
-
-#include "pslnactiveidlepluginengine.h"
-#include "pslnactiveidleplugincontainer.h"
-#include "pslnactiveidleplugin.h"
-#include "activeidle2domainpskeys.h"
-#include "activeidle2internalpskeys.h"
-
-// from plugin side
-#include <extrstandbyscrconst.h> // for KExtrStandbyScrFullScreenMode
-
-// From PSLN framework.
-#include <pslnfwiconhelper.h>
-#include <psln.rsg>
-
-// General services.
-#include <stringloader.h>
-#include <aknglobalnote.h>
-#include <e32property.h>
-
-// Application specific skins.
-#include <pslnfwappthemehandler.h>
-
-// XUIKON.
-#include <xnodt.h>
-
-// ECOM.
-#include <ecom/ecom.h>
-#include <ecom/implementationinformation.h>
-
-#include <centralrepository.h>
-#include <activeidle2domaincrkeys.h>
-
-#include <AknSgcc.h>
-
-// Granularity of plugin array.
-const TInt KPslnPluginArrayGranularity = 4;
-
-// ActiveIdle1 plugin ECOM interface uid
-const TInt KAI1PluginInterfaceUid = 0x101F8700;
-const TInt KAIThemeStatusPaneHidden = 0x00000001;
-
-// AI1 cenrep
-const TInt KCRUidActiveIdle =  0x10207467;
-const TInt KCRPluginCountKey = 0x00000002;
-const TInt KCRFirstPluginKey = 0x00000003;
-
-const TInt KPSLNOneSecondInMicroSeconds = 1000*1000;
-
-// ========== LOCAL FUNCTIONS =================================================
-
-template<class Array>
-void CleanupResetAndDestroy(TAny* aObj)
-{
-    if(aObj)
-    {
-        static_cast<Array*>(aObj)->ResetAndDestroy();
-    }
-}
-
-template<class Array>
-void CleanupResetAndDestroyPushL(Array& aPointerArray)
-{
-    CleanupStack::PushL(TCleanupItem(&CleanupResetAndDestroy<Array>, &aPointerArray));
-}
-
-// ========== MEMBER FUNCTIONS ================================================
-
-// ---------------------------------------------------------------------------
-// CPslnActiveIdlePluginEngine::ConstructL()
-//
-// Symbian OS two phased constructor
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::ConstructL(const TRect& /*aRect*/)
-{
-#ifdef _MY_DEBUG
-    RDebug::Print(_L("XAI: CPslnActiveIdlePluginEngine::ConstructL"));
-#endif
-
-    // Create application theme handler and list for application themes.
-    iMySkinList = new (ELeave)
-        CArrayPtrFlat<CXnODT>(KPslnPluginArrayGranularity);
-    iPslnFWThemeHandler = CPslnFWAppThemeHandler::NewL(
-        *this,
-        *iMySkinList);
-
-    CheckCurrentUIControllerL();
-    CheckCurrentAi1PluginL();
-    iRestartTimer = CPeriodic::NewL(EPriorityNormal);
-    iUiRefreshTimer = CPeriodic::NewL(EPriorityNormal);
-}
-
-// ---------------------------------------------------------------------------
-// CPslnActiveIdlePluginEngine::CPslnActiveIdlePluginEngine
-//
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CPslnActiveIdlePluginEngine::CPslnActiveIdlePluginEngine(
-    CPslnActiveIdlePlugin* aPlugin)
-  :
-    iFirstUpdateRound(ETrue),
-    iFirstUpdateRoundInjected(EFalse),
-    iCurrentUIController(EAiUICUnknown),
-    iPlugin(aPlugin)
-{
-}
-
-// ---------------------------------------------------------------------------
-// CPslnActiveIdlePluginEngine::~CPslnActiveIdlePluginEngine()
-//
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CPslnActiveIdlePluginEngine::~CPslnActiveIdlePluginEngine()
-{
-    if (iRestartTimer)
-    {
-        iRestartTimer->Cancel();
-    }
-    delete iRestartTimer;
-    if (iUiRefreshTimer)
-    {
-        iUiRefreshTimer->Cancel();
-    }
-    delete iUiRefreshTimer;
-
-    if (iMySkinList)
-    {
-        iMySkinList->ResetAndDestroy();
-    }
-    delete iMySkinList;
-    delete iPslnFWThemeHandler;
-}
-
-// -----------------------------------------------------------------------------
-// CPslnActiveIdlePluginEngine::ActivateThemeL
-// -----------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::ActivateThemeL()
-{
-    TInt skinIndex = 0;
-    if( iPlugin->Container() )
-        {
-        skinIndex = iPlugin->Container()->iListBox->CurrentItemIndex();
-        }
-    else
-        {
-        // No selection possible yet
-        return;
-        }
-
-    if (skinIndex >= 0 && skinIndex < iMySkinList->Count() &&
-        !iRestartTimer->IsActive())
-    {
-        if (skinIndex >= iHSStartIndex &&
-            skinIndex < iHSEndIndex)
-        {
-            CXnODT* selectedSkinODT = iMySkinList->At(skinIndex);
-            UpdateStatusPaneVisibilityCenrepL(
-                selectedSkinODT->Flags() & KAIThemeStatusPaneHidden);
-
-            if (iCurrentAi1Plugin != selectedSkinODT->ThemeUid())
-            {
-                UpdateAi1PluginLoadCenrepL(selectedSkinODT->ThemeUid());
-                CheckCurrentAi1PluginL();
-            }
-            if (iCurrentUIController == EAiUICXML)
-            {
-                UpdateUIControllersInCenrepL(EAiUICNative);
-                CheckCurrentUIControllerL();
-
-                iRestartTimer->Cancel();
-                iRestartRetryCount = 0;
-                iRestartTimer->Start(
-                    KPSLNOneSecondInMicroSeconds,
-                    KPSLNOneSecondInMicroSeconds,
-                    TCallBack(RestartTimerCallback, this));
-            }
-            else
-            {
-            if( IsAiRunning() )
-                {
-                // Recycle this method to bring to foreground
-                RestartTimerCallback( this );
-                }
-            }
-            ManualGetSkinsRestartL();
-        }
-        else
-        {
-            if (iCurrentUIController == EAiUICNative)
-            {
-                UpdateStatusPaneVisibilityCenrepL(EFalse); // Always visible status pane
-                UpdateUIControllersInCenrepL(EAiUICXML);
-                CheckCurrentUIControllerL();
-                }
-
-            RProperty::Set( KPSUidAiInformation, KActiveIdleRestartAI2, KActiveIdleRestartCode );
-            iRestartTimer->Cancel();
-            iRestartRetryCount = 0;
-            iRestartTimer->Start(
-                KPSLNOneSecondInMicroSeconds,
-                KPSLNOneSecondInMicroSeconds,
-                TCallBack(RestartTimerCallback, this));
-            CXnODT* selectedSkinODT = iMySkinList->At(skinIndex);
-            TXnServiceCompletedMessage ret;
-
-            ret = iPslnFWThemeHandler->SetApplicationSkinL(
-                *selectedSkinODT );
-
-            if (ret == EXnSetActiveThemeFailed)
-            {
-                // Show error note.
-                HBufC* errorBuf = StringLoader::LoadLC(
-                    R_PSLN_QTN_SKINS_ERROR_CORRUPTED);
-                // Display global note.
-                CAknGlobalNote* errorNote = CAknGlobalNote::NewLC();
-                errorNote->ShowNoteL(EAknGlobalErrorNote, *errorBuf);
-                CleanupStack::PopAndDestroy(2, errorBuf); // errorNote also
-            }
-            else
-            {
-                iRestartTimer->Cancel();
-                iRestartRetryCount = 0;
-                iRestartTimer->Start(
-                    KPSLNOneSecondInMicroSeconds,
-                    KPSLNOneSecondInMicroSeconds,
-                    TCallBack(RestartTimerCallback, this));
-            }
-        }
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CPslnActiveIdlePluginEngine::HandleMessage
-// -----------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::HandleMessage(
-    TXnServiceCompletedMessage aMessage)
-{
-    switch (aMessage)
-    {
-    case EXnGetListHeadersEmpty:
-        // Just destroy everything and use default items only.
-    case EXnGetListHeadersFailed: // fallthrough
-        if (iMySkinList)
-        {
-            iMySkinList->ResetAndDestroy();
-        }
-        break;
-    case EXnServiceRequestCanceled: // fallthrough
-    case EXnServiceRequestError: // fallthrough
-        {
-            TRAP_IGNORE(ManualGetSkinsRestartL();)
-        }
-        break;
-    default:
-        break;
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CPslnActiveIdlePluginEngine::HandleMessage
-// -----------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::HandleMessage(
-    TXnServiceCompletedMessage aMessage,
-    CArrayPtrFlat<CXnODT>& /*aAppThemeList*/)
-{
-    switch (aMessage)
-    {
-    case EXnGetListHeadersRestart:
-    case EXnGetListHeadersUpdate: // fallthrough
-        {
-            TRAP_IGNORE(AddNewThemeL(aMessage));
-            break;
-        }
-    default:
-        {
-            break;
-        }
-    }
-}
-
-// ---------------------------------------------------------------------------
-// Adds new theme to the container / listbox.
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::AddThemesToContainerL()
-    {
-    TInt value  = 0;
-
-    GetExtStandbyScreenState(value);
-
-    /* value == 0  Only AI2 themes
-       value != 0
-         bit 31    AI2 themes
-         bit 30-0  External themes
-    */
-    value |= 0x80000000;                               // Force AI2 themes on
-    if ((value == 0) || ((value & 0x80000000) != 0))
-        {
-        if( iPlugin->Container() && iMySkinList )
-            {
-            // Remove themes. All.
-            iPlugin->Container()->RemoveThemes( 0 );
-            for ( TInt i = 0; i < iMySkinList->Count(); ++i )
-                {
-                if( i >= iHSStartIndex &&
-                    i < iHSEndIndex )
-                    {
-                    iPlugin->Container()->AddNewItemToListL( i,
-                                                             iMySkinList->At(i),
-                                                             EAiUICNative );
-                    }
-                else
-                    {
-                    iPlugin->Container()->AddNewItemToListL( i,
-                                                             iMySkinList->At(i),
-                                                             EAiUICXML );
-                    }
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Adds new theme to the listbox.
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::AddNewThemeL(
-    TXnServiceCompletedMessage aMessage)
-{
-    // No themes available - do not add anything.
-    if (!iMySkinList)
-    {
-        return;
-    }
-
-    // Theme activation causes restart of theme headers list.
-    if (aMessage == EXnGetListHeadersRestart)
-    {
-    iFirstUpdateRound = EFalse;
-    }
-
-    TInt value  = 0;
-
-    GetExtStandbyScreenState(value);
-
-    /* value == 0  Only AI2 themes
-       value != 0
-         bit 31    AI2 themes
-         bit 30-0  External themes
-    */
-    value |= 0x80000000;                               // Force AI2 themes on
-
-    if ((value & 0x7FFFFFFF) > 0)
-        {
-    if ((iFirstUpdateRound && !iFirstUpdateRoundInjected) ||
-        aMessage == EXnGetListHeadersRestart)
-    {
-        iFirstUpdateRoundInjected = ETrue;
-        AddHomeScreenThemesL();
-    }
-        }
-
-    UiTimerRestart();
-}
-
-//
-// Get external Standby Screen state from Cenrep
-//
-TInt CPslnActiveIdlePluginEngine::GetExtStandbyScreenState(TInt& aValue )
-    {
-    TInt ret = 0;
-    TUid uid    = { KCRUidActiveIdleLV }; // {0x10275102}; //
-
-    //TRAP_IGNORE: leaving function called in non-leaving function
-    TRAP_IGNORE
-        (
-        CRepository* cenRep = CRepository::NewLC( uid );
-
-        ret = cenRep->Get(KAIExternalStatusScreen, aValue );
-
-        CleanupStack::PopAndDestroy( cenRep );
-        )
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// Add EXT HS themes to listing
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::AddHomeScreenThemesL()
-{
-    iHSStartIndex = iHSEndIndex = iMySkinList->Count();
-    // Resolve AI1 plugins in ECOM
-    RImplInfoPtrArray eComPlugins;
-    CleanupResetAndDestroyPushL(eComPlugins);
-
-    REComSession::ListImplementationsL(TUid::Uid(KAI1PluginInterfaceUid), eComPlugins);
-    for (TInt i = 0; i < eComPlugins.Count(); ++i)
-    {
-        CXnODT* skinODT = CXnODT::NewL();
-        skinODT->SetThemeUid(eComPlugins[i]->ImplementationUid().iUid);
-        if (eComPlugins[i]->OpaqueData() == KExtrStandbyScrFullScreenMode)
-        {
-            skinODT->SetFlags(KAIThemeStatusPaneHidden);
-        }
-        else
-        {
-            skinODT->SetFlags(0);
-        }
-        CleanupStack::PushL(skinODT);
-        iMySkinList->AppendL(skinODT);
-        CleanupStack::Pop(skinODT);
-
-        HBufC* item = HBufC::NewLC(KPslnItemMaxTextLength);
-        TPtr itemPtr = item->Des();
-        if (eComPlugins[i]->DisplayName().Length())
-        {
-            itemPtr = eComPlugins[i]->DisplayName();
-        }
-        else
-        {
-            itemPtr = _L("OperatorHomeScreen1");
-        }
-        skinODT->SetThemeFullNameL( itemPtr );
-        if (iCurrentAi1Plugin == eComPlugins[i]->ImplementationUid().iUid &&
-            iCurrentUIController == EAiUICNative)
-        {
-            itemPtr.Insert(0, KPslnFWActiveListItemFormat);
-            TInt flags = skinODT->Flags();
-            skinODT->SetFlags(flags | EXnThemeStatusActive );
-        }
-        else
-        {
-            itemPtr.Insert(0, KPslnFWNonActiveListItemFormat);
-        }
-        CleanupStack::PopAndDestroy(item);
-        ++iHSEndIndex;
-    }
-    CleanupStack::PopAndDestroy();
-}
-
-// ---------------------------------------------------------------------------
-// Check active AI2 UI Controller in cenrep keys
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::CheckCurrentUIControllerL()
-{
-    CRepository* cenRep = CRepository::NewL(TUid::Uid(KCRUidActiveIdleLV)); // KCRUidActiveIdleLV AI2 Cenrep!
-    TInt value = 0;
-    if (cenRep->Get(KAiMainUIController, value) == KErrNone)
-    {
-        if ((value == AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE)
-            || (value == AI3_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE))
-        {
-            iCurrentUIController = EAiUICNative;
-        }
-        else if ((value == AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML)
-            || (value == AI3_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML))
-        {
-            iCurrentUIController = EAiUICXML;
-        }
-    }
-    delete cenRep;
-}
-
-// ---------------------------------------------------------------------------
-// Update active AI2 UI Controller in cenrep keys
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::UpdateUIControllersInCenrepL(TInt aControllerId)
-{
-    if (iCurrentUIController != aControllerId)
-    {
-        TUid uid = { KCRUidActiveIdleLV }; // KCRUidActiveIdleLV AI2 Cenrep!
-        CRepository* cenRep = CRepository::NewL(uid);
-        if (aControllerId == EAiUICNative)
-        {
-            cenRep->Delete(KAiFirstUIController);
-            cenRep->Delete(KAiFirstUIController + 1);
-            cenRep->Set(KAiMainUIController, AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE);
-        }
-        else if (aControllerId ==  EAiUICXML)
-        {
-            cenRep->Create(KAiFirstUIController, AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE);
-            cenRep->Set(KAiFirstUIController, AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_NATIVE);
-            cenRep->Delete(KAiFirstUIController + 1);
-            cenRep->Set(KAiMainUIController, AI_UID_ECOM_IMPLEMENTATION_UICONTROLLER_XML);
-        }
-        delete cenRep;
-    }
-}
-
-// ---------------------------------------------------------------------------
-// Update status pane visibility for status pane cenrep key
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::UpdateStatusPaneVisibilityCenrepL(
-    TBool aPaneHidden)
-{
-    TInt value = EAiStatusPaneLayoutIdleNormal;
-    if (aPaneHidden)
-    {
-        value = EAiStatusPaneLayoutIdleHidden;
-    }
-    TUid uid = { KCRUidActiveIdleLV }; // KCRUidActiveIdleLV AI2 Cenrep!
-    CRepository* cenRep = CRepository::NewL(uid);
-    cenRep->Set(KAiStatusPaneLayout, value);
-    delete cenRep;
-}
-
-// ---------------------------------------------------------------------------
-// Update active AI1 plugin in cenrep
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::UpdateAi1PluginLoadCenrepL(TInt aNewUid)
-{
-    TUid uid = { KCRUidActiveIdle }; // KCRUidActiveIdle AI1 Cenrep!
-    CRepository* cenRep = CRepository::NewL(uid);
-    TInt currentCount = 0;
-    cenRep->Get(KCRPluginCountKey, currentCount);
-
-    // Delete old keys if any
-    for (TInt i = 0; i < currentCount; ++i)
-    {
-        cenRep->Delete(KCRFirstPluginKey+i);
-    }
-
-    cenRep->Delete(KCRPluginCountKey);
-    cenRep->Create(KCRPluginCountKey, 1);
-    // Set only 1 new key, the selected one
-    cenRep->Create(KCRFirstPluginKey, aNewUid);
-
-    delete cenRep;
-}
-
-// ---------------------------------------------------------------------------
-// Check the current AI1 plugin (ref. External opretor homescreen feature)
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::CheckCurrentAi1PluginL()
-{
-    TUid uid = { KCRUidActiveIdle }; // KCRUidActiveIdle AI1 Cenrep!
-    TInt value = 0;
-    TInt currentCount = 0;
-
-    CRepository* cenRep = CRepository::NewL(uid);
-    cenRep->Get(KCRPluginCountKey, currentCount);
-
-    if (currentCount) // count must be set
-    {
-        cenRep->Get(KCRFirstPluginKey, value);
-    }
-    delete cenRep;
-
-    if (value != 0)
-    {
-        iCurrentAi1Plugin = value;
-    }
-}
-
-// ---------------------------------------------------------------------------
-// Manually start updating theme/skin listing
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::ManualGetSkinsRestartL(TBool aForceStart)
-{
-    if( !aForceStart && iMySkinList->Count() > 0 &&
-        iUiRefreshTimer->IsActive() )
-        {
-        return;
-        }
-        
-    // Restart get skins manually!
-    if( iPlugin->Container() )
-        {
-        iPlugin->Container()->RemoveThemes(0);
-        }
-    iMySkinList->ResetAndDestroy();
-    iFirstUpdateRound = ETrue;
-    iFirstUpdateRoundInjected = EFalse;
-    iPslnFWThemeHandler->CancelGetApplicationSkins();
-    iAddIndex = 0;
-    iPslnFWThemeHandler->GetApplicationSkinsL(KUidActiveIdle);
-}
-
-// ---------------------------------------------------------------------------
-// Restart AI2 process
-// ---------------------------------------------------------------------------
-//
-TInt CPslnActiveIdlePluginEngine::RestartAifw()
-{
-    if (!IsAiRunning())
-    {
-        _LIT(KAiExeName, "z:\\sys\\bin\\ailaunch.exe");
-        RProcess process;
-        TInt ret = process.Create(KAiExeName, KNullDesC);
-        process.Resume();
-        process.Close();
-        return ret;
-    }
-    return KErrNone;
-}
-
-// ---------------------------------------------------------------------------
-// Checks if AI2 process is running
-// ---------------------------------------------------------------------------
-//
-TBool CPslnActiveIdlePluginEngine::IsAiRunning()
-{
-    TApaTaskList taskList(CCoeEnv::Static()->WsSession());
-    TApaTask startTask = taskList.FindApp(TUid::Uid(0x100058f4));
-
-    if (!startTask.Exists()) // if first boot queries are done continue bringing ai2 to foreground.
-    {
-        TApaTask aiTask = taskList.FindApp(TUid::Uid(AI_UID3_AIFW_EXE));
-        if (aiTask.Exists())  // App open
-        {
-            return ETrue;
-        }
-    }
-    return EFalse;
-}
-
-// ---------------------------------------------------------------------------
-// start ui refresh timer
-// ---------------------------------------------------------------------------
-//
-void CPslnActiveIdlePluginEngine::UiTimerRestart()
-    {
-    iUiRefreshTimer->Cancel();
-    iUiRefreshTimer->Start(
-        KPSLNOneSecondInMicroSeconds/4, // quarter second delay
-        KPSLNOneSecondInMicroSeconds/4,
-        TCallBack(UiRefreshTimerCallback, this));
-    }
-    
-// ---------------------------------------------------------------------------
-// Call back for restart timer
-// ---------------------------------------------------------------------------
-//
-TInt CPslnActiveIdlePluginEngine::RestartTimerCallback(TAny* aSelf)
-{
-    CPslnActiveIdlePluginEngine* self =
-        static_cast<CPslnActiveIdlePluginEngine*>(aSelf);
-
-    if (self)
-    {
-        ++(self->iRestartRetryCount);
-        if ( self->RestartAifw() == KErrNone)
-        {
-            self->iRestartTimer->Cancel();
-            TApaTaskList taskList(CCoeEnv::Static()->WsSession());
-            TApaTask startTask = taskList.FindApp(TUid::Uid(0x100058f4));
-
-            if (!startTask.Exists()) // if first boot queries are done continue bringing ai2 to foreground.
-            {
-                TApaTask aiTask = taskList.FindApp(TUid::Uid(AI_UID3_AIFW_EXE));
-                if (aiTask.Exists())  // App open
-                {
-                    //aiTask.BringToForeground();
-                    CAknSgcClient::MoveApp(aiTask.WgId(), ESgcMoveAppToForeground);
-                }
-            }
-            CAknEnv::RunAppShutter();
-            return 0;
-        }
-        if (self->iRestartRetryCount > 3)
-        {
-            self->iRestartTimer->Cancel();
-            TRAP_IGNORE(self->ManualGetSkinsRestartL());
-            return 0;
-        }
-    }
-    return 1;
-}
-
-// ---------------------------------------------------------------------------
-// Call back for UI refresh timer timer
-// ---------------------------------------------------------------------------
-//
-TInt CPslnActiveIdlePluginEngine::UiRefreshTimerCallback(TAny* aSelf)
-{
-    CPslnActiveIdlePluginEngine* self =
-        static_cast<CPslnActiveIdlePluginEngine*>(aSelf);
-
-    if (self)
-    {
-        self->iUiRefreshTimer->Cancel();
-        TRAP_IGNORE(self->AddThemesToContainerL());
-        if( self->iPlugin->Container() )
-            {
-            self->iPlugin->Container()->RefreshList();
-            }
-    }
-    return 0;
-}
-
-// End of File.