package com.kaichunlin.transition.adapter; import android.app.Activity; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.Menu; /** */ public interface MenuOptionHandler { AdapterState getAdapterState(); /** * Syncs current state of Menu with transitions * * @param activity * @param menu */ void onCreateOptionsMenu(@NonNull Activity activity, @NonNull Menu menu); /** * Syncs current state of Menu with transitions * * @param activity * @param menu * @param adapterState a different {@link AdapterState} than the one retrieved by calling getAdapterState() */ void onCreateOptionsMenu(@NonNull Activity activity, @NonNull Menu menu, @NonNull AdapterState adapterState); /** * Sets transitions to {@link android.view.MenuItem} in both the opened state and closed state with only * the opened state's transition specified, which is used to build menu transition in the closed state * * @param activity * @param openConfig */ void setupOption(@NonNull Activity activity, @Nullable MenuOptionConfiguration openConfig); /** * Sets transitions to {@link android.view.MenuItem} in the opened state * * @param activity * @param openConfig */ void setupOpenOption(@NonNull Activity activity, @Nullable MenuOptionConfiguration openConfig); /** * Sets transitions to {@link android.view.MenuItem} in the closed state * * @param activity * @param closeConfig */ void setupCloseOption(@NonNull Activity activity, @Nullable MenuOptionConfiguration closeConfig); /** * Sets transitions to {@link android.view.MenuItem} in both the opened state and closed state * * @param activity * @param openConfig * @param closeConfig */ void setupOptions(@NonNull Activity activity, @Nullable MenuOptionConfiguration openConfig, @Nullable MenuOptionConfiguration closeConfig); /** * Clears menu transition */ void clearOptions(); MenuOptionConfiguration getOpenConfig(); MenuOptionConfiguration getCloseConfig(); }