omacpadapters/MbxNbrAdapter/Src/MbxNbrAdapter.cpp
author hgs
Fri, 15 Oct 2010 11:39:02 +0530
changeset 67 fdbfe0a95492
parent 52 6e38e48ee756
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
* All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
* Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
* Description:  Handles mailbox number settings in OMA provisioning.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
*/
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    19
// INCLUDE FILES
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
#include    <f32file.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
#include    <CWPCharacteristic.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    22
#include    <CWPParameter.h>
52
hgs
parents: 47
diff changeset
    23
#include    <cvoicemailbox.h>
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    24
#include 		<cvoicemailboxentry.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
#include    <commonphoneparser.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
#include 	<voicemailboxdomaincrkeys.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
#include 	<centralrepository.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    28
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
#include    "WPAdapterUtil.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    30
#include    "MbxNbrAdapter.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
#include    "ProvisioningDebug.h"
67
hgs
parents: 52
diff changeset
    32
#include <hbtextresolversymbian.h>
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
// CONSTANTS
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
#if ( defined (__WINS__) || defined (__WINSCW) ) // this different on hw
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
    _LIT( KAdapterName, "WPMbxNbrAdapterResource" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
#else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
    _LIT( KAdapterName, "WPMbxNbrAdapter" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
#endif
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
_LIT( KMailboxNumberStr, "MBNMBR" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
_LIT( KMailboxTypeStr, "MBTYPE" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
_LIT( KCSVideoMailboxType, "VIDEO" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
_LIT( KVideoSupportType, "VIDEO_MBOX_SUPPORT" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
_LIT( KVideoSupportTypeTrue, "TRUE" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
_LIT( KVideoSupportTypeFalse, "FALSE" );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
_LIT( KMailboxAppId, "w9027" );        // From OMA provisioning registration document
67
hgs
parents: 52
diff changeset
    47
_LIT( KMailboxResourceFileName, "deviceupdates_" );	
hgs
parents: 52
diff changeset
    48
_LIT( KMailboxResourceFilePath, "z:/resource/qt/translations/" );
hgs
parents: 52
diff changeset
    49
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
const TInt KSettingsGranularity = 2;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
// ============================ MEMBER FUNCTIONS ===============================
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
// CMbxNbrAdapter::CMbxNbrAdapter
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
// C++ default constructor can NOT contain any code, that
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
// might leave.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
CMbxNbrAdapter::CMbxNbrAdapter() : 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
    iSettings( KSettingsGranularity )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
// CMbxNbrAdapter::ConstructL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
// Symbian 2nd phase constructor can leave.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
void CMbxNbrAdapter::ConstructL()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
    FLOG( _L( "[Provisioning] CMbxNbrAdapter::ConstructL:" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
    
67
hgs
parents: 52
diff changeset
    74
    TBool result = HbTextResolverSymbian::Init(KMailboxResourceFileName, KMailboxResourceFilePath );
hgs
parents: 52
diff changeset
    75
    _LIT(KMailboxAdapter, "txt_device_update_dblist_mailbox_settings");
hgs
parents: 52
diff changeset
    76
    iTitle = HbTextResolverSymbian::LoadL(KMailboxAdapter);	                                           
hgs
parents: 52
diff changeset
    77
   
hgs
parents: 52
diff changeset
    78
     FLOG( _L( "[Provisioning] CMbxNbrAdapter::ConstructL: Done " ));
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
// CMbxNbrAdapter::NewL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
// Two-phased constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
CMbxNbrAdapter* CMbxNbrAdapter::NewL()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
    CMbxNbrAdapter* self = new( ELeave ) CMbxNbrAdapter; 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
    CleanupStack::PushL( self );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
    self->ConstructL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
    CleanupStack::Pop( self );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
    return self;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
// CMbxNbrAdapter::~CMbxNbrAdapter
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
// Destructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
CMbxNbrAdapter::~CMbxNbrAdapter()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
    delete iTitle;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
    iSettings.Close();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
// CMbxNbrAdapter::ItemCount
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
TInt CMbxNbrAdapter::ItemCount() const
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
	// SummaryTitle(), SummaryText(), SaveL(), SetAsDefaultL() and 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
	// CanSetAsDefault() are called ItemCount() times
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
	return iSettings.Count();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   117
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   118
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   119
// CMbxNbrAdapter::SummaryTitle
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   120
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   121
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   122
const TDesC16& CMbxNbrAdapter::SummaryTitle( TInt /*aIndex*/ ) const
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   123
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   124
    return *iTitle;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   125
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   126
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   127
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   128
// CMbxNbrAdapter::SummaryText
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   129
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   130
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   131
const TDesC16& CMbxNbrAdapter::SummaryText( TInt aIndex ) const
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   132
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   133
    // SummaryText should be called ItemCount() times
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   134
    __ASSERT_DEBUG( iSettings.Count() > aIndex, 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   135
        User::Panic( _L("CMbxNbrAdapter::SummaryText"),  KErrCorrupt ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   136
    __ASSERT_DEBUG( aIndex >= 0, 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   137
        User::Panic( _L("CMbxNbrAdapter::SummaryText"),  KErrCorrupt ) );              
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   138
    return iSettings[ aIndex ].iName;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   139
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   140
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   141
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   142
// CMbxNbrAdapter::DetailsL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   143
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   144
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   145
TInt CMbxNbrAdapter::DetailsL( TInt /*aItem*/, MWPPairVisitor& /*aVisitor*/ )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   146
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   147
    // Detail view is a feature for later release.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   148
    return KErrNotSupported;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   149
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   150
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   151
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   152
// CMbxNbrAdapter::SaveL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   153
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   154
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   155
void CMbxNbrAdapter::SaveL( TInt aItem )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   156
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   157
    FLOG( _L( "[Provisioning] CMbxNbrAdapter::SaveL:" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   158
    __ASSERT_DEBUG( iSettings.Count() > aItem, User::Leave( KErrCorrupt ) ); 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   159
    __ASSERT_DEBUG( aItem >= 0, User::Leave( KErrCorrupt ) ); 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   160
   
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   161
    //RVmbxNumber model;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   162
    //User::LeaveIfError( model.Open() );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   163
    //CleanupClosePushL( model );  
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   164
       
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   165
    TInt err( KErrNone );    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   166
    switch( iSettings[aItem].iMailboxType )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   167
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   168
        case ECSVoiceMailbox:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   169
        		
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   170
        		CVoiceMailbox* voiceModel = CVoiceMailbox::NewLC();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   171
    				CVoiceMailboxEntry* voiceEntry = CVoiceMailboxEntry::NewLC();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   172
        		voiceEntry->SetVoiceMailboxType(EVmbxVoice);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   173
        		voiceEntry->SetVmbxNumber(iSettings[aItem].iMailboxNumber);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   174
        		voiceModel->SaveProvisionedEntry(*voiceEntry);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   175
        		CleanupStack::PopAndDestroy(voiceEntry);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   176
        		CleanupStack::PopAndDestroy(voiceModel);	            
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   177
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   178
        case ECSVideoMailbox:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   179
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   180
        		CVoiceMailbox* videoModel = CVoiceMailbox::NewLC();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   181
    				CVoiceMailboxEntry* videoEntry = CVoiceMailboxEntry::NewLC();        		
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   182
            videoEntry->SetVoiceMailboxType(EVmbxVideo);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   183
            videoEntry->SetVmbxNumber(iSettings[aItem].iMailboxNumber);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   184
            videoModel->SaveProvisionedEntry(*videoEntry);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   185
            CleanupStack::PopAndDestroy(videoEntry);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   186
        		CleanupStack::PopAndDestroy(videoModel);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   187
        			
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   188
            if ( iSettings[aItem].iIsVideosupport )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   189
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   190
            CRepository* cenrep = CRepository::NewL( KCRUidVideoMailbox );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   191
	        FLOG( _L( "[Provisioning] CMbxNbrAdapter::SaveL:case Saving it to Cenrep" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   192
	        TBuf<100> buf1;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   193
	        buf1.AppendNum( iSettings[aItem].iVidiosupport );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   194
	        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   195
	        FLOG( buf1 );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   196
            CleanupStack::PushL(cenrep);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   197
			User::LeaveIfError(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   198
			cenrep->Set( KVideoMbxSupport, iSettings[aItem].iVidiosupport )); 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   199
			FLOG( _L( "[Provisioning] CMbxNbrAdapter::SaveL:case Saved" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   200
			CleanupStack::PopAndDestroy(cenrep);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   201
            }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   202
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   203
        default:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   204
            User::Leave( KErrCorrupt );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   205
            break;  
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   206
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   207
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   208
    User::LeaveIfError( err );        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   209
    //CleanupStack::PopAndDestroy();  // Close model
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   210
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   211
    FLOG( _L( "[Provisioning] CStreamingAdapter::SaveL: Done" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   212
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   213
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   214
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   215
// CMbxNbrAdapter::CanSetAsDefault
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   216
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   217
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   218
TBool CMbxNbrAdapter::CanSetAsDefault( TInt /*aItem*/ ) const
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   219
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   220
    return EFalse;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   221
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   222
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   223
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   224
// CMbxNbrAdapter::SetAsDefault
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   225
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   226
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   227
void CMbxNbrAdapter::SetAsDefaultL( TInt /*aItem*/ )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   228
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   229
    // This shouldn't be called because CanSetAsDefault
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   230
    // always returns EFalse.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   231
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   232
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   233
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   234
// CMbxNbrAdapter::VisitL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   235
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   236
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   237
void CMbxNbrAdapter::VisitL( CWPCharacteristic& aCharacteristic )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   238
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   239
    switch( aCharacteristic.Type() )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   240
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   241
        case KWPApplication:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   242
            // Initialize iTempData's members
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   243
            iTempData.iName.Set( KNullDesC );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   244
            iTempData.iMailboxNumber.Set( KNullDesC );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   245
            iTempData.iVidiosupport = EFalse;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   246
            iTempData.iIsVideosupport = EFalse;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   247
            iTempData.iMailboxType = ECSVoiceMailbox;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   248
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   249
            // Accept characteristic
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   250
            aCharacteristic.AcceptL( *this );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   251
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   252
            // Check iAppId and validate data
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   253
            if( iAppId == KMailboxAppId && IsValid() )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   254
                {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   255
                // iAppId is correct and data is valid
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   256
                // -> Lets append it to array                
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   257
                iSettings.Append( iTempData );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   258
                }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   259
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   260
        default:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   261
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   262
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   263
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   264
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   265
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   266
// CMbxNbrAdapter::VisitL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   267
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   268
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   269
void CMbxNbrAdapter::VisitL( CWPParameter& aParameter )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   270
    {   
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   271
    switch( aParameter.ID() )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   272
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   273
        case EWPParameterAppID:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   274
            iAppId.Set( aParameter.Value() );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   275
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   276
        case EWPParameterName:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   277
            iTempData.iName.Set( aParameter.Value() );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   278
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   279
		case EWPNamedParameter:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   280
			{
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   281
			if( aParameter.Name().Compare( KMailboxNumberStr ) == 0 )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   282
			    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   283
			    iTempData.iMailboxNumber.Set( aParameter.Value() );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   284
			    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   285
			else if( aParameter.Name().Compare( KMailboxTypeStr ) == 0 )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   286
			    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   287
			    ParseMbxTypeL( aParameter.Value(), iTempData.iMailboxType );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   288
			    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   289
			else if( aParameter.Name().Compare( KVideoSupportType ) == 0)
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   290
				{
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   291
			FLOG( _L( "[Provisioning] CMbxNbrAdapter::VisitL:Visiting to ParseVideoTypeL" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   292
				ParseVideoTypeL( aParameter.Value(), iTempData.iVidiosupport, iTempData.iIsVideosupport );	
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   293
			    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   294
			break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   295
			}
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   296
        default:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   297
            break;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   298
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   299
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   300
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   301
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   302
// CMbxNbrAdapter::VisitLinkL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   303
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   304
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   305
void CMbxNbrAdapter::VisitLinkL( CWPCharacteristic& /*aCharacteristic*/ )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   306
    { 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   307
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   308
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   309
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   310
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   311
// CMbxNbrAdapter::IsValid
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   312
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   313
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   314
TBool CMbxNbrAdapter::IsValid()
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   315
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   316
    TBool validity( EFalse );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   317
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   318
    // Validity check:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   319
    //  iMailboxType is either ECSVideoMailbox or ECSVoiceMailbox and
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   320
    //  iMailboxNumber is valid number in e.164 format  
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   321
    if( ( iTempData.iMailboxType == ECSVideoMailbox || 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   322
        iTempData.iMailboxType == ECSVoiceMailbox ) &&
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   323
        IsValidPhoneNumber( iTempData.iMailboxNumber ) )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   324
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   325
        validity = ETrue;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   326
        }    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   327
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   328
    return validity;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   329
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   330
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   331
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   332
// CMbxNbrAdapter::IsValidPhoneNumber
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   333
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   334
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   335
TBool CMbxNbrAdapter::IsValidPhoneNumber( const TDesC& aPtr ) 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   336
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   337
    return CommonPhoneParser::IsValidPhoneNumber( aPtr, 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   338
                                CommonPhoneParser::EPhoneClientNumber );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   339
    }       
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   340
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   341
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   342
// CMbxNbrAdapter::ParseMbxTypeL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   343
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   344
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   345
void CMbxNbrAdapter::ParseMbxTypeL( const TDesC& aPtr, TMailboxType& aType ) 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   346
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   347
    if( aPtr.Length() )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   348
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   349
        if( aPtr.Compare( KCSVideoMailboxType ) == 0 )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   350
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   351
            aType = ECSVideoMailbox;   
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   352
            }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   353
        else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   354
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   355
            User::Leave( KErrNotSupported );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   356
            }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   357
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   358
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   359
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   360
        aType = ECSVoiceMailbox;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   361
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   362
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   363
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   364
// CMbxNbrAdapter::ParseVideoTypeL
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   365
// -----------------------------------------------------------------------------
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   366
//
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   367
void CMbxNbrAdapter::ParseVideoTypeL( const TDesC& aPtr, TBool& aType, TBool& aType1 ) 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   368
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   369
    FLOG( _L( "[Provisioning] CMbxNbrAdapter::ParseVideoTypeL:in" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   370
    if( aPtr.Length() )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   371
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   372
        FLOG( _L( "[Provisioning] CMbxNbrAdapter::ParseVideoTypeL:If there is ON/OFF Value" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   373
        if( aPtr.Compare( KVideoSupportTypeTrue ) == 0 )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   374
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   375
            FLOG( _L( "[Provisioning] CMbxNbrAdapter::ParseVideoTypeL:if ON set TRUE" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   376
            aType = ETrue;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   377
            aType1 = ETrue;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   378
            }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   379
        else if( aPtr.Compare( KVideoSupportTypeFalse ) == 0 )
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   380
            {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   381
            FLOG( _L( "[Provisioning] CMbxNbrAdapter::ParseVideoTypeL:if OFF set False" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   382
            aType = EFalse;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   383
            aType1 = ETrue;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   384
            }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   385
        else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   386
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   387
        	FLOG( _L( "[Provisioning] CMbxNbrAdapter::ParseVideoTypeL:if some thing else set False" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   388
        	aType1 = EFalse;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   389
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   390
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   391
    else
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   392
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   393
        FLOG( _L( "[Provisioning] CMbxNbrAdapter::ParseVideoTypeL:no ON/OFF" ) );
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   394
        aType1 = EFalse;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   395
        }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   396
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   397
	
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   398
//  End of File