.class public Lcom/moji/viewpager/AutoScrollViewPager; .super Landroid/support/v4/view/ViewPager; .source "AutoScrollViewPager.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller;, Lcom/moji/viewpager/AutoScrollViewPager$MyHandler; } .end annotation # static fields .field public static a:Z = false # instance fields .field private b:J .field private c:I .field private d:Z .field private e:Z .field private f:I .field private g:Z .field private h:D .field private i:D .field private j:Landroid/os/Handler; .field private k:Z .field private l:Z .field private m:F .field private n:F .field private o:Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; .field private p:Landroid/support/v4/view/PagerAdapter; # direct methods .method static constructor ()V .locals 0 return-void .end method .method public constructor (Landroid/content/Context;)V .locals 3 .line 102 invoke-direct {p0, p1}, Landroid/support/v4/view/ViewPager;->(Landroid/content/Context;)V const-wide/16 v0, 0x5dc .line 61 iput-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->b:J const/4 p1, 0x1 .line 65 iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->c:I .line 69 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->d:Z .line 73 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->e:Z const/4 v0, 0x0 .line 77 iput v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I .line 81 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->g:Z const-wide/high16 v1, 0x4008000000000000L # 3.0 .line 85 iput-wide v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->h:D const-wide/high16 v1, 0x3ff0000000000000L # 1.0 .line 89 iput-wide v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->i:D .line 92 iput-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->k:Z .line 93 iput-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->l:Z const/4 p1, 0x0 .line 94 iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->m:F iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->n:F const/4 p1, 0x0 .line 95 iput-object p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->o:Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; .line 103 invoke-direct {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->d()V return-void .end method .method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V .locals 2 .line 107 invoke-direct {p0, p1, p2}, Landroid/support/v4/view/ViewPager;->(Landroid/content/Context;Landroid/util/AttributeSet;)V const-wide/16 p1, 0x5dc .line 61 iput-wide p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->b:J const/4 p1, 0x1 .line 65 iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->c:I .line 69 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->d:Z .line 73 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->e:Z const/4 p2, 0x0 .line 77 iput p2, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I .line 81 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->g:Z const-wide/high16 v0, 0x4008000000000000L # 3.0 .line 85 iput-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->h:D const-wide/high16 v0, 0x3ff0000000000000L # 1.0 .line 89 iput-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->i:D .line 92 iput-boolean p2, p0, Lcom/moji/viewpager/AutoScrollViewPager;->k:Z .line 93 iput-boolean p2, p0, Lcom/moji/viewpager/AutoScrollViewPager;->l:Z const/4 p1, 0x0 .line 94 iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->m:F iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->n:F const/4 p1, 0x0 .line 95 iput-object p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->o:Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; .line 108 invoke-direct {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->d()V return-void .end method .method static synthetic a(Lcom/moji/viewpager/AutoScrollViewPager;)D .locals 2 .line 37 iget-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->h:D return-wide v0 .end method .method private a(J)V .locals 2 .line 142 sget-boolean v0, Lcom/moji/viewpager/AutoScrollViewPager;->a:Z if-nez v0, :cond_0 .line 143 iget-object v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->j:Landroid/os/Handler; const/4 v1, 0x0 invoke-virtual {v0, v1}, Landroid/os/Handler;->removeMessages(I)V .line 144 iget-object v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->j:Landroid/os/Handler; invoke-virtual {v0, v1, p1, p2}, Landroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z :cond_0 return-void .end method .method static synthetic a(Lcom/moji/viewpager/AutoScrollViewPager;J)V .locals 0 .line 37 invoke-direct {p0, p1, p2}, Lcom/moji/viewpager/AutoScrollViewPager;->a(J)V return-void .end method .method static synthetic b(Lcom/moji/viewpager/AutoScrollViewPager;)Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; .locals 0 .line 37 iget-object p0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->o:Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; return-object p0 .end method .method static synthetic c(Lcom/moji/viewpager/AutoScrollViewPager;)D .locals 2 .line 37 iget-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->i:D return-wide v0 .end method .method static synthetic d(Lcom/moji/viewpager/AutoScrollViewPager;)J .locals 2 .line 37 iget-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->b:J return-wide v0 .end method .method private d()V .locals 2 .line 112 new-instance v0, Lcom/moji/viewpager/AutoScrollViewPager$MyHandler; const/4 v1, 0x0 invoke-direct {v0, p0, v1}, Lcom/moji/viewpager/AutoScrollViewPager$MyHandler;->(Lcom/moji/viewpager/AutoScrollViewPager;Lcom/moji/viewpager/AutoScrollViewPager$1;)V iput-object v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->j:Landroid/os/Handler; .line 113 invoke-direct {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->e()V return-void .end method .method private e()V .locals 5 .line 153 :try_start_0 const-class v0, Landroid/support/v4/view/ViewPager; const-string v1, "mScroller" invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field; move-result-object v0 const/4 v1, 0x1 .line 154 invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V .line 155 const-class v2, Landroid/support/v4/view/ViewPager; const-string v3, "sInterpolator" invoke-virtual {v2, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field; move-result-object v2 .line 156 invoke-virtual {v2, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V .line 158 new-instance v1, Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getContext()Landroid/content/Context; move-result-object v3 const/4 v4, 0x0 invoke-virtual {v2, v4}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Landroid/view/animation/Interpolator; invoke-direct {v1, p0, v3, v2}, Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller;->(Lcom/moji/viewpager/AutoScrollViewPager;Landroid/content/Context;Landroid/view/animation/Interpolator;)V iput-object v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->o:Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; .line 159 iget-object v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->o:Lcom/moji/viewpager/AutoScrollViewPager$CustomDurationScroller; invoke-virtual {v0, p0, v1}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception v0 const-string v1, "AutoScrollViewPager" .line 161 invoke-static {v1, v0}, Lcom/moji/tool/log/MJLogger;->a(Ljava/lang/String;Ljava/lang/Throwable;)V :goto_0 return-void .end method # virtual methods .method public a()V .locals 2 const/4 v0, 0x1 .line 120 iput-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->k:Z const/4 v0, 0x0 .line 121 sput-boolean v0, Lcom/moji/viewpager/AutoScrollViewPager;->a:Z .line 123 iget-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->b:J invoke-direct {p0, v0, v1}, Lcom/moji/viewpager/AutoScrollViewPager;->a(J)V return-void .end method .method public b()V .locals 2 const/4 v0, 0x0 .line 127 iput-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->k:Z const/4 v1, 0x1 .line 128 sput-boolean v1, Lcom/moji/viewpager/AutoScrollViewPager;->a:Z .line 129 iget-object v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->j:Landroid/os/Handler; invoke-virtual {v1, v0}, Landroid/os/Handler;->removeMessages(I)V return-void .end method .method public c()V .locals 4 .line 169 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getAdapter()Landroid/support/v4/view/PagerAdapter; move-result-object v0 .line 170 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getCurrentItem()I move-result v1 if-eqz v0, :cond_4 .line 172 invoke-virtual {v0}, Landroid/support/v4/view/PagerAdapter;->getCount()I move-result v0 const/4 v2, 0x1 if-gt v0, v2, :cond_0 goto :goto_2 .line 175 :cond_0 iget v3, p0, Lcom/moji/viewpager/AutoScrollViewPager;->c:I if-nez v3, :cond_1 add-int/lit8 v1, v1, -0x1 goto :goto_0 :cond_1 add-int/2addr v1, v2 :goto_0 if-gez v1, :cond_2 .line 177 iget-boolean v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->d:Z if-eqz v1, :cond_3 sub-int/2addr v0, v2 .line 178 iget-boolean v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->g:Z invoke-virtual {p0, v0, v1}, Lcom/moji/viewpager/AutoScrollViewPager;->setCurrentItem(IZ)V goto :goto_1 .line 181 :cond_2 invoke-virtual {p0, v1, v2}, Lcom/moji/viewpager/AutoScrollViewPager;->setCurrentItem(IZ)V :cond_3 :goto_1 return-void :cond_4 :goto_2 return-void .end method .method public dispatchTouchEvent(Landroid/view/MotionEvent;)Z .locals 7 .line 194 invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I move-result v0 .line 196 iget-boolean v1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->e:Z const/4 v2, 0x1 if-eqz v1, :cond_1 if-nez v0, :cond_0 .line 197 iget-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->k:Z if-eqz v0, :cond_0 .line 198 iput-boolean v2, p0, Lcom/moji/viewpager/AutoScrollViewPager;->l:Z .line 199 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->b()V goto :goto_0 .line 200 :cond_0 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 if-ne v0, v2, :cond_1 iget-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->l:Z if-eqz v0, :cond_1 .line 201 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->a()V .line 205 :cond_1 :goto_0 iget v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I const/4 v1, 0x2 if-eq v0, v1, :cond_2 iget v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I if-ne v0, v2, :cond_9 .line 206 :cond_2 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v0 iput v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->m:F .line 207 invoke-virtual {p1}, Landroid/view/MotionEvent;->getAction()I move-result v0 if-nez v0, :cond_3 .line 208 iget v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->m:F iput v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->n:F .line 210 :cond_3 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getCurrentItem()I move-result v0 .line 211 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getAdapter()Landroid/support/v4/view/PagerAdapter; move-result-object v3 const/4 v4, 0x0 if-nez v3, :cond_4 const/4 v3, 0x0 goto :goto_1 .line 212 :cond_4 invoke-virtual {v3}, Landroid/support/v4/view/PagerAdapter;->getCount()I move-result v3 :goto_1 if-nez v0, :cond_5 .line 219 iget v5, p0, Lcom/moji/viewpager/AutoScrollViewPager;->n:F iget v6, p0, Lcom/moji/viewpager/AutoScrollViewPager;->m:F cmpg-float v5, v5, v6 if-lez v5, :cond_6 :cond_5 add-int/lit8 v5, v3, -0x1 if-ne v0, v5, :cond_9 iget v5, p0, Lcom/moji/viewpager/AutoScrollViewPager;->n:F iget v6, p0, Lcom/moji/viewpager/AutoScrollViewPager;->m:F cmpl-float v5, v5, v6 if-ltz v5, :cond_9 .line 220 :cond_6 iget v5, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I if-ne v5, v1, :cond_7 .line 221 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getParent()Landroid/view/ViewParent; move-result-object v0 invoke-interface {v0, v4}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V goto :goto_2 :cond_7 if-le v3, v2, :cond_8 sub-int/2addr v3, v0 sub-int/2addr v3, v2 .line 224 iget-boolean v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->g:Z invoke-virtual {p0, v3, v0}, Lcom/moji/viewpager/AutoScrollViewPager;->setCurrentItem(IZ)V .line 226 :cond_8 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getParent()Landroid/view/ViewParent; move-result-object v0 invoke-interface {v0, v2}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V .line 228 :goto_2 invoke-super {p0, p1}, Landroid/support/v4/view/ViewPager;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z move-result p1 return p1 .line 231 :cond_9 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->getParent()Landroid/view/ViewParent; move-result-object v0 invoke-interface {v0, v2}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V .line 233 invoke-super {p0, p1}, Landroid/support/v4/view/ViewPager;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z move-result p1 return p1 .end method .method public getAdapter()Landroid/support/v4/view/PagerAdapter; .locals 1 .line 375 iget-object v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->p:Landroid/support/v4/view/PagerAdapter; return-object v0 .end method .method public getDirection()I .locals 1 .line 278 iget v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->c:I if-nez v0, :cond_0 const/4 v0, 0x0 goto :goto_0 :cond_0 const/4 v0, 0x1 :goto_0 return v0 .end method .method public getInterval()J .locals 2 .line 260 iget-wide v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->b:J return-wide v0 .end method .method public getSlideBorderMode()I .locals 1 .line 333 iget v0, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I return v0 .end method .method protected onAttachedToWindow()V .locals 0 .line 403 invoke-super {p0}, Landroid/support/v4/view/ViewPager;->onAttachedToWindow()V .line 404 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->a()V return-void .end method .method protected onDetachedFromWindow()V .locals 0 .line 409 invoke-super {p0}, Landroid/support/v4/view/ViewPager;->onDetachedFromWindow()V .line 410 invoke-virtual {p0}, Lcom/moji/viewpager/AutoScrollViewPager;->b()V return-void .end method .method public setAdapter(Landroid/support/v4/view/PagerAdapter;)V .locals 0 .line 368 iput-object p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->p:Landroid/support/v4/view/PagerAdapter; .line 370 invoke-super {p0, p1}, Landroid/support/v4/view/ViewPager;->setAdapter(Landroid/support/v4/view/PagerAdapter;)V return-void .end method .method public setAutoScrollDurationFactor(D)V .locals 0 .line 137 iput-wide p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->h:D return-void .end method .method public setBorderAnimation(Z)V .locals 0 .line 361 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->g:Z return-void .end method .method public setCycle(Z)V .locals 0 .line 305 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->d:Z return-void .end method .method public setDirection(I)V .locals 0 .line 287 iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->c:I return-void .end method .method public setInterval(J)V .locals 0 .line 269 iput-wide p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->b:J return-void .end method .method public setSlideBorderMode(I)V .locals 0 .line 343 iput p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->f:I return-void .end method .method public setStopScrollWhenTouch(Z)V .locals 0 .line 323 iput-boolean p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->e:Z return-void .end method .method public setSwipeScrollDurationFactor(D)V .locals 0 .line 133 iput-wide p1, p0, Lcom/moji/viewpager/AutoScrollViewPager;->i:D return-void .end method