blob: cc89f95b3c6e6865b77b0e315af79d35472c8590 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_ASH_ASSISTANT_DEVICE_ACTIONS_H_
#define CHROME_BROWSER_UI_ASH_ASSISTANT_DEVICE_ACTIONS_H_
#include "ash/public/cpp/android_intent_helper.h"
#include "base/scoped_observer.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
#include "mojo/public/cpp/bindings/interface_ptr_set.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
class DeviceActions : public ash::AndroidIntentHelper,
public chromeos::assistant::mojom::DeviceActions,
public ArcAppListPrefs::Observer {
public:
DeviceActions();
~DeviceActions() override;
mojo::PendingRemote<chromeos::assistant::mojom::DeviceActions> AddReceiver();
// mojom::DeviceActions overrides:
void SetWifiEnabled(bool enabled) override;
void SetBluetoothEnabled(bool enabled) override;
void GetScreenBrightnessLevel(
GetScreenBrightnessLevelCallback callback) override;
void SetScreenBrightnessLevel(double level, bool gradual) override;
void SetNightLightEnabled(bool enabled) override;
void OpenAndroidApp(chromeos::assistant::mojom::AndroidAppInfoPtr app_info,
OpenAndroidAppCallback callback) override;
void VerifyAndroidApp(
std::vector<chromeos::assistant::mojom::AndroidAppInfoPtr> apps_info,
VerifyAndroidAppCallback callback) override;
void LaunchAndroidIntent(const std::string& intent) override;
void AddAppListEventSubscriber(
chromeos::assistant::mojom::AppListEventSubscriberPtr subscriber)
override;
// ash::AndroidIntentHelper overrides:
base::Optional<std::string> GetAndroidAppLaunchIntent(
chromeos::assistant::mojom::AndroidAppInfoPtr app_info) override;
private:
// ArcAppListPrefs::Observer overrides.
void OnPackageListInitialRefreshed() override;
void OnAppRegistered(const std::string& app_id,
const ArcAppListPrefs::AppInfo& app_info) override;
void OnAppRemoved(const std::string& id) override;
ScopedObserver<ArcAppListPrefs, DeviceActions> scoped_prefs_observer_;
mojo::ReceiverSet<chromeos::assistant::mojom::DeviceActions> receivers_;
mojo::InterfacePtrSet<chromeos::assistant::mojom::AppListEventSubscriber>
app_list_subscribers_;
DISALLOW_COPY_AND_ASSIGN(DeviceActions);
};
#endif // CHROME_BROWSER_UI_ASH_ASSISTANT_DEVICE_ACTIONS_H_