.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$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 .registers 9 .line 80 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; .line 81 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 .line 90 new-array v1, v0, [Ljava/lang/Class; sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; const/4 v3, 0x0 aput-object v2, v1, v3 const-class v2, Ljava/lang/Float; const/4 v4, 0x1 aput-object v2, v1, v4 sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class; const/4 v5, 0x2 aput-object v2, v1, v5 sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; const/4 v6, 0x3 aput-object v2, v1, v6 const-class v2, Ljava/lang/Double; const/4 v7, 0x4 aput-object v2, v1, v7 const-class v2, Ljava/lang/Integer; const/4 v8, 0x5 aput-object v2, v1, v8 sput-object v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->FLOAT_VARIANTS:[Ljava/lang/Class; .line 92 new-array v1, v0, [Ljava/lang/Class; sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; aput-object v2, v1, v3 const-class v2, Ljava/lang/Integer; aput-object v2, v1, v4 sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; aput-object v2, v1, v5 sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class; aput-object v2, v1, v6 const-class v2, Ljava/lang/Float; aput-object v2, v1, v7 const-class v2, Ljava/lang/Double; aput-object v2, v1, v8 sput-object v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->INTEGER_VARIANTS:[Ljava/lang/Class; .line 94 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-class v1, Ljava/lang/Integer; aput-object v1, v0, v8 sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->DOUBLE_VARIANTS:[Ljava/lang/Class; .line 100 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sSetterPropertyMap:Ljava/util/HashMap; .line 102 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 .registers 3 .line 139 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 .line 56 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; .line 65 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; .line 76 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; .line 107 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 .line 110 new-array v0, v0, [Ljava/lang/Object; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; .line 140 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz p1, :cond_20 .line 142 invoke-virtual {p1}, Lcom/nineoldandroids/util/Property;->getName()Ljava/lang/String; move-result-object p1 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; :cond_20 return-void .end method .method synthetic constructor (Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/PropertyValuesHolder$1;)V .registers 3 .line 36 invoke-direct {p0, p1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;)V return-void .end method .method private constructor (Ljava/lang/String;)V .registers 3 .line 131 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 .line 56 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; .line 65 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; .line 76 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; .line 107 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 .line 110 new-array v0, v0, [Ljava/lang/Object; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; .line 132 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 .registers 3 .line 36 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; .registers 4 if-eqz p1, :cond_2c .line 744 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 if-nez v0, :cond_9 goto :goto_2c :cond_9 const/4 v0, 0x0 .line 748 invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 invoke-static {v0}, Ljava/lang/Character;->toUpperCase(C)C move-result v0 const/4 v1, 0x1 .line 749 invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 .line 750 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 :cond_2c :goto_2c return-object p0 .end method .method private getPropertyFunction(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; .registers 12 .line 382 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-static {p2, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->getMethodName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p2 .line 384 const-string v0, "PropertyValuesHolder" const/4 v1, 0x1 const/4 v2, 0x0 if-nez p3, :cond_3b .line 386 :try_start_c invoke-virtual {p1, p2, v2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object p1 :try_end_10 .catch Ljava/lang/NoSuchMethodException; {:try_start_c .. :try_end_10} :catch_12 goto/16 :goto_a8 :catch_12 move-exception p3 .line 392 :try_start_13 invoke-virtual {p1, p2, v2}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 .line 393 invoke-virtual {v2, v1}, Ljava/lang/reflect/Method;->setAccessible(Z)V :try_end_1a .catch Ljava/lang/NoSuchMethodException; {:try_start_13 .. :try_end_1a} :catch_1c goto/16 :goto_a7 .line 395 :catch_1c new-instance p1, Ljava/lang/StringBuilder; const-string p2, "Couldn\'t find no-arg method for property " invoke-direct {p1, p2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object p2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 const-string p2, ": " invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_a7 .line 400 :cond_3b new-array p3, v1, [Ljava/lang/Class; .line 402 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v4, Ljava/lang/Float; invoke-virtual {v3, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v3 const/4 v4, 0x0 if-eqz v3, :cond_4b .line 403 sget-object v3, Lcom/nineoldandroids/animation/PropertyValuesHolder;->FLOAT_VARIANTS:[Ljava/lang/Class; goto :goto_6b .line 404 :cond_4b iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v5, Ljava/lang/Integer; invoke-virtual {v3, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_58 .line 405 sget-object v3, Lcom/nineoldandroids/animation/PropertyValuesHolder;->INTEGER_VARIANTS:[Ljava/lang/Class; goto :goto_6b .line 406 :cond_58 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v5, Ljava/lang/Double; invoke-virtual {v3, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_65 .line 407 sget-object v3, Lcom/nineoldandroids/animation/PropertyValuesHolder;->DOUBLE_VARIANTS:[Ljava/lang/Class; goto :goto_6b .line 409 :cond_65 new-array v3, v1, [Ljava/lang/Class; .line 410 iget-object v5, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; aput-object v5, v3, v4 .line 412 :goto_6b array-length v5, v3 move v6, v4 :goto_6d if-ge v6, v5, :cond_87 aget-object v7, v3, v6 .line 413 aput-object v7, p3, v4 .line 415 :try_start_73 invoke-virtual {p1, p2, p3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 .line 417 iput-object v7, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; :try_end_79 .catch Ljava/lang/NoSuchMethodException; {:try_start_73 .. :try_end_79} :catch_7a return-object v2 .line 424 :catch_7a :try_start_7a invoke-virtual {p1, p2, p3}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; move-result-object v2 .line 425 invoke-virtual {v2, v1}, Ljava/lang/reflect/Method;->setAccessible(Z)V .line 427 iput-object v7, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; :try_end_83 .catch Ljava/lang/NoSuchMethodException; {:try_start_7a .. :try_end_83} :catch_84 return-object v2 :catch_84 add-int/lit8 v6, v6, 0x1 goto :goto_6d .line 435 :cond_87 new-instance p1, Ljava/lang/StringBuilder; const-string p2, "Couldn\'t find setter/getter for property " invoke-direct {p1, p2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object p2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 const-string p2, " with value type " invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 iget-object p2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :goto_a7 move-object p1, v2 :goto_a8 return-object p1 .end method .method public static varargs ofFloat(Lcom/nineoldandroids/util/Property;[F)Lcom/nineoldandroids/animation/PropertyValuesHolder; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/nineoldandroids/util/Property<", "*", "Ljava/lang/Float;", ">;[F)", "Lcom/nineoldandroids/animation/PropertyValuesHolder;" } .end annotation .line 187 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; .registers 3 .line 176 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; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/nineoldandroids/util/Property<", "*", "Ljava/lang/Integer;", ">;[I)", "Lcom/nineoldandroids/animation/PropertyValuesHolder;" } .end annotation .line 165 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; .registers 3 .line 154 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; .registers 4 .line 281 invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofKeyframe([Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 .line 282 instance-of v1, v0, Lcom/nineoldandroids/animation/IntKeyframeSet; if-eqz v1, :cond_10 .line 283 new-instance p1, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/IntKeyframeSet; invoke-direct {p1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/IntKeyframeSet;)V return-object p1 .line 284 :cond_10 instance-of v1, v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; if-eqz v1, :cond_1c .line 285 new-instance p1, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; invoke-direct {p1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/FloatKeyframeSet;)V return-object p1 .line 288 :cond_1c new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v1, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;)V .line 289 iput-object v0, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; const/4 p0, 0x0 .line 290 aget-object p0, p1, p0 invoke-virtual {p0}, Lcom/nineoldandroids/animation/Keyframe;->getType()Ljava/lang/Class; move-result-object p0 iput-object p0, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; return-object v1 .end method .method public static varargs ofKeyframe(Ljava/lang/String;[Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/PropertyValuesHolder; .registers 4 .line 250 invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofKeyframe([Lcom/nineoldandroids/animation/Keyframe;)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v0 .line 251 instance-of v1, v0, Lcom/nineoldandroids/animation/IntKeyframeSet; if-eqz v1, :cond_10 .line 252 new-instance p1, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/IntKeyframeSet; invoke-direct {p1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Ljava/lang/String;Lcom/nineoldandroids/animation/IntKeyframeSet;)V return-object p1 .line 253 :cond_10 instance-of v1, v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; if-eqz v1, :cond_1c .line 254 new-instance p1, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder; check-cast v0, Lcom/nineoldandroids/animation/FloatKeyframeSet; invoke-direct {p1, p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Ljava/lang/String;Lcom/nineoldandroids/animation/FloatKeyframeSet;)V return-object p1 .line 257 :cond_1c new-instance v1, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v1, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Ljava/lang/String;)V .line 258 iput-object v0, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; const/4 p0, 0x0 .line 259 aget-object p0, p1, p0 invoke-virtual {p0}, Lcom/nineoldandroids/animation/Keyframe;->getType()Ljava/lang/Class; move-result-object p0 iput-object p0, v1, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; return-object v1 .end method .method public static varargs ofObject(Lcom/nineoldandroids/util/Property;Lcom/nineoldandroids/animation/TypeEvaluator;[Ljava/lang/Object;)Lcom/nineoldandroids/animation/PropertyValuesHolder; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/nineoldandroids/util/Property;", "Lcom/nineoldandroids/animation/TypeEvaluator<", "TV;>;[TV;)", "Lcom/nineoldandroids/animation/PropertyValuesHolder;" } .end annotation .line 224 new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v0, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Lcom/nineoldandroids/util/Property;)V .line 225 invoke-virtual {v0, p2}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V .line 226 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; .registers 4 .line 204 new-instance v0, Lcom/nineoldandroids/animation/PropertyValuesHolder; invoke-direct {v0, p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->(Ljava/lang/String;)V .line 205 invoke-virtual {v0, p2}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V .line 206 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 .registers 5 .line 493 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 p1 iput-object p1, 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; .registers 7 .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 .line 462 :try_start_0 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; move-result-object v0 invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lock()V .line 463 invoke-virtual {p2, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/HashMap; if-eqz v0, :cond_1a .line 465 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/lang/reflect/Method; goto :goto_1b :cond_1a const/4 v1, 0x0 :goto_1b if-nez v1, :cond_30 .line 468 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 v1 if-nez v0, :cond_2b .line 470 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V .line 471 invoke-virtual {p2, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 473 :cond_2b iget-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; invoke-virtual {v0, p1, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_30 .catchall {:try_start_0 .. :try_end_30} :catchall_3a .line 476 :cond_30 iget-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; move-result-object p1 invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V return-object v1 :catchall_3a move-exception p1 iget-object p2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyMapLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-virtual {p2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; move-result-object p2 invoke-virtual {p2}, Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V throw p1 .end method .method private setupValue(Ljava/lang/Object;Lcom/nineoldandroids/animation/Keyframe;)V .registers 6 .line 551 const-string v0, "PropertyValuesHolder" iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz v1, :cond_d .line 552 invoke-virtual {v1, p1}, Lcom/nineoldandroids/util/Property;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 invoke-virtual {p2, v1}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V .line 555 :cond_d :try_start_d iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; if-nez v1, :cond_18 .line 556 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 .line 557 invoke-direct {p0, v1}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V .line 559 :cond_18 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; const/4 v2, 0x0 new-array v2, v2, [Ljava/lang/Object; invoke-virtual {v1, p1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 invoke-virtual {p2, p1}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :try_end_24 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_d .. :try_end_24} :catch_2e .catch Ljava/lang/IllegalAccessException; {:try_start_d .. :try_end_24} :catch_25 goto :goto_36 :catch_25 move-exception p1 .line 563 invoke-virtual {p1}, Ljava/lang/IllegalAccessException;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_36 :catch_2e move-exception p1 .line 561 invoke-virtual {p1}, Ljava/lang/reflect/InvocationTargetException;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :goto_36 return-void .end method # virtual methods .method calculateValue(F)V .registers 3 .line 670 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 p1 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mAnimatedValue:Ljava/lang/Object; return-void .end method .method public clone()Lcom/nineoldandroids/animation/PropertyValuesHolder; .registers 3 .line 594 :try_start_0 invoke-super {p0}, Ljava/lang/Object;->clone()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/nineoldandroids/animation/PropertyValuesHolder; .line 595 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; iput-object v1, v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; .line 596 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; iput-object v1, v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; .line 597 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; invoke-virtual {v1}, Lcom/nineoldandroids/animation/KeyframeSet;->clone()Lcom/nineoldandroids/animation/KeyframeSet; move-result-object v1 iput-object v1, v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; .line 598 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; iput-object v1, v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; :try_end_1a .catch Ljava/lang/CloneNotSupportedException; {:try_start_0 .. :try_end_1a} :catch_1b return-object v0 :catch_1b const/4 v0, 0x0 return-object v0 .end method .method public bridge synthetic clone()Ljava/lang/Object; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/CloneNotSupportedException; } .end annotation .line 36 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; .registers 2 .line 722 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mAnimatedValue:Ljava/lang/Object; return-object v0 .end method .method public getPropertyName()Ljava/lang/String; .registers 2 .line 713 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; return-object v0 .end method .method init()V .registers 3 .line 634 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; if-nez v0, :cond_17 .line 637 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; const-class v1, Ljava/lang/Integer; if-ne v0, v1, :cond_d sget-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sIntEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; goto :goto_15 :cond_d const-class v1, Ljava/lang/Float; if-ne v0, v1, :cond_14 sget-object v0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->sFloatEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; goto :goto_15 :cond_14 const/4 v0, 0x0 :goto_15 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; .line 641 :cond_17 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; if-eqz v0, :cond_20 .line 644 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; invoke-virtual {v1, v0}, Lcom/nineoldandroids/animation/KeyframeSet;->setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V :cond_20 return-void .end method .method setAnimatedValue(Ljava/lang/Object;)V .registers 6 .line 614 const-string v0, "PropertyValuesHolder" iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; if-eqz v1, :cond_d .line 615 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 .line 617 :cond_d iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; if-eqz v1, :cond_33 .line 619 :try_start_11 iget-object v1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mTmpValueArray:[Ljava/lang/Object; invoke-virtual {p0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; move-result-object v2 const/4 v3, 0x0 aput-object v2, v1, v3 .line 620 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_21 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_11 .. :try_end_21} :catch_2b .catch Ljava/lang/IllegalAccessException; {:try_start_11 .. :try_end_21} :catch_22 goto :goto_33 :catch_22 move-exception p1 .line 624 invoke-virtual {p1}, Ljava/lang/IllegalAccessException;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_33 :catch_2b move-exception p1 .line 622 invoke-virtual {p1}, Ljava/lang/reflect/InvocationTargetException;->toString()Ljava/lang/String; move-result-object p1 invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I :cond_33 :goto_33 return-void .end method .method public setEvaluator(Lcom/nineoldandroids/animation/TypeEvaluator;)V .registers 3 .line 659 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mEvaluator:Lcom/nineoldandroids/animation/TypeEvaluator; .line 660 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 .registers 3 .line 327 sget-object v0, Ljava/lang/Float;->TYPE:Ljava/lang/Class; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; .line 328 invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofFloat([F)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object p1 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public varargs setIntValues([I)V .registers 3 .line 309 sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mValueType:Ljava/lang/Class; .line 310 invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofInt([I)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object p1 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public varargs setKeyframes([Lcom/nineoldandroids/animation/Keyframe;)V .registers 6 .line 337 array-length v0, p1 const/4 v1, 0x2 .line 338 invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I move-result v1 new-array v1, v1, [Lcom/nineoldandroids/animation/Keyframe; const/4 v2, 0x0 .line 339 aget-object v3, p1, v2 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; :goto_11 if-ge v2, v0, :cond_1a .line 341 aget-object v3, p1, v2 aput-object v3, v1, v2 add-int/lit8 v2, v2, 0x1 goto :goto_11 .line 343 :cond_1a new-instance p1, Lcom/nineoldandroids/animation/KeyframeSet; invoke-direct {p1, v1}, Lcom/nineoldandroids/animation/KeyframeSet;->([Lcom/nineoldandroids/animation/Keyframe;)V iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public varargs setObjectValues([Ljava/lang/Object;)V .registers 3 const/4 v0, 0x0 .line 360 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; .line 361 invoke-static {p1}, Lcom/nineoldandroids/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Lcom/nineoldandroids/animation/KeyframeSet; move-result-object p1 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; return-void .end method .method public setProperty(Lcom/nineoldandroids/util/Property;)V .registers 2 .line 701 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; return-void .end method .method public setPropertyName(Ljava/lang/String;)V .registers 2 .line 689 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mPropertyName:Ljava/lang/String; return-void .end method .method setupEndValue(Ljava/lang/Object;)V .registers 4 .line 588 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 .registers 5 .line 486 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 p1 iput-object p1, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; return-void .end method .method setupSetterAndGetter(Ljava/lang/Object;)V .registers 8 .line 507 iget-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; const-string v1, "PropertyValuesHolder" if-eqz v0, :cond_59 .line 510 :try_start_6 invoke-virtual {v0, p1}, Lcom/nineoldandroids/util/Property;->get(Ljava/lang/Object;)Ljava/lang/Object; .line 511 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; invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_11 :goto_11 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_2d invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/nineoldandroids/animation/Keyframe; .line 512 invoke-virtual {v2}, Lcom/nineoldandroids/animation/Keyframe;->hasValue()Z move-result v3 if-nez v3, :cond_11 .line 513 iget-object v3, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {v3, p1}, Lcom/nineoldandroids/util/Property;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 invoke-virtual {v2, v3}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :try_end_2c .catch Ljava/lang/ClassCastException; {:try_start_6 .. :try_end_2c} :catch_2e goto :goto_11 :cond_2d return-void .line 518 :catch_2e new-instance v0, Ljava/lang/StringBuilder; const-string v2, "No such property (" invoke-direct {v0, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; invoke-virtual {v2}, Lcom/nineoldandroids/util/Property;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v2, ") on target object " invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v2, ". Trying reflection instead" invoke-virtual {v0, v2}, 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 invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I const/4 v0, 0x0 .line 520 iput-object v0, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mProperty:Lcom/nineoldandroids/util/Property; .line 523 :cond_59 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 .line 524 iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mSetter:Ljava/lang/reflect/Method; if-nez v2, :cond_64 .line 525 invoke-virtual {p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V .line 527 :cond_64 iget-object v2, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mKeyframeSet:Lcom/nineoldandroids/animation/KeyframeSet; iget-object v2, v2, Lcom/nineoldandroids/animation/KeyframeSet;->mKeyframes:Ljava/util/ArrayList; invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object v2 :cond_6c :goto_6c invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z move-result v3 if-eqz v3, :cond_a4 invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 check-cast v3, Lcom/nineoldandroids/animation/Keyframe; .line 528 invoke-virtual {v3}, Lcom/nineoldandroids/animation/Keyframe;->hasValue()Z move-result v4 if-nez v4, :cond_6c .line 529 iget-object v4, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; if-nez v4, :cond_85 .line 530 invoke-direct {p0, v0}, Lcom/nineoldandroids/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V .line 533 :cond_85 :try_start_85 iget-object v4, p0, Lcom/nineoldandroids/animation/PropertyValuesHolder;->mGetter:Ljava/lang/reflect/Method; const/4 v5, 0x0 new-array v5, v5, [Ljava/lang/Object; invoke-virtual {v4, p1, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; move-result-object v4 invoke-virtual {v3, v4}, Lcom/nineoldandroids/animation/Keyframe;->setValue(Ljava/lang/Object;)V :try_end_91 .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_85 .. :try_end_91} :catch_9b .catch Ljava/lang/IllegalAccessException; {:try_start_85 .. :try_end_91} :catch_92 goto :goto_6c :catch_92 move-exception v3 .line 537 invoke-virtual {v3}, Ljava/lang/IllegalAccessException;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v1, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_6c :catch_9b move-exception v3 .line 535 invoke-virtual {v3}, Ljava/lang/reflect/InvocationTargetException;->toString()Ljava/lang/String; move-result-object v3 invoke-static {v1, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_6c :cond_a4 return-void .end method .method setupStartValue(Ljava/lang/Object;)V .registers 4 .line 576 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; .registers 3 .line 727 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