Commit 349f0bc4 authored by Himanshu Jaju's avatar Himanshu Jaju Committed by Commit Bot

Handle is_final_status

Marks the incoming transfer as started / complete depending upon
the status of the transfer metadata.

Bug: 1085068
Change-Id: Ie29a294d86b8bd9b05d63d8a11e713cac53f570a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2350421
Commit-Queue: Himanshu Jaju <himanshujaju@chromium.org>
Reviewed-by: default avatarRichard Knoll <knollr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797321}
parent 1dc85856
...@@ -1157,7 +1157,12 @@ void NearbySharingServiceImpl::OnIncomingTransferUpdate( ...@@ -1157,7 +1157,12 @@ void NearbySharingServiceImpl::OnIncomingTransferUpdate(
last_incoming_metadata_ = base::nullopt; last_incoming_metadata_ = base::nullopt;
} }
// TODO(himanshujaju) - Handle is_final_status() if (metadata.is_final_status()) {
OnTransferComplete();
} else if (metadata.status() ==
TransferMetadata::Status::kAwaitingLocalConfirmation) {
OnTransferStarted(/*is_incoming=*/true);
}
base::ObserverList<TransferUpdateCallback>& transfer_callbacks = base::ObserverList<TransferUpdateCallback>& transfer_callbacks =
foreground_receive_callbacks_.might_have_observers() foreground_receive_callbacks_.might_have_observers()
...@@ -1169,6 +1174,28 @@ void NearbySharingServiceImpl::OnIncomingTransferUpdate( ...@@ -1169,6 +1174,28 @@ void NearbySharingServiceImpl::OnIncomingTransferUpdate(
} }
} }
void NearbySharingServiceImpl::OnTransferComplete() {
is_receiving_files_ = false;
is_transferring_ = false;
is_sending_files_ = false;
NS_LOG(VERBOSE) << __func__
<< ": NearbySharing state change transfer finished";
// TODO(himanshujaju) - Check if we need to delay InvalidateSurfaceState()
// similar to GmsCore impl.
InvalidateSurfaceState();
}
void NearbySharingServiceImpl::OnTransferStarted(bool is_incoming) {
is_transferring_ = true;
if (is_incoming) {
is_receiving_files_ = true;
} else {
is_sending_files_ = true;
}
InvalidateSurfaceState();
}
NearbySharingService::StatusCodes NearbySharingServiceImpl::ReceivePayloads( NearbySharingService::StatusCodes NearbySharingServiceImpl::ReceivePayloads(
const ShareTarget& share_target) { const ShareTarget& share_target) {
mutual_acceptance_timeout_alarm_.Cancel(); mutual_acceptance_timeout_alarm_.Cancel();
......
...@@ -159,6 +159,9 @@ class NearbySharingServiceImpl ...@@ -159,6 +159,9 @@ class NearbySharingServiceImpl
void InvalidateAdvertisingState(); void InvalidateAdvertisingState();
void StopAdvertising(); void StopAdvertising();
void OnTransferComplete();
void OnTransferStarted(bool is_incoming);
StatusCodes ReceivePayloads(const ShareTarget& share_target); StatusCodes ReceivePayloads(const ShareTarget& share_target);
StatusCodes SendPayloads(const ShareTarget& share_target); StatusCodes SendPayloads(const ShareTarget& share_target);
...@@ -288,6 +291,8 @@ class NearbySharingServiceImpl ...@@ -288,6 +291,8 @@ class NearbySharingServiceImpl
bool is_transferring_ = false; bool is_transferring_ = false;
// True if we're currently receiving a file. // True if we're currently receiving a file.
bool is_receiving_files_ = false; bool is_receiving_files_ = false;
// True if we're currently sending a file.
bool is_sending_files_ = false;
// True if we're currently attempting to connect to a remote device. // True if we're currently attempting to connect to a remote device.
bool is_connecting_ = false; bool is_connecting_ = false;
// The time scanning began. // The time scanning began.
......
...@@ -397,6 +397,7 @@ class NearbySharingServiceImplTest : public testing::Test { ...@@ -397,6 +397,7 @@ class NearbySharingServiceImplTest : public testing::Test {
TransferMetadata metadata) { TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation, EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation,
metadata.status()); metadata.status());
EXPECT_FALSE(metadata.is_final_status());
share_target = incoming_share_target; share_target = incoming_share_target;
run_loop.Quit(); run_loop.Quit();
})); }));
...@@ -1375,6 +1376,7 @@ TEST_F(NearbySharingServiceImplTest, ...@@ -1375,6 +1376,7 @@ TEST_F(NearbySharingServiceImplTest,
EXPECT_EQ(TransferMetadata::Status::kUnsupportedAttachmentType, EXPECT_EQ(TransferMetadata::Status::kUnsupportedAttachmentType,
metadata.status()); metadata.status());
EXPECT_TRUE(metadata.is_final_status());
run_loop.Quit(); run_loop.Quit();
})); }));
...@@ -1427,6 +1429,7 @@ TEST_F(NearbySharingServiceImplTest, ...@@ -1427,6 +1429,7 @@ TEST_F(NearbySharingServiceImplTest,
EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation, EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation,
metadata.status()); metadata.status());
EXPECT_FALSE(metadata.is_final_status());
run_loop.Quit(); run_loop.Quit();
})); }));
...@@ -1451,6 +1454,7 @@ TEST_F(NearbySharingServiceImplTest, ...@@ -1451,6 +1454,7 @@ TEST_F(NearbySharingServiceImplTest,
.WillOnce(testing::Invoke([&run_loop_2](const ShareTarget& share_target, .WillOnce(testing::Invoke([&run_loop_2](const ShareTarget& share_target,
TransferMetadata metadata) { TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kFailed, metadata.status()); EXPECT_EQ(TransferMetadata::Status::kFailed, metadata.status());
EXPECT_TRUE(metadata.is_final_status());
run_loop_2.Quit(); run_loop_2.Quit();
})); }));
...@@ -1489,6 +1493,7 @@ TEST_F(NearbySharingServiceImplTest, ...@@ -1489,6 +1493,7 @@ TEST_F(NearbySharingServiceImplTest,
EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation, EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation,
metadata.status()); metadata.status());
EXPECT_FALSE(metadata.is_final_status());
run_loop.Quit(); run_loop.Quit();
})); }));
...@@ -1528,6 +1533,7 @@ TEST_F(NearbySharingServiceImplTest, AcceptValidShareTarget) { ...@@ -1528,6 +1533,7 @@ TEST_F(NearbySharingServiceImplTest, AcceptValidShareTarget) {
[](const ShareTarget& share_target, TransferMetadata metadata) { [](const ShareTarget& share_target, TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kAwaitingRemoteAcceptance, EXPECT_EQ(TransferMetadata::Status::kAwaitingRemoteAcceptance,
metadata.status()); metadata.status());
EXPECT_FALSE(metadata.is_final_status());
})); }));
service_->Accept(share_target, service_->Accept(share_target,
...@@ -1580,6 +1586,7 @@ TEST_F(NearbySharingServiceImplTest, RejectValidShareTarget) { ...@@ -1580,6 +1586,7 @@ TEST_F(NearbySharingServiceImplTest, RejectValidShareTarget) {
.WillOnce(testing::Invoke( .WillOnce(testing::Invoke(
[](const ShareTarget& share_target, TransferMetadata metadata) { [](const ShareTarget& share_target, TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kRejected, metadata.status()); EXPECT_EQ(TransferMetadata::Status::kRejected, metadata.status());
EXPECT_TRUE(metadata.is_final_status());
})); }));
service_->Reject(share_target, service_->Reject(share_target,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment