// Copyright 2020 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.

#include "weblayer/browser/tts_environment_android_impl.h"

#include "base/callback.h"

namespace weblayer {

TtsEnvironmentAndroidImpl::TtsEnvironmentAndroidImpl() = default;

TtsEnvironmentAndroidImpl::~TtsEnvironmentAndroidImpl() = default;

bool TtsEnvironmentAndroidImpl::CanSpeakUtterancesFromHiddenWebContents() {
  // For simplicity's sake, disallow playing utterances in hidden WebContents.
  // Other options are to allow this, and instead cancel any utterances when
  // all browsers are paused.
  return false;
}

bool TtsEnvironmentAndroidImpl::CanSpeakNow() {
  // Always return true, as by the time we get here we know the WebContents
  // is visible (because CanSpeakUtterancesFromHiddenWebContents() returns
  // false). Further, when the fragment is paused/stopped the WebContents is
  // hidden, which triggers the utterance to stop (because
  // CanSpeakUtterancesFromHiddenWebContents() returns false).
  return true;
}

void TtsEnvironmentAndroidImpl::SetCanSpeakNowChangedCallback(
    base::RepeatingClosure callback) {
  // As CanSpeakNow() always returns true, there is nothing to do here.
}

}  // namespace weblayer
