11fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell/* 21fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * Copyright (C) 2015 The Android Open Source Project 31fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * 41fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 51fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * you may not use this file except in compliance with the License. 61fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * You may obtain a copy of the License at 71fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * 81fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * http://www.apache.org/licenses/LICENSE-2.0 91fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * 101fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * Unless required by applicable law or agreed to in writing, software 111fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * distributed under the License is distributed on an "AS IS" BASIS, 121fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * See the License for the specific language governing permissions and 141fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell * limitations under the License. 151fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell */ 161fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 171fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 181fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powellpackage android.support.v4.view; 191fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 201fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powellimport android.util.Log; 211fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powellimport android.view.View; 221fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powellimport android.view.ViewParent; 231fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 241fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powellclass ViewParentCompatLollipop { 251fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell private static final String TAG = "ViewParentCompat"; 261fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 271fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static boolean onStartNestedScroll(ViewParent parent, View child, View target, 281fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell int nestedScrollAxes) { 291fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 301fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell return parent.onStartNestedScroll(child, target, nestedScrollAxes); 311fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 321fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 331fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onStartNestedScroll", e); 341fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell return false; 351fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 361fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 371fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 381fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static void onNestedScrollAccepted(ViewParent parent, View child, View target, 391fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell int nestedScrollAxes) { 401fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 411fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell parent.onNestedScrollAccepted(child, target, nestedScrollAxes); 421fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 431fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 441fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onNestedScrollAccepted", e); 451fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 461fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 471fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 481fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static void onStopNestedScroll(ViewParent parent, View target) { 491fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 501fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell parent.onStopNestedScroll(target); 511fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 521fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 531fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onStopNestedScroll", e); 541fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 551fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 561fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 571fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static void onNestedScroll(ViewParent parent, View target, int dxConsumed, 581fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell int dyConsumed, int dxUnconsumed, int dyUnconsumed) { 591fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 601fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell parent.onNestedScroll(target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed); 611fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 621fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 631fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onNestedScroll", e); 641fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 651fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 661fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 671fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static void onNestedPreScroll(ViewParent parent, View target, int dx, int dy, 681fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell int[] consumed) { 691fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 701fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell parent.onNestedPreScroll(target, dx, dy, consumed); 711fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 721fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 731fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onNestedPreScroll", e); 741fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 751fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 761fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 771fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static boolean onNestedFling(ViewParent parent, View target, float velocityX, 781fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell float velocityY, boolean consumed) { 791fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 801fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell return parent.onNestedFling(target, velocityX, velocityY, consumed); 811fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 821fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 831fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onNestedFling", e); 841fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell return false; 851fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 861fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 871fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell 881fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell public static boolean onNestedPreFling(ViewParent parent, View target, float velocityX, 891fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell float velocityY) { 901fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell try { 911fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell return parent.onNestedPreFling(target, velocityX, velocityY); 921fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } catch (AbstractMethodError e) { 931fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell Log.e(TAG, "ViewParent " + parent + " does not implement interface " + 941fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell "method onNestedPreFling", e); 951fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell return false; 961fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 971fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell } 981fcce4485ef99aca928ebfb877859c5ecd47716cAdam Powell} 99