equal
deleted
inserted
replaced
62 } |
62 } |
63 |
63 |
64 void CDeleteObject::ConstructL() |
64 void CDeleteObject::ConstructL() |
65 { |
65 { |
66 CActiveScheduler::Add( this ); |
66 CActiveScheduler::Add( this ); |
67 SetPSStatus(); |
|
68 } |
67 } |
69 |
68 |
70 // ----------------------------------------------------------------------------- |
69 // ----------------------------------------------------------------------------- |
71 // CDeleteObject::~CDeleteObject |
70 // CDeleteObject::~CDeleteObject |
72 // Destructor |
71 // Destructor |
102 // DeleteObject request handler |
101 // DeleteObject request handler |
103 // ----------------------------------------------------------------------------- |
102 // ----------------------------------------------------------------------------- |
104 // |
103 // |
105 EXPORT_C void CDeleteObject::ServiceL() |
104 EXPORT_C void CDeleteObject::ServiceL() |
106 { |
105 { |
|
106 MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); |
|
107 |
107 iObjectsToDelete.Reset(); |
108 iObjectsToDelete.Reset(); |
108 iDeleteError = KErrNone; |
109 iDeleteError = KErrNone; |
109 TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); |
110 TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); |
110 |
111 |
111 PRINT3( _L( "MM MTP <> CDeleteObject::ServiceL, objectHandle = 0x%x, numObject = %d, iDeleteError = %d" ), |
112 PRINT3( _L( "MM MTP <> CDeleteObject::ServiceL, objectHandle = 0x%x, numObject = %d, iDeleteError = %d" ), |
123 } |
124 } |
124 else |
125 else |
125 { |
126 { |
126 iIsMultiDelete = EFalse; |
127 iIsMultiDelete = EFalse; |
127 // Not Owned the object |
128 // Not Owned the object |
128 // TODO: need to check if this is best way and if it is applicable to other processors |
|
129 CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle ); |
129 CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle ); |
130 |
130 |
131 if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation ) |
131 if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation ) |
132 { |
132 { |
133 TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle ); |
133 TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle ); |
189 // Get the next object |
189 // Get the next object |
190 CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo |
190 CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo |
191 |
191 |
192 TUint32 handle = iObjectsToDelete[0]; |
192 TUint32 handle = iObjectsToDelete[0]; |
193 iFramework.ObjectMgr().ObjectL( handle, *objectInfo ); |
193 iFramework.ObjectMgr().ObjectL( handle, *objectInfo ); |
194 TFileName fileName( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ); |
194 PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ), |
195 PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ), handle, &fileName ); |
195 handle, |
|
196 &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ) ); |
196 |
197 |
197 if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation ) |
198 if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation ) |
198 { |
199 { |
199 TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle ); |
200 TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle ); |
200 GetObjectHandlesL( KMTPStorageAll, parentHandle ); |
201 GetObjectHandlesL( KMTPStorageAll, parentHandle ); |
219 // Deletes the object from the file system and the object from the store |
220 // Deletes the object from the file system and the object from the store |
220 // ----------------------------------------------------------------------------- |
221 // ----------------------------------------------------------------------------- |
221 // |
222 // |
222 void CDeleteObject::DeleteObjectL( const CMTPObjectMetaData& aObjectInfo ) |
223 void CDeleteObject::DeleteObjectL( const CMTPObjectMetaData& aObjectInfo ) |
223 { |
224 { |
224 TFileName fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) ); |
225 TPtrC fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) ); |
225 PRINT1( _L( "MM MTP <> CDeleteObject::DeleteObjectL fileName = %S" ), &fileName ); |
226 PRINT1( _L( "MM MTP <> CDeleteObject::DeleteObjectL fileName = %S" ), &fileName ); |
226 |
|
227 iDpConfig.GetWrapperL().SetStorageRootL( fileName ); |
|
228 |
227 |
229 // To capture special situation: After copy, move, rename playlist folder name, |
228 // To capture special situation: After copy, move, rename playlist folder name, |
230 // record in MPX is not inlined with framework db, playlist should not be deleted |
229 // record in MPX is not inlined with framework db, playlist should not be deleted |
231 // until next session. |
230 // until next session. |
232 // This is used to keep the same behavior in mass storage and device file manager. |
231 // This is used to keep the same behavior in mass storage and device file manager. |