remotestoragefw/rsfwnotifierplugins/src/rsfwnotplugindlg.cpp
branchRCL_3
changeset 15 88ee4cf65e19
parent 12 87c71b25c937
child 16 1aa8c82cb4cb
--- a/remotestoragefw/rsfwnotifierplugins/src/rsfwnotplugindlg.cpp	Wed Jun 09 10:37:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,868 +0,0 @@
-/*
-* Copyright (c) 2006 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:  RSFW notifier server plugin
-*
-*/
-
-
-#include <AknNotifyStd.h>
-#include <eikenv.h>
-#include <AknQueryDialog.h>
-#include <AknGlobalNote.h>
-#include <ConeResLoader.h>
-#include <rsfwnotplugindlg.rsg>
-#include <StringLoader.h>
-#include <CAknMemorySelectionDialog.h>
-#include <CAknFileSelectionDialog.h>
-#include <sysutil.h>
-#include <bautils.h>
-#include <AknWaitDialog.h>
-#include <uikon/eiksrvui.h> // CEikServAppUi
-
-#include "rsfwnotplugindlg.h"
-#include "rsfwnotpluginnamedialog.h"
-#include "mdebug.h"
-
-#include <implementationproxy.h> 
-
-_LIT(KResourceFile, "z:\\resource\\RsfwNotPluginDlg.RSC"); // emulator
-
-
-void CreateNotifierL(CArrayPtr<MEikSrvNotifierBase2>* aNotifiers)
-    {
-    MEikSrvNotifierBase2* notifier;
-    notifier = CRsfwNotPluginDlg::NewL();
-    CleanupStack::PushL(notifier);
-    aNotifiers->AppendL(notifier);
-    CleanupStack::Pop(notifier);
-    }
-
-EXPORT_C CArrayPtr<MEikSrvNotifierBase2>* NotifierArray()
-    {
-    CArrayPtrFlat<MEikSrvNotifierBase2>* notifiers
-        = new CArrayPtrFlat<MEikSrvNotifierBase2>(1);
-    if (notifiers)
-        {
-        TRAPD(err, CreateNotifierL(notifiers));
-        if(err)
-            {
-            notifiers->ResetAndDestroy();
-            delete notifiers;
-            notifiers = NULL;
-            }
-        }
-    return(notifiers);
-    }
-
-
-
-CRsfwNotPluginDlg* CRsfwNotPluginDlg::NewL()
-    {
-    CRsfwNotPluginDlg* dlg = new(ELeave)CRsfwNotPluginDlg();
-    CleanupStack::PushL(dlg);
-    dlg->ConstructL();
-    CleanupStack::Pop(dlg);
-    return dlg;
-    }
-
-CRsfwNotPluginDlg::~CRsfwNotPluginDlg()
-    {
-    Cleanup();
-    iFs.Close(); 
-    if (iWaitDialog) 
-        {
-        delete iWaitDialog;
-        }
-    // just in case make sure the app key is unblocked
-    UnblockAppSwitching();
-    }
-    
-void CRsfwNotPluginDlg::Cleanup()
-    {
-    
-    iMethod = TRsfwNotPluginRequest::ENoMethod;
-    iCancelled = EFalse;  
-    iReplySlot = NULL;  
- 
-    
-    if (iUserName)
-        {
-        delete iUserName;
-        iUserName = NULL;
-        }
-     
-    if (iPassword)
-        {
-        delete iPassword;
-        iPassword = NULL;
-        }
-    
-    if (iCurrentRootPath)  
-        {
-        delete iCurrentRootPath;
-        iCurrentRootPath = NULL;
-        }
-    
-    
-    if (iMemDialog) 
-        {
-        delete iMemDialog;
-        iMemDialog = NULL;
-        }
-        
-    if (iFileName) 
-        {
-        delete iFileName;
-        iFileName = NULL;
-        }
-        
-    if (iAuthRequest)
-        {
-        delete iAuthRequest;
-        iAuthRequest = NULL;
-        }
-        
-    if (iSaveToRequest) 
-        {
-        delete iSaveToRequest;
-        iSaveToRequest = NULL;
-        }
-        
-    if (iWaitDialog) 
-        {
-        delete iWaitDialog;
-        iWaitDialog = NULL;
-        }
-       
-    }
-
-CRsfwNotPluginDlg::CRsfwNotPluginDlg() : CActive(EPriorityStandard),
-    iMethod(TRsfwNotPluginRequest::ENoMethod)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-void CRsfwNotPluginDlg::ConstructL()
-    {
-    User::LeaveIfError(iFs.Connect());
-    iAppSwitchingBlocked = EFalse;
-    }
-
-void CRsfwNotPluginDlg::RunL()
-    {
-    if(iMethod == TRsfwNotPluginRequest::ENoMethod)
-        return; // Notifier canceled or request signaled by other means
-
-    HandleAsyncRequestL(); // show dialog
-    }
-
-TInt CRsfwNotPluginDlg::RunError(TInt aError)
-    {
-    DEBUGSTRING16(("CRsfwNotPluginDlg::RunError, error=%d",aError));
-    UnblockAppSwitching();
-    iMessage.Complete(aError);
-    Cleanup();
-    return KErrNone;
-    }
-
-void CRsfwNotPluginDlg::DoCancel()
-    {
-    }
-
-/**
- * Called when all resources allocated by notifiers shoudl be freed.
- */
-void CRsfwNotPluginDlg::Release()
-    {
-    delete this;
-    }
-
-/**
- * Called when a notifier is first loaded to allow any initial construction that is required.
- */
-MEikSrvNotifierBase2::TNotifierInfo CRsfwNotPluginDlg::RegisterL()
-    {
-    iInfo.iUid = KRsfwNotifierPluginUID;
-    // Because there are some longer wait notes here, we use low priority 
-    // (lower than ENotifierPriorityVLow). This allows e.g. VPN credentials dialog on
-    // top of the "Connecting..." wait note.
-    iInfo.iChannel = EAknNotifierChannelProgressDialog; 
-    iInfo.iPriority = ENotifierPriorityVLow; 
-    return iInfo;
-    }
-
-/**
- * Return the priority a notifier takes and the channels it acts on.  The return value may be varied
- * at run-time.
- */
-MEikSrvNotifierBase2::TNotifierInfo CRsfwNotPluginDlg::Info() const
-    {
-    return iInfo;
-    }
-
-/**
- * Start the notifier with data aBuffer and return an initial response.
- */
-TPtrC8 CRsfwNotPluginDlg::StartL(const TDesC8& /*aBuffer*/)
-    {
-    //Create and launch confirmation dialog using static function.
-    //The function returns True when the OK button is pressed.
-    return TPtrC8(NULL, 0);
-    }
-
-void CRsfwNotPluginDlg::HandleAsyncRequestL()
-    {
-    // Load resource file
-    CEikonEnv* eikEnv = CEikonEnv::Static();
-    TFileName filename(KResourceFile); 
-    RConeResourceLoader resLoader(*eikEnv);
-    User::LeaveIfError(resLoader.Open(filename));
-    CleanupClosePushL(resLoader);
-	TInt result;
-    TBool okpressed = EFalse;
-    switch(iMethod)
-        {
-        
-        case TRsfwNotPluginRequest::EAuthenticationDlg:
-            DEBUGSTRING16(("CRsfwNotPluginDlg::HandleAsyncRequestL EAuthenticationDlg"));
-            okpressed = ShowAuthenticationDialogL();
-            DEBUGSTRING16(("CRsfwNotPluginDlg::::ShowAuthenticationDialogL returned %d", okpressed));
-            break;  
-        case TRsfwNotPluginRequest::EUnavailableRetryDlg:
-           DEBUGSTRING16(("CRsfwNotPluginDlg::HandleAsyncRequestL EUnavailableRetryDlg"));
-            okpressed  = ShowUnavailableRetryNoteL();  
-           break;
-        case TRsfwNotPluginRequest::ESaveToDlg:
-            DEBUGSTRING16(("CRsfwNotPluginDlg::HandleAsyncRequestL ESaveToDlg"));
-            okpressed = ShowSaveToDlgL();
-            break;
-        case TRsfwNotPluginRequest::EConnectingDlg:
-        case TRsfwNotPluginRequest::EFetchingDlg:
-            ShowWaitNoteL();
-            break;
-        default:
-            break;
-            
-        }
-
-// some message dialogs will be completed here, 
-// others from the DialogDismissedL callback
-if (iMethod  <=  TRsfwNotPluginRequest::EUnavailableRetryDlg) 
-    {
-    if(iCancelled)
-        {
-        iMessage.Complete(KErrCancel);
-        }
-    else
-        {
-        if(okpressed) 
-            {
-            if (iMethod == TRsfwNotPluginRequest::EAuthenticationDlg) 
-                {
-                iMessage.WriteL(iReplySlot, *iAuthRequest);
-                }
-            else if (iMethod == TRsfwNotPluginRequest::ESaveToDlg) 
-                {
-                iMessage.WriteL(iReplySlot, *iSaveToRequest);
-                }
-            
-            result = KErrNone;
-            }
-        else 
-            {
-            result = KErrCancel;
-            }
-        iMessage.Complete(result);
-        }
-    }
-
-    CleanupStack::PopAndDestroy(&resLoader);
-
-    }
-
-/**
- * Start the notifier with data aBuffer.  aMessage should be completed when the notifier is deactivated.
- * May be called multiple times if more than one client starts the notifier.  The notifier is immediately
- * responsible for completing aMessage.
- */
-
-void CRsfwNotPluginDlg::StartL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage)
-    {
-    if(iMethod != TRsfwNotPluginRequest::ENoMethod)
-        {
-        aMessage.Complete(KErrInUse);
-        return;
-        }
-
-    Cleanup();
-    
-     // Read incoming parameters
-    TRsfwNotPluginRequest params;
-    TPckgC<TRsfwNotPluginRequest> pckg( params );
-    pckg.Set( aBuffer );
-    iMethod = pckg().iMethod;
-    iDriveName = pckg().iDriveName;
-   
-    
-    if (iMethod == TRsfwNotPluginRequest::EAuthenticationDlg) 
-        {
-        TRsfwAuthenticationDlgRequest authparams;
-        TPckgC<TRsfwAuthenticationDlgRequest> authpckg( authparams );
-        authpckg.Set( aBuffer );
-            
-        // read parameters
-        iUserName = HBufC::NewL(KRsfwMaxUsernameLength);
-        TPtr username = iUserName->Des();
-        username.Append(authpckg().iUserName);
-        iPassword = HBufC::NewL(KRsfwMaxPasswordLength);
-        TPtr psswd= iPassword->Des();
-        psswd.Append(authpckg().iPassword);           
-        }
-    else if (iMethod == TRsfwNotPluginRequest::ESaveToDlg)
-        {
-        TRsfwSaveToDlgRequest saveToparams;
-        TPckgC<TRsfwSaveToDlgRequest> savepckg( saveToparams );
-        savepckg.Set( aBuffer );
-            
-        // read parameters
-        iFileName = HBufC::NewL(KMaxFileName);
-        TPtr filename = iFileName->Des();
-        filename.Append(savepckg().iFileName);
-        iCacheDrive = savepckg().iCacheDrive;
-        TLex lex(savepckg().iFileSize);
-        lex.Val(iFileSize);
-        }
-   
-   
-    iMessage = aMessage; 
-    iReplySlot = aReplySlot;
-    iStatus = KRequestPending;
-    TRequestStatus* status = &iStatus;
-    SetActive();
-    User::RequestComplete(status, KErrNone);
-
-    }
-
-
-TBool CRsfwNotPluginDlg::ShowAuthenticationDialogL()
-    {
-    DEBUGSTRING16(("CRsfwNotPluginDlg::::ShowAuthenticationDialogL"));
-    	  	
-    TBool returnValue = EFalse;
-	HBufC* firstprompt = NULL;
-	HBufC* secondprompt = NULL;
-    firstprompt = StringLoader::LoadLC( R_RD_QUERY_USERNAME, iDriveName );
-	DEBUGSTRING16(("loaded firstprompt"));
-	secondprompt = StringLoader::LoadLC( R_RD_QUERY_PASSWORD);	
-		
-	DEBUGSTRING16(("loaded secondprompt"));
-	iAuthRequest = new (ELeave) TRsfwAuthParamsPckg();
-	TPtr username = iUserName->Des();
-    TPtr password = iPassword->Des();
-    CAknMultiLineDataQueryDialog* dlg = CAknMultiLineDataQueryDialog::NewL(username,password);
-    CleanupStack::PushL(dlg);
-    DEBUGSTRING16(("created dialog"));
-    dlg->SetPromptL(*firstprompt, *secondprompt);
-    DEBUGSTRING16(("set prompts"));
-    CleanupStack::Pop(dlg);
-    dlg->SetMaxLengthOfFirstEditor(KRsfwMaxUsernameLength);
-    dlg->SetMaxLengthOfFirstEditor(KRsfwMaxPasswordLength);
-    iDialog = dlg;
-    
-    BlockAppSwitching();
-    TBool okButtonSelected = dlg->ExecuteLD(R_CUSTOM_USERNAMEPASSWD_DIALOG);
-    UnblockAppSwitching();
-
-    
-    if (okButtonSelected) 
-        {
-        returnValue = ETrue;
-        (*iAuthRequest)().iUserName = username;
-        (*iAuthRequest)().iPassword = password;
-        }
-    
-    CleanupStack::PopAndDestroy(2, firstprompt); // secondprompt, firstprompt
-    return returnValue;
-    
-    }
-    
-TBool CRsfwNotPluginDlg::ShowSaveToDlgL()
-    { 
-    
-    TPtr filename = iFileName->Des();  
-  
-    CDesCArrayFlat* strings = new (ELeave) CDesCArrayFlat( 2 );
-    CleanupStack::PushL( strings );
-    strings->AppendL( filename );
-    strings->AppendL( iDriveName );    
-    
-    TBool dialogCancelled = EFalse;
-    TBool fileSelected = EFalse;
-    iCurrentRootPath = HBufC::NewL(KMaxPath);
-    TPtr rootptr = iCurrentRootPath->Des();
-    TPtr folderptr(NULL, 0);
-    
-    TInt saveSelection;
-    iSaveToRequest = new (ELeave) TRsfwSaveToParamsPckg();
-    CAknQueryDialog* note = CAknQueryDialog::NewL();
-    CleanupStack::PushL(note);
-    HBufC* saveprompt = StringLoader::LoadLC( R_RD_FILE_SAVE_FAIL, *strings);
-    note->SetPromptL(*saveprompt);
-    CleanupStack::PopAndDestroy(saveprompt);
-    CleanupStack::Pop(note);
-
-    BlockAppSwitching();            
-    saveSelection = note->ExecuteLD(R_CUSTOM_SAVE_QUERY);   
-    UnblockAppSwitching();
-
-    CleanupStack::PopAndDestroy(strings); // strings
-   
-    if (saveSelection == EAknSoftkeySave) 
-        {    
-        while (!fileSelected && !dialogCancelled)
-            {
-             CAknMemorySelectionDialog::TMemory selectedMem = 
-                                            CAknMemorySelectionDialog::EPhoneMemory;
-            if (iMemDialog) 
-                {
-                delete iMemDialog;
-                iMemDialog = NULL;
-                }  
-                                          
-             iMemDialog = CAknMemorySelectionDialog::NewL(ECFDDialogTypeSave, EFalse);
-             CAknCommonDialogsBase::TReturnKey retvalue;
-        
-             iMemDialog->SetObserver(this);
-             retvalue = iMemDialog->ExecuteL(selectedMem, &rootptr, &folderptr); 
-             if (retvalue) 
-                {
-                CAknFileSelectionDialog* filedialog = CAknFileSelectionDialog::NewL(ECFDDialogTypeSave);
-                CleanupStack::PushL(filedialog);
-                HBufC* dialogtxt = NULL;
-                dialogtxt = StringLoader::LoadLC( R_RD_SELECT_DIR_BACK );
-                filedialog->SetRightSoftkeyRootFolderL(*dialogtxt);
-                fileSelected = filedialog->ExecuteL(rootptr);
-                CleanupStack::PopAndDestroy(2, filedialog); // dialogtxt, filedialog
-                }
-             else 
-                {
-                dialogCancelled = ETrue;
-                }
-            }
-        
-        }
-       else
-        {
-        dialogCancelled = ETrue;
-        }
-    
-    if (!dialogCancelled) 
-        {
-        dialogCancelled = !GetValidNameL(rootptr, filename);
-      
-        }
-    
-    rootptr.Append(filename);    
-    
-    if (!dialogCancelled) 
-        {
-        (*iSaveToRequest)().iFileName= rootptr;
-        }
-               
-        
-    return !dialogCancelled;
-    
-    }
-
-void CRsfwNotPluginDlg::ShowWaitNoteL() 
-    {
-    if (iWaitDialog) 
-        {
-        delete iWaitDialog;
-        iWaitDialog = NULL;
-        }
-      
-      // We set visibilityDelayOff
-      // As we show wait dialog only for remote operations
-      // we can assumet that the length of the operation is always
-     //  over 1.5 seconds..
-      iWaitDialog = new( ELeave ) CAknWaitDialog(
-            reinterpret_cast< CEikDialog** >( &iWaitDialog ),
-            ETrue );
-
-    
-    // if user cancels the wait note, this is received via the callbakc.
-    iWaitDialog->SetCallback(this);  
-            
-    switch (iMethod) 
-        {
-        case TRsfwNotPluginRequest::EConnectingDlg:
-            // 'app key' will be unblocked in DialogDismissedL()
-            BlockAppSwitching();
-            iWaitDialog->ExecuteLD(R_CONNECTING_WAIT_NOTE);
-            break;
-        case TRsfwNotPluginRequest::EFetchingDlg:
-            // 'app key' will be unblocked in DialogDismissedL()
-            BlockAppSwitching();
-            iWaitDialog->ExecuteLD(R_FETCHING_WAIT_NOTE); 
-            break;
-        }   
-    }
-    
-
-TBool CRsfwNotPluginDlg::ShowUnavailableRetryNoteL()
-    {
-    HBufC* retryprompt = NULL;
-    retryprompt = StringLoader::LoadLC( R_RD_DRIVE_UNAVAILABLE, iDriveName );
-    
-    CAknQueryDialog* note = CAknQueryDialog::NewL();
-    CleanupStack::PushL(note);
-    note->SetPromptL(*retryprompt);
-    CleanupStack::Pop(note);
-
-    BlockAppSwitching();
-    TBool retryButtonSelected = note->ExecuteLD(R_CUSTOM_RETRY_QUERY);    
-    UnblockAppSwitching();    
-
-    CleanupStack::PopAndDestroy(retryprompt);
-    if (retryButtonSelected) 
-        {
-        return ETrue;
-        }
-    else 
-        {
-        return EFalse;
-        }
-    }
-
-
-
-TBool CRsfwNotPluginDlg::OkToExitL( CAknMemorySelectionDialog::TMemory aMemory ) 
-    {
-    TBool returnValue = EFalse;
-    TPtr rootptr = iCurrentRootPath->Des();
-    TPtr folderptr(NULL, 0);
-    iMemDialog->GetMemories( aMemory, &rootptr, &folderptr);
-  
-    TDriveUnit selectedDrive(iCurrentRootPath[0]);
-    TDriveUnit cacheDrive(iCacheDrive);
-    if (selectedDrive == cacheDrive) 
-        {
-        // just move between one drive
-        returnValue = ETrue;
-        }
-    else if (aMemory == CAknMemorySelectionDialog::EMemoryCard) 
-        {
-        if (SysUtil::MMCSpaceBelowCriticalLevelL(&iFs, iFileSize)) 
-            {
-            ShowDiskFullNoteL(EFalse);
-            }
-        else 
-            {
-            returnValue = ETrue;
-            }
-        }
-    else if (aMemory == CAknMemorySelectionDialog::EPhoneMemory) 
-        {
-        if (SysUtil::FFSSpaceBelowCriticalLevelL(&iFs, iFileSize))
-            {
-            ShowDiskFullNoteL(ETrue);
-            }
-        else 
-            {
-            returnValue = ETrue;
-            }
-        }
-     else 
-        {
-        // only allow memorycard or phone memory 
-        returnValue = EFalse;
-        }
-    return returnValue;
-    }
-
-TBool CRsfwNotPluginDlg::GetValidNameL(TDesC& aPath, TDes& aName)
-    {
-    HBufC* fullPath = HBufC::NewLC(KMaxFileName);
-    TPtr pathPtr= fullPath->Des();
-    pathPtr.Append(aPath);
-    pathPtr.Append(aName);
-    TBool renameFile = EFalse;
-    TBool userCancelled = EFalse;
-    TBool overwriteSelection = EFalse;
-  
- 
-    while (BaflUtils::FileExists(iFs, pathPtr) && !userCancelled && !overwriteSelection) 
-        {
-        TUint32 fileType( 0 );
-        fileType = FileTypeL( pathPtr ); 
-        // returns KEntryAttReadOnly if file is read only or open
-        CAknQueryDialog* note = CAknQueryDialog::NewL();
-        CleanupStack::PushL(note);
-        HBufC* queryprompt;
-        if (fileType & KEntryAttReadOnly) 
-            {
-            TBool retValue;
-            queryprompt = StringLoader::LoadLC( R_RD_ITEM_RENAME_QUERY, aName);
-            note->SetPromptL(*queryprompt);
-            CleanupStack::PopAndDestroy(queryprompt);
-            CleanupStack::Pop(note);
-            retValue = note->ExecuteLD(R_RSFW_PLUGIN_RENAME_QUERY);
-            if (retValue) 
-                {
-                renameFile = ETrue;
-                }
-            else 
-                {
-                userCancelled = ETrue;
-                }
-            }
-        else 
-            {
-            TBool retValue;
-            queryprompt = StringLoader::LoadLC( R_RD_ITEM_OVERWRITE_QUERY, aName);
-            note->SetPromptL(*queryprompt);
-            CleanupStack::PopAndDestroy(queryprompt);
-            CleanupStack::Pop(note);
-            retValue = note->ExecuteLD(R_RSFW_PLUGIN_OVERWRITE_QUERY);  
-            if (!retValue) 
-                {
-                renameFile = ETrue;
-                }
-            else 
-                {
-                overwriteSelection = ETrue;
-                }
-            }
-        
-        
-        if (renameFile) 
-            {
-            TBool retval;
-            CRsfwNotPluginNameDialog* dlg = 
-                CRsfwNotPluginNameDialog::NewL( 
-                pathPtr, aName, iFs);
-            dlg->SetMaxLength(KMaxFileName - aPath.Length());
-            dlg->PrepareLC( R_RSFW_NOT_PLUGIN_FILE_NAME_QUERY );
-            retval = dlg->RunLD();
-            if (!retval) 
-                {
-                userCancelled = ETrue;
-                }
-            else 
-                {
-                // reset the path after user renamed the file
-                CleanupStack::PopAndDestroy(fullPath);
-                fullPath = HBufC::NewLC(KMaxFileName);
-                pathPtr= fullPath->Des();
-                pathPtr.Append(aPath);
-                pathPtr.Append(aName);
-                }
-            }
-        
-        }
-    
-    CleanupStack::PopAndDestroy(fullPath);   
-        
-    if (!userCancelled) 
-        {
-        return ETrue;
-        }
-    else 
-        {
-        return EFalse;
-        }
-    
- 
-    }
-
-
-
-
-// ---------------------------------------------------------
-// CRsfwNotPluginDlg::ShowDiskFullNoteL
-// Show an out of disk note.
-// ---------------------------------------------------------
-//
-void CRsfwNotPluginDlg::ShowDiskFullNoteL( TBool aInternal )
-    {
-
-    HBufC* message = NULL;
-
-    if ( aInternal )
-        {
-        message = StringLoader::LoadLC( R_RSFWPLUGIN_NOT_ENOUGH_MEMORY );
-        }
-    else
-        {
-        message = StringLoader::LoadLC( R_RSFWPLUGIN_MMC_NOT_ENOUGH_MEMORY );
-        }
-
-    TRequestStatus status = KErrNone;
-	CAknGlobalNote* note = CAknGlobalNote::NewL();
-    CleanupStack::PushL( note );
-    note->SetSoftkeys( R_AVKON_SOFTKEYS_OK_EMPTY );
-	note->ShowNoteL( status, EAknGlobalErrorNote, *message );
-    User::WaitForRequest( status );
-
-    CleanupStack::PopAndDestroy( 2, message ); // note, message
-    }
-
-
-// ---------------------------------------------------------------------------
-// The notifier has been deactivated so resources can be freed and outstanding messages completed.
-// ---------------------------------------------------------------------------
-//
-void CRsfwNotPluginDlg::Cancel()
-    {
-    DEBUGSTRING(("CRsfwNotPluginDlg::Cancel"));        
-    TRAP_IGNORE(CancelL()); 
-    DEBUGSTRING(("exiting CRsfwNotPluginDlg::Cancel"));
-    }
-
-// ---------------------------------------------------------------------------
-// Called by Cancel() in order to catch the possible leaves.
-// ---------------------------------------------------------------------------
-//
-void CRsfwNotPluginDlg::CancelL()
-    {
-    if ((iMethod  >=  TRsfwNotPluginRequest::EConnectingDlg) &&
-        iWaitDialog) 
-        {
-        DEBUGSTRING(("calling ProcessFinishedL()"));
-        iDialogDismissedCalled = EFalse;
-        iWaitDialog->ProcessFinishedL();
-        // iWaitDialog->ProcessFinishedL() should call 
-        // dialogdismissed, but for some reason this does not always
-        // happen (really looks and feels like a )
-        // this extra help should save the day
-        if (!iDialogDismissedCalled) 
-            {
-            DEBUGSTRING(("extra call to ProcessFinishedL()"));
-            DialogDismissedL(EAknSoftkeyDone);
-            }
-        }
-    Cleanup();
-    }
-
-// ---------------------------------------------------------------------------
-// Sets KEntryAttReadOnly if the file is read only, system or open
-// ---------------------------------------------------------------------------
-//
-TUint32 CRsfwNotPluginDlg::FileTypeL( const TDesC& aFullPath ) const
-    {
-    TUint32 fileType(0);
- // Full check for local and removable drives
-    TEntry entry;
-    TInt err( iFs.Entry( aFullPath, entry ) );
-
-    // Check if item was deleted outside this component
-    if ( err == KErrNotFound || err == KErrPathNotFound )
-        {
-        User::Leave( err );
-        }
-
-    TBool fileOpen( EFalse );
-    iFs.IsFileOpen( aFullPath, fileOpen );
-    if ( fileOpen || entry.IsReadOnly() || entry.IsSystem() )
-        {
-        fileType |= KEntryAttReadOnly;
-        }
-                
-    return fileType;            
-            
-    }
-    
-// ---------------------------------------------------------------------------
-// Update a currently active notifier with data aBuffer.
-// ---------------------------------------------------------------------------
-//
-TPtrC8 CRsfwNotPluginDlg::UpdateL(const TDesC8& /*aBuffer*/)
-    {
-    return TPtrC8(NULL, 0);
-    }
-
-
-void CRsfwNotPluginDlg::DialogDismissedL( TInt aButtonId )
-    {
-    DEBUGSTRING(("CRsfwNotPluginDlg::DialogDismissedL"));
-    iDialogDismissedCalled = ETrue;
-    
-    UnblockAppSwitching();
-    
-    if (aButtonId == EAknSoftkeyCancel) 
-        {
-        DEBUGSTRING(("Completing dialogrequest with KErrCancel"));
-        iMessage.Complete(KErrCancel);
-        }
-    else if (aButtonId == EAknSoftkeyDone) 
-        {
-        DEBUGSTRING(("Completing dialogrequest with KErrNone"));
-        iMessage.Complete(KErrNone);
-        }
-    else 
-        {
-        DEBUGSTRING16(("Completing dialogrequest with %d", aButtonId));
-        iMessage.Complete(aButtonId);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CRsfwNotPluginDlg::BlockAppSwitching
-// Temporarily disables 'app key', so that user cannot switch or close
-// the app when global dialog is being displayed
-// ---------------------------------------------------------------------------
-//
-void CRsfwNotPluginDlg::BlockAppSwitching( )
-    {
-    if ( !iAppSwitchingBlocked )
-        {
-        ((CEikServAppUi*)(CEikonEnv::Static())->EikAppUi())
-       	         ->SuppressAppSwitching(ETrue);
-       	iAppSwitchingBlocked = ETrue;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CRsfwNotPluginDlg::UnblockAppSwitching
-// Enables 'app key' back
-// ---------------------------------------------------------------------------
-//
-void CRsfwNotPluginDlg::UnblockAppSwitching( )
-    {
-    if ( iAppSwitchingBlocked )
-        {
-        ((CEikServAppUi*)(CEikonEnv::Static())->EikAppUi())
-       	         ->SuppressAppSwitching(EFalse);
-       	iAppSwitchingBlocked = EFalse;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// ECOM interface
-// ---------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
-	{
-
-	IMPLEMENTATION_PROXY_ENTRY(0x101F9772,NotifierArray)
-
-	};
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-	{
-	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy) ;
-	return ImplementationTable;
-	}
-