20 // INCLUDE FILES |
20 // INCLUDE FILES |
21 #include <e32base.h> |
21 #include <e32base.h> |
22 #include <msvapi.h> |
22 #include <msvapi.h> |
23 #include <mmsclient.h> |
23 #include <mmsclient.h> |
24 #include <mtclreg.h> |
24 #include <mtclreg.h> |
25 #include <ApDataHandler.h> |
|
26 #include <ApAccessPointItem.h> |
|
27 #include <ApUtils.h> |
|
28 #include <f32file.h> |
25 #include <f32file.h> |
29 #include <barsc.h> |
26 #include <barsc.h> |
30 #include <bautils.h> |
27 #include <bautils.h> |
31 #include <CWPCharacteristic.h> |
28 #include <CWPCharacteristic.h> |
32 #include <CWPParameter.h> |
29 #include <CWPParameter.h> |
33 #include <WPAdapterUtil.h> |
30 #include <WPAdapterUtil.h> |
|
31 #include <commdb.h> |
34 #include <CWPAdapter.h> |
32 #include <CWPAdapter.h> |
35 #include "CWPWAPItemBAse.h" |
33 #include "CWPWAPItemBAse.h" |
36 #include "ProvisioningDebug.h" |
34 #include "ProvisioningDebug.h" |
|
35 #include <cmconnectionmethoddef.h> |
37 |
36 |
38 // CONSTANTS |
37 // CONSTANTS |
39 const TInt KNamesGranularity = 1; |
38 const TInt KNamesGranularity = 1; |
40 const TInt KNameMaxLength = 50; |
39 const TInt KNameMaxLength = 50; |
41 |
40 |
49 // |
48 // |
50 CWPWAPItemBase::CWPWAPItemBase( const TDesC& aTitle, |
49 CWPWAPItemBase::CWPWAPItemBase( const TDesC& aTitle, |
51 const TDesC& aDefaultName, |
50 const TDesC& aDefaultName, |
52 CWPCharacteristic& aCharacteristic, |
51 CWPCharacteristic& aCharacteristic, |
53 CCommsDatabase*& aCommsDb, |
52 CCommsDatabase*& aCommsDb, |
54 CApDataHandler*& aAPHandler ) |
53 RCmManagerExt*& aCmManager) |
55 : iCharacteristic( aCharacteristic ), |
54 : iCharacteristic( aCharacteristic ), |
56 iTitle( aTitle ), |
55 iTitle( aTitle ), |
57 iDefaultName( aDefaultName ), |
56 iDefaultName( aDefaultName ), |
58 iCommsDb( aCommsDb ), |
57 iCommsDb( aCommsDb ), |
59 iAPHandler( aAPHandler ) |
58 iCmManager( aCmManager ) |
60 { |
59 { |
|
60 |
61 } |
61 } |
62 |
62 |
63 // ----------------------------------------------------------------------------- |
63 // ----------------------------------------------------------------------------- |
64 // CWPWAPItemBase::BaseConstructL |
64 // CWPWAPItemBase::BaseConstructL |
65 // Symbian 2nd phase constructor can leave. |
65 // Symbian 2nd phase constructor can leave. |
209 if( !iCommsDb ) |
209 if( !iCommsDb ) |
210 { |
210 { |
211 iCommsDb = CCommsDatabase::NewL(); |
211 iCommsDb = CCommsDatabase::NewL(); |
212 } |
212 } |
213 |
213 |
214 if( !iAPHandler ) |
214 if( !iCmManager ) |
215 { |
215 { |
216 iAPHandler = CApDataHandler::NewLC( *iCommsDb ); |
216 iCmManager = new RCmManagerExt; |
217 CleanupStack::Pop(); // iAPEngine |
217 iCmManager->OpenL(); |
218 } |
218 } |
219 } |
219 } |
220 |
220 |
221 // ----------------------------------------------------------------------------- |
221 // ----------------------------------------------------------------------------- |
222 // CWPWAPItemBase::WriteHomePageL |
222 // CWPWAPItemBase::WriteHomePageL |
223 // ----------------------------------------------------------------------------- |
223 // ----------------------------------------------------------------------------- |
224 // |
224 // |
225 void CWPWAPItemBase::WriteHomePageL( CApAccessPointItem& aItem ) |
225 void CWPWAPItemBase::WriteHomePageL( RCmConnectionMethodExt& aCmItem ) |
226 { |
226 { |
227 FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL:" ) ); |
227 FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL:" ) ); |
228 |
228 |
229 if( iAddr ) |
229 if( iAddr ) |
230 { |
230 { |
231 if( aItem.ReadTextLengthL( EApWapStartPage ) > 0 ) |
231 if( aCmItem.GetStringAttributeL(CMManager::ECmStartPage) > 0 ) |
232 { |
232 { |
233 FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage " ) ); |
233 FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage " ) ); |
234 // Make a copy of the AP |
234 // Make a copy of the AP |
235 CApAccessPointItem* newItem = CApAccessPointItem::NewLC(); |
235 RCmConnectionMethodExt cm = aCmItem.CreateCopyL(); |
236 newItem->CopyFromL( aItem ); |
236 CleanupClosePushL( cm ); |
237 |
237 |
238 // Create a proper name for the copy |
238 // Create a proper name for the copy |
239 TBuf<KNameMaxLength> name( iName.Left( KNameMaxLength ) ); |
239 TBuf<KNameMaxLength> name( iName.Left( KNameMaxLength ) ); |
240 MakeValidNameL( name, *iCommsDb ); |
240 // MakeValidNameL( name, *iCommsDb ); |
|
241 |
241 |
242 |
242 // Write name |
243 // Write name |
243 User::LeaveIfError( newItem->WriteTextL( EApWapAccessPointName, name ) ); |
244 cm.SetStringAttributeL(CMManager::ECmName,name); |
244 |
245 cm.SetStringAttributeL(CMManager::ENamingUnique,name); |
245 //Write IAP name |
246 |
246 User::LeaveIfError( newItem->WriteTextL( EApIapName, name ) ); |
|
247 // Write MMSC address |
247 // Write MMSC address |
248 User::LeaveIfError( newItem->WriteLongTextL( EApWapStartPage, *iAddr ) ); |
248 cm.SetStringAttributeL(CMManager::ECmStartPage,*iAddr); |
249 |
249 |
250 // Create the new access point |
250 // Create the new access point |
251 TRAPD( err, iUID = iAPHandler->CreateFromDataL( *newItem ) ); |
251 TRAPD( err, cm.UpdateL() ); |
252 |
252 |
253 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err)); |
253 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err)); |
254 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID)); |
254 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID)); |
255 |
255 |
256 if( err == KErrLocked ) |
256 if( err == KErrLocked ) |
265 CleanupStack::PopAndDestroy(); // newItem |
265 CleanupStack::PopAndDestroy(); // newItem |
266 } |
266 } |
267 else |
267 else |
268 { |
268 { |
269 FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage 0 " ) ); |
269 FLOG( _L( "[Provisioning] CWPWAPItemBase::WriteHomePageL: EApWapStartPage 0 " ) ); |
270 User::LeaveIfError( aItem.WriteLongTextL( EApWapStartPage, *iAddr ) ); |
270 aCmItem.SetStringAttributeL(CMManager::ECmStartPage,*iAddr); |
271 |
271 |
272 // Update the access point |
272 // Update the access point |
273 TBool nameChanged( EFalse ); |
273 TBool nameChanged( EFalse ); |
274 TRAPD( err, iAPHandler->UpdateAccessPointDataL( aItem, nameChanged ) ); |
274 TRAPD( err, aCmItem.UpdateL() ); |
275 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err)); |
275 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL err (%d)"), err)); |
276 if( err == KErrLocked ) |
276 if( err == KErrLocked ) |
277 { |
277 { |
278 err = EWPCommsDBLocked; |
278 err = EWPCommsDBLocked; |
279 } |
279 } |
280 User::LeaveIfError( err ); |
280 User::LeaveIfError( err ); |
281 iUID = aItem.WapUid(); |
281 iUID = aCmItem.GetIntAttributeL(CMManager::ECmIapId); |
282 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID)); |
282 FTRACE(RDebug::Print(_L("[Provisioning] CWPWAPItemBase::WriteHomePageL: CreateFromDataL iUID (%d)"), iUID)); |
283 } |
283 } |
284 } |
284 } |
285 } |
285 } |
286 |
286 |
288 // CWPWAPItemBase::MakeValidNameL |
288 // CWPWAPItemBase::MakeValidNameL |
289 // ----------------------------------------------------------------------------- |
289 // ----------------------------------------------------------------------------- |
290 // |
290 // |
291 void CWPWAPItemBase::MakeValidNameL( TDes& aName, CCommsDatabase& aDb ) const |
291 void CWPWAPItemBase::MakeValidNameL( TDes& aName, CCommsDatabase& aDb ) const |
292 { |
292 { |
293 CApUtils* utils = CApUtils::NewLC( aDb ); |
293 /* CApUtils* utils = CApUtils::NewLC( aDb ); |
294 utils->MakeValidNameL( aName ); |
294 utils->MakeValidNameL( aName ); |
295 CleanupStack::PopAndDestroy(); // utils |
295 CleanupStack::PopAndDestroy(); // utils*/ |
296 } |
296 } |
297 |
297 |
298 // End of File |
298 // End of File |