Chromium Code Reviews| Index: chrome/browser/chromeos/lock_screen_apps/app_manager.h |
| diff --git a/chrome/browser/chromeos/lock_screen_apps/app_manager.h b/chrome/browser/chromeos/lock_screen_apps/app_manager.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fc724d009a112ef08efaf22be4e16961b3bcf76c |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/lock_screen_apps/app_manager.h |
| @@ -0,0 +1,62 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_CHROMEOS_LOCK_SCREEN_APPS_APP_MANAGER_H_ |
| +#define CHROME_BROWSER_CHROMEOS_LOCK_SCREEN_APPS_APP_MANAGER_H_ |
| + |
| +#include <string> |
| + |
| +#include "base/callback.h" |
|
xiyuan
2017/06/21 16:09:47
nit: Include callback_forward.h here and callback.
tbarzic
2017/06/21 16:56:18
Done.
|
| + |
| +class Profile; |
| + |
| +namespace lock_screen_apps { |
| + |
| +// Interface for managing lock screen enabled action handler apps in the lock |
| +// screen enabled profile. Initially, it will be used primarily to manage lock |
| +// screen note taking apps. |
| +class AppManager { |
| + public: |
| + virtual ~AppManager() {} |
| + |
| + // Initializes the manager. |
| + // |primary_profile| - the profile which is the source of the lock screen |
| + // action handler app (if one is set). This is the profile whose |
| + // settings are used to determine whether and for which app lock screen |
| + // action is enabled, and it should be associated with the primary user. |
| + // |lock_screen_profile| - the profile in which lock screen apps should be |
| + // installed and launched. This profile should be annonymous - i.e. not |
| + // associated with any user. |
| + virtual void Initialize(Profile* primary_profile, |
| + Profile* lock_screen_profile) = 0; |
| + |
| + // Activates the manager - this should ensure that lock screen enabled note |
| + // taking app, if available, is loaded and enabled in the lock screen profile. |
| + // |note_taking_changed_callback| - used to notify the client when the note |
| + // taking app availability changes. It's cleared when the AppManager is |
| + // stopped. It is not expected to be run after the app manager instance |
| + // is destroyed. |
| + virtual void Start(const base::Closure& note_taking_changed_callback) = 0; |
| + |
| + // Stops the manager. After this is called, the app can be unloaded from the |
| + // lock screen enabled profile. Subsequent launch requests should not be |
| + // allowed. |
| + virtual void Stop() = 0; |
| + |
| + // If lock screen note taking app is available, launches the app with lock |
| + // screen note taking action. |
| + // Returns whether the app launch was attempted. |
| + virtual bool LaunchNoteTaking() = 0; |
| + |
| + // Returns whether a lock screen note taking is enabled and ready to launch. |
| + virtual bool IsNoteTakingAppAvailable() const = 0; |
| + |
| + // Returns the lock screen enabled lock screen note taking app, if a note |
| + // taking app is enabled on lock screen (for primary profile). |
| + virtual std::string GetNoteTakingAppId() const = 0; |
| +}; |
| + |
| +} // namespace lock_screen_apps |
| + |
| +#endif // CHROME_BROWSER_CHROMEOS_LOCK_SCREEN_APPS_APP_MANAGER_H_ |