Revision: 201035 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 15 Sep 2010 13:07:27 +0300
branchRCL_3
changeset 48 debf68073f2f
parent 45 74aa6861c87d
child 58 142dacf7b30e
Revision: 201035 Kit: 201036
connectivitymodules/SeCon/clients/syncclient/inc/sconsyncclient.h
connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp
connectivitymodules/SeCon/servers/pcconn/inc/sconbtengine.h
connectivitymodules/SeCon/servers/pcconn/inc/sconimsireader.h
connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp
connectivitymodules/SeCon/servers/syncserver/group/sconsyncserver.mmp
connectivitymodules/SeCon/servers/syncserver/inc/sconsyncrelationship.h
connectivitymodules/SeCon/servers/syncserver/src/sconasynchandler.cpp
connectivitymodules/SeCon/services/csc/bld/101F99F6.xml
connectivitymodules/SeCon/services/pcd/src/sconsynchandler.cpp
mtpdataproviders/mtpfileandfolderdp/inc/mtpfiledpconst.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetformatcapabilities.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h
mtpdataproviders/mtpimagedp/inc/cmtpimagedpsendobjectinfo.h
mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h
mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp
mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp
mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp
mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevicedpconst.h
mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpcopyobject.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetformatcapabilities.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropdesc.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropvalue.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpmoveobject.h
mtpfws/mtpfw/dataproviders/dputility/inc/cmtpsendobjectinfo.h
mtpfws/mtpfw/dataproviders/dputility/inc/mtpdpconst.h
mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpmoveobject.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectproplist.cpp
mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp
mtpfws/mtpfw/datatypes/interface/mtpprotocolconstants.h
--- a/connectivitymodules/SeCon/clients/syncclient/inc/sconsyncclient.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/clients/syncclient/inc/sconsyncclient.h	Wed Sep 15 13:07:27 2010 +0300
@@ -21,7 +21,7 @@
 
 #include <e32base.h>
 #include <e32std.h>
-#include <ecom/ImplementationInformation.h>
+#include <ecom/implementationinformation.h>
 #include <SmlDataProvider.h>
 
 #include "scondataproviderinfo.h"
--- a/connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp	Wed Sep 15 13:07:27 2010 +0300
@@ -21,8 +21,7 @@
 #include <data_caging_paths.hrh>
 
 VENDORID        VID_DEFAULT
-
-CAPABILITY      CAP_SERVER TrustedUI
+CAPABILITY      ReadDeviceData WriteDeviceData SwEvent NetworkServices ReadUserData WriteUserData LocalServices TrustedUI
 
 TARGET          sconpcconnserver.exe
 TARGETTYPE      exe
--- a/connectivitymodules/SeCon/servers/pcconn/inc/sconbtengine.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/inc/sconbtengine.h	Wed Sep 15 13:07:27 2010 +0300
@@ -23,7 +23,7 @@
 #include <e32std.h>
 #include <e32base.h>
 #include <s32mem.h>
-#include <BTEngDevMan.h>
+#include <btengdevman.h>
 #include <btengsettings.h>
 
 const TInt KCenRepAddrBufSize = 2 * KBTDevAddrSize;
--- a/connectivitymodules/SeCon/servers/pcconn/inc/sconimsireader.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/inc/sconimsireader.h	Wed Sep 15 13:07:27 2010 +0300
@@ -20,7 +20,7 @@
 #define __SCONIMSIREADER_H__
 
 #include <e32base.h>
