Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(631)

Unified Diff: chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc

Issue 2824703006: Add MetalayerMode to the palette. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
diff --git a/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc b/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
index 5666ce3bd0deea4e0c0be6820d5b923c074dd98a..be87b3b916cd651503407cd8da4ea61d6639f224 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
+++ b/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
@@ -41,6 +41,10 @@ void ScreenshotCallback(
} // namespace
// static
+const char ArcVoiceInteractionFrameworkService::kArcServiceName[] =
+ "arc::ArcVoiceInteractionFrameworkService";
+
+// static
bool ArcVoiceInteractionFrameworkService::IsVoiceInteractionEnabled() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kEnableVoiceInteraction);
@@ -48,7 +52,7 @@ bool ArcVoiceInteractionFrameworkService::IsVoiceInteractionEnabled() {
ArcVoiceInteractionFrameworkService::ArcVoiceInteractionFrameworkService(
ArcBridgeService* bridge_service)
- : ArcService(bridge_service), binding_(this) {
+ : ArcService(bridge_service), binding_(this), instance_ready_(false) {
arc_bridge_service()->voice_interaction_framework()->AddObserver(this);
}
@@ -70,6 +74,8 @@ void ArcVoiceInteractionFrameworkService::OnInstanceReady() {
ash::Shell::Get()->accelerator_controller()->Register(
{ui::Accelerator(ui::VKEY_A, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN)},
this);
+
+ instance_ready_ = true;
}
void ArcVoiceInteractionFrameworkService::OnInstanceClosed() {
@@ -82,12 +88,8 @@ bool ArcVoiceInteractionFrameworkService::AcceleratorPressed(
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (accelerator.IsShiftDown()) {
- mojom::VoiceInteractionFrameworkInstance* framework_instance =
- ARC_GET_INSTANCE_FOR_METHOD(
- arc_bridge_service()->voice_interaction_framework(),
- ToggleMetalayer);
- DCHECK(framework_instance);
- framework_instance->ToggleMetalayer();
+ // Temporary, used for debugging. Does not update the palette state.
+ ShowMetalayer(true);
} else {
mojom::VoiceInteractionFrameworkInstance* framework_instance =
ARC_GET_INSTANCE_FOR_METHOD(
@@ -136,4 +138,42 @@ void ArcVoiceInteractionFrameworkService::CaptureFullscreen(
base::Bind(&ScreenshotCallback, callback));
}
+void ArcVoiceInteractionFrameworkService::OnMetalayerComplete() {
+ if (metalayer_complete_.is_null())
+ return;
+ metalayer_complete_.Run();
Luis Héctor Chávez 2017/04/19 15:48:28 nit: base::ResetAndReturn(&metalayer_closed_callba
Vladislav Kaznacheev 2017/04/19 23:42:59 Done.
+ metalayer_complete_ = base::Closure();
+}
+
+bool ArcVoiceInteractionFrameworkService::IsReady() {
+ return instance_ready_;
+}
+
+void ArcVoiceInteractionFrameworkService::ShowMetalayer(
+ const base::Closure& done) {
+ if (!metalayer_complete_.is_null()) {
+ LOG(ERROR) << "Metalayer is already enabled";
+ return;
+ }
+ metalayer_complete_ = done;
+ ShowMetalayer(true);
+}
+
+void ArcVoiceInteractionFrameworkService::HideMetalayer() {
+ if (metalayer_complete_.is_null()) {
+ LOG(ERROR) << "Metalayer is already hidden";
+ return;
+ }
+ metalayer_complete_ = base::Closure();
+ ShowMetalayer(false);
+}
+
+void ArcVoiceInteractionFrameworkService::ShowMetalayer(bool visible) {
+ mojom::VoiceInteractionFrameworkInstance* framework_instance =
+ ARC_GET_INSTANCE_FOR_METHOD(
+ arc_bridge_service()->voice_interaction_framework(), ShowMetalayer);
+ DCHECK(framework_instance);
Luis Héctor Chávez 2017/04/19 15:48:28 substitute this with if (visible && !framework_in
Vladislav Kaznacheev 2017/04/19 23:42:58 Substituted with a slight change.
+ framework_instance->ShowMetalayer(visible);
+}
+
} // namespace arc

Powered by Google App Engine
This is Rietveld 408576698