1317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki/* 2317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * Copyright (C) 2017 The Android Open Source Project 3317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * 4317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * Licensed under the Apache License, Version 2.0 (the "License"); 5317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * you may not use this file except in compliance with the License. 6317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * You may obtain a copy of the License at 7317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * 8317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * http://www.apache.org/licenses/LICENSE-2.0 9317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * 10317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * Unless required by applicable law or agreed to in writing, software 11317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * distributed under the License is distributed on an "AS IS" BASIS, 12317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * See the License for the specific language governing permissions and 14317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki * limitations under the License. 15317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki */ 16317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 17317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Arakipackage android.support.transition; 18317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 19317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Arakiimport android.animation.ObjectAnimator; 20317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Arakiimport android.graphics.Path; 217bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Arakiimport android.graphics.PointF; 22317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Arakiimport android.os.Build; 23317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Arakiimport android.util.Property; 24317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 25317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Arakiclass ObjectAnimatorUtils { 26317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 27317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki private static final ObjectAnimatorUtilsImpl IMPL; 28317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 29317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki static { 30317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki if (Build.VERSION.SDK_INT >= 21) { 31317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki IMPL = new ObjectAnimatorUtilsApi21(); 32317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki } else { 33317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki IMPL = new ObjectAnimatorUtilsApi14(); 34317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki } 35317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki } 36317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 377bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki static <T> ObjectAnimator ofPointF(T target, Property<T, PointF> property, Path path) { 387bd2fbcdcfeb9014c16fd78446c34a4eef489626Yuichi Araki return IMPL.ofPointF(target, property, path); 39317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki } 40317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki 41317d4bb802dbd80c9ddf1382e037769e58dff919Yuichi Araki} 42