-#include <Etel3rdParty.h>
+#include <etel3rdparty.h>
 
 enum TImsiReaderStatus
     {
--- a/connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -18,7 +18,7 @@
 
 #include <s32mem.h> // For RMemReadStream
 #include <utf.h>
-#include <Etel3rdParty.h>
+#include <etel3rdparty.h>
 #include <f32file.h>
 
 #include "sconpcconnclientserver.h"
--- a/connectivitymodules/SeCon/servers/syncserver/group/sconsyncserver.mmp	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/syncserver/group/sconsyncserver.mmp	Wed Sep 15 13:07:27 2010 +0300
@@ -44,7 +44,7 @@
 USERINCLUDE     ../../../clients/syncclient/inc
 SOURCE          scondataproviderinfo.cpp
 
-USERINCLUDE     ..\inc
+USERINCLUDE     ../inc
 
 // Default system include paths for middleware layer modules.
 MW_LAYER_SYSTEMINCLUDE
--- a/connectivitymodules/SeCon/servers/syncserver/inc/sconsyncrelationship.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/syncserver/inc/sconsyncrelationship.h	Wed Sep 15 13:07:27 2010 +0300
@@ -22,8 +22,8 @@
 #include <e32base.h>
 #include <f32file.h> 
 #include <s32file.h>
-#include <syncml/smldatasyncdefs.h>
-#include <syncmldef.h>
+#include <syncml/SmlDataSyncDefs.h>
+#include <SyncMLDef.h>
 
 class CDictionaryFileStore;
 
--- a/connectivitymodules/SeCon/servers/syncserver/src/sconasynchandler.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/syncserver/src/sconasynchandler.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -23,7 +23,7 @@
 #include <s32mem.h>
 #include <nsmlchangefinder.h>
 #include <e32cmn.h>
-#include <ecom/ImplementationInformation.h>
+#include <ecom/implementationinformation.h>
 #include <mmf/common/mmfcontrollerpluginresolver.h>
 
 #include "sconsyncclientserver.h"
@@ -42,8 +42,9 @@
 const TInt KMaxStoresCount = 10;
 
 const TInt KDefaultTimeOutInMicroSeconds = 30 * 1000000; // 30 seconds
-const TInt KDeleteAllTimeOutInMicroSeconds = 300 * 1000000; // 5 minutes
-const TInt KOpenStoreTimeOutInMicroSeconds = 180 * 1000000; // 180 seconds
+const TInt KDeleteAllTimeOutInMicroSeconds = 540 * 1000000; // 9 minutes
+const TInt KOpenStoreTimeOutInMicroSeconds = 540 * 1000000; //  9 minutes
+const TInt KResetChangeInfoTimeOutInMicroSeconds = 540 * 1000000; // 9 minutes
 
 CSconAsyncHandler::~CSconAsyncHandler()
     {
@@ -180,6 +181,7 @@
             MovedItemsL();
             break;
         case EResetChangeInfo:
+            iTimeOut->Start( KResetChangeInfoTimeOutInMicroSeconds );
             ResetChangeInfoL();
             break;
         case ECommitChangeInfo:
Binary file connectivitymodules/SeCon/services/csc/bld/101F99F6.xml has changed
--- a/connectivitymodules/SeCon/services/pcd/src/sconsynchandler.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/services/pcd/src/sconsynchandler.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -18,8 +18,8 @@
 
 #include "sconsynchandler.h"
 #include <f32file.h>
-#include <S32MEM.H>
-#include <UTF.H>
+#include <s32mem.h>
+#include <utf.h>
 #include <mmf/common/mmfcontrollerpluginresolver.h>
 #include <bautils.h>
 #include <nsmlconstants.h>
--- a/mtpdataproviders/mtpfileandfolderdp/inc/mtpfiledpconst.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpfileandfolderdp/inc/mtpfiledpconst.h	Wed Sep 15 13:07:27 2010 +0300
@@ -75,7 +75,8 @@
 	EMTPObjectPropCodeParentObject,
 	EMTPObjectPropCodePersistentUniqueObjectIdentifier,
 	EMTPObjectPropCodeName,
-	EMTPObjectPropCodeNonConsumable	
+	EMTPObjectPropCodeNonConsumable,
+	EMTPObjectPropCodeHidden
 	};
 
 /**
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetformatcapabilities.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetformatcapabilities.h	Wed Sep 15 13:07:27 2010 +0300
@@ -51,6 +51,7 @@
     void ServiceOneFormatCapabilitiesL(TUint aFormatCode);
     CMTPTypeObjectPropDesc* ServiceProtectionStatusL();
     CMTPTypeObjectPropDesc* ServiceNonConsumableL();
+	CMTPTypeObjectPropDesc* ServiceHiddenL();
     
     TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
     
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h	Wed Sep 15 13:07:27 2010 +0300
@@ -70,6 +70,7 @@
     void ServiceRepresentativeSampleWidthL();
     void ServiceRepresentativeSampleDataL();
     void ServiceNonConsumableL();
+    void ServiceHiddenL();
     TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
     
 private:
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h	Wed Sep 15 13:07:27 2010 +0300
@@ -73,6 +73,7 @@
     void ServiceRepresentativeSampleWidthL();
     void ServiceRepresentativeSampleDataL();
     void ServiceNonConsumableL();
+    void ServiceHiddenL();
 
 private:
     CMTPImageDpObjectPropertyMgr&	iObjectPropertyMgr;
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpsendobjectinfo.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpsendobjectinfo.h	Wed Sep 15 13:07:27 2010 +0300
@@ -175,6 +175,7 @@
     CMTPObjectMetaData*      iReceivedObject;
     TMTPTypeRequest          iExpectedSendObjectRequest;
     TUint16                  iProtectionStatus;
+    TUint16                  iHiddenStatus;
     TUint16                  iFormatCode;
     TUint32                  iPreviousTransactionID;
     CMTPImageDpObjectPropertyMgr&  iObjectPropertyMgr;
--- a/mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h	Wed Sep 15 13:07:27 2010 +0300
@@ -98,7 +98,8 @@
   	EMTPObjectPropCodeRepresentativeSampleHeight,
   	EMTPObjectPropCodeRepresentativeSampleWidth,
   	EMTPObjectPropCodeRepresentativeSampleData,
-  	EMTPObjectPropCodeNonConsumable
+  	EMTPObjectPropCodeNonConsumable,
+  	EMTPObjectPropCodeHidden
   	};
 
 /**
@@ -134,7 +135,10 @@
     EMTPObjectPropCodeRepresentativeSampleSize,
     EMTPObjectPropCodeRepresentativeSampleHeight,
     EMTPObjectPropCodeRepresentativeSampleWidth,
-    EMTPObjectPropCodeRepresentativeSampleData
+    EMTPObjectPropCodeRepresentativeSampleData,
+    
+    //From file system
+    EMTPObjectPropCodeHidden
     };
 
 /**
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -45,7 +45,7 @@
 const TMTPRequestElementInfo KMTPCopyObjectPolicy[] = 
     {
         {TMTPTypeRequest::ERequestParameter2, EMTPElementTypeStorageId, EMTPElementAttrWrite, 0, 0, 0},
-        {TMTPTypeRequest::ERequestParameter3, EMTPElementTypeObjectHandle, EMTPElementAttrDir | EMTPElementAttrWrite, 1, 0, 0}
+        {TMTPTypeRequest::ERequestParameter3, EMTPElementTypeObjectHandle, EMTPElementAttrDir, 1, 0, 0}
     };
     
 /**
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -175,7 +175,10 @@
             break;
         case EMTPObjectPropCodeNonConsumable:
             ServiceNonConsumableL();
-            break;            
+            break;
+        case EMTPObjectPropCodeHidden:
+            ServiceHiddenL();
+            break;
         default:
             {
             //Leave 
@@ -434,6 +437,21 @@
     iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeNonConsumable, *expectedForm);     
     CleanupStack::PopAndDestroy(expectedForm);
     }
+	
+void CMTPImageDpGetObjectPropDesc::ServiceHiddenL()
+    {
+    CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+    CleanupStack::PushL(expectedForm);
+    TUint16 values[] = {EMTPVisible,EMTPHidden};
+    TUint   numValues((sizeof(values) / sizeof(values[0])));
+    for (TUint i = 0; i < numValues; i++)
+        {
+        TMTPTypeUint16 data(values[i]);
+        expectedForm->AppendSupportedValueL(data);
+        }   
+    iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);
+    CleanupStack::PopAndDestroy(expectedForm);
+    }
 
 TUint16 CMTPImageDpGetObjectPropDesc::GetPropertyGroupNumber(const TUint16 aPropCode) const
     {
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -424,7 +424,24 @@
             propElem.SetUint8L(CMTPTypeObjectPropListElement::EValue, value);
             iPropertyList->CommitPropElemL(propElem);
             }        
-            break;               
+            break;
+        case EMTPObjectPropCodeHidden:
+            {
+            TEntry FileEntry;
+            User::LeaveIfError(iFramework.Fs().Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), FileEntry));
+            CMTPTypeObjectPropListElement& propElem = iPropertyList->ReservePropElemL(aHandle, aPropCode);
+            TBool isHidden = FileEntry.IsHidden();
+            if ( isHidden )
+                {
+                propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue,EMTPHidden );
+                }
+            else
+                {
+                propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue,EMTPVisible );
+                }
+            iPropertyList->CommitPropElemL(propElem); 
+            }
+            break;
         default:
             //Leave 
             {
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -189,7 +189,10 @@
             break;
         case EMTPObjectPropCodeNonConsumable:
             ServiceNonConsumableL();
-            break;            
+            break;
+        case EMTPObjectPropCodeHidden:
+            ServiceHiddenL();
+            break;
         default:
             User::Leave(KErrGeneral);
         }	
@@ -353,3 +356,11 @@
     iMTPTypeUint8.Set(nonConsumable);
     SendDataL(iMTPTypeUint8);
     }
+
+void CMTPImageDpGetObjectPropValue::ServiceHiddenL()
+    {
+    TUint16 hiddenStatus;
+    iObjectPropertyMgr.GetPropertyL(EMTPObjectPropCodeHidden, hiddenStatus);
+    iMTPTypeUint16.Set(hiddenStatus);
+    SendDataL(iMTPTypeUint16);
+    }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -277,6 +277,24 @@
     case EMTPObjectPropCodeProtectionStatus://this property does not supported by image dp
         //nothing to do
         break;
+    case EMTPObjectPropCodeHidden:
+        {
+		__ASSERT_ALWAYS(( EMTPHidden == aValue )||( EMTPVisible == aValue ), User::Leave(KErrArgument));
+        TEntry entry;
+		User::LeaveIfError(iFramework.Fs().Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry));
+        if (( EMTPHidden == aValue ) && ( !entry.IsHidden()))
+            {
+            entry.iAtt &= ~KEntryAttHidden;
+            entry.iAtt |= KEntryAttHidden;
+            User::LeaveIfError(iFramework.Fs().SetAtt(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+            }
+        else if (( EMTPVisible == aValue )&&( entry.IsHidden()))
+            {
+            entry.iAtt &= ~KEntryAttHidden;
+            User::LeaveIfError(iFramework.Fs().SetAtt(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+            }
+        } 
+        break;
     default:
         //nothing to do
         break;
@@ -420,7 +438,20 @@
             aValue = EMTPProtectionNoProtection;
             }        
         }    
-        break;    
+        break;
+    case EMTPObjectPropCodeHidden:
+        {
+        TInt err = iFs.Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry);        
+        if ( err == KErrNone && entry.IsHidden())
+            {
+            aValue = EMTPHidden;
+            }
+        else
+            {
+            aValue = EMTPVisible;
+            }        
+        } 
+        break;
     default:
         aValue = 0;//initialization
         //ingore the failure if we can't get properties form MdS
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -98,6 +98,7 @@
 CMTPImageDpSendObjectInfo::CMTPImageDpSendObjectInfo(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, CMTPImageDataProvider& aDataProvider) :
     CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
     iDataProvider(aDataProvider),
+    iHiddenStatus( EMTPVisible ),
     iObjectPropertyMgr(aDataProvider.PropertyMgr())
     {
 
@@ -785,12 +786,12 @@
         SendResponseL(EMTPRespCodeTransactionCancelled);    
         }
     else if (result && !iCancelled)
-	    {	    	    
+	    {
+        TUint attValue = 0;
+        User::LeaveIfError(iFileReceived->File().Att(attValue));
         if (iProtectionStatus ==  EMTPProtectionNoProtection ||
             iProtectionStatus == EMTPProtectionReadOnly)
             {
-            TUint attValue = 0;
-            User::LeaveIfError(iFileReceived->File().Att(attValue));
             attValue &= ~(KEntryAttNormal | KEntryAttReadOnly);
             
             if (iProtectionStatus == EMTPProtectionNoProtection)
@@ -803,6 +804,12 @@
                 }
             User::LeaveIfError(iFileReceived->File().SetAtt(attValue, ~attValue));
             }
+        if ( iHiddenStatus == EMTPHidden )
+            {
+            attValue &= ~KEntryAttHidden;
+            attValue |= KEntryAttHidden;
+            User::LeaveIfError(iFileReceived->File().SetAtt(attValue, ~attValue));
+            }
         TTime modifiedTime;
         //update datemodified property.
         if(iDateMod != NULL && iDateMod->Length())
@@ -1062,7 +1069,9 @@
     case EMTPObjectPropCodeNonConsumable:
         iNonConsumable = aElement.Uint8L(CMTPTypeObjectPropListElement::EValue);       
         break;
-        
+    case EMTPObjectPropCodeHidden:
+        iHiddenStatus = aElement.Uint16L(CMTPTypeObjectPropListElement::EValue);
+        break;    
     default:
         break;
         }
@@ -1133,6 +1142,7 @@
 
     case EMTPObjectPropCodeRepresentativeSampleFormat:
     case EMTPObjectPropCodeProtectionStatus:
+    case EMTPObjectPropCodeHidden:
         if (aElement.Uint16L(CMTPTypeObjectPropListElement::EDatatype) != EMTPTypeUINT16)
             {
             responseCode = EMTPRespCodeInvalidObjectPropFormat;
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -116,7 +116,10 @@
                     case EMTPObjectPropCodeNonConsumable:
                         iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint8L(CMTPTypeObjectPropListElement::EValue));
                         objects.ModifyObjectL(*iObjectMeta);
-                        break;                        
+                        break;
+                    case EMTPObjectPropCodeHidden:
+                        iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint16L(CMTPTypeObjectPropListElement::EValue));
+                        break;
                     default:
                         responseCode = EMTPRespCodeInvalidObjectPropCode;
                         break;
@@ -180,7 +183,13 @@
                 {
                 responseCode = EMTPRespCodeInvalidObjectPropFormat;
                 }
-            break;            
+            break;
+        case EMTPObjectPropCodeHidden:
+            if (aDataType != EMTPTypeUINT16)
+                {
+                responseCode = EMTPRespCodeInvalidObjectPropFormat;
+                }
+            break;
         default:
             responseCode = EMTPRespCodeInvalidObjectPropCode;
         }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -168,7 +168,10 @@
 			break;
         case EMTPObjectPropCodeNonConsumable:
             ReceiveDataL(iMTPTypeUint8);
-            break;			
+            break;
+        case EMTPObjectPropCodeHidden:
+            ReceiveDataL(iMTPTypeUint16);
+            break;
 		default:
 			User::Leave(KErrGeneral);
 		}	
@@ -233,7 +236,13 @@
             iFramework.ObjectMgr().ModifyObjectL(*iObjectMeta);
             responseCode = EMTPRespCodeOK;
             }
-            break;            
+            break;
+        case EMTPObjectPropCodeHidden:
+            {
+            iObjectPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propCode), iMTPTypeUint16.Value());
+            responseCode = EMTPRespCodeOK;
+            }
+            break;    
  		default:
 			responseCode = EMTPRespCodeInvalidObjectPropFormat;
 			//Panic(EMTPImageDpUnsupportedProperty);
--- a/mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -132,7 +132,8 @@
     //EMTPObjectPropCodeNonConsumable
     frmCap->AppendL(ServiceNonConsumableL() );
     
-    
+    //EMTPObjectPropCodeHidden
+    frmCap->AppendL( ServiceHiddenL() ); 
     
     CMTPTypeObjectPropDesc::TPropertyInfo info;
     info.iDataType     = EMTPTypeString;
@@ -294,6 +295,22 @@
     __FLOG(_L8("<< CMTPPictureDpGetFormatCapabilities::ConstructL"));
     }
 
+CMTPTypeObjectPropDesc* CMTPImageDpGetFormatCapabilities::ServiceHiddenL()
+    {
+    CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+    CleanupStack::PushL(expectedForm);
+    TUint16 values[] = {EMTPVisible, EMTPHidden};
+    TUint   numValues((sizeof(values) / sizeof(values[0])));
+    for (TUint i = 0; i < numValues; i++)
+        {
+        TMTPTypeUint16 data(values[i]);
+        expectedForm->AppendSupportedValueL(data);
+        }   
+    CMTPTypeObjectPropDesc* ret = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);     
+    CleanupStack::PopAndDestroy(expectedForm);
+    return ret;
+    }
+	
 TUint16 CMTPImageDpGetFormatCapabilities::GetPropertyGroupNumber(const TUint16 aPropCode) const
     {
     for( TInt propCodeIndex = 0 ; propCodeIndex < KMTPImageDpGroupOneSize ; propCodeIndex++)
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevicedpconst.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevicedpconst.h	Wed Sep 15 13:07:27 2010 +0300
@@ -110,7 +110,8 @@
 	EMTPObjectPropCodeParentObject,
 	EMTPObjectPropCodePersistentUniqueObjectIdentifier,
 	EMTPObjectPropCodeName,
-	EMTPObjectPropCodeNonConsumable	
+	EMTPObjectPropCodeNonConsumable,
+	EMTPObjectPropCodeHidden
 	};	
 
 static const TUint16 KMTPDeviceDpSupportedEvents[] = 
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -416,7 +416,14 @@
     TInt lengthOfRight( folderRight.Length());
     TFileName folderLeft;
     
-    _LIT( KRootFolder, "?:\\");
+    // get root path of storage
+    TInt driveNumber;
+    User::LeaveIfError(Framework().Fs().CharToDrive(folderRight[0], driveNumber));
+    RBuf rootDirPath;
+    rootDirPath.CreateL(KMaxFileName);
+    rootDirPath.CleanupClosePushL();
+    iDevDpSingletons.ConfigMgr().GetRootDirPathL(driveNumber, rootDirPath);
+    rootDirPath.Insert(0, folderRight.Mid(0, 2));// get drive:
     
     /*
     Go through from beginning.
@@ -434,7 +441,7 @@
         lengthOfRight = folderRight.Length()-pos -1;
         folderRight.Set( folderRight.Right( lengthOfRight ));
         
-        if ( KErrNotFound != folderLeft.Match( KRootFolder ))
+        if ( rootDirPath.FindF(folderLeft) != KErrNotFound)
         	{
         	//first time, root folder
         	//continue
@@ -444,7 +451,7 @@
         handle = Framework().ObjectMgr().HandleL( folderLeft );
         }
     while( KMTPHandleNone != handle );
-    
+    CleanupStack::PopAndDestroy(&rootDirPath);
 
     if ( KMTPHandleNone == handle )
         {
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpcopyobject.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpcopyobject.h	Wed Sep 15 13:07:27 2010 +0300
@@ -84,6 +84,7 @@
 	TUint32								iNewParentHandle;
 	TUint32								iStorageId;
 	TTime									iPreviousModifiedTime;
+	TBool                               iIsHidden;
   RMTPFramework					iSingletons;
   RMTPDpSingletons			iDpSingletons;
   CPeriodic*						iTimer;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetformatcapabilities.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetformatcapabilities.h	Wed Sep 15 13:07:27 2010 +0300
@@ -52,6 +52,7 @@
     CMTPTypeObjectPropDesc* ServiceProtectionStatusL();
     CMTPTypeObjectPropDesc* ServiceAssociationTypeL();
     CMTPTypeObjectPropDesc* ServiceNonConsumableL();
+    CMTPTypeObjectPropDesc* ServiceHiddenL();
     
 private: // Owned
 
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropdesc.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropdesc.h	Wed Sep 15 13:07:27 2010 +0300
@@ -62,6 +62,7 @@
 	void ServicePuidL();
 	void ServiceNameL();
 	void ServiceNonConsumableL();
+	void ServiceHiddenL();
 	TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
 	
 private:
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropvalue.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropvalue.h	Wed Sep 15 13:07:27 2010 +0300
@@ -69,6 +69,8 @@
 	void ServicePuidL();
 	void ServiceNameL();
 	void ServiceNonConsumableL();
+	void ServiceHiddenL();
+	
 private:
 	TMTPTypeUint8			iMTPTypeUint8;
 	TMTPTypeUint16			iMTPTypeUint16;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpmoveobject.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpmoveobject.h	Wed Sep 15 13:07:27 2010 +0300
@@ -85,6 +85,7 @@
 	CPeriodic*						iTimer;
 	HBufC*								iNewFileName;
 	TBool									iIsFolder;
+	TBool                                   iIsHidden;
 	/**
     FLOGGER debug trace member variable.
     */
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpsendobjectinfo.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpsendobjectinfo.h	Wed Sep 15 13:07:27 2010 +0300
@@ -123,6 +123,7 @@
     TBool                   iIsFolder;
     TMTPTypeNull            iNullObject;
     TUint16                 iProtectionStatus;
+    TUint16                 iHiddenStatus;
     TUint32                 iPreviousTransactionID;
     RMTPDpSingletons		iDpSingletons;
     TFileName				iName;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/mtpdpconst.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/mtpdpconst.h	Wed Sep 15 13:07:27 2010 +0300
@@ -40,7 +40,8 @@
 	EMTPObjectPropCodeParentObject,
 	EMTPObjectPropCodePersistentUniqueObjectIdentifier,
 	EMTPObjectPropCodeName,
-	EMTPObjectPropCodeNonConsumable	
+	EMTPObjectPropCodeNonConsumable,
+	EMTPObjectPropCodeHidden
 	};
 
 /**
@@ -64,7 +65,7 @@
 static const TUint16 KMTPDpPropertyGroups[KMTPDpPropertyGroupNumber+1][KMTPDpPropertyNumber] =
     {
       	{}, // group 0 is not used.
-      	//               group 1 contains 10 proeprties
+      	//               group 1 contains 11 proeprties
       	{	EMTPObjectPropCodeStorageID,
 			EMTPObjectPropCodeObjectFormat,
 			EMTPObjectPropCodeProtectionStatus,
@@ -74,7 +75,8 @@
 			EMTPObjectPropCodeParentObject,
 			EMTPObjectPropCodePersistentUniqueObjectIdentifier,
 			EMTPObjectPropCodeName,
-			EMTPObjectPropCodeNonConsumable	}  
+			EMTPObjectPropCodeNonConsumable,
+			EMTPObjectPropCodeHidden}  
     };
 
 
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -359,6 +359,12 @@
 	{
 	__FLOG(_L8("GetPreviousPropertiesL - Entry"));
 	User::LeaveIfError(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime));
+	if ( iIsFolder )
+	    {
+        TEntry fileEntry;
+        User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+        iIsHidden = fileEntry.IsHidden();
+	    }
 	__FLOG(_L8("GetPreviousPropertiesL - Exit"));
 	}
 
@@ -369,6 +375,14 @@
 	{
 	__FLOG(_L8("SetPreviousPropertiesL - Entry"));
 	User::LeaveIfError(iFramework.Fs().SetModified(aFileName, iPreviousModifiedTime));
+	if ( iIsFolder && iIsHidden )
+	    {
+        TEntry fileEntry;
+        User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+        fileEntry.iAtt &= ~KEntryAttHidden;
+        fileEntry.iAtt |= KEntryAttHidden;
+        User::LeaveIfError(iFramework.Fs().SetAtt( aFileName, fileEntry.iAtt, ~fileEntry.iAtt));
+	    }
 	__FLOG(_L8("SetPreviousPropertiesL - Exit"));
 	}
 
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -160,6 +160,12 @@
     CleanupStack::PushL(nonConsumable);
     frmCap->AppendL(nonConsumable);
     CleanupStack::Pop(nonConsumable);
+	
+    //Hidden
+	CMTPTypeObjectPropDesc* hidden = ServiceHiddenL();
+    CleanupStack::PushL( hidden );
+    frmCap->AppendL( hidden );
+	CleanupStack::Pop( hidden ); 
     
     iCapabilityList->AppendL(frmCap);
     CleanupStack::Pop(frmCap);
@@ -227,6 +233,11 @@
     CleanupStack::PushL(nonConsumable);
     frmCap->AppendL(nonConsumable);
     CleanupStack::Pop(nonConsumable);
+    //Hidden
+	CMTPTypeObjectPropDesc* hidden = ServiceHiddenL();
+    CleanupStack::PushL( hidden );
+    frmCap->AppendL( hidden );
+	CleanupStack::Pop( hidden ); 
     
     iCapabilityList->AppendL(frmCap);
     CleanupStack::Pop(frmCap);
@@ -295,6 +306,23 @@
     return ret;
     }
 
+CMTPTypeObjectPropDesc* CMTPGetFormatCapabilities::ServiceHiddenL()
+    {
+    CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+    CleanupStack::PushL(expectedForm);
+    TUint16 values[] = {EMTPVisible, EMTPHidden};
+    TUint   numValues((sizeof(values) / sizeof(values[0])));
+    for (TUint i = 0; i < numValues; i++)
+        {
+        TMTPTypeUint16 data(values[i]);
+        expectedForm->AppendSupportedValueL(data);
+        }   
+    CMTPTypeObjectPropDesc* ret = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);     
+    CleanupStack::PopAndDestroy(expectedForm);
+    
+    return ret;
+    }
+
 TMTPResponseCode CMTPGetFormatCapabilities::CheckRequestL()
     {
     TMTPResponseCode response = CMTPRequestProcessor::CheckRequestL(); 
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -157,6 +157,9 @@
 		case EMTPObjectPropCodeNonConsumable:
 			ServiceNonConsumableL();
 			break;
+		case EMTPObjectPropCodeHidden:
+		    ServiceHiddenL();
+		    break;
 		default:
 		    User::Leave( KErrNotSupported );
 			break;
@@ -294,7 +297,20 @@
 	CleanupStack::PopAndDestroy(expectedForm);
 	}
 
-
+void CMTPGetObjectPropDesc::ServiceHiddenL()
+    {
+    CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+    CleanupStack::PushL(expectedForm);
+    TUint16 values[] = {EMTPVisible,EMTPHidden};
+    TUint   numValues((sizeof(values) / sizeof(values[0])));
+    for (TUint i = 0; i < numValues; i++)
+        {
+        TMTPTypeUint16 data(values[i]);
+        expectedForm->AppendSupportedValueL(data);
+        }   
+    iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);
+    CleanupStack::PopAndDestroy(expectedForm);
+    }
 	
 TUint16  CMTPGetObjectPropDesc::GetPropertyGroupNumber(const TUint16 aPropCode) const
     {
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -477,7 +477,22 @@
                 iPropertyList->CommitPropElemL(propElem);  
 				}
         	}
-        	break;    
+        	break;
+         case EMTPObjectPropCodeHidden:
+             {
+             TBool isHidden = iFileEntry.IsHidden();
+             CMTPTypeObjectPropListElement& propElem = iPropertyList->ReservePropElemL(aHandle, aPropCode);
+             if ( isHidden )
+                 {
+                 propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue, EMTPHidden);
+                 }
+             else
+                 {
+                 propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue, EMTPVisible);
+                 }
+             iPropertyList->CommitPropElemL(propElem);  
+             }
+             break;
         default:
             User::Leave( KErrNotSupported );
             break;
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -165,6 +165,9 @@
 		case EMTPObjectPropCodeNonConsumable:
 			ServiceNonConsumableL();
 			break;
+		case EMTPObjectPropCodeHidden:
+		    ServiceHiddenL();
+		    break;
 		default:
 		    User::Leave( KErrNotSupported );
 			break;
@@ -265,6 +268,19 @@
 	SendDataL(iMTPTypeUint8);
 	}
 
+void CMTPGetObjectPropValue::ServiceHiddenL()
+    {
+    TBool isHidden = iFileEntry.IsHidden();
+    if ( isHidden )
+        {
+        iMTPTypeUint16.Set(EMTPHidden);
+        }
+    else
+        {
+        iMTPTypeUint16.Set(EMTPVisible);
+        } 
+    SendDataL(iMTPTypeUint16);
+    }
 
 
 	
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpmoveobject.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpmoveobject.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -380,6 +380,12 @@
 	{
 	__FLOG(_L8("GetPreviousPropertiesL - Entry"));
 	User::LeaveIfError(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime));
+	if ( iIsFolder )
+	    {
+	    TEntry fileEntry;
+	    User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+	    iIsHidden = fileEntry.IsHidden();
+	    }
 	__FLOG(_L8("GetPreviousPropertiesL - Exit"));
 	}
 
@@ -390,6 +396,14 @@
 	{
 	__FLOG(_L8("SetPreviousPropertiesL - Entry"));
 	User::LeaveIfError(iFramework.Fs().SetModified(aFileName, iPreviousModifiedTime));
+	if ( iIsFolder && iIsHidden )
+	    {
+	    TEntry fileEntry;
+	    User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+	    fileEntry.iAtt &= ~KEntryAttHidden;
+	    fileEntry.iAtt |= KEntryAttHidden;
+	    User::LeaveIfError(iFramework.Fs().SetAtt( aFileName, fileEntry.iAtt, ~fileEntry.iAtt));
+	    }
 	__FLOG(_L8("SetPreviousPropertiesL - Exit"));
 	}
 
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -100,7 +100,8 @@
 @param aConnection    The connection from which the request comes
 */    
 CMTPSendObjectInfo::CMTPSendObjectInfo(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) :
