• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_APPS_DRIVE_DRIVE_APP_MAPPING_H_
6 #define CHROME_BROWSER_APPS_DRIVE_DRIVE_APP_MAPPING_H_
7 
8 #include <set>
9 #include <string>
10 
11 #include "base/macros.h"
12 
13 namespace user_prefs {
14 class PrefRegistrySyncable;
15 }
16 
17 class PrefService;
18 
19 // DriveAppMapping tracks the mapping between Drive apps and corresponding
20 // Chrome apps. The data is backed by kAppLauncherDriveAppMapping pref.
21 class DriveAppMapping {
22  public:
23   explicit DriveAppMapping(PrefService* prefs);
24   ~DriveAppMapping();
25 
26   static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
27 
28   // Adds a mapping from |drive_app_id| to |chrome_app_id|. |generated|
29   // represents whether the corresponding Chrome app is generated.
30   void Add(const std::string& drive_app_id,
31            const std::string& chrome_app_id,
32            bool generated);
33   void Remove(const std::string& drive_app_id);
34 
35   std::string GetChromeApp(const std::string& drive_app_id) const;
36   std::string GetDriveApp(const std::string& chrome_app_id) const;
37   bool IsChromeAppGenerated(const std::string& chrome_app_id) const;
38 
39   std::set<std::string> GetDriveAppIds() const;
40 
41  private:
42   PrefService* prefs_;
43 
44   DISALLOW_COPY_AND_ASSIGN(DriveAppMapping);
45 };
46 
47 #endif  // CHROME_BROWSER_APPS_DRIVE_DRIVE_APP_MAPPING_H_
48