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}