1d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase/*
2d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * Copyright (C) 2014 The Android Open Source Project
3d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase *
4d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * Licensed under the Apache License, Version 2.0 (the "License");
5d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * you may not use this file except in compliance with the License.
6d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * You may obtain a copy of the License at
7d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase *
8d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase *      http://www.apache.org/licenses/LICENSE-2.0
9d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase *
10d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * Unless required by applicable law or agreed to in writing, software
11d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * distributed under the License is distributed on an "AS IS" BASIS,
12d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * See the License for the specific language governing permissions and
14d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase * limitations under the License.
15d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase */
16d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haasepackage android.support.v4.view;
17d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase
18ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haaseimport android.animation.Animator;
19ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haaseimport android.animation.AnimatorListenerAdapter;
20d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haaseimport android.view.View;
21d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase
22d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haaseclass ViewPropertyAnimatorCompatJB {
23d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase
24d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase    public static void withStartAction(View view, Runnable runnable) {
25d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase        view.animate().withStartAction(runnable);
26d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase    }
27d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase
28d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase    public static void withEndAction(View view, Runnable runnable) {
29d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase        view.animate().withEndAction(runnable);
30d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase    }
31d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase
32d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase    public static void withLayer(View view) {
33d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase        view.animate().withLayer();
34d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase    }
35d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase
36ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase    public static void setListener(final View view,
37ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase            final ViewPropertyAnimatorListener listener) {
38ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase        if (listener != null) {
39ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase            view.animate().setListener(new AnimatorListenerAdapter() {
40ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                @Override
41ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                public void onAnimationCancel(Animator animation) {
42ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                    listener.onAnimationCancel(view);
43ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                }
44ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase
45ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                @Override
46ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                public void onAnimationEnd(Animator animation) {
47ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                    listener.onAnimationEnd(view);
48ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                }
49ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase
50ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                @Override
51ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                public void onAnimationStart(Animator animation) {
52ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                    listener.onAnimationStart(view);
53ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase                }
54ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase            });
55ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase        } else {
56ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase            view.animate().setListener(null);
57ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase        }
58ead7065c8e987fefca4d0d850d824fb7d7bce677Chet Haase    }
59d7d27e9ebe5c7325e67e1a8af265378bd2056cadChet Haase}
60