.class public final Lcom/google/android/exoplayer2/video/spherical/TouchTracker; .super Landroid/view/GestureDetector$SimpleOnGestureListener; .source "SourceFile" # interfaces .implements Landroid/view/View$OnTouchListener; .implements Lcom/google/android/exoplayer2/video/spherical/OrientationListener$Listener; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener; } .end annotation # instance fields .field public final accumulatedTouchOffsetDegrees:Landroid/graphics/PointF; .field public final gestureDetector:Landroid/view/GestureDetector; .field public final listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener; .field public final previousTouchPointPx:Landroid/graphics/PointF; .field public final pxPerDegrees:F .field public volatile roll:F # direct methods .method public constructor (Landroid/content/Context;Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;F)V .locals 1 .line 73 invoke-direct {p0}, Landroid/view/GestureDetector$SimpleOnGestureListener;->()V .line 62 new-instance v0, Landroid/graphics/PointF; invoke-direct {v0}, Landroid/graphics/PointF;->()V iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF; .line 63 new-instance v0, Landroid/graphics/PointF; invoke-direct {v0}, Landroid/graphics/PointF;->()V iput-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->accumulatedTouchOffsetDegrees:Landroid/graphics/PointF; iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener; iput p3, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->pxPerDegrees:F .line 76 new-instance p2, Landroid/view/GestureDetector; invoke-direct {p2, p1, p0}, Landroid/view/GestureDetector;->(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V iput-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->gestureDetector:Landroid/view/GestureDetector; const p1, 0x40490fdb # (float)Math.PI iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->roll:F return-void .end method # virtual methods .method public onDown(Landroid/view/MotionEvent;)Z .locals 2 iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF; .line 93 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v1 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result p1 invoke-virtual {v0, v1, p1}, Landroid/graphics/PointF;->set(FF)V const/4 p1, 0x1 return p1 .end method .method public onOrientationChange([FF)V .locals 0 neg-float p1, p2 iput p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->roll:F return-void .end method .method public onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z .locals 4 .line 100 invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F move-result p1 iget-object p3, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF; iget p3, p3, Landroid/graphics/PointF;->x:F sub-float/2addr p1, p3 iget p3, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->pxPerDegrees:F div-float/2addr p1, p3 .line 101 invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F move-result p3 iget-object p4, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->previousTouchPointPx:Landroid/graphics/PointF; iget v0, p4, Landroid/graphics/PointF;->y:F sub-float/2addr p3, v0 iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->pxPerDegrees:F div-float/2addr p3, v0 .line 102 invoke-virtual {p2}, Landroid/view/MotionEvent;->getX()F move-result v0 invoke-virtual {p2}, Landroid/view/MotionEvent;->getY()F move-result p2 invoke-virtual {p4, v0, p2}, Landroid/graphics/PointF;->set(FF)V iget p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->roll:F float-to-double v0, p2 .line 105 invoke-static {v0, v1}, Ljava/lang/Math;->cos(D)D move-result-wide v2 double-to-float p2, v2 .line 106 invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D move-result-wide v0 double-to-float p4, v0 iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->accumulatedTouchOffsetDegrees:Landroid/graphics/PointF; .line 111 iget v1, v0, Landroid/graphics/PointF;->x:F mul-float v2, p2, p1 mul-float v3, p4, p3 sub-float/2addr v2, v3 sub-float/2addr v1, v2 iput v1, v0, Landroid/graphics/PointF;->x:F .line 113 iget v1, v0, Landroid/graphics/PointF;->y:F mul-float/2addr p4, p1 mul-float/2addr p2, p3 add-float/2addr p4, p2 add-float/2addr v1, p4 iput v1, v0, Landroid/graphics/PointF;->y:F const/high16 p1, 0x42340000 # 45.0f .line 115 invoke-static {p1, v1}, Ljava/lang/Math;->min(FF)F move-result p1 const/high16 p2, -0x3dcc0000 # -45.0f invoke-static {p2, p1}, Ljava/lang/Math;->max(FF)F move-result p1 iput p1, v0, Landroid/graphics/PointF;->y:F iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener; iget-object p2, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->accumulatedTouchOffsetDegrees:Landroid/graphics/PointF; .line 117 invoke-interface {p1, p2}, Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;->onScrollChange(Landroid/graphics/PointF;)V const/4 p1, 0x1 return p1 .end method .method public onSingleTapUp(Landroid/view/MotionEvent;)Z .locals 1 iget-object v0, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->listener:Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener; .line 123 invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/video/spherical/TouchTracker$Listener;->onSingleTapUp(Landroid/view/MotionEvent;)Z move-result p1 return p1 .end method .method public onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z .locals 0 iget-object p1, p0, Lcom/google/android/exoplayer2/video/spherical/TouchTracker;->gestureDetector:Landroid/view/GestureDetector; .line 87 invoke-virtual {p1, p2}, Landroid/view/GestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z move-result p1 return p1 .end method