.class public Lcom/polites/android/Animator; .super Ljava/lang/Thread; .source "Animator.java" # instance fields .field private active:Z .field private animation:Lcom/polites/android/Animation; .field private lastTime:J .field private running:Z .field private view:Lcom/polites/android/GestureImageView; # direct methods .method public constructor (Lcom/polites/android/GestureImageView;Ljava/lang/String;)V .registers 5 .line 32 invoke-direct {p0, p2}, Ljava/lang/Thread;->(Ljava/lang/String;)V const/4 p2, 0x0 .line 27 iput-boolean p2, p0, Lcom/polites/android/Animator;->running:Z .line 28 iput-boolean p2, p0, Lcom/polites/android/Animator;->active:Z const-wide/16 v0, -0x1 .line 29 iput-wide v0, p0, Lcom/polites/android/Animator;->lastTime:J .line 33 iput-object p1, p0, Lcom/polites/android/Animator;->view:Lcom/polites/android/GestureImageView; return-void .end method # virtual methods .method public declared-synchronized activate()V .registers 3 monitor-enter p0 .line 88 :try_start_1 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 iput-wide v0, p0, Lcom/polites/android/Animator;->lastTime:J const/4 v0, 0x1 .line 89 iput-boolean v0, p0, Lcom/polites/android/Animator;->active:Z .line 90 invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V :try_end_d .catchall {:try_start_1 .. :try_end_d} :catchall_f .line 91 monitor-exit p0 return-void :catchall_f move-exception v0 :try_start_10 monitor-exit p0 :try_end_11 .catchall {:try_start_10 .. :try_end_11} :catchall_f throw v0 .end method .method public cancel()V .registers 2 const/4 v0, 0x0 .line 94 iput-boolean v0, p0, Lcom/polites/android/Animator;->active:Z return-void .end method .method public declared-synchronized finish()V .registers 2 monitor-enter p0 const/4 v0, 0x0 .line 73 :try_start_2 iput-boolean v0, p0, Lcom/polites/android/Animator;->running:Z .line 74 iput-boolean v0, p0, Lcom/polites/android/Animator;->active:Z .line 75 invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V :try_end_9 .catchall {:try_start_2 .. :try_end_9} :catchall_b .line 76 monitor-exit p0 return-void :catchall_b move-exception v0 :try_start_c monitor-exit p0 :try_end_d .catchall {:try_start_c .. :try_end_d} :catchall_b throw v0 .end method .method public play(Lcom/polites/android/Animation;)V .registers 3 .line 79 iget-boolean v0, p0, Lcom/polites/android/Animator;->active:Z if-eqz v0, :cond_7 .line 80 invoke-virtual {p0}, Lcom/polites/android/Animator;->cancel()V .line 82 :cond_7 iput-object p1, p0, Lcom/polites/android/Animator;->animation:Lcom/polites/android/Animation; .line 84 invoke-virtual {p0}, Lcom/polites/android/Animator;->activate()V return-void .end method .method public run()V .registers 7 const/4 v0, 0x1 .line 39 iput-boolean v0, p0, Lcom/polites/android/Animator;->running:Z .line 41 :goto_3 iget-boolean v0, p0, Lcom/polites/android/Animator;->running:Z if-nez v0, :cond_8 return-void .line 43 :cond_8 :goto_8 iget-boolean v0, p0, Lcom/polites/android/Animator;->active:Z if-eqz v0, :cond_3e iget-object v0, p0, Lcom/polites/android/Animator;->animation:Lcom/polites/android/Animation; if-nez v0, :cond_11 goto :goto_3e .line 44 :cond_11 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 .line 45 iget-object v2, p0, Lcom/polites/android/Animator;->animation:Lcom/polites/android/Animation; iget-object v3, p0, Lcom/polites/android/Animator;->view:Lcom/polites/android/GestureImageView; iget-wide v4, p0, Lcom/polites/android/Animator;->lastTime:J sub-long v4, v0, v4 invoke-interface {v2, v3, v4, v5}, Lcom/polites/android/Animation;->update(Lcom/polites/android/GestureImageView;J)Z move-result v2 iput-boolean v2, p0, Lcom/polites/android/Animator;->active:Z .line 46 iget-object v2, p0, Lcom/polites/android/Animator;->view:Lcom/polites/android/GestureImageView; invoke-virtual {v2}, Lcom/polites/android/GestureImageView;->redraw()V .line 47 iput-wide v0, p0, Lcom/polites/android/Animator;->lastTime:J .line 49 :cond_2a :goto_2a iget-boolean v0, p0, Lcom/polites/android/Animator;->active:Z if-nez v0, :cond_2f goto :goto_8 .line 51 :cond_2f :try_start_2f iget-object v0, p0, Lcom/polites/android/Animator;->view:Lcom/polites/android/GestureImageView; const-wide/16 v1, 0x20 invoke-virtual {v0, v1, v2}, Lcom/polites/android/GestureImageView;->waitForDraw(J)Z move-result v0 :try_end_37 .catch Ljava/lang/InterruptedException; {:try_start_2f .. :try_end_37} :catch_3a if-eqz v0, :cond_2a goto :goto_8 :catch_3a const/4 v0, 0x0 .line 56 iput-boolean v0, p0, Lcom/polites/android/Animator;->active:Z goto :goto_2a .line 61 :cond_3e :goto_3e monitor-enter p0 .line 62 :try_start_3f iget-boolean v0, p0, Lcom/polites/android/Animator;->running:Z :try_end_41 .catchall {:try_start_3f .. :try_end_41} :catchall_48 if-eqz v0, :cond_46 .line 64 :try_start_43 invoke-virtual {p0}, Ljava/lang/Object;->wait()V :try_end_46 .catch Ljava/lang/InterruptedException; {:try_start_43 .. :try_end_46} :catch_46 .catchall {:try_start_43 .. :try_end_46} :catchall_48 .line 61 :catch_46 :cond_46 :try_start_46 monitor-exit p0 goto :goto_3 :catchall_48 move-exception v0 monitor-exit p0 :try_end_4a .catchall {:try_start_46 .. :try_end_4a} :catchall_48 throw v0 .end method