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