Added APIs to control device sleep

These APIs can be used to prevent device into sleep when sending supper big files.

PiperOrigin-RevId: 556809236
This commit is contained in:
Guogang Li
2023-08-14 09:05:11 -07:00
committed by Copybara-Service
parent 06942caeb3
commit fabeff0d57
12 changed files with 74 additions and 1 deletions
@@ -353,5 +353,15 @@ void DeviceInfo::UnregisterScreenLockedListener(
session_manager_.UnregisterSessionListener(listener_name);
}
bool DeviceInfo::PreventSleep() {
absl::MutexLock lock(&mutex_);
return session_manager_.PreventSleep();
}
bool DeviceInfo::AllowSleep() {
absl::MutexLock lock(&mutex_);
return session_manager_.AllowSleep();
}
} // namespace windows
} // namespace nearby
@@ -52,6 +52,9 @@ class DeviceInfo : public api::DeviceInfo {
std::function<void(api::DeviceInfo::ScreenStatus)> callback) override;
void UnregisterScreenLockedListener(absl::string_view listener_name) override;
bool PreventSleep() override;
bool AllowSleep() override;
private:
mutable absl::Mutex mutex_;
SessionManager session_manager_ ABSL_GUARDED_BY(mutex_);
@@ -77,6 +77,14 @@ TEST(DeviceInfo, DISABLED_IsScreenLocked) {
EXPECT_FALSE(DeviceInfo().IsScreenLocked());
}
TEST(DeviceInfo, DISABLED_PreventSleep) {
EXPECT_TRUE(DeviceInfo().PreventSleep());
}
TEST(DeviceInfo, DISABLED_AllowSleep) {
EXPECT_TRUE(DeviceInfo().AllowSleep());
}
} // namespace
} // namespace windows
} // namespace nearby