1 // Copyright 2018 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 ASH_PUBLIC_CPP_ASSISTANT_ASSISTANT_STATE_H_ 6 #define ASH_PUBLIC_CPP_ASSISTANT_ASSISTANT_STATE_H_ 7 8 #include <string> 9 10 #include "ash/public/cpp/ash_public_export.h" 11 #include "ash/public/cpp/assistant/assistant_state_base.h" 12 #include "base/macros.h" 13 #include "mojo/public/cpp/bindings/pending_receiver.h" 14 #include "mojo/public/cpp/bindings/pending_remote.h" 15 #include "mojo/public/cpp/bindings/receiver_set.h" 16 #include "mojo/public/cpp/bindings/remote_set.h" 17 18 namespace ash { 19 20 // Interface for a class that holds Assistant related prefs and states. 21 class ASH_PUBLIC_EXPORT AssistantState : public AssistantStateBase { 22 public: 23 static AssistantState* Get(); 24 25 AssistantState(); 26 ~AssistantState() override; 27 28 void NotifyStatusChanged(chromeos::assistant::AssistantStatus status); 29 void NotifyFeatureAllowed(chromeos::assistant::AssistantAllowedState state); 30 void NotifyLocaleChanged(const std::string& locale); 31 void NotifyArcPlayStoreEnabledChanged(bool enabled); 32 void NotifyLockedFullScreenStateChanged(bool enabled); 33 34 private: 35 DISALLOW_COPY_AND_ASSIGN(AssistantState); 36 }; 37 38 } // namespace ash 39 40 #endif // ASH_PUBLIC_CPP_ASSISTANT_ASSISTANT_STATE_H_ 41