Update max visibility expiration to 10m.

PiperOrigin-RevId: 686308358
This commit is contained in:
Francis Tsui
2024-10-15 18:23:44 -07:00
committed by Copybara-Service
parent 722c8a3266
commit 54f2670211
3 changed files with 28 additions and 2 deletions
+2 -1
View File
@@ -63,7 +63,8 @@ ABSL_CONST_INIT const proto::DeviceVisibility kDefaultVisibility =
proto::DeviceVisibility::DEVICE_VISIBILITY_HIDDEN;
ABSL_CONST_INIT const proto::DeviceVisibility kDefaultFallbackVisibility =
proto::DeviceVisibility::DEVICE_VISIBILITY_HIDDEN;
ABSL_CONST_INIT const int kDefaultMaxVisibilityExpirationSeconds = 300;
ABSL_CONST_INIT const int kDefaultMaxVisibilityExpirationSeconds =
600; // 10 minutes
void RegisterNearbySharingPrefs(
nearby::sharing::api::PreferenceManager& preference_manager,
+9 -1
View File
@@ -149,7 +149,7 @@ void NearbyShareSettings::StartVisibilityTimer(
proto::DeviceVisibility visibility;
{
absl::MutexLock lock(&mutex_);
visibility = GetRawFallbackVisibility().visibility;
visibility = fallback_visibility_;
visibility_expiration_timer_.reset();
}
SetVisibility(visibility);
@@ -257,6 +257,14 @@ void NearbyShareSettings::SetVisibility(DeviceVisibility visibility,
visibility = DeviceVisibility::DEVICE_VISIBILITY_SELF_SHARE;
}
DeviceVisibility last_visibility = GetVisibility();
absl::Duration max_expiration =
absl::Seconds(kMaxVisibilityExpirationSeconds);
if (expiration > max_expiration) {
LOG(WARNING) << "Set visbility expiration is too long. visibility="
<< static_cast<int>(visibility)
<< ", expiration=" << expiration;
expiration = max_expiration;
}
if (analytics_recorder_ != nullptr) {
analytics_recorder_->NewSetVisibility(
last_visibility, visibility, absl::ToInt64Milliseconds(expiration));
+17
View File
@@ -389,6 +389,23 @@ TEST_F(NearbyShareSettingsTest, TemporaryVisibilityIsCorrect) {
absl::Seconds(1));
}
TEST_F(NearbyShareSettingsTest, SetVisibilityWithExpirationTooLong) {
// Set visibility with expiration longer than the max.
settings()->SetVisibility(DeviceVisibility::DEVICE_VISIBILITY_SELF_SHARE,
absl::Hours(1));
// Expiration capped at 10minutes.
absl::Time expected_fallback_time =
context_.GetClock()->Now() + absl::Minutes(10);
NearbyShareSettings::FallbackVisibilityInfo fallback_visibility =
settings()->GetFallbackVisibility();
// default visibility was hidden.
EXPECT_EQ(fallback_visibility.visibility,
DeviceVisibility::DEVICE_VISIBILITY_HIDDEN);
absl::Duration time_diff = fallback_visibility.fallback_time -
expected_fallback_time;
EXPECT_LT(absl::AbsDuration(time_diff), absl::Seconds(1));
}
TEST(NearbyShareVisibilityTest, RestoresFallbackVisibility_ExpiredTimer) {
// Create Nearby Share settings dependencies.
FakeContext context;