@@ -26,6 +26,7 @@ AccountsService::AccountsService(QObject* parent)
2626 m_service(new AccountsServiceDBusAdaptor(this)),
2727 m_user(qgetenv("USER")),
2828 m_demoEdges(false),
29+ m_interactiveWhileLocked(false),
2930 m_statsWelcomeScreen(false),
3031 m_passwordDisplayHint(Keyboard),
3132 m_failedLogins(0)
@@ -47,6 +48,7 @@ void AccountsService::setUser(const QString &user)
4748 Q_EMIT userChanged();
4849
4950 updateDemoEdges();
51+ updateInteractiveWhileLocked();
5052 updateBackgroundFile();
5153 updateStatsWelcomeScreen();
5254 updatePasswordDisplayHint();
@@ -64,6 +66,11 @@ void AccountsService::setDemoEdges(bool demoEdges)
6466 m_service->setUserProperty(m_user, "com.canonical.unity.AccountsService", "demo-edges", demoEdges);
6567}
6668
69+bool AccountsService::interactiveWhileLocked() const
70+{
71+ return m_interactiveWhileLocked;
72+}
73+
6774QString AccountsService::backgroundFile() const
6875{
6976 return m_backgroundFile;
@@ -88,6 +95,15 @@ void AccountsService::updateDemoEdges()
8895 }
8996}
9097
98+void AccountsService::updateInteractiveWhileLocked()
99+{
100+ auto interactiveWhileLocked = m_service->getUserProperty(m_user, "com.canonical.unity.AccountsService", "InteractiveWhileLocked").toBool();
101+ if (m_interactiveWhileLocked != interactiveWhileLocked) {
102+ m_interactiveWhileLocked = interactiveWhileLocked;
103+ Q_EMIT interactiveWhileLockedChanged();
104+ }
105+}
106+
91107void AccountsService::updateBackgroundFile()
92108{
93109 auto backgroundFile = m_service->getUserProperty(m_user, "org.freedesktop.Accounts.User", "BackgroundFile").toString();
@@ -145,6 +161,9 @@ void AccountsService::propertiesChanged(const QString &user, const QString &inte
145161 if (changed.contains("demo-edges")) {
146162 updateDemoEdges();
147163 }
164+ if (changed.contains("InteractiveWhileLocked")) {
165+ updateInteractiveWhileLocked();
166+ }
148167 } else if (interface == "com.canonical.unity.AccountsService.Private") {
149168 if (changed.contains("FailedLogins")) {
150169 updateFailedLogins();