Chromium Code Reviews| Index: chrome/browser/ui/ash/chrome_launcher_prefs.h |
| diff --git a/chrome/browser/ui/ash/chrome_launcher_prefs.h b/chrome/browser/ui/ash/chrome_launcher_prefs.h |
| index a8607d893a4dc9357317c074c40173c4fe596ce8..7218d11e4ae15cd547eed5125553feae0e5cc632 100644 |
| --- a/chrome/browser/ui/ash/chrome_launcher_prefs.h |
| +++ b/chrome/browser/ui/ash/chrome_launcher_prefs.h |
| @@ -51,10 +51,43 @@ extern const char kShelfAlignmentBottom[]; |
| extern const char kShelfAlignmentLeft[]; |
| extern const char kShelfAlignmentRight[]; |
| +// A unique chrome launcher id used to identify a shelf item. This class is a |
| +// wrapper for the chrome launcher identifier. |app_launcher_id_| includes the |
| +// |app_id| and the |launch_id|. The |app_id| is the application id associated |
| +// with a set of windows. The |launch_id| is an id that can be passed to an app |
| +// when launched in order to support multiple shelf items per app. This id is |
| +// used together with the |app_id| to uniquely identify each shelf item that |
| +// has the same |app_id|. |
| +class AppLauncherId { |
| + public: |
| + explicit AppLauncherId(const std::string& app_id); |
| + AppLauncherId(const std::string& app_id, const std::string& launch_id); |
| + ~AppLauncherId(); |
| + |
| + AppLauncherId(const AppLauncherId& app_launcher_id) = default; |
| + AppLauncherId(AppLauncherId&& app_launcher_id) = default; |
| + AppLauncherId& operator=(const AppLauncherId& other) = default; |
| + |
| + const std::string& GetAsString() const { return app_launcher_id_; } |
|
msw
2016/10/05 17:14:28
optional nit: rename as ToString
Andra Paraschiv
2016/10/06 07:49:47
Done.
|
| + const std::string& app_id() const { return app_id_; } |
| + const std::string& launch_id() const { return launch_id_; } |
| + |
| + bool operator<(const AppLauncherId& other) const; |
| + |
| + private: |
| + // A unique chrome launcher id for a shelf item. |
| + std::string app_launcher_id_; |
| + // The application id associated with a set of windows. |
| + std::string app_id_; |
| + // An id that can be passed to an app when launched in order to support |
| + // multiple shelf items per app. |
| + std::string launch_id_; |
| +}; |
| + |
| void RegisterChromeLauncherUserPrefs( |
| user_prefs::PrefRegistrySyncable* registry); |
| -base::DictionaryValue* CreateAppDict(const std::string& app_id); |
| +base::DictionaryValue* CreateAppDict(const AppLauncherId& app_launcher_id); |
| // Get or set the shelf auto hide behavior preference for a particular display. |
| ShelfAutoHideBehavior GetShelfAutoHideBehaviorPref(PrefService* prefs, |
| @@ -70,21 +103,21 @@ void SetShelfAlignmentPref(PrefService* prefs, |
| ShelfAlignment alignment); |
| // Get the list of pinned apps from preferences. |
| -std::vector<std::string> GetPinnedAppsFromPrefs( |
| +std::vector<AppLauncherId> GetPinnedAppsFromPrefs( |
| const PrefService* prefs, |
| LauncherControllerHelper* helper); |
| // Removes information about pin position from sync model for the app. |
| -void RemovePinPosition(Profile* profile, const std::string& app_id); |
| +void RemovePinPosition(Profile* profile, const AppLauncherId& app_launcher_id); |
| -// Updates information about pin position in sync model for the app |app_id|. |
| -// |app_id_before| optionally specifies an app that exists right before the |
| -// target app. |app_ids_after| optionally specifies sorted by position apps that |
| -// exist right after the target app. |
| +// Updates information about pin position in sync model for the app |
| +// |app_launcher_id|. |app_launcher_id_before| optionally specifies an app that |
| +// exists right before the target app. |app_launcher_ids_after| optionally |
| +// specifies sorted by position apps that exist right after the target app. |
| void SetPinPosition(Profile* profile, |
| - const std::string& app_id, |
| - const std::string& app_id_before, |
| - const std::vector<std::string>& app_ids_after); |
| + const AppLauncherId& app_launcher_id, |
| + const AppLauncherId& app_launcher_id_before, |
| + const std::vector<AppLauncherId>& app_launcher_ids_after); |
| // Used to propagate remote preferences to local during the first run. |
| class ChromeLauncherPrefsObserver |