diff --git a/.gitmodules b/.gitmodules index 565127c5..edb00607 100644 --- a/.gitmodules +++ b/.gitmodules @@ -641,3 +641,6 @@ [submodule "vendor/grammars/Handlebars"] path = vendor/grammars/Handlebars url = https://github.com/daaain/Handlebars +[submodule "vendor/grammars/smali-sublime"] + path = vendor/grammars/smali-sublime + url = https://github.com/ShaneWilton/sublime-smali diff --git a/grammars.yml b/grammars.yml index b78010d6..21a54c67 100644 --- a/grammars.yml +++ b/grammars.yml @@ -446,6 +446,8 @@ vendor/grammars/scheme.tmbundle: - source.scheme vendor/grammars/scilab.tmbundle: - source.scilab +vendor/grammars/smali-sublime/smali.tmLanguage: +- source.smali vendor/grammars/smalltalk-tmbundle: - source.smalltalk vendor/grammars/sql.tmbundle: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 45febdb6..5b248812 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3081,6 +3081,13 @@ Slim: - .slim ace_mode: text +Smali: + type: programming + extensions: + - .smali + ace_mode: text + tm_scope: source.smali + Smalltalk: type: programming color: "#596706" diff --git a/samples/Smali/ActionBarDrawerToggle.smali b/samples/Smali/ActionBarDrawerToggle.smali new file mode 100644 index 00000000..c22484e6 --- /dev/null +++ b/samples/Smali/ActionBarDrawerToggle.smali @@ -0,0 +1,551 @@ +.class public Landroid/support/v4/app/ActionBarDrawerToggle; +.super Ljava/lang/Object; +.source "ActionBarDrawerToggle.java" + +# interfaces +.implements Landroid/support/v4/widget/DrawerLayout$DrawerListener; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/app/ActionBarDrawerToggle$1;, + Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase;, + Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + } +.end annotation + + +# static fields +.field private static final ID_HOME:I = 0x102002c + +.field private static final IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + +# instance fields +.field private final mActivity:Landroid/app/Activity; + +.field private final mCloseDrawerContentDescRes:I + +.field private mDrawerImage:Landroid/graphics/drawable/Drawable; + +.field private final mDrawerImageResource:I + +.field private mDrawerIndicatorEnabled:Z + +.field private final mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + +.field private final mOpenDrawerContentDescRes:I + +.field private mSetIndicatorInfo:Ljava/lang/Object; + +.field private mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + +.field private mThemeImage:Landroid/graphics/drawable/Drawable; + + +# direct methods +.method static constructor ()V + .registers 3 + + .prologue + const/4 v2, 0x0 + + .line 108 + sget v0, Landroid/os/Build$VERSION;->SDK_INT:I + + .line 109 + .local v0, "version":I + const/16 v1, 0xb + + if-lt v0, v1, :cond_f + + .line 110 + new-instance v1, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC; + + invoke-direct {v1, v2}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplHC;->(Landroid/support/v4/app/ActionBarDrawerToggle$1;)V + + sput-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + .line 114 + :goto_e + return-void + + .line 112 + :cond_f + new-instance v1, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase; + + invoke-direct {v1, v2}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImplBase;->(Landroid/support/v4/app/ActionBarDrawerToggle$1;)V + + sput-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + goto :goto_e +.end method + +.method public constructor (Landroid/app/Activity;Landroid/support/v4/widget/DrawerLayout;III)V + .registers 8 + .param p1, "activity" # Landroid/app/Activity; + .param p2, "drawerLayout" # Landroid/support/v4/widget/DrawerLayout; + .param p3, "drawerImageRes" # I + .param p4, "openDrawerContentDescRes" # I + .param p5, "closeDrawerContentDescRes" # I + + .prologue + .line 152 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 121 + const/4 v0, 0x1 + + iput-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + .line 153 + iput-object p1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + .line 154 + iput-object p2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + .line 155 + iput p3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImageResource:I + + .line 156 + iput p4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + .line 157 + iput p5, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + .line 159 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + invoke-interface {v0, p1}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->getThemeUpIndicator(Landroid/app/Activity;)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + .line 160 + invoke-virtual {p1}, Landroid/app/Activity;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + invoke-virtual {v0, p3}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + .line 161 + new-instance v0, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + invoke-direct {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->(Landroid/graphics/drawable/Drawable;)V + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + .line 162 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const v1, 0x3eaaaaab + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffsetBy(F)V + + .line 163 + return-void +.end method + + +# virtual methods +.method public isDrawerIndicatorEnabled()Z + .registers 2 + + .prologue + .line 217 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + return v0 +.end method + +.method public onConfigurationChanged(Landroid/content/res/Configuration;)V + .registers 4 + .param p1, "newConfig" # Landroid/content/res/Configuration; + + .prologue + .line 229 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + invoke-interface {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->getThemeUpIndicator(Landroid/app/Activity;)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + .line 230 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + invoke-virtual {v0}, Landroid/app/Activity;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + iget v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImageResource:I + + invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerImage:Landroid/graphics/drawable/Drawable; + + .line 231 + invoke-virtual {p0}, Landroid/support/v4/app/ActionBarDrawerToggle;->syncState()V + + .line 232 + return-void +.end method + +.method public onDrawerClosed(Landroid/view/View;)V + .registers 6 + .param p1, "drawerView" # Landroid/view/View; + + .prologue + .line 298 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 299 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_18 + + .line 300 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + invoke-interface {v0, v1, v2, v3}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarDescription(Ljava/lang/Object;Landroid/app/Activity;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 303 + :cond_18 + return-void +.end method + +.method public onDrawerOpened(Landroid/view/View;)V + .registers 6 + .param p1, "drawerView" # Landroid/view/View; + + .prologue + .line 282 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/high16 v1, 0x3f800000 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 283 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_19 + + .line 284 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + invoke-interface {v0, v1, v2, v3}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarDescription(Ljava/lang/Object;Landroid/app/Activity;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 287 + :cond_19 + return-void +.end method + +.method public onDrawerSlide(Landroid/view/View;F)V + .registers 7 + .param p1, "drawerView" # Landroid/view/View; + .param p2, "slideOffset" # F + + .prologue + const/high16 v3, 0x40000000 + + const/high16 v2, 0x3f000000 + + .line 264 + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + invoke-virtual {v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->getOffset()F + + move-result v0 + + .line 265 + .local v0, "glyphOffset":F + cmpl-float v1, p2, v2 + + if-lez v1, :cond_20 + + .line 266 + const/4 v1, 0x0 + + sub-float v2, p2, v2 + + invoke-static {v1, v2}, Ljava/lang/Math;->max(FF)F + + move-result v1 + + mul-float/2addr v1, v3 + + invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F + + move-result v0 + + .line 270 + :goto_1a + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + invoke-virtual {v1, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 271 + return-void + + .line 268 + :cond_20 + mul-float v1, p2, v3 + + invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F + + move-result v0 + + goto :goto_1a +.end method + +.method public onDrawerStateChanged(I)V + .registers 2 + .param p1, "newState" # I + + .prologue + .line 314 + return-void +.end method + +.method public onOptionsItemSelected(Landroid/view/MenuItem;)Z + .registers 5 + .param p1, "item" # Landroid/view/MenuItem; + + .prologue + const v2, 0x800003 + + .line 244 + if-eqz p1, :cond_1f + + invoke-interface {p1}, Landroid/view/MenuItem;->getItemId()I + + move-result v0 + + const v1, 0x102002c + + if-ne v0, v1, :cond_1f + + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_1f + + .line 245 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->isDrawerVisible(I)Z + + move-result v0 + + if-eqz v0, :cond_21 + + .line 246 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->closeDrawer(I)V + + .line 251 + :cond_1f + :goto_1f + const/4 v0, 0x0 + + return v0 + + .line 248 + :cond_21 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v2}, Landroid/support/v4/widget/DrawerLayout;->openDrawer(I)V + + goto :goto_1f +.end method + +.method public setDrawerIndicatorEnabled(Z)V + .registers 8 + .param p1, "enable" # Z + + .prologue + .line 199 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eq p1, v0, :cond_23 + + .line 200 + if-eqz p1, :cond_27 + + .line 201 + sget-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + const v5, 0x800003 + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_24 + + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + :goto_1b + invoke-interface {v1, v2, v3, v4, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 208 + :goto_21 + iput-boolean p1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + .line 210 + :cond_23 + return-void + + .line 201 + :cond_24 + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + goto :goto_1b + + .line 205 + :cond_27 + sget-object v0, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v1, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mThemeImage:Landroid/graphics/drawable/Drawable; + + const/4 v4, 0x0 + + invoke-interface {v0, v1, v2, v3, v4}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + goto :goto_21 +.end method + +.method public syncState()V + .registers 7 + + .prologue + const v5, 0x800003 + + .line 175 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_2f + + .line 176 + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/high16 v1, 0x3f800000 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + .line 181 + :goto_12 + iget-boolean v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerIndicatorEnabled:Z + + if-eqz v0, :cond_2e + + .line 182 + sget-object v1, Landroid/support/v4/app/ActionBarDrawerToggle;->IMPL:Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl; + + iget-object v2, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + iget-object v3, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mActivity:Landroid/app/Activity; + + iget-object v4, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mDrawerLayout:Landroid/support/v4/widget/DrawerLayout; + + invoke-virtual {v0, v5}, Landroid/support/v4/widget/DrawerLayout;->isDrawerOpen(I)Z + + move-result v0 + + if-eqz v0, :cond_36 + + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mOpenDrawerContentDescRes:I + + :goto_28 + invoke-interface {v1, v2, v3, v4, v0}, Landroid/support/v4/app/ActionBarDrawerToggle$ActionBarDrawerToggleImpl;->setActionBarUpIndicator(Ljava/lang/Object;Landroid/app/Activity;Landroid/graphics/drawable/Drawable;I)Ljava/lang/Object; + + move-result-object v0 + + iput-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSetIndicatorInfo:Ljava/lang/Object; + + .line 186 + :cond_2e + return-void + + .line 178 + :cond_2f + iget-object v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mSlider:Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/support/v4/app/ActionBarDrawerToggle$SlideDrawable;->setOffset(F)V + + goto :goto_12 + + .line 182 + :cond_36 + iget v0, p0, Landroid/support/v4/app/ActionBarDrawerToggle;->mCloseDrawerContentDescRes:I + + goto :goto_28 +.end method diff --git a/samples/Smali/DoodleMobileAnaylise.smali b/samples/Smali/DoodleMobileAnaylise.smali new file mode 100644 index 00000000..9f08c551 --- /dev/null +++ b/samples/Smali/DoodleMobileAnaylise.smali @@ -0,0 +1,4235 @@ +.class public Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; +.super Ljava/lang/Object; +.source "DoodleMobileAnaylise.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$Sync;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$MobclixHttpClient;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig;, + Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent; + } +.end annotation + + +# static fields +.field static final DEBUG:Z = false + +.field public static final LOG_LEVEL_DEBUG:I = 0x1 + +.field public static final LOG_LEVEL_ERROR:I = 0x8 + +.field public static final LOG_LEVEL_FATAL:I = 0x10 + +.field public static final LOG_LEVEL_INFO:I = 0x2 + +.field public static final LOG_LEVEL_WARN:I = 0x4 + +.field private static MC_ANALYTICS_DIRECTORY:Ljava/lang/String; = null + +.field private static MC_DIRECTORY:Ljava/lang/String; = null + +.field private static MC_MAX_ANALYTICS_FILES:I = 0x0 + +.field private static MC_MAX_EVENTS_PER_FILE:I = 0x0 + +.field static final PREFS_CONFIG:Ljava/lang/String; = ".DMConfig" + +.field public static final PUSH_MESSAGE_INTERVAL:I = 0xf0 + +.field static final PUSH_MESSAGE_TO_SERVER:I = 0x186a1 + +.field private static SYNC_ERROR:I + +.field private static SYNC_READY:I + +.field private static SYNC_RUNNING:I + +.field private static applicationInfo:Landroid/content/pm/ApplicationInfo; + +.field private static final controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + +.field private static currentFile:Ljava/io/File; + +.field private static fileCreated:Z + +.field private static isInitialized:Z + +.field private static loggingEvent:Z + +.field static mSyncHandler:Landroid/os/Handler; + +.field private static numLinesWritten:I + +.field private static packageName:Ljava/lang/String; + +.field private static syncContents:Ljava/lang/String; + +.field private static syncStatus:I + + +# instance fields +.field private analyticsServer:Ljava/lang/String; + +.field private androidId:Ljava/lang/String; + +.field private androidVersion:Ljava/lang/String; + +.field private applicationId:Ljava/lang/String; + +.field private applicationVersion:Ljava/lang/String; + +.field private autoplay:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + +.field private configServer:Ljava/lang/String; + +.field private connectionType:Ljava/lang/String; + +.field private context:Landroid/content/Context; + +.field private deviceHardwareModel:Ljava/lang/String; + +.field private deviceId:Ljava/lang/String; + +.field private deviceModel:Ljava/lang/String; + +.field private enabled:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + +.field private haveLocationPermission:Z + +.field private haveNetworkStatePermission:Z + +.field private idleTimeout:I + +.field private isInSession:Z + +.field private isNewUser:Z + +.field private isOfflineSession:Z + +.field private isTopTask:Z + +.field private language:Ljava/lang/String; + +.field private latitude:Ljava/lang/String; + +.field private locale:Ljava/lang/String; + +.field location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + +.field private locationCriteria:Landroid/location/Criteria; + +.field private locationHandler:Landroid/os/Handler; + +.field private logLevel:I + +.field private longitude:Ljava/lang/String; + +.field private mcc:Ljava/lang/String; + +.field private mnc:Ljava/lang/String; + +.field private pollTime:I + +.field private previousDeviceId:Ljava/lang/String; + +.field private refreshTime:Ljava/util/HashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/Long;", + ">;" + } + .end annotation +.end field + +.field private remoteConfigSet:I + +.field private session:Lorg/json/JSONObject; + +.field private sessionEndTime:J + +.field private sessionPollingTimer:Ljava/util/Timer; + +.field private sessionStartTime:J + +.field private sharedPrefs:Landroid/content/SharedPreferences; + +.field private totalIdleTime:J + +.field private userAgent:Ljava/lang/String; + + +# direct methods +.method static constructor ()V + .locals 3 + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 70 + const-string v0, "doodlemobile" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + .line 72 + const-string v0, "analytics" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + .line 74 + const/16 v0, 0x64 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + .line 76 + const/4 v0, 0x5 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_EVENTS_PER_FILE:I + + .line 104 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + .line 106 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + .line 108 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + .line 110 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + .line 112 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + .line 114 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + .line 116 + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + .line 118 + const/4 v0, 0x1 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_RUNNING:I + + .line 120 + const/4 v0, -0x1 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_ERROR:I + + .line 184 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->()V + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + .line 186 + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + .line 188 + const-string v0, "" + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + .line 190 + sput-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + .line 771 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$3; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$3;->()V + + sput-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + return-void +.end method + +.method public constructor ()V + .locals 7 + + .prologue + const/4 v5, 0x0 + + const-wide/16 v3, 0x0 + + const/4 v2, 0x0 + + const-string v6, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + const-string v1, "null" + + .line 56 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 78 + iput-object v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + .line 80 + new-instance v0, Lorg/json/JSONObject; + + invoke-direct {v0}, Lorg/json/JSONObject;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + .line 88 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->enabled:Ljava/util/HashMap; + + .line 90 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->refreshTime:Ljava/util/HashMap; + + .line 92 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->autoplay:Ljava/util/HashMap; + + .line 94 + const-string v0, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->configServer:Ljava/lang/String; + + .line 96 + const-string v0, "http://data.doodlemobile.com:8080/dmdata/ReceiveServlet" + + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + .line 98 + const/16 v0, 0x7530 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + .line 100 + const v0, 0x1d4c0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + .line 102 + iput v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + .line 122 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isOfflineSession:Z + + .line 124 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 126 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 128 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 130 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 132 + iput-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 134 + new-instance v0, Ljava/util/Timer; + + invoke-direct {v0}, Ljava/util/Timer;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionPollingTimer:Ljava/util/Timer; + + .line 144 + iput-object v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->previousDeviceId:Ljava/lang/String; + + .line 150 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 154 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + invoke-direct {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->()V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + .line 156 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + .line 158 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + .line 160 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 162 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 164 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mcc:Ljava/lang/String; + + .line 166 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mnc:Ljava/lang/String; + + .line 168 + const-string v0, "" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 170 + const-string v0, "null" + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 172 + const/16 v0, 0x10 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + .line 174 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + .line 178 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + .line 180 + iput-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isNewUser:Z + + .line 1045 + return-void +.end method + +.method private OpenAnalyticsFile()Z + .locals 7 + + .prologue + const/4 v6, 0x1 + + const/4 v5, 0x0 + + const-string v0, "DoodleMobileAnaylise" + + const-string v0, "/" + + const-string v0, "UTF-8" + + .line 720 + sput v6, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + .line 721 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateSession()V + + .line 724 + :try_start_0 + new-instance v0, Lorg/json/JSONObject; + + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const/4 v2, 0x3 + + new-array v2, v2, [Ljava/lang/String; + + const/4 v3, 0x0 + + const-string v4, "ll" + + aput-object v4, v2, v3 + + const/4 v3, 0x1 + + const-string v4, "g" + + aput-object v4, v2, v3 + + const/4 v3, 0x2 + + const-string v4, "id" + + aput-object v4, v2, v3 + + invoke-direct {v0, v1, v2}, Lorg/json/JSONObject;->(Lorg/json/JSONObject;[Ljava/lang/String;)V + + .line 726 + const-string v1, "a" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getApplicationId()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 727 + const-string v1, "p" + + const-string v2, "android" + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 728 + const-string v1, "m" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getMobclixVersion()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 729 + const-string v1, "v" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getApplicationVersion()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 730 + const-string v1, "d" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceId()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 731 + const-string v1, "dm" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceModel()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 732 + const-string v1, "dv" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getAndroidVersion()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 733 + const-string v1, "hwdm" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getDeviceHardwareModel()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 735 + const-string v1, "m" + + const-string v2, "2.3" + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 736 + const-string v1, "lg" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLanguage()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 737 + const-string v1, "lo" + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLocale()Ljava/lang/String; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 738 + const-string v1, "pn" + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 740 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + const/4 v3, 0x0 + + invoke-virtual {v1, v2, v3}, Landroid/content/Context;->getDir(Ljava/lang/String;I)Ljava/io/File; + + move-result-object v1 + + .line 741 + new-instance v2, Ljava/io/File; + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v3, "/" + + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v2, v1}, Ljava/io/File;->(Ljava/lang/String;)V + + .line 743 + invoke-virtual {v2}, Ljava/io/File;->mkdir()Z + + .line 744 + const-string v1, "DoodleMobileAnaylise" + + const-string v3, "mkdir" + + invoke-static {v1, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 745 + invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File; + + move-result-object v1 + + array-length v1, v1 + + sget v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + if-lt v1, v3, :cond_0 + + .line 746 + const-string v0, "DoodleMobileAnaylise" + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2}, Ljava/io/File;->listFiles()[Ljava/io/File; + + move-result-object v2 + + array-length v2, v2 + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v2, " " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + sget v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_ANALYTICS_FILES:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + move v0, v5 + + .line 768 + :goto_0 + return v0 + + .line 751 + :cond_0 + new-instance v1, Ljava/io/File; + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File; + + move-result-object v2 + + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v2 + + const-string v3, "/" + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v3 + + invoke-virtual {v2, v3, v4}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + move-result-object v2 + + const-string v3, ".log" + + invoke-virtual {v2, v3}, 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 v2 + + invoke-direct {v1, v2}, Ljava/io/File;->(Ljava/lang/String;)V + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + .line 754 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + invoke-virtual {v1}, Ljava/io/File;->createNewFile()Z + + .line 756 + new-instance v1, Ljava/io/FileOutputStream; + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + invoke-direct {v1, v2}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V + + .line 758 + const-string v2, "[{\"hb\":" + + invoke-virtual {v2}, Ljava/lang/String;->getBytes()[B + + move-result-object v2 + + invoke-virtual {v1, v2}, Ljava/io/FileOutputStream;->write([B)V + + .line 759 + invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B + + move-result-object v0 + + invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V + + .line 760 + const-string v0, ",\"ev\":[" + + invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B + + move-result-object v0 + + invoke-virtual {v1, v0}, Ljava/io/FileOutputStream;->write([B)V + + .line 761 + invoke-virtual {v1}, Ljava/io/FileOutputStream;->close()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 767 + sput-boolean v6, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + move v0, v6 + + .line 768 + goto :goto_0 + + .line 763 + :catch_0 + move-exception v0 + + .line 764 + invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V + + move v0, v5 + + .line 765 + goto :goto_0 +.end method + +.method static synthetic access$002(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1000()Ljava/io/File; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->currentFile:Ljava/io/File; + + return-object v0 +.end method + +.method static synthetic access$102(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1100()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return v0 +.end method + +.method static synthetic access$1102(I)I + .locals 0 + + .prologue + .line 56 + sput p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return p0 +.end method + +.method static synthetic access$1112(I)I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + add-int/2addr v0, p0 + + sput v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->numLinesWritten:I + + return v0 +.end method + +.method static synthetic access$1200()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_MAX_EVENTS_PER_FILE:I + + return v0 +.end method + +.method static synthetic access$1400(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Landroid/content/Context; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + return-object v0 +.end method + +.method static synthetic access$1500(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$1502(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + return-object p1 +.end method + +.method static synthetic access$1600(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Landroid/location/Criteria; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + return-object v0 +.end method + +.method static synthetic access$1602(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Landroid/location/Criteria;)Landroid/location/Criteria; + .locals 0 + + .prologue + .line 56 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + return-object p1 +.end method + +.method static synthetic access$1702(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)Z + .locals 0 + + .prologue + .line 56 + iput-boolean p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + return p1 +.end method + +.method static synthetic access$1802(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)Z + .locals 0 + + .prologue + .line 56 + iput-boolean p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + return p1 +.end method + +.method static synthetic access$1900(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Z)V + .locals 0 + + .prologue + .line 56 + invoke-direct {p0, p1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + + return-void +.end method + +.method static synthetic access$200(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + .locals 0 + + .prologue + .line 56 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateLocation()V + + return-void +.end method + +.method static synthetic access$2000()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_RUNNING:I + + return v0 +.end method + +.method static synthetic access$2100()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_DIRECTORY:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2200()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->MC_ANALYTICS_DIRECTORY:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2300()Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2302(Ljava/lang/String;)Ljava/lang/String; + .locals 0 + + .prologue + .line 56 + sput-object p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncContents:Ljava/lang/String; + + return-object p0 +.end method + +.method static synthetic access$2400(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Ljava/lang/String; + .locals 1 + + .prologue + .line 56 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + return-object v0 +.end method + +.method static synthetic access$2500()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_ERROR:I + + return v0 +.end method + +.method static synthetic access$400()Z + .locals 1 + + .prologue + .line 56 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + return v0 +.end method + +.method static synthetic access$402(Z)Z + .locals 0 + + .prologue + .line 56 + sput-boolean p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->loggingEvent:Z + + return p0 +.end method + +.method static synthetic access$500()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + return v0 +.end method + +.method static synthetic access$502(I)I + .locals 0 + + .prologue + .line 56 + sput p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + return p0 +.end method + +.method static synthetic access$600()I + .locals 1 + + .prologue + .line 56 + sget v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + return v0 +.end method + +.method static synthetic access$700()Z + .locals 1 + + .prologue + .line 56 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + return v0 +.end method + +.method static synthetic access$702(Z)Z + .locals 0 + + .prologue + .line 56 + sput-boolean p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->fileCreated:Z + + return p0 +.end method + +.method static synthetic access$800(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)Z + .locals 1 + + .prologue + .line 56 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->OpenAnalyticsFile()Z + + move-result v0 + + return v0 +.end method + +.method static synthetic access$900()Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + .locals 1 + + .prologue + .line 56 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + return-object v0 +.end method + +.method static addPref(Ljava/lang/String;Ljava/lang/String;)V + .locals 1 + + .prologue + .line 333 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 334 + invoke-interface {v0, p0, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + .line 335 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 338 + :goto_0 + return-void + + .line 336 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method static addPref(Ljava/util/Map;)V + .locals 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/Map", + "<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;)V" + } + .end annotation + + .prologue + .line 342 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v1 + + .line 343 + invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set; + + move-result-object v0 + + invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 344 + :goto_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 345 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/util/Map$Entry; + + .line 346 + invoke-interface {p0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/String; + + invoke-interface {p0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/String; + + invoke-interface {v1, v0, p0}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + goto :goto_0 + + .line 349 + :catch_0 + move-exception v0 + + .line 351 + :goto_1 + return-void + + .line 348 + :cond_0 + invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_1 +.end method + +.method static clearPref()V + .locals 1 + + .prologue + .line 364 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 365 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->clear()Landroid/content/SharedPreferences$Editor; + + .line 366 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 369 + :goto_0 + return-void + + .line 367 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method private createNewSession()V + .locals 7 + + .prologue + const-wide/16 v5, 0x0 + + const/4 v4, 0x1 + + .line 804 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v0 + + .line 805 + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + iget-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sha1(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + .line 807 + iput-boolean v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 808 + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 809 + iput-wide v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 810 + iput-wide v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 811 + iput-boolean v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 813 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "id" + + const-string v3, "UTF-8" + + invoke-static {v2, v3}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 817 + :goto_0 + const/4 v0, 0x0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + .line 818 + new-instance v0, Ljava/lang/Thread; + + new-instance v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig; + + const/4 v2, 0x0 + + invoke-direct {v1, p0, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$FetchRemoteConfig;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;)V + + invoke-direct {v0, v1}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V + + .line 819 + invoke-virtual {v0}, Ljava/lang/Thread;->start()V + + .line 820 + return-void + + .line 814 + :catch_0 + move-exception v0 + + .line 815 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync 2" + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + goto :goto_0 +.end method + +.method private endSession()V + .locals 6 + + .prologue + const-string v0, "totalSessionTime" + + const-string v0, "totalIdleTime" + + const-string v0, "offlineSessions" + + .line 852 + :try_start_0 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-nez v0, :cond_0 + + .line 893 + :goto_0 + return-void + + .line 854 + :cond_0 + iget-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + sub-long/2addr v0, v2 + + .line 856 + const-string v2, "totalSessionTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v2 + + if-eqz v2, :cond_1 + + .line 858 + :try_start_1 + const-string v2, "totalSessionTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_3 + + move-result-wide v2 + + add-long/2addr v0, v2 + + .line 861 + :cond_1 + :goto_1 + :try_start_2 + const-string v2, "totalIdleTime" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_2 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 + + move-result v2 + + if-eqz v2, :cond_2 + + .line 863 + :try_start_3 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + const-string v4, "totalIdleTime" + + invoke-static {v4}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v4 + + invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + + move-result-wide v4 + + add-long/2addr v2, v4 + + iput-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + :try_end_3 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_2 + + .line 867 + :cond_2 + :goto_2 + :try_start_4 + new-instance v2, Ljava/util/HashMap; + + invoke-direct {v2}, Ljava/util/HashMap;->()V + + .line 868 + const-string v3, "totalSessionTime" + + invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v3, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 869 + const-string v0, "totalIdleTime" + + iget-wide v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + invoke-static {v3, v4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v2, v0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 872 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isOfflineSession:Z + + if-eqz v0, :cond_4 + + .line 873 + const/4 v0, 0x1 + + .line 874 + const-string v1, "offlineSessions" + + invoke-static {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + :try_end_4 + .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_0 + + move-result v1 + + if-eqz v1, :cond_3 + + .line 876 + :try_start_5 + const-string v1, "offlineSessions" + + invoke-static {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I + :try_end_5 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_1 + + move-result v1 + + add-int/2addr v0, v1 + + .line 880 + :cond_3 + :goto_3 + :try_start_6 + const-string v1, "offlineSessions" + + int-to-long v3, v0 + + invoke-static {v3, v4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 884 + :cond_4 + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->addPref(Ljava/util/Map;)V + + .line 886 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + .line 887 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 888 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionStartTime:J + + .line 889 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 890 + const-wide/16 v0, 0x0 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + :try_end_6 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_0 + + goto :goto_0 + + .line 891 + :catch_0 + move-exception v0 + + goto/16 :goto_0 + + .line 878 + :catch_1 + move-exception v1 + + goto :goto_3 + + .line 865 + :catch_2 + move-exception v2 + + goto :goto_2 + + .line 859 + :catch_3 + move-exception v2 + + goto :goto_1 +.end method + +.method static getAllPref()Ljava/util/HashMap; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/HashMap", + "<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;" + } + .end annotation + + .prologue + .line 309 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->getAll()Ljava/util/Map; + + move-result-object v0 + + check-cast v0, Ljava/util/HashMap; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 312 + :goto_0 + return-object v0 + + .line 310 + :catch_0 + move-exception v0 + + .line 312 + new-instance v0, Ljava/util/HashMap; + + invoke-direct {v0}, Ljava/util/HashMap;->()V + + goto :goto_0 +.end method + +.method static getCookieStringFromCookieManager(Ljava/lang/String;)Ljava/lang/String; + .locals 1 + + .prologue + .line 901 + :try_start_0 + invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; + + move-result-object v0 + + .line 902 + invoke-virtual {v0, p0}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 905 + :goto_0 + return-object v0 + + .line 903 + :catch_0 + move-exception v0 + + .line 905 + const-string v0, "" + + goto :goto_0 +.end method + +.method public static getInstance()Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + .locals 1 + + .prologue + .line 515 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + return-object v0 +.end method + +.method static getPref(Ljava/lang/String;)Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "" + + .line 317 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + const-string v1, "" + + invoke-interface {v0, p0, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 320 + :goto_0 + return-object v0 + + .line 318 + :catch_0 + move-exception v0 + + .line 320 + const-string v0, "" + + move-object v0, v2 + + goto :goto_0 +.end method + +.method private declared-synchronized handleSessionStatus(Z)V + .locals 6 + + .prologue + .line 824 + monitor-enter p0 + + :try_start_0 + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v0 + + .line 825 + if-eqz p1, :cond_3 + + .line 826 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + if-eqz v2, :cond_1 + + .line 848 + :cond_0 + :goto_0 + monitor-exit p0 + + return-void + + .line 829 + :cond_1 + :try_start_1 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-nez v2, :cond_2 + + .line 830 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->createNewSession()V + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + .catchall {:try_start_1 .. :try_end_1} :catchall_0 + + goto :goto_0 + + .line 845 + :catch_0 + move-exception v0 + + .line 846 + :try_start_2 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync 3" + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + :try_end_2 + .catchall {:try_start_2 .. :try_end_2} :catchall_0 + + goto :goto_0 + + .line 824 + :catchall_0 + move-exception v0 + + monitor-exit p0 + + throw v0 + + .line 832 + :cond_2 + :try_start_3 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + iget-wide v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + sub-long/2addr v0, v4 + + add-long/2addr v0, v2 + + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->totalIdleTime:J + + .line 833 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + goto :goto_0 + + .line 836 + :cond_3 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + if-nez v2, :cond_4 + + .line 837 + iget-wide v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + sub-long/2addr v0, v2 + + iget v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + int-to-long v2, v2 + + cmp-long v0, v0, v2 + + if-lez v0, :cond_0 + + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInSession:Z + + if-eqz v0, :cond_0 + + .line 839 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->endSession()V + + goto :goto_0 + + .line 841 + :cond_4 + iput-wide v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionEndTime:J + + .line 842 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + .line 843 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + invoke-virtual {v0}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->stopLocation()V + :try_end_3 + .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0 + .catchall {:try_start_3 .. :try_end_3} :catchall_0 + + goto :goto_0 +.end method + +.method static hasPref(Ljava/lang/String;)Z + .locals 1 + + .prologue + .line 325 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0, p0}, Landroid/content/SharedPreferences;->contains(Ljava/lang/String;)Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v0 + + .line 328 + :goto_0 + return v0 + + .line 326 + :catch_0 + move-exception v0 + + .line 328 + const/4 v0, 0x0 + + goto :goto_0 +.end method + +.method private initialize(Landroid/app/Activity;Ljava/lang/String;I)V + .locals 7 + + .prologue + const/4 v6, 0x0 + + const/4 v5, 0x0 + + const-string v4, "" + + const-string v3, "null" + + .line 455 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + .line 456 + iput-object p2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 457 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + if-eqz v0, :cond_0 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 458 + :cond_0 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + .line 459 + :cond_1 + sget-object v0, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + .line 460 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + if-eqz v0, :cond_2 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_3 + + .line 461 + :cond_2 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + .line 465 + :cond_3 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "phone" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/telephony/TelephonyManager; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 469 + :goto_0 + invoke-virtual {p1}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; + + move-result-object v1 + + const-string v2, "android_id" + + invoke-static {v1, v2}, Landroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + iput-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + .line 471 + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + if-eqz v1, :cond_4 + + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + const-string v2, "" + + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_5 + + .line 472 + :cond_4 + const-string v1, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + .line 474 + :cond_5 + invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + .line 475 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + if-eqz v0, :cond_6 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_7 + + .line 476 + :cond_6 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + .line 478 + :cond_7 + sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + .line 479 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + if-eqz v0, :cond_8 + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_9 + + .line 480 + :cond_8 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + .line 482 + :cond_9 + sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String; + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + .line 483 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + if-eqz v0, :cond_a + + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_b + + .line 485 + :cond_a + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + .line 488 + :cond_b + iput p3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + .line 490 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + .line 491 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + .line 492 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + .line 493 + iput-boolean v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + .line 494 + iput-object v6, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationCriteria:Landroid/location/Criteria; + + .line 495 + iput-boolean v5, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + .line 496 + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 497 + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v0 + + invoke-virtual {v0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 499 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + invoke-static {v0}, Landroid/webkit/CookieSyncManager;->createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager; + + .line 501 + new-instance v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$2; + + invoke-direct {v0, p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$2;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationHandler:Landroid/os/Handler; + + .line 506 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p1}, Landroid/app/Activity;->getPackageName()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 + + const-string v1, ".MCConfig" + + 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 + + invoke-virtual {p1, v0, v5}, Landroid/app/Activity;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + .line 509 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + iget v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->idleTimeout:I + + invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I + + move-result v0 + + iput v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + .line 510 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sessionPollingTimer:Ljava/util/Timer; + + new-instance v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling; + + invoke-direct {v1, p0, v6}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$SessionPolling;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;)V + + const-wide/16 v2, 0x0 + + iget v4, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->pollTime:I + + int-to-long v4, v4 + + invoke-virtual/range {v0 .. v5}, Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V + + .line 512 + return-void + + .line 467 + :catch_0 + move-exception v0 + + move-object v0, v6 + + goto/16 :goto_0 +.end method + +.method public static final logEvent(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V + .locals 5 + + .prologue + const-string v0, "UTF-8" + + const-string v2, "DoodleMobile" + + .line 672 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + if-nez v0, :cond_1 + + .line 673 + const-string v0, "mobclix-controller" + + const-string v1, "logEvent failed - You must initialize DoodleMobileAnaylise by calling DoodleMobileAnaylise.onCreate(this)." + + invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I + + .line 717 + :cond_0 + :goto_0 + return-void + + .line 678 + :cond_1 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + if-lt p0, v0, :cond_0 + + .line 682 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v0, p1}, 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 + + invoke-virtual {v0, p2}, 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 + + invoke-virtual {v0, p3}, 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 + + .line 684 + sparse-switch p0, :sswitch_data_0 + + .line 702 + :goto_1 + :try_start_0 + new-instance v0, Lorg/json/JSONObject; + + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v1, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const/4 v2, 0x4 + + new-array v2, v2, [Ljava/lang/String; + + const/4 v3, 0x0 + + const-string v4, "ts" + + aput-object v4, v2, v3 + + const/4 v3, 0x1 + + const-string v4, "ll" + + aput-object v4, v2, v3 + + const/4 v3, 0x2 + + const-string v4, "g" + + aput-object v4, v2, v3 + + const/4 v3, 0x3 + + const-string v4, "id" + + aput-object v4, v2, v3 + + invoke-direct {v0, v1, v2}, Lorg/json/JSONObject;->(Lorg/json/JSONObject;[Ljava/lang/String;)V + + .line 704 + const-string v1, "el" + + invoke-static {p0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 705 + const-string v1, "ep" + + const-string v2, "UTF-8" + + invoke-static {p1, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 706 + const-string v1, "en" + + const-string v2, "UTF-8" + + invoke-static {p2, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 707 + const-string v1, "ed" + + const-string v2, "UTF-8" + + invoke-static {p3, v2}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 708 + const-string v1, "et" + + invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/Thread;->getId()J + + move-result-wide v2 + + invoke-static {v2, v3}, Ljava/lang/Long;->toString(J)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 709 + const-string v1, "es" + + if-eqz p4, :cond_2 + + const-string v2, "1" + + :goto_2 + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 710 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + .line 711 + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + .line 712 + new-instance v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent; + + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + invoke-direct {v2, v1, v0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$LogEvent;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;Lorg/json/JSONObject;)V + + .line 713 + new-instance v0, Ljava/lang/Thread; + + invoke-direct {v0, v2}, Ljava/lang/Thread;->(Ljava/lang/Runnable;)V + + .line 714 + invoke-virtual {v0}, Ljava/lang/Thread;->start()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto/16 :goto_0 + + .line 715 + :catch_0 + move-exception v0 + + goto/16 :goto_0 + + .line 686 + :sswitch_0 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 689 + :sswitch_1 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 692 + :sswitch_2 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 695 + :sswitch_3 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 698 + :sswitch_4 + const-string v1, "DoodleMobile" + + invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto/16 :goto_1 + + .line 709 + :cond_2 + :try_start_1 + const-string v2, "0" + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_2 + + .line 684 + :sswitch_data_0 + .sparse-switch + 0x1 -> :sswitch_0 + 0x2 -> :sswitch_1 + 0x4 -> :sswitch_2 + 0x8 -> :sswitch_3 + 0x10 -> :sswitch_4 + .end sparse-switch +.end method + +.method public static final declared-synchronized onCreate(Landroid/app/Activity;)V + .locals 7 + + .prologue + const/4 v5, 0x0 + + const-string v0, "ssc" + + const-string v0, "DoodleMobileAnaylise" + + const-string v0, "doodle_mobile_appid" + + .line 520 + const-class v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + monitor-enter v0 + + if-eqz p0, :cond_0 + + .line 521 + :try_start_0 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {p0}, Landroid/app/Activity;->getApplicationContext()Landroid/content/Context; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_8 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + .line 525 + :cond_0 + :goto_0 + :try_start_1 + sget-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + :try_end_1 + .catchall {:try_start_1 .. :try_end_1} :catchall_0 + + if-nez v1, :cond_4 + + .line 528 + :try_start_2 + invoke-virtual {p0}, Landroid/app/Activity;->getPackageName()Ljava/lang/String; + + move-result-object v1 + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + :try_end_2 + .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_7 + .catchall {:try_start_2 .. :try_end_2} :catchall_0 + + .line 531 + :goto_1 + const/4 v1, 0x0 + + :try_start_3 + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + :try_end_3 + .catchall {:try_start_3 .. :try_end_3} :catchall_0 + + .line 533 + :try_start_4 + invoke-virtual {p0}, Landroid/app/Activity;->getPackageManager()Landroid/content/pm/PackageManager; + + move-result-object v1 + + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->packageName:Ljava/lang/String; + + const/16 v3, 0x80 + + invoke-virtual {v1, v2, v3}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; + + move-result-object v1 + + sput-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + :try_end_4 + .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_4 .. :try_end_4} :catch_0 + .catchall {:try_start_4 .. :try_end_4} :catchall_0 + + .line 541 + :goto_2 + :try_start_5 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v2, "doodle_mobile_appid" + + invoke-virtual {v1, v2}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; + :try_end_5 + .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_1 + .catchall {:try_start_5 .. :try_end_5} :catchall_0 + + move-result-object v1 + + .line 543 + :try_start_6 + const-string v2, "ssc" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "applicationID 1 is " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v3 + + invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + :try_end_6 + .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_6} :catch_6 + .catchall {:try_start_6 .. :try_end_6} :catchall_0 + + .line 554 + :goto_3 + if-nez v1, :cond_1 + + .line 556 + :try_start_7 + sget-object v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v2, v2, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v3, "doodle_mobile_appid" + + invoke-virtual {v2, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I + + move-result v2 + + invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + :try_end_7 + .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_3 + .catchall {:try_start_7 .. :try_end_7} :catchall_0 + + move-result-object v1 + + .line 562 + :cond_1 + :goto_4 + if-nez v1, :cond_2 + + .line 565 + :try_start_8 + new-instance v1, Landroid/content/res/Resources$NotFoundException; + + const-string v2, "doodle_mobile_appid not found in the Android Manifest xml." + + invoke-direct {v1, v2}, Landroid/content/res/Resources$NotFoundException;->(Ljava/lang/String;)V + + throw v1 + :try_end_8 + .catchall {:try_start_8 .. :try_end_8} :catchall_0 + + .line 520 + :catchall_0 + move-exception v1 + + monitor-exit v0 + + throw v1 + + .line 535 + :catch_0 + move-exception v1 + + .line 536 + :try_start_9 + const-string v1, "mobclix-controller" + + const-string v2, "Application Key Started" + + invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I + + goto :goto_2 + + .line 544 + :catch_1 + move-exception v1 + + move-object v2, v5 + + .line 545 + :goto_5 + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V + :try_end_9 + .catchall {:try_start_9 .. :try_end_9} :catchall_0 + + .line 547 + :try_start_a + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v3, "doodle_mobile_appid" + + invoke-virtual {v1, v3}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I + + move-result v1 + + invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + :try_end_a + .catch Ljava/lang/Exception; {:try_start_a .. :try_end_a} :catch_2 + .catchall {:try_start_a .. :try_end_a} :catchall_0 + + move-result-object v1 + + goto :goto_3 + + .line 549 + :catch_2 + move-exception v1 + + .line 550 + :try_start_b + invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V + + move-object v1, v2 + + goto :goto_3 + + .line 558 + :catch_3 + move-exception v2 + + .line 559 + invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V + + goto :goto_4 + + .line 568 + :cond_2 + const-string v2, "DoodleMobileAnaylise" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "applicationId = " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v2, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + :try_end_b + .catchall {:try_start_b .. :try_end_b} :catchall_0 + + .line 571 + :try_start_c + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationInfo:Landroid/content/pm/ApplicationInfo; + + iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->metaData:Landroid/os/Bundle; + + const-string v2, "doodle_mobile_loglevel" + + invoke-virtual {v1, v2}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; + :try_end_c + .catch Ljava/lang/Exception; {:try_start_c .. :try_end_c} :catch_4 + .catchall {:try_start_c .. :try_end_c} :catchall_0 + + move-result-object v1 + + .line 577 + :goto_6 + if-eqz v1, :cond_3 + + .line 578 + :try_start_d + const-string v2, "debug" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + :try_end_d + .catchall {:try_start_d .. :try_end_d} :catchall_0 + + move-result v2 + + if-eqz v2, :cond_5 + + .line 593 + :cond_3 + :goto_7 + :try_start_e + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-virtual {v1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateSession()V + + .line 595 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/Locale;->getCountry()Ljava/lang/String; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + .line 596 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; + + move-result-object v2 + + iput-object v2, v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + .line 597 + const-string v1, "ssc" + + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + const-string v3, "doolemobilea 585 " + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v3, v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + sget-object v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v3, v3, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + invoke-virtual {v2, v3}, 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 v2 + + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 599 + sget v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->SYNC_READY:I + + sput v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->syncStatus:I + + .line 601 + const/4 v1, 0x1 + + sput-boolean v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + :try_end_e + .catch Ljava/lang/Exception; {:try_start_e .. :try_end_e} :catch_5 + .catchall {:try_start_e .. :try_end_e} :catchall_0 + + .line 606 + :cond_4 + :goto_8 + :try_start_f + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + const/4 v2, 0x1 + + invoke-direct {v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + :try_end_f + .catchall {:try_start_f .. :try_end_f} :catchall_0 + + .line 607 + monitor-exit v0 + + return-void + + .line 573 + :catch_4 + move-exception v1 + + move-object v1, v5 + + goto :goto_6 + + .line 580 + :cond_5 + :try_start_10 + const-string v2, "info" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 582 + const-string v2, "warn" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 584 + const-string v2, "error" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v2 + + if-nez v2, :cond_3 + + .line 586 + const-string v2, "fatal" + + invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z + + move-result v1 + + if-eqz v1, :cond_3 + + goto :goto_7 + + .line 602 + :catch_5 + move-exception v1 + + .line 603 + const-string v1, "DoodleMobileAnaylise" + + const-string v2, "has exception" + + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + :try_end_10 + .catchall {:try_start_10 .. :try_end_10} :catchall_0 + + goto :goto_8 + + .line 544 + :catch_6 + move-exception v2 + + move-object v6, v2 + + move-object v2, v1 + + move-object v1, v6 + + goto/16 :goto_5 + + .line 529 + :catch_7 + move-exception v1 + + goto/16 :goto_1 + + .line 522 + :catch_8 + move-exception v1 + + goto/16 :goto_0 +.end method + +.method public static final declared-synchronized onStop(Landroid/app/Activity;)V + .locals 3 + + .prologue + .line 610 + const-class v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + monitor-enter v0 + + :try_start_0 + sget-object v1, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + const/4 v2, 0x0 + + invoke-direct {v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->handleSessionStatus(Z)V + :try_end_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + .line 612 + monitor-exit v0 + + return-void + + .line 610 + :catchall_0 + move-exception v1 + + monitor-exit v0 + + throw v1 +.end method + +.method static removePref(Ljava/lang/String;)V + .locals 1 + + .prologue + .line 355 + :try_start_0 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->controller:Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise; + + iget-object v0, v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->sharedPrefs:Landroid/content/SharedPreferences; + + invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; + + move-result-object v0 + + .line 356 + invoke-interface {v0, p0}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; + + .line 357 + invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 360 + :goto_0 + return-void + + .line 358 + :catch_0 + move-exception v0 + + goto :goto_0 +.end method + +.method private static sha1(Ljava/lang/String;)Ljava/lang/String; + .locals 4 + + .prologue + const/4 v3, 0x0 + + .line 372 + const/16 v0, 0x28 + + new-array v0, v0, [B + + .line 375 + :try_start_0 + const-string v0, "SHA-1" + + invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; + :try_end_0 + .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-object v0 + + .line 380 + invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B + + move-result-object v1 + + invoke-virtual {p0}, Ljava/lang/String;->length()I + + move-result v2 + + invoke-virtual {v0, v1, v3, v2}, Ljava/security/MessageDigest;->update([BII)V + + .line 381 + invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B + + move-result-object v0 + + .line 382 + new-instance v1, Ljava/lang/StringBuffer; + + invoke-direct {v1}, Ljava/lang/StringBuffer;->()V + + move v2, v3 + + .line 383 + :goto_0 + array-length v3, v0 + + if-ge v2, v3, :cond_0 + + .line 384 + aget-byte v3, v0, v2 + + and-int/lit16 v3, v3, 0xff + + invoke-static {v3}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String; + + move-result-object v3 + + invoke-virtual {v1, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 383 + add-int/lit8 v2, v2, 0x1 + + goto :goto_0 + + .line 376 + :catch_0 + move-exception v0 + + .line 377 + new-instance v1, Ljava/lang/RuntimeException; + + invoke-direct {v1, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V + + throw v1 + + .line 386 + :cond_0 + invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method + +.method public static final sync()V + .locals 3 + + .prologue + const v2, 0x186a1 + + .line 792 + sget-boolean v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isInitialized:Z + + if-nez v0, :cond_0 + + .line 793 + const-string v0, "mobclix-controller" + + const-string v1, "sync failed - You must initialize DoodleMobileAnaylise by calling DoodleMobileAnaylise.onCreate(this)." + + invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I + + .line 801 + :goto_0 + return-void + + .line 798 + :cond_0 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "static sync " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 799 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + invoke-virtual {v0, v2}, Landroid/os/Handler;->removeMessages(I)V + + .line 800 + sget-object v0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->mSyncHandler:Landroid/os/Handler; + + invoke-virtual {v0, v2}, Landroid/os/Handler;->sendEmptyMessage(I)Z + + goto :goto_0 +.end method + +.method static syncCookiesToCookieManager(Lorg/apache/http/client/CookieStore;Ljava/lang/String;)V + .locals 7 + + .prologue + const-string v0, "DoodleMobileAnaylise" + + .line 911 + :try_start_0 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "syncCookieManager " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 912 + invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; + + move-result-object v0 + + .line 913 + invoke-interface {p0}, Lorg/apache/http/client/CookieStore;->getCookies()Ljava/util/List; + + move-result-object v1 + + .line 914 + new-instance v2, Ljava/lang/StringBuffer; + + invoke-direct {v2}, Ljava/lang/StringBuffer;->()V + + .line 915 + invoke-interface {v1}, Ljava/util/List;->isEmpty()Z + + move-result v3 + + if-nez v3, :cond_4 + + .line 916 + const/4 v3, 0x0 + + :goto_0 + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v4 + + if-ge v3, v4, :cond_3 + + .line 917 + invoke-interface {v1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Lorg/apache/http/cookie/Cookie; + + .line 918 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getName()Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + const-string v5, "=" + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getValue()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 921 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getExpiryDate()Ljava/util/Date; + + move-result-object v4 + + if-eqz v4, :cond_0 + + .line 922 + new-instance v4, Ljava/text/SimpleDateFormat; + + const-string v5, "E, dd-MMM-yyyy HH:mm:ss" + + invoke-direct {v4, v5}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V + + .line 924 + const-string v5, "; expires=" + + invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v5 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getExpiryDate()Ljava/util/Date; + + move-result-object v6 + + invoke-virtual {v4, v6}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v5, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + const-string v5, " GMT" + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 928 + :cond_0 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getPath()Ljava/lang/String; + + move-result-object v4 + + if-eqz v4, :cond_1 + + .line 929 + const-string v4, "; path=" + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getPath()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 931 + :cond_1 + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getDomain()Ljava/lang/String; + + move-result-object v4 + + if-eqz v4, :cond_2 + + .line 932 + const-string v4, "; domain=" + + invoke-virtual {v2, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + move-result-object v4 + + invoke-interface {p0}, Lorg/apache/http/cookie/Cookie;->getDomain()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; + + .line 935 + :cond_2 + invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; + + move-result-object v4 + + .line 937 + invoke-virtual {v0, p1, v4}, Landroid/webkit/CookieManager;->setCookie(Ljava/lang/String;Ljava/lang/String;)V + + .line 916 + add-int/lit8 v3, v3, 0x1 + + goto :goto_0 + + .line 939 + :cond_3 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "before syn " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 940 + invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/webkit/CookieSyncManager;->sync()V + + .line 941 + const-string v0, "DoodleMobileAnaylise" + + const-string v1, "after syn " + + invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + .line 943 + invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/webkit/CookieSyncManager;->stopSync()V + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + .line 947 + :cond_4 + :goto_1 + return-void + + .line 945 + :catch_0 + move-exception v0 + + goto :goto_1 +.end method + +.method private updateConnectivity()V + .locals 4 + + .prologue + const-string v3, "null" + + .line 425 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "connectivity" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/net/ConnectivityManager; + + .line 427 + const-string v1, "u" + + .line 429 + iget-boolean v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveNetworkStatePermission:Z + + if-eqz v2, :cond_4 + + .line 430 + invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo; + + move-result-object v0 + + .line 432 + if-eqz v0, :cond_4 + + .line 433 + invoke-virtual {v0}, Landroid/net/NetworkInfo;->getTypeName()Ljava/lang/String; + + move-result-object v0 + + .line 436 + :goto_0 + const-string v1, "WI_FI" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_0 + + const-string v1, "WIFI" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_2 + + .line 437 + :cond_0 + const-string v0, "wifi" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 446 + :goto_1 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + if-nez v0, :cond_1 + + .line 447 + const-string v0, "null" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + .line 451 + :cond_1 + :goto_2 + return-void + + .line 438 + :cond_2 + const-string v1, "MOBILE" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_3 + + .line 439 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + const-string v1, "phone" + + invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/telephony/TelephonyManager; + + .line 441 + invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getNetworkType()I + + move-result v0 + + .line 442 + invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_1 + + .line 448 + :catch_0 + move-exception v0 + + .line 449 + const-string v0, "null" + + iput-object v3, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + goto :goto_2 + + .line 444 + :cond_3 + :try_start_1 + const-string v0, "null" + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + :try_end_1 + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_1 + + :cond_4 + move-object v0, v1 + + goto :goto_0 +.end method + +.method private updateLocation()V + .locals 3 + + .prologue + .line 409 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->location:Lcom/doodlemobile/gamecenter/DoodleMobileLocation; + + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + new-instance v2, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1; + + invoke-direct {v2, p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise$1;->(Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;)V + + invoke-virtual {v0, v1, v2}, Lcom/doodlemobile/gamecenter/DoodleMobileLocation;->getLocation(Landroid/content/Context;Lcom/doodlemobile/gamecenter/DoodleMobileLocation$LocationResult;)Z + + .line 421 + return-void +.end method + + +# virtual methods +.method protected finalize()V + .locals 0 + + .prologue + .line 896 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->endSession()V + + .line 897 + return-void +.end method + +.method getAnalyticsServer()Ljava/lang/String; + .locals 1 + + .prologue + .line 289 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->analyticsServer:Ljava/lang/String; + + return-object v0 +.end method + +.method getAndroidId()Ljava/lang/String; + .locals 1 + + .prologue + .line 218 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getAndroidVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 205 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->androidVersion:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getApplicationId()Ljava/lang/String; + .locals 1 + + .prologue + .line 201 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getApplicationVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 209 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->applicationVersion:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getConfigServer()Ljava/lang/String; + .locals 1 + + .prologue + .line 285 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->configServer:Ljava/lang/String; + + return-object v0 +.end method + +.method getConnectionType()Ljava/lang/String; + .locals 1 + + .prologue + .line 231 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getContext()Landroid/content/Context; + .locals 1 + + .prologue + .line 197 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + return-object v0 +.end method + +.method getDeviceHardwareModel()Ljava/lang/String; + .locals 1 + + .prologue + .line 226 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceHardwareModel:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getDeviceId()Ljava/lang/String; + .locals 1 + + .prologue + .line 214 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceId:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getDeviceModel()Ljava/lang/String; + .locals 1 + + .prologue + .line 222 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->deviceModel:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getGPS()Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "null" + + .line 243 + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLatitude()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "null" + + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_0 + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLongitude()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "null" + + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 244 + :cond_0 + const-string v0, "null" + + move-object v0, v2 + + .line 245 + :goto_0 + return-object v0 + + :cond_1 + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLatitude()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 + + const-string v1, "," + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getLongitude()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 + + goto :goto_0 +.end method + +.method getLanguage()Ljava/lang/String; + .locals 1 + + .prologue + .line 249 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->language:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLatitude()Ljava/lang/String; + .locals 1 + + .prologue + .line 235 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->latitude:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLocale()Ljava/lang/String; + .locals 1 + + .prologue + .line 253 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locale:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getLogLevel()I + .locals 1 + + .prologue + .line 261 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->logLevel:I + + return v0 +.end method + +.method getLongitude()Ljava/lang/String; + .locals 1 + + .prologue + .line 239 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + if-nez v0, :cond_0 + + const-string v0, "null" + + :goto_0 + return-object v0 + + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->longitude:Ljava/lang/String; + + goto :goto_0 +.end method + +.method getMobclixVersion()Ljava/lang/String; + .locals 1 + + .prologue + .line 257 + const-string v0, "2.3" + + return-object v0 +.end method + +.method getRefreshTime(Ljava/lang/String;)J + .locals 2 + + .prologue + .line 278 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->refreshTime:Ljava/util/HashMap; + + invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/Long; + + invoke-virtual {p0}, Ljava/lang/Long;->longValue()J + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result-wide v0 + + .line 281 + :goto_0 + return-wide v0 + + .line 279 + :catch_0 + move-exception v0 + + .line 281 + const-wide/16 v0, -0x1 + + goto :goto_0 +.end method + +.method getUserAgent()Ljava/lang/String; + .locals 3 + + .prologue + const-string v2, "UserAgent" + + .line 297 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + const-string v1, "" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + const-string v0, "UserAgent" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->hasPref(Ljava/lang/String;)Z + + move-result v0 + + if-eqz v0, :cond_0 + + .line 298 + const-string v0, "UserAgent" + + invoke-static {v2}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getPref(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 299 + :cond_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + return-object v0 +.end method + +.method isEnabled(Ljava/lang/String;)Z + .locals 1 + + .prologue + .line 270 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->enabled:Ljava/util/HashMap; + + invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object p0 + + check-cast p0, Ljava/lang/Boolean; + + invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z + :try_end_0 + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v0 + + .line 273 + :goto_0 + return v0 + + .line 271 + :catch_0 + move-exception v0 + + .line 273 + const/4 v0, 0x1 + + goto :goto_0 +.end method + +.method isRemoteConfigSet()I + .locals 1 + + .prologue + .line 293 + iget v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->remoteConfigSet:I + + return v0 +.end method + +.method isTopTask()Z + .locals 1 + + .prologue + .line 265 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->isTopTask:Z + + return v0 +.end method + +.method setContext(Landroid/app/Activity;)V + .locals 0 + + .prologue + .line 193 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->context:Landroid/content/Context; + + .line 194 + return-void +.end method + +.method setUserAgent(Ljava/lang/String;)V + .locals 1 + + .prologue + .line 303 + iput-object p1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->userAgent:Ljava/lang/String; + + .line 304 + const-string v0, "UserAgent" + + invoke-static {v0, p1}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->addPref(Ljava/lang/String;Ljava/lang/String;)V + + .line 305 + return-void +.end method + +.method updateSession()V + .locals 4 + + .prologue + const-string v0, "ll" + + .line 391 + invoke-direct {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->updateConnectivity()V + + .line 393 + iget-boolean v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->haveLocationPermission:Z + + if-eqz v0, :cond_0 + + .line 394 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->locationHandler:Landroid/os/Handler; + + const/4 v1, 0x0 + + invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z + + .line 397 + :cond_0 + :try_start_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "ts" + + invoke-static {}, Ljava/lang/System;->currentTimeMillis()J + + move-result-wide v2 + + invoke-virtual {v0, v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; + + .line 398 + invoke-virtual {p0}, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->getGPS()Ljava/lang/String; + + move-result-object v0 + + .line 399 + const-string v1, "null" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_1 + + .line 400 + iget-object v1, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v2, "ll" + + invoke-virtual {v1, v2, v0}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 403 + :goto_0 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "g" + + iget-object v2, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->connectionType:Ljava/lang/String; + + invoke-virtual {v0, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; + + .line 406 + :goto_1 + return-void + + .line 402 + :cond_1 + iget-object v0, p0, Lcom/doodlemobile/gamecenter/DoodleMobileAnaylise;->session:Lorg/json/JSONObject; + + const-string v1, "ll" + + invoke-virtual {v0, v1}, Lorg/json/JSONObject;->remove(Ljava/lang/String;)Ljava/lang/Object; + :try_end_0 + .catch Lorg/json/JSONException; {:try_start_0 .. :try_end_0} :catch_0 + + goto :goto_0 + + .line 404 + :catch_0 + move-exception v0 + + goto :goto_1 +.end method diff --git a/samples/Smali/ModernAsyncTask.smali b/samples/Smali/ModernAsyncTask.smali new file mode 100644 index 00000000..6803b9d6 --- /dev/null +++ b/samples/Smali/ModernAsyncTask.smali @@ -0,0 +1,700 @@ +.class abstract Landroid/support/v4/content/ModernAsyncTask; +.super Ljava/lang/Object; +.source "ModernAsyncTask.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/content/ModernAsyncTask$4;, + Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;, + Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;, + Landroid/support/v4/content/ModernAsyncTask$InternalHandler;, + Landroid/support/v4/content/ModernAsyncTask$Status; + } +.end annotation + +.annotation system Ldalvik/annotation/Signature; + value = { + "", + "Ljava/lang/Object;" + } +.end annotation + + +# static fields +.field private static final CORE_POOL_SIZE:I = 0x5 + +.field private static final KEEP_ALIVE:I = 0x1 + +.field private static final LOG_TAG:Ljava/lang/String; = "AsyncTask" + +.field private static final MAXIMUM_POOL_SIZE:I = 0x80 + +.field private static final MESSAGE_POST_PROGRESS:I = 0x2 + +.field private static final MESSAGE_POST_RESULT:I = 0x1 + +.field public static final THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + +.field private static volatile sDefaultExecutor:Ljava/util/concurrent/Executor; + +.field private static final sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + +.field private static final sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/BlockingQueue", + "<", + "Ljava/lang/Runnable;", + ">;" + } + .end annotation +.end field + +.field private static final sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + +# instance fields +.field private final mFuture:Ljava/util/concurrent/FutureTask; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/concurrent/FutureTask", + ";" + } + .end annotation +.end field + +.field private volatile mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + +.field private final mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + +.field private final mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + .annotation system Ldalvik/annotation/Signature; + value = { + "Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable", + ";" + } + .end annotation +.end field + + +# direct methods +.method static constructor ()V + .registers 8 + + .prologue + .line 54 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$1; + + invoke-direct {v0}, Landroid/support/v4/content/ModernAsyncTask$1;->()V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + .line 62 + new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue; + + const/16 v1, 0xa + + invoke-direct {v0, v1}, Ljava/util/concurrent/LinkedBlockingQueue;->(I)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + + .line 68 + new-instance v0, Ljava/util/concurrent/ThreadPoolExecutor; + + const/4 v1, 0x5 + + const/16 v2, 0x80 + + const-wide/16 v3, 0x1 + + sget-object v5, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; + + sget-object v6, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue; + + sget-object v7, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory; + + invoke-direct/range {v0 .. v7}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + + .line 75 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + const/4 v1, 0x0 + + invoke-direct {v0, v1}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->(Landroid/support/v4/content/ModernAsyncTask$1;)V + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + .line 77 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; + + sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + return-void +.end method + +.method public constructor ()V + .registers 3 + + .prologue + .line 117 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 81 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 83 + new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean; + + invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->()V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + .line 118 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$2; + + invoke-direct {v0, p0}, Landroid/support/v4/content/ModernAsyncTask$2;->(Landroid/support/v4/content/ModernAsyncTask;)V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + .line 127 + new-instance v0, Landroid/support/v4/content/ModernAsyncTask$3; + + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + invoke-direct {v0, p0, v1}, Landroid/support/v4/content/ModernAsyncTask$3;->(Landroid/support/v4/content/ModernAsyncTask;Ljava/util/concurrent/Callable;)V + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + .line 147 + return-void +.end method + +.method static synthetic access$200(Landroid/support/v4/content/ModernAsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean; + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + + .prologue + .line 47 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + return-object v0 +.end method + +.method static synthetic access$300(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)Ljava/lang/Object; + .registers 3 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method static synthetic access$400(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V + + return-void +.end method + +.method static synthetic access$500(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V + .registers 2 + .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask; + .param p1, "x1" # Ljava/lang/Object; + + .prologue + .line 47 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->finish(Ljava/lang/Object;)V + + return-void +.end method + +.method public static execute(Ljava/lang/Runnable;)V + .registers 2 + .param p0, "runnable" # Ljava/lang/Runnable; + + .prologue + .line 433 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + invoke-interface {v0, p0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V + + .line 434 + return-void +.end method + +.method private finish(Ljava/lang/Object;)V + .registers 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 458 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z + + move-result v0 + + if-eqz v0, :cond_e + + .line 459 + invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled(Ljava/lang/Object;)V + + .line 463 + :goto_9 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->FINISHED:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 464 + return-void + + .line 461 + :cond_e + invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onPostExecute(Ljava/lang/Object;)V + + goto :goto_9 +.end method + +.method public static init()V + .registers 1 + + .prologue + .line 106 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + invoke-virtual {v0}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->getLooper()Landroid/os/Looper; + + .line 107 + return-void +.end method + +.method private postResult(Ljava/lang/Object;)Ljava/lang/Object; + .registers 8 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)TResult;" + } + .end annotation + + .prologue + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + const/4 v5, 0x1 + + .line 157 + sget-object v1, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult; + + new-array v3, v5, [Ljava/lang/Object; + + const/4 v4, 0x0 + + aput-object p1, v3, v4 + + invoke-direct {v2, p0, v3}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;->(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V + + invoke-virtual {v1, v5, v2}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; + + move-result-object v0 + + .line 159 + .local v0, "message":Landroid/os/Message; + invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V + + .line 160 + return-object p1 +.end method + +.method private postResultIfNotInvoked(Ljava/lang/Object;)V + .registers 4 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 150 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean; + + invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z + + move-result v0 + + .line 151 + .local v0, "wasTaskInvoked":Z + if-nez v0, :cond_b + + .line 152 + invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; + + .line 154 + :cond_b + return-void +.end method + +.method public static setDefaultExecutor(Ljava/util/concurrent/Executor;)V + .registers 1 + .param p0, "exec" # Ljava/util/concurrent/Executor; + + .prologue + .line 111 + sput-object p0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + .line 112 + return-void +.end method + + +# virtual methods +.method public final cancel(Z)Z + .registers 3 + .param p1, "mayInterruptIfRunning" # Z + + .prologue + .line 306 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0, p1}, Ljava/util/concurrent/FutureTask;->cancel(Z)Z + + move-result v0 + + return v0 +.end method + +.method protected varargs abstract doInBackground([Ljava/lang/Object;)Ljava/lang/Object; + .annotation system Ldalvik/annotation/Signature; + value = { + "([TParams;)TResult;" + } + .end annotation +.end method + +.method public final varargs execute([Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + .registers 3 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TParams;)", + "Landroid/support/v4/content/ModernAsyncTask", + ";" + } + .end annotation + + .prologue + .line 371 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "params":[Ljava/lang/Object;, "[TParams;" + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor; + + invoke-virtual {p0, v0, p1}, Landroid/support/v4/content/ModernAsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + + move-result-object v0 + + return-object v0 +.end method + +.method public final varargs executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask; + .registers 5 + .param p1, "exec" # Ljava/util/concurrent/Executor; + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/util/concurrent/Executor;", + "[TParams;)", + "Landroid/support/v4/content/ModernAsyncTask", + ";" + } + .end annotation + + .prologue + .line 406 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p2, "params":[Ljava/lang/Object;, "[TParams;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + sget-object v1, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status; + + if-eq v0, v1, :cond_13 + + .line 407 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$4;->$SwitchMap$android$support$v4$content$ModernAsyncTask$Status:[I + + iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + invoke-virtual {v1}, Landroid/support/v4/content/ModernAsyncTask$Status;->ordinal()I + + move-result v1 + + aget v0, v0, v1 + + packed-switch v0, :pswitch_data_34 + + .line 418 + :cond_13 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->RUNNING:Landroid/support/v4/content/ModernAsyncTask$Status; + + iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + .line 420 + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onPreExecute()V + + .line 422 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable; + + iput-object p2, v0, Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;->mParams:[Ljava/lang/Object; + + .line 423 + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-interface {p1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V + + .line 425 + return-object p0 + + .line 409 + :pswitch_24 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot execute task: the task is already running." + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 412 + :pswitch_2c + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot execute task: the task has already been executed (a task can be executed only once)" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 407 + :pswitch_data_34 + .packed-switch 0x1 + :pswitch_24 + :pswitch_2c + .end packed-switch +.end method + +.method public final get()Ljava/lang/Object; + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "()TResult;" + } + .end annotation + + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/InterruptedException;, + Ljava/util/concurrent/ExecutionException; + } + .end annotation + + .prologue + .line 321 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->get()Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public final get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; + .registers 5 + .param p1, "timeout" # J + .param p3, "unit" # Ljava/util/concurrent/TimeUnit; + .annotation system Ldalvik/annotation/Signature; + value = { + "(J", + "Ljava/util/concurrent/TimeUnit;", + ")TResult;" + } + .end annotation + + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/InterruptedException;, + Ljava/util/concurrent/ExecutionException;, + Ljava/util/concurrent/TimeoutException; + } + .end annotation + + .prologue + .line 341 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0, p1, p2, p3}, Ljava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public final getStatus()Landroid/support/v4/content/ModernAsyncTask$Status; + .registers 2 + + .prologue + .line 169 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status; + + return-object v0 +.end method + +.method public final isCancelled()Z + .registers 2 + + .prologue + .line 273 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask; + + invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->isCancelled()Z + + move-result v0 + + return v0 +.end method + +.method protected onCancelled()V + .registers 1 + + .prologue + .line 260 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + return-void +.end method + +.method protected onCancelled(Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 244 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled()V + + .line 245 + return-void +.end method + +.method protected onPostExecute(Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "(TResult;)V" + } + .end annotation + + .prologue + .line 213 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "result":Ljava/lang/Object;, "TResult;" + return-void +.end method + +.method protected onPreExecute()V + .registers 1 + + .prologue + .line 197 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + return-void +.end method + +.method protected varargs onProgressUpdate([Ljava/lang/Object;)V + .registers 2 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TProgress;)V" + } + .end annotation + + .prologue + .line 226 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "values":[Ljava/lang/Object;, "[TProgress;" + return-void +.end method + +.method protected final varargs publishProgress([Ljava/lang/Object;)V + .registers 5 + .annotation system Ldalvik/annotation/Signature; + value = { + "([TProgress;)V" + } + .end annotation + + .prologue + .line 451 + .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask;" + .local p1, "values":[Ljava/lang/Object;, "[TProgress;" + invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z + + move-result v0 + + if-nez v0, :cond_15 + + .line 452 + sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler; + + const/4 v1, 0x2 + + new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult; + + invoke-direct {v2, p0, p1}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;->(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V + + .line 455 + :cond_15 + return-void +.end method diff --git a/samples/Smali/PenguinSprite.smali b/samples/Smali/PenguinSprite.smali new file mode 100644 index 00000000..a02c7913 --- /dev/null +++ b/samples/Smali/PenguinSprite.smali @@ -0,0 +1,781 @@ +.class public Lcom/tdq/game/shootbubble/sprite/PenguinSprite; +.super Lcom/tdq/game/shootbubble/sprite/Sprite; +.source "PenguinSprite.java" + + +# static fields +.field public static final LOST_SEQUENCE:[[I + +.field public static final STATE_FIRE:I = 0x2 + +.field public static final STATE_GAME_LOST:I = 0x5 + +.field public static final STATE_GAME_WON:I = 0x4 + +.field public static final STATE_TURN_LEFT:I = 0x0 + +.field public static final STATE_TURN_RIGHT:I = 0x1 + +.field public static final STATE_VOID:I = 0x3 + +.field public static final WON_SEQUENCE:[[I + + +# instance fields +.field private count:I + +.field private currentPenguin:I + +.field private finalState:I + +.field private nextPosition:I + +.field private rand:Ljava/util/Random; + +.field private spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + +# direct methods +.method static constructor ()V + .locals 8 + + .prologue + const/4 v7, 0x4 + + const/4 v6, 0x3 + + const/4 v5, 0x1 + + const/4 v4, 0x0 + + const/4 v3, 0x2 + + .line 67 + const/16 v0, 0x8 + + new-array v0, v0, [[I + + new-array v1, v3, [I + + fill-array-data v1, :array_0 + + aput-object v1, v0, v4 + + new-array v1, v3, [I + + fill-array-data v1, :array_1 + + aput-object v1, v0, v5 + + new-array v1, v3, [I + + fill-array-data v1, :array_2 + + aput-object v1, v0, v3 + + new-array v1, v3, [I + + fill-array-data v1, :array_3 + + aput-object v1, v0, v6 + + new-array v1, v3, [I + + fill-array-data v1, :array_4 + + aput-object v1, v0, v7 + + const/4 v1, 0x5 + + new-array v2, v3, [I + + fill-array-data v2, :array_5 + + aput-object v2, v0, v1 + + const/4 v1, 0x6 + + new-array v2, v3, [I + + fill-array-data v2, :array_6 + + aput-object v2, v0, v1 + + const/4 v1, 0x7 + + new-array v2, v3, [I + + fill-array-data v2, :array_7 + + aput-object v2, v0, v1 + + sput-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + .line 69 + const/16 v0, 0x8 + + new-array v0, v0, [[I + + new-array v1, v3, [I + + fill-array-data v1, :array_8 + + aput-object v1, v0, v4 + + new-array v1, v3, [I + + fill-array-data v1, :array_9 + + aput-object v1, v0, v5 + + new-array v1, v3, [I + + fill-array-data v1, :array_a + + aput-object v1, v0, v3 + + new-array v1, v3, [I + + fill-array-data v1, :array_b + + aput-object v1, v0, v6 + + new-array v1, v3, [I + + fill-array-data v1, :array_c + + aput-object v1, v0, v7 + + const/4 v1, 0x5 + + new-array v2, v3, [I + + fill-array-data v2, :array_d + + aput-object v2, v0, v1 + + const/4 v1, 0x6 + + new-array v2, v3, [I + + fill-array-data v2, :array_e + + aput-object v2, v0, v1 + + const/4 v1, 0x7 + + new-array v2, v3, [I + + fill-array-data v2, :array_f + + aput-object v2, v0, v1 + + sput-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + return-void + + .line 67 + :array_0 + .array-data 4 + 0x1 + 0x0 + .end array-data + + :array_1 + .array-data 4 + 0x2 + 0x8 + .end array-data + + :array_2 + .array-data 4 + 0x3 + 0x9 + .end array-data + + :array_3 + .array-data 4 + 0x4 + 0xa + .end array-data + + :array_4 + .array-data 4 + 0x5 + 0xb + .end array-data + + :array_5 + .array-data 4 + 0x6 + 0xc + .end array-data + + :array_6 + .array-data 4 + 0x7 + 0xd + .end array-data + + :array_7 + .array-data 4 + 0x5 + 0xe + .end array-data + + .line 69 + :array_8 + .array-data 4 + 0x1 + 0x0 + .end array-data + + :array_9 + .array-data 4 + 0x2 + 0x7 + .end array-data + + :array_a + .array-data 4 + 0x3 + 0x6 + .end array-data + + :array_b + .array-data 4 + 0x4 + 0xf + .end array-data + + :array_c + .array-data 4 + 0x5 + 0x10 + .end array-data + + :array_d + .array-data 4 + 0x6 + 0x11 + .end array-data + + :array_e + .array-data 4 + 0x7 + 0x12 + .end array-data + + :array_f + .array-data 4 + 0x4 + 0x13 + .end array-data +.end method + +.method public constructor (Lcom/tdq/game/shootbubble/sprite/BmpWrap;Ljava/util/Random;)V + .locals 6 + .param p1, "sprites" # Lcom/tdq/game/shootbubble/sprite/BmpWrap; + .param p2, "rand" # Ljava/util/Random; + + .prologue + const/4 v5, 0x0 + + .line 85 + new-instance v0, Landroid/graphics/Rect; + + const/16 v1, 0x169 + + const/16 v2, 0x1b4 + + const/16 v3, 0x1a0 + + const/16 v4, 0x1df + + invoke-direct {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->(IIII)V + + invoke-direct {p0, v0}, Lcom/tdq/game/shootbubble/sprite/Sprite;->(Landroid/graphics/Rect;)V + + .line 87 + iput-object p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + .line 88 + iput-object p2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + .line 90 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 92 + const/4 v0, 0x3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 93 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 94 + return-void +.end method + +.method public constructor (Lcom/tdq/game/shootbubble/sprite/BmpWrap;Ljava/util/Random;IIII)V + .locals 5 + .param p1, "sprites" # Lcom/tdq/game/shootbubble/sprite/BmpWrap; + .param p2, "rand" # Ljava/util/Random; + .param p3, "currentPenguin" # I + .param p4, "count" # I + .param p5, "finalState" # I + .param p6, "nextPosition" # I + + .prologue + .line 100 + new-instance v0, Landroid/graphics/Rect; + + const/16 v1, 0x169 + + const/16 v2, 0x1b4 + + const/16 v3, 0x1a0 + + const/16 v4, 0x1df + + invoke-direct {v0, v1, v2, v3, v4}, Landroid/graphics/Rect;->(IIII)V + + invoke-direct {p0, v0}, Lcom/tdq/game/shootbubble/sprite/Sprite;->(Landroid/graphics/Rect;)V + + .line 102 + iput-object p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + .line 103 + iput-object p2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + .line 104 + iput p3, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 105 + iput p4, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 106 + iput p5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 107 + iput p6, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 108 + return-void +.end method + + +# virtual methods +.method public getTypeId()I + .locals 1 + + .prologue + .line 124 + sget v0, Lcom/tdq/game/shootbubble/sprite/Sprite;->TYPE_PENGUIN:I + + return v0 +.end method + +.method public paint(Landroid/graphics/Canvas;DII)V + .locals 9 + .param p1, "c" # Landroid/graphics/Canvas; + .param p2, "scale" # D + .param p4, "dx" # I + .param p5, "dy" # I + + .prologue + .line 183 + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSpriteArea()Landroid/graphics/Rect; + + move-result-object v3 + + .line 184 + .local v3, "r":Landroid/graphics/Rect; + iget-object v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->spritesImage:Lcom/tdq/game/shootbubble/sprite/BmpWrap; + + const/16 v1, 0x168 + + iget v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + rem-int/lit8 v2, v2, 0x4 + + mul-int/lit8 v2, v2, 0x39 + + sub-int/2addr v1, v2 + + const/16 v2, 0x1b3 + + iget v4, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + div-int/lit8 v4, v4, 0x4 + + mul-int/lit8 v4, v4, 0x2d + + sub-int/2addr v2, v4 + + move-object v4, p1 + + move-wide v5, p2 + + move v7, p4 + + move v8, p5 + + invoke-static/range {v0 .. v8}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->drawImageClipped(Lcom/tdq/game/shootbubble/sprite/BmpWrap;IILandroid/graphics/Rect;Landroid/graphics/Canvas;DII)V + + .line 188 + return-void +.end method + +.method public saveState(Landroid/os/Bundle;Ljava/util/Vector;)V + .locals 5 + .param p1, "map" # Landroid/os/Bundle; + .param p2, "saved_sprites" # Ljava/util/Vector; + + .prologue + const/4 v4, 0x1 + + const/4 v3, 0x0 + + .line 111 + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v0 + + const/4 v1, -0x1 + + if-eq v0, v1, :cond_0 + + .line 120 + :goto_0 + return-void + + .line 114 + :cond_0 + invoke-super {p0, p1, p2}, Lcom/tdq/game/shootbubble/sprite/Sprite;->saveState(Landroid/os/Bundle;Ljava/util/Vector;)V + + .line 115 + const-string v0, "%d-currentPenguin" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 117 + const-string v0, "%d-count" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 118 + const-string v0, "%d-finalState" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + .line 119 + const-string v0, "%d-nextPosition" + + new-array v1, v4, [Ljava/lang/Object; + + invoke-virtual {p0}, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->getSavedId()I + + move-result v2 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + aput-object v2, v1, v3 + + invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + + move-result-object v0 + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + invoke-virtual {p1, v0, v1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V + + goto :goto_0 +.end method + +.method public updateState(I)V + .locals 6 + .param p1, "state" # I + + .prologue + const/4 v5, 0x7 + + const/4 v1, 0x3 + + const/4 v4, 0x4 + + const/4 v3, 0x1 + + const/4 v2, 0x0 + + .line 129 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + if-eq v0, v1, :cond_2 + + .line 130 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 132 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + rem-int/lit8 v0, v0, 0x6 + + if-nez v0, :cond_0 + + .line 133 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + const/4 v1, 0x5 + + if-ne v0, v1, :cond_1 + + .line 134 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 135 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->LOST_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + .line 179 + :cond_0 + :goto_0 + return-void + + .line 136 + :cond_1 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + if-ne v0, v4, :cond_0 + + .line 137 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v3 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 138 + sget-object v0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->WON_SEQUENCE:[[I + + iget v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + aget-object v0, v0, v1 + + aget v0, v0, v2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->nextPosition:I + + goto :goto_0 + + .line 142 + :cond_2 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 144 + packed-switch p1, :pswitch_data_0 + + .line 170 + :cond_3 + :goto_1 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + const/16 v1, 0x64 + + if-le v0, v1, :cond_5 + + .line 171 + iput v5, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 146 + :pswitch_0 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 147 + iput v1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 150 + :pswitch_1 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 151 + const/4 v0, 0x2 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 154 + :pswitch_2 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 155 + iput v3, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 158 + :pswitch_3 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-lt v0, v4, :cond_4 + + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-le v0, v5, :cond_3 + + .line 159 + :cond_4 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_1 + + .line 164 + :pswitch_4 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + .line 165 + iput p1, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->finalState:I + + .line 166 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 172 + :cond_5 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + rem-int/lit8 v0, v0, 0xf + + if-nez v0, :cond_0 + + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->count:I + + const/16 v1, 0x19 + + if-le v0, v1, :cond_0 + + .line 173 + iget-object v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->rand:Ljava/util/Random; + + invoke-virtual {v0}, Ljava/util/Random;->nextInt()I + + move-result v0 + + rem-int/lit8 v0, v0, 0x3 + + add-int/lit8 v0, v0, 0x4 + + iput v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + .line 174 + iget v0, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + if-ge v0, v4, :cond_0 + + .line 175 + iput v2, p0, Lcom/tdq/game/shootbubble/sprite/PenguinSprite;->currentPenguin:I + + goto :goto_0 + + .line 144 + nop + + :pswitch_data_0 + .packed-switch 0x0 + :pswitch_0 + :pswitch_1 + :pswitch_2 + :pswitch_3 + :pswitch_4 + :pswitch_4 + .end packed-switch +.end method diff --git a/samples/Smali/Subject.smali b/samples/Smali/Subject.smali new file mode 100644 index 00000000..4140157c --- /dev/null +++ b/samples/Smali/Subject.smali @@ -0,0 +1,1179 @@ +.class public final Lorg/apache/harmony/javax/security/auth/Subject; +.super Ljava/lang/Object; +.source "Subject.java" + +# interfaces +.implements Ljava/io/Serializable; + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + } +.end annotation + + +# static fields +.field private static final _AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final _SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + +.field private static final serialVersionUID:J = -0x734dcd6cffcc0598L + + +# instance fields +.field private final principals:Ljava/util/Set; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/Set", + "<", + "Ljava/security/Principal;", + ">;" + } + .end annotation +.end field + +.field private transient privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + .annotation system Ldalvik/annotation/Signature; + value = { + "Lorg/apache/harmony/javax/security/auth/Subject$SecureSet", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation +.end field + +.field private transient publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + .annotation system Ldalvik/annotation/Signature; + value = { + "Lorg/apache/harmony/javax/security/auth/Subject$SecureSet", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation +.end field + +.field private readOnly:Z + + +# direct methods +.method static constructor ()V + .locals 2 + + .prologue + .line 59 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + const-string v1, "doAs" + + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 61 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 62 + const-string v1, "doAsPrivileged" + + .line 61 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 64 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 65 + const-string v1, "getSubject" + + .line 64 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 67 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 68 + const-string v1, "modifyPrincipals" + + .line 67 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 70 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 71 + const-string v1, "modifyPrivateCredentials" + + .line 70 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 73 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 74 + const-string v1, "modifyPublicCredentials" + + .line 73 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 76 + new-instance v0, Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 77 + const-string v1, "setReadOnly" + + .line 76 + invoke-direct {v0, v1}, Lorg/apache/harmony/javax/security/auth/AuthPermission;->(Ljava/lang/String;)V + + sput-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + .line 55 + return-void +.end method + +.method public constructor ()V + .locals 2 + + .prologue + .line 94 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 95 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + .line 96 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 97 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 99 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 100 + return-void +.end method + +.method public constructor (ZLjava/util/Set;Ljava/util/Set;Ljava/util/Set;)V + .locals 2 + .param p1, "readOnly" # Z + .annotation system Ldalvik/annotation/Signature; + value = { + "(Z", + "Ljava/util/Set", + "<+", + "Ljava/security/Principal;", + ">;", + "Ljava/util/Set", + "<*>;", + "Ljava/util/Set", + "<*>;)V" + } + .end annotation + + .prologue + .line 119 + .local p2, "subjPrincipals":Ljava/util/Set;, "Ljava/util/Set<+Ljava/security/Principal;>;" + .local p3, "pubCredentials":Ljava/util/Set;, "Ljava/util/Set<*>;" + .local p4, "privCredentials":Ljava/util/Set;, "Ljava/util/Set<*>;" + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 122 + if-eqz p2, :cond_0 + + if-eqz p3, :cond_0 + + if-nez p4, :cond_1 + + .line 123 + :cond_0 + new-instance v0, Ljava/lang/NullPointerException; + + invoke-direct {v0}, Ljava/lang/NullPointerException;->()V + + throw v0 + + .line 126 + :cond_1 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p2}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + .line 127 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p3}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 128 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1, p4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;Ljava/util/Collection;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 130 + iput-boolean p1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 131 + return-void +.end method + +.method static synthetic access$0(Lorg/apache/harmony/javax/security/auth/Subject;)V + .locals 0 + + .prologue + .line 514 + invoke-direct {p0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkState()V + + return-void +.end method + +.method static synthetic access$1(Ljava/security/Permission;)V + .locals 0 + + .prologue + .line 506 + invoke-static {p0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + return-void +.end method + +.method static synthetic access$2()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 67 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRINCIPALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method static synthetic access$3()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 70 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method static synthetic access$4(Lorg/apache/harmony/javax/security/auth/Subject;)Ljava/util/Set; + .locals 1 + + .prologue + .line 79 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + return-object v0 +.end method + +.method static synthetic access$5()Lorg/apache/harmony/javax/security/auth/AuthPermission; + .locals 1 + + .prologue + .line 73 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + return-object v0 +.end method + +.method private static checkPermission(Ljava/security/Permission;)V + .locals 1 + .param p0, "p" # Ljava/security/Permission; + + .prologue + .line 507 + invoke-static {}, Ljava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager; + + move-result-object v0 + + .line 508 + .local v0, "sm":Ljava/lang/SecurityManager; + if-eqz v0, :cond_0 + + .line 509 + invoke-virtual {v0, p0}, Ljava/lang/SecurityManager;->checkPermission(Ljava/security/Permission;)V + + .line 511 + :cond_0 + return-void +.end method + +.method private checkState()V + .locals 2 + + .prologue + .line 515 + iget-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + if-eqz v0, :cond_0 + + .line 516 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "auth.0A" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 518 + :cond_0 + return-void +.end method + +.method public static doAs(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object; + .locals 1 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + + .prologue + .line 146 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 148 + invoke-static {}, Ljava/security/AccessController;->getContext()Ljava/security/AccessControlContext; + + move-result-object v0 + + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public static doAs(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object; + .locals 1 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 223 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 225 + invoke-static {}, Ljava/security/AccessController;->getContext()Ljava/security/AccessControlContext; + + move-result-object v0 + + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public static doAsPrivileged(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 2 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + .param p2, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 170 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 172 + if-nez p2, :cond_0 + + .line 173 + new-instance v0, Ljava/security/AccessControlContext; + + .line 174 + const/4 v1, 0x0 + + new-array v1, v1, [Ljava/security/ProtectionDomain; + + invoke-direct {v0, v1}, Ljava/security/AccessControlContext;->([Ljava/security/ProtectionDomain;)V + + .line 173 + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + .line 176 + :goto_0 + return-object v0 + + :cond_0 + invoke-static {p0, p1, p2}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + goto :goto_0 +.end method + +.method public static doAsPrivileged(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 2 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .param p2, "context" # Ljava/security/AccessControlContext; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 250 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_AS_PRIVILEGED:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 252 + if-nez p2, :cond_0 + + .line 254 + new-instance v0, Ljava/security/AccessControlContext; + + const/4 v1, 0x0 + + new-array v1, v1, [Ljava/security/ProtectionDomain; + + invoke-direct {v0, v1}, Ljava/security/AccessControlContext;->([Ljava/security/ProtectionDomain;)V + + .line 253 + invoke-static {p0, p1, v0}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + .line 256 + :goto_0 + return-object v0 + + :cond_0 + invoke-static {p0, p1, p2}, Lorg/apache/harmony/javax/security/auth/Subject;->doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v0 + + goto :goto_0 +.end method + +.method private static doAs_PrivilegedAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 4 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedAction; + .param p2, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 187 + if-nez p0, :cond_0 + + .line 190 + const/4 v0, 0x0 + + .line 195 + .local v0, "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + :goto_0 + new-instance v1, Lorg/apache/harmony/javax/security/auth/Subject$1; + + invoke-direct {v1, p2, v0}, Lorg/apache/harmony/javax/security/auth/Subject$1;->(Ljava/security/AccessControlContext;Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;)V + + .line 202 + .local v1, "dccAction":Ljava/security/PrivilegedAction; + invoke-static {v1}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/security/AccessControlContext; + + .line 204 + .local v2, "newContext":Ljava/security/AccessControlContext; + invoke-static {p1, v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v3 + + return-object v3 + + .line 192 + .end local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + .end local v1 # "dccAction":Ljava/security/PrivilegedAction; + .end local v2 # "newContext":Ljava/security/AccessControlContext; + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->(Lorg/apache/harmony/javax/security/auth/Subject;)V + + .restart local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + goto :goto_0 +.end method + +.method private static doAs_PrivilegedExceptionAction(Lorg/apache/harmony/javax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + .locals 4 + .param p0, "subject" # Lorg/apache/harmony/javax/security/auth/Subject; + .param p1, "action" # Ljava/security/PrivilegedExceptionAction; + .param p2, "context" # Ljava/security/AccessControlContext; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/security/PrivilegedActionException; + } + .end annotation + + .prologue + .line 268 + if-nez p0, :cond_0 + + .line 271 + const/4 v0, 0x0 + + .line 276 + .local v0, "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + :goto_0 + new-instance v1, Lorg/apache/harmony/javax/security/auth/Subject$2; + + invoke-direct {v1, p2, v0}, Lorg/apache/harmony/javax/security/auth/Subject$2;->(Ljava/security/AccessControlContext;Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;)V + + .line 282 + .local v1, "dccAction":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + invoke-static {v1}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/security/AccessControlContext; + + .line 284 + .local v2, "newContext":Ljava/security/AccessControlContext; + invoke-static {p1, v2}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; + + move-result-object v3 + + return-object v3 + + .line 273 + .end local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + .end local v1 # "dccAction":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + .end local v2 # "newContext":Ljava/security/AccessControlContext; + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->(Lorg/apache/harmony/javax/security/auth/Subject;)V + + .restart local v0 # "combiner":Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + goto :goto_0 +.end method + +.method public static getSubject(Ljava/security/AccessControlContext;)Lorg/apache/harmony/javax/security/auth/Subject; + .locals 4 + .param p0, "context" # Ljava/security/AccessControlContext; + + .prologue + .line 488 + sget-object v2, Lorg/apache/harmony/javax/security/auth/Subject;->_SUBJECT:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v2}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 489 + if-nez p0, :cond_0 + + .line 490 + new-instance v2, Ljava/lang/NullPointerException; + + const-string v3, "auth.09" + + invoke-direct {v2, v3}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V + + throw v2 + + .line 492 + :cond_0 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$3; + + invoke-direct {v0, p0}, Lorg/apache/harmony/javax/security/auth/Subject$3;->(Ljava/security/AccessControlContext;)V + + .line 497 + .local v0, "action":Ljava/security/PrivilegedAction;, "Ljava/security/PrivilegedAction;" + invoke-static {v0}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/security/DomainCombiner; + + .line 499 + .local v1, "combiner":Ljava/security/DomainCombiner; + if-eqz v1, :cond_1 + + instance-of v2, v1, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + if-nez v2, :cond_2 + + .line 500 + :cond_1 + const/4 v2, 0x0 + + .line 502 + .end local v1 # "combiner":Ljava/security/DomainCombiner; + :goto_0 + return-object v2 + + .restart local v1 # "combiner":Ljava/security/DomainCombiner; + :cond_2 + check-cast v1, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner; + + .end local v1 # "combiner":Ljava/security/DomainCombiner; + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/SubjectDomainCombiner;->getSubject()Lorg/apache/harmony/javax/security/auth/Subject; + + move-result-object v2 + + goto :goto_0 +.end method + +.method private readObject(Ljava/io/ObjectInputStream;)V + .locals 2 + .param p1, "in" # Ljava/io/ObjectInputStream; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException;, + Ljava/lang/ClassNotFoundException; + } + .end annotation + + .prologue + .line 467 + invoke-virtual {p1}, Ljava/io/ObjectInputStream;->defaultReadObject()V + + .line 469 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PUBLIC_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 470 + new-instance v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + sget-object v1, Lorg/apache/harmony/javax/security/auth/Subject;->_PRIVATE_CREDENTIALS:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-direct {v0, p0, v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->(Lorg/apache/harmony/javax/security/auth/Subject;Lorg/apache/harmony/javax/security/auth/AuthPermission;)V + + iput-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + .line 471 + return-void +.end method + +.method private writeObject(Ljava/io/ObjectOutputStream;)V + .locals 0 + .param p1, "out" # Ljava/io/ObjectOutputStream; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 474 + invoke-virtual {p1}, Ljava/io/ObjectOutputStream;->defaultWriteObject()V + + .line 475 + return-void +.end method + + +# virtual methods +.method public equals(Ljava/lang/Object;)Z + .locals 5 + .param p1, "obj" # Ljava/lang/Object; + + .prologue + const/4 v1, 0x1 + + const/4 v2, 0x0 + + .line 301 + if-ne p0, p1, :cond_1 + + .line 316 + :cond_0 + :goto_0 + return v1 + + .line 305 + :cond_1 + if-eqz p1, :cond_2 + + invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object v3 + + invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object v4 + + if-eq v3, v4, :cond_3 + + :cond_2 + move v1, v2 + + .line 306 + goto :goto_0 + + :cond_3 + move-object v0, p1 + + .line 309 + check-cast v0, Lorg/apache/harmony/javax/security/auth/Subject; + + .line 311 + .local v0, "that":Lorg/apache/harmony/javax/security/auth/Subject; + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v3, v4}, Ljava/util/Set;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-eqz v3, :cond_4 + + .line 312 + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v3, v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-eqz v3, :cond_4 + + .line 313 + iget-object v3, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + iget-object v4, v0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v3, v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->equals(Ljava/lang/Object;)Z + + move-result v3 + + if-nez v3, :cond_0 + + :cond_4 + move v1, v2 + + .line 316 + goto :goto_0 +.end method + +.method public getPrincipals()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/security/Principal;", + ">;" + } + .end annotation + + .prologue + .line 325 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + return-object v0 +.end method + +.method public getPrincipals(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 341 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + check-cast v0, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public getPrivateCredentials()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation + + .prologue + .line 350 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + return-object v0 +.end method + +.method public getPrivateCredentials(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 365 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public getPublicCredentials()Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "()", + "Ljava/util/Set", + "<", + "Ljava/lang/Object;", + ">;" + } + .end annotation + + .prologue + .line 374 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + return-object v0 +.end method + +.method public getPublicCredentials(Ljava/lang/Class;)Ljava/util/Set; + .locals 1 + .annotation system Ldalvik/annotation/Signature; + value = { + "(", + "Ljava/lang/Class", + ";)", + "Ljava/util/Set", + ";" + } + .end annotation + + .prologue + .line 390 + .local p1, "c":Ljava/lang/Class;, "Ljava/lang/Class;" + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v0, p1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->get(Ljava/lang/Class;)Ljava/util/Set; + + move-result-object v0 + + return-object v0 +.end method + +.method public hashCode()I + .locals 2 + + .prologue + .line 400 + iget-object v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v0}, Ljava/util/Set;->hashCode()I + + move-result v0 + + iget-object v1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->hashCode()I + + move-result v1 + + add-int/2addr v0, v1 + + .line 401 + iget-object v1, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v1}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->hashCode()I + + move-result v1 + + .line 400 + add-int/2addr v0, v1 + + return v0 +.end method + +.method public isReadOnly()Z + .locals 1 + + .prologue + .line 422 + iget-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + return v0 +.end method + +.method public setReadOnly()V + .locals 1 + + .prologue + .line 411 + sget-object v0, Lorg/apache/harmony/javax/security/auth/Subject;->_READ_ONLY:Lorg/apache/harmony/javax/security/auth/AuthPermission; + + invoke-static {v0}, Lorg/apache/harmony/javax/security/auth/Subject;->checkPermission(Ljava/security/Permission;)V + + .line 413 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lorg/apache/harmony/javax/security/auth/Subject;->readOnly:Z + + .line 414 + return-void +.end method + +.method public toString()Ljava/lang/String; + .locals 6 + + .prologue + const/16 v5, 0xa + + .line 433 + new-instance v0, Ljava/lang/StringBuilder; + + const-string v4, "Subject:\n" + + invoke-direct {v0, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + .line 435 + .local v0, "buf":Ljava/lang/StringBuilder; + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->principals:Ljava/util/Set; + + invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 436 + .local v2, "it":Ljava/util/Iterator;, "Ljava/util/Iterator<*>;" + :goto_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-nez v4, :cond_0 + + .line 442 + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->publicCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 443 + :goto_1 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-nez v4, :cond_1 + + .line 449 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I + + move-result v4 + + add-int/lit8 v3, v4, -0x1 + + .line 450 + .local v3, "offset":I + iget-object v4, p0, Lorg/apache/harmony/javax/security/auth/Subject;->privateCredentials:Lorg/apache/harmony/javax/security/auth/Subject$SecureSet; + + invoke-virtual {v4}, Lorg/apache/harmony/javax/security/auth/Subject$SecureSet;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + .line 452 + :goto_2 + :try_start_0 + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z + :try_end_0 + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 + + move-result v4 + + if-nez v4, :cond_2 + + .line 461 + :goto_3 + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v4 + + return-object v4 + + .line 437 + .end local v3 # "offset":I + :cond_0 + const-string v4, "\tPrincipal: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 438 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 439 + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + goto :goto_0 + + .line 444 + :cond_1 + const-string v4, "\tPublic Credential: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 445 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 446 + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + goto :goto_1 + + .line 453 + .restart local v3 # "offset":I + :cond_2 + :try_start_1 + const-string v4, "\tPrivate Credential: " + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + .line 454 + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + .line 455 + const/16 v4, 0xa + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + :try_end_1 + .catch Ljava/lang/SecurityException; {:try_start_1 .. :try_end_1} :catch_0 + + goto :goto_2 + + .line 457 + :catch_0 + move-exception v1 + + .line 458 + .local v1, "e":Ljava/lang/SecurityException; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I + + move-result v4 + + invoke-virtual {v0, v3, v4}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; + + .line 459 + const-string v4, "\tPrivate Credentials: no accessible information\n" + + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + goto :goto_3 +.end method diff --git a/samples/Smali/ViewDragHelper.smali b/samples/Smali/ViewDragHelper.smali new file mode 100644 index 00000000..18760567 --- /dev/null +++ b/samples/Smali/ViewDragHelper.smali @@ -0,0 +1,4382 @@ +.class public Landroid/support/v4/widget/ViewDragHelper; +.super Ljava/lang/Object; +.source "ViewDragHelper.java" + + +# annotations +.annotation system Ldalvik/annotation/MemberClasses; + value = { + Landroid/support/v4/widget/ViewDragHelper$Callback; + } +.end annotation + + +# static fields +.field private static final BASE_SETTLE_DURATION:I = 0x100 + +.field public static final DIRECTION_ALL:I = 0x3 + +.field public static final DIRECTION_HORIZONTAL:I = 0x1 + +.field public static final DIRECTION_VERTICAL:I = 0x2 + +.field public static final EDGE_ALL:I = 0xf + +.field public static final EDGE_BOTTOM:I = 0x8 + +.field public static final EDGE_LEFT:I = 0x1 + +.field public static final EDGE_RIGHT:I = 0x2 + +.field private static final EDGE_SIZE:I = 0x14 + +.field public static final EDGE_TOP:I = 0x4 + +.field public static final INVALID_POINTER:I = -0x1 + +.field private static final MAX_SETTLE_DURATION:I = 0x258 + +.field public static final STATE_DRAGGING:I = 0x1 + +.field public static final STATE_IDLE:I = 0x0 + +.field public static final STATE_SETTLING:I = 0x2 + +.field private static final TAG:Ljava/lang/String; = "ViewDragHelper" + +.field private static final sInterpolator:Landroid/view/animation/Interpolator; + + +# instance fields +.field private mActivePointerId:I + +.field private final mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + +.field private mCapturedView:Landroid/view/View; + +.field private mDragState:I + +.field private mEdgeDragsInProgress:[I + +.field private mEdgeDragsLocked:[I + +.field private mEdgeSize:I + +.field private mInitialEdgesTouched:[I + +.field private mInitialMotionX:[F + +.field private mInitialMotionY:[F + +.field private mLastMotionX:[F + +.field private mLastMotionY:[F + +.field private mMaxVelocity:F + +.field private mMinVelocity:F + +.field private final mParentView:Landroid/view/ViewGroup; + +.field private mPointersDown:I + +.field private mReleaseInProgress:Z + +.field private mScroller:Landroid/support/v4/widget/ScrollerCompat; + +.field private final mSetIdleRunnable:Ljava/lang/Runnable; + +.field private mTouchSlop:I + +.field private mTrackingEdges:I + +.field private mVelocityTracker:Landroid/view/VelocityTracker; + + +# direct methods +.method static constructor ()V + .registers 1 + + .prologue + .line 326 + new-instance v0, Landroid/support/v4/widget/ViewDragHelper$1; + + invoke-direct {v0}, Landroid/support/v4/widget/ViewDragHelper$1;->()V + + sput-object v0, Landroid/support/v4/widget/ViewDragHelper;->sInterpolator:Landroid/view/animation/Interpolator; + + return-void +.end method + +.method private constructor (Landroid/content/Context;Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)V + .registers 8 + .param p1, "context" # Landroid/content/Context; + .param p2, "forParent" # Landroid/view/ViewGroup; + .param p3, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 373 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 115 + const/4 v2, -0x1 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 333 + new-instance v2, Landroid/support/v4/widget/ViewDragHelper$2; + + invoke-direct {v2, p0}, Landroid/support/v4/widget/ViewDragHelper$2;->(Landroid/support/v4/widget/ViewDragHelper;)V + + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mSetIdleRunnable:Ljava/lang/Runnable; + + .line 374 + if-nez p2, :cond_17 + + .line 375 + new-instance v2, Ljava/lang/IllegalArgumentException; + + const-string v3, "Parent view may not be null" + + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v2 + + .line 377 + :cond_17 + if-nez p3, :cond_21 + + .line 378 + new-instance v2, Ljava/lang/IllegalArgumentException; + + const-string v3, "Callback may not be null" + + invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v2 + + .line 381 + :cond_21 + iput-object p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + .line 382 + iput-object p3, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + .line 384 + invoke-static {p1}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; + + move-result-object v1 + + .line 385 + .local v1, "vc":Landroid/view/ViewConfiguration; + invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; + + move-result-object v2 + + invoke-virtual {v2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; + + move-result-object v2 + + iget v0, v2, Landroid/util/DisplayMetrics;->density:F + + .line 386 + .local v0, "density":F + const/high16 v2, 0x41a00000 + + mul-float/2addr v2, v0 + + const/high16 v3, 0x3f000000 + + add-float/2addr v2, v3 + + float-to-int v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + .line 388 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledTouchSlop()I + + move-result v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + .line 389 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I + + move-result v2 + + int-to-float v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + .line 390 + invoke-virtual {v1}, Landroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I + + move-result v2 + + int-to-float v2, v2 + + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + .line 391 + sget-object v2, Landroid/support/v4/widget/ViewDragHelper;->sInterpolator:Landroid/view/animation/Interpolator; + + invoke-static {p1, v2}, Landroid/support/v4/widget/ScrollerCompat;->create(Landroid/content/Context;Landroid/view/animation/Interpolator;)Landroid/support/v4/widget/ScrollerCompat; + + move-result-object v2 + + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + .line 392 + return-void +.end method + +.method private checkNewEdgeDrag(FFII)Z + .registers 10 + .param p1, "delta" # F + .param p2, "odelta" # F + .param p3, "pointerId" # I + .param p4, "edge" # I + + .prologue + const/4 v2, 0x0 + + .line 1218 + invoke-static {p1}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + .line 1219 + .local v0, "absDelta":F + invoke-static {p2}, Ljava/lang/Math;->abs(F)F + + move-result v1 + + .line 1221 + .local v1, "absODelta":F + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-ne v3, p4, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v3, p4 + + if-eqz v3, :cond_31 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-eq v3, p4, :cond_31 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-eq v3, p4, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpg-float v3, v0, v3 + + if-gtz v3, :cond_32 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpg-float v3, v1, v3 + + if-gtz v3, :cond_32 + + .line 1231 + :cond_31 + :goto_31 + return v2 + + .line 1227 + :cond_32 + const/high16 v3, 0x3f000000 + + mul-float/2addr v3, v1 + + cmpg-float v3, v0, v3 + + if-gez v3, :cond_49 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v3, p4}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeLock(I)Z + + move-result v3 + + if-eqz v3, :cond_49 + + .line 1228 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aget v4, v3, p3 + + or-int/2addr v4, p4 + + aput v4, v3, p3 + + goto :goto_31 + + .line 1231 + :cond_49 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v3, v3, p3 + + and-int/2addr v3, p4 + + if-nez v3, :cond_31 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v3, v3 + + cmpl-float v3, v0, v3 + + if-lez v3, :cond_31 + + const/4 v2, 0x1 + + goto :goto_31 +.end method + +.method private checkTouchSlop(Landroid/view/View;FF)Z + .registers 11 + .param p1, "child" # Landroid/view/View; + .param p2, "dx" # F + .param p3, "dy" # F + + .prologue + const/4 v2, 0x1 + + const/4 v3, 0x0 + + .line 1245 + if-nez p1, :cond_6 + + move v2, v3 + + .line 1258 + :cond_5 + :goto_5 + return v2 + + .line 1248 + :cond_6 + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewHorizontalDragRange(Landroid/view/View;)I + + move-result v4 + + if-lez v4, :cond_2d + + move v0, v2 + + .line 1249 + .local v0, "checkHorizontal":Z + :goto_f + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewVerticalDragRange(Landroid/view/View;)I + + move-result v4 + + if-lez v4, :cond_2f + + move v1, v2 + + .line 1251 + .local v1, "checkVertical":Z + :goto_18 + if-eqz v0, :cond_31 + + if-eqz v1, :cond_31 + + .line 1252 + mul-float v4, p2, p2 + + mul-float v5, p3, p3 + + add-float/2addr v4, v5 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + iget v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + mul-int/2addr v5, v6 + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + .end local v0 # "checkHorizontal":Z + .end local v1 # "checkVertical":Z + :cond_2d + move v0, v3 + + .line 1248 + goto :goto_f + + .restart local v0 # "checkHorizontal":Z + :cond_2f + move v1, v3 + + .line 1249 + goto :goto_18 + + .line 1253 + .restart local v1 # "checkVertical":Z + :cond_31 + if-eqz v0, :cond_40 + + .line 1254 + invoke-static {p2}, Ljava/lang/Math;->abs(F)F + + move-result v4 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + .line 1255 + :cond_40 + if-eqz v1, :cond_4f + + .line 1256 + invoke-static {p3}, Ljava/lang/Math;->abs(F)F + + move-result v4 + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v5, v5 + + cmpl-float v4, v4, v5 + + if-gtz v4, :cond_5 + + move v2, v3 + + goto :goto_5 + + :cond_4f + move v2, v3 + + .line 1258 + goto :goto_5 +.end method + +.method private clampMag(FFF)F + .registers 7 + .param p1, "value" # F + .param p2, "absMin" # F + .param p3, "absMax" # F + + .prologue + const/4 v1, 0x0 + + .line 667 + invoke-static {p1}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + .line 668 + .local v0, "absValue":F + cmpg-float v2, v0, p2 + + if-gez v2, :cond_b + + move p3, v1 + + .line 670 + .end local p3 # "absMax":F + :cond_a + :goto_a + return p3 + + .line 669 + .restart local p3 # "absMax":F + :cond_b + cmpl-float v2, v0, p3 + + if-lez v2, :cond_15 + + cmpl-float v1, p1, v1 + + if-gtz v1, :cond_a + + neg-float p3, p3 + + goto :goto_a + + :cond_15 + move p3, p1 + + .line 670 + goto :goto_a +.end method + +.method private clampMag(III)I + .registers 5 + .param p1, "value" # I + .param p2, "absMin" # I + .param p3, "absMax" # I + + .prologue + .line 650 + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v0 + + .line 651 + .local v0, "absValue":I + if-ge v0, p2, :cond_8 + + const/4 p3, 0x0 + + .line 653 + .end local p3 # "absMax":I + :cond_7 + :goto_7 + return p3 + + .line 652 + .restart local p3 # "absMax":I + :cond_8 + if-le v0, p3, :cond_e + + if-gtz p1, :cond_7 + + neg-int p3, p3 + + goto :goto_7 + + :cond_e + move p3, p1 + + .line 653 + goto :goto_7 +.end method + +.method private clearMotionHistory()V + .registers 4 + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 770 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-nez v0, :cond_7 + + .line 781 + :goto_6 + return-void + + .line 773 + :cond_7 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 774 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 775 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 776 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + invoke-static {v0, v1}, Ljava/util/Arrays;->fill([FF)V + + .line 777 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 778 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 779 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + invoke-static {v0, v2}, Ljava/util/Arrays;->fill([II)V + + .line 780 + iput v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + goto :goto_6 +.end method + +.method private clearMotionHistory(I)V + .registers 5 + .param p1, "pointerId" # I + + .prologue + const/4 v2, 0x0 + + const/4 v1, 0x0 + + .line 784 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-nez v0, :cond_7 + + .line 795 + :goto_6 + return-void + + .line 787 + :cond_7 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aput v1, v0, p1 + + .line 788 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aput v1, v0, p1 + + .line 789 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput v1, v0, p1 + + .line 790 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput v1, v0, p1 + + .line 791 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aput v2, v0, p1 + + .line 792 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aput v2, v0, p1 + + .line 793 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + aput v2, v0, p1 + + .line 794 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + const/4 v1, 0x1 + + shl-int/2addr v1, p1 + + xor-int/lit8 v1, v1, -0x1 + + and-int/2addr v0, v1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + goto :goto_6 +.end method + +.method private computeAxisDuration(III)I + .registers 14 + .param p1, "delta" # I + .param p2, "velocity" # I + .param p3, "motionRange" # I + + .prologue + const/high16 v9, 0x3f800000 + + .line 618 + if-nez p1, :cond_6 + + .line 619 + const/4 v6, 0x0 + + .line 636 + :goto_5 + return v6 + + .line 622 + :cond_6 + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v6}, Landroid/view/ViewGroup;->getWidth()I + + move-result v5 + + .line 623 + .local v5, "width":I + div-int/lit8 v3, v5, 0x2 + + .line 624 + .local v3, "halfWidth":I + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v6 + + int-to-float v6, v6 + + int-to-float v7, v5 + + div-float/2addr v6, v7 + + invoke-static {v9, v6}, Ljava/lang/Math;->min(FF)F + + move-result v1 + + .line 625 + .local v1, "distanceRatio":F + int-to-float v6, v3 + + int-to-float v7, v3 + + invoke-direct {p0, v1}, Landroid/support/v4/widget/ViewDragHelper;->distanceInfluenceForSnapDuration(F)F + + move-result v8 + + mul-float/2addr v7, v8 + + add-float v0, v6, v7 + + .line 629 + .local v0, "distance":F + invoke-static {p2}, Ljava/lang/Math;->abs(I)I + + move-result p2 + + .line 630 + if-lez p2, :cond_3f + + .line 631 + const/high16 v6, 0x447a0000 + + int-to-float v7, p2 + + div-float v7, v0, v7 + + invoke-static {v7}, Ljava/lang/Math;->abs(F)F + + move-result v7 + + mul-float/2addr v6, v7 + + invoke-static {v6}, Ljava/lang/Math;->round(F)I + + move-result v6 + + mul-int/lit8 v2, v6, 0x4 + + .line 636 + .local v2, "duration":I + :goto_38 + const/16 v6, 0x258 + + invoke-static {v2, v6}, Ljava/lang/Math;->min(II)I + + move-result v6 + + goto :goto_5 + + .line 633 + .end local v2 # "duration":I + :cond_3f + invoke-static {p1}, Ljava/lang/Math;->abs(I)I + + move-result v6 + + int-to-float v6, v6 + + int-to-float v7, p3 + + div-float v4, v6, v7 + + .line 634 + .local v4, "range":F + add-float v6, v4, v9 + + const/high16 v7, 0x43800000 + + mul-float/2addr v6, v7 + + float-to-int v2, v6 + + .restart local v2 # "duration":I + goto :goto_38 +.end method + +.method private computeSettleDuration(Landroid/view/View;IIII)I + .registers 20 + .param p1, "child" # Landroid/view/View; + .param p2, "dx" # I + .param p3, "dy" # I + .param p4, "xvel" # I + .param p5, "yvel" # I + + .prologue + .line 597 + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + float-to-int v12, v12 + + iget v13, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + float-to-int v13, v13 + + move/from16 v0, p4 + + invoke-direct {p0, v0, v12, v13}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(III)I + + move-result p4 + + .line 598 + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + float-to-int v12, v12 + + iget v13, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + float-to-int v13, v13 + + move/from16 v0, p5 + + invoke-direct {p0, v0, v12, v13}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(III)I + + move-result p5 + + .line 599 + invoke-static/range {p2 .. p2}, Ljava/lang/Math;->abs(I)I + + move-result v2 + + .line 600 + .local v2, "absDx":I + invoke-static/range {p3 .. p3}, Ljava/lang/Math;->abs(I)I + + move-result v3 + + .line 601 + .local v3, "absDy":I + invoke-static/range {p4 .. p4}, Ljava/lang/Math;->abs(I)I + + move-result v4 + + .line 602 + .local v4, "absXVel":I + invoke-static/range {p5 .. p5}, Ljava/lang/Math;->abs(I)I + + move-result v5 + + .line 603 + .local v5, "absYVel":I + add-int v7, v4, v5 + + .line 604 + .local v7, "addedVel":I + add-int v6, v2, v3 + + .line 606 + .local v6, "addedDistance":I + if-eqz p4, :cond_5b + + int-to-float v12, v4 + + int-to-float v13, v7 + + div-float v9, v12, v13 + + .line 608 + .local v9, "xweight":F + :goto_32 + if-eqz p5, :cond_60 + + int-to-float v12, v5 + + int-to-float v13, v7 + + div-float v11, v12, v13 + + .line 611 + .local v11, "yweight":F + :goto_38 + iget-object v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v12, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewHorizontalDragRange(Landroid/view/View;)I + + move-result v12 + + move/from16 v0, p2 + + move/from16 v1, p4 + + invoke-direct {p0, v0, v1, v12}, Landroid/support/v4/widget/ViewDragHelper;->computeAxisDuration(III)I + + move-result v8 + + .line 612 + .local v8, "xduration":I + iget-object v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v12, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getViewVerticalDragRange(Landroid/view/View;)I + + move-result v12 + + move/from16 v0, p3 + + move/from16 v1, p5 + + invoke-direct {p0, v0, v1, v12}, Landroid/support/v4/widget/ViewDragHelper;->computeAxisDuration(III)I + + move-result v10 + + .line 614 + .local v10, "yduration":I + int-to-float v12, v8 + + mul-float/2addr v12, v9 + + int-to-float v13, v10 + + mul-float/2addr v13, v11 + + add-float/2addr v12, v13 + + float-to-int v12, v12 + + return v12 + + .line 606 + .end local v8 # "xduration":I + .end local v9 # "xweight":F + .end local v10 # "yduration":I + .end local v11 # "yweight":F + :cond_5b + int-to-float v12, v2 + + int-to-float v13, v6 + + div-float v9, v12, v13 + + goto :goto_32 + + .line 608 + .restart local v9 # "xweight":F + :cond_60 + int-to-float v12, v3 + + int-to-float v13, v6 + + div-float v11, v12, v13 + + goto :goto_38 +.end method + +.method public static create(Landroid/view/ViewGroup;FLandroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + .registers 6 + .param p0, "forParent" # Landroid/view/ViewGroup; + .param p1, "sensitivity" # F + .param p2, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 360 + invoke-static {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->create(Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + + move-result-object v0 + + .line 361 + .local v0, "helper":Landroid/support/v4/widget/ViewDragHelper; + iget v1, v0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v1, v1 + + const/high16 v2, 0x3f800000 + + div-float/2addr v2, p1 + + mul-float/2addr v1, v2 + + float-to-int v1, v1 + + iput v1, v0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + .line 362 + return-object v0 +.end method + +.method public static create(Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)Landroid/support/v4/widget/ViewDragHelper; + .registers 4 + .param p0, "forParent" # Landroid/view/ViewGroup; + .param p1, "cb" # Landroid/support/v4/widget/ViewDragHelper$Callback; + + .prologue + .line 347 + new-instance v0, Landroid/support/v4/widget/ViewDragHelper; + + invoke-virtual {p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; + + move-result-object v1 + + invoke-direct {v0, v1, p0, p1}, Landroid/support/v4/widget/ViewDragHelper;->(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/support/v4/widget/ViewDragHelper$Callback;)V + + return-object v0 +.end method + +.method private dispatchViewReleased(FF)V + .registers 7 + .param p1, "xvel" # F + .param p2, "yvel" # F + + .prologue + const/4 v3, 0x1 + + const/4 v2, 0x0 + + .line 759 + iput-boolean v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + .line 760 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewReleased(Landroid/view/View;FF)V + + .line 761 + iput-boolean v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + .line 763 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v3, :cond_14 + + .line 765 + invoke-virtual {p0, v2}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 767 + :cond_14 + return-void +.end method + +.method private distanceInfluenceForSnapDuration(F)F + .registers 6 + .param p1, "f" # F + + .prologue + .line 674 + const/high16 v0, 0x3f000000 + + sub-float/2addr p1, v0 + + .line 675 + float-to-double v0, p1 + + const-wide v2, 0x3fde28c7460698c7L + + mul-double/2addr v0, v2 + + double-to-float p1, v0 + + .line 676 + float-to-double v0, p1 + + invoke-static {v0, v1}, Ljava/lang/Math;->sin(D)D + + move-result-wide v0 + + double-to-float v0, v0 + + return v0 +.end method + +.method private dragTo(IIII)V + .registers 13 + .param p1, "left" # I + .param p2, "top" # I + .param p3, "dx" # I + .param p4, "dy" # I + + .prologue + .line 1366 + move v2, p1 + + .line 1367 + .local v2, "clampedX":I + move v3, p2 + + .line 1368 + .local v3, "clampedY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v6 + + .line 1369 + .local v6, "oldLeft":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v7 + + .line 1370 + .local v7, "oldTop":I + if-eqz p3, :cond_1f + + .line 1371 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p1, p3}, Landroid/support/v4/widget/ViewDragHelper$Callback;->clampViewPositionHorizontal(Landroid/view/View;II)I + + move-result v2 + + .line 1372 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v1, v2, v6 + + invoke-virtual {v0, v1}, Landroid/view/View;->offsetLeftAndRight(I)V + + .line 1374 + :cond_1f + if-eqz p4, :cond_30 + + .line 1375 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v1, p2, p4}, Landroid/support/v4/widget/ViewDragHelper$Callback;->clampViewPositionVertical(Landroid/view/View;II)I + + move-result v3 + + .line 1376 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v1, v3, v7 + + invoke-virtual {v0, v1}, Landroid/view/View;->offsetTopAndBottom(I)V + + .line 1379 + :cond_30 + if-nez p3, :cond_34 + + if-eqz p4, :cond_3f + + .line 1380 + :cond_34 + sub-int v4, v2, v6 + + .line 1381 + .local v4, "clampedDx":I + sub-int v5, v3, v7 + + .line 1382 + .local v5, "clampedDy":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 1385 + .end local v4 # "clampedDx":I + .end local v5 # "clampedDy":I + :cond_3f + return-void +.end method + +.method private ensureMotionHistorySizeForId(I)V + .registers 12 + .param p1, "pointerId" # I + + .prologue + const/4 v9, 0x0 + + .line 798 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-eqz v7, :cond_a + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v7, v7 + + if-gt v7, p1, :cond_70 + + .line 799 + :cond_a + add-int/lit8 v7, p1, 0x1 + + new-array v3, v7, [F + + .line 800 + .local v3, "imx":[F + add-int/lit8 v7, p1, 0x1 + + new-array v4, v7, [F + + .line 801 + .local v4, "imy":[F + add-int/lit8 v7, p1, 0x1 + + new-array v5, v7, [F + + .line 802 + .local v5, "lmx":[F + add-int/lit8 v7, p1, 0x1 + + new-array v6, v7, [F + + .line 803 + .local v6, "lmy":[F + add-int/lit8 v7, p1, 0x1 + + new-array v2, v7, [I + + .line 804 + .local v2, "iit":[I + add-int/lit8 v7, p1, 0x1 + + new-array v0, v7, [I + + .line 805 + .local v0, "edip":[I + add-int/lit8 v7, p1, 0x1 + + new-array v1, v7, [I + + .line 807 + .local v1, "edl":[I + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + if-eqz v7, :cond_62 + + .line 808 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v8, v8 + + invoke-static {v7, v9, v3, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 809 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + array-length v8, v8 + + invoke-static {v7, v9, v4, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 810 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + array-length v8, v8 + + invoke-static {v7, v9, v5, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 811 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + array-length v8, v8 + + invoke-static {v7, v9, v6, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 812 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + array-length v8, v8 + + invoke-static {v7, v9, v2, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 813 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + array-length v8, v8 + + invoke-static {v7, v9, v0, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 814 + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + iget-object v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + array-length v8, v8 + + invoke-static {v7, v9, v1, v9, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V + + .line 817 + :cond_62 + iput-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + .line 818 + iput-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + .line 819 + iput-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + .line 820 + iput-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + .line 821 + iput-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + .line 822 + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + .line 823 + iput-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsLocked:[I + + .line 825 + .end local v0 # "edip":[I + .end local v1 # "edl":[I + .end local v2 # "iit":[I + .end local v3 # "imx":[F + .end local v4 # "imy":[F + .end local v5 # "lmx":[F + .end local v6 # "lmy":[F + :cond_70 + return-void +.end method + +.method private forceSettleCapturedViewAt(IIII)Z + .registers 16 + .param p1, "finalLeft" # I + .param p2, "finalTop" # I + .param p3, "xvel" # I + .param p4, "yvel" # I + + .prologue + const/4 v0, 0x0 + + .line 577 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getLeft()I + + move-result v10 + + .line 578 + .local v10, "startLeft":I + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getTop()I + + move-result v6 + + .line 579 + .local v6, "startTop":I + sub-int v2, p1, v10 + + .line 580 + .local v2, "dx":I + sub-int v3, p2, v6 + + .line 582 + .local v3, "dy":I + if-nez v2, :cond_1e + + if-nez v3, :cond_1e + + .line 584 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v1}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 585 + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 593 + :goto_1d + return v0 + + .line 589 + :cond_1e + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object v0, p0 + + move v4, p3 + + move v5, p4 + + invoke-direct/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper;->computeSettleDuration(Landroid/view/View;IIII)I + + move-result v9 + + .line 590 + .local v9, "duration":I + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + move v5, v10 + + move v7, v2 + + move v8, v3 + + invoke-virtual/range {v4 .. v9}, Landroid/support/v4/widget/ScrollerCompat;->startScroll(IIIII)V + + .line 592 + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 593 + const/4 v0, 0x1 + + goto :goto_1d +.end method + +.method private getEdgesTouched(II)I + .registers 6 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1440 + const/4 v0, 0x0 + + .line 1442 + .local v0, "result":I + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getLeft()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + add-int/2addr v1, v2 + + if-ge p1, v1, :cond_e + + or-int/lit8 v0, v0, 0x1 + + .line 1443 + :cond_e + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getTop()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + add-int/2addr v1, v2 + + if-ge p2, v1, :cond_1b + + or-int/lit8 v0, v0, 0x4 + + .line 1444 + :cond_1b + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getRight()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + sub-int/2addr v1, v2 + + if-le p1, v1, :cond_28 + + or-int/lit8 v0, v0, 0x2 + + .line 1445 + :cond_28 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1}, Landroid/view/ViewGroup;->getBottom()I + + move-result v1 + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + sub-int/2addr v1, v2 + + if-le p2, v1, :cond_35 + + or-int/lit8 v0, v0, 0x8 + + .line 1447 + :cond_35 + return v0 +.end method + +.method private releaseViewForPointerUp()V + .registers 6 + + .prologue + .line 1355 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + const/16 v3, 0x3e8 + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-virtual {v2, v3, v4}, Landroid/view/VelocityTracker;->computeCurrentVelocity(IF)V + + .line 1356 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v2, v3}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v2 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-direct {p0, v2, v3, v4}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(FFF)F + + move-result v0 + + .line 1359 + .local v0, "xvel":F + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v2, v3}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v2 + + iget v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mMaxVelocity:F + + invoke-direct {p0, v2, v3, v4}, Landroid/support/v4/widget/ViewDragHelper;->clampMag(FFF)F + + move-result v1 + + .line 1362 + .local v1, "yvel":F + invoke-direct {p0, v0, v1}, Landroid/support/v4/widget/ViewDragHelper;->dispatchViewReleased(FF)V + + .line 1363 + return-void +.end method + +.method private reportNewEdgeDrags(FFI)V + .registers 7 + .param p1, "dx" # F + .param p2, "dy" # F + .param p3, "pointerId" # I + + .prologue + .line 1197 + const/4 v0, 0x0 + + .line 1198 + .local v0, "dragsStarted":I + const/4 v1, 0x1 + + invoke-direct {p0, p1, p2, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_a + + .line 1199 + or-int/lit8 v0, v0, 0x1 + + .line 1201 + :cond_a + const/4 v1, 0x4 + + invoke-direct {p0, p2, p1, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_13 + + .line 1202 + or-int/lit8 v0, v0, 0x4 + + .line 1204 + :cond_13 + const/4 v1, 0x2 + + invoke-direct {p0, p1, p2, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_1c + + .line 1205 + or-int/lit8 v0, v0, 0x2 + + .line 1207 + :cond_1c + const/16 v1, 0x8 + + invoke-direct {p0, p2, p1, p3, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkNewEdgeDrag(FFII)Z + + move-result v1 + + if-eqz v1, :cond_26 + + .line 1208 + or-int/lit8 v0, v0, 0x8 + + .line 1211 + :cond_26 + if-eqz v0, :cond_34 + + .line 1212 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeDragsInProgress:[I + + aget v2, v1, p3 + + or-int/2addr v2, v0 + + aput v2, v1, p3 + + .line 1213 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v1, v0, p3}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeDragStarted(II)V + + .line 1215 + :cond_34 + return-void +.end method + +.method private saveInitialMotion(FFI)V + .registers 7 + .param p1, "x" # F + .param p2, "y" # F + .param p3, "pointerId" # I + + .prologue + .line 828 + invoke-direct {p0, p3}, Landroid/support/v4/widget/ViewDragHelper;->ensureMotionHistorySizeForId(I)V + + .line 829 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput p1, v1, p3 + + aput p1, v0, p3 + + .line 830 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput p2, v1, p3 + + aput p2, v0, p3 + + .line 831 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + float-to-int v1, p1 + + float-to-int v2, p2 + + invoke-direct {p0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->getEdgesTouched(II)I + + move-result v1 + + aput v1, v0, p3 + + .line 832 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + const/4 v1, 0x1 + + shl-int/2addr v1, p3 + + or-int/2addr v0, v1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + .line 833 + return-void +.end method + +.method private saveLastMotion(Landroid/view/MotionEvent;)V + .registers 8 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 836 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v1 + + .line 837 + .local v1, "pointerCount":I + const/4 v0, 0x0 + + .local v0, "i":I + :goto_5 + if-ge v0, v1, :cond_1e + + .line 838 + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v2 + + .line 839 + .local v2, "pointerId":I + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v3 + + .line 840 + .local v3, "x":F + invoke-static {p1, v0}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v4 + + .line 841 + .local v4, "y":F + iget-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aput v3, v5, v2 + + .line 842 + iget-object v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aput v4, v5, v2 + + .line 837 + add-int/lit8 v0, v0, 0x1 + + goto :goto_5 + + .line 844 + .end local v2 # "pointerId":I + .end local v3 # "x":F + .end local v4 # "y":F + :cond_1e + return-void +.end method + + +# virtual methods +.method public abort()V + .registers 9 + + .prologue + .line 512 + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 513 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v1, 0x2 + + if-ne v0, v1, :cond_30 + + .line 514 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v6 + + .line 515 + .local v6, "oldX":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v7 + + .line 516 + .local v7, "oldY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 517 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v2 + + .line 518 + .local v2, "newX":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v3 + + .line 519 + .local v3, "newY":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + sub-int v4, v2, v6 + + sub-int v5, v3, v7 + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 521 + .end local v2 # "newX":I + .end local v3 # "newY":I + .end local v6 # "oldX":I + .end local v7 # "oldY":I + :cond_30 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 522 + return-void +.end method + +.method protected canScroll(Landroid/view/View;ZIIII)Z + .registers 20 + .param p1, "v" # Landroid/view/View; + .param p2, "checkV" # Z + .param p3, "dx" # I + .param p4, "dy" # I + .param p5, "x" # I + .param p6, "y" # I + + .prologue + .line 908 + instance-of v1, p1, Landroid/view/ViewGroup; + + if-eqz v1, :cond_5c + + move-object v9, p1 + + .line 909 + check-cast v9, Landroid/view/ViewGroup; + + .line 910 + .local v9, "group":Landroid/view/ViewGroup; + invoke-virtual {p1}, Landroid/view/View;->getScrollX()I + + move-result v11 + + .line 911 + .local v11, "scrollX":I + invoke-virtual {p1}, Landroid/view/View;->getScrollY()I + + move-result v12 + + .line 912 + .local v12, "scrollY":I + invoke-virtual {v9}, Landroid/view/ViewGroup;->getChildCount()I + + move-result v8 + + .line 914 + .local v8, "count":I + add-int/lit8 v10, v8, -0x1 + + .local v10, "i":I + :goto_15 + if-ltz v10, :cond_5c + + .line 917 + invoke-virtual {v9, v10}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; + + move-result-object v2 + + .line 918 + .local v2, "child":Landroid/view/View; + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getLeft()I + + move-result v3 + + if-lt v1, v3, :cond_59 + + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getRight()I + + move-result v3 + + if-ge v1, v3, :cond_59 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v3 + + if-lt v1, v3, :cond_59 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getBottom()I + + move-result v3 + + if-ge v1, v3, :cond_59 + + const/4 v3, 0x1 + + add-int v1, p5, v11 + + invoke-virtual {v2}, Landroid/view/View;->getLeft()I + + move-result v4 + + sub-int v6, v1, v4 + + add-int v1, p6, v12 + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v4 + + sub-int v7, v1, v4 + + move-object v1, p0 + + move/from16 v4, p3 + + move/from16 v5, p4 + + invoke-virtual/range {v1 .. v7}, Landroid/support/v4/widget/ViewDragHelper;->canScroll(Landroid/view/View;ZIIII)Z + + move-result v1 + + if-eqz v1, :cond_59 + + .line 922 + const/4 v1, 0x1 + + .line 927 + .end local v2 # "child":Landroid/view/View; + .end local v8 # "count":I + .end local v9 # "group":Landroid/view/ViewGroup; + .end local v10 # "i":I + .end local v11 # "scrollX":I + .end local v12 # "scrollY":I + :goto_58 + return v1 + + .line 914 + .restart local v2 # "child":Landroid/view/View; + .restart local v8 # "count":I + .restart local v9 # "group":Landroid/view/ViewGroup; + .restart local v10 # "i":I + .restart local v11 # "scrollX":I + .restart local v12 # "scrollY":I + :cond_59 + add-int/lit8 v10, v10, -0x1 + + goto :goto_15 + + .line 927 + .end local v2 # "child":Landroid/view/View; + .end local v8 # "count":I + .end local v9 # "group":Landroid/view/ViewGroup; + .end local v10 # "i":I + .end local v11 # "scrollX":I + .end local v12 # "scrollY":I + :cond_5c + if-eqz p2, :cond_72 + + move/from16 v0, p3 + + neg-int v1, v0 + + invoke-static {p1, v1}, Landroid/support/v4/view/ViewCompat;->canScrollHorizontally(Landroid/view/View;I)Z + + move-result v1 + + if-nez v1, :cond_70 + + move/from16 v0, p4 + + neg-int v1, v0 + + invoke-static {p1, v1}, Landroid/support/v4/view/ViewCompat;->canScrollVertically(Landroid/view/View;I)Z + + move-result v1 + + if-eqz v1, :cond_72 + + :cond_70 + const/4 v1, 0x1 + + goto :goto_58 + + :cond_72 + const/4 v1, 0x0 + + goto :goto_58 +.end method + +.method public cancel()V + .registers 2 + + .prologue + .line 498 + const/4 v0, -0x1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 499 + invoke-direct {p0}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory()V + + .line 501 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + if-eqz v0, :cond_12 + + .line 502 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + invoke-virtual {v0}, Landroid/view/VelocityTracker;->recycle()V + + .line 503 + const/4 v0, 0x0 + + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 505 + :cond_12 + return-void +.end method + +.method public captureChildView(Landroid/view/View;I)V + .registers 6 + .param p1, "childView" # Landroid/view/View; + .param p2, "activePointerId" # I + + .prologue + .line 460 + invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object v0 + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + if-eq v0, v1, :cond_29 + + .line 461 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "captureChildView: parameter must be a descendant of the ViewDragHelper\'s tracked parent view (" + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v1 + + const-string v2, ")" + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 + + .line 465 + :cond_29 + iput-object p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 466 + iput p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 467 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewCaptured(Landroid/view/View;I)V + + .line 468 + const/4 v0, 0x1 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 469 + return-void +.end method + +.method public checkTouchSlop(I)Z + .registers 5 + .param p1, "directions" # I + + .prologue + .line 1276 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + array-length v0, v2 + + .line 1277 + .local v0, "count":I + const/4 v1, 0x0 + + .local v1, "i":I + :goto_4 + if-ge v1, v0, :cond_11 + + .line 1278 + invoke-virtual {p0, p1, v1}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(II)Z + + move-result v2 + + if-eqz v2, :cond_e + + .line 1279 + const/4 v2, 0x1 + + .line 1282 + :goto_d + return v2 + + .line 1277 + :cond_e + add-int/lit8 v1, v1, 0x1 + + goto :goto_4 + + .line 1282 + :cond_11 + const/4 v2, 0x0 + + goto :goto_d +.end method + +.method public checkTouchSlop(II)Z + .registers 12 + .param p1, "directions" # I + .param p2, "pointerId" # I + + .prologue + const/4 v4, 0x1 + + const/4 v5, 0x0 + + .line 1301 + invoke-virtual {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->isPointerDown(I)Z + + move-result v6 + + if-nez v6, :cond_a + + move v4, v5 + + .line 1318 + :cond_9 + :goto_9 + return v4 + + .line 1305 + :cond_a + and-int/lit8 v6, p1, 0x1 + + if-ne v6, v4, :cond_3e + + move v0, v4 + + .line 1306 + .local v0, "checkHorizontal":Z + :goto_f + and-int/lit8 v6, p1, 0x2 + + const/4 v7, 0x2 + + if-ne v6, v7, :cond_40 + + move v1, v4 + + .line 1308 + .local v1, "checkVertical":Z + :goto_15 + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + aget v6, v6, p2 + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aget v7, v7, p2 + + sub-float v2, v6, v7 + + .line 1309 + .local v2, "dx":F + iget-object v6, p0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + aget v6, v6, p2 + + iget-object v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aget v7, v7, p2 + + sub-float v3, v6, v7 + + .line 1311 + .local v3, "dy":F + if-eqz v0, :cond_42 + + if-eqz v1, :cond_42 + + .line 1312 + mul-float v6, v2, v2 + + mul-float v7, v3, v3 + + add-float/2addr v6, v7 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + iget v8, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + mul-int/2addr v7, v8 + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + .end local v0 # "checkHorizontal":Z + .end local v1 # "checkVertical":Z + .end local v2 # "dx":F + .end local v3 # "dy":F + :cond_3e + move v0, v5 + + .line 1305 + goto :goto_f + + .restart local v0 # "checkHorizontal":Z + :cond_40 + move v1, v5 + + .line 1306 + goto :goto_15 + + .line 1313 + .restart local v1 # "checkVertical":Z + .restart local v2 # "dx":F + .restart local v3 # "dy":F + :cond_42 + if-eqz v0, :cond_51 + + .line 1314 + invoke-static {v2}, Ljava/lang/Math;->abs(F)F + + move-result v6 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + .line 1315 + :cond_51 + if-eqz v1, :cond_60 + + .line 1316 + invoke-static {v3}, Ljava/lang/Math;->abs(F)F + + move-result v6 + + iget v7, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + int-to-float v7, v7 + + cmpl-float v6, v6, v7 + + if-gtz v6, :cond_9 + + move v4, v5 + + goto :goto_9 + + :cond_60 + move v4, v5 + + .line 1318 + goto :goto_9 +.end method + +.method public continueSettling(Z)Z + .registers 11 + .param p1, "deferCallbacks" # Z + + .prologue + const/4 v8, 0x2 + + const/4 v7, 0x0 + + .line 715 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v8, :cond_69 + + .line 716 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->computeScrollOffset()Z + + move-result v6 + + .line 717 + .local v6, "keepGoing":Z + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrX()I + + move-result v2 + + .line 718 + .local v2, "x":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getCurrY()I + + move-result v3 + + .line 719 + .local v3, "y":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v0 + + sub-int v4, v2, v0 + + .line 720 + .local v4, "dx":I + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v0 + + sub-int v5, v3, v0 + + .line 722 + .local v5, "dy":I + if-eqz v4, :cond_2f + + .line 723 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v4}, Landroid/view/View;->offsetLeftAndRight(I)V + + .line 725 + :cond_2f + if-eqz v5, :cond_36 + + .line 726 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v0, v5}, Landroid/view/View;->offsetTopAndBottom(I)V + + .line 729 + :cond_36 + if-nez v4, :cond_3a + + if-eqz v5, :cond_41 + + .line 730 + :cond_3a + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual/range {v0 .. v5}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewPositionChanged(Landroid/view/View;IIII)V + + .line 733 + :cond_41 + if-eqz v6, :cond_5e + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getFinalX()I + + move-result v0 + + if-ne v2, v0, :cond_5e + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->getFinalY()I + + move-result v0 + + if-ne v3, v0, :cond_5e + + .line 736 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->abortAnimation()V + + .line 737 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + invoke-virtual {v0}, Landroid/support/v4/widget/ScrollerCompat;->isFinished()Z + + move-result v6 + + .line 740 + :cond_5e + if-nez v6, :cond_69 + + .line 741 + if-eqz p1, :cond_6f + + .line 742 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mSetIdleRunnable:Ljava/lang/Runnable; + + invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->post(Ljava/lang/Runnable;)Z + + .line 749 + .end local v2 # "x":I + .end local v3 # "y":I + .end local v4 # "dx":I + .end local v5 # "dy":I + .end local v6 # "keepGoing":Z + :cond_69 + :goto_69 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-ne v0, v8, :cond_73 + + const/4 v0, 0x1 + + :goto_6e + return v0 + + .line 744 + .restart local v2 # "x":I + .restart local v3 # "y":I + .restart local v4 # "dx":I + .restart local v5 # "dy":I + .restart local v6 # "keepGoing":Z + :cond_6f + invoke-virtual {p0, v7}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + goto :goto_69 + + .end local v2 # "x":I + .end local v3 # "y":I + .end local v4 # "dx":I + .end local v5 # "dy":I + .end local v6 # "keepGoing":Z + :cond_73 + move v0, v7 + + .line 749 + goto :goto_6e +.end method + +.method public findTopChildUnder(II)Landroid/view/View; + .registers 8 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1428 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + invoke-virtual {v3}, Landroid/view/ViewGroup;->getChildCount()I + + move-result v1 + + .line 1429 + .local v1, "childCount":I + add-int/lit8 v2, v1, -0x1 + + .local v2, "i":I + :goto_8 + if-ltz v2, :cond_32 + + .line 1430 + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mParentView:Landroid/view/ViewGroup; + + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v4, v2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->getOrderedChildIndex(I)I + + move-result v4 + + invoke-virtual {v3, v4}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; + + move-result-object v0 + + .line 1431 + .local v0, "child":Landroid/view/View; + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v3 + + if-lt p1, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getRight()I + + move-result v3 + + if-ge p1, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v3 + + if-lt p2, v3, :cond_2f + + invoke-virtual {v0}, Landroid/view/View;->getBottom()I + + move-result v3 + + if-ge p2, v3, :cond_2f + + .line 1436 + .end local v0 # "child":Landroid/view/View; + :goto_2e + return-object v0 + + .line 1429 + .restart local v0 # "child":Landroid/view/View; + :cond_2f + add-int/lit8 v2, v2, -0x1 + + goto :goto_8 + + .line 1436 + .end local v0 # "child":Landroid/view/View; + :cond_32 + const/4 v0, 0x0 + + goto :goto_2e +.end method + +.method public flingCapturedView(IIII)V + .registers 14 + .param p1, "minLeft" # I + .param p2, "minTop" # I + .param p3, "maxLeft" # I + .param p4, "maxTop" # I + + .prologue + .line 690 + iget-boolean v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + if-nez v0, :cond_c + + .line 691 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot flingCapturedView outside of a call to Callback#onViewReleased" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 695 + :cond_c + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mScroller:Landroid/support/v4/widget/ScrollerCompat; + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v1}, Landroid/view/View;->getLeft()I + + move-result v1 + + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {v2}, Landroid/view/View;->getTop()I + + move-result v2 + + iget-object v3, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v3, v4}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v3 + + float-to-int v3, v3 + + iget-object v4, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v5, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v4, v5}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v4 + + float-to-int v4, v4 + + move v5, p1 + + move v6, p3 + + move v7, p2 + + move v8, p4 + + invoke-virtual/range {v0 .. v8}, Landroid/support/v4/widget/ScrollerCompat;->fling(IIIIIIII)V + + .line 700 + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Landroid/support/v4/widget/ViewDragHelper;->setDragState(I)V + + .line 701 + return-void +.end method + +.method public getActivePointerId()I + .registers 2 + + .prologue + .line 483 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + return v0 +.end method + +.method public getCapturedView()Landroid/view/View; + .registers 2 + + .prologue + .line 475 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + return-object v0 +.end method + +.method public getEdgeSize()I + .registers 2 + + .prologue + .line 448 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mEdgeSize:I + + return v0 +.end method + +.method public getMinVelocity()F + .registers 2 + + .prologue + .line 412 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + return v0 +.end method + +.method public getTouchSlop()I + .registers 2 + + .prologue + .line 490 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mTouchSlop:I + + return v0 +.end method + +.method public getViewDragState()I + .registers 2 + + .prologue + .line 421 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + return v0 +.end method + +.method public isCapturedViewUnder(II)Z + .registers 4 + .param p1, "x" # I + .param p2, "y" # I + + .prologue + .line 1397 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + invoke-virtual {p0, v0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper;->isViewUnder(Landroid/view/View;II)Z + + move-result v0 + + return v0 +.end method + +.method public isEdgeTouched(I)Z + .registers 5 + .param p1, "edges" # I + + .prologue + .line 1331 + iget-object v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + array-length v0, v2 + + .line 1332 + .local v0, "count":I + const/4 v1, 0x0 + + .local v1, "i":I + :goto_4 + if-ge v1, v0, :cond_11 + + .line 1333 + invoke-virtual {p0, p1, v1}, Landroid/support/v4/widget/ViewDragHelper;->isEdgeTouched(II)Z + + move-result v2 + + if-eqz v2, :cond_e + + .line 1334 + const/4 v2, 0x1 + + .line 1337 + :goto_d + return v2 + + .line 1332 + :cond_e + add-int/lit8 v1, v1, 0x1 + + goto :goto_4 + + .line 1337 + :cond_11 + const/4 v2, 0x0 + + goto :goto_d +.end method + +.method public isEdgeTouched(II)Z + .registers 4 + .param p1, "edges" # I + .param p2, "pointerId" # I + + .prologue + .line 1351 + invoke-virtual {p0, p2}, Landroid/support/v4/widget/ViewDragHelper;->isPointerDown(I)Z + + move-result v0 + + if-eqz v0, :cond_f + + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v0, v0, p2 + + and-int/2addr v0, p1 + + if-eqz v0, :cond_f + + const/4 v0, 0x1 + + :goto_e + return v0 + + :cond_f + const/4 v0, 0x0 + + goto :goto_e +.end method + +.method public isPointerDown(I)Z + .registers 5 + .param p1, "pointerId" # I + + .prologue + const/4 v0, 0x1 + + .line 860 + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mPointersDown:I + + shl-int v2, v0, p1 + + and-int/2addr v1, v2 + + if-eqz v1, :cond_9 + + :goto_8 + return v0 + + :cond_9 + const/4 v0, 0x0 + + goto :goto_8 +.end method + +.method public isViewUnder(Landroid/view/View;II)Z + .registers 6 + .param p1, "view" # Landroid/view/View; + .param p2, "x" # I + .param p3, "y" # I + + .prologue + const/4 v0, 0x0 + + .line 1410 + if-nez p1, :cond_4 + + .line 1413 + :cond_3 + :goto_3 + return v0 + + :cond_4 + invoke-virtual {p1}, Landroid/view/View;->getLeft()I + + move-result v1 + + if-lt p2, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getRight()I + + move-result v1 + + if-ge p2, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getTop()I + + move-result v1 + + if-lt p3, v1, :cond_3 + + invoke-virtual {p1}, Landroid/view/View;->getBottom()I + + move-result v1 + + if-ge p3, v1, :cond_3 + + const/4 v0, 0x1 + + goto :goto_3 +.end method + +.method public processTouchEvent(Landroid/view/MotionEvent;)V + .registers 23 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 1046 + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I + + move-result v3 + + .line 1047 + .local v3, "action":I + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getActionIndex(Landroid/view/MotionEvent;)I + + move-result v4 + + .line 1049 + .local v4, "actionIndex":I + if-nez v3, :cond_d + + .line 1052 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 1055 + :cond_d + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + move-object/from16 v19, v0 + + if-nez v19, :cond_1f + + .line 1056 + invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; + + move-result-object v19 + + move-object/from16 v0, v19 + + move-object/from16 v1, p0 + + iput-object v0, v1, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 1058 + :cond_1f + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + move-object/from16 v19, v0 + + move-object/from16 v0, v19 + + move-object/from16 v1, p1 + + invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V + + .line 1060 + packed-switch v3, :pswitch_data_2be + + .line 1194 + :cond_2f + :goto_2f + :pswitch_2f + return-void + + .line 1062 + :pswitch_30 + invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getX()F + + move-result v17 + + .line 1063 + .local v17, "x":F + invoke-virtual/range {p1 .. p1}, Landroid/view/MotionEvent;->getY()F + + move-result v18 + + .line 1064 + .local v18, "y":F + const/16 v19, 0x0 + + move-object/from16 v0, p1 + + move/from16 v1, v19 + + invoke-static {v0, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1065 + .local v15, "pointerId":I + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1067 + .local v16, "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move/from16 v1, v17 + + move/from16 v2, v18 + + invoke-direct {v0, v1, v2, v15}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 1072 + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 1074 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + move-object/from16 v19, v0 + + aget v7, v19, v15 + + .line 1075 + .local v7, "edgesTouched":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v19, v0 + + and-int v19, v19, v7 + + if-eqz v19, :cond_2f + + .line 1076 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v20, v0 + + and-int v20, v20, v7 + + move-object/from16 v0, v19 + + move/from16 v1, v20 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_2f + + .line 1082 + .end local v7 # "edgesTouched":I + .end local v15 # "pointerId":I + .end local v16 # "toCapture":Landroid/view/View; + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_8e + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1083 + .restart local v15 # "pointerId":I + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1084 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1086 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + move/from16 v1, v17 + + move/from16 v2, v18 + + invoke-direct {v0, v1, v2, v15}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 1089 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + if-nez v19, :cond_f5 + + .line 1092 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1093 + .restart local v16 # "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 1095 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + move-object/from16 v19, v0 + + aget v7, v19, v15 + + .line 1096 + .restart local v7 # "edgesTouched":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v19, v0 + + and-int v19, v19, v7 + + if-eqz v19, :cond_2f + + .line 1097 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + move/from16 v20, v0 + + and-int v20, v20, v7 + + move-object/from16 v0, v19 + + move/from16 v1, v20 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto/16 :goto_2f + + .line 1099 + .end local v7 # "edgesTouched":I + .end local v16 # "toCapture":Landroid/view/View; + :cond_f5 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->isCapturedViewUnder(II)Z + + move-result v19 + + if-eqz v19, :cond_2f + + .line 1104 + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + move-object/from16 v1, v19 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + goto/16 :goto_2f + + .line 1110 + .end local v15 # "pointerId":I + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_11a + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_18e + + .line 1111 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move-object/from16 v0, p1 + + move/from16 v1, v19 + + invoke-static {v0, v1}, Landroid/support/v4/view/MotionEventCompat;->findPointerIndex(Landroid/view/MotionEvent;I)I + + move-result v12 + + .line 1112 + .local v12, "index":I + move-object/from16 v0, p1 + + invoke-static {v0, v12}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1113 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v12}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1114 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionX:[F + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v20, v0 + + aget v19, v19, v20 + + sub-float v19, v17, v19 + + move/from16 v0, v19 + + float-to-int v10, v0 + + .line 1115 + .local v10, "idx":I + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mLastMotionY:[F + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v20, v0 + + aget v19, v19, v20 + + sub-float v19, v18, v19 + + move/from16 v0, v19 + + float-to-int v11, v0 + + .line 1117 + .local v11, "idy":I + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + invoke-virtual/range {v19 .. v19}, Landroid/view/View;->getLeft()I + + move-result v19 + + add-int v19, v19, v10 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v20, v0 + + invoke-virtual/range {v20 .. v20}, Landroid/view/View;->getTop()I + + move-result v20 + + add-int v20, v20, v11 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-direct {v0, v1, v2, v10, v11}, Landroid/support/v4/widget/ViewDragHelper;->dragTo(IIII)V + + .line 1119 + invoke-direct/range {p0 .. p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_2f + + .line 1122 + .end local v10 # "idx":I + .end local v11 # "idy":I + .end local v12 # "index":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_18e + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v14 + + .line 1123 + .local v14, "pointerCount":I + const/4 v8, 0x0 + + .local v8, "i":I + :goto_193 + if-ge v8, v14, :cond_1ce + + .line 1124 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1125 + .restart local v15 # "pointerId":I + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1126 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1127 + .restart local v18 # "y":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + move-object/from16 v19, v0 + + aget v19, v19, v15 + + sub-float v5, v17, v19 + + .line 1128 + .local v5, "dx":F + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + move-object/from16 v19, v0 + + aget v19, v19, v15 + + sub-float v6, v18, v19 + + .line 1130 + .local v6, "dy":F + move-object/from16 v0, p0 + + invoke-direct {v0, v5, v6, v15}, Landroid/support/v4/widget/ViewDragHelper;->reportNewEdgeDrags(FFI)V + + .line 1131 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_1d3 + + .line 1142 + .end local v5 # "dx":F + .end local v6 # "dy":F + .end local v15 # "pointerId":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_1ce + invoke-direct/range {p0 .. p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_2f + + .line 1136 + .restart local v5 # "dx":F + .restart local v6 # "dy":F + .restart local v15 # "pointerId":I + .restart local v17 # "x":F + .restart local v18 # "y":F + :cond_1d3 + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v16 + + .line 1137 + .restart local v16 # "toCapture":Landroid/view/View; + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-direct {v0, v1, v5, v6}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(Landroid/view/View;FF)Z + + move-result v19 + + if-eqz v19, :cond_1fb + + move-object/from16 v0, p0 + + move-object/from16 v1, v16 + + invoke-virtual {v0, v1, v15}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v19 + + if-nez v19, :cond_1ce + + .line 1123 + :cond_1fb + add-int/lit8 v8, v8, 0x1 + + goto :goto_193 + + .line 1148 + .end local v5 # "dx":F + .end local v6 # "dy":F + .end local v8 # "i":I + .end local v14 # "pointerCount":I + .end local v15 # "pointerId":I + .end local v16 # "toCapture":Landroid/view/View; + .end local v17 # "x":F + .end local v18 # "y":F + :pswitch_1fe + move-object/from16 v0, p1 + + invoke-static {v0, v4}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v15 + + .line 1149 + .restart local v15 # "pointerId":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_280 + + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move/from16 v0, v19 + + if-ne v15, v0, :cond_280 + + .line 1151 + const/4 v13, -0x1 + + .line 1152 + .local v13, "newActivePointer":I + invoke-static/range {p1 .. p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v14 + + .line 1153 + .restart local v14 # "pointerCount":I + const/4 v8, 0x0 + + .restart local v8 # "i":I + :goto_222 + if-ge v8, v14, :cond_277 + + .line 1154 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v9 + + .line 1155 + .local v9, "id":I + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + move/from16 v19, v0 + + move/from16 v0, v19 + + if-ne v9, v0, :cond_237 + + .line 1153 + :cond_234 + add-int/lit8 v8, v8, 0x1 + + goto :goto_222 + + .line 1160 + :cond_237 + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v17 + + .line 1161 + .restart local v17 # "x":F + move-object/from16 v0, p1 + + invoke-static {v0, v8}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v18 + + .line 1162 + .restart local v18 # "y":F + move/from16 v0, v17 + + float-to-int v0, v0 + + move/from16 v19, v0 + + move/from16 v0, v18 + + float-to-int v0, v0 + + move/from16 v20, v0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-virtual {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v19 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v20, v0 + + move-object/from16 v0, v19 + + move-object/from16 v1, v20 + + if-ne v0, v1, :cond_234 + + move-object/from16 v0, p0 + + iget-object v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + move-object/from16 v19, v0 + + move-object/from16 v0, p0 + + move-object/from16 v1, v19 + + invoke-virtual {v0, v1, v9}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v19 + + if-eqz v19, :cond_234 + + .line 1164 + move-object/from16 v0, p0 + + iget v13, v0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 1169 + .end local v9 # "id":I + .end local v17 # "x":F + .end local v18 # "y":F + :cond_277 + const/16 v19, -0x1 + + move/from16 v0, v19 + + if-ne v13, v0, :cond_280 + + .line 1171 + invoke-direct/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->releaseViewForPointerUp()V + + .line 1174 + .end local v8 # "i":I + .end local v13 # "newActivePointer":I + .end local v14 # "pointerCount":I + :cond_280 + move-object/from16 v0, p0 + + invoke-direct {v0, v15}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory(I)V + + goto/16 :goto_2f + + .line 1179 + .end local v15 # "pointerId":I + :pswitch_287 + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_298 + + .line 1180 + invoke-direct/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->releaseViewForPointerUp()V + + .line 1182 + :cond_298 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_2f + + .line 1187 + :pswitch_29d + move-object/from16 v0, p0 + + iget v0, v0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + move/from16 v19, v0 + + const/16 v20, 0x1 + + move/from16 v0, v19 + + move/from16 v1, v20 + + if-ne v0, v1, :cond_2b8 + + .line 1188 + const/16 v19, 0x0 + + const/16 v20, 0x0 + + move-object/from16 v0, p0 + + move/from16 v1, v19 + + move/from16 v2, v20 + + invoke-direct {v0, v1, v2}, Landroid/support/v4/widget/ViewDragHelper;->dispatchViewReleased(FF)V + + .line 1190 + :cond_2b8 + invoke-virtual/range {p0 .. p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_2f + + .line 1060 + nop + + :pswitch_data_2be + .packed-switch 0x0 + :pswitch_30 + :pswitch_287 + :pswitch_11a + :pswitch_29d + :pswitch_2f + :pswitch_8e + :pswitch_1fe + .end packed-switch +.end method + +.method setDragState(I)V + .registers 3 + .param p1, "state" # I + + .prologue + .line 864 + iget v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-eq v0, p1, :cond_10 + + .line 865 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + .line 866 + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v0, p1}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onViewDragStateChanged(I)V + + .line 867 + if-nez p1, :cond_10 + + .line 868 + const/4 v0, 0x0 + + iput-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 871 + :cond_10 + return-void +.end method + +.method public setEdgeTrackingEnabled(I)V + .registers 2 + .param p1, "edgeFlags" # I + + .prologue + .line 437 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + .line 438 + return-void +.end method + +.method public setMinVelocity(F)V + .registers 2 + .param p1, "minVel" # F + + .prologue + .line 401 + iput p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mMinVelocity:F + + .line 402 + return-void +.end method + +.method public settleCapturedViewAt(II)Z + .registers 6 + .param p1, "finalLeft" # I + .param p2, "finalTop" # I + + .prologue + .line 557 + iget-boolean v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mReleaseInProgress:Z + + if-nez v0, :cond_c + + .line 558 + new-instance v0, Ljava/lang/IllegalStateException; + + const-string v1, "Cannot settleCapturedViewAt outside of a call to Callback#onViewReleased" + + invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V + + throw v0 + + .line 562 + :cond_c + iget-object v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v0, v1}, Landroid/support/v4/view/VelocityTrackerCompat;->getXVelocity(Landroid/view/VelocityTracker;I)F + + move-result v0 + + float-to-int v0, v0 + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + iget v2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + invoke-static {v1, v2}, Landroid/support/v4/view/VelocityTrackerCompat;->getYVelocity(Landroid/view/VelocityTracker;I)F + + move-result v1 + + float-to-int v1, v1 + + invoke-direct {p0, p1, p2, v0, v1}, Landroid/support/v4/widget/ViewDragHelper;->forceSettleCapturedViewAt(IIII)Z + + move-result v0 + + return v0 +.end method + +.method public shouldInterceptTouchEvent(Landroid/view/MotionEvent;)Z + .registers 15 + .param p1, "ev" # Landroid/view/MotionEvent; + + .prologue + .line 939 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionMasked(Landroid/view/MotionEvent;)I + + move-result v0 + + .line 940 + .local v0, "action":I + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getActionIndex(Landroid/view/MotionEvent;)I + + move-result v1 + + .line 942 + .local v1, "actionIndex":I + if-nez v0, :cond_d + + .line 945 + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + .line 948 + :cond_d + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + if-nez v11, :cond_17 + + .line 949 + invoke-static {}, Landroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; + + move-result-object v11 + + iput-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 951 + :cond_17 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + invoke-virtual {v11, p1}, Landroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V + + .line 953 + packed-switch v0, :pswitch_data_e6 + + .line 1036 + :cond_1f + :goto_1f + :pswitch_1f + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x1 + + if-ne v11, v12, :cond_e3 + + const/4 v11, 0x1 + + :goto_25 + return v11 + + .line 955 + :pswitch_26 + invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F + + move-result v9 + + .line 956 + .local v9, "x":F + invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F + + move-result v10 + + .line 957 + .local v10, "y":F + const/4 v11, 0x0 + + invoke-static {p1, v11}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 958 + .local v7, "pointerId":I + invoke-direct {p0, v9, v10, v7}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 960 + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 963 + .local v8, "toCapture":Landroid/view/View; + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne v8, v11, :cond_48 + + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x2 + + if-ne v11, v12, :cond_48 + + .line 964 + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + .line 967 + :cond_48 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v4, v11, v7 + + .line 968 + .local v4, "edgesTouched":I + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v11, v4 + + if-eqz v11, :cond_1f + + .line 969 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v12, v4 + + invoke-virtual {v11, v12, v7}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_1f + + .line 975 + .end local v4 # "edgesTouched":I + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_5a + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 976 + .restart local v7 # "pointerId":I + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v9 + + .line 977 + .restart local v9 # "x":F + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v10 + + .line 979 + .restart local v10 # "y":F + invoke-direct {p0, v9, v10, v7}, Landroid/support/v4/widget/ViewDragHelper;->saveInitialMotion(FFI)V + + .line 982 + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + if-nez v11, :cond_7f + + .line 983 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialEdgesTouched:[I + + aget v4, v11, v7 + + .line 984 + .restart local v4 # "edgesTouched":I + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v11, v4 + + if-eqz v11, :cond_1f + + .line 985 + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + iget v12, p0, Landroid/support/v4/widget/ViewDragHelper;->mTrackingEdges:I + + and-int/2addr v12, v4 + + invoke-virtual {v11, v12, v7}, Landroid/support/v4/widget/ViewDragHelper$Callback;->onEdgeTouched(II)V + + goto :goto_1f + + .line 987 + .end local v4 # "edgesTouched":I + :cond_7f + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x2 + + if-ne v11, v12, :cond_1f + + .line 989 + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 990 + .restart local v8 # "toCapture":Landroid/view/View; + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne v8, v11, :cond_1f + + .line 991 + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + goto :goto_1f + + .line 999 + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_92 + invoke-static {p1}, Landroid/support/v4/view/MotionEventCompat;->getPointerCount(Landroid/view/MotionEvent;)I + + move-result v6 + + .line 1000 + .local v6, "pointerCount":I + const/4 v5, 0x0 + + .local v5, "i":I + :goto_97 + if-ge v5, v6, :cond_b9 + + .line 1001 + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 1002 + .restart local v7 # "pointerId":I + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getX(Landroid/view/MotionEvent;I)F + + move-result v9 + + .line 1003 + .restart local v9 # "x":F + invoke-static {p1, v5}, Landroid/support/v4/view/MotionEventCompat;->getY(Landroid/view/MotionEvent;I)F + + move-result v10 + + .line 1004 + .restart local v10 # "y":F + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionX:[F + + aget v11, v11, v7 + + sub-float v2, v9, v11 + + .line 1005 + .local v2, "dx":F + iget-object v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mInitialMotionY:[F + + aget v11, v11, v7 + + sub-float v3, v10, v11 + + .line 1007 + .local v3, "dy":F + invoke-direct {p0, v2, v3, v7}, Landroid/support/v4/widget/ViewDragHelper;->reportNewEdgeDrags(FFI)V + + .line 1008 + iget v11, p0, Landroid/support/v4/widget/ViewDragHelper;->mDragState:I + + const/4 v12, 0x1 + + if-ne v11, v12, :cond_be + + .line 1019 + .end local v2 # "dx":F + .end local v3 # "dy":F + .end local v7 # "pointerId":I + .end local v9 # "x":F + .end local v10 # "y":F + :cond_b9 + invoke-direct {p0, p1}, Landroid/support/v4/widget/ViewDragHelper;->saveLastMotion(Landroid/view/MotionEvent;)V + + goto/16 :goto_1f + + .line 1013 + .restart local v2 # "dx":F + .restart local v3 # "dy":F + .restart local v7 # "pointerId":I + .restart local v9 # "x":F + .restart local v10 # "y":F + :cond_be + float-to-int v11, v9 + + float-to-int v12, v10 + + invoke-virtual {p0, v11, v12}, Landroid/support/v4/widget/ViewDragHelper;->findTopChildUnder(II)Landroid/view/View; + + move-result-object v8 + + .line 1014 + .restart local v8 # "toCapture":Landroid/view/View; + if-eqz v8, :cond_d2 + + invoke-direct {p0, v8, v2, v3}, Landroid/support/v4/widget/ViewDragHelper;->checkTouchSlop(Landroid/view/View;FF)Z + + move-result v11 + + if-eqz v11, :cond_d2 + + invoke-virtual {p0, v8, v7}, Landroid/support/v4/widget/ViewDragHelper;->tryCaptureViewForDrag(Landroid/view/View;I)Z + + move-result v11 + + if-nez v11, :cond_b9 + + .line 1000 + :cond_d2 + add-int/lit8 v5, v5, 0x1 + + goto :goto_97 + + .line 1024 + .end local v2 # "dx":F + .end local v3 # "dy":F + .end local v5 # "i":I + .end local v6 # "pointerCount":I + .end local v7 # "pointerId":I + .end local v8 # "toCapture":Landroid/view/View; + .end local v9 # "x":F + .end local v10 # "y":F + :pswitch_d5 + invoke-static {p1, v1}, Landroid/support/v4/view/MotionEventCompat;->getPointerId(Landroid/view/MotionEvent;I)I + + move-result v7 + + .line 1025 + .restart local v7 # "pointerId":I + invoke-direct {p0, v7}, Landroid/support/v4/widget/ViewDragHelper;->clearMotionHistory(I)V + + goto/16 :goto_1f + + .line 1031 + .end local v7 # "pointerId":I + :pswitch_de + invoke-virtual {p0}, Landroid/support/v4/widget/ViewDragHelper;->cancel()V + + goto/16 :goto_1f + + .line 1036 + :cond_e3 + const/4 v11, 0x0 + + goto/16 :goto_25 + + .line 953 + :pswitch_data_e6 + .packed-switch 0x0 + :pswitch_26 + :pswitch_de + :pswitch_92 + :pswitch_de + :pswitch_1f + :pswitch_5a + :pswitch_d5 + .end packed-switch +.end method + +.method public smoothSlideViewTo(Landroid/view/View;II)Z + .registers 6 + .param p1, "child" # Landroid/view/View; + .param p2, "finalLeft" # I + .param p3, "finalTop" # I + + .prologue + const/4 v1, 0x0 + + .line 539 + iput-object p1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + .line 540 + const/4 v0, -0x1 + + iput v0, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 542 + invoke-direct {p0, p2, p3, v1, v1}, Landroid/support/v4/widget/ViewDragHelper;->forceSettleCapturedViewAt(IIII)Z + + move-result v0 + + return v0 +.end method + +.method tryCaptureViewForDrag(Landroid/view/View;I)Z + .registers 5 + .param p1, "toCapture" # Landroid/view/View; + .param p2, "pointerId" # I + + .prologue + const/4 v0, 0x1 + + .line 883 + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCapturedView:Landroid/view/View; + + if-ne p1, v1, :cond_a + + iget v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + if-ne v1, p2, :cond_a + + .line 892 + :goto_9 + return v0 + + .line 887 + :cond_a + if-eqz p1, :cond_1a + + iget-object v1, p0, Landroid/support/v4/widget/ViewDragHelper;->mCallback:Landroid/support/v4/widget/ViewDragHelper$Callback; + + invoke-virtual {v1, p1, p2}, Landroid/support/v4/widget/ViewDragHelper$Callback;->tryCaptureView(Landroid/view/View;I)Z + + move-result v1 + + if-eqz v1, :cond_1a + + .line 888 + iput p2, p0, Landroid/support/v4/widget/ViewDragHelper;->mActivePointerId:I + + .line 889 + invoke-virtual {p0, p1, p2}, Landroid/support/v4/widget/ViewDragHelper;->captureChildView(Landroid/view/View;I)V + + goto :goto_9 + + .line 892 + :cond_1a + const/4 v0, 0x0 + + goto :goto_9 +.end method diff --git a/samples/Smali/WbxmlSerializer.smali b/samples/Smali/WbxmlSerializer.smali new file mode 100644 index 00000000..2d870d8c --- /dev/null +++ b/samples/Smali/WbxmlSerializer.smali @@ -0,0 +1,1863 @@ +.class public Lorg/kxml2/wap/WbxmlSerializer; +.super Ljava/lang/Object; +.source "WbxmlSerializer.java" + +# interfaces +.implements Lorg/xmlpull/v1/XmlSerializer; + + +# instance fields +.field private attrPage:I + +.field attrStartTable:Ljava/util/Hashtable; + +.field attrValueTable:Ljava/util/Hashtable; + +.field attributes:Ljava/util/Vector; + +.field buf:Ljava/io/ByteArrayOutputStream; + +.field depth:I + +.field private encoding:Ljava/lang/String; + +.field private headerSent:Z + +.field name:Ljava/lang/String; + +.field namespace:Ljava/lang/String; + +.field out:Ljava/io/OutputStream; + +.field pending:Ljava/lang/String; + +.field stringTable:Ljava/util/Hashtable; + +.field stringTableBuf:Ljava/io/ByteArrayOutputStream; + +.field private tagPage:I + +.field tagTable:Ljava/util/Hashtable; + + +# direct methods +.method public constructor ()V + .locals 1 + + .prologue + .line 35 + invoke-direct {p0}, Ljava/lang/Object;->()V + + .line 38 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + .line 42 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + .line 43 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + .line 49 + new-instance v0, Ljava/util/Vector; + + invoke-direct {v0}, Ljava/util/Vector;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + .line 51 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + .line 52 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + .line 53 + new-instance v0, Ljava/util/Hashtable; + + invoke-direct {v0}, Ljava/util/Hashtable;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + .line 60 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + return-void +.end method + +.method static writeInt(Ljava/io/OutputStream;I)V + .locals 4 + .param p0, "out" # Ljava/io/OutputStream; + .param p1, "i" # I + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 447 + const/4 v3, 0x5 + + new-array v0, v3, [B + + .line 448 + .local v0, "buf":[B + const/4 v1, 0x0 + + .line 451 + .local v1, "idx":I + :goto_0 + add-int/lit8 v2, v1, 0x1 + + .end local v1 # "idx":I + .local v2, "idx":I + and-int/lit8 v3, p1, 0x7f + + int-to-byte v3, v3 + + aput-byte v3, v0, v1 + + .line 452 + shr-int/lit8 p1, p1, 0x7 + + .line 454 + if-nez p1, :cond_1 + + move v1, v2 + + .line 456 + .end local v2 # "idx":I + .restart local v1 # "idx":I + :goto_1 + const/4 v3, 0x1 + + if-le v1, v3, :cond_0 + + .line 457 + add-int/lit8 v1, v1, -0x1 + + aget-byte v3, v0, v1 + + or-int/lit16 v3, v3, 0x80 + + invoke-virtual {p0, v3}, Ljava/io/OutputStream;->write(I)V + + goto :goto_1 + + .line 459 + :cond_0 + const/4 v3, 0x0 + + aget-byte v3, v0, v3 + + invoke-virtual {p0, v3}, Ljava/io/OutputStream;->write(I)V + + .line 460 + return-void + + .end local v1 # "idx":I + .restart local v2 # "idx":I + :cond_1 + move v1, v2 + + .end local v2 # "idx":I + .restart local v1 # "idx":I + goto :goto_0 +.end method + +.method private writeStr(Ljava/lang/String;)V + .locals 10 + .param p1, "text" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/16 v9, 0x41 + + const/16 v8, 0x20 + + const/4 v7, 0x0 + + const/16 v6, 0x83 + + .line 349 + const/4 v2, 0x0 + + .line 350 + .local v2, "p0":I + const/4 v0, 0x0 + + .line 351 + .local v0, "lastCut":I + invoke-virtual {p1}, Ljava/lang/String;->length()I + + move-result v1 + + .line 353 + .local v1, "len":I + iget-boolean v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-eqz v4, :cond_3 + + .line 354 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {p0, v4, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + .line 394 + :cond_0 + :goto_0 + return-void + + .line 367 + .local v3, "p1":I + :cond_1 + sub-int v4, v3, v2 + + const/16 v5, 0xa + + if-le v4, v5, :cond_2 + + .line 368 + if-le v2, v0, :cond_5 + + add-int/lit8 v4, v2, -0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ne v4, v8, :cond_5 + + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v4, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v4 + + if-nez v4, :cond_5 + + .line 370 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 371 + invoke-virtual {p1, v0, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 385 + :goto_1 + move v0, v3 + + .line 387 + :cond_2 + move v2, v3 + + .line 358 + .end local v3 # "p1":I + :cond_3 + if-ge v2, v1, :cond_8 + + .line 359 + :goto_2 + if-ge v2, v1, :cond_4 + + invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ge v4, v9, :cond_4 + + .line 360 + add-int/lit8 v2, v2, 0x1 + + goto :goto_2 + + .line 362 + :cond_4 + move v3, v2 + + .line 363 + .restart local v3 # "p1":I + :goto_3 + if-ge v3, v1, :cond_1 + + invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-lt v4, v9, :cond_1 + + .line 364 + add-int/lit8 v3, v3, 0x1 + + goto :goto_3 + + .line 374 + :cond_5 + if-le v2, v0, :cond_6 + + add-int/lit8 v4, v2, -0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C + + move-result v4 + + if-ne v4, v8, :cond_6 + + .line 375 + add-int/lit8 v2, v2, -0x1 + + .line 378 + :cond_6 + if-le v2, v0, :cond_7 + + .line 379 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 380 + invoke-virtual {p1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 382 + :cond_7 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 383 + invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + const/4 v5, 0x1 + + invoke-direct {p0, v4, v5}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_1 + + .line 390 + .end local v3 # "p1":I + :cond_8 + if-ge v0, v1, :cond_0 + + .line 391 + iget-object v4, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v4, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 392 + invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v4 + + invoke-direct {p0, v4, v7}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_0 +.end method + +.method private final writeStrT(Ljava/lang/String;Z)V + .locals 3 + .param p1, "s" # Ljava/lang/String; + .param p2, "mayPrependSpace" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 470 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {v1, p1}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/Integer; + + .line 471 + .local v0, "idx":Ljava/lang/Integer; + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v0, :cond_0 + + invoke-virtual {p0, p1, p2}, Lorg/kxml2/wap/WbxmlSerializer;->addToStringTable(Ljava/lang/String;Z)I + + move-result v1 + + :goto_0 + invoke-static {v2, v1}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 474 + return-void + + .line 471 + :cond_0 + invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I + + move-result v1 + + goto :goto_0 +.end method + + +# virtual methods +.method public addToStringTable(Ljava/lang/String;Z)I + .locals 9 + .param p1, "s" # Ljava/lang/String; + .param p2, "mayPrependSpace" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v8, 0x1 + + const/4 v5, 0x0 + + const/16 v7, 0x20 + + .line 485 + iget-boolean v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-eqz v3, :cond_0 + + .line 486 + new-instance v3, Ljava/io/IOException; + + const-string v4, "stringtable sent" + + invoke-direct {v3, v4}, Ljava/io/IOException;->(Ljava/lang/String;)V + + throw v3 + + .line 489 + :cond_0 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->size()I + + move-result v0 + + .line 490 + .local v0, "i":I + move v2, v0 + + .line 491 + .local v2, "offset":I + invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C + + move-result v3 + + const/16 v4, 0x30 + + if-lt v3, v4, :cond_1 + + if-eqz p2, :cond_1 + + .line 492 + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p1 + + .line 493 + add-int/lit8 v2, v2, 0x1 + + .line 496 + :cond_1 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + new-instance v4, Ljava/lang/Integer; + + invoke-direct {v4, v0}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, p1, v4}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 497 + invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C + + move-result v3 + + if-ne v3, v7, :cond_2 + + .line 498 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int/lit8 v6, v0, 0x1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 500 + :cond_2 + invoke-virtual {p1, v7}, Ljava/lang/String;->lastIndexOf(I)I + + move-result v1 + + .line 501 + .local v1, "j":I + if-le v1, v8, :cond_3 + + .line 502 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int v6, v0, v1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 503 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTable:Ljava/util/Hashtable; + + add-int/lit8 v4, v1, 0x1 + + invoke-virtual {p1, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v4 + + new-instance v5, Ljava/lang/Integer; + + add-int v6, v0, v1 + + add-int/lit8 v6, v6, 0x1 + + invoke-direct {v5, v6}, Ljava/lang/Integer;->(I)V + + invoke-virtual {v3, v4, v5}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 506 + :cond_3 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {p0, v3, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + .line 507 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->flush()V + + .line 508 + return v2 +.end method + +.method public attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .param p3, "value" # Ljava/lang/String; + + .prologue + .line 69 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v0, p2}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V + + .line 70 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v0, p3}, Ljava/util/Vector;->addElement(Ljava/lang/Object;)V + + .line 71 + return-object p0 +.end method + +.method public cdsect(Ljava/lang/String;)V + .locals 0 + .param p1, "cdsect" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 76 + invoke-virtual {p0, p1}, Lorg/kxml2/wap/WbxmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + + .line 77 + return-void +.end method + +.method public checkPending(Z)V + .locals 8 + .param p1, "degenerated" # Z + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v4, 0x4 + + const/4 v7, 0x1 + + const/4 v6, 0x0 + + .line 180 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + if-nez v3, :cond_0 + + .line 240 + :goto_0 + return-void + + .line 183 + :cond_0 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3}, Ljava/util/Vector;->size()I + + move-result v2 + + .line 185 + .local v2, "len":I + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 188 + .local v1, "idx":[I + if-nez v1, :cond_4 + + .line 189 + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v2, :cond_2 + + if-eqz p1, :cond_1 + + move v3, v4 + + :goto_1 + invoke-virtual {v5, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 193 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + invoke-direct {p0, v3, v6}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 205 + :goto_2 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_3 + if-ge v0, v2, :cond_d + + .line 206 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v5, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v5 + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 208 + if-nez v1, :cond_9 + + .line 209 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v4}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 210 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Ljava/lang/String; + + invoke-direct {p0, v3, v6}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + .line 220 + :goto_4 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + add-int/lit8 v0, v0, 0x1 + + invoke-virtual {v5, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v5 + + invoke-virtual {v3, v5}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, [I + + move-object v1, v3 + + check-cast v1, [I + + .line 221 + if-nez v1, :cond_b + + .line 222 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3, v0}, Ljava/util/Vector;->elementAt(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Ljava/lang/String; + + invoke-direct {p0, v3}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 232 + :goto_5 + add-int/lit8 v0, v0, 0x1 + + goto :goto_3 + + .line 189 + .end local v0 # "i":I + :cond_1 + const/16 v3, 0x44 + + goto :goto_1 + + :cond_2 + if-eqz p1, :cond_3 + + const/16 v3, 0x84 + + goto :goto_1 + + :cond_3 + const/16 v3, 0xc4 + + goto :goto_1 + + .line 195 + :cond_4 + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + if-eq v3, v5, :cond_5 + + .line 196 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + .line 197 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 198 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 200 + :cond_5 + iget-object v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + if-nez v2, :cond_7 + + if-eqz p1, :cond_6 + + aget v3, v1, v7 + + :goto_6 + invoke-virtual {v5, v3}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_2 + + :cond_6 + aget v3, v1, v7 + + or-int/lit8 v3, v3, 0x40 + + goto :goto_6 + + :cond_7 + if-eqz p1, :cond_8 + + aget v3, v1, v7 + + or-int/lit16 v3, v3, 0x80 + + goto :goto_6 + + :cond_8 + aget v3, v1, v7 + + or-int/lit16 v3, v3, 0xc0 + + goto :goto_6 + + .line 213 + .restart local v0 # "i":I + :cond_9 + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + if-eq v3, v5, :cond_a + + .line 214 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + .line 215 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 216 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 218 + :cond_a + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + aget v5, v1, v7 + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_4 + + .line 225 + :cond_b + aget v3, v1, v6 + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + if-eq v3, v5, :cond_c + + .line 226 + aget v3, v1, v6 + + iput v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + .line 227 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v6}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 228 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + iget v5, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrPage:I + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 230 + :cond_c + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + aget v5, v1, v7 + + invoke-virtual {v3, v5}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_5 + + .line 235 + :cond_d + if-lez v2, :cond_e + + .line 236 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v3, v7}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 238 + :cond_e + const/4 v3, 0x0 + + iput-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + .line 239 + iget-object v3, p0, Lorg/kxml2/wap/WbxmlSerializer;->attributes:Ljava/util/Vector; + + invoke-virtual {v3}, Ljava/util/Vector;->removeAllElements()V + + goto/16 :goto_0 +.end method + +.method public comment(Ljava/lang/String;)V + .locals 0 + .param p1, "comment" # Ljava/lang/String; + + .prologue + .line 84 + return-void +.end method + +.method public docdecl(Ljava/lang/String;)V + .locals 2 + .param p1, "docdecl" # Ljava/lang/String; + + .prologue + .line 90 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "Cannot write docdecl for WBXML" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public endDocument()V + .locals 0 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 158 + invoke-virtual {p0}, Lorg/kxml2/wap/WbxmlSerializer;->flush()V + + .line 159 + return-void +.end method + +.method public endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 2 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v1, 0x1 + + .line 400 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + if-eqz v0, :cond_0 + + .line 401 + invoke-virtual {p0, v1}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 405 + :goto_0 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + add-int/lit8 v0, v0, -0x1 + + iput v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + .line 406 + return-object p0 + + .line 403 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v0, v1}, Ljava/io/ByteArrayOutputStream;->write(I)V + + goto :goto_0 +.end method + +.method public entityRef(Ljava/lang/String;)V + .locals 2 + .param p1, "er" # Ljava/lang/String; + + .prologue + .line 97 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "EntityReference not supported for WBXML" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public flush()V + .locals 2 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 167 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 169 + iget-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + if-nez v0, :cond_0 + + .line 170 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->size()I + + move-result v1 + + invoke-static {v0, v1}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 171 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write([B)V + + .line 172 + const/4 v0, 0x1 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + .line 175 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write([B)V + + .line 176 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V + + .line 177 + return-void +.end method + +.method public getDepth()I + .locals 1 + + .prologue + .line 104 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + return v0 +.end method + +.method public getFeature(Ljava/lang/String;)Z + .locals 1 + .param p1, "name" # Ljava/lang/String; + + .prologue + .line 111 + const/4 v0, 0x0 + + return v0 +.end method + +.method public getName()Ljava/lang/String; + .locals 1 + + .prologue + .line 129 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + return-object v0 +.end method + +.method public getNamespace()Ljava/lang/String; + .locals 1 + + .prologue + .line 120 + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public getPrefix(Ljava/lang/String;Z)Ljava/lang/String; + .locals 2 + .param p1, "nsp" # Ljava/lang/String; + .param p2, "create" # Z + + .prologue + .line 136 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public getProperty(Ljava/lang/String;)Ljava/lang/Object; + .locals 1 + .param p1, "name" # Ljava/lang/String; + + .prologue + .line 145 + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public ignorableWhitespace(Ljava/lang/String;)V + .locals 0 + .param p1, "sp" # Ljava/lang/String; + + .prologue + .line 149 + return-void +.end method + +.method public processingInstruction(Ljava/lang/String;)V + .locals 2 + .param p1, "pi" # Ljava/lang/String; + + .prologue + .line 246 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "PI NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setAttrStartTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "attrStartTable" # [Ljava/lang/String; + + .prologue + .line 536 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 537 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 538 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit8 v3, v0, 0x5 + + aput v3, v1, v2 + + .line 539 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrStartTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 536 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 542 + :cond_1 + return-void +.end method + +.method public setAttrValueTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "attrValueTable" # [Ljava/lang/String; + + .prologue + .line 552 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 553 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 554 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit16 v3, v0, 0x85 + + aput v3, v1, v2 + + .line 555 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->attrValueTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 552 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 558 + :cond_1 + return-void +.end method + +.method public setFeature(Ljava/lang/String;Z)V + .locals 3 + .param p1, "name" # Ljava/lang/String; + .param p2, "value" # Z + + .prologue + .line 253 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "unknown feature " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V + .locals 1 + .param p1, "out" # Ljava/io/OutputStream; + .param p2, "encoding" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 268 + if-nez p2, :cond_0 + + const-string p2, "UTF-8" + + .end local p2 # "encoding":Ljava/lang/String; + :cond_0 + iput-object p2, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + .line 269 + iput-object p1, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + .line 271 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + .line 272 + new-instance v0, Ljava/io/ByteArrayOutputStream; + + invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V + + iput-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->stringTableBuf:Ljava/io/ByteArrayOutputStream; + + .line 273 + const/4 v0, 0x0 + + iput-boolean v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->headerSent:Z + + .line 276 + return-void +.end method + +.method public setOutput(Ljava/io/Writer;)V + .locals 2 + .param p1, "writer" # Ljava/io/Writer; + + .prologue + .line 260 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "Wbxml requires an OutputStream!" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setPrefix(Ljava/lang/String;Ljava/lang/String;)V + .locals 2 + .param p1, "prefix" # Ljava/lang/String; + .param p2, "nsp" # Ljava/lang/String; + + .prologue + .line 282 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setProperty(Ljava/lang/String;Ljava/lang/Object;)V + .locals 3 + .param p1, "property" # Ljava/lang/String; + .param p2, "value" # Ljava/lang/Object; + + .prologue + .line 289 + new-instance v0, Ljava/lang/IllegalArgumentException; + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const-string v2, "unknown property " + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public setTagTable(I[Ljava/lang/String;)V + .locals 4 + .param p1, "page" # I + .param p2, "tagTable" # [Ljava/lang/String; + + .prologue + .line 518 + const/4 v0, 0x0 + + .local v0, "i":I + :goto_0 + array-length v2, p2 + + if-ge v0, v2, :cond_1 + + .line 519 + aget-object v2, p2, v0 + + if-eqz v2, :cond_0 + + .line 520 + const/4 v2, 0x2 + + new-array v1, v2, [I + + const/4 v2, 0x0 + + aput p1, v1, v2 + + const/4 v2, 0x1 + + add-int/lit8 v3, v0, 0x5 + + aput v3, v1, v2 + + .line 521 + .local v1, "idx":[I + iget-object v2, p0, Lorg/kxml2/wap/WbxmlSerializer;->tagTable:Ljava/util/Hashtable; + + aget-object v3, p2, v0 + + invoke-virtual {v2, v3, v1}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + .line 518 + .end local v1 # "idx":[I + :cond_0 + add-int/lit8 v0, v0, 0x1 + + goto :goto_0 + + .line 524 + :cond_1 + return-void +.end method + +.method public startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V + .locals 2 + .param p1, "encoding" # Ljava/lang/String; + .param p2, "standalone" # Ljava/lang/Boolean; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 299 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x3 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 301 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x1 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 305 + if-eqz p1, :cond_0 + + .line 306 + iput-object p1, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + .line 309 + :cond_0 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "UTF-8" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_1 + + .line 310 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/16 v1, 0x6a + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + .line 316 + :goto_0 + return-void + + .line 311 + :cond_1 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {v0}, Ljava/lang/String;->toUpperCase()Ljava/lang/String; + + move-result-object v0 + + const-string v1, "ISO-8859-1" + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_2 + + .line 312 + iget-object v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->out:Ljava/io/OutputStream; + + const/4 v1, 0x4 + + invoke-virtual {v0, v1}, Ljava/io/OutputStream;->write(I)V + + goto :goto_0 + + .line 314 + :cond_2 + new-instance v0, Ljava/io/UnsupportedEncodingException; + + invoke-direct {v0, p1}, Ljava/io/UnsupportedEncodingException;->(Ljava/lang/String;)V + + throw v0 +.end method + +.method public startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 2 + .param p1, "namespace" # Ljava/lang/String; + .param p2, "name" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 321 + if-eqz p1, :cond_0 + + const-string v0, "" + + invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_0 + + .line 322 + new-instance v0, Ljava/lang/RuntimeException; + + const-string v1, "NSP NYI" + + invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V + + throw v0 + + .line 326 + :cond_0 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 327 + iput-object p2, p0, Lorg/kxml2/wap/WbxmlSerializer;->pending:Ljava/lang/String; + + .line 328 + iget v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + add-int/lit8 v0, v0, 0x1 + + iput v0, p0, Lorg/kxml2/wap/WbxmlSerializer;->depth:I + + .line 330 + return-object p0 +.end method + +.method public text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "text" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 340 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 341 + invoke-direct {p0, p1}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 342 + return-object p0 +.end method + +.method public text([CII)Lorg/xmlpull/v1/XmlSerializer; + .locals 1 + .param p1, "chars" # [C + .param p2, "start" # I + .param p3, "len" # I + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 334 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 335 + new-instance v0, Ljava/lang/String; + + invoke-direct {v0, p1, p2, p3}, Ljava/lang/String;->([CII)V + + invoke-direct {p0, v0}, Lorg/kxml2/wap/WbxmlSerializer;->writeStr(Ljava/lang/String;)V + + .line 336 + return-object p0 +.end method + +.method writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + .locals 2 + .param p1, "out" # Ljava/io/OutputStream; + .param p2, "s" # Ljava/lang/String; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + .line 463 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->encoding:Ljava/lang/String; + + invoke-virtual {p2, v1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B + + move-result-object v0 + + .line 464 + .local v0, "data":[B + invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write([B)V + + .line 465 + const/4 v1, 0x0 + + invoke-virtual {p1, v1}, Ljava/io/OutputStream;->write(I)V + + .line 466 + return-void +.end method + +.method public writeWapExtension(ILjava/lang/Object;)V + .locals 3 + .param p1, "type" # I + .param p2, "data" # Ljava/lang/Object; + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/io/IOException; + } + .end annotation + + .prologue + const/4 v2, 0x0 + + .line 413 + invoke-virtual {p0, v2}, Lorg/kxml2/wap/WbxmlSerializer;->checkPending(Z)V + + .line 414 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1, p1}, Ljava/io/ByteArrayOutputStream;->write(I)V + + .line 415 + sparse-switch p1, :sswitch_data_0 + + .line 440 + new-instance v1, Ljava/lang/IllegalArgumentException; + + invoke-direct {v1}, Ljava/lang/IllegalArgumentException;->()V + + throw v1 + + .line 422 + :sswitch_0 + check-cast p2, [B + + .end local p2 # "data":Ljava/lang/Object; + move-object v0, p2 + + check-cast v0, [B + + .line 423 + .local v0, "bytes":[B + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + array-length v2, v0 + + invoke-static {v1, v2}, Lorg/kxml2/wap/WbxmlSerializer;->writeInt(Ljava/io/OutputStream;I)V + + .line 424 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + invoke-virtual {v1, v0}, Ljava/io/ByteArrayOutputStream;->write([B)V + + .line 442 + .end local v0 # "bytes":[B + :goto_0 + :sswitch_1 + return-void + + .line 430 + .restart local p2 # "data":Ljava/lang/Object; + :sswitch_2 + iget-object v1, p0, Lorg/kxml2/wap/WbxmlSerializer;->buf:Ljava/io/ByteArrayOutputStream; + + check-cast p2, Ljava/lang/String; + + .end local p2 # "data":Ljava/lang/Object; + invoke-virtual {p0, v1, p2}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrI(Ljava/io/OutputStream;Ljava/lang/String;)V + + goto :goto_0 + + .line 436 + .restart local p2 # "data":Ljava/lang/Object; + :sswitch_3 + check-cast p2, Ljava/lang/String; + + .end local p2 # "data":Ljava/lang/Object; + invoke-direct {p0, p2, v2}, Lorg/kxml2/wap/WbxmlSerializer;->writeStrT(Ljava/lang/String;Z)V + + goto :goto_0 + + .line 415 + nop + + :sswitch_data_0 + .sparse-switch + 0x40 -> :sswitch_2 + 0x41 -> :sswitch_2 + 0x42 -> :sswitch_2 + 0x80 -> :sswitch_3 + 0x81 -> :sswitch_3 + 0x82 -> :sswitch_3 + 0xc0 -> :sswitch_1 + 0xc1 -> :sswitch_1 + 0xc2 -> :sswitch_1 + 0xc3 -> :sswitch_0 + .end sparse-switch +.end method diff --git a/vendor/grammars/smali-sublime b/vendor/grammars/smali-sublime new file mode 160000 index 00000000..42b6e469 --- /dev/null +++ b/vendor/grammars/smali-sublime @@ -0,0 +1 @@ +Subproject commit 42b6e4696a3330e457c469e416b2cb67849dbb79