ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp
branchRCL_3
changeset 65 7333d7932ef7
parent 22 0817e13c927e
child 66 8b7f4e561641
--- a/ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp	Thu Aug 19 10:02:49 2010 +0300
+++ b/ncdengine/provider/deviceinteraction/src/ncddeviceserviceimpl.cpp	Tue Aug 31 15:21:33 2010 +0300
@@ -38,7 +38,7 @@
 #endif
 
 #ifdef GET_DEVICE_ID_FROM_USERAGENT
-    #include <cuseragent.h>
+    #include <sysversioninfo.h>
 #endif
 
 #include "catalogs_device_config.h"
@@ -681,30 +681,16 @@
     return KCatalogsOverrideDeviceId().AllocLC();
 #endif    
 
-#ifdef GET_DEVICE_ID_FROM_USERAGENT    
-    // Assume the device id begins with "Nokia" and ends with "/"
-    HBufC8* userAgent = UserAgentL();
-    CleanupStack::PushL( userAgent );
-    TInt offset = userAgent->Find( _L8( "Nokia" ));
-    if ( offset == KErrNotFound )
-        {
-        DLTRACEOUT(("No Nokia"));
-        CleanupStack::PopAndDestroy( userAgent );
-        return KNullDesC().AllocLC();
-        }
-    TPtrC8 id = userAgent->Des().Mid( offset );
-    offset = id.Locate( '/' );
-    if ( offset == KErrNotFound )
-        {
-        DLTRACEOUT(("no /"));
-        CleanupStack::PopAndDestroy( userAgent );
-        return KNullDesC().AllocLC();
-        }
-    TPtrC8 id2 = id.Left( offset );
-    HBufC* devId = HBufC::NewL( id2.Length() );
-    devId->Des().Copy( id2 );
-    CleanupStack::PopAndDestroy( userAgent );
-    CleanupStack::PushL( devId );
+#ifdef GET_DEVICE_ID_FROM_USERAGENT  
+    
+    // Get model version.
+    TBuf< KSysVersionInfoTextLength > modelVersion;
+    User::LeaveIfError( SysVersionInfo::GetVersionInfo(
+        SysVersionInfo::EModelVersion, modelVersion ) );
+    
+    // Create buffer.
+    HBufC* devId = HBufC::NewLC( modelVersion.Length() );
+    devId->Des().Append( modelVersion );
     DLTRACEOUT(( _L("devId: %S"), devId ));
     return devId;
     
@@ -751,36 +737,16 @@
     
     if ( !iDeviceModel )
         {
-        // Get manufacturer 
-        HBufC8* manufacturer = Des16ToDes8LC( DeviceManufacturerL() );
-        
-        HBufC8* userAgent = UserAgentL();
-        CleanupStack::PushL( userAgent );
-        
-        TInt offset = userAgent->FindF( *manufacturer ); 
-        if ( offset == KErrNotFound )
-            {
-            DLTRACEOUT(("Device manufacturer not found"));
-            CleanupStack::PopAndDestroy( 2, manufacturer ); // manufacturer, useragent
-            return KNullDesC();
-            }
+        // Get model version.
+        TBuf< KSysVersionInfoTextLength > modelVersion;
+        User::LeaveIfError( SysVersionInfo::GetVersionInfo(
+            SysVersionInfo::EModelVersion, modelVersion ) );
+    
+        // Create buffer.
+        iDeviceModel = HBufC::NewL( modelVersion.Length() );
+        iDeviceModel->Des().Append( modelVersion );
+        }
         
-        // Strip manufacturer of the string    
-        TPtrC8 id = userAgent->Des().Mid( offset + manufacturer->Length() );
-        
-        // Locate the end of the device model
-        offset = id.Locate( '/' );
-        if ( offset == KErrNotFound )
-            {
-            DLTRACE(("no /"));
-            CleanupStack::PopAndDestroy( 2, manufacturer ); // manufacturer, useragent
-            return KNullDesC();
-            }
-        TPtrC8 id2 = id.Left( offset );
-        iDeviceModel = Des8ToDes16L( id2 );                        
-        
-        CleanupStack::PopAndDestroy( 2, manufacturer ); // manufacturer, useragent
-        }
     DLTRACEOUT(( _L("device model: %S"), iDeviceModel ));
     return *iDeviceModel;
 #endif // CATALOGS_OVERRIDE_MODEL   
@@ -853,30 +819,6 @@
         }
     return EAknsSrvPhone;
     }
-    
-
-// ---------------------------------------------------------------------------
-// On SDK 3.0 UA looks like this:
-// Mozilla/4.0 ( compatible; MSIE 5.0; Series60/3.0 Nokia6630/4.06.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) 
-// ---------------------------------------------------------------------------
-#ifdef GET_DEVICE_ID_FROM_USERAGENT
-
-HBufC8* CNcdDeviceService::UserAgentL() const
-    {
-    DLTRACEIN((""));
-#ifndef CATALOGS_OVERRIDE_USERAGENT    
-    CUserAgent* ua = CUserAgent::NewL();
-    CleanupStack::PushL( ua );
-    HBufC8* uas = ua->UserAgentL();
-    CleanupStack::PopAndDestroy( ua );
-    DLTRACEOUT(("UserAgent: %S", uas));
-    return uas;
-#else // CATALOGS_OVERRIDE_USERAGENT
-    return KCatalogsOverrideUserAgent().AllocL(); 
-#endif    
-    }
-
-#endif    
 
 // ---------------------------------------------------------------------------
 // GetPhoneLC