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.
5 #ifndef CHROME_BROWSER_APPS_DRIVE_DRIVE_APP_MAPPING_H_
6 #define CHROME_BROWSER_APPS_DRIVE_DRIVE_APP_MAPPING_H_
11 #include "base/macros.h"
13 namespace user_prefs
{
14 class PrefRegistrySyncable
;
19 // DriveAppMapping tracks the mapping between Drive apps and corresponding
20 // Chrome apps. The data is backed by kAppLauncherDriveAppMapping pref.
21 class DriveAppMapping
{
23 explicit DriveAppMapping(PrefService
* prefs
);
26 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable
* registry
);
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
,
33 void Remove(const std::string
& drive_app_id
);
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;
39 std::set
<std::string
> GetDriveAppIds() const;
41 void AddUninstalledDriveApp(const std::string
& drive_app_id
);
42 void RemoveUninstalledDriveApp(const std::string
& drive_app_id
);
43 bool IsUninstalledDriveApp(const std::string
& drive_app_id
) const;
46 void GetUninstalledIdsFromPref();
47 void UpdateUninstalledList();
50 std::set
<std::string
> uninstalled_app_ids_
;
52 DISALLOW_COPY_AND_ASSIGN(DriveAppMapping
);
55 #endif // CHROME_BROWSER_APPS_DRIVE_DRIVE_APP_MAPPING_H_