[FastPair] Add Mediator to ash/shell
This changes adds quick_pair::Mediator to //ash/shell. This class is the entry point for the Quick Pair system which enables Fast Pair. Fixed: 1227437 Change-Id: Ia9b7e32d8df2efb5524ac86ff607bec7d77aa200 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011114 Commit-Queue: Shane Fitzpatrick <shanefitz@google.com> Reviewed-by: Xiyuan Xia <xiyuan@chromium.org> Cr-Commit-Position: refs/heads/master@{#899773}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
7711d63edb
commit
ed125634f7
ash
@ -1842,6 +1842,7 @@ component("ash") {
|
|||||||
"//ash/login/resources:resources_grit",
|
"//ash/login/resources:resources_grit",
|
||||||
"//ash/public/cpp/ambient/proto",
|
"//ash/public/cpp/ambient/proto",
|
||||||
"//ash/quick_pair",
|
"//ash/quick_pair",
|
||||||
|
"//ash/quick_pair/keyed_service",
|
||||||
"//ash/services/recording",
|
"//ash/services/recording",
|
||||||
"//ash/services/recording/public/mojom",
|
"//ash/services/recording/public/mojom",
|
||||||
"//ash/system/machine_learning:user_settings_event_proto",
|
"//ash/system/machine_learning:user_settings_event_proto",
|
||||||
|
@ -9,10 +9,33 @@
|
|||||||
#include "ash/quick_pair/common/device.h"
|
#include "ash/quick_pair/common/device.h"
|
||||||
#include "ash/quick_pair/common/logging.h"
|
#include "ash/quick_pair/common/logging.h"
|
||||||
#include "ash/quick_pair/feature_status_tracker/quick_pair_feature_status_tracker.h"
|
#include "ash/quick_pair/feature_status_tracker/quick_pair_feature_status_tracker.h"
|
||||||
|
#include "ash/quick_pair/feature_status_tracker/quick_pair_feature_status_tracker_impl.h"
|
||||||
|
#include "ash/quick_pair/scanning/scanner_broker_impl.h"
|
||||||
|
|
||||||
namespace ash {
|
namespace ash {
|
||||||
namespace quick_pair {
|
namespace quick_pair {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
Mediator::Factory* g_test_factory = nullptr;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
std::unique_ptr<Mediator> Mediator::Factory::Create() {
|
||||||
|
if (g_test_factory)
|
||||||
|
return g_test_factory->BuildInstance();
|
||||||
|
|
||||||
|
return std::make_unique<Mediator>(
|
||||||
|
std::make_unique<FeatureStatusTrackerImpl>(),
|
||||||
|
std::make_unique<ScannerBrokerImpl>());
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void Mediator::Factory::SetFactoryForTesting(Factory* factory) {
|
||||||
|
g_test_factory = factory;
|
||||||
|
}
|
||||||
|
|
||||||
Mediator::Mediator(std::unique_ptr<FeatureStatusTracker> feature_status_tracker,
|
Mediator::Mediator(std::unique_ptr<FeatureStatusTracker> feature_status_tracker,
|
||||||
std::unique_ptr<ScannerBroker> scanner_broker)
|
std::unique_ptr<ScannerBroker> scanner_broker)
|
||||||
: feature_status_tracker_(std::move(feature_status_tracker)),
|
: feature_status_tracker_(std::move(feature_status_tracker)),
|
||||||
|
@ -20,6 +20,16 @@ namespace quick_pair {
|
|||||||
class Mediator : public FeatureStatusTracker::Observer,
|
class Mediator : public FeatureStatusTracker::Observer,
|
||||||
public ScannerBroker::Observer {
|
public ScannerBroker::Observer {
|
||||||
public:
|
public:
|
||||||
|
class Factory {
|
||||||
|
public:
|
||||||
|
static std::unique_ptr<Mediator> Create();
|
||||||
|
static void SetFactoryForTesting(Factory* factory);
|
||||||
|
virtual ~Factory() = default;
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual std::unique_ptr<Mediator> BuildInstance() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
Mediator(std::unique_ptr<FeatureStatusTracker> feature_status_tracker,
|
Mediator(std::unique_ptr<FeatureStatusTracker> feature_status_tracker,
|
||||||
std::unique_ptr<ScannerBroker> scanner_broker);
|
std::unique_ptr<ScannerBroker> scanner_broker);
|
||||||
Mediator(const Mediator&) = delete;
|
Mediator(const Mediator&) = delete;
|
||||||
|
@ -87,6 +87,7 @@
|
|||||||
#include "ash/public/cpp/shell_window_ids.h"
|
#include "ash/public/cpp/shell_window_ids.h"
|
||||||
#include "ash/public/cpp/views_text_services_context_menu_impl.h"
|
#include "ash/public/cpp/views_text_services_context_menu_impl.h"
|
||||||
#include "ash/quick_answers/quick_answers_controller_impl.h"
|
#include "ash/quick_answers/quick_answers_controller_impl.h"
|
||||||
|
#include "ash/quick_pair/keyed_service/quick_pair_mediator.h"
|
||||||
#include "ash/root_window_controller.h"
|
#include "ash/root_window_controller.h"
|
||||||
#include "ash/screenshot_delegate.h"
|
#include "ash/screenshot_delegate.h"
|
||||||
#include "ash/session/session_controller_impl.h"
|
#include "ash/session/session_controller_impl.h"
|
||||||
@ -559,7 +560,8 @@ Shell::Shell(std::unique_ptr<ShellDelegate> shell_delegate)
|
|||||||
shell_delegate_(std::move(shell_delegate)),
|
shell_delegate_(std::move(shell_delegate)),
|
||||||
shutdown_controller_(std::make_unique<ShutdownControllerImpl>()),
|
shutdown_controller_(std::make_unique<ShutdownControllerImpl>()),
|
||||||
system_tray_notifier_(std::make_unique<SystemTrayNotifier>()),
|
system_tray_notifier_(std::make_unique<SystemTrayNotifier>()),
|
||||||
native_cursor_manager_(nullptr) {
|
native_cursor_manager_(nullptr),
|
||||||
|
quick_pair_mediator_(quick_pair::Mediator::Factory::Create()) {
|
||||||
AccelerometerReader::GetInstance()->Initialize();
|
AccelerometerReader::GetInstance()->Initialize();
|
||||||
|
|
||||||
login_screen_controller_ =
|
login_screen_controller_ =
|
||||||
|
@ -207,6 +207,10 @@ class ArcInputMethodBoundsTracker;
|
|||||||
|
|
||||||
enum class LoginStatus;
|
enum class LoginStatus;
|
||||||
|
|
||||||
|
namespace quick_pair {
|
||||||
|
class Mediator;
|
||||||
|
} // namespace quick_pair
|
||||||
|
|
||||||
// Shell is a singleton object that presents the Shell API and implements the
|
// Shell is a singleton object that presents the Shell API and implements the
|
||||||
// RootWindow's delegate interface.
|
// RootWindow's delegate interface.
|
||||||
//
|
//
|
||||||
@ -889,6 +893,8 @@ class ASH_EXPORT Shell : public SessionObserver,
|
|||||||
|
|
||||||
std::unique_ptr<OcclusionTrackerPauser> occlusion_tracker_pauser_;
|
std::unique_ptr<OcclusionTrackerPauser> occlusion_tracker_pauser_;
|
||||||
|
|
||||||
|
std::unique_ptr<quick_pair::Mediator> quick_pair_mediator_;
|
||||||
|
|
||||||
base::ObserverList<ShellObserver>::Unchecked shell_observers_;
|
base::ObserverList<ShellObserver>::Unchecked shell_observers_;
|
||||||
|
|
||||||
base::WeakPtrFactory<Shell> weak_factory_{this};
|
base::WeakPtrFactory<Shell> weak_factory_{this};
|
||||||
|
Reference in New Issue
Block a user