ViewCompat.java revision 47dc57337c13a2760ea3512ad84d6aa9f24ccd28
1/* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.support.v4.view; 18 19import android.view.View; 20 21/** 22 * Helper for accessing newer features in View. 23 */ 24public class ViewCompat { 25 interface ViewCompatImpl { 26 public boolean canScrollHorizontally(View v, int direction); 27 public boolean canScrollVertically(View v, int direction); 28 } 29 30 static class BaseViewCompatImpl implements ViewCompatImpl { 31 public boolean canScrollHorizontally(View v, int direction) { 32 return false; 33 } 34 public boolean canScrollVertically(View v, int direction) { 35 return false; 36 } 37 } 38 39 static class ICSViewCompatImpl implements ViewCompatImpl { 40 public boolean canScrollHorizontally(View v, int direction) { 41 return ViewCompatICS.canScrollHorizontally(v, direction); 42 } 43 public boolean canScrollVertically(View v, int direction) { 44 return ViewCompatICS.canScrollVertically(v, direction); 45 } 46 } 47 48 static final ViewCompatImpl IMPL; 49 static { 50 // TODO Change this to a real check once ICS's API level is finalized 51 if (android.os.Build.VERSION.CODENAME.equals("IceCreamSandwich")) { 52 //if (android.os.Build.VERSION.SDK_INT >= 14) { 53 IMPL = new ICSViewCompatImpl(); 54 } else { 55 IMPL = new BaseViewCompatImpl(); 56 } 57 } 58 59 public static boolean canScrollHorizontally(View v, int direction) { 60 return IMPL.canScrollHorizontally(v, direction); 61 } 62 63 public static boolean canScrollVertically(View v, int direction) { 64 return IMPL.canScrollVertically(v, direction); 65 } 66} 67