blob: 70d29f3fc4849a04d967994cfd4fab2ff0157153 [file] [log] [blame]
// 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.
#ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_KEYBOARD_ACCESSORY_CONTROLLER_H_
#define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_KEYBOARD_ACCESSORY_CONTROLLER_H_
#include <string>
#include <vector>
#include "chrome/browser/ui/autofill/autofill_suggestion_controller.h"
namespace autofill {
// The interface implemented by Android implementations of the
// `AutofillSuggestionController` - that is, the methods found below are
// specific to Android and used to control the keyboard accessory.
class AutofillKeyboardAccessoryController
: public AutofillSuggestionController {
public:
struct RemovalConfirmationText {
RemovalConfirmationText();
~RemovalConfirmationText();
std::u16string title;
std::u16string body;
std::u16string body_link;
std::u16string confirm_button_text;
};
// Returns all the labels of the suggestion at the given `row` index. The
// labels are presented as a N*M matrix, and the position of the text in the
// matrix decides where the text will be shown on the UI. (e.g. The text
// labels[1][2] will be shown on the second line, third column in the grid
// view of label).
virtual std::vector<std::vector<Suggestion::Text>> GetSuggestionLabelsAt(
int row) const = 0;
// Checks if the item at `index` can be removed.
//
// If removable, this populates the non-null output parameter with
// user-facing text for a confirmation dialog (e.g., for a "Remove" or
// "Delete" action).
//
// Returns `true` if the item can be removed and the text was populated, or
// `false` otherwise.
virtual bool GetRemovalConfirmationText(
int index,
RemovalConfirmationText* removal_text) = 0;
};
} // namespace autofill
#endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_KEYBOARD_ACCESSORY_CONTROLLER_H_