#ifndef PLATFORM_IMPL_LINUX_DEVICE_INFO_H_ #define PLATFORM_IMPL_LINUX_DEVICE_INFO_H_ #include #include #include #include #include "absl/strings/string_view.h" #include "internal/platform/implementation/device_info.h" namespace nearby { namespace linux { class DeviceInfo : public api::DeviceInfo { public: DeviceInfo(sdbus::IConnection &system_bus); ~DeviceInfo() override = default; std::optional GetOsDeviceName() const override; api::DeviceInfo::DeviceType GetDeviceType() const override; api::DeviceInfo::OsType GetOsType() const override { return api::DeviceInfo::OsType::kWindows; // Or ChromeOS? } std::optional GetFullName() const override; std::optional GetGivenName() const override { return GetFullName(); } std::optional GetLastName() const override { return GetFullName(); } std::optional GetProfileUserName() const override; std::optional GetDownloadPath() const override; std::optional GetLocalAppDataPath() const override; std::optional GetCommonAppDataPath() const override { return std::nullopt; }; std::optional GetTemporaryPath() const override; std::optional GetLogPath() const override; std::optional GetCrashDumpPath() const override; bool IsScreenLocked() const override; // TODO: Implement listening to logind for changes to LockedState. void RegisterScreenLockedListener( absl::string_view listener_name, std::function callback) override{}; void UnregisterScreenLockedListener(absl::string_view listener_name) override{}; private: std::unique_ptr hostname_proxy_; std::unique_ptr login_proxy_; }; } // namespace linux } // namespace nearby #endif // PLATFORM_IMPL_LINUX_DEVICE_INFO_H_