1ea4f700ac38424954c56df5138ff794def50b019Chris Banes/*
2ea4f700ac38424954c56df5138ff794def50b019Chris Banes * Copyright (C) 2014 The Android Open Source Project
3ea4f700ac38424954c56df5138ff794def50b019Chris Banes *
4ea4f700ac38424954c56df5138ff794def50b019Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
5ea4f700ac38424954c56df5138ff794def50b019Chris Banes * you may not use this file except in compliance with the License.
6ea4f700ac38424954c56df5138ff794def50b019Chris Banes * You may obtain a copy of the License at
7ea4f700ac38424954c56df5138ff794def50b019Chris Banes *
8ea4f700ac38424954c56df5138ff794def50b019Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
9ea4f700ac38424954c56df5138ff794def50b019Chris Banes *
10ea4f700ac38424954c56df5138ff794def50b019Chris Banes * Unless required by applicable law or agreed to in writing, software
11ea4f700ac38424954c56df5138ff794def50b019Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
12ea4f700ac38424954c56df5138ff794def50b019Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ea4f700ac38424954c56df5138ff794def50b019Chris Banes * See the License for the specific language governing permissions and
14ea4f700ac38424954c56df5138ff794def50b019Chris Banes * limitations under the License.
15ea4f700ac38424954c56df5138ff794def50b019Chris Banes */
16ea4f700ac38424954c56df5138ff794def50b019Chris Banes
17ea4f700ac38424954c56df5138ff794def50b019Chris Banespackage android.support.v4.view;
18ea4f700ac38424954c56df5138ff794def50b019Chris Banes
19ea4f700ac38424954c56df5138ff794def50b019Chris Banesimport android.view.View;
20ea4f700ac38424954c56df5138ff794def50b019Chris Banes
21ea4f700ac38424954c56df5138ff794def50b019Chris Banes/**
22ea4f700ac38424954c56df5138ff794def50b019Chris Banes * Listener for applying window insets on a view in a custom way.
23ea4f700ac38424954c56df5138ff794def50b019Chris Banes *
24ea4f700ac38424954c56df5138ff794def50b019Chris Banes * <p>Apps may choose to implement this interface if they want to apply custom policy
25ea4f700ac38424954c56df5138ff794def50b019Chris Banes * to the way that window insets are treated for a view. If an OnApplyWindowInsetsListener
26ea4f700ac38424954c56df5138ff794def50b019Chris Banes * is set, it's
27ea4f700ac38424954c56df5138ff794def50b019Chris Banes * {@link #onApplyWindowInsets(android.view.View, WindowInsetsCompat) onApplyWindowInsets}
28ea4f700ac38424954c56df5138ff794def50b019Chris Banes * method will be called instead of the View's own {@code onApplyWindowInsets} method.
29ea4f700ac38424954c56df5138ff794def50b019Chris Banes * The listener may optionally call the parameter View's <code>onApplyWindowInsets</code>
30ea4f700ac38424954c56df5138ff794def50b019Chris Banes * method to apply the View's normal behavior as part of its own.</p>
31ea4f700ac38424954c56df5138ff794def50b019Chris Banes */
32ea4f700ac38424954c56df5138ff794def50b019Chris Banespublic interface OnApplyWindowInsetsListener {
33ea4f700ac38424954c56df5138ff794def50b019Chris Banes    /**
34ea4f700ac38424954c56df5138ff794def50b019Chris Banes     * When {@link ViewCompat#setOnApplyWindowInsetsListener(View, OnApplyWindowInsetsListener) set}
35ea4f700ac38424954c56df5138ff794def50b019Chris Banes     * on a View, this listener method will be called instead of the view's own
36ea4f700ac38424954c56df5138ff794def50b019Chris Banes     * {@code onApplyWindowInsets} method.
37ea4f700ac38424954c56df5138ff794def50b019Chris Banes     *
38ea4f700ac38424954c56df5138ff794def50b019Chris Banes     * @param v The view applying window insets
39ea4f700ac38424954c56df5138ff794def50b019Chris Banes     * @param insets The insets to apply
40ea4f700ac38424954c56df5138ff794def50b019Chris Banes     * @return The insets supplied, minus any insets that were consumed
41ea4f700ac38424954c56df5138ff794def50b019Chris Banes     */
42ea4f700ac38424954c56df5138ff794def50b019Chris Banes    public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets);
43ea4f700ac38424954c56df5138ff794def50b019Chris Banes}