| Index: device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
|
| diff --git a/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc b/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
|
| index 0f7267721d3a7d04fd88665ba0a2016c30c3bd7b..2dddbce4c1916f45b47e8395428858712a194e14 100644
|
| --- a/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
|
| +++ b/device/media_transfer_protocol/media_transfer_protocol_daemon_client.cc
|
| @@ -72,8 +72,8 @@ class MediaTransferProtocolDaemonClientImpl
|
| dbus::MethodCall method_call(mtpd::kMtpdInterface, mtpd::kOpenStorage);
|
| dbus::MessageWriter writer(&method_call);
|
| writer.AppendString(storage_name);
|
| - DCHECK_EQ(mtpd::kReadOnlyMode, mode);
|
| - writer.AppendString(mtpd::kReadOnlyMode);
|
| + DCHECK(mode == mtpd::kReadOnlyMode || mode == mtpd::kReadWriteMode);
|
| + writer.AppendString(mode);
|
| proxy_->CallMethod(
|
| &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
|
| base::Bind(&MediaTransferProtocolDaemonClientImpl::OnOpenStorage,
|
| @@ -171,6 +171,28 @@ class MediaTransferProtocolDaemonClientImpl
|
| error_callback));
|
| }
|
|
|
| + void CopyFileFromLocal(const std::string& handle,
|
| + const int source_file_descriptor,
|
| + const uint32 parent_id,
|
| + const std::string& file_name,
|
| + const CopyFileFromLocalCallback& callback,
|
| + const ErrorCallback& error_callback) override {
|
| + dbus::FileDescriptor file_descriptor(source_file_descriptor);
|
| + file_descriptor.CheckValidity();
|
| +
|
| + dbus::MethodCall method_call(mtpd::kMtpdInterface,
|
| + mtpd::kCopyFileFromLocal);
|
| + dbus::MessageWriter writer(&method_call);
|
| + writer.AppendString(handle);
|
| + writer.AppendFileDescriptor(file_descriptor);
|
| + writer.AppendUint32(parent_id);
|
| + writer.AppendString(file_name);
|
| + proxy_->CallMethod(
|
| + &method_call, dbus::ObjectProxy::TIMEOUT_INFINITE,
|
| + base::Bind(&MediaTransferProtocolDaemonClientImpl::OnCopyFileFromLocal,
|
| + weak_ptr_factory_.GetWeakPtr(), callback, error_callback));
|
| + }
|
| +
|
| // MediaTransferProtocolDaemonClient override.
|
| void ListenForChanges(const MTPStorageEventHandler& handler) override {
|
| DCHECK(!listen_for_changes_called_);
|
| @@ -349,6 +371,17 @@ class MediaTransferProtocolDaemonClientImpl
|
| callback.Run(data);
|
| }
|
|
|
| + void OnCopyFileFromLocal(const CopyFileFromLocalCallback& callback,
|
| + const ErrorCallback& error_callback,
|
| + dbus::Response* response) {
|
| + if (!response) {
|
| + error_callback.Run();
|
| + return;
|
| + }
|
| +
|
| + callback.Run();
|
| + }
|
| +
|
| // Handles MTPStorageAttached/Dettached signals and calls |handler|.
|
| void OnMTPStorageSignal(MTPStorageEventHandler handler,
|
| bool is_attach,
|
|
|