.class public Lcom/nineoldandroids/animation/PropertyValuesHolder; .super Ljava/lang/Object; .source "PropertyValuesHolder.java" # interfaces .implements Ljava/lang/Cloneable; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/nineoldandroids/animation/PropertyValuesHolder$1;, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; } .end annotation # static fields .field private static DOUBLE_VARIANTS:[Ljava/lang/Class; .field private static FLOAT_VARIANTS:[Ljava/lang/Class; .field private static INTEGER_VARIANTS:[Ljava/lang/Class; .field private static final sFloatEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; .field private static final sGetterPropertyMap:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap", "<", "Ljava/lang/Class;", "Ljava/util/HashMap", "<", "Ljava/lang/String;", "Ljava/lang/reflect/Method;", ">;>;" } .end annotation .end field .field private static final sIntEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; .field private static final sSetterPropertyMap:Ljava/util/HashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/HashMap", "<", "Ljava/lang/Class;", "Ljava/util/HashMap", "<", "Ljava/lang/String;", "Ljava/lang/reflect/Method;", ">;>;" } .end annotation .end field # instance fields .field private mAnimatedValue:Ljava/lang/Object; .field private mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; .field private mGetter:Ljava/lang/reflect/Method; .field mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; .field protected mProperty:Lcom/nineoldandroids/util/Property; .field final mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; .field mPropertyName:Ljava/lang/String; .field mSetter:Ljava/lang/reflect/Method; .field final mTmpValueArray:[Ljava/lang/Object; .field mValueType:Ljava/lang/Class; # direct methods .method static constructor ()V .locals 8 .prologue const/4 v7, 0x4 const/4 v6, 0x3 const/4 v5, 0x2 const/4 v4, 0x1 const/4 v3, 0x0 new-instance v0, Lcom/nineoldandroids/animation/IntEvaluator; invoke-direct {v0}, Lcom/nineoldandroids/animation/IntEvaluator;->()V sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sIntEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; new-instance v0, Lcom/nineoldandroids/animation/FloatEvaluator; invoke-direct {v0}, Lcom/nineoldandroids/animation/FloatEvaluator;->()V sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sFloatEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; const/4 v0, 0x6 new-array v0, v0, [Ljava/lang/Class; sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class; aput-object v1, v0, v3 const-class v1, Ljava/lang/Float; aput-object v1, v0, v4 sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class; aput-object v1, v0, v5 sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; aput-object v1, v0, v6 const-class v1, Ljava/lang/Double; aput-object v1, v0, v7 const/4 v1, 0x5 const-class v2, Ljava/lang/Integer; aput-object v2, v0, v1 sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->FLOAT_VARIANTS:[Ljava/lang/Class; const/4 v0, 0x6 new-array v0, v0, [Ljava/lang/Class; sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; aput-object v1, v0, v3 const-class v1, Ljava/lang/Integer; aput-object v1, v0, v4 sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class; aput-object v1, v0, v5 sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class; aput-object v1, v0, v6 const-class v1, Ljava/lang/Float; aput-object v1, v0, v7 const/4 v1, 0x5 const-class v2, Ljava/lang/Double; aput-object v2, v0, v1 sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->INTEGER_VARIANTS:[Ljava/lang/Class; const/4 v0, 0x6 new-array v0, v0, [Ljava/lang/Class; sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class; aput-object v1, v0, v3 const-class v1, Ljava/lang/Double; aput-object v1, v0, v4 sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class; aput-object v1, v0, v5 sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; aput-object v1, v0, v6 const-class v1, Ljava/lang/Float; aput-object v1, v0, v7 const/4 v1, 0x5 const-class v2, Ljava/lang/Integer; aput-object v2, v0, v1 sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->DOUBLE_VARIANTS:[Ljava/lang/Class; new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sSetterPropertyMap:Ljava/util/HashMap; new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sGetterPropertyMap:Ljava/util/HashMap; return-void .end method .method private constructor (Lcom/nineoldandroids/util/Property;)V .locals 1 .param p1, "property" # Lcom/nineoldandroids/util/Property; .prologue const/4 v0, 0x0 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->()V iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; const/4 v0, 0x1 new-array v0, v0, [Ljava/lang/Object; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz p1, :cond_0 invoke-virtual {p1}, Lcom/nineoldandroids/util/Property;->getName()Ljava/lang/String; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; :cond_0 return-void .end method .method synthetic constructor (Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/PropertyValuesHolder$1;)V .locals 0 .param p1, "x0" # Lcom/nineoldandroids/util/Property; .param p2, "x1" # Lcom/nineoldandroids/animation/PropertyValuesHolder$1; .prologue invoke-direct {p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;)V return-void .end method .method private constructor (Ljava/lang/String;)V .locals 1 .param p1, "propertyName" # Ljava/lang/String; .prologue const/4 v0, 0x0 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->()V iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; const/4 v0, 0x1 new-array v0, v0, [Ljava/lang/Object; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; return-void .end method .method synthetic constructor (Ljava/lang/String;Lcom/nineoldandroids/animation/PropertyValuesHolder$1;)V .locals 0 .param p1, "x0" # Ljava/lang/String; .param p2, "x1" # Lcom/nineoldandroids/animation/PropertyValuesHolder$1; .prologue invoke-direct {p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Ljava/lang/String;)V return-void .end method .method static getMethodName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 3 .param p0, "prefix" # Ljava/lang/String; .param p1, "propertyName" # Ljava/lang/String; .prologue if-eqz p1, :cond_0 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v2 if-nez v2, :cond_1 .end local p0 # "prefix":Ljava/lang/String; :cond_0 :goto_0 return-object p0 .restart local p0 # "prefix":Ljava/lang/String; :cond_1 const/4 v2, 0x0 invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C move-result v2 invoke-static {v2}, Ljava/lang/Character;->toUpperCase(C)C move-result v0 .local v0, "firstLetter":C const/4 v2, 0x1 invoke-virtual {p1, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v1 .local v1, "theRest":Ljava/lang/String; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 goto :goto_0 .end method .method private getPropertyFunction(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; .locals 15 .param p1, "targetClass" # Ljava/lang/Class; .param p2, "prefix" # Ljava/lang/String; .param p3, "valueType" # Ljava/lang/Class; .prologue const/4 v8, 0x0 .local v8, "returnVal":Ljava/lang/reflect/Method; iget-object v12, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; move-object/from16 v0, p2 invoke-static {v0, v12}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->getMethodName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v7 .local v7, "methodName":Ljava/lang/String; const/4 v1, 0x0 .local v1, "args":[Ljava/lang/Class; if-nez p3, :cond_0 :try_start_0 move-object/from16 v0, p1 invoke-virtual {v0, v7, v1}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; :try_end_0 .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 move-result-object v8 :goto_0 move-object v9, v8 .end local v8 # "returnVal":Ljava/lang/reflect/Method; .local v9, "returnVal":Ljava/lang/reflect/Method; :goto_1 return-object v9 .end local v9 # "returnVal":Ljava/lang/reflect/Method; .restart local v8 # "returnVal":Ljava/lang/reflect/Method; :catch_0 move-exception v3 .local v3, "e":Ljava/lang/NoSuchMethodException; :try_start_1 move-object/from16 v0, p1 invoke-virtual {v0, v7, v1}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v8 const/4 v12, 0x1 invoke-virtual {v8, v12}, Ljava/lang/reflect/Method;->setAccessible(Z)V :try_end_1 .catch Ljava/lang/NoSuchMethodException; {:try_start_1 .. :try_end_1} :catch_1 goto :goto_0 :catch_1 move-exception v4 .local v4, "e2":Ljava/lang/NoSuchMethodException; const-string v12, "PropertyValuesHolder" new-instance v13, Ljava/lang/StringBuilder; invoke-direct {v13}, Ljava/lang/StringBuilder;->()V const-string v14, "Couldn\'t find no-arg method for property " invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v13 iget-object v14, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v13 const-string v14, ": " invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v13 invoke-virtual {v13, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v13 invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v13 invoke-static {v12, v13}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_0 .end local v3 # "e":Ljava/lang/NoSuchMethodException; .end local v4 # "e2":Ljava/lang/NoSuchMethodException; :cond_0 const/4 v12, 0x1 new-array v1, v12, [Ljava/lang/Class; iget-object v12, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v13, Ljava/lang/Float; invoke-virtual {v12, v13}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v12 if-eqz v12, :cond_1 sget-object v11, Lcom/nineoldandroids/animation/PropertyValuesHolder;->FLOAT_VARIANTS:[Ljava/lang/Class; .local v11, "typeVariants":[Ljava/lang/Class; :goto_2 move-object v2, v11 .local v2, "arr$":[Ljava/lang/Class; array-length v6, v2 .local v6, "len$":I const/4 v5, 0x0 .local v5, "i$":I :goto_3 if-ge v5, v6, :cond_4 aget-object v10, v2, v5 .local v10, "typeVariant":Ljava/lang/Class; const/4 v12, 0x0 aput-object v10, v1, v12 :try_start_2 move-object/from16 v0, p1 invoke-virtual {v0, v7, v1}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v8 iput-object v10, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; :try_end_2 .catch Ljava/lang/NoSuchMethodException; {:try_start_2 .. :try_end_2} :catch_2 move-object v9, v8 .end local v8 # "returnVal":Ljava/lang/reflect/Method; .restart local v9 # "returnVal":Ljava/lang/reflect/Method; goto :goto_1 .end local v2 # "arr$":[Ljava/lang/Class; .end local v5 # "i$":I .end local v6 # "len$":I .end local v9 # "returnVal":Ljava/lang/reflect/Method; .end local v10 # "typeVariant":Ljava/lang/Class; .end local v11 # "typeVariants":[Ljava/lang/Class; .restart local v8 # "returnVal":Ljava/lang/reflect/Method; :cond_1 iget-object v12, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v13, Ljava/lang/Integer; invoke-virtual {v12, v13}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v12 if-eqz v12, :cond_2 sget-object v11, Lcom/nineoldandroids/animation/PropertyValuesHolder;->INTEGER_VARIANTS:[Ljava/lang/Class; .restart local v11 # "typeVariants":[Ljava/lang/Class; goto :goto_2 .end local v11 # "typeVariants":[Ljava/lang/Class; :cond_2 iget-object v12, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v13, Ljava/lang/Double; invoke-virtual {v12, v13}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v12 if-eqz v12, :cond_3 sget-object v11, Lcom/nineoldandroids/animation/PropertyValuesHolder;->DOUBLE_VARIANTS:[Ljava/lang/Class; .restart local v11 # "typeVariants":[Ljava/lang/Class; goto :goto_2 .end local v11 # "typeVariants":[Ljava/lang/Class; :cond_3 const/4 v12, 0x1 new-array v11, v12, [Ljava/lang/Class; .restart local v11 # "typeVariants":[Ljava/lang/Class; const/4 v12, 0x0 iget-object v13, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; aput-object v13, v11, v12 goto :goto_2 .restart local v2 # "arr$":[Ljava/lang/Class; .restart local v5 # "i$":I .restart local v6 # "len$":I .restart local v10 # "typeVariant":Ljava/lang/Class; :catch_2 move-exception v3 .restart local v3 # "e":Ljava/lang/NoSuchMethodException; :try_start_3 move-object/from16 v0, p1 invoke-virtual {v0, v7, v1}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v8 const/4 v12, 0x1 invoke-virtual {v8, v12}, Ljava/lang/reflect/Method;->setAccessible(Z)V iput-object v10, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; :try_end_3 .catch Ljava/lang/NoSuchMethodException; {:try_start_3 .. :try_end_3} :catch_3 move-object v9, v8 .end local v8 # "returnVal":Ljava/lang/reflect/Method; .restart local v9 # "returnVal":Ljava/lang/reflect/Method; goto/16 :goto_1 .end local v9 # "returnVal":Ljava/lang/reflect/Method; .restart local v8 # "returnVal":Ljava/lang/reflect/Method; :catch_3 move-exception v12 add-int/lit8 v5, v5, 0x1 goto :goto_3 .end local v3 # "e":Ljava/lang/NoSuchMethodException; .end local v10 # "typeVariant":Ljava/lang/Class; :cond_4 const-string v12, "PropertyValuesHolder" new-instance v13, Ljava/lang/StringBuilder; invoke-direct {v13}, Ljava/lang/StringBuilder;->()V const-string v14, "Couldn\'t find setter/getter for property " invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v13 iget-object v14, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v13 const-string v14, " with value type " invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v13 iget-object v14, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v13 invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v13 invoke-static {v12, v13}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto/16 :goto_0 .end method .method public static varargs ofFloat(Lcom/nineoldandroids/util/Property;[F)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 1 .param p1, "values" # [F .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/nineoldandroids/util/Property", "<*", "Ljava/lang/Float;", ">;[F)", "Lcom/nineoldandroids/animation/PropertyValuesHolder;" } .end annotation .prologue .local p0, "property":Lcom/nineoldandroids/util/Property;, "Lcom/nineoldandroids/util/Property<*Ljava/lang/Float;>;" new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder; invoke-direct {v0, p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;[F)V return-object v0 .end method .method public static varargs ofFloat(Ljava/lang/String;[F)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 1 .param p0, "propertyName" # Ljava/lang/String; .param p1, "values" # [F .prologue new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder; invoke-direct {v0, p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Ljava/lang/String;[F)V return-object v0 .end method .method public static varargs ofInt(Lcom/nineoldandroids/util/Property;[I)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 1 .param p1, "values" # [I .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/nineoldandroids/util/Property", "<*", "Ljava/lang/Integer;", ">;[I)", "Lcom/nineoldandroids/animation/PropertyValuesHolder;" } .end annotation .prologue .local p0, "property":Lcom/nineoldandroids/util/Property;, "Lcom/nineoldandroids/util/Property<*Ljava/lang/Integer;>;" new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; invoke-direct {v0, p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;[I)V return-object v0 .end method .method public static varargs ofInt(Ljava/lang/String;[I)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 1 .param p0, "propertyName" # Ljava/lang/String; .param p1, "values" # [I .prologue new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; invoke-direct {v0, p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Ljava/lang/String;[I)V return-object v0 .end method .method public static varargs ofKeyframe(Lcom/nineoldandroids/util/Property;[Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 3 .param p0, "property" # Lcom/nineoldandroids/util/Property; .param p1, "values" # [Lcom/nineoldandroids/animation/Keyframe; .prologue invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofKeyframe([Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 .local v0, "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; instance-of v2, v0, Lcom/nineoldandroids/animation/IntKeyframeSet; if-eqz v2, :cond_0 new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/IntKeyframeSet; .end local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; invoke-direct {v1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/IntKeyframeSet;)V :goto_0 return-object v1 .restart local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; :cond_0 instance-of v2, v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; if-eqz v2, :cond_1 new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; .end local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; invoke-direct {v1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/FloatKeyframeSet;)V goto :goto_0 .restart local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; :cond_1 new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v1, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;)V .local v1, "pvh":Lcom/nineoldandroids/animation/PropertyValuesHolder; iput-object v0, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; const/4 v2, 0x0 aget-object v2, p1, v2 invoke-virtual {v2}, Lcom/nineoldandroids/animation/Keyframe;->getType()Ljava/lang/Class; move-result-object v2 iput-object v2, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; goto :goto_0 .end method .method public static varargs ofKeyframe(Ljava/lang/String;[Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 3 .param p0, "propertyName" # Ljava/lang/String; .param p1, "values" # [Lcom/nineoldandroids/animation/Keyframe; .prologue invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofKeyframe([Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 .local v0, "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; instance-of v2, v0, Lcom/nineoldandroids/animation/IntKeyframeSet; if-eqz v2, :cond_0 new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/IntKeyframeSet; .end local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; invoke-direct {v1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Ljava/lang/String;Lcom/nineoldandroids/animation/IntKeyframeSet;)V :goto_0 return-object v1 .restart local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; :cond_0 instance-of v2, v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; if-eqz v2, :cond_1 new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; .end local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; invoke-direct {v1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Ljava/lang/String;Lcom/nineoldandroids/animation/FloatKeyframeSet;)V goto :goto_0 .restart local v0 # "keyframeSet":Lcom/nineoldandroids/animation/KeyframeSet; :cond_1 new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v1, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Ljava/lang/String;)V .local v1, "pvh":Lcom/nineoldandroids/animation/PropertyValuesHolder; iput-object v0, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; const/4 v2, 0x0 aget-object v2, p1, v2 invoke-virtual {v2}, Lcom/nineoldandroids/animation/Keyframe;->getType()Ljava/lang/Class; move-result-object v2 iput-object v2, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; goto :goto_0 .end method .method public static varargs ofObject(Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/TypeEvaluator;[Ljava/lang/Object;)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 1 .param p0, "property" # Lcom/nineoldandroids/util/Property; .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/nineoldandroids/util/Property;", "Lcom/nineoldandroids/animation/TypeEvaluator", ";[TV;)", "Lcom/nineoldandroids/animation/PropertyValuesHolder;" } .end annotation .prologue .local p1, "evaluator":Lcom/nineoldandroids/animation/TypeEvaluator;, "Lcom/nineoldandroids/animation/TypeEvaluator;" .local p2, "values":[Ljava/lang/Object;, "[TV;" new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v0, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;)V .local v0, "pvh":Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-virtual {v0, p2}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V invoke-virtual {v0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V return-object v0 .end method .method public static varargs ofObject(Ljava/lang/String;Lcom/nineoldandroids/animation/TypeEvaluator;[Ljava/lang/Object;)Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 1 .param p0, "propertyName" # Ljava/lang/String; .param p1, "evaluator" # Lcom/nineoldandroids/animation/TypeEvaluator; .param p2, "values" # [Ljava/lang/Object; .prologue new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v0, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Ljava/lang/String;)V .local v0, "pvh":Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-virtual {v0, p2}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V invoke-virtual {v0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V return-object v0 .end method .method private setupGetter(Ljava/lang/Class;)V .locals 3 .param p1, "targetClass" # Ljava/lang/Class; .prologue sget-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sGetterPropertyMap:Ljava/util/HashMap; const-string v1, "get" const/4 v2, 0x0 invoke-direct {p0, p1, v0, v1, v2}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; return-void .end method .method private setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; .locals 5 .param p1, "targetClass" # Ljava/lang/Class; .param p3, "prefix" # Ljava/lang/String; .param p4, "valueType" # Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class;", "Ljava/util/HashMap", "<", "Ljava/lang/Class;", "Ljava/util/HashMap", "<", "Ljava/lang/String;", "Ljava/lang/reflect/Method;", ">;>;", "Ljava/lang/String;", "Ljava/lang/Class;", ")", "Ljava/lang/reflect/Method;" } .end annotation .prologue .local p2, "propertyMapMap":Ljava/util/HashMap;, "Ljava/util/HashMap;>;" const/4 v2, 0x0 .local v2, "setterOrGetter":Ljava/lang/reflect/Method; :try_start_0 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; move-result-object v3 invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lock()V invoke-virtual {p2, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/HashMap; .local v1, "propertyMap":Ljava/util/HashMap;, "Ljava/util/HashMap;" if-eqz v1, :cond_0 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v1, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 move-object v0, v3 check-cast v0, Ljava/lang/reflect/Method; move-object v2, v0 :cond_0 if-nez v2, :cond_2 invoke-direct {p0, p1, p3, p4}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->getPropertyFunction(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 if-nez v1, :cond_1 new-instance v1, Ljava/util/HashMap; .end local v1 # "propertyMap":Ljava/util/HashMap;, "Ljava/util/HashMap;" invoke-direct {v1}, Ljava/util/HashMap;->()V .restart local v1 # "propertyMap":Ljava/util/HashMap;, "Ljava/util/HashMap;" invoke-virtual {p2, p1, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_1 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v1, v3, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 :cond_2 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; move-result-object v3 invoke-virtual {v3}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V return-object v2 .end local v1 # "propertyMap":Ljava/util/HashMap;, "Ljava/util/HashMap;" :catchall_0 move-exception v3 iget-object v4, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; move-result-object v4 invoke-virtual {v4}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V throw v3 .end method .method private setupValue(Ljava/lang/Object;Lcom/nineoldandroids/animation/Keyframe;)V .locals 4 .param p1, "target" # Ljava/lang/Object; .param p2, "kf" # Lcom/nineoldandroids/animation/Keyframe; .prologue iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz v2, :cond_0 iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {v2, p1}, Lcom/nineoldandroids/util/Property;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 invoke-virtual {p2, v2}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :cond_0 :try_start_0 iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; if-nez v2, :cond_1 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 .local v1, "targetClass":Ljava/lang/Class; invoke-direct {p0, v1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V .end local v1 # "targetClass":Ljava/lang/Class; :cond_1 iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; const/4 v3, 0x0 new-array v3, v3, [Ljava/lang/Object; invoke-virtual {v2, p1, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 invoke-virtual {p2, v2}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :try_end_0 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 :goto_0 return-void :catch_0 move-exception v0 .local v0, "e":Ljava/lang/reflect/InvocationTargetException; const-string v2, "PropertyValuesHolder" invoke-virtual {v0}, Ljava/lang/reflect/InvocationTargetException;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_0 .end local v0 # "e":Ljava/lang/reflect/InvocationTargetException; :catch_1 move-exception v0 .local v0, "e":Ljava/lang/IllegalAccessException; const-string v2, "PropertyValuesHolder" invoke-virtual {v0}, Ljava/lang/IllegalAccessException;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_0 .end method # virtual methods .method calculateValue(F)V .locals 1 .param p1, "fraction" # F .prologue iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; invoke-virtual {v0, p1}, Lcom/nineoldandroids/animation/KeyframeSet;->getValue(F)Ljava/lang/Object; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mAnimatedValue:Ljava/lang/Object; return-void .end method .method public clone()Lcom/nineoldandroids/animation/PropertyValuesHolder; .locals 3 .prologue :try_start_0 invoke-super {p0}, Ljava/lang/Object;->clone()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/nineoldandroids/animation/PropertyValuesHolder; .local v1, "newPVH":Lcom/nineoldandroids/animation/PropertyValuesHolder; iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; iput-object v2, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; iput-object v2, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; invoke-virtual {v2}, Lcom/nineoldandroids/animation/KeyframeSet;->clone()Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v2 iput-object v2, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; iput-object v2, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; :try_end_0 .catch Ljava/lang/CloneNotSupportedException; {:try_start_0 .. :try_end_0} :catch_0 .end local v1 # "newPVH":Lcom/nineoldandroids/animation/PropertyValuesHolder; :goto_0 return-object v1 :catch_0 move-exception v0 .local v0, "e":Ljava/lang/CloneNotSupportedException; const/4 v1, 0x0 goto :goto_0 .end method .method public bridge synthetic clone()Ljava/lang/Object; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/CloneNotSupportedException; } .end annotation .prologue invoke-virtual {p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->clone()Lcom/nineoldandroids/animation/PropertyValuesHolder; move-result-object v0 return-object v0 .end method .method getAnimatedValue()Ljava/lang/Object; .locals 1 .prologue iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mAnimatedValue:Ljava/lang/Object; return-object v0 .end method .method public getPropertyName()Ljava/lang/String; .locals 1 .prologue iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; return-object v0 .end method .method init()V .locals 2 .prologue iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; if-nez v0, :cond_0 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v1, Ljava/lang/Integer; if-ne v0, v1, :cond_2 sget-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sIntEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; :goto_0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; :cond_0 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; if-eqz v0, :cond_1 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; invoke-virtual {v0, v1}, Lcom/nineoldandroids/animation/KeyframeSet;->setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V :cond_1 return-void :cond_2 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v1, Ljava/lang/Float; if-ne v0, v1, :cond_3 sget-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sFloatEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; goto :goto_0 :cond_3 const/4 v0, 0x0 goto :goto_0 .end method .method setAnimatedValue(Ljava/lang/Object;)V .locals 4 .param p1, "target" # Ljava/lang/Object; .prologue iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz v1, :cond_0 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; move-result-object v2 invoke-virtual {v1, p1, v2}, Lcom/nineoldandroids/util/Property;->set(Ljava/lang/Object;Ljava/lang/Object;)V :cond_0 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; if-eqz v1, :cond_1 :try_start_0 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; const/4 v2, 0x0 invoke-virtual {p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; move-result-object v3 aput-object v3, v1, v2 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; invoke-virtual {v1, p1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; :try_end_0 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 :cond_1 :goto_0 return-void :catch_0 move-exception v0 .local v0, "e":Ljava/lang/reflect/InvocationTargetException; const-string v1, "PropertyValuesHolder" invoke-virtual {v0}, Ljava/lang/reflect/InvocationTargetException;->toString()Ljava/lang/String; move-result-object v2 invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_0 .end local v0 # "e":Ljava/lang/reflect/InvocationTargetException; :catch_1 move-exception v0 .local v0, "e":Ljava/lang/IllegalAccessException; const-string v1, "PropertyValuesHolder" invoke-virtual {v0}, Ljava/lang/IllegalAccessException;->toString()Ljava/lang/String; move-result-object v2 invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_0 .end method .method public setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V .locals 1 .param p1, "evaluator" # Lcom/nineoldandroids/animation/TypeEvaluator; .prologue iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; invoke-virtual {v0, p1}, Lcom/nineoldandroids/animation/KeyframeSet;->setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V return-void .end method .method public varargs setFloatValues([F)V .locals 1 .param p1, "values" # [F .prologue sget-object v0, Ljava/lang/Float;->TYPE:Ljava/lang/Class; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofFloat([F)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public varargs setIntValues([I)V .locals 1 .param p1, "values" # [I .prologue sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofInt([I)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public varargs setKeyframes([Lcom/nineoldandroids/animation/Keyframe;)V .locals 4 .param p1, "values" # [Lcom/nineoldandroids/animation/Keyframe; .prologue array-length v2, p1 .local v2, "numKeyframes":I const/4 v3, 0x2 invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I move-result v3 new-array v1, v3, [Lcom/nineoldandroids/animation/Keyframe; .local v1, "keyframes":[Lcom/nineoldandroids/animation/Keyframe; const/4 v3, 0x0 aget-object v3, p1, v3 invoke-virtual {v3}, Lcom/nineoldandroids/animation/Keyframe;->getType()Ljava/lang/Class; move-result-object v3 iput-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const/4 v0, 0x0 .local v0, "i":I :goto_0 if-ge v0, v2, :cond_0 aget-object v3, p1, v0 aput-object v3, v1, v0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_0 new-instance v3, Lcom/nineoldandroids/animation/KeyframeSet; invoke-direct {v3, v1}, Lcom/nineoldandroids/animation/KeyframeSet;->([Lcom/nineoldandroids/animation/Keyframe;)V iput-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public varargs setObjectValues([Ljava/lang/Object;)V .locals 1 .param p1, "values" # [Ljava/lang/Object; .prologue const/4 v0, 0x0 aget-object v0, p1, v0 invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public setProperty(Lcom/nineoldandroids/util/Property;)V .locals 0 .param p1, "property" # Lcom/nineoldandroids/util/Property; .prologue iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; return-void .end method .method public setPropertyName(Ljava/lang/String;)V .locals 0 .param p1, "propertyName" # Ljava/lang/String; .prologue iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; return-void .end method .method setupEndValue(Ljava/lang/Object;)V .locals 2 .param p1, "target" # Ljava/lang/Object; .prologue iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v0, v0, Lcom/nineoldandroids/animation/KeyframeSet;->mKeyframes:Ljava/util/ArrayList; iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v1, v1, Lcom/nineoldandroids/animation/KeyframeSet;->mKeyframes:Ljava/util/ArrayList; invoke-virtual {v1}, Ljava/util/ArrayList;->size()I move-result v1 add-int/lit8 v1, v1, -0x1 invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/nineoldandroids/animation/Keyframe; invoke-direct {p0, p1, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Lcom/nineoldandroids/animation/Keyframe;)V return-void .end method .method setupSetter(Ljava/lang/Class;)V .locals 3 .param p1, "targetClass" # Ljava/lang/Class; .prologue sget-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sSetterPropertyMap:Ljava/util/HashMap; const-string v1, "set" iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; invoke-direct {p0, p1, v0, v1, v2}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v0 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; return-void .end method .method setupSetterAndGetter(Ljava/lang/Object;)V .locals 8 .param p1, "target" # Ljava/lang/Object; .prologue iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz v5, :cond_1 :try_start_0 iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {v5, p1}, Lcom/nineoldandroids/util/Property;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v4 .local v4, "testValue":Ljava/lang/Object; iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v5, v5, Lcom/nineoldandroids/animation/KeyframeSet;->mKeyframes:Ljava/util/ArrayList; invoke-virtual {v5}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object v1 .local v1, "i$":Ljava/util/Iterator; :cond_0 :goto_0 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v5 if-eqz v5, :cond_5 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/nineoldandroids/animation/Keyframe; .local v2, "kf":Lcom/nineoldandroids/animation/Keyframe; invoke-virtual {v2}, Lcom/nineoldandroids/animation/Keyframe;->hasValue()Z move-result v5 if-nez v5, :cond_0 iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {v5, p1}, Lcom/nineoldandroids/util/Property;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v5 invoke-virtual {v2, v5}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :try_end_0 .catch Ljava/lang/ClassCastException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 .end local v1 # "i$":Ljava/util/Iterator; .end local v2 # "kf":Lcom/nineoldandroids/animation/Keyframe; .end local v4 # "testValue":Ljava/lang/Object; :catch_0 move-exception v0 .local v0, "e":Ljava/lang/ClassCastException; const-string v5, "PropertyValuesHolder" new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;->()V const-string v7, "No such property (" invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 iget-object v7, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {v7}, Lcom/nineoldandroids/util/Property;->getName()Ljava/lang/String; move-result-object v7 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 const-string v7, ") on target object " invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 invoke-virtual {v6, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v6 const-string v7, ". Trying reflection instead" invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v6 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I const/4 v5, 0x0 iput-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; .end local v0 # "e":Ljava/lang/ClassCastException; :cond_1 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v3 .local v3, "targetClass":Ljava/lang/Class; iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; if-nez v5, :cond_2 invoke-virtual {p0, v3}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V :cond_2 iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v5, v5, Lcom/nineoldandroids/animation/KeyframeSet;->mKeyframes:Ljava/util/ArrayList; invoke-virtual {v5}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object v1 .restart local v1 # "i$":Ljava/util/Iterator; :cond_3 :goto_1 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v5 if-eqz v5, :cond_5 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/nineoldandroids/animation/Keyframe; .restart local v2 # "kf":Lcom/nineoldandroids/animation/Keyframe; invoke-virtual {v2}, Lcom/nineoldandroids/animation/Keyframe;->hasValue()Z move-result v5 if-nez v5, :cond_3 iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; if-nez v5, :cond_4 invoke-direct {p0, v3}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V :cond_4 :try_start_1 iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; const/4 v6, 0x0 new-array v6, v6, [Ljava/lang/Object; invoke-virtual {v5, p1, v6}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v5 invoke-virtual {v2, v5}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :try_end_1 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_1 .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_2 goto :goto_1 :catch_1 move-exception v0 .local v0, "e":Ljava/lang/reflect/InvocationTargetException; const-string v5, "PropertyValuesHolder" invoke-virtual {v0}, Ljava/lang/reflect/InvocationTargetException;->toString()Ljava/lang/String; move-result-object v6 invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_1 .end local v0 # "e":Ljava/lang/reflect/InvocationTargetException; :catch_2 move-exception v0 .local v0, "e":Ljava/lang/IllegalAccessException; const-string v5, "PropertyValuesHolder" invoke-virtual {v0}, Ljava/lang/IllegalAccessException;->toString()Ljava/lang/String; move-result-object v6 invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_1 .end local v0 # "e":Ljava/lang/IllegalAccessException; .end local v2 # "kf":Lcom/nineoldandroids/animation/Keyframe; .end local v3 # "targetClass":Ljava/lang/Class; :cond_5 return-void .end method .method setupStartValue(Ljava/lang/Object;)V .locals 2 .param p1, "target" # Ljava/lang/Object; .prologue iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v0, v0, Lcom/nineoldandroids/animation/KeyframeSet;->mKeyframes:Ljava/util/ArrayList; const/4 v1, 0x0 invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/nineoldandroids/animation/Keyframe; invoke-direct {p0, p1, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Lcom/nineoldandroids/animation/Keyframe;)V return-void .end method .method public toString()Ljava/lang/String; .locals 2 .prologue new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ": " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; invoke-virtual {v1}, Lcom/nineoldandroids/animation/KeyframeSet;->toString()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method