| 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..4db0f719bf0edfa490ffc98bb59a845a5e4cfc6f
|
| --- /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_forward.h"
|
| +
|
| +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_
|
|
|