| /* |
| * Copyright (C) 2014 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.support.v4.view; |
| |
| import android.content.res.ColorStateList; |
| import android.graphics.PorterDuff; |
| import android.view.View; |
| import android.view.WindowInsets; |
| |
| class ViewCompatLollipop { |
| |
| public static void setTransitionName(View view, String transitionName) { |
| view.setTransitionName(transitionName); |
| } |
| |
| public static String getTransitionName(View view) { |
| return view.getTransitionName(); |
| } |
| |
| public static void requestApplyInsets(View view) { |
| view.requestApplyInsets(); |
| } |
| |
| public static void setElevation(View view, float elevation) { |
| view.setElevation(elevation); |
| } |
| |
| public static float getElevation(View view) { |
| return view.getElevation(); |
| } |
| |
| public static void setTranslationZ(View view, float translationZ) { |
| view.setTranslationZ(translationZ); |
| } |
| |
| public static float getTranslationZ(View view) { |
| return view.getTranslationZ(); |
| } |
| |
| public static void setOnApplyWindowInsetsListener(View view, |
| final OnApplyWindowInsetsListener listener) { |
| view.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { |
| @Override |
| public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) { |
| // Wrap the framework insets in our wrapper |
| WindowInsetsCompatApi21 insets = new WindowInsetsCompatApi21(windowInsets); |
| // Give the listener a chance to use the wrapped insets |
| insets = (WindowInsetsCompatApi21) listener.onApplyWindowInsets(view, insets); |
| // Return the unwrapped insets |
| return insets.unwrap(); |
| } |
| }); |
| } |
| |
| public static boolean isImportantForAccessibility(View view) { |
| return view.isImportantForAccessibility(); |
| } |
| |
| static ColorStateList getBackgroundTintList(View view) { |
| return view.getBackgroundTintList(); |
| } |
| |
| static void setBackgroundTintList(View view, ColorStateList tintList) { |
| view.setBackgroundTintList(tintList); |
| } |
| |
| static PorterDuff.Mode getBackgroundTintMode(View view) { |
| return view.getBackgroundTintMode(); |
| } |
| |
| static void setBackgroundTintMode(View view, PorterDuff.Mode mode) { |
| view.setBackgroundTintMode(mode); |
| } |
| |
| public static WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) { |
| if (insets instanceof WindowInsetsCompatApi21) { |
| // First unwrap the compat version so that we have the framework instance |
| WindowInsets unwrapped = ((WindowInsetsCompatApi21) insets).unwrap(); |
| // Now call onApplyWindowInsets |
| WindowInsets result = v.onApplyWindowInsets(unwrapped); |
| |
| if (result != unwrapped) { |
| // ...and return a newly wrapped compat insets instance if different |
| insets = new WindowInsetsCompatApi21(result); |
| } |
| } |
| return insets; |
| } |
| |
| public static WindowInsetsCompat dispatchApplyWindowInsets(View v, WindowInsetsCompat insets) { |
| if (insets instanceof WindowInsetsCompatApi21) { |
| // First unwrap the compat version so that we have the framework instance |
| WindowInsets unwrapped = ((WindowInsetsCompatApi21) insets).unwrap(); |
| // Now call dispatchApplyWindowInsets |
| WindowInsets result = v.dispatchApplyWindowInsets(unwrapped); |
| |
| if (result != unwrapped) { |
| // ...and return a newly wrapped compat insets instance if different |
| insets = new WindowInsetsCompatApi21(result); |
| } |
| } |
| return insets; |
| } |
| |
| public static void setNestedScrollingEnabled(View view, boolean enabled) { |
| view.setNestedScrollingEnabled(enabled); |
| } |
| |
| public static boolean isNestedScrollingEnabled(View view) { |
| return view.isNestedScrollingEnabled(); |
| } |
| |
| public static boolean startNestedScroll(View view, int axes) { |
| return view.startNestedScroll(axes); |
| } |
| |
| public static void stopNestedScroll(View view) { |
| view.stopNestedScroll(); |
| } |
| |
| public static boolean hasNestedScrollingParent(View view) { |
| return view.hasNestedScrollingParent(); |
| } |
| |
| public static boolean dispatchNestedScroll(View view, int dxConsumed, int dyConsumed, |
| int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow) { |
| return view.dispatchNestedScroll(dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, |
| offsetInWindow); |
| } |
| |
| public static boolean dispatchNestedPreScroll(View view, int dx, int dy, int[] consumed, |
| int[] offsetInWindow) { |
| return view.dispatchNestedPreScroll(dx, dy, consumed, offsetInWindow); |
| } |
| |
| public static boolean dispatchNestedFling(View view, float velocityX, float velocityY, |
| boolean consumed) { |
| return view.dispatchNestedFling(velocityX, velocityY, consumed); |
| } |
| |
| public static boolean dispatchNestedPreFling(View view, float velocityX, float velocityY) { |
| return view.dispatchNestedPreFling(velocityX, velocityY); |
| } |
| |
| public static float getZ(View view) { |
| return view.getZ(); |
| } |
| } |