| Index: chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
|
| diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
|
| index 9a335e2d972be07da11b3f18ddfbf52c54503416..2cae8dc185fdaad100df4c5a99bc9737ca4e343b 100644
|
| --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
|
| +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
|
| @@ -19,6 +19,7 @@
|
| #include "base/observer_list.h"
|
| #include "base/time/time.h"
|
| #include "chrome/browser/chromeos/arc/arc_auth_service.h"
|
| +#include "chrome/browser/ui/app_list/arc/arc_default_app_list.h"
|
| #include "components/arc/common/app.mojom.h"
|
| #include "components/arc/instance_holder.h"
|
| #include "components/keyed_service/core/keyed_service.h"
|
| @@ -49,7 +50,8 @@ class ArcAppListPrefs
|
| : public KeyedService,
|
| public arc::mojom::AppHost,
|
| public arc::InstanceHolder<arc::mojom::AppInstance>::Observer,
|
| - public arc::ArcAuthService::Observer {
|
| + public arc::ArcAuthService::Observer,
|
| + public ArcDefaultAppList::Delegate {
|
| public:
|
| struct AppInfo {
|
| AppInfo(const std::string& name,
|
| @@ -201,6 +203,10 @@ class ArcAppListPrefs
|
|
|
| // Returns true if app is registered.
|
| bool IsRegistered(const std::string& app_id) const;
|
| + // Returns true if app is a default app.
|
| + bool IsDefault(const std::string& app_id) const;
|
| + // Returns true if app is an OEM app.
|
| + bool IsOem(const std::string& app_id) const;
|
| // Returns true if app is a shortcut
|
| bool IsShortcut(const std::string& app_id) const;
|
|
|
| @@ -211,6 +217,9 @@ class ArcAppListPrefs
|
| // arc::ArcAuthService::Observer:
|
| void OnOptInEnabled(bool enabled) override;
|
|
|
| + // ArcDefaultAppList::Delegate:
|
| + void OnDefaultAppsReady() override;
|
| +
|
| // Removes app with the given app_id.
|
| void RemoveApp(const std::string& app_id);
|
|
|
| @@ -221,6 +230,8 @@ class ArcAppListPrefs
|
| std::unordered_set<std::string> GetAppsForPackage(
|
| const std::string& package_name) const;
|
|
|
| + void SetDefaltAppsReadyCallback(base::Closure callback);
|
| +
|
| private:
|
| friend class ChromeLauncherControllerImplTest;
|
|
|
| @@ -264,6 +275,14 @@ class ArcAppListPrefs
|
| int32_t task_id,
|
| const arc::mojom::OrientationLock orientation_lock) override;
|
|
|
| + void StartPrefs();
|
| +
|
| + // Returns list of packages from prefs. If |installed| is set to true then
|
| + // returns currently installed packages. If not, returns list of packages that
|
| + // where uninstalled. Note, we store uninstall packages only for packages of
|
| + // default apps.
|
| + std::vector<std::string> GetPackagesFromPrefs(bool installed) const;
|
| +
|
| void AddApp(const arc::mojom::AppInfo& app_info);
|
| void AddAppAndShortcut(const std::string& name,
|
| const std::string& package_name,
|
| @@ -275,6 +294,13 @@ class ArcAppListPrefs
|
| const bool shortcut,
|
| const bool launchable,
|
| arc::mojom::OrientationLock orientation_lock);
|
| + // Adds or updates local pref for given package.
|
| + void AddOrUpdatePackagePrefs(PrefService* prefs,
|
| + const arc::mojom::ArcPackageInfo& package);
|
| + // Removes given package from local pref.
|
| + void RemovePackageFromPrefs(PrefService* prefs,
|
| + const std::string& package_name);
|
| +
|
| void DisableAllApps();
|
| void RemoveAllApps();
|
| std::vector<std::string> GetAppIdsNoArcEnabledCheck() const;
|
| @@ -295,9 +321,9 @@ class ArcAppListPrefs
|
|
|
| // This checks if app is not registered yet and in this case creates
|
| // non-launchable app entry.
|
| - void MayAddNonLaunchableApp(const std::string& name,
|
| - const std::string& package_name,
|
| - const std::string& activity);
|
| + void MaybeAddNonLaunchableApp(const std::string& name,
|
| + const std::string& package_name,
|
| + const std::string& activity);
|
|
|
| // Reveals first app from provided package in app launcher if package is newly
|
| // installed by user. If all apps in package are hidden then app list is not
|
| @@ -332,6 +358,10 @@ class ArcAppListPrefs
|
|
|
| mojo::Binding<arc::mojom::AppHost> binding_;
|
|
|
| + bool default_apps_ready_ = false;
|
| + ArcDefaultAppList default_apps_;
|
| + base::Closure default_apps_ready_callback_;
|
| +
|
| base::WeakPtrFactory<ArcAppListPrefs> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ArcAppListPrefs);
|
|
|