Change TransferStatus to be similar to Android.

PiperOrigin-RevId: 666827970
This commit is contained in:
Francis Tsui
2024-08-23 09:42:56 -07:00
committed by Copybara-Service
parent 725c8e83b6
commit a0aebee34c
8 changed files with 26 additions and 97 deletions
+2 -4
View File
@@ -79,8 +79,7 @@ void IncomingShareSession::InvokeTransferUpdateCallback(
}
bool IncomingShareSession::OnNewConnection(NearbyConnection* connection) {
set_disconnect_status(
TransferMetadata::Status::kAwaitingRemoteAcceptanceFailed);
set_disconnect_status(TransferMetadata::Status::kFailed);
return true;
}
@@ -190,8 +189,7 @@ bool IncomingShareSession::ReadyForTransfer(
return false;
}
ready_for_accept_ = true;
set_disconnect_status(
TransferMetadata::Status::kUnexpectedDisconnection);
set_disconnect_status(TransferMetadata::Status::kFailed);
mutual_acceptance_timeout_ = std::make_unique<ThreadTimer>(
service_thread(), "incoming_mutual_acceptance_timeout",
+9 -10
View File
@@ -2473,7 +2473,7 @@ void NearbySharingServiceImpl::OnOutgoingConnection(
nearby_connections_manager_->GetRawAuthenticationToken(
session.endpoint_id());
if (!token.has_value()) {
session.Abort(TransferMetadata::Status::kPairedKeyVerificationFailed);
session.Abort(TransferMetadata::Status::kDeviceAuthenticationFailed);
return;
}
session.RunPairedKeyVerification(
@@ -2601,7 +2601,7 @@ void NearbySharingServiceImpl::OnIncomingAdvertisementDecoded(
NL_LOG(WARNING) << __func__
<< ": Failed to parse incoming connection from endpoint - "
<< endpoint_id << ", disconnecting.";
session.Abort(TransferMetadata::Status::kDecodeAdvertisementFailed);
session.Abort(TransferMetadata::Status::kFailed);
return;
}
@@ -2724,8 +2724,7 @@ void NearbySharingServiceImpl::OnOutgoingTransferUpdate(
session.os_type());
is_connecting_ = false;
OnTransferComplete();
} else if (metadata.status() == TransferMetadata::Status::kMediaDownloading ||
metadata.status() ==
} else if (metadata.status() ==
TransferMetadata::Status::kAwaitingLocalConfirmation) {
is_connecting_ = false;
OnTransferStarted(/*is_incoming=*/false);
@@ -2804,7 +2803,7 @@ void NearbySharingServiceImpl::OnIncomingDecryptedCertificate(
NL_LOG(WARNING) << __func__
<< ": Failed to convert advertisement to share target for "
"incoming connection, disconnecting";
it->second.Abort(TransferMetadata::Status::kMissingShareTarget);
it->second.Abort(TransferMetadata::Status::kFailed);
return;
}
// Remove placeholder share target since we are creating the actual share
@@ -2830,7 +2829,7 @@ void NearbySharingServiceImpl::OnIncomingDecryptedCertificate(
session.endpoint_id());
if (!token.has_value()) {
session.Abort(TransferMetadata::Status::kPairedKeyVerificationFailed);
session.Abort(TransferMetadata::Status::kDeviceAuthenticationFailed);
return;
}
session.RunPairedKeyVerification(
@@ -2859,7 +2858,7 @@ void NearbySharingServiceImpl::OnIncomingConnectionKeyVerificationDone(
result, share_target_os_type,
absl::bind_front(&NearbySharingServiceImpl::OnReceivedIntroduction,
this, share_target_id))) {
session->Abort(TransferMetadata::Status::kPairedKeyVerificationFailed);
session->Abort(TransferMetadata::Status::kDeviceAuthenticationFailed);
}
}
@@ -2873,7 +2872,7 @@ void NearbySharingServiceImpl::OnOutgoingConnectionKeyVerificationDone(
}
if (!session->ProcessKeyVerificationResult(result, share_target_os_type)) {
session->Abort(TransferMetadata::Status::kPairedKeyVerificationFailed);
session->Abort(TransferMetadata::Status::kDeviceAuthenticationFailed);
return;
}
@@ -2892,7 +2891,7 @@ void NearbySharingServiceImpl::OnOutgoingConnectionKeyVerificationDone(
})) {
NL_LOG(WARNING) << __func__
<< ": No payloads tied to transfer, disconnecting.";
session->Abort(TransferMetadata::Status::kMissingPayloads);
session->Abort(TransferMetadata::Status::kMediaUnavailable);
return;
}
// Auto Accept if key verification is successful or skip sender confirmation.
@@ -2921,7 +2920,7 @@ void NearbySharingServiceImpl::OnReceivedIntroduction(
}
if (!frame.has_value()) {
session->Abort(TransferMetadata::Status::kInvalidIntroductionFrame);
session->Abort(TransferMetadata::Status::kFailed);
NL_LOG(WARNING) << __func__ << ": Invalid introduction frame";
return;
}
+5 -7
View File
@@ -2347,8 +2347,7 @@ TEST_F(NearbySharingServiceImplTest,
const AttachmentContainer& container,
TransferMetadata metadata) {
EXPECT_TRUE(metadata.is_final_status());
EXPECT_EQ(TransferMetadata::Status::kAwaitingRemoteAcceptanceFailed,
metadata.status());
EXPECT_EQ(TransferMetadata::Status::kFailed, metadata.status());
}));
SetUpForegroundReceiveSurface(callback);
@@ -2499,8 +2498,7 @@ TEST_F(NearbySharingServiceImplTest,
const AttachmentContainer& container,
TransferMetadata metadata) {
EXPECT_TRUE(metadata.is_final_status());
EXPECT_EQ(metadata.status(),
TransferMetadata::Status::kUnexpectedDisconnection);
EXPECT_EQ(metadata.status(), TransferMetadata::Status::kFailed);
}));
sharing_service_task_runner_->PostTask([this]() { connection_->Close(); });
@@ -3066,7 +3064,7 @@ TEST_F(NearbySharingServiceImplTest,
OnTransferUpdate(
testing::_, testing::_,
nearby::sharing::HasStatus(
TransferMetadata::Status::kPairedKeyVerificationFailed)));
TransferMetadata::Status::kDeviceAuthenticationFailed)));
service_->OnIncomingConnection(kEndpointId, CreateTestEndpointInfo(),
connection_.get());
@@ -3240,7 +3238,7 @@ TEST_F(NearbySharingServiceImplTest, SendTextFailedToConnect) {
ExpectTransferUpdates(
transfer_callback, target_id,
{TransferMetadata::Status::kConnecting,
TransferMetadata::Status::kFailedToInitiateOutgoingConnection},
TransferMetadata::Status::kFailed},
[&]() { notification.Notify(); });
EXPECT_CALL(*mock_app_info_, SetActiveFlag());
@@ -3261,7 +3259,7 @@ TEST_F(NearbySharingServiceImplTest, SendTextFailedKeyVerification) {
ExpectTransferUpdates(
transfer_callback, target_id,
{TransferMetadata::Status::kConnecting,
TransferMetadata::Status::kPairedKeyVerificationFailed},
TransferMetadata::Status::kDeviceAuthenticationFailed},
[&]() { notification.Notify(); });
SetUpKeyVerification(/*is_incoming=*/false, PairedKeyResultFrame::FAIL);
+1 -16
View File
@@ -168,31 +168,16 @@ AttachmentTransmissionStatus ConvertToTransmissionStatus(
case TransferMetadata::Status::kFailed:
return AttachmentTransmissionStatus::
FAILED_ATTACHMENT_TRANSMISSION_STATUS;
case TransferMetadata::Status::kAwaitingRemoteAcceptanceFailed:
return AttachmentTransmissionStatus::
AWAITING_REMOTE_ACCEPTANCE_FAILED_ATTACHMENT;
case TransferMetadata::Status::kFailedToInitiateOutgoingConnection:
return AttachmentTransmissionStatus::FAILED_NULL_CONNECTION_INIT_OUTGOING;
case TransferMetadata::Status::kFailedToReadOutgoingConnectionResponse:
return AttachmentTransmissionStatus::FAILED_UNKNOWN_REMOTE_RESPONSE;
case TransferMetadata::Status::kIncompletePayloads:
return AttachmentTransmissionStatus::FAILED_NO_PAYLOAD;
case TransferMetadata::Status::kInvalidIntroductionFrame:
return AttachmentTransmissionStatus::FAILED_WRITE_INTRODUCTION;
case TransferMetadata::Status::kMediaUnavailable:
return AttachmentTransmissionStatus::MEDIA_UNAVAILABLE_ATTACHMENT;
case TransferMetadata::Status::kMissingEndpointId:
return AttachmentTransmissionStatus::FAILED_NO_SHARE_TARGET_ENDPOINT;
case TransferMetadata::Status::kMissingPayloads:
return AttachmentTransmissionStatus::FAILED_NO_PAYLOAD;
case TransferMetadata::Status::kPairedKeyVerificationFailed:
case TransferMetadata::Status::kDeviceAuthenticationFailed:
return AttachmentTransmissionStatus::FAILED_PAIRED_KEYHANDSHAKE;
case TransferMetadata::Status::kRejected:
return AttachmentTransmissionStatus::REJECTED_ATTACHMENT;
case TransferMetadata::Status::kTimedOut:
return AttachmentTransmissionStatus::TIMED_OUT_ATTACHMENT;
case TransferMetadata::Status::kUnexpectedDisconnection:
return AttachmentTransmissionStatus::FAILED_NULL_CONNECTION_DISCONNECTED;
case TransferMetadata::Status::kUnsupportedAttachmentType:
return AttachmentTransmissionStatus::
UNSUPPORTED_ATTACHMENT_TYPE_ATTACHMENT;
+3 -4
View File
@@ -88,12 +88,11 @@ bool OutgoingShareSession::OnNewConnection(NearbyConnection* connection) {
set_disconnect_status(TransferMetadata::Status::kTimedOut);
connection_layer_status_ = Status::kUnknown;
} else {
set_disconnect_status(
TransferMetadata::Status::kFailedToInitiateOutgoingConnection);
set_disconnect_status(TransferMetadata::Status::kFailed);
}
return false;
}
set_disconnect_status(TransferMetadata::Status::kUnexpectedDisconnection);
set_disconnect_status(TransferMetadata::Status::kFailed);
return true;
}
@@ -362,7 +361,7 @@ OutgoingShareSession::HandleConnectionResponse(
NL_LOG(WARNING)
<< __func__
<< ": Failed to read a response from the remote device. Disconnecting.";
return TransferMetadata::Status::kFailedToReadOutgoingConnectionResponse;
return TransferMetadata::Status::kFailed;
}
NL_VLOG(1) << __func__
+1 -3
View File
@@ -435,9 +435,7 @@ TEST_F(OutgoingShareSessionTest, HandleConnectionResponseEmptyResponse) {
session_.HandleConnectionResponse(std::nullopt);
ASSERT_THAT(status.has_value(), IsTrue());
EXPECT_THAT(
status.value(),
Eq(TransferMetadata::Status::kFailedToReadOutgoingConnectionResponse));
EXPECT_THAT(status.value(), Eq(TransferMetadata::Status::kFailed));
}
TEST_F(OutgoingShareSessionTest, HandleConnectionResponseRejectResponse) {
+3 -39
View File
@@ -31,33 +31,21 @@ namespace sharing {
// static
bool TransferMetadata::IsFinalStatus(Status status) {
switch (status) {
case Status::kAwaitingRemoteAcceptanceFailed:
case Status::kCancelled:
case Status::kComplete:
case Status::kDecodeAdvertisementFailed:
case Status::kExternalProviderLaunched:
case Status::kFailed:
case Status::kFailedToCreateShareTarget:
case Status::kFailedToInitiateOutgoingConnection:
case Status::kFailedToReadOutgoingConnectionResponse:
case Status::kIncompletePayloads:
case Status::kInvalidIntroductionFrame:
case Status::kMediaUnavailable:
case Status::kMissingEndpointId:
case Status::kMissingPayloads:
case Status::kMissingShareTarget:
case Status::kNotEnoughSpace:
case Status::kPairedKeyVerificationFailed:
case Status::kDeviceAuthenticationFailed:
case Status::kRejected:
case Status::kTimedOut:
case Status::kUnexpectedDisconnection:
case Status::kUnsupportedAttachmentType:
return true;
case Status::kAwaitingLocalConfirmation:
case Status::kAwaitingRemoteAcceptance:
case Status::kConnecting:
case Status::kInProgress:
case Status::kMediaDownloading:
case Status::kUnknown:
return false;
}
@@ -74,8 +62,6 @@ std::string TransferMetadata::StatusToString(Status status) {
return "kAwaitingLocalConfirmation";
case Status::kAwaitingRemoteAcceptance:
return "kAwaitingRemoteAcceptance";
case Status::kAwaitingRemoteAcceptanceFailed:
return "kAwaitingRemoteAcceptanceFailed";
case Status::kInProgress:
return "kInProgress";
case Status::kComplete:
@@ -90,36 +76,14 @@ std::string TransferMetadata::StatusToString(Status status) {
return "kTimedOut";
case Status::kMediaUnavailable:
return "kMediaUnavailable";
case Status::kMediaDownloading:
return "kMediaDownloading";
case Status::kNotEnoughSpace:
return "kNotEnoughSpace";
case Status::kUnsupportedAttachmentType:
return "kUnsupportedAttachmentType";
case Status::kExternalProviderLaunched:
return "kExternalProviderLaunched";
case Status::kDecodeAdvertisementFailed:
return "kDecodeAdvertisementFailed";
case Status::kMissingShareTarget:
return "kMissingShareTarget";
case Status::kMissingEndpointId:
return "kMissingEndpointId";
case Status::kMissingPayloads:
return "kMissingPayloads";
case Status::kPairedKeyVerificationFailed:
return "kPairedKeyVerificationFailed";
case Status::kInvalidIntroductionFrame:
return "kInvalidIntroductionFrame";
case Status::kDeviceAuthenticationFailed:
return "kDeviceAuthenticationFailed";
case Status::kIncompletePayloads:
return "kIncompletePayloads";
case Status::kFailedToCreateShareTarget:
return "kFailedToCreateShareTarget";
case Status::kFailedToInitiateOutgoingConnection:
return "kFailedToInitiateOutgoingConnection";
case Status::kFailedToReadOutgoingConnectionResponse:
return "kFailedToReadOutgoingConnectionResponse";
case Status::kUnexpectedDisconnection:
return "kUnexpectedDisconnection";
}
}
+2 -14
View File
@@ -33,7 +33,6 @@ class TransferMetadata {
kConnecting,
kAwaitingLocalConfirmation,
kAwaitingRemoteAcceptance,
kAwaitingRemoteAcceptanceFailed,
kInProgress,
kComplete,
kFailed,
@@ -41,22 +40,11 @@ class TransferMetadata {
kCancelled,
kTimedOut,
kMediaUnavailable,
kMediaDownloading,
kNotEnoughSpace,
kUnsupportedAttachmentType,
kExternalProviderLaunched,
kDecodeAdvertisementFailed,
kMissingShareTarget,
kMissingEndpointId,
kMissingPayloads,
kPairedKeyVerificationFailed,
kInvalidIntroductionFrame,
kDeviceAuthenticationFailed,
kIncompletePayloads,
kFailedToCreateShareTarget,
kFailedToInitiateOutgoingConnection,
kFailedToReadOutgoingConnectionResponse,
kUnexpectedDisconnection,
kMaxValue = kUnexpectedDisconnection
kMaxValue = kIncompletePayloads
};
static bool IsFinalStatus(Status status);