chromium/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/optional_button/OptionalButtonConstants.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.chrome.browser.toolbar.optional_button;

import androidx.annotation.IntDef;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/** Defines constants used by optional button. */
public class OptionalButtonConstants {
    /**
     * Defines the different transition types for optional button, they are used as arguments to the
     * transition started/finished callbacks.
     */
    @IntDef({
        TransitionType.SWAPPING,
        TransitionType.SHOWING,
        TransitionType.HIDING,
        TransitionType.EXPANDING_ACTION_CHIP,
        TransitionType.COLLAPSING_ACTION_CHIP,
        TransitionType.NONE
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface TransitionType {
        /** Transitioning from one icon to another. */
        int SWAPPING = 0;

        /** Transitioning from hidden to showing an icon. */
        int SHOWING = 1;

        /** Transitioning from showing an icon to hidden. */
        int HIDING = 2;

        /**
         * Transitioning from showing an icon to showing another as an action chip (rectangular
         * button with a label).
         */
        int EXPANDING_ACTION_CHIP = 3;

        /** Transitioning from an expanded action chip to the same icon as a regular button. */
        int COLLAPSING_ACTION_CHIP = 4;

        int NONE = 5;
    }
}