chromium/chrome/browser/hub/android/java/src/org/chromium/chrome/browser/hub/HubLayoutAnimationType.java

// Copyright 2023 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.hub;

import androidx.annotation.IntDef;

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

/** The type of animation the {@link HubLayout} is playing. */
@IntDef({
    HubLayoutAnimationType.NONE,
    HubLayoutAnimationType.FADE_IN,
    HubLayoutAnimationType.FADE_OUT,
    HubLayoutAnimationType.SHRINK_TAB,
    HubLayoutAnimationType.EXPAND_TAB,
    HubLayoutAnimationType.TRANSLATE_UP,
    HubLayoutAnimationType.TRANSLATE_DOWN,
    HubLayoutAnimationType.EXPAND_NEW_TAB,
    HubLayoutAnimationType.COUNT
})
@Retention(RetentionPolicy.SOURCE)
public @interface HubLayoutAnimationType {
    /** Show the Hub immediately with no transition. */
    int NONE = 0;

    /** Show the Hub via a crossfade. */
    int FADE_IN = 1;

    /** Hide the Hub via a crossfade out. */
    int FADE_OUT = 2;

    /** Shrink from a tab to the tab switcher pane. */
    int SHRINK_TAB = 3;

    /** Expand from a tab switcher tab card out to the current tab. */
    int EXPAND_TAB = 4;

    /** Translate the entire Hub Android view upward. */
    int TRANSLATE_UP = 5;

    /** Translate the entire Hub Android view downward. */
    int TRANSLATE_DOWN = 6;

    /** Hide by playing an animation expanding to show a new Tab. */
    int EXPAND_NEW_TAB = 7;

    /** Must be last. */
    int COUNT = 8;
}