cellular/telephonysettings/src/PSetRefreshHandlerImpl.cpp
changeset 0 ff3b6d0fd310
child 7 a19c8664496d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/src/PSetRefreshHandlerImpl.cpp	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,284 @@
+/*
+* Copyright (c) 2004-2005 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:  The Refresh handler to inform refresses.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "PSetRefreshHandlerImpl.h"
+#include    <etelmm.h>
+#include    <msssettingsrefreshhandler.h>
+#include    <csssettingsrefreshcontainer.h>
+#include    <PsetCSP.h>
+#include    "PhoneSettingsLogger.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::CPSetRefreshHandlerImpl
+// 
+// C++ constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CPSetRefreshHandlerImpl::CPSetRefreshHandlerImpl()
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::ConstructL
+// 
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CPSetRefreshHandlerImpl::ConstructL()
+    {
+    __PHSLOGSTRING("[PHS]--> CPSetRefreshHandlerImpl::ConstructL");
+    iCsp = CPsetCustomerServiceProfile::NewL();
+
+    iSSSetRefContainer = CSSSettingsRefreshContainer::NewL();
+    iSSSetRefHandler = &iSSSetRefContainer->RefreshHandler();
+    __PHSLOGSTRING("[PHS] <--CPSetRefreshHandlerImpl::ConstructL");
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::NewL
+// 
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CPSetRefreshHandlerImpl* CPSetRefreshHandlerImpl::NewL()
+    {
+    CPSetRefreshHandlerImpl* self = new( ELeave ) CPSetRefreshHandlerImpl;
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::~CPSetRefreshHandlerImpl
+// 
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CPSetRefreshHandlerImpl::~CPSetRefreshHandlerImpl()
+    {
+    iObserver = NULL;
+
+    iSSSetRefHandler = NULL;
+    delete iSSSetRefContainer;
+    iSSSetRefContainer = NULL;
+
+    delete iCsp;
+    iCsp = NULL;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::NotifyFileChangeL
+// 
+// 
+// -----------------------------------------------------------------------------
+//
+void CPSetRefreshHandlerImpl::NotifyFileChangeL(
+    MSSSettingsRefreshObserver& aObserver,
+    TSatElementaryFiles aObservedFiles,
+    TSatRefreshType aObservedRefreshType )
+    {
+    __PHSLOGSTRING("[PHS]--> CPSetRefreshHandlerImpl::NotifyFileChangeL");
+    iObserver = &aObserver;
+
+    iSSSetRefHandler->NotifyFileChangeL(
+        *this,
+        aObservedFiles,
+        aObservedRefreshType );
+    __PHSLOGSTRING("[PHS] <--CPSetRefreshHandlerImpl::NotifyFileChangeL");
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::CancelNotify
+// 
+// 
+// -----------------------------------------------------------------------------
+//
+void CPSetRefreshHandlerImpl::CancelNotify()
+    {
+    iObserver = NULL;
+
+    iSSSetRefHandler->CancelNotify();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::ChangedCspSettings
+// 
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CPSetRefreshHandlerImpl::ChangedCspSettings( 
+    TPSetChangedCspSetting& aChangedCspSettings,
+    TPSetChangedCspSetting& aNewValues )
+    {
+    __PHSLOGSTRING("[PHS]--> CPSetRefreshHandlerImpl::ChangedCspSettings");
+    RMobilePhone::TMobilePhoneCspFileV1 cspSettings;
+    RMobilePhone::TMobilePhoneCspFileV1Pckg cspSettingsPckg ( cspSettings );
+    RMobilePhone::TMobilePhoneCspFileV1 cspValues;
+    RMobilePhone::TMobilePhoneCspFileV1Pckg cspValuePckg ( cspValues );
+
+    TInt err = iSSSetRefHandler->ChangedCspTable( 
+        cspSettingsPckg,
+        cspValuePckg );
+
+    if ( err == KErrNone )
+        {
+        // First reset the parameters to contain nothing.
+        TInt changedSettings = EPSetNoChangedSetting;
+        TInt newValues = EPSetNoChangedSetting;
+
+
+        // Call waiting support.
+        if ( iCsp->CheckIfCWSupported( ( RMobilePhone::TCspCallCompletion ) 
+            cspSettings.iCallCompletionServices ) )
+            {
+            // Call waiting settings have changed.
+            changedSettings += EPSetCW;
+            // Find the new value.
+            if ( iCsp-> CheckIfCWSupported( ( RMobilePhone::TCspCallCompletion ) 
+                cspValues.iCallCompletionServices ) )
+                {
+                newValues += EPSetCW;
+                }
+            }
+
+        // Call barring support.
+        if ( iCsp->CheckIfCBSupported( ( RMobilePhone::TCspCallRestriction ) 
+            cspSettings.iCallRestrictionServices ) )
+            {
+            // Call barring settings have changed.
+            changedSettings += EPSetCB;
+
+            // Find the new value.
+            if ( iCsp->CheckIfCBSupported( ( RMobilePhone::TCspCallRestriction ) 
+                cspValues.iCallRestrictionServices ) )
+                {
+                newValues += EPSetCB;
+                }
+            }
+
+        // Call forwarding support.
+        if ( iCsp->CheckIfCFSupported( ( RMobilePhone::TCspCallOffering ) 
+            cspSettings.iCallOfferingServices )  )
+            {
+            // Call forwarding settings have changed.
+            changedSettings += EPSetCF;
+
+            // Find the new value.
+            if ( iCsp->CheckIfCFSupported( ( RMobilePhone::TCspCallOffering ) 
+                cspValues.iCallOfferingServices )  )
+                {
+                newValues += EPSetCF;
+                }
+            }
+
+        // ALS support.
+        if ( iCsp->CheckIfAlsSupported( ( RMobilePhone::TCspCPHSTeleservices ) 
+            cspSettings.iCphsTeleservices )  )
+            {
+            // ALS settings have changed.
+            changedSettings += EPSetALS;
+
+            // Find the new value.
+            if ( iCsp->CheckIfAlsSupported( ( RMobilePhone::TCspCPHSTeleservices ) 
+                cspValues.iCphsTeleservices )  )
+                {
+                newValues += EPSetALS;
+                }
+            }
+
+        // Network selection support.
+        if (  iCsp->CheckIfNetworkSelectionSupported( ( 
+            RMobilePhone::TCspValueAdded ) cspSettings.iValueAddedServices ) )
+            {
+            // Network selection support settings have changed.
+            changedSettings += EPSetNetSelSup;
+
+            // Find the new value.
+            if (  iCsp->CheckIfNetworkSelectionSupported( ( 
+                RMobilePhone::TCspValueAdded ) cspValues.iValueAddedServices ) )
+                {
+                newValues += EPSetNetSelSup;
+                }
+            }
+
+        // Set the changed values to user parameter.
+        aChangedCspSettings = ( TPSetChangedCspSetting ) changedSettings;
+        aNewValues = ( TPSetChangedCspSetting ) newValues;
+        }
+
+    __PHSLOGSTRING1("[PHS]   CPSetRefreshHandlerImpl::ChangedCspSettings: err: %d", err);
+    __PHSLOGSTRING("[PHS] <--CPSetRefreshHandlerImpl::ChangedCspSettings");
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::AllowRefresh
+// 
+// 
+// -----------------------------------------------------------------------------
+//
+TBool CPSetRefreshHandlerImpl::AllowRefresh(
+    const TSatRefreshType aType,
+    const TSatElementaryFiles aFiles )
+    {
+    TBool allow = ETrue;
+
+    if ( iObserver )
+        {
+        allow = iObserver->AllowRefresh(
+            aType,
+            aFiles );
+        }
+
+    return allow;
+    }
+
+// -----------------------------------------------------------------------------
+// CPSetRefreshHandlerImpl::Refresh
+// 
+// 
+// -----------------------------------------------------------------------------
+//
+void CPSetRefreshHandlerImpl::Refresh(
+    const TSatRefreshType aType,
+    const TSatElementaryFiles aFiles )
+    {
+    if ( iObserver )
+        {
+        iObserver->Refresh(
+            aType,
+            aFiles );
+        }
+    }
+
+
+//  End of File