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(
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 =
foreground_receive_callbacks_.might_have_observers()
......@@ -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(
const ShareTarget& share_target) {
mutual_acceptance_timeout_alarm_.Cancel();
......
......@@ -159,6 +159,9 @@ class NearbySharingServiceImpl
void InvalidateAdvertisingState();
void StopAdvertising();
void OnTransferComplete();
void OnTransferStarted(bool is_incoming);
StatusCodes ReceivePayloads(const ShareTarget& share_target);
StatusCodes SendPayloads(const ShareTarget& share_target);
......@@ -288,6 +291,8 @@ class NearbySharingServiceImpl
bool is_transferring_ = false;
// True if we're currently receiving a file.
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.
bool is_connecting_ = false;
// The time scanning began.
......
......@@ -397,6 +397,7 @@ class NearbySharingServiceImplTest : public testing::Test {
TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation,
metadata.status());
EXPECT_FALSE(metadata.is_final_status());
share_target = incoming_share_target;
run_loop.Quit();
}));
......@@ -1375,6 +1376,7 @@ TEST_F(NearbySharingServiceImplTest,
EXPECT_EQ(TransferMetadata::Status::kUnsupportedAttachmentType,
metadata.status());
EXPECT_TRUE(metadata.is_final_status());
run_loop.Quit();
}));
......@@ -1427,6 +1429,7 @@ TEST_F(NearbySharingServiceImplTest,
EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation,
metadata.status());
EXPECT_FALSE(metadata.is_final_status());
run_loop.Quit();
}));
......@@ -1451,6 +1454,7 @@ TEST_F(NearbySharingServiceImplTest,
.WillOnce(testing::Invoke([&run_loop_2](const ShareTarget& share_target,
TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kFailed, metadata.status());
EXPECT_TRUE(metadata.is_final_status());
run_loop_2.Quit();
}));
......@@ -1489,6 +1493,7 @@ TEST_F(NearbySharingServiceImplTest,
EXPECT_EQ(TransferMetadata::Status::kAwaitingLocalConfirmation,
metadata.status());
EXPECT_FALSE(metadata.is_final_status());
run_loop.Quit();
}));
......@@ -1528,6 +1533,7 @@ TEST_F(NearbySharingServiceImplTest, AcceptValidShareTarget) {
[](const ShareTarget& share_target, TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kAwaitingRemoteAcceptance,
metadata.status());
EXPECT_FALSE(metadata.is_final_status());
}));
service_->Accept(share_target,
......@@ -1580,6 +1586,7 @@ TEST_F(NearbySharingServiceImplTest, RejectValidShareTarget) {
.WillOnce(testing::Invoke(
[](const ShareTarget& share_target, TransferMetadata metadata) {
EXPECT_EQ(TransferMetadata::Status::kRejected, metadata.status());
EXPECT_TRUE(metadata.is_final_status());
}));
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