-    CMTPRequestProcessor(aFramework, aConnection, 0, NULL)
+    CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
+    iHiddenStatus( EMTPVisible )
     {
     }
 
@@ -660,14 +661,15 @@
         
     if (!iIsFolder)
         {        
-        delete iFileReceived;
-        iFileReceived = NULL;
         
         TEntry fileEntry;
         User::LeaveIfError(iFramework.Fs().Entry(iFullPath, fileEntry));
 
         if (fileEntry.FileSize() != iObjectSize)
             {
+			delete iFileReceived;
+        	iFileReceived = NULL;
+			
             iFramework.RouteRequestUnregisterL(iExpectedSendObjectRequest, iConnection);
             
             iFramework.Fs().Delete(iFullPath);
@@ -713,6 +715,8 @@
         if(!iIsFolder)
             {
             SetPropertiesL();    
+            delete iFileReceived;
+            iFileReceived = NULL;
             iFramework.ObjectMgr().CommitReservedObjectHandleL(*iReceivedObject);
             iFullPath.LowerCase();
             __FLOG_VA((_L8("File Name %S"), &iFullPath));
@@ -939,6 +943,9 @@
     case EMTPObjectPropCodeName:
     	iName = aElement.StringL(CMTPTypeObjectPropListElement::EValue);
     	break;
+    case EMTPObjectPropCodeHidden:
+        iHiddenStatus = aElement.Uint16L(CMTPTypeObjectPropListElement::EValue);
+        break;
     default:
         break;
         }
@@ -1031,6 +1038,7 @@
         break;
         
     case EMTPObjectPropCodeAssociationType:
+    case EMTPObjectPropCodeHidden:
         if (aElement.Uint16L(CMTPTypeObjectPropListElement::EDatatype) != EMTPTypeUINT16)
              {
              responseCode = EMTPRespCodeInvalidObjectPropFormat;
@@ -1199,6 +1207,7 @@
 void CMTPSendObjectInfo::SetPropertiesL()
     {
     __FLOG(_L8("SetPropertiesL - Entry"));
+
     TEntry entry;
     User::LeaveIfError(iFramework.Fs().Entry(iFullPath, entry));  
     
@@ -1235,14 +1244,42 @@
             {
             entry.iAtt |= KEntryAttReadOnly;
             }
-        User::LeaveIfError(iFramework.Fs().SetAtt(iFullPath, entry.iAtt, ~entry.iAtt));
+        if ( iFileReceived )
+            {
+            User::LeaveIfError(iFileReceived->File().SetAtt(entry.iAtt, ~entry.iAtt));
+            }
+        else
+            {
+            User::LeaveIfError(iFramework.Fs().SetAtt(iFullPath, entry.iAtt, ~entry.iAtt));
+            }
         }
-
+    
+    if ( EMTPHidden == iHiddenStatus )
+        {
+		entry.iAtt &= ~KEntryAttHidden;
+        entry.iAtt |= KEntryAttHidden;
+        if ( iFileReceived )
+            {
+            User::LeaveIfError(iFileReceived->File().SetAtt(entry.iAtt, ~entry.iAtt));
+            }
+        else
+            {
+            User::LeaveIfError(iFramework.Fs().SetAtt(iFullPath, entry.iAtt, ~entry.iAtt));
+            }
+        }
+    
     if(iDateMod != NULL && iDateMod->Length())
        {
        TTime modifiedTime;
        iDpSingletons.MTPUtility().MTPTimeStr2TTime(*iDateMod, modifiedTime);
-       User::LeaveIfError(iFramework.Fs().SetModified(iFullPath, modifiedTime));
+       if ( iFileReceived )
+           { 
+           User::LeaveIfError(iFileReceived->File().SetModified( modifiedTime ));
+           }
+       else
+           {
+           User::LeaveIfError(iFramework.Fs().SetModified(iFullPath, modifiedTime));
+           }
        }  
     
     iReceivedObject->SetDesCL(CMTPObjectMetaData::EName, iName);
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectproplist.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectproplist.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -128,7 +128,35 @@
 						}
     				}			
     				break;
-    				
+    			case EMTPObjectPropCodeHidden:
+    			    {
+    			    TUint16 hiddenStatus = element.Uint16L(CMTPTypeObjectPropListElement::EValue);
+                    TEntry entry;
+    			    if ( EMTPHidden == hiddenStatus )
+    			        {
+                        User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+                        if ( !entry.IsHidden())
+                            {
+                            entry.iAtt &= ~KEntryAttHidden;
+                            entry.iAtt |= KEntryAttHidden;
+                            User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+                            }
+    			        }
+    			    else if ( EMTPVisible == hiddenStatus )
+    			        {
+                        User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+                        if ( entry.IsHidden())
+                            {
+                            entry.iAtt &= ~KEntryAttHidden;
+                            User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+                            }
+    			        }
+    			    else
+    			        {
+                        responseCode = EMTPRespCodeInvalidObjectPropValue;
+    			        }
+    			    break;   
+    			    }
     			case EMTPObjectPropCodeNonConsumable:
     				iObjMeta->SetUint( CMTPObjectMetaData::ENonConsumable, element.Uint8L(CMTPTypeObjectPropListElement::EValue));
 					iFramework.ObjectMgr().ModifyObjectL(*iObjMeta);
@@ -211,6 +239,7 @@
 				}
 			break;
 		case EMTPObjectPropCodeAssociationType:
+		case EMTPObjectPropCodeHidden:
 			if (aDataType != EMTPTypeUINT16)
 				{
 				responseCode = EMTPRespCodeInvalidObjectPropFormat;
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp	Wed Sep 15 13:07:27 2010 +0300
@@ -192,6 +192,7 @@
 			ReceiveDataL(iMTPTypeUint8);
 			break;
 		case EMTPObjectPropCodeAssociationType:
+		case EMTPObjectPropCodeHidden:
 			{
 			ReceiveDataL(iMTPTypeUint16);
 			}
@@ -245,7 +246,37 @@
 				}
 			}
 			break;
-			
+		case EMTPObjectPropCodeHidden:
+		    {
+            if ( EMTPHidden == iMTPTypeUint16.Value())
+                  {
+                  TEntry entry;
+                  User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+                  if ( !entry.IsHidden())
+                      {
+                      entry.iAtt &= ~KEntryAttHidden;
+                      entry.iAtt |= KEntryAttHidden;
+                      User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+                      }
+                  responseCode = EMTPRespCodeOK;
+                  }
+              else if ( EMTPVisible == iMTPTypeUint16.Value())
+                  {
+                  TEntry entry;
+                  User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+                  if ( entry.IsHidden())
+                      {
+                      entry.iAtt &= ~KEntryAttHidden;
+                      User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+                      }
+                  responseCode = EMTPRespCodeOK;
+                  }
+              else
+                  {
+                  responseCode = EMTPRespCodeInvalidObjectPropValue;
+                  }
+		    }
+		    break;
 		case EMTPObjectPropCodeObjectFileName:
 			{
 
--- a/mtpfws/mtpfw/datatypes/interface/mtpprotocolconstants.h	Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/datatypes/interface/mtpprotocolconstants.h	Wed Sep 15 13:07:27 2010 +0300
@@ -800,6 +800,12 @@
     EMTPProtectionNonTransferable   = 0x8003
     };
 
+enum TMTPHiddenStatus
+    {
+    EMTPVisible      = 0x0000,
+    EMTPHidden       = 0x0001
+    };
+
 /**
 The MTP consumable status datacodes. For a description of these datacodes, 
 please refer to the "Media Transfer Protocol Enhanced" specification.