phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cellulardatasettings_s60.cpp
author hgs
Fri, 17 Sep 2010 17:09:12 +0300
changeset 74 d1c62c765e48
parent 27 2f8f8080a020
permissions -rw-r--r--
201037

/*
* Copyright (c) 2010 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:
*/

// System includes

#include "cmmanager.h"

// User includes

#include "cellulardatasettings.h"
#include "cellulardatasettings_s60_p.h"
#include "cppluginlogging.h"

// External function prototypes

// Local constants

// ======== LOCAL FUNCTIONS ========

// ======== MEMBER FUNCTIONS ========

/*!
    Constructor.
*/

CellularDataSettingsPrivate::CellularDataSettingsPrivate(CellularDataSettings *q_pointer) :
    q_ptr(q_pointer)
{
    DPRINT;
}

/*!
    Destructor.
*/

CellularDataSettingsPrivate::~CellularDataSettingsPrivate()
{
    DPRINT;
}

/*!
    Getter for setting "Cellular data usage in home network".
*/

int CellularDataSettingsPrivate::dataUseHome()
{
    DPRINT << ": IN";
    
    int result = 0;

    // Read the setting
    TCmGenConnSettings settings;
    readSettings(&settings);
    
    // Map the settings read result
    switch (settings.iCellularDataUsageHome) {
    case ECmCellularDataUsageAutomatic:
        result = CellularDataSettings::DataUsageHomeAutomatic;
        break;

    case ECmCellularDataUsageConfirm:
        result = CellularDataSettings::DataUsageHomeConfirm;
        break;

    case ECmCellularDataUsageDisabled:
        result = CellularDataSettings::DataUsageHomeWlanOnly;
        break;
    }
    
    DPRINT << ": OUT";
    
    return result;
}

/*!
    Setter for setting "Cellular data usage in home network".
*/

void CellularDataSettingsPrivate::setDataUseHome(int value)
{
    DPRINT << ": IN";
    
    TCmGenConnSettings settings;
    
    readSettings(&settings);    
    switch (value) {
    case CellularDataSettings::DataUsageHomeAutomatic:
        settings.iCellularDataUsageHome = ECmCellularDataUsageAutomatic; 
        break;

    case CellularDataSettings::DataUsageHomeConfirm:
        settings.iCellularDataUsageHome = ECmCellularDataUsageConfirm;
        break;

    case CellularDataSettings::DataUsageHomeWlanOnly:
        settings.iCellularDataUsageHome = ECmCellularDataUsageDisabled;
        break;
    }
    writeSettings(&settings);
    
    DPRINT << ": OUT";
}
    
/*!
    Getter for setting "Cellular data usage when roaming".
*/

int CellularDataSettingsPrivate::dataUseRoam()
{
    DPRINT << ": IN";
    
    int result = 0;

    // Read the setting
    TCmGenConnSettings settings;
    readSettings(&settings);
    
    // Map the settings read result
    switch (settings.iCellularDataUsageVisitor) {
    case ECmCellularDataUsageAutomatic:
        result = CellularDataSettings::DataUsageAbroadAutomatic;
        break;
        
    case ECmCellularDataUsageConfirm:
        result = CellularDataSettings::DataUsageAbroadConfirm;
        break;
        
    case ECmCellularDataUsageDisabled:
        result = CellularDataSettings::DataUsageAbroadWlanOnly;
        break;
    }
    
    DPRINT << ": OUT";
    
    return result;
}

/*!
    Getter for setting "Cellular data usage when roaming".
*/

void CellularDataSettingsPrivate::setDataUseRoam(int value)
{
    DPRINT << ": IN";
    
    TCmGenConnSettings settings;
    
    readSettings(&settings);    
    switch (value) {
    case CellularDataSettings::DataUsageAbroadAutomatic:
        settings.iCellularDataUsageVisitor = ECmCellularDataUsageAutomatic; 
        break;

    case CellularDataSettings::DataUsageAbroadConfirm:
        settings.iCellularDataUsageVisitor = ECmCellularDataUsageConfirm;
        break;

    case CellularDataSettings::DataUsageAbroadWlanOnly:
        settings.iCellularDataUsageVisitor = ECmCellularDataUsageDisabled;
        break;
    }
    writeSettings(&settings);
    
    DPRINT << ": OUT";
}

/*!
    Cellular data settings reading from CM Manager.
*/

void CellularDataSettingsPrivate::readSettings(TCmGenConnSettings *settings)
{
    DPRINT << ": IN";
    
    QT_TRAP_THROWING(
        RCmManager CmManager;
        CmManager.CreateTablesAndOpenL();
        CleanupClosePushL(CmManager); 
        CmManager.ReadGenConnSettingsL(*settings);
        CleanupStack::PopAndDestroy(1));
    
    DPRINT << ": Read: iCellularDataUsageHome= " << settings->iCellularDataUsageHome;
    DPRINT << ": Read: iCellularDataUsageVisitor= " << settings->iCellularDataUsageVisitor;
    
    DPRINT << ": OUT";
    
}

/*!
    Cellular data settings writing to CM Manager.
*/

void CellularDataSettingsPrivate::writeSettings(TCmGenConnSettings *settings)
{
    DPRINT << ": IN";
    
    DPRINT << ": Write: iCellularDataUsageHome= " << settings->iCellularDataUsageHome;
    DPRINT << ": Write: iCellularDataUsageVisitor=" << settings->iCellularDataUsageVisitor;

    QT_TRAP_THROWING(
        RCmManager CmManager;
        CmManager.CreateTablesAndOpenL();
        CleanupClosePushL(CmManager); 
        CmManager.WriteGenConnSettingsL(*settings);
        CleanupStack::PopAndDestroy(1););
    
    DPRINT << ": OUT";
}