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

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

Issue 2824703006: Add MetalayerMode to the palette. (Closed)
Patch Set: Addressed comments 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..a8d904c5924652eb9d97264dbbbc9156564fd3db 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);
@@ -75,6 +79,8 @@ void ArcVoiceInteractionFrameworkService::OnInstanceReady() {
void ArcVoiceInteractionFrameworkService::OnInstanceClosed() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
ash::Shell::Get()->accelerator_controller()->UnregisterAll(this);
+ if (!metalayer_closed_callback_.is_null())
+ base::ResetAndReturn(&metalayer_closed_callback_).Run();
}
bool ArcVoiceInteractionFrameworkService::AcceleratorPressed(
@@ -82,12 +88,14 @@ bool ArcVoiceInteractionFrameworkService::AcceleratorPressed(
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (accelerator.IsShiftDown()) {
+ // Temporary, used for debugging.
+ // Does not take into account or update the palette state.
mojom::VoiceInteractionFrameworkInstance* framework_instance =
ARC_GET_INSTANCE_FOR_METHOD(
arc_bridge_service()->voice_interaction_framework(),
- ToggleMetalayer);
+ SetMetalayerVisibility);
DCHECK(framework_instance);
- framework_instance->ToggleMetalayer();
+ framework_instance->SetMetalayerVisibility(true);
} else {
mojom::VoiceInteractionFrameworkInstance* framework_instance =
ARC_GET_INSTANCE_FOR_METHOD(
@@ -136,4 +144,49 @@ void ArcVoiceInteractionFrameworkService::CaptureFullscreen(
base::Bind(&ScreenshotCallback, callback));
}
+void ArcVoiceInteractionFrameworkService::OnMetalayerComplete() {
Luis Héctor Chávez 2017/04/20 16:03:26 nit: DCHECK_CURRENTLY_ON(content::BrowserThread::U
Vladislav Kaznacheev 2017/04/20 17:54:55 Done.
+ if (!metalayer_closed_callback_.is_null())
+ base::ResetAndReturn(&metalayer_closed_callback_).Run();
+}
+
+bool ArcVoiceInteractionFrameworkService::HasMetalayer() {
Luis Héctor Chávez 2017/04/20 16:03:26 nit: DCHECK_CURRENTLY_ON(content::BrowserThread::U
Vladislav Kaznacheev 2017/04/20 17:54:55 Done.
+ mojom::VoiceInteractionFrameworkInstance* framework_instance =
+ ARC_GET_INSTANCE_FOR_METHOD(
+ arc_bridge_service()->voice_interaction_framework(),
+ SetMetalayerVisibility);
+ return framework_instance;
+}
+
+void ArcVoiceInteractionFrameworkService::ShowMetalayer(
+ const base::Closure& done) {
Luis Héctor Chávez 2017/04/20 16:03:26 nit: DCHECK_CURRENTLY_ON(content::BrowserThread::U
Vladislav Kaznacheev 2017/04/20 17:54:55 Done.
+ if (!metalayer_closed_callback_.is_null()) {
+ LOG(ERROR) << "Metalayer is already enabled";
+ return;
+ }
+ metalayer_closed_callback_ = done;
+ SetMetalayerVisibility(true);
+}
+
+void ArcVoiceInteractionFrameworkService::HideMetalayer() {
Luis Héctor Chávez 2017/04/20 16:03:26 nit: DCHECK_CURRENTLY_ON(content::BrowserThread::U
Vladislav Kaznacheev 2017/04/20 17:54:55 Done.
+ if (metalayer_closed_callback_.is_null()) {
+ LOG(ERROR) << "Metalayer is already hidden";
+ return;
+ }
+ metalayer_closed_callback_ = base::Closure();
+ SetMetalayerVisibility(false);
+}
+
+void ArcVoiceInteractionFrameworkService::SetMetalayerVisibility(bool visible) {
Luis Héctor Chávez 2017/04/20 16:03:26 nit: DCHECK_CURRENTLY_ON(content::BrowserThread::U
Vladislav Kaznacheev 2017/04/20 17:54:55 Done.
+ mojom::VoiceInteractionFrameworkInstance* framework_instance =
+ ARC_GET_INSTANCE_FOR_METHOD(
+ arc_bridge_service()->voice_interaction_framework(),
+ SetMetalayerVisibility);
+ if (!framework_instance) {
+ if (!metalayer_closed_callback_.is_null())
+ base::ResetAndReturn(&metalayer_closed_callback_).Run();
+ return;
+ }
+ framework_instance->SetMetalayerVisibility(visible);
+}
+
} // namespace arc

Powered by Google App Engine
This is Rietveld 408576698