910e62b5创建于 1月15日历史提交
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ash/lobster/lobster_client_impl.h"

#include <string>
#include <utility>

#include "ash/public/cpp/lobster/lobster_enums.h"
#include "ash/public/cpp/lobster/lobster_system_state.h"
#include "ash/public/cpp/lobster/lobster_text_input_context.h"
#include "chrome/browser/ash/lobster/lobster_service.h"
#include "chrome/browser/ash/lobster/lobster_system_state_provider.h"
#include "components/account_id/account_id.h"

LobsterClientImpl::LobsterClientImpl(LobsterService* service)
    : service_(service) {}

LobsterClientImpl::~LobsterClientImpl() = default;

void LobsterClientImpl::SetActiveSession(ash::LobsterSession* session) {
  service_->SetActiveSession(session);
}

ash::LobsterSystemState LobsterClientImpl::GetSystemState(
    const ash::LobsterTextInputContext& text_input_context) {
  return service_->system_state_provider()->GetSystemState(text_input_context);
}

void LobsterClientImpl::RequestCandidates(
    const std::string& query,
    int num_candidates,
    ash::RequestCandidatesCallback callback) {
  service_->RequestCandidates(query, num_candidates, std::move(callback));
}

void LobsterClientImpl::InflateCandidate(
    uint32_t seed,
    const std::string& query,
    ash::InflateCandidateCallback callback) {
  service_->InflateCandidate(seed, query, std::move(callback));
}

void LobsterClientImpl::ShowDisclaimerUI() {
  return service_->ShowDisclaimerUI();
}

void LobsterClientImpl::LoadUI(std::optional<std::string> query,
                               ash::LobsterMode mode,
                               const gfx::Rect& caret_bounds) {
  service_->LoadUI(query, mode, caret_bounds);
}

void LobsterClientImpl::ShowUI() {
  service_->ShowUI();
}

void LobsterClientImpl::CloseUI() {
  service_->CloseUI();
}

void LobsterClientImpl::QueueInsertion(const std::string& image_bytes,
                                       StatusCallback insert_status_callback) {
  service_->QueueInsertion(image_bytes, std::move(insert_status_callback));
}

const AccountId& LobsterClientImpl::GetAccountId() {
  return service_->GetAccountId();
}

void LobsterClientImpl::AnnounceLater(const std::u16string& message) {
  service_->AnnounceLater(message);
}