• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright 2013 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 
17 
18 
19 
20 package com.example.android.batchstepsensor.cardstream;
21 
22 import android.animation.ObjectAnimator;
23 import android.content.Context;
24 import android.view.View;
25 
26 /**
27  * An abstract class which defines animators for CardStreamLinearLayout.
28  */
29 abstract class CardStreamAnimator {
30 
31     protected float mSpeedFactor = 1.f;
32 
33     /**
34      * Set speed factor of animations. Higher value means longer duration & slow animation.
35      *
36      * @param speedFactor speed type 1: SLOW, 2: NORMAL, 3:FAST
37      */
setSpeedFactor(float speedFactor)38     public void setSpeedFactor(float speedFactor) {
39         mSpeedFactor = speedFactor;
40     }
41 
42     /**
43      * Define initial animation of each child which fired when a user rotate a screen.
44      *
45      * @param context
46      * @return ObjectAnimator for initial animation
47      */
getInitalAnimator(Context context)48     public abstract ObjectAnimator getInitalAnimator(Context context);
49 
50     /**
51      * Define disappearing animation of a child which fired when a view is removed programmatically
52      *
53      * @param context
54      * @return ObjectAnimator for disappearing animation
55      */
getDisappearingAnimator(Context context)56     public abstract ObjectAnimator getDisappearingAnimator(Context context);
57 
58     /**
59      * Define appearing animation of a child which fired when a view is added programmatically
60      *
61      * @param context
62      * @return ObjectAnimator for appearing animation
63      */
getAppearingAnimator(Context context)64     public abstract ObjectAnimator getAppearingAnimator(Context context);
65 
66     /**
67      * Define swipe-in (back to the origin position) animation of a child
68      * which fired when a view is not moved enough to be removed.
69      *
70      * @param view   target view
71      * @param deltaX delta distance by x-axis
72      * @param deltaY delta distance by y-axis
73      * @return ObjectAnimator for swipe-in animation
74      */
getSwipeInAnimator(View view, float deltaX, float deltaY)75     public abstract ObjectAnimator getSwipeInAnimator(View view, float deltaX, float deltaY);
76 
77     /**
78      * Define swipe-out animation of a child
79      * which fired when a view is removing by a user swipe action.
80      *
81      * @param view   target view
82      * @param deltaX delta distance by x-axis
83      * @param deltaY delta distance by y-axis
84      * @return ObjectAnimator for swipe-out animation
85      */
getSwipeOutAnimator(View view, float deltaX, float deltaY)86     public abstract ObjectAnimator getSwipeOutAnimator(View view, float deltaX, float deltaY);
87 
88     /**
89      * A simple CardStreamAnimator implementation which is used to turn animations off.
90      */
91     public static class EmptyAnimator extends CardStreamAnimator {
92 
93         @Override
getInitalAnimator(Context context)94         public ObjectAnimator getInitalAnimator(Context context) {
95             return null;
96         }
97 
98         @Override
getDisappearingAnimator(Context context)99         public ObjectAnimator getDisappearingAnimator(Context context) {
100             return null;
101         }
102 
103         @Override
getAppearingAnimator(Context context)104         public ObjectAnimator getAppearingAnimator(Context context) {
105             return null;
106         }
107 
108         @Override
getSwipeInAnimator(View view, float deltaX, float deltaY)109         public ObjectAnimator getSwipeInAnimator(View view, float deltaX, float deltaY) {
110             return null;
111         }
112 
113         @Override
getSwipeOutAnimator(View view, float deltaX, float deltaY)114         public ObjectAnimator getSwipeOutAnimator(View view, float deltaX, float deltaY) {
115             return null;
116         }
117     }
118 
119 }
120 
121