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 13namespace user_prefs { 14class PrefRegistrySyncable; 15} 16 17class PrefService; 18 19// DriveAppMapping tracks the mapping between Drive apps and corresponding 20// Chrome apps. The data is backed by kAppLauncherDriveAppMapping pref. 21class 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