chromium/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.components.browser_ui.accessibility;

import org.chromium.content_public.browser.BrowserContextHandle;

/**
 * An interface implemented by the embedder that allows the Accessibility Settings UI to access
 * embedder-specific logic.
 */
public interface AccessibilitySettingsDelegate {
    /** An interface to control a single integer preference. */
    interface IntegerPreferenceDelegate {
        /** @return int - Current value of the preference of this instance. */
        int getValue();

        /**
         * Sets a new value for the preference of this instance.
         * @param value
         */
        void setValue(int value);
    }

    /** @return The BrowserContextHandle that should be used to read and update settings. */
    BrowserContextHandle getBrowserContextHandle();

    /**
     * @return the InterPreferenceDelegate instance that should be used for reading and setting the
     * text size contrast value for accessibility settings. Return null to omit the preference.
     */
    IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate();
}