--- /home/hans/code/fdroid/data/tmp/org.isoron.uhabits_22.apk +++ /home/hans/code/fdroid/data/tmp/sigcp_org.isoron.uhabits_22.apk ├── zipinfo {} │ @@ -1,8 +1,8 @@ │ -Zip file size: 2702747 bytes, number of entries: 592 │ +Zip file size: 2701248 bytes, number of entries: 592 │ -rw---- 2.0 fat 59311 bl defN 08-Jan-01 00:00 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 59432 bl defN 08-Jan-01 00:00 META-INF/83E306ED.SF │ -rw---- 2.0 fat 1326 bl defN 08-Jan-01 00:00 META-INF/83E306ED.RSA │ -rw---- 2.0 fat 41 bl defN 08-Jan-01 00:00 META-INF/buildserverid │ -rw---- 2.0 fat 41 bl defN 08-Jan-01 00:00 META-INF/fdroidserverid │ -rw---- 2.0 fat 7596 bX defN 08-Jan-01 00:00 AndroidManifest.xml │ -rw---- 2.0 fat 80652 bl defN 08-Jan-01 00:00 assets/fontawesome-webfont.ttf │ @@ -586,9 +586,9 @@ │ -rw---- 2.0 fat 3652 bl defN 08-Jan-01 00:00 res/xml/preferences.xml │ -rw---- 2.0 fat 596 bl defN 08-Jan-01 00:00 res/xml/widget_checkmark_info.xml │ -rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/xml/widget_frequency_info.xml │ -rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/xml/widget_history_info.xml │ -rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/xml/widget_score_info.xml │ -rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/xml/widget_streak_info.xml │ -rw---- 1.0 fat 540736 b- stor 08-Jan-01 00:00 resources.arsc │ --rw---- 2.0 fat 3396816 bl defN 08-Jan-01 00:00 classes.dex │ -592 files, 4859435 bytes uncompressed, 2597242 bytes compressed: 46.6% │ +-rw---- 2.0 fat 3396540 bl defN 08-Jan-01 00:00 classes.dex │ +592 files, 4859159 bytes uncompressed, 2597258 bytes compressed: 46.6% ├── smali/android/support/design/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 1152 │ return-void │ .end method ├── smali/android/support/v14/preference/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 1057 │ return-void │ .end method ├── smali/android/support/v4/app/BundleCompatDonut.smali │ @@ -96,17 +96,17 @@ │ │ invoke-virtual {v1, p0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/os/IBinder; │ :try_end_1 │ - .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_2 │ - .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_3 │ - .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_3 │ + .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_2 │ │ .line 58 │ :goto_1 │ return-object v1 │ │ .line 43 │ :catch_0 │ @@ -233,17 +233,17 @@ │ │ const/4 v3, 0x1 │ │ aput-object p2, v2, v3 │ │ invoke-virtual {v1, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_1 │ - .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_2 │ - .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_3 │ - .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_3 │ + .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_2 │ │ .line 82 │ :cond_1 │ :goto_1 │ return-void │ │ .line 67 ├── smali/android/support/v4/media/IMediaBrowserServiceCallbacksAdapterApi21$Stub.smali │ @@ -47,16 +47,16 @@ │ │ invoke-virtual {v1, v2, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v2 │ │ sput-object v2, Landroid/support/v4/media/IMediaBrowserServiceCallbacksAdapterApi21$Stub;->sAsInterfaceMethod:Ljava/lang/reflect/Method; │ :try_end_0 │ - .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_1 │ - .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_1 │ │ .line 100 │ :goto_0 │ return-void │ │ .line 97 │ :catch_0 ├── smali/android/support/v4/media/IMediaBrowserServiceCallbacksAdapterApi21.smali │ @@ -128,16 +128,16 @@ │ │ invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v3 │ │ iput-object v3, p0, Landroid/support/v4/media/IMediaBrowserServiceCallbacksAdapterApi21;->mOnLoadChildrenMethod:Ljava/lang/reflect/Method; │ :try_end_0 │ - .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_1 │ - .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_1 │ │ .line 53 │ .end local v1 # "parceledListSliceClass":Ljava/lang/Class; │ .end local v2 # "theClass":Ljava/lang/Class; │ :goto_0 │ return-void ├── smali/android/support/v4/media/ParceledListSliceAdapterApi21.smali │ @@ -34,16 +34,16 @@ │ │ invoke-virtual {v1, v2}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; │ │ move-result-object v2 │ │ sput-object v2, Landroid/support/v4/media/ParceledListSliceAdapterApi21;->sConstructor:Ljava/lang/reflect/Constructor; │ :try_end_0 │ - .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_1 │ - .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_1 │ │ .line 37 │ :goto_0 │ return-void │ │ .line 34 │ :catch_0 ├── smali/android/support/v7/appcompat/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 953 │ return-void │ .end method ├── smali/android/support/v7/preference/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 1035 │ return-void │ .end method ├── smali/android/support/v7/recyclerview/R.smali │ @@ -18,10 +18,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 24 │ return-void │ .end method ├── smali/com/android/colorpicker/ColorPickerDialog.smali │ @@ -185,15 +185,15 @@ │ │ move-result-object v1 │ │ instance-of v1, v1, Lcom/android/colorpicker/ColorPickerSwatch$OnColorSelectedListener; │ │ if-eqz v1, :cond_1 │ │ - .line 132 │ + .line 133 │ invoke-virtual {p0}, Lcom/android/colorpicker/ColorPickerDialog;->getTargetFragment()Landroid/support/v4/app/Fragment; │ │ move-result-object v0 │ │ check-cast v0, Lcom/android/colorpicker/ColorPickerSwatch$OnColorSelectedListener; │ │ .line 134 │ @@ -386,22 +386,25 @@ │ :cond_0 │ new-instance v2, Landroid/support/v7/app/AlertDialog$Builder; │ │ invoke-direct {v2, v0}, Landroid/support/v7/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ iget v3, p0, Lcom/android/colorpicker/ColorPickerDialog;->mTitleResId:I │ │ + .line 118 │ invoke-virtual {v2, v3}, Landroid/support/v7/app/AlertDialog$Builder;->setTitle(I)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 119 │ invoke-virtual {v2, v1}, Landroid/support/v7/app/AlertDialog$Builder;->setView(Landroid/view/View;)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 120 │ invoke-virtual {v2}, Landroid/support/v7/app/AlertDialog$Builder;->create()Landroid/support/v7/app/AlertDialog; │ │ move-result-object v2 │ │ iput-object v2, p0, Lcom/android/colorpicker/ColorPickerDialog;->mAlertDialog:Landroid/support/v7/app/AlertDialog; │ │ .line 122 ├── smali/com/android/colorpicker/ColorPickerPalette.smali │ @@ -292,14 +292,16 @@ │ # virtual methods │ .method public drawPalette([II)V │ .locals 11 │ .param p1, "colors" # [I │ .param p2, "selectedColor" # I │ │ .prologue │ + const/4 v8, 0x0 │ + │ .line 87 │ if-nez p1, :cond_1 │ │ .line 123 │ :cond_0 │ :goto_0 │ return-void │ @@ -319,116 +321,113 @@ │ .local v3, "rowElements":I │ const/4 v1, 0x0 │ │ .line 97 │ .local v1, "rowNumber":I │ invoke-direct {p0}, Lcom/android/colorpicker/ColorPickerPalette;->createTableRow()Landroid/widget/TableRow; │ │ - move-result-object v10 │ + move-result-object v7 │ │ .line 98 │ - .local v10, "row":Landroid/widget/TableRow; │ - move-object v6, p1 │ + .local v7, "row":Landroid/widget/TableRow; │ + array-length v10, p1 │ │ - .local v6, "arr$":[I │ - array-length v9, v6 │ - │ - .local v9, "len$":I │ - const/4 v8, 0x0 │ + move v9, v8 │ │ - .local v8, "i$":I │ :goto_1 │ - if-ge v8, v9, :cond_4 │ + if-ge v9, v10, :cond_4 │ │ - aget v7, v6, v8 │ + aget v6, p1, v9 │ │ .line 99 │ - .local v7, "color":I │ + .local v6, "color":I │ add-int/lit8 v2, v2, 0x1 │ │ .line 101 │ - invoke-direct {p0, v7, p2}, Lcom/android/colorpicker/ColorPickerPalette;->createColorSwatch(II)Lcom/android/colorpicker/ColorPickerSwatch; │ + invoke-direct {p0, v6, p2}, Lcom/android/colorpicker/ColorPickerPalette;->createColorSwatch(II)Lcom/android/colorpicker/ColorPickerSwatch; │ │ move-result-object v5 │ │ .line 102 │ .local v5, "colorSwatch":Landroid/view/View; │ - if-ne v7, p2, :cond_3 │ + if-ne v6, p2, :cond_3 │ │ const/4 v4, 0x1 │ │ :goto_2 │ move-object v0, p0 │ │ invoke-direct/range {v0 .. v5}, Lcom/android/colorpicker/ColorPickerPalette;->setSwatchDescription(IIIZLandroid/view/View;)V │ │ .line 104 │ - invoke-static {v10, v5, v1}, Lcom/android/colorpicker/ColorPickerPalette;->addSwatchToRow(Landroid/widget/TableRow;Landroid/view/View;I)V │ + invoke-static {v7, v5, v1}, Lcom/android/colorpicker/ColorPickerPalette;->addSwatchToRow(Landroid/widget/TableRow;Landroid/view/View;I)V │ │ .line 106 │ add-int/lit8 v3, v3, 0x1 │ │ .line 107 │ iget v0, p0, Lcom/android/colorpicker/ColorPickerPalette;->mNumColumns:I │ │ if-ne v3, v0, :cond_2 │ │ .line 108 │ - invoke-virtual {p0, v10}, Lcom/android/colorpicker/ColorPickerPalette;->addView(Landroid/view/View;)V │ + invoke-virtual {p0, v7}, Lcom/android/colorpicker/ColorPickerPalette;->addView(Landroid/view/View;)V │ │ .line 109 │ invoke-direct {p0}, Lcom/android/colorpicker/ColorPickerPalette;->createTableRow()Landroid/widget/TableRow; │ │ - move-result-object v10 │ + move-result-object v7 │ │ .line 110 │ const/4 v3, 0x0 │ │ .line 111 │ add-int/lit8 v1, v1, 0x1 │ │ .line 98 │ :cond_2 │ - add-int/lit8 v8, v8, 0x1 │ + add-int/lit8 v0, v9, 0x1 │ + │ + move v9, v0 │ │ goto :goto_1 │ │ - .line 102 │ :cond_3 │ - const/4 v4, 0x0 │ + move v4, v8 │ │ + .line 102 │ goto :goto_2 │ │ .line 116 │ .end local v5 # "colorSwatch":Landroid/view/View; │ - .end local v7 # "color":I │ + .end local v6 # "color":I │ :cond_4 │ if-lez v3, :cond_0 │ │ .line 117 │ :goto_3 │ iget v0, p0, Lcom/android/colorpicker/ColorPickerPalette;->mNumColumns:I │ │ if-eq v3, v0, :cond_5 │ │ .line 118 │ invoke-direct {p0}, Lcom/android/colorpicker/ColorPickerPalette;->createBlankSpace()Landroid/widget/ImageView; │ │ move-result-object v0 │ │ - invoke-static {v10, v0, v1}, Lcom/android/colorpicker/ColorPickerPalette;->addSwatchToRow(Landroid/widget/TableRow;Landroid/view/View;I)V │ + invoke-static {v7, v0, v1}, Lcom/android/colorpicker/ColorPickerPalette;->addSwatchToRow(Landroid/widget/TableRow;Landroid/view/View;I)V │ │ .line 119 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_3 │ │ .line 121 │ :cond_5 │ - invoke-virtual {p0, v10}, Lcom/android/colorpicker/ColorPickerPalette;->addView(Landroid/view/View;)V │ + invoke-virtual {p0, v7}, Lcom/android/colorpicker/ColorPickerPalette;->addView(Landroid/view/View;)V │ │ goto :goto_0 │ .end method │ │ .method public init(IILcom/android/colorpicker/ColorPickerSwatch$OnColorSelectedListener;)V │ .locals 2 │ .param p1, "size" # I ├── smali/com/android/colorpicker/ColorPickerSwatch.smali │ @@ -148,14 +148,15 @@ │ .line 63 │ const/4 v1, 0x1 │ │ new-array v0, v1, [Landroid/graphics/drawable/Drawable; │ │ const/4 v1, 0x0 │ │ + .line 64 │ invoke-virtual {p0}, Lcom/android/colorpicker/ColorPickerSwatch;->getContext()Landroid/content/Context; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ move-result-object v2 ├── smali/com/android/colorpicker/ColorStateDrawable.smali │ @@ -70,86 +70,81 @@ │ .line 70 │ const/4 v0, 0x1 │ │ return v0 │ .end method │ │ .method protected onStateChange([I)Z │ - .locals 7 │ + .locals 5 │ .param p1, "states" # [I │ │ .prologue │ .line 41 │ - const/4 v3, 0x0 │ + const/4 v0, 0x0 │ │ .line 42 │ - .local v3, "pressedOrFocused":Z │ - move-object v0, p1 │ + .local v0, "pressedOrFocused":Z │ + array-length v3, p1 │ │ - .local v0, "arr$":[I │ - array-length v2, v0 │ + const/4 v2, 0x0 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ - │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_1 │ + if-ge v2, v3, :cond_1 │ │ - aget v4, v0, v1 │ + aget v1, p1, v2 │ │ .line 43 │ - .local v4, "state":I │ - const v5, 0x10100a7 │ + .local v1, "state":I │ + const v4, 0x10100a7 │ │ - if-eq v4, v5, :cond_0 │ + if-eq v1, v4, :cond_0 │ │ - const v5, 0x101009c │ + const v4, 0x101009c │ │ - if-ne v4, v5, :cond_2 │ + if-ne v1, v4, :cond_2 │ │ .line 44 │ :cond_0 │ - const/4 v3, 0x1 │ + const/4 v0, 0x1 │ │ .line 49 │ - .end local v4 # "state":I │ + .end local v1 # "state":I │ :cond_1 │ - if-eqz v3, :cond_3 │ + if-eqz v0, :cond_3 │ │ .line 50 │ - iget v5, p0, Lcom/android/colorpicker/ColorStateDrawable;->mColor:I │ + iget v2, p0, Lcom/android/colorpicker/ColorStateDrawable;->mColor:I │ │ - invoke-static {v5}, Lcom/android/colorpicker/ColorStateDrawable;->getPressedColor(I)I │ + invoke-static {v2}, Lcom/android/colorpicker/ColorStateDrawable;->getPressedColor(I)I │ │ - move-result v5 │ + move-result v2 │ │ - sget-object v6, Landroid/graphics/PorterDuff$Mode;->SRC_ATOP:Landroid/graphics/PorterDuff$Mode; │ + sget-object v3, Landroid/graphics/PorterDuff$Mode;->SRC_ATOP:Landroid/graphics/PorterDuff$Mode; │ │ - invoke-super {p0, v5, v6}, Landroid/graphics/drawable/LayerDrawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V │ + invoke-super {p0, v2, v3}, Landroid/graphics/drawable/LayerDrawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V │ │ .line 55 │ :goto_1 │ invoke-super {p0, p1}, Landroid/graphics/drawable/LayerDrawable;->onStateChange([I)Z │ │ - move-result v5 │ + move-result v2 │ │ - return v5 │ + return v2 │ │ .line 42 │ - .restart local v4 # "state":I │ + .restart local v1 # "state":I │ :cond_2 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 52 │ - .end local v4 # "state":I │ + .end local v1 # "state":I │ :cond_3 │ - iget v5, p0, Lcom/android/colorpicker/ColorStateDrawable;->mColor:I │ + iget v2, p0, Lcom/android/colorpicker/ColorStateDrawable;->mColor:I │ │ - sget-object v6, Landroid/graphics/PorterDuff$Mode;->SRC_ATOP:Landroid/graphics/PorterDuff$Mode; │ + sget-object v3, Landroid/graphics/PorterDuff$Mode;->SRC_ATOP:Landroid/graphics/PorterDuff$Mode; │ │ - invoke-super {p0, v5, v6}, Landroid/graphics/drawable/LayerDrawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V │ + invoke-super {p0, v2, v3}, Landroid/graphics/drawable/LayerDrawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V │ │ goto :goto_1 │ .end method ├── smali/com/android/datetimepicker/HapticFeedbackController$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/HapticFeedbackController; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/HapticFeedbackController;Landroid/os/Handler;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/HapticFeedbackController; │ .param p2, "x0" # Landroid/os/Handler; │ │ .prologue │ .line 32 │ iput-object p1, p0, Lcom/android/datetimepicker/HapticFeedbackController$1;->this$0:Lcom/android/datetimepicker/HapticFeedbackController; │ │ invoke-direct {p0, p2}, Landroid/database/ContentObserver;->(Landroid/os/Handler;)V ├── smali/com/android/datetimepicker/Utils.smali │ @@ -200,14 +200,15 @@ │ .local v6, "scaleY":Landroid/animation/PropertyValuesHolder; │ new-array v7, v11, [Landroid/animation/PropertyValuesHolder; │ │ aput-object v5, v7, v9 │ │ aput-object v6, v7, v10 │ │ + .line 135 │ invoke-static {p0, v7}, Landroid/animation/ObjectAnimator;->ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator; │ │ move-result-object v4 │ │ .line 136 │ .local v4, "pulseAnimator":Landroid/animation/ObjectAnimator; │ const-wide/16 v8, 0x220 ├── smali/com/android/datetimepicker/date/DatePickerDialog$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/date/DatePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/date/DatePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/date/DatePickerDialog; │ │ .prologue │ .line 248 │ iput-object p1, p0, Lcom/android/datetimepicker/date/DatePickerDialog$1;->this$0:Lcom/android/datetimepicker/date/DatePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -77,14 +78,15 @@ │ │ invoke-virtual {v2, v3}, Ljava/util/Calendar;->get(I)I │ │ move-result v2 │ │ iget-object v3, p0, Lcom/android/datetimepicker/date/DatePickerDialog$1;->this$0:Lcom/android/datetimepicker/date/DatePickerDialog; │ │ + .line 256 │ # getter for: Lcom/android/datetimepicker/date/DatePickerDialog;->mCalendar:Ljava/util/Calendar; │ invoke-static {v3}, Lcom/android/datetimepicker/date/DatePickerDialog;->access$100(Lcom/android/datetimepicker/date/DatePickerDialog;)Ljava/util/Calendar; │ │ move-result-object v3 │ │ const/4 v4, 0x2 │ │ @@ -101,14 +103,15 @@ │ │ const/4 v5, 0x5 │ │ invoke-virtual {v4, v5}, Ljava/util/Calendar;->get(I)I │ │ move-result v4 │ │ + .line 255 │ invoke-interface {v0, v1, v2, v3, v4}, Lcom/android/datetimepicker/date/DatePickerDialog$OnDateSetListener;->onDateSet(Lcom/android/datetimepicker/date/DatePickerDialog;III)V │ │ .line 258 │ :cond_0 │ iget-object v0, p0, Lcom/android/datetimepicker/date/DatePickerDialog$1;->this$0:Lcom/android/datetimepicker/date/DatePickerDialog; │ │ invoke-virtual {v0}, Lcom/android/datetimepicker/date/DatePickerDialog;->dismiss()V ├── smali/com/android/datetimepicker/date/DatePickerDialog$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/date/DatePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/date/DatePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/date/DatePickerDialog; │ │ .prologue │ .line 264 │ iput-object p1, p0, Lcom/android/datetimepicker/date/DatePickerDialog$2;->this$0:Lcom/android/datetimepicker/date/DatePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/date/DatePickerDialog.smali │ @@ -545,56 +545,64 @@ │ .line 353 │ iget-object v5, p0, Lcom/android/datetimepicker/date/DatePickerDialog;->mDayOfWeekView:Landroid/widget/TextView; │ │ iget-object v6, p0, Lcom/android/datetimepicker/date/DatePickerDialog;->mCalendar:Ljava/util/Calendar; │ │ const/4 v7, 0x7 │ │ + .line 354 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v8 │ │ + .line 353 │ invoke-virtual {v6, v7, v9, v8}, Ljava/util/Calendar;->getDisplayName(IILjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v6 │ │ + .line 354 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v6 │ │ + .line 353 │ invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 357 │ :cond_0 │ iget-object v5, p0, Lcom/android/datetimepicker/date/DatePickerDialog;->mSelectedMonthTextView:Landroid/widget/TextView; │ │ iget-object v6, p0, Lcom/android/datetimepicker/date/DatePickerDialog;->mCalendar:Ljava/util/Calendar; │ │ const/4 v7, 0x1 │ │ + .line 358 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v8 │ │ + .line 357 │ invoke-virtual {v6, v9, v7, v8}, Ljava/util/Calendar;->getDisplayName(IILjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v6 │ │ + .line 358 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v6 │ │ + .line 357 │ invoke-virtual {v5, v6}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 359 │ iget-object v5, p0, Lcom/android/datetimepicker/date/DatePickerDialog;->mSelectedDayTextView:Landroid/widget/TextView; │ │ sget-object v6, Lcom/android/datetimepicker/date/DatePickerDialog;->DAY_FORMAT:Ljava/text/SimpleDateFormat; ├── smali/com/android/datetimepicker/date/DayPickerView$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$position:I │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/date/DayPickerView;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/date/DayPickerView; │ │ .prologue │ .line 239 │ iput-object p1, p0, Lcom/android/datetimepicker/date/DayPickerView$1;->this$0:Lcom/android/datetimepicker/date/DayPickerView; │ │ iput p2, p0, Lcom/android/datetimepicker/date/DayPickerView$1;->val$position:I ├── smali/com/android/datetimepicker/date/DayPickerView$ScrollStateRunnable.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic this$0:Lcom/android/datetimepicker/date/DayPickerView; │ │ │ # direct methods │ .method protected constructor (Lcom/android/datetimepicker/date/DayPickerView;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/date/DayPickerView; │ │ .prologue │ .line 285 │ iput-object p1, p0, Lcom/android/datetimepicker/date/DayPickerView$ScrollStateRunnable;->this$0:Lcom/android/datetimepicker/date/DayPickerView; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/date/MonthView$MonthViewTouchHelper.smali │ @@ -169,18 +169,20 @@ │ invoke-virtual {v1, v2, v3, p1}, Ljava/util/Calendar;->set(III)V │ │ .line 672 │ const-string v1, "dd MMMM yyyy" │ │ iget-object v2, p0, Lcom/android/datetimepicker/date/MonthView$MonthViewTouchHelper;->mTempCalendar:Ljava/util/Calendar; │ │ + .line 673 │ invoke-virtual {v2}, Ljava/util/Calendar;->getTimeInMillis()J │ │ move-result-wide v2 │ │ + .line 672 │ invoke-static {v1, v2, v3}, Landroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence; │ │ move-result-object v0 │ │ .line 675 │ .local v0, "date":Ljava/lang/CharSequence; │ iget-object v1, p0, Lcom/android/datetimepicker/date/MonthView$MonthViewTouchHelper;->this$0:Lcom/android/datetimepicker/date/MonthView; ├── smali/com/android/datetimepicker/date/MonthView.smali │ @@ -366,14 +366,15 @@ │ move-result v1 │ │ sput v1, Lcom/android/datetimepicker/date/MonthView;->MONTH_HEADER_SIZE:I │ │ .line 209 │ const v1, 0x7f09005c │ │ + .line 210 │ invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I │ │ move-result v1 │ │ sput v1, Lcom/android/datetimepicker/date/MonthView;->DAY_SELECTED_CIRCLE_SIZE:I │ │ .line 212 │ @@ -557,36 +558,40 @@ │ invoke-virtual {v5, v9, v0}, Ljava/util/Calendar;->set(II)V │ │ .line 431 │ iget-object v5, p0, Lcom/android/datetimepicker/date/MonthView;->mDayLabelCalendar:Ljava/util/Calendar; │ │ const/4 v6, 0x1 │ │ + .line 432 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v7 │ │ + .line 431 │ invoke-virtual {v5, v9, v6, v7}, Ljava/util/Calendar;->getDisplayName(IILjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 432 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v5 │ │ int-to-float v6, v3 │ │ int-to-float v7, v4 │ │ iget-object v8, p0, Lcom/android/datetimepicker/date/MonthView;->mMonthDayLabelPaint:Landroid/graphics/Paint; │ │ + .line 431 │ invoke-virtual {p1, v5, v6, v7, v8}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V │ │ .line 427 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ @@ -703,28 +708,32 @@ │ .local v2, "millis":J │ invoke-virtual {p0}, Lcom/android/datetimepicker/date/MonthView;->getContext()Landroid/content/Context; │ │ move-result-object v0 │ │ iget-object v1, p0, Lcom/android/datetimepicker/date/MonthView;->mFormatter:Ljava/util/Formatter; │ │ + .line 414 │ invoke-static {}, Landroid/text/format/Time;->getCurrentTimezone()Ljava/lang/String; │ │ move-result-object v7 │ │ move-wide v4, v2 │ │ + .line 413 │ invoke-static/range {v0 .. v7}, Landroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter; │ │ move-result-object v0 │ │ + .line 414 │ invoke-virtual {v0}, Ljava/util/Formatter;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 413 │ return-object v0 │ .end method │ │ .method private onDayClick(I)V │ .locals 4 │ .param p1, "day" # I ├── smali/com/android/datetimepicker/date/YearPickerView$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$position:I │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/date/YearPickerView;II)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/date/YearPickerView; │ │ .prologue │ .line 130 │ iput-object p1, p0, Lcom/android/datetimepicker/date/YearPickerView$1;->this$0:Lcom/android/datetimepicker/date/YearPickerView; │ │ iput p2, p0, Lcom/android/datetimepicker/date/YearPickerView$1;->val$position:I ├── smali/com/android/datetimepicker/date/YearPickerView$YearAdapter.smali │ @@ -62,14 +62,15 @@ │ .locals 4 │ .param p1, "position" # I │ .param p2, "convertView" # Landroid/view/View; │ .param p3, "parent" # Landroid/view/ViewGroup; │ │ .prologue │ .line 112 │ + .line 113 │ invoke-super {p0, p1, p2, p3}, Landroid/widget/ArrayAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Lcom/android/datetimepicker/date/TextViewWithCircularIndicator; │ │ .line 114 ├── smali/com/android/datetimepicker/time/AmPmCirclesView.smali │ @@ -132,14 +132,15 @@ │ │ int-to-float v5, v2 │ │ add-float/2addr v4, v5 │ │ float-to-double v4, v4 │ │ + .line 136 │ invoke-static {v4, v5}, Ljava/lang/Math;->sqrt(D)D │ │ move-result-wide v4 │ │ double-to-int v0, v4 │ │ .line 137 │ @@ -171,14 +172,15 @@ │ │ int-to-float v5, v2 │ │ add-float/2addr v4, v5 │ │ float-to-double v4, v4 │ │ + .line 142 │ invoke-static {v4, v5}, Ljava/lang/Math;->sqrt(D)D │ │ move-result-wide v4 │ │ double-to-int v1, v4 │ │ .line 143 │ @@ -288,27 +290,29 @@ │ sget-object v5, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align; │ │ invoke-virtual {v4, v5}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V │ │ .line 88 │ const v4, 0x7f0700a8 │ │ + .line 89 │ invoke-virtual {v1, v4}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-static {v4}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v4 │ │ iput v4, p0, Lcom/android/datetimepicker/time/AmPmCirclesView;->mCircleRadiusMultiplier:F │ │ .line 90 │ const v4, 0x7f0700a3 │ │ + .line 91 │ invoke-virtual {v1, v4}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-static {v4}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v4 │ @@ -391,15 +395,15 @@ │ .local v3, "layoutXCenter":I │ invoke-virtual {p0}, Lcom/android/datetimepicker/time/AmPmCirclesView;->getHeight()I │ │ move-result v10 │ │ div-int/lit8 v4, v10, 0x2 │ │ - .line 161 │ + .line 162 │ .local v4, "layoutYCenter":I │ invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I │ │ move-result v10 │ │ int-to-float v10, v10 ├── smali/com/android/datetimepicker/time/CircleView.smali │ @@ -123,18 +123,20 @@ │ │ .line 66 │ if-eqz p2, :cond_1 │ │ .line 67 │ const v1, 0x7f0700a9 │ │ + .line 68 │ invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 67 │ invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v1 │ │ iput v1, p0, Lcom/android/datetimepicker/time/CircleView;->mCircleRadiusMultiplier:F │ │ .line 76 │ @@ -145,27 +147,30 @@ │ │ goto :goto_0 │ │ .line 70 │ :cond_1 │ const v1, 0x7f0700a8 │ │ + .line 71 │ invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 70 │ invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v1 │ │ iput v1, p0, Lcom/android/datetimepicker/time/CircleView;->mCircleRadiusMultiplier:F │ │ .line 72 │ const v1, 0x7f0700a3 │ │ + .line 73 │ invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v1 ├── smali/com/android/datetimepicker/time/RadialPickerLayout$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/RadialPickerLayout;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ .prologue │ .line 595 │ iput-object p1, p0, Lcom/android/datetimepicker/time/RadialPickerLayout$1;->this$0:Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/time/RadialPickerLayout$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$isInnerCircle:[Ljava/lang/Boolean; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/RadialPickerLayout;[Ljava/lang/Boolean;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ .prologue │ .line 612 │ iput-object p1, p0, Lcom/android/datetimepicker/time/RadialPickerLayout$2;->this$0:Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ iput-object p2, p0, Lcom/android/datetimepicker/time/RadialPickerLayout$2;->val$isInnerCircle:[Ljava/lang/Boolean; ├── smali/com/android/datetimepicker/time/RadialPickerLayout.smali │ @@ -1366,14 +1366,15 @@ │ │ new-array v5, v5, [Ljava/lang/Object; │ │ const/4 v6, 0x0 │ │ aget v7, v19, v20 │ │ + .line 199 │ invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v7 │ │ aput-object v7, v5, v6 │ │ invoke-static {v2, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ @@ -1452,15 +1453,15 @@ │ │ .line 185 │ :cond_3 │ const/4 v2, 0x1 │ │ goto/16 :goto_2 │ │ - .line 198 │ + .line 199 │ .restart local v3 # "res":Landroid/content/res/Resources; │ .restart local v4 # "hoursTexts":[Ljava/lang/String; │ .restart local v18 # "hours":[I │ .restart local v19 # "hours_24":[I │ .restart local v20 # "i":I │ .restart local v21 # "innerHoursTexts":[Ljava/lang/String; │ .restart local v22 # "minutes":[I │ @@ -1571,26 +1572,28 @@ │ │ move-object/from16 v0, p0 │ │ iget-boolean v7, v0, Lcom/android/datetimepicker/time/RadialPickerLayout;->mHideAmPm:Z │ │ const/4 v9, 0x1 │ │ + .line 214 │ move-object/from16 v0, p0 │ │ move/from16 v1, p3 │ │ invoke-direct {v0, v1}, Lcom/android/datetimepicker/time/RadialPickerLayout;->isHourInnerCircle(I)Z │ │ move-result v11 │ │ move-object/from16 v6, p1 │ │ move/from16 v8, p5 │ │ + .line 213 │ invoke-virtual/range {v5 .. v11}, Lcom/android/datetimepicker/time/RadialSelectorView;->initialize(Landroid/content/Context;ZZZIZ)V │ │ .line 215 │ mul-int/lit8 v16, p4, 0x6 │ │ .line 216 │ .local v16, "minuteDegrees":I │ @@ -1740,18 +1743,20 @@ │ │ .line 155 │ .local v3, "minDimension":I │ invoke-static {v3, v4}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I │ │ move-result v5 │ │ + .line 156 │ invoke-static {v3, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I │ │ move-result v6 │ │ + .line 155 │ invoke-super {p0, v5, v6}, Landroid/widget/FrameLayout;->onMeasure(II)V │ │ .line 157 │ return-void │ .end method │ │ .method public onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z ├── smali/com/android/datetimepicker/time/RadialSelectorView.smali │ @@ -2,15 +2,14 @@ │ .super Landroid/view/View; │ .source "RadialSelectorView.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lcom/android/datetimepicker/time/RadialSelectorView$1;, │ Lcom/android/datetimepicker/time/RadialSelectorView$InvalidateUpdateListener; │ } │ .end annotation │ │ │ # static fields │ .field private static final FULL_ALPHA:I = 0xff │ @@ -852,14 +851,15 @@ │ │ invoke-static {p0, v8}, Landroid/animation/ObjectAnimator;->ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator; │ │ move-result-object v8 │ │ int-to-long v10, v1 │ │ + .line 346 │ invoke-virtual {v8, v10, v11}, Landroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator; │ │ move-result-object v0 │ │ .line 347 │ .local v0, "disappearAnimator":Landroid/animation/ObjectAnimator; │ iget-object v8, p0, Lcom/android/datetimepicker/time/RadialSelectorView;->mInvalidateUpdateListener:Lcom/android/datetimepicker/time/RadialSelectorView$InvalidateUpdateListener; │ @@ -1127,14 +1127,15 @@ │ │ move-result-object v18 │ │ int-to-long v0, v15 │ │ move-wide/from16 v20, v0 │ │ + .line 385 │ move-object/from16 v0, v18 │ │ move-wide/from16 v1, v20 │ │ invoke-virtual {v0, v1, v2}, Landroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator; │ │ move-result-object v14 │ @@ -1231,18 +1232,20 @@ │ │ .line 111 │ if-eqz p2, :cond_2 │ │ .line 112 │ const v2, 0x7f0700a9 │ │ + .line 113 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 112 │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 │ │ iput v2, p0, Lcom/android/datetimepicker/time/RadialSelectorView;->mCircleRadiusMultiplier:F │ │ .line 122 │ @@ -1251,41 +1254,44 @@ │ │ .line 123 │ if-eqz p3, :cond_3 │ │ .line 124 │ const v2, 0x7f0700c7 │ │ + .line 125 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 │ │ iput v2, p0, Lcom/android/datetimepicker/time/RadialSelectorView;->mInnerNumbersRadiusMultiplier:F │ │ .line 126 │ const v2, 0x7f0700c9 │ │ + .line 127 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 │ │ iput v2, p0, Lcom/android/datetimepicker/time/RadialSelectorView;->mOuterNumbersRadiusMultiplier:F │ │ .line 132 │ :goto_2 │ const v2, 0x7f0700d0 │ │ + .line 133 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 │ @@ -1346,27 +1352,30 @@ │ │ goto :goto_0 │ │ .line 115 │ :cond_2 │ const v2, 0x7f0700a8 │ │ + .line 116 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 115 │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 │ │ iput v2, p0, Lcom/android/datetimepicker/time/RadialSelectorView;->mCircleRadiusMultiplier:F │ │ .line 117 │ const v2, 0x7f0700a3 │ │ + .line 118 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 │ @@ -1375,14 +1384,15 @@ │ │ goto :goto_1 │ │ .line 129 │ :cond_3 │ const v2, 0x7f0700c8 │ │ + .line 130 │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v2 ├── smali/com/android/datetimepicker/time/RadialTextsView.smali │ @@ -2,15 +2,14 @@ │ .super Landroid/view/View; │ .source "RadialTextsView.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lcom/android/datetimepicker/time/RadialTextsView$1;, │ Lcom/android/datetimepicker/time/RadialTextsView$InvalidateUpdateListener; │ } │ .end annotation │ │ │ # static fields │ .field private static final TAG:Ljava/lang/String; = "RadialTextsView" │ @@ -598,14 +597,15 @@ │ │ move-result-object v17 │ │ int-to-long v0, v4 │ │ move-wide/from16 v18, v0 │ │ + .line 306 │ invoke-virtual/range {v17 .. v19}, Landroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator; │ │ move-result-object v17 │ │ move-object/from16 v0, v17 │ │ move-object/from16 v1, p0 │ @@ -837,14 +837,15 @@ │ │ move-result-object v17 │ │ int-to-long v0, v14 │ │ move-wide/from16 v18, v0 │ │ + .line 331 │ invoke-virtual/range {v17 .. v19}, Landroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator; │ │ move-result-object v17 │ │ move-object/from16 v0, v17 │ │ move-object/from16 v1, p0 │ @@ -1068,18 +1069,20 @@ │ │ .line 105 │ if-eqz p4, :cond_3 │ │ .line 106 │ const v3, 0x7f0700a9 │ │ + .line 107 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 106 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mCircleRadiusMultiplier:F │ │ .line 116 │ @@ -1097,57 +1100,65 @@ │ iget-boolean v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mHasInnerCircle:Z │ │ if-eqz v3, :cond_4 │ │ .line 119 │ const v3, 0x7f0700c9 │ │ + .line 120 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 119 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mNumbersRadiusMultiplier:F │ │ .line 121 │ const v3, 0x7f0700d6 │ │ + .line 122 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 121 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mTextSizeMultiplier:F │ │ .line 123 │ const v3, 0x7f0700c7 │ │ + .line 124 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 123 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mInnerNumbersRadiusMultiplier:F │ │ .line 125 │ const v3, 0x7f0700d4 │ │ + .line 126 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 125 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mInnerTextSizeMultiplier:F │ │ .line 128 │ @@ -1213,27 +1224,30 @@ │ │ goto/16 :goto_0 │ │ .line 109 │ :cond_3 │ const v3, 0x7f0700a8 │ │ + .line 110 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 109 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mCircleRadiusMultiplier:F │ │ .line 111 │ const v3, 0x7f0700a3 │ │ + .line 112 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ @@ -1242,31 +1256,35 @@ │ │ goto/16 :goto_1 │ │ .line 131 │ :cond_4 │ const v3, 0x7f0700c8 │ │ + .line 132 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 131 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mNumbersRadiusMultiplier:F │ │ .line 133 │ const v3, 0x7f0700d5 │ │ + .line 134 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 133 │ invoke-static {v3}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v3 │ │ iput v3, p0, Lcom/android/datetimepicker/time/RadialTextsView;->mTextSizeMultiplier:F │ │ goto :goto_2 ├── smali/com/android/datetimepicker/time/TimePickerDialog$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/TimePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/TimePickerDialog; │ │ .prologue │ .line 241 │ iput-object p1, p0, Lcom/android/datetimepicker/time/TimePickerDialog$1;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/time/TimePickerDialog$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/TimePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/TimePickerDialog; │ │ .prologue │ .line 248 │ iput-object p1, p0, Lcom/android/datetimepicker/time/TimePickerDialog$2;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/time/TimePickerDialog$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/TimePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/TimePickerDialog; │ │ .prologue │ .line 257 │ iput-object p1, p0, Lcom/android/datetimepicker/time/TimePickerDialog$3;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -92,14 +93,15 @@ │ # getter for: Lcom/android/datetimepicker/time/TimePickerDialog;->mTimePicker:Lcom/android/datetimepicker/time/RadialPickerLayout; │ invoke-static {v1}, Lcom/android/datetimepicker/time/TimePickerDialog;->access$600(Lcom/android/datetimepicker/time/TimePickerDialog;)Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ move-result-object v1 │ │ iget-object v2, p0, Lcom/android/datetimepicker/time/TimePickerDialog$3;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ + .line 267 │ # getter for: Lcom/android/datetimepicker/time/TimePickerDialog;->mTimePicker:Lcom/android/datetimepicker/time/RadialPickerLayout; │ invoke-static {v2}, Lcom/android/datetimepicker/time/TimePickerDialog;->access$600(Lcom/android/datetimepicker/time/TimePickerDialog;)Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Lcom/android/datetimepicker/time/RadialPickerLayout;->getHours()I │ │ @@ -112,14 +114,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Lcom/android/datetimepicker/time/RadialPickerLayout;->getMinutes()I │ │ move-result v3 │ │ + .line 266 │ invoke-interface {v0, v1, v2, v3}, Lcom/android/datetimepicker/time/TimePickerDialog$OnTimeSetListener;->onTimeSet(Lcom/android/datetimepicker/time/RadialPickerLayout;II)V │ │ .line 269 │ :cond_0 │ iget-object v0, p0, Lcom/android/datetimepicker/time/TimePickerDialog$3;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ invoke-virtual {v0}, Lcom/android/datetimepicker/time/TimePickerDialog;->dismiss()V ├── smali/com/android/datetimepicker/time/TimePickerDialog$4.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/TimePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/TimePickerDialog; │ │ .prologue │ .line 276 │ iput-object p1, p0, Lcom/android/datetimepicker/time/TimePickerDialog$4;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/time/TimePickerDialog$5.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ │ # direct methods │ .method constructor (Lcom/android/datetimepicker/time/TimePickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/datetimepicker/time/TimePickerDialog; │ │ .prologue │ .line 301 │ iput-object p1, p0, Lcom/android/datetimepicker/time/TimePickerDialog$5;->this$0:Lcom/android/datetimepicker/time/TimePickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/datetimepicker/time/TimePickerDialog$Node.smali │ @@ -73,44 +73,43 @@ │ .end method │ │ .method public canReach(I)Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ .locals 4 │ .param p1, "key" # I │ │ .prologue │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ .line 985 │ - iget-object v3, p0, Lcom/android/datetimepicker/time/TimePickerDialog$Node;->mChildren:Ljava/util/ArrayList; │ + iget-object v2, p0, Lcom/android/datetimepicker/time/TimePickerDialog$Node;->mChildren:Ljava/util/ArrayList; │ │ - if-nez v3, :cond_0 │ + if-nez v2, :cond_0 │ │ - move-object v0, v2 │ + move-object v0, v1 │ │ .line 993 │ :goto_0 │ return-object v0 │ │ .line 988 │ :cond_0 │ - iget-object v3, p0, Lcom/android/datetimepicker/time/TimePickerDialog$Node;->mChildren:Ljava/util/ArrayList; │ + iget-object v2, p0, Lcom/android/datetimepicker/time/TimePickerDialog$Node;->mChildren:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ │ .line 989 │ .local v0, "child":Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ @@ -120,15 +119,15 @@ │ │ if-eqz v3, :cond_1 │ │ goto :goto_0 │ │ .end local v0 # "child":Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ :cond_2 │ - move-object v0, v2 │ + move-object v0, v1 │ │ .line 993 │ goto :goto_0 │ .end method │ │ .method public containsKey(I)Z │ .locals 2 ├── smali/com/android/datetimepicker/time/TimePickerDialog.smali │ @@ -283,14 +283,15 @@ │ if-eq v3, v4, :cond_1 │ │ :cond_0 │ iget-boolean v3, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mIs24HourMode:Z │ │ if-nez v3, :cond_2 │ │ + .line 596 │ invoke-direct {p0}, Lcom/android/datetimepicker/time/TimePickerDialog;->isTypedTimeFullyLegal()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ .line 617 │ @@ -2248,14 +2249,15 @@ │ │ move-result v3 │ │ if-nez v3, :cond_2 │ │ iget-object v3, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mTypedTimes:Ljava/util/ArrayList; │ │ + .line 648 │ invoke-direct {p0, v1}, Lcom/android/datetimepicker/time/TimePickerDialog;->getAmOrPmKeyCode(I)I │ │ move-result v4 │ │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ @@ -2268,69 +2270,69 @@ │ │ :cond_2 │ move v2, v1 │ │ :cond_3 │ move v1, v2 │ │ + .line 647 │ goto :goto_0 │ .end method │ │ .method private isTypedTimeLegalSoFar()Z │ .locals 4 │ │ .prologue │ .line 625 │ - iget-object v2, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mLegalTimesTree:Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ + iget-object v1, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mLegalTimesTree:Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ │ .line 626 │ - .local v2, "node":Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ - iget-object v3, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mTypedTimes:Ljava/util/ArrayList; │ + .local v1, "node":Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ + iget-object v2, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mTypedTimes:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v3 │ + move-result v2 │ │ - if-eqz v3, :cond_1 │ + if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/lang/Integer; │ + check-cast v2, Ljava/lang/Integer; │ │ - invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I │ │ - move-result v1 │ + move-result v0 │ │ .line 627 │ - .local v1, "keyCode":I │ - invoke-virtual {v2, v1}, Lcom/android/datetimepicker/time/TimePickerDialog$Node;->canReach(I)Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ + .local v0, "keyCode":I │ + invoke-virtual {v1, v0}, Lcom/android/datetimepicker/time/TimePickerDialog$Node;->canReach(I)Lcom/android/datetimepicker/time/TimePickerDialog$Node; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 628 │ - if-nez v2, :cond_0 │ + if-nez v1, :cond_0 │ │ .line 629 │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ .line 632 │ - .end local v1 # "keyCode":I │ + .end local v0 # "keyCode":I │ :goto_0 │ - return v3 │ + return v2 │ │ :cond_1 │ - const/4 v3, 0x1 │ + const/4 v2, 0x1 │ │ goto :goto_0 │ .end method │ │ .method public static newInstance(Lcom/android/datetimepicker/time/TimePickerDialog$OnTimeSetListener;IIZ)Lcom/android/datetimepicker/time/TimePickerDialog; │ .locals 1 │ .param p0, "callback" # Lcom/android/datetimepicker/time/TimePickerDialog$OnTimeSetListener; │ @@ -2432,24 +2434,26 @@ │ .line 528 │ iget-object v3, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mCallback:Lcom/android/datetimepicker/time/TimePickerDialog$OnTimeSetListener; │ │ iget-object v4, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mTimePicker:Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ iget-object v5, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mTimePicker:Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ + .line 529 │ invoke-virtual {v5}, Lcom/android/datetimepicker/time/RadialPickerLayout;->getHours()I │ │ move-result v5 │ │ iget-object v6, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mTimePicker:Lcom/android/datetimepicker/time/RadialPickerLayout; │ │ invoke-virtual {v6}, Lcom/android/datetimepicker/time/RadialPickerLayout;->getMinutes()I │ │ move-result v6 │ │ + .line 528 │ invoke-interface {v3, v4, v5, v6}, Lcom/android/datetimepicker/time/TimePickerDialog$OnTimeSetListener;->onTimeSet(Lcom/android/datetimepicker/time/RadialPickerLayout;II)V │ │ .line 531 │ :cond_5 │ invoke-virtual {p0}, Lcom/android/datetimepicker/time/TimePickerDialog;->dismiss()V │ │ goto :goto_0 │ @@ -2497,18 +2501,20 @@ │ │ iget-object v5, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mDeletedKeyFormat:Ljava/lang/String; │ │ new-array v6, v2, [Ljava/lang/Object; │ │ aput-object v1, v6, v3 │ │ + .line 546 │ invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 545 │ invoke-static {v4, v5}, Lcom/android/datetimepicker/Utils;->tryAccessibilityAnnounce(Landroid/view/View;Ljava/lang/CharSequence;)V │ │ .line 547 │ invoke-direct {p0, v2}, Lcom/android/datetimepicker/time/TimePickerDialog;->updateDisplay(Z)V │ │ .end local v0 # "deleted":I │ .end local v1 # "deletedKeyStr":Ljava/lang/String; │ @@ -2601,14 +2607,15 @@ │ │ if-eq p1, v4, :cond_b │ │ iget-boolean v4, p0, Lcom/android/datetimepicker/time/TimePickerDialog;->mIs24HourMode:Z │ │ if-nez v4, :cond_7 │ │ + .line 556 │ invoke-direct {p0, v3}, Lcom/android/datetimepicker/time/TimePickerDialog;->getAmOrPmKeyCode(I)I │ │ move-result v4 │ │ if-eq p1, v4, :cond_b │ │ invoke-direct {p0, v2}, Lcom/android/datetimepicker/time/TimePickerDialog;->getAmOrPmKeyCode(I)I │ @@ -3015,14 +3022,15 @@ │ │ if-eqz v0, :cond_1 │ │ const/4 v0, -0x1 │ │ if-eq p1, v0, :cond_0 │ │ + .line 585 │ invoke-direct {p0, p1}, Lcom/android/datetimepicker/time/TimePickerDialog;->addKeyIfLegal(I)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ .line 586 │ @@ -3375,14 +3383,15 @@ │ │ const/4 v9, 0x0 │ │ const/4 v10, 0x0 │ │ aget v10, v7, v10 │ │ + .line 704 │ invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v10 │ │ aput-object v10, v8, v9 │ │ invoke-static {v2, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ @@ -3408,14 +3417,15 @@ │ │ const/4 v9, 0x0 │ │ const/4 v10, 0x1 │ │ aget v10, v7, v10 │ │ + .line 706 │ invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v10 │ │ aput-object v10, v8, v9 │ │ invoke-static {v5, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ @@ -3494,22 +3504,24 @@ │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ const-string v0, "minute" │ │ + .line 186 │ invoke-virtual {p1, v0}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ const-string v0, "is_24_hour_view" │ │ + .line 187 │ invoke-virtual {p1, v0}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ .line 188 │ @@ -3925,14 +3937,15 @@ │ │ .line 234 │ .local v10, "currentItemShowing":I │ if-eqz p3, :cond_0 │ │ const-string v2, "current_item_showing" │ │ + .line 235 │ move-object/from16 v0, p3 │ │ invoke-virtual {v0, v2}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/com/github/paolorotolo/appintro/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 966 │ return-void │ .end method ├── smali/com/mobeta/android/dslv/DragSortController$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/mobeta/android/dslv/DragSortController; │ │ │ # direct methods │ .method constructor (Lcom/mobeta/android/dslv/DragSortController;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/mobeta/android/dslv/DragSortController; │ │ .prologue │ .line 451 │ iput-object p1, p0, Lcom/mobeta/android/dslv/DragSortController$1;->this$0:Lcom/mobeta/android/dslv/DragSortController; │ │ invoke-direct {p0}, Landroid/view/GestureDetector$SimpleOnGestureListener;->()V ├── smali/com/mobeta/android/dslv/DragSortController.smali │ @@ -1322,28 +1322,30 @@ │ │ iget-object v10, p0, Lcom/mobeta/android/dslv/DragSortController;->mTempLoc:[I │ │ const/4 v11, 0x0 │ │ aget v10, v10, v11 │ │ + .line 349 │ invoke-virtual {v1}, Landroid/view/View;->getWidth()I │ │ move-result v11 │ │ add-int/2addr v10, v11 │ │ if-ge v5, v10, :cond_1 │ │ iget-object v10, p0, Lcom/mobeta/android/dslv/DragSortController;->mTempLoc:[I │ │ const/4 v11, 0x1 │ │ aget v10, v10, v11 │ │ + .line 350 │ invoke-virtual {v1}, Landroid/view/View;->getHeight()I │ │ move-result v11 │ │ add-int/2addr v10, v11 │ │ if-ge v6, v10, :cond_1 ├── smali/com/mobeta/android/dslv/DragSortCursorAdapter.smali │ @@ -108,106 +108,105 @@ │ iput-object v0, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mRemovedCursorPositions:Ljava/util/List; │ │ .line 49 │ return-void │ .end method │ │ .method private cleanMapping()V │ - .locals 7 │ + .locals 6 │ │ .prologue │ .line 165 │ - new-instance v4, Ljava/util/ArrayList; │ + new-instance v3, Ljava/util/ArrayList; │ │ - invoke-direct {v4}, Ljava/util/ArrayList;->()V │ + invoke-direct {v3}, Ljava/util/ArrayList;->()V │ │ .line 167 │ - .local v4, "toRemove":Ljava/util/List;, "Ljava/util/List;" │ - iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ + .local v3, "toRemove":Ljava/util/List;, "Ljava/util/List;" │ + iget-object v4, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ │ - invoke-virtual {v5}, Landroid/util/SparseIntArray;->size()I │ + invoke-virtual {v4}, Landroid/util/SparseIntArray;->size()I │ │ - move-result v3 │ + move-result v2 │ │ .line 168 │ - .local v3, "size":I │ + .local v2, "size":I │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_0 │ - if-ge v0, v3, :cond_1 │ + if-ge v0, v2, :cond_1 │ │ .line 169 │ - iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ + iget-object v4, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ │ - invoke-virtual {v5, v0}, Landroid/util/SparseIntArray;->keyAt(I)I │ + invoke-virtual {v4, v0}, Landroid/util/SparseIntArray;->keyAt(I)I │ │ - move-result v5 │ + move-result v4 │ │ - iget-object v6, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ + iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ │ - invoke-virtual {v6, v0}, Landroid/util/SparseIntArray;->valueAt(I)I │ + invoke-virtual {v5, v0}, Landroid/util/SparseIntArray;->valueAt(I)I │ │ - move-result v6 │ + move-result v5 │ │ - if-ne v5, v6, :cond_0 │ + if-ne v4, v5, :cond_0 │ │ .line 170 │ - iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ + iget-object v4, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ │ - invoke-virtual {v5, v0}, Landroid/util/SparseIntArray;->keyAt(I)I │ + invoke-virtual {v4, v0}, Landroid/util/SparseIntArray;->keyAt(I)I │ │ - move-result v5 │ + move-result v4 │ │ - invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-interface {v4, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v3, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 168 │ :cond_0 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ .line 174 │ :cond_1 │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v5 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_2 │ + if-eqz v4, :cond_2 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Ljava/lang/Integer; │ + check-cast v4, Ljava/lang/Integer; │ │ - invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I │ │ - move-result v2 │ + move-result v1 │ │ .line 175 │ - .local v2, "position":I │ - iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ + .local v1, "position":I │ + iget-object v4, p0, Lcom/mobeta/android/dslv/DragSortCursorAdapter;->mListMapping:Landroid/util/SparseIntArray; │ │ - invoke-virtual {v5, v2}, Landroid/util/SparseIntArray;->delete(I)V │ + invoke-virtual {v4, v1}, Landroid/util/SparseIntArray;->delete(I)V │ │ goto :goto_1 │ │ .line 177 │ - .end local v2 # "position":I │ + .end local v1 # "position":I │ :cond_2 │ return-void │ .end method │ │ .method private resetMappings()V │ .locals 1 ├── smali/com/mobeta/android/dslv/DragSortItemView.smali │ @@ -101,22 +101,24 @@ │ │ invoke-virtual {v0}, Landroid/view/View;->getMeasuredHeight()I │ │ move-result v2 │ │ sub-int/2addr v1, v2 │ │ + .line 59 │ invoke-virtual {p0}, Lcom/mobeta/android/dslv/DragSortItemView;->getMeasuredWidth()I │ │ move-result v2 │ │ invoke-virtual {p0}, Lcom/mobeta/android/dslv/DragSortItemView;->getMeasuredHeight()I │ │ move-result v3 │ │ + .line 58 │ invoke-virtual {v0, v4, v1, v2, v3}, Landroid/view/View;->layout(IIII)V │ │ goto :goto_0 │ .end method │ │ .method protected onMeasure(II)V │ .locals 7 │ @@ -164,19 +166,20 @@ │ :cond_0 │ invoke-virtual {v0}, Landroid/view/View;->isLayoutRequested()Z │ │ move-result v5 │ │ if-eqz v5, :cond_1 │ │ - .line 78 │ + .line 79 │ invoke-static {v6, v6}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I │ │ move-result v5 │ │ + .line 78 │ invoke-virtual {p0, v0, p1, v5}, Lcom/mobeta/android/dslv/DragSortItemView;->measureChild(Landroid/view/View;II)V │ │ .line 82 │ :cond_1 │ if-nez v2, :cond_2 │ │ .line 83 ├── smali/com/mobeta/android/dslv/DragSortListView$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ │ # direct methods │ .method constructor (Lcom/mobeta/android/dslv/DragSortListView;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/mobeta/android/dslv/DragSortListView; │ │ .prologue │ .line 272 │ iput-object p1, p0, Lcom/mobeta/android/dslv/DragSortListView$1;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/mobeta/android/dslv/DragSortListView$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ │ # direct methods │ .method constructor (Lcom/mobeta/android/dslv/DragSortListView;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/mobeta/android/dslv/DragSortListView; │ │ .prologue │ .line 554 │ iput-object p1, p0, Lcom/mobeta/android/dslv/DragSortListView$2;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ invoke-direct {p0}, Landroid/database/DataSetObserver;->()V ├── smali/com/mobeta/android/dslv/DragSortListView$DragScroller.smali │ @@ -327,27 +327,29 @@ │ │ sub-float/2addr v14, v15 │ │ move-object/from16 v0, p0 │ │ iget-object v15, v0, Lcom/mobeta/android/dslv/DragSortListView$DragScroller;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ + .line 2819 │ # getter for: Lcom/mobeta/android/dslv/DragSortListView;->mDragUpScrollHeight:F │ invoke-static {v15}, Lcom/mobeta/android/dslv/DragSortListView;->access$2200(Lcom/mobeta/android/dslv/DragSortListView;)F │ │ move-result v15 │ │ div-float/2addr v14, v15 │ │ move-object/from16 v0, p0 │ │ iget-wide v0, v0, Lcom/mobeta/android/dslv/DragSortListView$DragScroller;->mPrevTime:J │ │ move-wide/from16 v16, v0 │ │ + .line 2818 │ move-wide/from16 v0, v16 │ │ invoke-interface {v13, v14, v0, v1}, Lcom/mobeta/android/dslv/DragSortListView$DragScrollProfile;->getSpeed(FJ)F │ │ move-result v13 │ │ move-object/from16 v0, p0 │ @@ -609,27 +611,29 @@ │ │ sub-float/2addr v14, v15 │ │ move-object/from16 v0, p0 │ │ iget-object v15, v0, Lcom/mobeta/android/dslv/DragSortListView$DragScroller;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ + .line 2832 │ # getter for: Lcom/mobeta/android/dslv/DragSortListView;->mDragDownScrollHeight:F │ invoke-static {v15}, Lcom/mobeta/android/dslv/DragSortListView;->access$2500(Lcom/mobeta/android/dslv/DragSortListView;)F │ │ move-result v15 │ │ div-float/2addr v14, v15 │ │ move-object/from16 v0, p0 │ │ iget-wide v0, v0, Lcom/mobeta/android/dslv/DragSortListView$DragScroller;->mPrevTime:J │ │ move-wide/from16 v16, v0 │ │ + .line 2831 │ move-wide/from16 v0, v16 │ │ invoke-interface {v13, v14, v0, v1}, Lcom/mobeta/android/dslv/DragSortListView$DragScrollProfile;->getSpeed(FJ)F │ │ move-result v13 │ │ neg-float v13, v13 ├── smali/com/mobeta/android/dslv/DragSortListView$DragSortTracker.smali │ @@ -331,14 +331,15 @@ │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ + .line 2938 │ # getter for: Lcom/mobeta/android/dslv/DragSortListView;->mFirstExpPos:I │ invoke-static {v5}, Lcom/mobeta/android/dslv/DragSortListView;->access$1300(Lcom/mobeta/android/dslv/DragSortListView;)I │ │ move-result v5 │ │ # invokes: Lcom/mobeta/android/dslv/DragSortListView;->getItemHeight(I)I │ invoke-static {v4, v5}, Lcom/mobeta/android/dslv/DragSortListView;->access$2800(Lcom/mobeta/android/dslv/DragSortListView;I)I │ @@ -363,14 +364,15 @@ │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ const-string v4, "\n" │ │ + .line 2939 │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 2940 │ iget-object v3, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->mBuilder:Ljava/lang/StringBuilder; │ │ const-string v4, " " │ │ @@ -402,14 +404,15 @@ │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ iget-object v5, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ + .line 2942 │ # getter for: Lcom/mobeta/android/dslv/DragSortListView;->mSecondExpPos:I │ invoke-static {v5}, Lcom/mobeta/android/dslv/DragSortListView;->access$1400(Lcom/mobeta/android/dslv/DragSortListView;)I │ │ move-result v5 │ │ # invokes: Lcom/mobeta/android/dslv/DragSortListView;->getItemHeight(I)I │ invoke-static {v4, v5}, Lcom/mobeta/android/dslv/DragSortListView;->access$2800(Lcom/mobeta/android/dslv/DragSortListView;I)I │ @@ -434,14 +437,15 @@ │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ const-string v4, "\n" │ │ + .line 2943 │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 2944 │ iget-object v3, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->mBuilder:Ljava/lang/StringBuilder; │ │ const-string v4, " " │ │ @@ -490,14 +494,15 @@ │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ const-string v4, "\n" │ │ + .line 2946 │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 2947 │ iget-object v3, p0, Lcom/mobeta/android/dslv/DragSortListView$DragSortTracker;->mBuilder:Ljava/lang/StringBuilder; │ │ const-string v4, " " ├── smali/com/mobeta/android/dslv/DragSortListView$RemoveAnimator.smali │ @@ -373,35 +373,44 @@ │ iget-object v9, p0, Lcom/mobeta/android/dslv/DragSortListView$RemoveAnimator;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ iget-object v8, p0, Lcom/mobeta/android/dslv/DragSortListView$RemoveAnimator;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ │ # getter for: Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ invoke-static {v8}, Lcom/mobeta/android/dslv/DragSortListView;->access$1600(Lcom/mobeta/android/dslv/DragSortListView;)F │ │ + move-result v10 │ + │ + iget-object v8, p0, Lcom/mobeta/android/dslv/DragSortListView$RemoveAnimator;->this$0:Lcom/mobeta/android/dslv/DragSortListView; │ + │ + # getter for: Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ + invoke-static {v8}, Lcom/mobeta/android/dslv/DragSortListView;->access$1600(Lcom/mobeta/android/dslv/DragSortListView;)F │ + │ move-result v8 │ │ - const/4 v10, 0x0 │ + const/4 v11, 0x0 │ │ - cmpl-float v8, v8, v10 │ + cmpl-float v8, v8, v11 │ │ if-lez v8, :cond_2 │ │ const/4 v8, 0x1 │ │ :goto_1 │ int-to-float v8, v8 │ │ mul-float/2addr v8, v1 │ │ - int-to-float v10, v7 │ + int-to-float v11, v7 │ + │ + mul-float/2addr v8, v11 │ │ - mul-float/2addr v8, v10 │ + add-float/2addr v8, v10 │ │ - # += operator for: Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ - invoke-static {v9, v8}, Lcom/mobeta/android/dslv/DragSortListView;->access$1616(Lcom/mobeta/android/dslv/DragSortListView;F)F │ + # setter for: Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ + invoke-static {v9, v8}, Lcom/mobeta/android/dslv/DragSortListView;->access$1602(Lcom/mobeta/android/dslv/DragSortListView;F)F │ │ .line 1336 │ iget v8, p0, Lcom/mobeta/android/dslv/DragSortListView$RemoveAnimator;->mFloatLocX:F │ │ add-float/2addr v8, v2 │ │ iput v8, p0, Lcom/mobeta/android/dslv/DragSortListView$RemoveAnimator;->mFloatLocX:F ├── smali/com/mobeta/android/dslv/DragSortListView.smali │ @@ -524,24 +524,26 @@ │ │ const/high16 v13, 0x3f800000 # 1.0f │ │ sget v14, Lcom/mobeta/android/dslv/R$styleable;->DragSortListView_slide_shuffle_speed:I │ │ const/high16 v15, 0x3f400000 # 0.75f │ │ + .line 471 │ invoke-virtual {v11, v14, v15}, Landroid/content/res/TypedArray;->getFloat(IF)F │ │ move-result v14 │ │ sub-float/2addr v13, v14 │ │ invoke-static {v12, v13}, Ljava/lang/Math;->min(FF)F │ │ move-result v12 │ │ + .line 470 │ invoke-static {v5, v12}, Ljava/lang/Math;->max(FF)F │ │ move-result v5 │ │ move-object/from16 v0, p0 │ │ iput v5, v0, Lcom/mobeta/android/dslv/DragSortListView;->mSlideRegionFrac:F │ @@ -987,30 +989,14 @@ │ .prologue │ .line 61 │ iput p1, p0, Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ │ return p1 │ .end method │ │ -.method static synthetic access$1616(Lcom/mobeta/android/dslv/DragSortListView;F)F │ - .locals 1 │ - .param p0, "x0" # Lcom/mobeta/android/dslv/DragSortListView; │ - .param p1, "x1" # F │ - │ - .prologue │ - .line 61 │ - iget v0, p0, Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ - │ - add-float/2addr v0, p1 │ - │ - iput v0, p0, Lcom/mobeta/android/dslv/DragSortListView;->mRemoveVelocityX:F │ - │ - return v0 │ -.end method │ - │ .method static synthetic access$1700(Lcom/mobeta/android/dslv/DragSortListView;)V │ .locals 0 │ .param p0, "x0" # Lcom/mobeta/android/dslv/DragSortListView; │ │ .prologue │ .line 61 │ invoke-direct {p0}, Lcom/mobeta/android/dslv/DragSortListView;->destroyFloatView()V │ @@ -2195,14 +2181,15 @@ │ │ iget v3, p0, Lcom/mobeta/android/dslv/DragSortListView;->mDownScrollStartY:I │ │ if-gt v2, v3, :cond_1 │ │ iget-object v3, p0, Lcom/mobeta/android/dslv/DragSortListView;->mDragScroller:Lcom/mobeta/android/dslv/DragSortListView$DragScroller; │ │ + .line 1793 │ invoke-virtual {v3}, Lcom/mobeta/android/dslv/DragSortListView$DragScroller;->isScrolling()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ .line 1797 │ @@ -2511,21 +2498,22 @@ │ │ .line 753 │ .local v3, "dividerHeight":I │ if-eqz v2, :cond_0 │ │ if-eqz v3, :cond_0 │ │ - .line 754 │ + .line 755 │ invoke-virtual {p0}, Lcom/mobeta/android/dslv/DragSortListView;->getFirstVisiblePosition()I │ │ move-result v8 │ │ sub-int v8, p1, v8 │ │ + .line 754 │ invoke-virtual {p0, v8}, Lcom/mobeta/android/dslv/DragSortListView;->getChildAt(I)Landroid/view/View; │ │ move-result-object v4 │ │ check-cast v4, Landroid/view/ViewGroup; │ │ .line 756 │ @@ -3386,22 +3374,24 @@ │ :cond_0 │ iget v3, p0, Lcom/mobeta/android/dslv/DragSortListView;->mWidthMeasureSpec:I │ │ invoke-virtual {p0}, Lcom/mobeta/android/dslv/DragSortListView;->getListPaddingLeft()I │ │ move-result v4 │ │ + .line 2055 │ invoke-virtual {p0}, Lcom/mobeta/android/dslv/DragSortListView;->getListPaddingRight()I │ │ move-result v5 │ │ add-int/2addr v4, v5 │ │ iget v5, v1, Landroid/view/ViewGroup$LayoutParams;->width:I │ │ + .line 2054 │ invoke-static {v3, v4, v5}, Landroid/view/ViewGroup;->getChildMeasureSpec(III)I │ │ move-result v2 │ │ .line 2057 │ .local v2, "wspec":I │ iget v3, v1, Landroid/view/ViewGroup$LayoutParams;->height:I ├── smali/com/mobeta/android/dslv/R.smali │ @@ -17,10 +17,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 37 │ return-void │ .end method ├── smali/com/mobeta/android/dslv/SimpleDragSortCursorAdapter.smali │ @@ -289,21 +289,15 @@ │ │ move-result-object v10 │ │ invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ - const-string v10, " is not a " │ - │ - invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v9 │ - │ - const-string v10, " view that can be bounds by this SimpleCursorAdapter" │ + const-string v10, " is not a view that can be bounds by this SimpleCursorAdapter" │ │ invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ├── smali/com/mobeta/android/dslv/SimpleFloatViewManager.smali │ @@ -55,20 +55,22 @@ │ │ move-result v2 │ │ add-int/2addr v2, p1 │ │ iget-object v3, p0, Lcom/mobeta/android/dslv/SimpleFloatViewManager;->mListView:Landroid/widget/ListView; │ │ + .line 42 │ invoke-virtual {v3}, Landroid/widget/ListView;->getFirstVisiblePosition()I │ │ move-result v3 │ │ sub-int/2addr v2, v3 │ │ + .line 41 │ invoke-virtual {v1, v2}, Landroid/widget/ListView;->getChildAt(I)Landroid/view/View; │ │ move-result-object v0 │ │ .line 44 │ .local v0, "v":Landroid/view/View; │ if-nez v0, :cond_0 ├── smali/org/apmem/tools/layouts/R.smali │ @@ -17,10 +17,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 21 │ return-void │ .end method ├── smali/org/isoron/uhabits/BaseActivity$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$refreshKey:Ljava/lang/Long; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/BaseActivity;Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/BaseActivity; │ │ .prologue │ .line 110 │ iput-object p1, p0, Lorg/isoron/uhabits/BaseActivity$1;->this$0:Lorg/isoron/uhabits/BaseActivity; │ │ iput-object p2, p0, Lorg/isoron/uhabits/BaseActivity$1;->val$command:Lorg/isoron/uhabits/commands/Command; ├── smali/org/isoron/uhabits/BaseActivity.smali │ @@ -108,14 +108,15 @@ │ │ invoke-direct {v0, p0, p1, p3}, Lorg/isoron/uhabits/BaseActivity$1;->(Lorg/isoron/uhabits/BaseActivity;Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 124 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/BaseActivity$1;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 127 │ invoke-virtual {p1}, Lorg/isoron/uhabits/commands/Command;->getExecuteStringId()Ljava/lang/Integer; │ │ move-result-object v0 ├── smali/org/isoron/uhabits/HabitBroadcastReceiver$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$context:Landroid/content/Context; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/HabitBroadcastReceiver;Landroid/content/Context;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/HabitBroadcastReceiver; │ │ .prologue │ .line 85 │ iput-object p1, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$1;->this$0:Lorg/isoron/uhabits/HabitBroadcastReceiver; │ │ iput-object p2, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$1;->val$context:Landroid/content/Context; ├── smali/org/isoron/uhabits/HabitBroadcastReceiver$2.smali │ @@ -31,14 +31,15 @@ │ │ .field final synthetic val$timestamp:Ljava/lang/Long; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/HabitBroadcastReceiver;Lorg/isoron/uhabits/models/Habit;Landroid/content/Intent;Landroid/content/Context;Landroid/net/Uri;Ljava/lang/Long;Ljava/lang/Long;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/HabitBroadcastReceiver; │ │ .prologue │ .line 156 │ iput-object p1, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->this$0:Lorg/isoron/uhabits/HabitBroadcastReceiver; │ │ iput-object p2, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$habit:Lorg/isoron/uhabits/models/Habit; │ │ @@ -147,14 +148,15 @@ │ .line 174 │ iget-object v10, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ │ const/4 v11, 0x0 │ │ const/high16 v12, 0x8000000 │ │ + .line 175 │ invoke-static {v10, v11, v1, v12}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; │ │ move-result-object v2 │ │ .line 178 │ .local v2, "contentPendingIntent":Landroid/app/PendingIntent; │ iget-object v10, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ @@ -199,118 +201,134 @@ │ .local v7, "ringtoneUri":Landroid/net/Uri; │ new-instance v10, Landroid/support/v4/app/NotificationCompat$WearableExtender; │ │ invoke-direct {v10}, Landroid/support/v4/app/NotificationCompat$WearableExtender;->()V │ │ iget-object v11, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ │ + .line 187 │ invoke-virtual {v11}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ move-result-object v11 │ │ const v12, 0x7f020079 │ │ invoke-static {v11, v12}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; │ │ move-result-object v11 │ │ + .line 186 │ invoke-virtual {v10, v11}, Landroid/support/v4/app/NotificationCompat$WearableExtender;->setBackground(Landroid/graphics/Bitmap;)Landroid/support/v4/app/NotificationCompat$WearableExtender; │ │ move-result-object v9 │ │ .line 190 │ .local v9, "wearableExtender":Landroid/support/v4/app/NotificationCompat$WearableExtender; │ new-instance v10, Landroid/support/v4/app/NotificationCompat$Builder; │ │ iget-object v11, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ │ invoke-direct {v10, v11}, Landroid/support/v4/app/NotificationCompat$Builder;->(Landroid/content/Context;)V │ │ const v11, 0x7f02006a │ │ + .line 192 │ invoke-virtual {v10, v11}, Landroid/support/v4/app/NotificationCompat$Builder;->setSmallIcon(I)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ iget-object v11, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$habit:Lorg/isoron/uhabits/models/Habit; │ │ iget-object v11, v11, Lorg/isoron/uhabits/models/Habit;->name:Ljava/lang/String; │ │ + .line 193 │ invoke-virtual {v10, v11}, Landroid/support/v4/app/NotificationCompat$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ iget-object v11, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$habit:Lorg/isoron/uhabits/models/Habit; │ │ iget-object v11, v11, Lorg/isoron/uhabits/models/Habit;->description:Ljava/lang/String; │ │ + .line 194 │ invoke-virtual {v10, v11}, Landroid/support/v4/app/NotificationCompat$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ + .line 195 │ invoke-virtual {v10, v2}, Landroid/support/v4/app/NotificationCompat$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ + .line 196 │ invoke-virtual {v10, v3}, Landroid/support/v4/app/NotificationCompat$Builder;->setDeleteIntent(Landroid/app/PendingIntent;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ const v11, 0x7f02005c │ │ iget-object v12, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ │ const v13, 0x7f07001f │ │ + .line 198 │ invoke-virtual {v12, v13}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v12 │ │ + .line 197 │ invoke-virtual {v10, v11, v12, v0}, Landroid/support/v4/app/NotificationCompat$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ const v11, 0x7f020061 │ │ iget-object v12, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ │ const v13, 0x7f07007f │ │ + .line 200 │ invoke-virtual {v12, v13}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v12 │ │ + .line 199 │ invoke-virtual {v10, v11, v12, v8}, Landroid/support/v4/app/NotificationCompat$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ + .line 201 │ invoke-virtual {v10, v7}, Landroid/support/v4/app/NotificationCompat$Builder;->setSound(Landroid/net/Uri;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ + .line 202 │ invoke-virtual {v10, v9}, Landroid/support/v4/app/NotificationCompat$Builder;->extend(Landroid/support/v4/app/NotificationCompat$Extender;)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ iget-object v11, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$reminderTime:Ljava/lang/Long; │ │ + .line 203 │ invoke-virtual {v11}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v12 │ │ invoke-virtual {v10, v12, v13}, Landroid/support/v4/app/NotificationCompat$Builder;->setWhen(J)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ const/4 v11, 0x1 │ │ + .line 204 │ invoke-virtual {v10, v11}, Landroid/support/v4/app/NotificationCompat$Builder;->setShowWhen(Z)Landroid/support/v4/app/NotificationCompat$Builder; │ │ move-result-object v10 │ │ + .line 205 │ invoke-virtual {v10}, Landroid/support/v4/app/NotificationCompat$Builder;->build()Landroid/app/Notification; │ │ move-result-object v4 │ │ .line 207 │ .local v4, "notification":Landroid/app/Notification; │ iget v10, v4, Landroid/app/Notification;->flags:I │ @@ -320,14 +338,15 @@ │ iput v10, v4, Landroid/app/Notification;->flags:I │ │ .line 209 │ iget-object v10, p0, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->val$context:Landroid/content/Context; │ │ const-string v11, "notification" │ │ + .line 210 │ invoke-virtual {v10, v11}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Landroid/app/NotificationManager; │ │ .line 213 ├── smali/org/isoron/uhabits/HabitsApplication.smali │ @@ -447,145 +447,144 @@ │ │ move-result-object v2 │ │ goto/16 :goto_0 │ .end method │ │ .method public static getLogcat()Ljava/lang/String; │ - .locals 12 │ + .locals 11 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 91 │ - const/16 v8, 0xfa │ + const/16 v7, 0xfa │ │ .line 92 │ - .local v8, "maxNLines":I │ + .local v7, "maxNLines":I │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ .line 94 │ .local v1, "builder":Ljava/lang/StringBuilder; │ - const/4 v10, 0x2 │ + const/4 v9, 0x2 │ │ - new-array v2, v10, [Ljava/lang/String; │ + new-array v2, v9, [Ljava/lang/String; │ │ - const/4 v10, 0x0 │ + const/4 v9, 0x0 │ │ - const-string v11, "logcat" │ + const-string v10, "logcat" │ │ - aput-object v11, v2, v10 │ + aput-object v10, v2, v9 │ │ - const/4 v10, 0x1 │ + const/4 v9, 0x1 │ │ - const-string v11, "-d" │ + const-string v10, "-d" │ │ - aput-object v11, v2, v10 │ + aput-object v10, v2, v9 │ │ .line 95 │ .local v2, "command":[Ljava/lang/String; │ invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - invoke-virtual {v10, v2}, Ljava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process; │ + invoke-virtual {v9, v2}, Ljava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process; │ │ - move-result-object v9 │ + move-result-object v8 │ │ .line 97 │ - .local v9, "process":Ljava/lang/Process; │ - new-instance v4, Ljava/io/InputStreamReader; │ + .local v8, "process":Ljava/lang/Process; │ + new-instance v3, Ljava/io/InputStreamReader; │ │ - invoke-virtual {v9}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream; │ + invoke-virtual {v8}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - invoke-direct {v4, v10}, Ljava/io/InputStreamReader;->(Ljava/io/InputStream;)V │ + invoke-direct {v3, v9}, Ljava/io/InputStreamReader;->(Ljava/io/InputStream;)V │ │ .line 98 │ - .local v4, "in":Ljava/io/InputStreamReader; │ + .local v3, "in":Ljava/io/InputStreamReader; │ new-instance v0, Ljava/io/BufferedReader; │ │ - invoke-direct {v0, v4}, Ljava/io/BufferedReader;->(Ljava/io/Reader;)V │ + invoke-direct {v0, v3}, Ljava/io/BufferedReader;->(Ljava/io/Reader;)V │ │ .line 100 │ .local v0, "bufferedReader":Ljava/io/BufferedReader; │ - new-instance v7, Ljava/util/LinkedList; │ + new-instance v6, Ljava/util/LinkedList; │ │ - invoke-direct {v7}, Ljava/util/LinkedList;->()V │ + invoke-direct {v6}, Ljava/util/LinkedList;->()V │ │ .line 103 │ - .local v7, "log":Ljava/util/LinkedList;, "Ljava/util/LinkedList;" │ + .local v6, "log":Ljava/util/LinkedList;, "Ljava/util/LinkedList;" │ :cond_0 │ :goto_0 │ invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - .local v6, "line":Ljava/lang/String; │ - if-eqz v6, :cond_1 │ + .local v5, "line":Ljava/lang/String; │ + if-eqz v5, :cond_1 │ │ .line 105 │ - invoke-virtual {v7, v6}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V │ + invoke-virtual {v6, v5}, Ljava/util/LinkedList;->addLast(Ljava/lang/Object;)V │ │ .line 106 │ - invoke-virtual {v7}, Ljava/util/LinkedList;->size()I │ + invoke-virtual {v6}, Ljava/util/LinkedList;->size()I │ │ - move-result v10 │ + move-result v9 │ │ - if-le v10, v8, :cond_0 │ + if-le v9, v7, :cond_0 │ │ - invoke-virtual {v7}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object; │ + invoke-virtual {v6}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 109 │ :cond_1 │ - invoke-virtual {v7}, Ljava/util/LinkedList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v6}, Ljava/util/LinkedList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v9 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_2 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Ljava/lang/String; │ + check-cast v4, Ljava/lang/String; │ │ .line 111 │ - .local v5, "l":Ljava/lang/String; │ - invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .local v4, "l":Ljava/lang/String; │ + invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 112 │ const/16 v10, 0xa │ │ invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ goto :goto_1 │ │ .line 115 │ - .end local v5 # "l":Ljava/lang/String; │ + .end local v4 # "l":Ljava/lang/String; │ :cond_2 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - return-object v10 │ + return-object v9 │ .end method │ │ .method public static isTestMode()Z │ .locals 3 │ │ .prologue │ .line 50 ├── smali/org/isoron/uhabits/IntroActivity.smali │ @@ -31,26 +31,29 @@ │ │ invoke-virtual {p0, v0}, Lorg/isoron/uhabits/IntroActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ const v1, 0x7f070053 │ │ + .line 36 │ invoke-virtual {p0, v1}, Lorg/isoron/uhabits/IntroActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ const v2, 0x7f02006f │ │ const-string v3, "#194673" │ │ + .line 37 │ invoke-static {v3}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v3 │ │ + .line 35 │ invoke-static {v0, v1, v2, v3}, Lcom/github/paolorotolo/appintro/AppIntroFragment;->newInstance(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)Lcom/github/paolorotolo/appintro/AppIntroFragment; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/isoron/uhabits/IntroActivity;->addSlide(Landroid/support/v4/app/Fragment;)V │ │ .line 39 │ @@ -58,26 +61,29 @@ │ │ invoke-virtual {p0, v0}, Lorg/isoron/uhabits/IntroActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ const v1, 0x7f070054 │ │ + .line 40 │ invoke-virtual {p0, v1}, Lorg/isoron/uhabits/IntroActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ const v2, 0x7f020070 │ │ const-string v3, "#ffa726" │ │ + .line 41 │ invoke-static {v3}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v3 │ │ + .line 39 │ invoke-static {v0, v1, v2, v3}, Lcom/github/paolorotolo/appintro/AppIntroFragment;->newInstance(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)Lcom/github/paolorotolo/appintro/AppIntroFragment; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/isoron/uhabits/IntroActivity;->addSlide(Landroid/support/v4/app/Fragment;)V │ │ .line 43 │ @@ -85,26 +91,29 @@ │ │ invoke-virtual {p0, v0}, Lorg/isoron/uhabits/IntroActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ const v1, 0x7f070056 │ │ + .line 44 │ invoke-virtual {p0, v1}, Lorg/isoron/uhabits/IntroActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ const v2, 0x7f020071 │ │ const-string v3, "#9575cd" │ │ + .line 45 │ invoke-static {v3}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v3 │ │ + .line 43 │ invoke-static {v0, v1, v2, v3}, Lcom/github/paolorotolo/appintro/AppIntroFragment;->newInstance(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)Lcom/github/paolorotolo/appintro/AppIntroFragment; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lorg/isoron/uhabits/IntroActivity;->addSlide(Landroid/support/v4/app/Fragment;)V │ │ .line 46 ├── smali/org/isoron/uhabits/MainActivity$1.smali │ @@ -28,14 +28,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/MainActivity; │ │ .prologue │ .line 113 │ iput-object p1, p0, Lorg/isoron/uhabits/MainActivity$1;->this$0:Lorg/isoron/uhabits/MainActivity; │ │ invoke-direct {p0}, Landroid/os/AsyncTask;->()V ├── smali/org/isoron/uhabits/MainActivity$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/MainActivity; │ │ .prologue │ .line 200 │ iput-object p1, p0, Lorg/isoron/uhabits/MainActivity$2;->this$0:Lorg/isoron/uhabits/MainActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/isoron/uhabits/MainActivity$3.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/MainActivity; │ │ .prologue │ .line 283 │ iput-object p1, p0, Lorg/isoron/uhabits/MainActivity$3;->this$0:Lorg/isoron/uhabits/MainActivity; │ │ invoke-direct {p0}, Lorg/isoron/uhabits/tasks/BaseTask;->()V ├── smali/org/isoron/uhabits/MainActivity$Receiver.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/MainActivity; │ │ .prologue │ .line 328 │ iput-object p1, p0, Lorg/isoron/uhabits/MainActivity$Receiver;->this$0:Lorg/isoron/uhabits/MainActivity; │ │ invoke-direct {p0}, Landroid/content/BroadcastReceiver;->()V ├── smali/org/isoron/uhabits/MainActivity.smali │ @@ -40,15 +40,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 58 │ invoke-direct {p0}, Lorg/isoron/uhabits/BaseActivity;->()V │ │ - .line 328 │ return-void │ .end method │ │ .method static synthetic access$000(Lorg/isoron/uhabits/MainActivity;Landroid/content/Context;)V │ .locals 0 │ .param p0, "x0" # Lorg/isoron/uhabits/MainActivity; │ .param p1, "x1" # Landroid/content/Context; │ @@ -75,21 +74,20 @@ │ .locals 3 │ .param p1, "context" # Landroid/content/Context; │ │ .prologue │ .line 295 │ invoke-static {}, Lorg/isoron/uhabits/models/Habit;->getHabitsWithReminder()Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ @@ -329,14 +327,15 @@ │ .line 113 │ new-instance v0, Lorg/isoron/uhabits/MainActivity$1; │ │ invoke-direct {v0, p0}, Lorg/isoron/uhabits/MainActivity$1;->(Lorg/isoron/uhabits/MainActivity;)V │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 121 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/MainActivity$1;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 123 │ return-void │ .end method │ │ .method private refreshTheme()V │ @@ -592,15 +591,15 @@ │ .line 82 │ invoke-static {p0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ move-result-object v0 │ │ iput-object v0, p0, Lorg/isoron/uhabits/MainActivity;->prefs:Landroid/content/SharedPreferences; │ │ - .line 83 │ + .line 84 │ invoke-virtual {p0}, Lorg/isoron/uhabits/MainActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; │ │ move-result-object v0 │ │ const v1, 0x7f0e00a9 │ │ invoke-virtual {v0, v1}, Landroid/support/v4/app/FragmentManager;->findFragmentById(I)Landroid/support/v4/app/Fragment; │ @@ -895,14 +894,15 @@ │ │ invoke-direct {v0, p0}, Lorg/isoron/uhabits/MainActivity$3;->(Lorg/isoron/uhabits/MainActivity;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 290 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/MainActivity$3;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 291 │ return-void │ .end method │ │ .method public onRequestPermissionsResult(I[Ljava/lang/String;[I)V ├── smali/org/isoron/uhabits/HabitBroadcastReceiver.smali │ @@ -205,26 +205,29 @@ │ │ move-result-object v1 │ │ invoke-static {v1}, Landroid/support/v4/app/TaskStackBuilder;->create(Landroid/content/Context;)Landroid/support/v4/app/TaskStackBuilder; │ │ move-result-object v1 │ │ + .line 257 │ invoke-virtual {v1, v0}, Landroid/support/v4/app/TaskStackBuilder;->addNextIntentWithParentStack(Landroid/content/Intent;)Landroid/support/v4/app/TaskStackBuilder; │ │ move-result-object v1 │ │ const/4 v2, 0x0 │ │ const/high16 v3, 0x8000000 │ │ + .line 258 │ invoke-virtual {v1, v2, v3}, Landroid/support/v4/app/TaskStackBuilder;->getPendingIntent(II)Landroid/app/PendingIntent; │ │ move-result-object v1 │ │ + .line 256 │ return-object v1 │ .end method │ │ .method private checkHabit(Landroid/content/Context;Landroid/content/Intent;)V │ .locals 8 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "intent" # Landroid/content/Intent; │ @@ -414,14 +417,15 @@ │ │ invoke-direct/range {v0 .. v7}, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->(Lorg/isoron/uhabits/HabitBroadcastReceiver;Lorg/isoron/uhabits/models/Habit;Landroid/content/Intent;Landroid/content/Context;Landroid/net/Uri;Ljava/lang/Long;Ljava/lang/Long;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 218 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/HabitBroadcastReceiver$2;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ goto :goto_0 │ .end method │ │ .method private createReminderAlarmsDelayed(Landroid/content/Context;)V │ .locals 4 │ @@ -458,14 +462,15 @@ │ .param p1, "context" # Landroid/content/Context; │ .param p2, "habitId" # Ljava/lang/Long; │ │ .prologue │ .line 138 │ const-string v2, "notification" │ │ + .line 139 │ invoke-virtual {p1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/app/NotificationManager; │ │ .line 141 │ @@ -493,14 +498,15 @@ │ .param p0, "context" # Landroid/content/Context; │ .param p1, "habit" # Lorg/isoron/uhabits/models/Habit; │ │ .prologue │ .line 273 │ const-string v2, "notification" │ │ + .line 274 │ invoke-virtual {p0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/app/NotificationManager; │ │ .line 277 │ @@ -604,14 +610,15 @@ │ if-eqz v1, :cond_0 │ │ .line 103 │ new-instance v7, Ljava/util/Date; │ │ invoke-direct {v7}, Ljava/util/Date;->()V │ │ + .line 104 │ invoke-virtual {v7}, Ljava/util/Date;->getTime()J │ │ move-result-wide v8 │ │ const-wide/16 v10, 0x3c │ │ mul-long/2addr v10, v2 │ @@ -622,14 +629,15 @@ │ │ add-long/2addr v8, v10 │ │ invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v7 │ │ + .line 103 │ invoke-static {p1, v1, v7}, Lorg/isoron/uhabits/helpers/ReminderHelper;->createReminderAlarm(Landroid/content/Context;Lorg/isoron/uhabits/models/Habit;Ljava/lang/Long;)V │ │ .line 105 │ :cond_0 │ invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v7 ├── smali/org/isoron/uhabits/R.smali │ @@ -30,10 +30,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 4314 │ return-void │ .end method ├── smali/org/isoron/uhabits/commands/ChangeHabitColorCommand.smali │ @@ -53,30 +53,29 @@ │ .line 39 │ iput-object p1, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->habits:Ljava/util/List; │ │ .line 40 │ iput-object p2, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->newColor:Ljava/lang/Integer; │ │ .line 41 │ - new-instance v2, Ljava/util/ArrayList; │ + new-instance v1, Ljava/util/ArrayList; │ │ invoke-interface {p1}, Ljava/util/List;->size()I │ │ - move-result v3 │ + move-result v2 │ │ - invoke-direct {v2, v3}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v1, v2}, Ljava/util/ArrayList;->(I)V │ │ - iput-object v2, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->originalColors:Ljava/util/List; │ + iput-object v1, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->originalColors:Ljava/util/List; │ │ .line 43 │ invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/org/isoron/uhabits/commands/DeleteHabitsCommand.smali │ @@ -44,21 +44,20 @@ │ │ # virtual methods │ .method public execute()V │ .locals 3 │ │ .prologue │ .line 39 │ - iget-object v2, p0, Lorg/isoron/uhabits/commands/DeleteHabitsCommand;->habits:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/commands/DeleteHabitsCommand;->habits:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/org/isoron/uhabits/commands/EditHabitCommand.smali │ @@ -67,14 +67,15 @@ │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/Habit;->freqNum:Ljava/lang/Integer; │ │ iget-object v1, p0, Lorg/isoron/uhabits/commands/EditHabitCommand;->modified:Lorg/isoron/uhabits/models/Habit; │ │ iget-object v1, v1, Lorg/isoron/uhabits/models/Habit;->freqNum:Ljava/lang/Integer; │ │ + .line 39 │ invoke-virtual {v0, v1}, Ljava/lang/Integer;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ :cond_0 │ @@ -82,15 +83,15 @@ │ │ :goto_0 │ iput-boolean v0, p0, Lorg/isoron/uhabits/commands/EditHabitCommand;->hasIntervalChanged:Z │ │ .line 40 │ return-void │ │ - .line 38 │ + .line 39 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private copyAttributes(Lorg/isoron/uhabits/models/Habit;)V ├── smali/org/isoron/uhabits/commands/ChangeHabitColorCommand$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ │ .prologue │ .line 57 │ iput-object p1, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand$1;->this$0:Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -37,66 +38,65 @@ │ │ # virtual methods │ .method public execute()V │ .locals 5 │ │ .prologue │ .line 61 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ .line 62 │ - .local v2, "k":I │ - iget-object v4, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand$1;->this$0:Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ + .local v1, "k":I │ + iget-object v3, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand$1;->this$0:Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ │ - iget-object v4, v4, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->habits:Ljava/util/List; │ + iget-object v3, v3, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->habits:Ljava/util/List; │ │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v4 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_0 │ + if-eqz v3, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/isoron/uhabits/models/Habit; │ │ .line 64 │ .local v0, "h":Lorg/isoron/uhabits/models/Habit; │ - iget-object v4, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand$1;->this$0:Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ + iget-object v3, p0, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand$1;->this$0:Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ │ - iget-object v4, v4, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->originalColors:Ljava/util/List; │ + iget-object v3, v3, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->originalColors:Ljava/util/List; │ │ - add-int/lit8 v3, v2, 0x1 │ + add-int/lit8 v2, v1, 0x1 │ │ - .end local v2 # "k":I │ - .local v3, "k":I │ - invoke-interface {v4, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + .end local v1 # "k":I │ + .local v2, "k":I │ + invoke-interface {v3, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Ljava/lang/Integer; │ + check-cast v3, Ljava/lang/Integer; │ │ - iput-object v4, v0, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ + iput-object v3, v0, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ │ .line 65 │ invoke-virtual {v0}, Lorg/isoron/uhabits/models/Habit;->save()Ljava/lang/Long; │ │ - move v2, v3 │ + move v1, v2 │ │ .line 66 │ - .end local v3 # "k":I │ - .restart local v2 # "k":I │ + .end local v2 # "k":I │ + .restart local v1 # "k":I │ goto :goto_0 │ │ .line 67 │ .end local v0 # "h":Lorg/isoron/uhabits/models/Habit; │ :cond_0 │ return-void │ .end method ├── smali/org/isoron/uhabits/dialogs/EditHabitDialogFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ │ .prologue │ .line 246 │ iput-object p1, p0, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment$1;->this$0:Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/isoron/uhabits/dialogs/EditHabitDialogFragment.smali │ @@ -204,26 +204,28 @@ │ │ move-result v0 │ │ .line 241 │ .local v0, "originalAndroidColor":I │ const v2, 0x7f070023 │ │ + .line 242 │ invoke-virtual {p0}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->getActivity()Landroid/support/v4/app/FragmentActivity; │ │ move-result-object v3 │ │ invoke-static {v3}, Lorg/isoron/uhabits/helpers/ColorHelper;->getPalette(Landroid/content/Context;)[I │ │ move-result-object v3 │ │ const/4 v4, 0x4 │ │ const/4 v5, 0x2 │ │ + .line 241 │ invoke-static {v2, v3, v0, v4, v5}, Lcom/android/colorpicker/ColorPickerDialog;->newInstance(I[IIII)Lcom/android/colorpicker/ColorPickerDialog; │ │ move-result-object v1 │ │ .line 245 │ .local v1, "picker":Lcom/android/colorpicker/ColorPickerDialog; │ new-instance v2, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment$1; │ @@ -284,14 +286,15 @@ │ │ move-result v1 │ │ .line 322 │ :cond_0 │ iget-boolean v3, p0, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->is24HourMode:Z │ │ + .line 323 │ invoke-static {p0, v0, v1, v3}, Lcom/android/datetimepicker/time/TimePickerDialog;->newInstance(Lcom/android/datetimepicker/time/TimePickerDialog$OnTimeSetListener;IIZ)Lcom/android/datetimepicker/time/TimePickerDialog; │ │ move-result-object v2 │ │ .line 324 │ .local v2, "timePicker":Lcom/android/datetimepicker/time/TimePickerDialog; │ invoke-virtual {p0}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->getFragmentManager()Landroid/support/v4/app/FragmentManager; │ @@ -766,18 +769,20 @@ │ │ move-result v3 │ │ iget-object v4, p0, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->modifiedHabit:Lorg/isoron/uhabits/models/Habit; │ │ iget-object v4, v4, Lorg/isoron/uhabits/models/Habit;->reminderMin:Ljava/lang/Integer; │ │ + .line 192 │ invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I │ │ move-result v4 │ │ + .line 191 │ invoke-static {v2, v3, v4}, Lorg/isoron/uhabits/helpers/DateHelper;->formatTime(Landroid/content/Context;II)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 193 ├── smali/org/isoron/uhabits/dialogs/FilePickerDialog.smali │ @@ -5,15 +5,14 @@ │ # interfaces │ .implements Landroid/widget/AdapterView$OnItemClickListener; │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/isoron/uhabits/dialogs/FilePickerDialog$1;, │ Lorg/isoron/uhabits/dialogs/FilePickerDialog$RegularReadableFileFilter;, │ Lorg/isoron/uhabits/dialogs/FilePickerDialog$ReadableDirFilter;, │ Lorg/isoron/uhabits/dialogs/FilePickerDialog$FilePickerAdapter;, │ Lorg/isoron/uhabits/dialogs/FilePickerDialog$OnFileSelectedListener; │ } │ .end annotation │ │ @@ -99,175 +98,162 @@ │ .line 37 │ iget-object v0, p0, Lorg/isoron/uhabits/dialogs/FilePickerDialog;->activity:Landroid/app/Activity; │ │ return-object v0 │ .end method │ │ .method private getFileList(Ljava/io/File;[Ljava/io/File;[Ljava/io/File;)[Ljava/lang/String; │ - .locals 11 │ + .locals 10 │ .param p1, "path" # Ljava/io/File; │ .param p2, "dirs" # [Ljava/io/File; │ .param p3, "files" # [Ljava/io/File; │ .annotation build Landroid/support/annotation/NonNull; │ .end annotation │ │ .prologue │ + const/4 v6, 0x0 │ + │ .line 115 │ - const/4 v1, 0x0 │ + const/4 v0, 0x0 │ │ .line 116 │ - .local v1, "count":I │ - array-length v9, p2 │ + .local v0, "count":I │ + array-length v7, p2 │ │ - array-length v10, p3 │ + array-length v8, p3 │ │ - add-int v8, v9, v10 │ + add-int v5, v7, v8 │ │ .line 119 │ - .local v8, "length":I │ + .local v5, "length":I │ invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File; │ │ - move-result-object v9 │ + move-result-object v7 │ │ - if-eqz v9, :cond_0 │ + if-eqz v7, :cond_0 │ │ invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File; │ │ - move-result-object v9 │ + move-result-object v7 │ │ - invoke-virtual {v9}, Ljava/io/File;->canRead()Z │ + invoke-virtual {v7}, Ljava/io/File;->canRead()Z │ │ - move-result v9 │ + move-result v7 │ │ - if-nez v9, :cond_1 │ + if-nez v7, :cond_1 │ │ .line 121 │ :cond_0 │ - new-array v5, v8, [Ljava/lang/String; │ + new-array v4, v5, [Ljava/lang/String; │ │ .line 129 │ - .local v5, "fileList":[Ljava/lang/String; │ + .local v4, "fileList":[Ljava/lang/String; │ :goto_0 │ invoke-static {p2}, Ljava/util/Arrays;->sort([Ljava/lang/Object;)V │ │ .line 130 │ invoke-static {p3}, Ljava/util/Arrays;->sort([Ljava/lang/Object;)V │ │ .line 132 │ - move-object v0, p2 │ - │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v7, v0 │ + array-length v8, p2 │ │ - .local v7, "len$":I │ - const/4 v6, 0x0 │ + move v7, v6 │ │ - .local v6, "i$":I │ - move v2, v1 │ + move v1, v0 │ │ - .end local v1 # "count":I │ - .local v2, "count":I │ + .end local v0 # "count":I │ + .local v1, "count":I │ :goto_1 │ - if-ge v6, v7, :cond_2 │ + if-ge v7, v8, :cond_2 │ │ - aget-object v3, v0, v6 │ + aget-object v2, p2, v7 │ │ .line 133 │ - .local v3, "dir":Ljava/io/File; │ - add-int/lit8 v1, v2, 0x1 │ + .local v2, "dir":Ljava/io/File; │ + add-int/lit8 v0, v1, 0x1 │ │ - .end local v2 # "count":I │ - .restart local v1 # "count":I │ - invoke-virtual {v3}, Ljava/io/File;->getName()Ljava/lang/String; │ + .end local v1 # "count":I │ + .restart local v0 # "count":I │ + invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String; │ │ move-result-object v9 │ │ - aput-object v9, v5, v2 │ + aput-object v9, v4, v1 │ │ .line 132 │ - add-int/lit8 v6, v6, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ - move v2, v1 │ + move v1, v0 │ │ - .end local v1 # "count":I │ - .restart local v2 # "count":I │ + .end local v0 # "count":I │ + .restart local v1 # "count":I │ goto :goto_1 │ │ .line 125 │ - .end local v0 # "arr$":[Ljava/io/File; │ - .end local v2 # "count":I │ - .end local v3 # "dir":Ljava/io/File; │ - .end local v5 # "fileList":[Ljava/lang/String; │ - .end local v6 # "i$":I │ - .end local v7 # "len$":I │ - .restart local v1 # "count":I │ + .end local v1 # "count":I │ + .end local v2 # "dir":Ljava/io/File; │ + .end local v4 # "fileList":[Ljava/lang/String; │ + .restart local v0 # "count":I │ :cond_1 │ - add-int/lit8 v9, v8, 0x1 │ + add-int/lit8 v7, v5, 0x1 │ │ - new-array v5, v9, [Ljava/lang/String; │ + new-array v4, v7, [Ljava/lang/String; │ │ .line 126 │ - .restart local v5 # "fileList":[Ljava/lang/String; │ - add-int/lit8 v2, v1, 0x1 │ + .restart local v4 # "fileList":[Ljava/lang/String; │ + add-int/lit8 v1, v0, 0x1 │ │ - .end local v1 # "count":I │ - .restart local v2 # "count":I │ - const-string v9, ".." │ + .end local v0 # "count":I │ + .restart local v1 # "count":I │ + const-string v7, ".." │ │ - aput-object v9, v5, v1 │ + aput-object v7, v4, v0 │ │ - move v1, v2 │ + move v0, v1 │ │ - .end local v2 # "count":I │ - .restart local v1 # "count":I │ + .end local v1 # "count":I │ + .restart local v0 # "count":I │ goto :goto_0 │ │ .line 135 │ - .end local v1 # "count":I │ - .restart local v0 # "arr$":[Ljava/io/File; │ - .restart local v2 # "count":I │ - .restart local v6 # "i$":I │ - .restart local v7 # "len$":I │ + .end local v0 # "count":I │ + .restart local v1 # "count":I │ :cond_2 │ - move-object v0, p3 │ - │ - array-length v7, v0 │ - │ - const/4 v6, 0x0 │ + array-length v7, p3 │ │ :goto_2 │ if-ge v6, v7, :cond_3 │ │ - aget-object v4, v0, v6 │ + aget-object v3, p3, v6 │ │ .line 136 │ - .local v4, "file":Ljava/io/File; │ - add-int/lit8 v1, v2, 0x1 │ + .local v3, "file":Ljava/io/File; │ + add-int/lit8 v0, v1, 0x1 │ │ - .end local v2 # "count":I │ - .restart local v1 # "count":I │ - invoke-virtual {v4}, Ljava/io/File;->getName()Ljava/lang/String; │ + .end local v1 # "count":I │ + .restart local v0 # "count":I │ + invoke-virtual {v3}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - aput-object v9, v5, v2 │ + aput-object v8, v4, v1 │ │ .line 135 │ add-int/lit8 v6, v6, 0x1 │ │ - move v2, v1 │ + move v1, v0 │ │ - .end local v1 # "count":I │ - .restart local v2 # "count":I │ + .end local v0 # "count":I │ + .restart local v1 # "count":I │ goto :goto_2 │ │ .line 138 │ - .end local v4 # "file":Ljava/io/File; │ + .end local v3 # "file":Ljava/io/File; │ :cond_3 │ - return-object v5 │ + return-object v4 │ .end method │ │ .method private navigateTo(Ljava/io/File;)V │ .locals 5 │ .param p1, "path" # Ljava/io/File; │ │ .prologue ├── smali/org/isoron/uhabits/dialogs/HistoryEditorDialog$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/dialogs/HistoryEditorDialog; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/dialogs/HistoryEditorDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/dialogs/HistoryEditorDialog; │ │ .prologue │ .line 72 │ iput-object p1, p0, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog$1;->this$0:Lorg/isoron/uhabits/dialogs/HistoryEditorDialog; │ │ invoke-direct {p0}, Lorg/isoron/uhabits/tasks/BaseTask;->()V ├── smali/org/isoron/uhabits/dialogs/HistoryEditorDialog.smali │ @@ -26,15 +26,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 35 │ invoke-direct {p0}, Landroid/support/v7/app/AppCompatDialogFragment;->()V │ │ - .line 124 │ return-void │ .end method │ │ .method private refreshData()V │ .locals 2 │ │ .prologue │ @@ -43,14 +42,15 @@ │ │ invoke-direct {v0, p0}, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog$1;->(Lorg/isoron/uhabits/dialogs/HistoryEditorDialog;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 78 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog$1;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 79 │ return-void │ .end method │ │ │ @@ -162,20 +162,22 @@ │ │ invoke-virtual {v0, v5}, Landroid/support/v7/app/AlertDialog$Builder;->setTitle(I)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v5 │ │ iget-object v6, p0, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog;->historyView:Lorg/isoron/uhabits/views/HabitHistoryView; │ │ + .line 61 │ invoke-virtual {v5, v6}, Landroid/support/v7/app/AlertDialog$Builder;->setView(Landroid/view/View;)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v5 │ │ const v6, 0x104000a │ │ + .line 62 │ invoke-virtual {v5, v6, p0}, Landroid/support/v7/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ │ .line 64 │ invoke-direct {p0}, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog;->refreshData()V │ │ .line 66 │ invoke-virtual {v0}, Landroid/support/v7/app/AlertDialog$Builder;->create()Landroid/support/v7/app/AlertDialog; ├── smali/org/isoron/uhabits/dialogs/WeekdayPickerDialog$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog; │ │ .prologue │ .line 61 │ iput-object p1, p0, Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog$1;->this$0:Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/isoron/uhabits/dialogs/WeekdayPickerDialog.smali │ @@ -25,15 +25,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 31 │ invoke-direct {p0}, Landroid/support/v7/app/AppCompatDialogFragment;->()V │ │ - .line 35 │ return-void │ .end method │ │ │ # virtual methods │ .method public onClick(Landroid/content/DialogInterface;I)V │ .locals 2 │ @@ -91,36 +90,39 @@ │ .local v0, "builder":Landroid/support/v7/app/AlertDialog$Builder; │ const v1, 0x7f07007c │ │ invoke-virtual {v0, v1}, Landroid/support/v7/app/AlertDialog$Builder;->setTitle(I)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ + .line 58 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getLongDayNames()[Ljava/lang/String; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog;->selectedDays:[Z │ │ invoke-virtual {v1, v2, v3, p0}, Landroid/support/v7/app/AlertDialog$Builder;->setMultiChoiceItems([Ljava/lang/CharSequence;[ZLandroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const v2, 0x1040013 │ │ + .line 59 │ invoke-virtual {v1, v2, p0}, Landroid/support/v7/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const/high16 v2, 0x1040000 │ │ new-instance v3, Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog$1; │ │ invoke-direct {v3, p0}, Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog$1;->(Lorg/isoron/uhabits/dialogs/WeekdayPickerDialog;)V │ │ + .line 60 │ invoke-virtual {v1, v2, v3}, Landroid/support/v7/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ │ .line 69 │ invoke-virtual {v0}, Landroid/support/v7/app/AlertDialog$Builder;->create()Landroid/support/v7/app/AlertDialog; │ │ move-result-object v1 ├── smali/org/isoron/uhabits/fragments/HabitSelectionCallback$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$selectedHabits:Ljava/util/LinkedList; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/fragments/HabitSelectionCallback;Ljava/util/LinkedList;Landroid/support/v7/view/ActionMode;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/fragments/HabitSelectionCallback; │ │ .prologue │ .line 175 │ iput-object p1, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1;->this$0:Lorg/isoron/uhabits/fragments/HabitSelectionCallback; │ │ iput-object p2, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1;->val$selectedHabits:Ljava/util/LinkedList; │ │ @@ -70,22 +71,24 @@ │ │ move-result-object v1 │ │ new-instance v2, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand; │ │ iget-object v3, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1;->val$selectedHabits:Ljava/util/LinkedList; │ │ + .line 181 │ invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ invoke-direct {v2, v3, v4}, Lorg/isoron/uhabits/commands/ChangeHabitColorCommand;->(Ljava/util/List;Ljava/lang/Integer;)V │ │ const/4 v3, 0x0 │ │ + .line 180 │ invoke-virtual {v1, v2, v3}, Lorg/isoron/uhabits/BaseActivity;->executeCommand(Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ │ .line 182 │ iget-object v1, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1;->val$mode:Landroid/support/v7/view/ActionMode; │ │ invoke-virtual {v1}, Landroid/support/v7/view/ActionMode;->finish()V ├── smali/org/isoron/uhabits/fragments/HabitSelectionCallback$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$selectedHabits:Ljava/util/LinkedList; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/fragments/HabitSelectionCallback;Ljava/util/LinkedList;Landroid/support/v7/view/ActionMode;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/fragments/HabitSelectionCallback; │ │ .prologue │ .line 195 │ iput-object p1, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$2;->this$0:Lorg/isoron/uhabits/fragments/HabitSelectionCallback; │ │ iput-object p2, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$2;->val$selectedHabits:Ljava/util/LinkedList; ├── smali/org/isoron/uhabits/fragments/HabitSelectionCallback.smali │ @@ -76,157 +76,154 @@ │ .end method │ │ .method private updateActions(Landroid/view/Menu;)V │ .locals 12 │ .param p1, "menu" # Landroid/view/Menu; │ │ .prologue │ - const/4 v11, 0x1 │ + const/4 v10, 0x1 │ │ .line 107 │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->selectedPositions:Ljava/util/List; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->selectedPositions:Ljava/util/List; │ │ - invoke-interface {v10}, Ljava/util/List;->size()I │ + invoke-interface {v9}, Ljava/util/List;->size()I │ │ - move-result v10 │ + move-result v9 │ │ - if-ne v10, v11, :cond_0 │ + if-ne v9, v10, :cond_0 │ │ - move v8, v11 │ + move v7, v10 │ │ .line 108 │ - .local v8, "showEdit":Z │ + .local v7, "showEdit":Z │ :goto_0 │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ .line 109 │ - .local v7, "showArchive":Z │ - const/4 v9, 0x1 │ + .local v6, "showArchive":Z │ + const/4 v8, 0x1 │ │ .line 110 │ - .local v9, "showUnarchive":Z │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->selectedPositions:Ljava/util/List; │ + .local v8, "showUnarchive":Z │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->selectedPositions:Ljava/util/List; │ │ - invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v9}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v11 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_2 │ + if-eqz v9, :cond_2 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - check-cast v10, Ljava/lang/Integer; │ + check-cast v9, Ljava/lang/Integer; │ │ - invoke-virtual {v10}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I │ │ move-result v1 │ │ .line 112 │ .local v1, "i":I │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->loader:Lorg/isoron/uhabits/loaders/HabitListLoader; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->loader:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ - iget-object v10, v10, Lorg/isoron/uhabits/loaders/HabitListLoader;->habitsList:Ljava/util/List; │ + iget-object v9, v9, Lorg/isoron/uhabits/loaders/HabitListLoader;->habitsList:Ljava/util/List; │ │ - invoke-interface {v10, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v9, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/isoron/uhabits/models/Habit; │ │ .line 113 │ .local v0, "h":Lorg/isoron/uhabits/models/Habit; │ invoke-virtual {v0}, Lorg/isoron/uhabits/models/Habit;->isArchived()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_1 │ + if-eqz v9, :cond_1 │ │ .line 115 │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ goto :goto_1 │ │ .line 107 │ .end local v0 # "h":Lorg/isoron/uhabits/models/Habit; │ .end local v1 # "i":I │ - .end local v2 # "i$":Ljava/util/Iterator; │ - .end local v7 # "showArchive":Z │ - .end local v8 # "showEdit":Z │ - .end local v9 # "showUnarchive":Z │ + .end local v6 # "showArchive":Z │ + .end local v7 # "showEdit":Z │ + .end local v8 # "showUnarchive":Z │ :cond_0 │ - const/4 v8, 0x0 │ + const/4 v7, 0x0 │ │ goto :goto_0 │ │ .line 117 │ .restart local v0 # "h":Lorg/isoron/uhabits/models/Habit; │ .restart local v1 # "i":I │ - .restart local v2 # "i$":Ljava/util/Iterator; │ - .restart local v7 # "showArchive":Z │ - .restart local v8 # "showEdit":Z │ - .restart local v9 # "showUnarchive":Z │ + .restart local v6 # "showArchive":Z │ + .restart local v7 # "showEdit":Z │ + .restart local v8 # "showUnarchive":Z │ :cond_1 │ - const/4 v9, 0x0 │ + const/4 v8, 0x0 │ │ goto :goto_1 │ │ .line 120 │ .end local v0 # "h":Lorg/isoron/uhabits/models/Habit; │ .end local v1 # "i":I │ :cond_2 │ - const v10, 0x7f0e00f8 │ + const v9, 0x7f0e00f8 │ │ - invoke-interface {p1, v10}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ + invoke-interface {p1, v9}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 121 │ - .local v5, "itemEdit":Landroid/view/MenuItem; │ - const v10, 0x7f0e00f9 │ + .local v4, "itemEdit":Landroid/view/MenuItem; │ + const v9, 0x7f0e00f9 │ │ - invoke-interface {p1, v10}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ + invoke-interface {p1, v9}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 122 │ - .local v4, "itemColor":Landroid/view/MenuItem; │ - const v10, 0x7f0e00fa │ + .local v3, "itemColor":Landroid/view/MenuItem; │ + const v9, 0x7f0e00fa │ │ - invoke-interface {p1, v10}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ + invoke-interface {p1, v9}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 123 │ - .local v3, "itemArchive":Landroid/view/MenuItem; │ - const v10, 0x7f0e00fb │ + .local v2, "itemArchive":Landroid/view/MenuItem; │ + const v9, 0x7f0e00fb │ │ - invoke-interface {p1, v10}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ + invoke-interface {p1, v9}, Landroid/view/Menu;->findItem(I)Landroid/view/MenuItem; │ │ - move-result-object v6 │ + move-result-object v5 │ │ .line 125 │ - .local v6, "itemUnarchive":Landroid/view/MenuItem; │ - invoke-interface {v4, v11}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ + .local v5, "itemUnarchive":Landroid/view/MenuItem; │ + invoke-interface {v3, v10}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ │ .line 126 │ - invoke-interface {v5, v8}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ + invoke-interface {v4, v7}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ │ .line 127 │ - invoke-interface {v3, v7}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ + invoke-interface {v2, v6}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ │ .line 128 │ - invoke-interface {v6, v9}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ + invoke-interface {v5, v8}, Landroid/view/MenuItem;->setVisible(Z)Landroid/view/MenuItem; │ │ .line 129 │ return-void │ .end method │ │ .method private updateTitle(Landroid/support/v7/view/ActionMode;)V │ .locals 2 │ @@ -263,261 +260,266 @@ │ .line 134 │ return-void │ .end method │ │ │ # virtual methods │ .method public onActionItemClicked(Landroid/support/v7/view/ActionMode;Landroid/view/MenuItem;)Z │ - .locals 12 │ + .locals 11 │ .param p1, "mode" # Landroid/support/v7/view/ActionMode; │ .param p2, "item" # Landroid/view/MenuItem; │ │ .prologue │ - const/4 v11, 0x0 │ + const/4 v10, 0x0 │ │ - const/4 v8, 0x1 │ + const/4 v7, 0x1 │ │ .line 139 │ - new-instance v6, Ljava/util/LinkedList; │ + new-instance v5, Ljava/util/LinkedList; │ │ - invoke-direct {v6}, Ljava/util/LinkedList;->()V │ + invoke-direct {v5}, Ljava/util/LinkedList;->()V │ │ .line 140 │ - .local v6, "selectedHabits":Ljava/util/LinkedList;, "Ljava/util/LinkedList;" │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->selectedPositions:Ljava/util/List; │ + .local v5, "selectedHabits":Ljava/util/LinkedList;, "Ljava/util/LinkedList;" │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->selectedPositions:Ljava/util/List; │ │ - invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v8 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v7 │ + move-result v6 │ │ - if-eqz v7, :cond_0 │ + if-eqz v6, :cond_0 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - check-cast v7, Ljava/lang/Integer; │ + check-cast v6, Ljava/lang/Integer; │ │ - invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I │ │ move-result v2 │ │ .line 141 │ .local v2, "i":I │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->loader:Lorg/isoron/uhabits/loaders/HabitListLoader; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->loader:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ - iget-object v7, v7, Lorg/isoron/uhabits/loaders/HabitListLoader;->habitsList:Ljava/util/List; │ + iget-object v6, v6, Lorg/isoron/uhabits/loaders/HabitListLoader;->habitsList:Ljava/util/List; │ │ - invoke-interface {v7, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v6, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v6, v7}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v5, v6}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z │ │ goto :goto_0 │ │ .line 143 │ .end local v2 # "i":I │ :cond_0 │ - invoke-virtual {v6}, Ljava/util/LinkedList;->getFirst()Ljava/lang/Object; │ + invoke-virtual {v5}, Ljava/util/LinkedList;->getFirst()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/isoron/uhabits/models/Habit; │ │ .line 145 │ .local v0, "firstHabit":Lorg/isoron/uhabits/models/Habit; │ invoke-interface {p2}, Landroid/view/MenuItem;->getItemId()I │ │ - move-result v7 │ + move-result v6 │ │ - packed-switch v7, :pswitch_data_0 │ + packed-switch v6, :pswitch_data_0 │ │ .line 210 │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ :goto_1 │ - return v7 │ + return v6 │ │ .line 148 │ :pswitch_0 │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - new-instance v9, Lorg/isoron/uhabits/commands/ArchiveHabitsCommand; │ + new-instance v8, Lorg/isoron/uhabits/commands/ArchiveHabitsCommand; │ │ - invoke-direct {v9, v6}, Lorg/isoron/uhabits/commands/ArchiveHabitsCommand;->(Ljava/util/List;)V │ + invoke-direct {v8, v5}, Lorg/isoron/uhabits/commands/ArchiveHabitsCommand;->(Ljava/util/List;)V │ │ - invoke-virtual {v7, v9, v11}, Lorg/isoron/uhabits/BaseActivity;->executeCommand(Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ + invoke-virtual {v6, v8, v10}, Lorg/isoron/uhabits/BaseActivity;->executeCommand(Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ │ .line 149 │ invoke-virtual {p1}, Landroid/support/v7/view/ActionMode;->finish()V │ │ - move v7, v8 │ + move v6, v7 │ │ .line 150 │ goto :goto_1 │ │ .line 153 │ :pswitch_1 │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - new-instance v9, Lorg/isoron/uhabits/commands/UnarchiveHabitsCommand; │ + new-instance v8, Lorg/isoron/uhabits/commands/UnarchiveHabitsCommand; │ │ - invoke-direct {v9, v6}, Lorg/isoron/uhabits/commands/UnarchiveHabitsCommand;->(Ljava/util/List;)V │ + invoke-direct {v8, v5}, Lorg/isoron/uhabits/commands/UnarchiveHabitsCommand;->(Ljava/util/List;)V │ │ - invoke-virtual {v7, v9, v11}, Lorg/isoron/uhabits/BaseActivity;->executeCommand(Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ + invoke-virtual {v6, v8, v10}, Lorg/isoron/uhabits/BaseActivity;->executeCommand(Lorg/isoron/uhabits/commands/Command;Ljava/lang/Long;)V │ │ .line 154 │ invoke-virtual {p1}, Landroid/support/v7/view/ActionMode;->finish()V │ │ - move v7, v8 │ + move v6, v7 │ │ .line 155 │ goto :goto_1 │ │ .line 160 │ :pswitch_2 │ invoke-virtual {v0}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v7}, Ljava/lang/Long;->longValue()J │ + invoke-virtual {v6}, Ljava/lang/Long;->longValue()J │ │ - move-result-wide v10 │ + move-result-wide v8 │ │ - invoke-static {v10, v11}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->editSingleHabitFragment(J)Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ + invoke-static {v8, v9}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->editSingleHabitFragment(J)Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ │ move-result-object v1 │ │ .line 161 │ .local v1, "frag":Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->onSavedListener:Lorg/isoron/uhabits/helpers/UIHelper$OnSavedListener; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->onSavedListener:Lorg/isoron/uhabits/helpers/UIHelper$OnSavedListener; │ │ - invoke-virtual {v1, v7}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->setOnSavedListener(Lorg/isoron/uhabits/helpers/UIHelper$OnSavedListener;)V │ + invoke-virtual {v1, v6}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->setOnSavedListener(Lorg/isoron/uhabits/helpers/UIHelper$OnSavedListener;)V │ │ .line 162 │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - invoke-virtual {v7}, Lorg/isoron/uhabits/BaseActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; │ + invoke-virtual {v6}, Lorg/isoron/uhabits/BaseActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const-string v9, "editHabit" │ + const-string v8, "editHabit" │ │ - invoke-virtual {v1, v7, v9}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->show(Landroid/support/v4/app/FragmentManager;Ljava/lang/String;)V │ + invoke-virtual {v1, v6, v8}, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment;->show(Landroid/support/v4/app/FragmentManager;Ljava/lang/String;)V │ │ - move v7, v8 │ + move v6, v7 │ │ .line 163 │ goto :goto_1 │ │ .line 168 │ .end local v1 # "frag":Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ :pswitch_3 │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - iget-object v9, v0, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ + iget-object v8, v0, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ │ - invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I │ │ - move-result v9 │ + move-result v8 │ │ - invoke-static {v7, v9}, Lorg/isoron/uhabits/helpers/ColorHelper;->getColor(Landroid/content/Context;I)I │ + invoke-static {v6, v8}, Lorg/isoron/uhabits/helpers/ColorHelper;->getColor(Landroid/content/Context;I)I │ │ - move-result v4 │ + move-result v3 │ │ .line 170 │ - .local v4, "originalAndroidColor":I │ - const v7, 0x7f070023 │ + .local v3, "originalAndroidColor":I │ + const v6, 0x7f070023 │ │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - invoke-static {v9}, Lorg/isoron/uhabits/helpers/ColorHelper;->getPalette(Landroid/content/Context;)[I │ + .line 171 │ + invoke-static {v8}, Lorg/isoron/uhabits/helpers/ColorHelper;->getPalette(Landroid/content/Context;)[I │ │ - move-result-object v9 │ + move-result-object v8 │ │ - const/4 v10, 0x4 │ + const/4 v9, 0x4 │ │ - const/4 v11, 0x2 │ + const/4 v10, 0x2 │ │ - invoke-static {v7, v9, v4, v10, v11}, Lcom/android/colorpicker/ColorPickerDialog;->newInstance(I[IIII)Lcom/android/colorpicker/ColorPickerDialog; │ + .line 170 │ + invoke-static {v6, v8, v3, v9, v10}, Lcom/android/colorpicker/ColorPickerDialog;->newInstance(I[IIII)Lcom/android/colorpicker/ColorPickerDialog; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 174 │ - .local v5, "picker":Lcom/android/colorpicker/ColorPickerDialog; │ - new-instance v7, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1; │ + .local v4, "picker":Lcom/android/colorpicker/ColorPickerDialog; │ + new-instance v6, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1; │ │ - invoke-direct {v7, p0, v6, p1}, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1;->(Lorg/isoron/uhabits/fragments/HabitSelectionCallback;Ljava/util/LinkedList;Landroid/support/v7/view/ActionMode;)V │ + invoke-direct {v6, p0, v5, p1}, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$1;->(Lorg/isoron/uhabits/fragments/HabitSelectionCallback;Ljava/util/LinkedList;Landroid/support/v7/view/ActionMode;)V │ │ - invoke-virtual {v5, v7}, Lcom/android/colorpicker/ColorPickerDialog;->setOnColorSelectedListener(Lcom/android/colorpicker/ColorPickerSwatch$OnColorSelectedListener;)V │ + invoke-virtual {v4, v6}, Lcom/android/colorpicker/ColorPickerDialog;->setOnColorSelectedListener(Lcom/android/colorpicker/ColorPickerSwatch$OnColorSelectedListener;)V │ │ .line 185 │ - iget-object v7, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v6, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - invoke-virtual {v7}, Lorg/isoron/uhabits/BaseActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; │ + invoke-virtual {v6}, Lorg/isoron/uhabits/BaseActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const-string v9, "picker" │ + const-string v8, "picker" │ │ - invoke-virtual {v5, v7, v9}, Lcom/android/colorpicker/ColorPickerDialog;->show(Landroid/support/v4/app/FragmentManager;Ljava/lang/String;)V │ + invoke-virtual {v4, v6, v8}, Lcom/android/colorpicker/ColorPickerDialog;->show(Landroid/support/v4/app/FragmentManager;Ljava/lang/String;)V │ │ - move v7, v8 │ + move v6, v7 │ │ .line 186 │ goto :goto_1 │ │ .line 191 │ - .end local v4 # "originalAndroidColor":I │ - .end local v5 # "picker":Lcom/android/colorpicker/ColorPickerDialog; │ + .end local v3 # "originalAndroidColor":I │ + .end local v4 # "picker":Lcom/android/colorpicker/ColorPickerDialog; │ :pswitch_4 │ - new-instance v7, Landroid/support/v7/app/AlertDialog$Builder; │ + new-instance v6, Landroid/support/v7/app/AlertDialog$Builder; │ │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/HabitSelectionCallback;->activity:Lorg/isoron/uhabits/BaseActivity; │ │ - invoke-direct {v7, v9}, Landroid/support/v7/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ + invoke-direct {v6, v8}, Landroid/support/v7/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ - const v9, 0x7f07002c │ + const v8, 0x7f07002c │ │ - invoke-virtual {v7, v9}, Landroid/support/v7/app/AlertDialog$Builder;->setTitle(I)Landroid/support/v7/app/AlertDialog$Builder; │ + invoke-virtual {v6, v8}, Landroid/support/v7/app/AlertDialog$Builder;->setTitle(I)Landroid/support/v7/app/AlertDialog$Builder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const v9, 0x7f07002d │ + const v8, 0x7f07002d │ │ - invoke-virtual {v7, v9}, Landroid/support/v7/app/AlertDialog$Builder;->setMessage(I)Landroid/support/v7/app/AlertDialog$Builder; │ + .line 192 │ + invoke-virtual {v6, v8}, Landroid/support/v7/app/AlertDialog$Builder;->setMessage(I)Landroid/support/v7/app/AlertDialog$Builder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const v9, 0x1040013 │ + const v8, 0x1040013 │ │ - new-instance v10, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$2; │ + new-instance v9, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$2; │ │ - invoke-direct {v10, p0, v6, p1}, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$2;->(Lorg/isoron/uhabits/fragments/HabitSelectionCallback;Ljava/util/LinkedList;Landroid/support/v7/view/ActionMode;)V │ + invoke-direct {v9, p0, v5, p1}, Lorg/isoron/uhabits/fragments/HabitSelectionCallback$2;->(Lorg/isoron/uhabits/fragments/HabitSelectionCallback;Ljava/util/LinkedList;Landroid/support/v7/view/ActionMode;)V │ │ - invoke-virtual {v7, v9, v10}, Landroid/support/v7/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ + .line 193 │ + invoke-virtual {v6, v8, v9}, Landroid/support/v7/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - const v9, 0x1040009 │ + const v8, 0x1040009 │ │ - invoke-virtual {v7, v9, v11}, Landroid/support/v7/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ + .line 203 │ + invoke-virtual {v6, v8, v10}, Landroid/support/v7/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v7}, Landroid/support/v7/app/AlertDialog$Builder;->show()Landroid/support/v7/app/AlertDialog; │ + .line 204 │ + invoke-virtual {v6}, Landroid/support/v7/app/AlertDialog$Builder;->show()Landroid/support/v7/app/AlertDialog; │ │ - move v7, v8 │ + move v6, v7 │ │ .line 206 │ goto/16 :goto_1 │ │ .line 145 │ :pswitch_data_0 │ .packed-switch 0x7f0e00f8 ├── smali/org/isoron/uhabits/fragments/ListHabitsFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/fragments/ListHabitsFragment; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/fragments/ListHabitsFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/fragments/ListHabitsFragment; │ │ .prologue │ .line 415 │ iput-object p1, p0, Lorg/isoron/uhabits/fragments/ListHabitsFragment$1;->this$0:Lorg/isoron/uhabits/fragments/ListHabitsFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/isoron/uhabits/fragments/ListHabitsFragment.smali │ @@ -78,15 +78,14 @@ │ invoke-direct {p0}, Landroid/support/v4/app/Fragment;->()V │ │ .line 58 │ const-wide/16 v0, 0x0 │ │ iput-wide v0, p0, Lorg/isoron/uhabits/fragments/ListHabitsFragment;->lastLongClick:J │ │ - .line 390 │ return-void │ .end method │ │ .method static synthetic access$100(Lorg/isoron/uhabits/fragments/ListHabitsFragment;)Lcom/mobeta/android/dslv/DragSortListView; │ .locals 1 │ .param p0, "x0" # Lorg/isoron/uhabits/fragments/ListHabitsFragment; │ │ @@ -976,14 +975,15 @@ │ .line 121 │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ListHabitsFragment;->getFragmentManager()Landroid/support/v4/app/FragmentManager; │ │ move-result-object v6 │ │ const-string v7, "editHabit" │ │ + .line 122 │ invoke-virtual {v6, v7}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment; │ │ move-result-object v2 │ │ check-cast v2, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ │ .line 123 ├── smali/org/isoron/uhabits/fragments/SettingsFragment.smali │ @@ -236,14 +236,15 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/support/v7/preference/PreferenceManager;->getSharedPreferences()Landroid/content/SharedPreferences; │ │ move-result-object v0 │ │ + .line 97 │ invoke-interface {v0, p0}, Landroid/content/SharedPreferences;->unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V │ │ .line 98 │ invoke-super {p0}, Landroid/support/v7/preference/PreferenceFragmentCompat;->onPause()V │ │ .line 99 │ return-void │ @@ -312,14 +313,15 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/support/v7/preference/PreferenceManager;->getSharedPreferences()Landroid/content/SharedPreferences; │ │ move-result-object v0 │ │ + .line 90 │ invoke-interface {v0, p0}, Landroid/content/SharedPreferences;->registerOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V │ │ .line 91 │ return-void │ .end method │ │ .method public onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V ├── smali/org/isoron/uhabits/fragments/SettingsFragment$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$result:I │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/fragments/SettingsFragment;I)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/fragments/SettingsFragment; │ │ .prologue │ .line 74 │ iput-object p1, p0, Lorg/isoron/uhabits/fragments/SettingsFragment$1;->this$0:Lorg/isoron/uhabits/fragments/SettingsFragment; │ │ iput p2, p0, Lorg/isoron/uhabits/fragments/SettingsFragment$1;->val$result:I ├── smali/org/isoron/uhabits/fragments/ShowHabitFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/fragments/ShowHabitFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ .prologue │ .line 128 │ iput-object p1, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$1;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/isoron/uhabits/fragments/ShowHabitFragment$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/fragments/ShowHabitFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ .prologue │ .line 312 │ iput-object p1, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ invoke-direct {p0}, Lorg/isoron/uhabits/tasks/BaseTask;->()V │ │ @@ -34,160 +35,159 @@ │ │ # virtual methods │ .method protected doInBackground()V │ .locals 14 │ │ .prologue │ .line 316 │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ # getter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ - invoke-static {v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ + invoke-static {v9}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - if-nez v10, :cond_1 │ + if-nez v9, :cond_1 │ │ .line 333 │ :cond_0 │ return-void │ │ .line 317 │ :cond_1 │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ # getter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ - invoke-static {v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$100(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Ljava/util/List; │ + invoke-static {v9}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$100(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Ljava/util/List; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - if-eqz v10, :cond_0 │ + if-eqz v9, :cond_0 │ │ .line 319 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfToday()J │ │ - move-result-wide v8 │ + move-result-wide v6 │ │ .line 320 │ - .local v8, "today":J │ + .local v6, "today":J │ const-wide/16 v10, 0x1e │ │ sget-wide v12, Lorg/isoron/uhabits/helpers/DateHelper;->millisecondsInOneDay:J │ │ mul-long/2addr v10, v12 │ │ - sub-long v4, v8, v10 │ + sub-long v2, v6, v10 │ │ .line 321 │ - .local v4, "lastMonth":J │ + .local v2, "lastMonth":J │ const-wide/16 v10, 0x16d │ │ sget-wide v12, Lorg/isoron/uhabits/helpers/DateHelper;->millisecondsInOneDay:J │ │ mul-long/2addr v10, v12 │ │ - sub-long v6, v8, v10 │ + sub-long v4, v6, v10 │ │ .line 323 │ - .local v6, "lastYear":J │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + .local v4, "lastYear":J │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ - iget-object v11, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ # getter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ - invoke-static {v11}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ + invoke-static {v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ │ - move-result-object v11 │ + move-result-object v10 │ │ - iget-object v11, v11, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ + iget-object v10, v10, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ │ - invoke-virtual {v11}, Lorg/isoron/uhabits/models/ScoreList;->getTodayValue()I │ + invoke-virtual {v10}, Lorg/isoron/uhabits/models/ScoreList;->getTodayValue()I │ │ - move-result v11 │ + move-result v10 │ │ - int-to-float v11, v11 │ + int-to-float v10, v10 │ │ # setter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->todayScore:F │ - invoke-static {v10, v11}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$202(Lorg/isoron/uhabits/fragments/ShowHabitFragment;F)F │ + invoke-static {v9, v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$202(Lorg/isoron/uhabits/fragments/ShowHabitFragment;F)F │ │ .line 324 │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ - iget-object v11, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ # getter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ - invoke-static {v11}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ + invoke-static {v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ │ - move-result-object v11 │ + move-result-object v10 │ │ - iget-object v11, v11, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ + iget-object v10, v10, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ │ - invoke-virtual {v11, v4, v5}, Lorg/isoron/uhabits/models/ScoreList;->getValue(J)I │ + invoke-virtual {v10, v2, v3}, Lorg/isoron/uhabits/models/ScoreList;->getValue(J)I │ │ - move-result v11 │ + move-result v10 │ │ - int-to-float v11, v11 │ + int-to-float v10, v10 │ │ # setter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->lastMonthScore:F │ - invoke-static {v10, v11}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$302(Lorg/isoron/uhabits/fragments/ShowHabitFragment;F)F │ + invoke-static {v9, v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$302(Lorg/isoron/uhabits/fragments/ShowHabitFragment;F)F │ │ .line 325 │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ - iget-object v11, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ # getter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ - invoke-static {v11}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ + invoke-static {v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$000(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Lorg/isoron/uhabits/models/Habit; │ │ - move-result-object v11 │ + move-result-object v10 │ │ - iget-object v11, v11, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ + iget-object v10, v10, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ │ - invoke-virtual {v11, v6, v7}, Lorg/isoron/uhabits/models/ScoreList;->getValue(J)I │ + invoke-virtual {v10, v4, v5}, Lorg/isoron/uhabits/models/ScoreList;->getValue(J)I │ │ - move-result v11 │ + move-result v10 │ │ - int-to-float v11, v11 │ + int-to-float v10, v10 │ │ # setter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->lastYearScore:F │ - invoke-static {v10, v11}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$402(Lorg/isoron/uhabits/fragments/ShowHabitFragment;F)F │ + invoke-static {v9, v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$402(Lorg/isoron/uhabits/fragments/ShowHabitFragment;F)F │ │ .line 327 │ const/4 v0, 0x0 │ │ .line 328 │ .local v0, "count":I │ - iget-object v10, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ + iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->this$0:Lorg/isoron/uhabits/fragments/ShowHabitFragment; │ │ # getter for: Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ - invoke-static {v10}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$100(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Ljava/util/List; │ + invoke-static {v9}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->access$100(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)Ljava/util/List; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v9}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v9 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_0 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v8 │ │ - check-cast v3, Lorg/isoron/uhabits/views/HabitDataView; │ + check-cast v8, Lorg/isoron/uhabits/views/HabitDataView; │ │ .line 330 │ - .local v3, "view":Lorg/isoron/uhabits/views/HabitDataView; │ - invoke-interface {v3}, Lorg/isoron/uhabits/views/HabitDataView;->refreshData()V │ + .local v8, "view":Lorg/isoron/uhabits/views/HabitDataView; │ + invoke-interface {v8}, Lorg/isoron/uhabits/views/HabitDataView;->refreshData()V │ │ .line 331 │ const/4 v10, 0x1 │ │ new-array v10, v10, [Ljava/lang/Integer; │ │ const/4 v11, 0x0 ├── smali/org/isoron/uhabits/fragments/ShowHabitFragment.smali │ @@ -343,26 +343,28 @@ │ │ iget-object v4, v4, Lorg/isoron/uhabits/models/Habit;->freqDen:Ljava/lang/Integer; │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x3 │ │ + .line 202 │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getResources()Landroid/content/res/Resources; │ │ move-result-object v4 │ │ const v5, 0x7f07002a │ │ invoke-virtual {v4, v5}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 201 │ invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ goto/16 :goto_0 │ .end method │ │ @@ -540,18 +542,20 @@ │ │ move-result v4 │ │ iget-object v5, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ │ iget-object v5, v5, Lorg/isoron/uhabits/models/Habit;->reminderMin:Ljava/lang/Integer; │ │ + .line 166 │ invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I │ │ move-result v5 │ │ + .line 165 │ invoke-static {v3, v4, v5}, Lorg/isoron/uhabits/helpers/DateHelper;->formatTime(Landroid/content/Context;II)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 170 │ @@ -805,28 +809,30 @@ │ const-string v9, "+" │ │ :goto_1 │ aput-object v9, v11, v12 │ │ const/4 v9, 0x1 │ │ + .line 234 │ invoke-static {v2}, Ljava/lang/Math;->abs(F)F │ │ move-result v12 │ │ const/high16 v13, 0x42c80000 # 100.0f │ │ mul-float/2addr v12, v13 │ │ invoke-static {v12}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ │ move-result-object v12 │ │ aput-object v12, v11, v9 │ │ + .line 233 │ invoke-static {v10, v11}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-virtual {v3, v9}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 235 │ @@ -848,14 +854,15 @@ │ │ .end local v1 # "minus":Ljava/lang/String; │ :cond_2 │ aput-object v1, v10, v11 │ │ const/4 v11, 0x1 │ │ + .line 236 │ invoke-static {v7}, Ljava/lang/Math;->abs(F)F │ │ move-result v12 │ │ const/high16 v13, 0x42c80000 # 100.0f │ │ mul-float/2addr v12, v13 │ @@ -866,14 +873,15 @@ │ │ aput-object v12, v10, v11 │ │ invoke-static {v9, v10}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v9 │ │ + .line 235 │ invoke-virtual {v8, v9}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 238 │ const/4 v9, 0x0 │ │ cmpl-float v9, v2, v9 │ │ @@ -933,212 +941,211 @@ │ invoke-virtual {p2, v0, p1}, Landroid/view/MenuInflater;->inflate(ILandroid/view/Menu;)V │ │ .line 265 │ return-void │ .end method │ │ .method public onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View; │ - .locals 11 │ + .locals 10 │ .param p1, "inflater" # Landroid/view/LayoutInflater; │ .param p2, "container" # Landroid/view/ViewGroup; │ .param p3, "savedInstanceState" # Landroid/os/Bundle; │ │ .prologue │ - const v10, 0x7f0e00da │ + const v9, 0x7f0e00da │ │ .line 94 │ - const v8, 0x7f040051 │ + const v7, 0x7f040051 │ │ - const/4 v9, 0x0 │ + const/4 v8, 0x0 │ │ - invoke-virtual {p1, v8, p2, v9}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View; │ + invoke-virtual {p1, v7, p2, v8}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View; │ │ - move-result-object v7 │ + move-result-object v6 │ │ .line 95 │ - .local v7, "view":Landroid/view/View; │ + .local v6, "view":Landroid/view/View; │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getActivity()Landroid/support/v4/app/FragmentActivity; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Lorg/isoron/uhabits/ShowHabitActivity; │ + check-cast v7, Lorg/isoron/uhabits/ShowHabitActivity; │ │ - iput-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->activity:Lorg/isoron/uhabits/ShowHabitActivity; │ + iput-object v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->activity:Lorg/isoron/uhabits/ShowHabitActivity; │ │ .line 97 │ - iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->activity:Lorg/isoron/uhabits/ShowHabitActivity; │ + iget-object v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->activity:Lorg/isoron/uhabits/ShowHabitActivity; │ │ - invoke-virtual {v8}, Lorg/isoron/uhabits/ShowHabitActivity;->getHabit()Lorg/isoron/uhabits/models/Habit; │ + invoke-virtual {v7}, Lorg/isoron/uhabits/ShowHabitActivity;->getHabit()Lorg/isoron/uhabits/models/Habit; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - iput-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ + iput-object v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ │ .line 98 │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getContext()Landroid/content/Context; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->habit:Lorg/isoron/uhabits/models/Habit; │ │ - iget-object v9, v9, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ + iget-object v8, v8, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ │ - invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I │ │ - move-result v9 │ + move-result v8 │ │ - invoke-static {v8, v9}, Lorg/isoron/uhabits/helpers/ColorHelper;->getColor(Landroid/content/Context;I)I │ + invoke-static {v7, v8}, Lorg/isoron/uhabits/helpers/ColorHelper;->getColor(Landroid/content/Context;I)I │ │ - move-result v8 │ + move-result v7 │ │ - iput v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->activeColor:I │ + iput v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->activeColor:I │ │ .line 99 │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getContext()Landroid/content/Context; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - const v9, 0x7f010016 │ + const v8, 0x7f010016 │ │ - invoke-static {v8, v9}, Lorg/isoron/uhabits/helpers/UIHelper;->getStyledColor(Landroid/content/Context;I)I │ + invoke-static {v7, v8}, Lorg/isoron/uhabits/helpers/UIHelper;->getStyledColor(Landroid/content/Context;I)I │ │ - move-result v8 │ + move-result v7 │ │ - iput v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->inactiveColor:I │ + iput v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->inactiveColor:I │ │ .line 101 │ - invoke-direct {p0, v7}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->updateHeader(Landroid/view/View;)V │ + invoke-direct {p0, v6}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->updateHeader(Landroid/view/View;)V │ │ .line 103 │ - new-instance v8, Ljava/util/LinkedList; │ + new-instance v7, Ljava/util/LinkedList; │ │ - invoke-direct {v8}, Ljava/util/LinkedList;->()V │ + invoke-direct {v7}, Ljava/util/LinkedList;->()V │ │ - iput-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ + iput-object v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ │ .line 105 │ - const v8, 0x7f0e00dd │ + const v7, 0x7f0e00dd │ │ - invoke-virtual {v7, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + invoke-virtual {v6, v7}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v0 │ │ check-cast v0, Landroid/widget/Button; │ │ .line 106 │ .local v0, "btEditHistory":Landroid/widget/Button; │ - const v8, 0x7f0e00d8 │ + const v7, 0x7f0e00d8 │ │ - invoke-virtual {v7, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + invoke-virtual {v6, v7}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - check-cast v6, Landroid/widget/Spinner; │ + check-cast v5, Landroid/widget/Spinner; │ │ .line 108 │ - .local v6, "sStrengthInterval":Landroid/widget/Spinner; │ - invoke-virtual {v7, v10}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + .local v5, "sStrengthInterval":Landroid/widget/Spinner; │ + invoke-virtual {v6, v9}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Lorg/isoron/uhabits/views/HabitScoreView; │ + check-cast v7, Lorg/isoron/uhabits/views/HabitScoreView; │ │ - iput-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->scoreView:Lorg/isoron/uhabits/views/HabitScoreView; │ + iput-object v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->scoreView:Lorg/isoron/uhabits/views/HabitScoreView; │ │ .line 110 │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getContext()Landroid/content/Context; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-static {v8}, Lorg/isoron/uhabits/helpers/UIHelper;->getDefaultScoreInterval(Landroid/content/Context;)I │ + invoke-static {v7}, Lorg/isoron/uhabits/helpers/UIHelper;->getDefaultScoreInterval(Landroid/content/Context;)I │ │ move-result v2 │ │ .line 111 │ .local v2, "defaultScoreInterval":I │ iput v2, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->previousScoreInterval:I │ │ .line 112 │ invoke-direct {p0, v2}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->setScoreBucketSize(I)V │ │ .line 114 │ - invoke-virtual {v6, v2}, Landroid/widget/Spinner;->setSelection(I)V │ + invoke-virtual {v5, v2}, Landroid/widget/Spinner;->setSelection(I)V │ │ .line 115 │ - invoke-virtual {v6, p0}, Landroid/widget/Spinner;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V │ + invoke-virtual {v5, p0}, Landroid/widget/Spinner;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V │ │ .line 117 │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ │ - invoke-virtual {v7, v10}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + invoke-virtual {v6, v9}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Lorg/isoron/uhabits/views/HabitScoreView; │ + check-cast v7, Lorg/isoron/uhabits/views/HabitScoreView; │ │ - invoke-interface {v9, v8}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v8, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 118 │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ │ - const v8, 0x7f0e00dc │ + const v7, 0x7f0e00dc │ │ - invoke-virtual {v7, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + invoke-virtual {v6, v7}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Lorg/isoron/uhabits/views/HabitHistoryView; │ + check-cast v7, Lorg/isoron/uhabits/views/HabitHistoryView; │ │ - invoke-interface {v9, v8}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v8, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 119 │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ │ - const v8, 0x7f0e00e1 │ + const v7, 0x7f0e00e1 │ │ - invoke-virtual {v7, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + invoke-virtual {v6, v7}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Lorg/isoron/uhabits/views/HabitFrequencyView; │ + check-cast v7, Lorg/isoron/uhabits/views/HabitFrequencyView; │ │ - invoke-interface {v9, v8}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v8, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 120 │ - iget-object v9, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ + iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ │ - const v8, 0x7f0e00df │ + const v7, 0x7f0e00df │ │ - invoke-virtual {v7, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ + invoke-virtual {v6, v7}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Lorg/isoron/uhabits/views/HabitStreakView; │ + check-cast v7, Lorg/isoron/uhabits/views/HabitStreakView; │ │ - invoke-interface {v9, v8}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v8, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 122 │ - invoke-direct {p0, v7}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->updateHeaders(Landroid/view/View;)V │ + invoke-direct {p0, v6}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->updateHeaders(Landroid/view/View;)V │ │ .line 124 │ - iget-object v8, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ + iget-object v7, p0, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->dataViews:Ljava/util/List; │ │ - invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v5 │ + move-result-object v7 │ │ - .local v5, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v8 │ │ if-eqz v8, :cond_0 │ │ - invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lorg/isoron/uhabits/views/HabitDataView; │ │ .line 125 │ .local v1, "dataView":Lorg/isoron/uhabits/views/HabitDataView; │ @@ -1147,45 +1154,47 @@ │ invoke-interface {v1, v8}, Lorg/isoron/uhabits/views/HabitDataView;->setHabit(Lorg/isoron/uhabits/models/Habit;)V │ │ goto :goto_0 │ │ .line 127 │ .end local v1 # "dataView":Lorg/isoron/uhabits/views/HabitDataView; │ :cond_0 │ - new-instance v8, Lorg/isoron/uhabits/fragments/ShowHabitFragment$1; │ + new-instance v7, Lorg/isoron/uhabits/fragments/ShowHabitFragment$1; │ │ - invoke-direct {v8, p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment$1;->(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)V │ + invoke-direct {v7, p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment$1;->(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)V │ │ - invoke-virtual {v0, v8}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ + invoke-virtual {v0, v7}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ │ .line 139 │ if-eqz p3, :cond_2 │ │ .line 141 │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getFragmentManager()Landroid/support/v4/app/FragmentManager; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - const-string v9, "editHabit" │ + const-string v8, "editHabit" │ │ - invoke-virtual {v8, v9}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment; │ + .line 142 │ + invoke-virtual {v7, v8}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment; │ │ move-result-object v3 │ │ check-cast v3, Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ │ .line 143 │ .local v3, "fragEdit":Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ invoke-virtual {p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->getFragmentManager()Landroid/support/v4/app/FragmentManager; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - const-string v9, "historyEditor" │ + const-string v8, "historyEditor" │ │ - invoke-virtual {v8, v9}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment; │ + .line 144 │ + invoke-virtual {v7, v8}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment; │ │ move-result-object v4 │ │ check-cast v4, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog; │ │ .line 146 │ .local v4, "fragEditor":Lorg/isoron/uhabits/dialogs/HistoryEditorDialog; │ @@ -1199,20 +1208,20 @@ │ │ invoke-virtual {v4, p0}, Lorg/isoron/uhabits/dialogs/HistoryEditorDialog;->setListener(Lorg/isoron/uhabits/dialogs/HistoryEditorDialog$Listener;)V │ │ .line 150 │ .end local v3 # "fragEdit":Lorg/isoron/uhabits/dialogs/EditHabitDialogFragment; │ .end local v4 # "fragEditor":Lorg/isoron/uhabits/dialogs/HistoryEditorDialog; │ :cond_2 │ - const/4 v8, 0x1 │ + const/4 v7, 0x1 │ │ - invoke-virtual {p0, v8}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->setHasOptionsMenu(Z)V │ + invoke-virtual {p0, v7}, Lorg/isoron/uhabits/fragments/ShowHabitFragment;->setHasOptionsMenu(Z)V │ │ .line 152 │ - return-object v7 │ + return-object v6 │ .end method │ │ .method public onHistoryEditorClosed()V │ .locals 1 │ │ .prologue │ .line 305 │ @@ -1444,12 +1453,13 @@ │ │ invoke-direct {v0, p0}, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->(Lorg/isoron/uhabits/fragments/ShowHabitFragment;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 342 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/fragments/ShowHabitFragment$2;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 344 │ return-void │ .end method ├── smali/org/isoron/uhabits/helpers/ColorHelper.smali │ @@ -17,142 +17,156 @@ │ │ new-array v0, v0, [I │ │ const/4 v1, 0x0 │ │ const-string v2, "#D32F2F" │ │ + .line 32 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x1 │ │ const-string v2, "#E64A19" │ │ + .line 33 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x2 │ │ const-string v2, "#F9A825" │ │ + .line 34 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x3 │ │ const-string v2, "#AFB42B" │ │ + .line 35 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x4 │ │ const-string v2, "#388E3C" │ │ + .line 36 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x5 │ │ const-string v2, "#00897B" │ │ + .line 37 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x6 │ │ const-string v2, "#00ACC1" │ │ + .line 38 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/4 v1, 0x7 │ │ const-string v2, "#039BE5" │ │ + .line 39 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/16 v1, 0x8 │ │ const-string v2, "#5E35B1" │ │ + .line 40 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/16 v1, 0x9 │ │ const-string v2, "#8E24AA" │ │ + .line 41 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/16 v1, 0xa │ │ const-string v2, "#D81B60" │ │ + .line 42 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/16 v1, 0xb │ │ const-string v2, "#303030" │ │ + .line 43 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ const/16 v1, 0xc │ │ const-string v2, "#aaaaaa" │ │ + .line 44 │ invoke-static {v2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I │ │ move-result v2 │ │ aput v2, v0, v1 │ │ sput-object v0, Lorg/isoron/uhabits/helpers/ColorHelper;->CSV_PALETTE:[I │ │ + .line 30 │ return-void │ .end method │ │ .method public constructor ()V │ .locals 0 │ │ .prologue ├── smali/org/isoron/uhabits/helpers/DatabaseHelper.smali │ @@ -15,15 +15,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 50 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 74 │ return-void │ .end method │ │ .method public static copy(Ljava/io/File;Ljava/io/File;)V │ .locals 2 │ .param p0, "src" # Ljava/io/File; │ .param p1, "dst" # Ljava/io/File; │ @@ -186,14 +185,15 @@ │ │ const/4 v4, 0x2 │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ + .line 116 │ invoke-virtual {v0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; │ │ move-result-object v6 │ │ invoke-virtual {v6}, Landroid/content/Context;->getFilesDir()Ljava/io/File; │ │ move-result-object v6 │ @@ -204,14 +204,15 @@ │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x1 │ │ aput-object v1, v4, v5 │ │ + .line 115 │ invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Ljava/io/File;->(Ljava/lang/String;)V │ │ return-object v2 │ @@ -239,143 +240,138 @@ │ │ .line 127 │ :cond_0 │ return-object v0 │ .end method │ │ .method private static getDir([Ljava/io/File;Ljava/lang/String;)Ljava/io/File; │ - .locals 10 │ + .locals 7 │ .param p0, "potentialParentDirs" # [Ljava/io/File; │ .annotation build Landroid/support/annotation/NonNull; │ .end annotation │ .end param │ .param p1, "relativePath" # Ljava/lang/String; │ .annotation build Landroid/support/annotation/Nullable; │ .end annotation │ .end param │ .annotation build Landroid/support/annotation/Nullable; │ .end annotation │ │ .prologue │ - const/4 v5, 0x0 │ + const/4 v2, 0x0 │ + │ + const/4 v4, 0x0 │ │ .line 161 │ if-nez p1, :cond_0 │ │ const-string p1, "" │ │ .line 163 │ :cond_0 │ - const/4 v1, 0x0 │ + const/4 v0, 0x0 │ │ .line 164 │ - .local v1, "chosenDir":Ljava/io/File; │ - move-object v0, p0 │ + .local v0, "chosenDir":Ljava/io/File; │ + array-length v5, p0 │ │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v4, v0 │ + move v3, v4 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ - │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_3 │ + if-ge v3, v5, :cond_3 │ │ - aget-object v2, v0, v3 │ + aget-object v1, p0, v3 │ │ .line 166 │ - .local v2, "dir":Ljava/io/File; │ - if-eqz v2, :cond_1 │ + .local v1, "dir":Ljava/io/File; │ + if-eqz v1, :cond_1 │ │ - invoke-virtual {v2}, Ljava/io/File;->canWrite()Z │ + invoke-virtual {v1}, Ljava/io/File;->canWrite()Z │ │ move-result v6 │ │ if-nez v6, :cond_2 │ │ .line 164 │ :cond_1 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 167 │ :cond_2 │ - move-object v1, v2 │ + move-object v0, v1 │ │ .line 171 │ - .end local v2 # "dir":Ljava/io/File; │ + .end local v1 # "dir":Ljava/io/File; │ :cond_3 │ - if-nez v1, :cond_5 │ + if-nez v0, :cond_5 │ │ .line 173 │ - const-string v6, "DatabaseHelper" │ + const-string v3, "DatabaseHelper" │ │ - const-string v7, "getDir: all potential parents are null or non-writable" │ + const-string v4, "getDir: all potential parents are null or non-writable" │ │ - invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ - move-object v2, v5 │ + move-object v1, v2 │ │ .line 184 │ :cond_4 │ :goto_1 │ - return-object v2 │ + return-object v1 │ │ .line 177 │ :cond_5 │ - new-instance v2, Ljava/io/File; │ - │ - const-string v6, "%s/%s/" │ + new-instance v1, Ljava/io/File; │ │ - const/4 v7, 0x2 │ + const-string v3, "%s/%s/" │ │ - new-array v7, v7, [Ljava/lang/Object; │ + const/4 v5, 0x2 │ │ - const/4 v8, 0x0 │ + new-array v5, v5, [Ljava/lang/Object; │ │ - invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ - move-result-object v9 │ + move-result-object v6 │ │ - aput-object v9, v7, v8 │ + aput-object v6, v5, v4 │ │ - const/4 v8, 0x1 │ + const/4 v4, 0x1 │ │ - aput-object p1, v7, v8 │ + aput-object p1, v5, v4 │ │ - invoke-static {v6, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v3, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-direct {v2, v6}, Ljava/io/File;->(Ljava/lang/String;)V │ + invoke-direct {v1, v3}, Ljava/io/File;->(Ljava/lang/String;)V │ │ .line 178 │ - .restart local v2 # "dir":Ljava/io/File; │ - invoke-virtual {v2}, Ljava/io/File;->exists()Z │ + .restart local v1 # "dir":Ljava/io/File; │ + invoke-virtual {v1}, Ljava/io/File;->exists()Z │ │ - move-result v6 │ + move-result v3 │ │ - if-nez v6, :cond_4 │ + if-nez v3, :cond_4 │ │ - invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z │ + invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z │ │ - move-result v6 │ + move-result v3 │ │ - if-nez v6, :cond_4 │ + if-nez v3, :cond_4 │ │ .line 180 │ - const-string v6, "DatabaseHelper" │ + const-string v3, "DatabaseHelper" │ │ - const-string v7, "getDir: chosen dir does not exist and cannot be created" │ + const-string v4, "getDir: chosen dir does not exist and cannot be created" │ │ - invoke-static {v6, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ - move-object v2, v5 │ + move-object v1, v2 │ │ .line 181 │ goto :goto_1 │ .end method │ │ .method public static getFilesDir(Ljava/lang/String;)Ljava/io/File; │ .locals 5 │ @@ -492,24 +488,26 @@ │ │ .line 193 │ :cond_0 │ new-instance v2, Lcom/activeandroid/Configuration$Builder; │ │ invoke-direct {v2, v0}, Lcom/activeandroid/Configuration$Builder;->(Landroid/content/Context;)V │ │ + .line 194 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DatabaseHelper;->getDatabaseFilename()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Lcom/activeandroid/Configuration$Builder;->setDatabaseName(Ljava/lang/String;)Lcom/activeandroid/Configuration$Builder; │ │ move-result-object v2 │ │ sget-object v3, Lorg/isoron/uhabits/BuildConfig;->databaseVersion:Ljava/lang/Integer; │ │ + .line 195 │ invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I │ │ move-result v3 │ │ invoke-virtual {v2, v3}, Lcom/activeandroid/Configuration$Builder;->setDatabaseVersion(I)Lcom/activeandroid/Configuration$Builder; │ │ move-result-object v2 │ @@ -544,18 +542,20 @@ │ │ const/4 v4, 0x4 │ │ const-class v5, Lorg/isoron/uhabits/models/Streak; │ │ aput-object v5, v3, v4 │ │ + .line 196 │ invoke-virtual {v2, v3}, Lcom/activeandroid/Configuration$Builder;->addModelClasses([Ljava/lang/Class;)Lcom/activeandroid/Configuration$Builder; │ │ move-result-object v2 │ │ + .line 198 │ invoke-virtual {v2}, Lcom/activeandroid/Configuration$Builder;->create()Lcom/activeandroid/Configuration; │ │ move-result-object v1 │ │ .line 200 │ .local v1, "dbConfig":Lcom/activeandroid/Configuration; │ invoke-static {v1}, Lcom/activeandroid/ActiveAndroid;->initialize(Lcom/activeandroid/Configuration;)V │ @@ -596,19 +596,19 @@ │ const-wide/16 v2, 0x0 │ │ .line 215 │ if-eqz v0, :cond_0 │ │ invoke-interface {v0}, Landroid/database/Cursor;->close()V │ │ + .line 211 │ :cond_0 │ :goto_0 │ return-wide v2 │ │ - .line 211 │ :cond_1 │ const/4 v1, 0x0 │ │ :try_start_1 │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getLong(I)J │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 ├── smali/org/isoron/uhabits/helpers/HintManager$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/helpers/HintManager; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/helpers/HintManager;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/helpers/HintManager; │ │ .prologue │ .line 48 │ iput-object p1, p0, Lorg/isoron/uhabits/helpers/HintManager$1;->this$0:Lorg/isoron/uhabits/helpers/HintManager; │ │ invoke-direct {p0}, Landroid/animation/AnimatorListenerAdapter;->()V ├── smali/org/isoron/uhabits/helpers/DateHelper.smali │ @@ -98,18 +98,20 @@ │ │ .line 136 │ .local v0, "dayOfMonth":Ljava/lang/String; │ const/4 v2, 0x7 │ │ const/4 v3, 0x1 │ │ + .line 137 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v4 │ │ + .line 136 │ invoke-virtual {p0, v2, v3, v4}, Ljava/util/GregorianCalendar;->getDisplayName(IILjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 139 │ .local v1, "dayOfWeek":Ljava/lang/String; │ new-instance v2, Ljava/lang/StringBuilder; │ @@ -501,19 +503,20 @@ │ │ .local v1, "i":I │ :goto_0 │ array-length v3, v2 │ │ if-ge v1, v3, :cond_0 │ │ - .line 180 │ + .line 181 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v3 │ │ + .line 180 │ invoke-virtual {v0, v5, p0, v3}, Ljava/util/Calendar;->getDisplayName(IILjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v3 │ │ aput-object v3, v2, v1 │ │ .line 182 │ @@ -614,19 +617,20 @@ │ │ .local v2, "i":I │ :goto_0 │ array-length v3, v1 │ │ if-ge v2, v3, :cond_0 │ │ - .line 200 │ + .line 201 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ move-result-object v3 │ │ + .line 200 │ invoke-virtual {v0, v5, p0, v3}, Ljava/util/Calendar;->getDisplayName(IILjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ .line 202 ├── smali/org/isoron/uhabits/helpers/ListHabitsHelper$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$background:Landroid/graphics/drawable/Drawable; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/helpers/ListHabitsHelper;Landroid/graphics/drawable/Drawable;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/helpers/ListHabitsHelper; │ │ .prologue │ .line 279 │ iput-object p1, p0, Lorg/isoron/uhabits/helpers/ListHabitsHelper$1;->this$0:Lorg/isoron/uhabits/helpers/ListHabitsHelper; │ │ iput-object p2, p0, Lorg/isoron/uhabits/helpers/ListHabitsHelper$1;->val$background:Landroid/graphics/drawable/Drawable; ├── smali/org/isoron/uhabits/helpers/ListHabitsHelper.smali │ @@ -274,26 +274,28 @@ │ │ .line 266 │ .local v0, "offset":Ljava/lang/Integer; │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocalTime()J │ │ move-result-wide v2 │ │ + .line 267 │ invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I │ │ move-result v1 │ │ int-to-long v4, v1 │ │ sget-wide v6, Lorg/isoron/uhabits/helpers/DateHelper;->millisecondsInOneDay:J │ │ mul-long/2addr v4, v6 │ │ sub-long/2addr v2, v4 │ │ + .line 266 │ invoke-static {v2, v3}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfDay(J)J │ │ move-result-wide v2 │ │ return-wide v2 │ .end method ├── smali/org/isoron/uhabits/helpers/ReminderHelper.smali │ @@ -168,15 +168,15 @@ │ .line 81 │ const-string v10, "reminderTime" │ │ move-object/from16 v0, p2 │ │ invoke-virtual {v2, v10, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent; │ │ - .line 83 │ + .line 84 │ invoke-virtual/range {p1 .. p1}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v10 │ │ invoke-virtual {v10}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v10 │ @@ -260,14 +260,15 @@ │ │ const/4 v12, 0x2 │ │ new-array v12, v12, [Ljava/lang/Object; │ │ const/4 v13, 0x0 │ │ + .line 98 │ invoke-static {}, Ljava/text/DateFormat;->getDateTimeInstance()Ljava/text/DateFormat; │ │ move-result-object v14 │ │ new-instance v15, Ljava/util/Date; │ │ invoke-virtual/range {p2 .. p2}, Ljava/lang/Long;->longValue()J │ @@ -282,14 +283,15 @@ │ │ aput-object v14, v12, v13 │ │ const/4 v13, 0x1 │ │ aput-object v5, v12, v13 │ │ + .line 97 │ invoke-static {v11, v12}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v11 │ │ invoke-static {v10, v11}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ goto/16 :goto_0 │ @@ -331,21 +333,20 @@ │ .locals 3 │ .param p0, "context" # Landroid/content/Context; │ │ .prologue │ .line 49 │ invoke-static {}, Lorg/isoron/uhabits/models/Habit;->getHabitsWithReminder()Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/org/isoron/uhabits/helpers/UIHelper.smali │ @@ -27,15 +27,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 46 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 61 │ return-void │ .end method │ │ .method public static applyCurrentTheme(Landroid/app/Activity;)V │ .locals 4 │ .param p0, "activity" # Landroid/app/Activity; │ │ @@ -668,167 +667,162 @@ │ invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 86 │ return-void │ .end method │ │ .method public static isLocaleFullyTranslated()Z │ - .locals 10 │ + .locals 8 │ │ .prologue │ - const/4 v6, 0x1 │ + const/4 v3, 0x1 │ │ - const/4 v7, 0x0 │ + const/4 v4, 0x0 │ │ .line 193 │ - const/16 v8, 0x10 │ + const/16 v5, 0x10 │ │ - new-array v2, v8, [Ljava/lang/String; │ + new-array v1, v5, [Ljava/lang/String; │ │ - const-string v8, "ca" │ + const-string v5, "ca" │ │ - aput-object v8, v2, v7 │ + aput-object v5, v1, v4 │ │ - const-string v8, "zh" │ + const-string v5, "zh" │ │ - aput-object v8, v2, v6 │ + aput-object v5, v1, v3 │ │ - const/4 v8, 0x2 │ + const/4 v5, 0x2 │ │ - const-string v9, "en" │ + const-string v6, "en" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/4 v8, 0x3 │ + const/4 v5, 0x3 │ │ - const-string v9, "de" │ + const-string v6, "de" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/4 v8, 0x4 │ + const/4 v5, 0x4 │ │ - const-string v9, "in" │ + const-string v6, "in" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/4 v8, 0x5 │ + const/4 v5, 0x5 │ │ - const-string v9, "it" │ + const-string v6, "it" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/4 v8, 0x6 │ + const/4 v5, 0x6 │ │ - const-string v9, "ko" │ + const-string v6, "ko" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/4 v8, 0x7 │ + const/4 v5, 0x7 │ │ - const-string v9, "pl" │ + const-string v6, "pl" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0x8 │ + const/16 v5, 0x8 │ │ - const-string v9, "pt" │ + const-string v6, "pt" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0x9 │ + const/16 v5, 0x9 │ │ - const-string v9, "es" │ + const-string v6, "es" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0xa │ + const/16 v5, 0xa │ │ - const-string v9, "tk" │ + const-string v6, "tk" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0xb │ + const/16 v5, 0xb │ │ - const-string v9, "uk" │ + const-string v6, "uk" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0xc │ + const/16 v5, 0xc │ │ - const-string v9, "ja" │ + const-string v6, "ja" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0xd │ + const/16 v5, 0xd │ │ - const-string v9, "fr" │ + const-string v6, "fr" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0xe │ + const/16 v5, 0xe │ │ - const-string v9, "hr" │ + const-string v6, "hr" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ - const/16 v8, 0xf │ + const/16 v5, 0xf │ │ - const-string v9, "sl" │ + const-string v6, "sl" │ │ - aput-object v9, v2, v8 │ + aput-object v6, v1, v5 │ │ .line 196 │ - .local v2, "fullyTranslatedLanguages":[Ljava/lang/String; │ + .local v1, "fullyTranslatedLanguages":[Ljava/lang/String; │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 198 │ - .local v1, "currentLanguage":Ljava/lang/String; │ - move-object v0, v2 │ + .local v0, "currentLanguage":Ljava/lang/String; │ + array-length v6, v1 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v5, v0 │ - │ - .local v5, "len$":I │ - const/4 v3, 0x0 │ + move v5, v4 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v5, :cond_1 │ + if-ge v5, v6, :cond_1 │ │ - aget-object v4, v0, v3 │ + aget-object v2, v1, v5 │ │ .line 199 │ - .local v4, "lang":Ljava/lang/String; │ - invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + .local v2, "lang":Ljava/lang/String; │ + invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v8 │ + move-result v7 │ │ - if-eqz v8, :cond_0 │ + if-eqz v7, :cond_0 │ │ .line 201 │ - .end local v4 # "lang":Ljava/lang/String; │ + .end local v2 # "lang":Ljava/lang/String; │ :goto_1 │ - return v6 │ + return v3 │ │ .line 198 │ - .restart local v4 # "lang":Ljava/lang/String; │ + .restart local v2 # "lang":Ljava/lang/String; │ :cond_0 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v5, v5, 0x1 │ │ goto :goto_0 │ │ - .end local v4 # "lang":Ljava/lang/String; │ + .end local v2 # "lang":Ljava/lang/String; │ :cond_1 │ - move v6, v7 │ + move v3, v4 │ │ .line 201 │ goto :goto_1 │ .end method │ │ .method public static isNightMode()Z │ .locals 2 │ @@ -935,14 +929,15 @@ │ .line 76 │ invoke-virtual {p0}, Landroid/view/View;->getContext()Landroid/content/Context; │ │ move-result-object v1 │ │ const-string v2, "input_method" │ │ + .line 77 │ invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/view/inputmethod/InputMethodManager; │ │ .line 78 ├── smali/org/isoron/uhabits/io/GenericImporter.smali │ @@ -83,51 +83,50 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 45 │ - iget-object v2, p0, Lorg/isoron/uhabits/io/GenericImporter;->importers:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/io/GenericImporter;->importers:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/isoron/uhabits/io/AbstractImporter; │ + check-cast v0, Lorg/isoron/uhabits/io/AbstractImporter; │ │ .line 46 │ - .local v1, "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ - invoke-virtual {v1, p1}, Lorg/isoron/uhabits/io/AbstractImporter;->canHandle(Ljava/io/File;)Z │ + .local v0, "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ + invoke-virtual {v0, p1}, Lorg/isoron/uhabits/io/AbstractImporter;->canHandle(Ljava/io/File;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - const/4 v2, 0x1 │ + const/4 v1, 0x1 │ │ .line 48 │ - .end local v1 # "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ + .end local v0 # "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ :goto_0 │ - return v2 │ + return v1 │ │ :cond_1 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public importHabitsFromFile(Ljava/io/File;)V │ .locals 3 │ .param p1, "file" # Ljava/io/File; │ @@ -138,46 +137,45 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 54 │ - iget-object v2, p0, Lorg/isoron/uhabits/io/GenericImporter;->importers:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/io/GenericImporter;->importers:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/isoron/uhabits/io/AbstractImporter; │ + check-cast v0, Lorg/isoron/uhabits/io/AbstractImporter; │ │ .line 55 │ - .local v1, "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ - invoke-virtual {v1, p1}, Lorg/isoron/uhabits/io/AbstractImporter;->canHandle(Ljava/io/File;)Z │ + .local v0, "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ + invoke-virtual {v0, p1}, Lorg/isoron/uhabits/io/AbstractImporter;->canHandle(Ljava/io/File;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ .line 56 │ - invoke-virtual {v1, p1}, Lorg/isoron/uhabits/io/AbstractImporter;->importHabitsFromFile(Ljava/io/File;)V │ + invoke-virtual {v0, p1}, Lorg/isoron/uhabits/io/AbstractImporter;->importHabitsFromFile(Ljava/io/File;)V │ │ goto :goto_0 │ │ .line 57 │ - .end local v1 # "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ + .end local v0 # "importer":Lorg/isoron/uhabits/io/AbstractImporter; │ :cond_1 │ return-void │ .end method ├── smali/org/isoron/uhabits/io/HabitBullCSVImporter.smali │ @@ -24,83 +24,82 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 65 │ - new-instance v12, Lcom/opencsv/CSVReader; │ + new-instance v11, Lcom/opencsv/CSVReader; │ │ - new-instance v17, Ljava/io/FileReader; │ + new-instance v16, Ljava/io/FileReader; │ │ - move-object/from16 v0, v17 │ + move-object/from16 v0, v16 │ │ move-object/from16 v1, p1 │ │ invoke-direct {v0, v1}, Ljava/io/FileReader;->(Ljava/io/File;)V │ │ - move-object/from16 v0, v17 │ + move-object/from16 v0, v16 │ │ - invoke-direct {v12, v0}, Lcom/opencsv/CSVReader;->(Ljava/io/Reader;)V │ + invoke-direct {v11, v0}, Lcom/opencsv/CSVReader;->(Ljava/io/Reader;)V │ │ .line 66 │ - .local v12, "reader":Lcom/opencsv/CSVReader; │ + .local v11, "reader":Lcom/opencsv/CSVReader; │ new-instance v7, Ljava/util/HashMap; │ │ invoke-direct {v7}, Ljava/util/HashMap;->()V │ │ .line 68 │ .local v7, "habits":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ - invoke-virtual {v12}, Lcom/opencsv/CSVReader;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v11}, Lcom/opencsv/CSVReader;->iterator()Ljava/util/Iterator; │ │ - move-result-object v8 │ + move-result-object v16 │ │ - .local v8, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface/range {v16 .. v16}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v17 │ │ if-eqz v17, :cond_2 │ │ - invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface/range {v16 .. v16}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - check-cast v9, [Ljava/lang/String; │ + check-cast v8, [Ljava/lang/String; │ │ .line 70 │ - .local v9, "line":[Ljava/lang/String; │ + .local v8, "line":[Ljava/lang/String; │ const/16 v17, 0x0 │ │ - aget-object v11, v9, v17 │ + aget-object v10, v8, v17 │ │ .line 71 │ - .local v11, "name":Ljava/lang/String; │ + .local v10, "name":Ljava/lang/String; │ const-string v17, "HabitName" │ │ move-object/from16 v0, v17 │ │ - invoke-virtual {v11, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v10, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v17 │ │ if-nez v17, :cond_0 │ │ .line 73 │ const/16 v17, 0x1 │ │ - aget-object v5, v9, v17 │ + aget-object v5, v8, v17 │ │ .line 74 │ .local v5, "description":Ljava/lang/String; │ const/16 v17, 0x3 │ │ - aget-object v17, v9, v17 │ + aget-object v17, v8, v17 │ │ const-string v18, "-" │ │ invoke-virtual/range {v17 .. v18}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v3 │ │ @@ -108,28 +107,28 @@ │ .local v3, "dateString":[Ljava/lang/String; │ const/16 v17, 0x0 │ │ aget-object v17, v3, v17 │ │ invoke-static/range {v17 .. v17}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ - move-result v16 │ + move-result v15 │ │ .line 76 │ - .local v16, "year":I │ + .local v15, "year":I │ const/16 v17, 0x1 │ │ aget-object v17, v3, v17 │ │ invoke-static/range {v17 .. v17}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ - move-result v10 │ + move-result v9 │ │ .line 77 │ - .local v10, "month":I │ + .local v9, "month":I │ const/16 v17, 0x2 │ │ aget-object v17, v3, v17 │ │ invoke-static/range {v17 .. v17}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v4 │ @@ -138,47 +137,45 @@ │ .local v4, "day":I │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfTodayCalendar()Ljava/util/GregorianCalendar; │ │ move-result-object v2 │ │ .line 80 │ .local v2, "date":Ljava/util/Calendar; │ - add-int/lit8 v17, v10, -0x1 │ - │ - move/from16 v0, v16 │ + add-int/lit8 v17, v9, -0x1 │ │ - move/from16 v1, v17 │ + move/from16 v0, v17 │ │ - invoke-virtual {v2, v0, v1, v4}, Ljava/util/Calendar;->set(III)V │ + invoke-virtual {v2, v15, v0, v4}, Ljava/util/Calendar;->set(III)V │ │ .line 82 │ invoke-virtual {v2}, Ljava/util/Calendar;->getTimeInMillis()J │ │ - move-result-wide v14 │ + move-result-wide v12 │ │ .line 84 │ - .local v14, "timestamp":J │ + .local v12, "timestamp":J │ const/16 v17, 0x4 │ │ - aget-object v17, v9, v17 │ + aget-object v17, v8, v17 │ │ invoke-static/range {v17 .. v17}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ - move-result v13 │ + move-result v14 │ │ .line 85 │ - .local v13, "value":I │ + .local v14, "value":I │ const/16 v17, 0x1 │ │ move/from16 v0, v17 │ │ - if-ne v13, v0, :cond_0 │ + if-ne v14, v0, :cond_0 │ │ .line 87 │ - invoke-virtual {v7, v11}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v10}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lorg/isoron/uhabits/models/Habit; │ │ .line 89 │ .local v6, "h":Lorg/isoron/uhabits/models/Habit; │ @@ -188,15 +185,15 @@ │ new-instance v6, Lorg/isoron/uhabits/models/Habit; │ │ .end local v6 # "h":Lorg/isoron/uhabits/models/Habit; │ invoke-direct {v6}, Lorg/isoron/uhabits/models/Habit;->()V │ │ .line 92 │ .restart local v6 # "h":Lorg/isoron/uhabits/models/Habit; │ - iput-object v11, v6, Lorg/isoron/uhabits/models/Habit;->name:Ljava/lang/String; │ + iput-object v10, v6, Lorg/isoron/uhabits/models/Habit;->name:Ljava/lang/String; │ │ .line 93 │ iput-object v5, v6, Lorg/isoron/uhabits/models/Habit;->description:Ljava/lang/String; │ │ .line 94 │ const/16 v17, 0x1 │ │ @@ -212,53 +209,53 @@ │ │ iput-object v0, v6, Lorg/isoron/uhabits/models/Habit;->freqNum:Ljava/lang/Integer; │ │ .line 95 │ invoke-virtual {v6}, Lorg/isoron/uhabits/models/Habit;->save()Ljava/lang/Long; │ │ .line 97 │ - invoke-virtual {v7, v11, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v10, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 100 │ :cond_1 │ iget-object v0, v6, Lorg/isoron/uhabits/models/Habit;->repetitions:Lorg/isoron/uhabits/models/RepetitionList; │ │ move-object/from16 v17, v0 │ │ move-object/from16 v0, v17 │ │ - invoke-virtual {v0, v14, v15}, Lorg/isoron/uhabits/models/RepetitionList;->contains(J)Z │ + invoke-virtual {v0, v12, v13}, Lorg/isoron/uhabits/models/RepetitionList;->contains(J)Z │ │ move-result v17 │ │ if-nez v17, :cond_0 │ │ .line 101 │ iget-object v0, v6, Lorg/isoron/uhabits/models/Habit;->repetitions:Lorg/isoron/uhabits/models/RepetitionList; │ │ move-object/from16 v17, v0 │ │ move-object/from16 v0, v17 │ │ - invoke-virtual {v0, v14, v15}, Lorg/isoron/uhabits/models/RepetitionList;->toggle(J)V │ + invoke-virtual {v0, v12, v13}, Lorg/isoron/uhabits/models/RepetitionList;->toggle(J)V │ │ goto/16 :goto_0 │ │ .line 103 │ .end local v2 # "date":Ljava/util/Calendar; │ .end local v3 # "dateString":[Ljava/lang/String; │ .end local v4 # "day":I │ .end local v5 # "description":Ljava/lang/String; │ .end local v6 # "h":Lorg/isoron/uhabits/models/Habit; │ - .end local v9 # "line":[Ljava/lang/String; │ - .end local v10 # "month":I │ - .end local v11 # "name":Ljava/lang/String; │ - .end local v13 # "value":I │ - .end local v14 # "timestamp":J │ - .end local v16 # "year":I │ + .end local v8 # "line":[Ljava/lang/String; │ + .end local v9 # "month":I │ + .end local v10 # "name":Ljava/lang/String; │ + .end local v12 # "timestamp":J │ + .end local v14 # "value":I │ + .end local v15 # "year":I │ :cond_2 │ return-void │ .end method │ │ │ # virtual methods │ .method public canHandle(Ljava/io/File;)Z ├── smali/org/isoron/uhabits/io/HabitsCSVExporter.smali │ @@ -189,21 +189,20 @@ │ .end method │ │ .method private cleanup()V │ .locals 5 │ │ .prologue │ .line 152 │ - iget-object v2, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateFilenames:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateFilenames:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ @@ -240,17 +239,17 @@ │ invoke-virtual {v2}, Ljava/io/File;->delete()Z │ │ goto :goto_0 │ │ .line 155 │ .end local v0 # "filename":Ljava/lang/String; │ :cond_0 │ - iget-object v2, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateDirs:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateDirs:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ :goto_1 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ @@ -290,21 +289,21 @@ │ invoke-virtual {v2}, Ljava/io/File;->delete()Z │ │ goto :goto_1 │ │ .line 158 │ .end local v0 # "filename":Ljava/lang/String; │ :cond_1 │ - new-instance v2, Ljava/io/File; │ + new-instance v1, Ljava/io/File; │ │ - iget-object v3, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ + iget-object v2, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ │ - invoke-direct {v2, v3}, Ljava/io/File;->(Ljava/lang/String;)V │ + invoke-direct {v1, v2}, Ljava/io/File;->(Ljava/lang/String;)V │ │ - invoke-virtual {v2}, Ljava/io/File;->delete()Z │ + invoke-virtual {v1}, Ljava/io/File;->delete()Z │ │ .line 159 │ return-void │ .end method │ │ .method private sanitizeFilename(Ljava/lang/String;)Ljava/lang/String; │ .locals 4 │ @@ -423,90 +422,89 @@ │ │ .prologue │ .line 60 │ const-string v0, "Habits.csv" │ │ .line 61 │ .local v0, "filename":Ljava/lang/String; │ - new-instance v6, Ljava/io/File; │ + new-instance v5, Ljava/io/File; │ │ - iget-object v7, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ + iget-object v6, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ │ - invoke-direct {v6, v7}, Ljava/io/File;->(Ljava/lang/String;)V │ + invoke-direct {v5, v6}, Ljava/io/File;->(Ljava/lang/String;)V │ │ - invoke-virtual {v6}, Ljava/io/File;->mkdirs()Z │ + invoke-virtual {v5}, Ljava/io/File;->mkdirs()Z │ │ .line 62 │ - new-instance v4, Ljava/io/FileWriter; │ + new-instance v3, Ljava/io/FileWriter; │ │ - new-instance v6, Ljava/lang/StringBuilder; │ + new-instance v5, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ - iget-object v7, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ + iget-object v6, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-direct {v4, v6}, Ljava/io/FileWriter;->(Ljava/lang/String;)V │ + invoke-direct {v3, v5}, Ljava/io/FileWriter;->(Ljava/lang/String;)V │ │ .line 63 │ - .local v4, "out":Ljava/io/FileWriter; │ - iget-object v6, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateFilenames:Ljava/util/List; │ + .local v3, "out":Ljava/io/FileWriter; │ + iget-object v5, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateFilenames:Ljava/util/List; │ │ - invoke-interface {v6, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v5, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 64 │ - iget-object v6, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->habits:Ljava/util/List; │ + iget-object v5, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->habits:Ljava/util/List; │ │ - invoke-static {v6, v4}, Lorg/isoron/uhabits/models/Habit;->writeCSV(Ljava/util/List;Ljava/io/Writer;)V │ + invoke-static {v5, v3}, Lorg/isoron/uhabits/models/Habit;->writeCSV(Ljava/util/List;Ljava/io/Writer;)V │ │ .line 65 │ - invoke-virtual {v4}, Ljava/io/FileWriter;->close()V │ + invoke-virtual {v3}, Ljava/io/FileWriter;->close()V │ │ .line 67 │ - iget-object v6, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->habits:Ljava/util/List; │ + iget-object v5, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->habits:Ljava/util/List; │ │ - invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v5 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v6 │ │ if-eqz v6, :cond_0 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lorg/isoron/uhabits/models/Habit; │ │ .line 69 │ .local v1, "h":Lorg/isoron/uhabits/models/Habit; │ iget-object v6, v1, Lorg/isoron/uhabits/models/Habit;->name:Ljava/lang/String; │ │ invoke-direct {p0, v6}, Lorg/isoron/uhabits/io/HabitsCSVExporter;->sanitizeFilename(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 70 │ - .local v5, "sane":Ljava/lang/String; │ + .local v4, "sane":Ljava/lang/String; │ const-string v6, "%03d %s" │ │ const/4 v7, 0x2 │ │ new-array v7, v7, [Ljava/lang/Object; │ │ const/4 v8, 0x0 │ @@ -523,15 +521,15 @@ │ │ move-result-object v9 │ │ aput-object v9, v7, v8 │ │ const/4 v8, 0x1 │ │ - aput-object v5, v7, v8 │ + aput-object v4, v7, v8 │ │ invoke-static {v6, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 71 │ .local v2, "habitDirName":Ljava/lang/String; │ @@ -598,15 +596,15 @@ │ invoke-direct {p0, v2, v6}, Lorg/isoron/uhabits/io/HabitsCSVExporter;->writeCheckmarks(Ljava/lang/String;Lorg/isoron/uhabits/models/CheckmarkList;)V │ │ goto :goto_0 │ │ .line 79 │ .end local v1 # "h":Lorg/isoron/uhabits/models/Habit; │ .end local v2 # "habitDirName":Ljava/lang/String; │ - .end local v5 # "sane":Ljava/lang/String; │ + .end local v4 # "sane":Ljava/lang/String; │ :cond_0 │ return-void │ .end method │ │ .method private writeScores(Ljava/lang/String;Lorg/isoron/uhabits/models/ScoreList;)V │ .locals 4 │ .param p1, "habitDirName" # Ljava/lang/String; │ @@ -674,15 +672,15 @@ │ invoke-virtual {v0}, Ljava/io/FileWriter;->close()V │ │ .line 95 │ return-void │ .end method │ │ .method private writeZipFile()Ljava/lang/String; │ - .locals 11 │ + .locals 10 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ @@ -691,96 +689,95 @@ │ │ move-result-object v1 │ │ .line 109 │ .local v1, "dateFormat":Ljava/text/SimpleDateFormat; │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfToday()J │ │ - move-result-wide v8 │ + move-result-wide v6 │ │ - invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ + invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v1, v7}, Ljava/text/SimpleDateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; │ + invoke-virtual {v1, v6}, Ljava/text/SimpleDateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 110 │ .local v0, "date":Ljava/lang/String; │ - const-string v7, "%s/Loop Habits CSV %s.zip" │ + const-string v6, "%s/Loop Habits CSV %s.zip" │ │ - const/4 v8, 0x2 │ + const/4 v7, 0x2 │ │ - new-array v8, v8, [Ljava/lang/Object; │ + new-array v7, v7, [Ljava/lang/Object; │ │ - const/4 v9, 0x0 │ + const/4 v8, 0x0 │ │ - iget-object v10, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ + iget-object v9, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->exportDirName:Ljava/lang/String; │ │ - aput-object v10, v8, v9 │ + aput-object v9, v7, v8 │ │ - const/4 v9, 0x1 │ + const/4 v8, 0x1 │ │ - aput-object v0, v8, v9 │ + aput-object v0, v7, v8 │ │ - invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v6, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 112 │ - .local v5, "zipFilename":Ljava/lang/String; │ + .local v4, "zipFilename":Ljava/lang/String; │ new-instance v3, Ljava/io/FileOutputStream; │ │ - invoke-direct {v3, v5}, Ljava/io/FileOutputStream;->(Ljava/lang/String;)V │ + invoke-direct {v3, v4}, Ljava/io/FileOutputStream;->(Ljava/lang/String;)V │ │ .line 113 │ .local v3, "fos":Ljava/io/FileOutputStream; │ - new-instance v6, Ljava/util/zip/ZipOutputStream; │ + new-instance v5, Ljava/util/zip/ZipOutputStream; │ │ - invoke-direct {v6, v3}, Ljava/util/zip/ZipOutputStream;->(Ljava/io/OutputStream;)V │ + invoke-direct {v5, v3}, Ljava/util/zip/ZipOutputStream;->(Ljava/io/OutputStream;)V │ │ .line 115 │ - .local v6, "zos":Ljava/util/zip/ZipOutputStream; │ - iget-object v7, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateFilenames:Ljava/util/List; │ + .local v5, "zos":Ljava/util/zip/ZipOutputStream; │ + iget-object v6, p0, Lorg/isoron/uhabits/io/HabitsCSVExporter;->generateFilenames:Ljava/util/List; │ │ - invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v4 │ + move-result-object v6 │ │ - .local v4, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_0 │ │ - invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/String; │ │ .line 116 │ .local v2, "filename":Ljava/lang/String; │ - invoke-direct {p0, v6, v2}, Lorg/isoron/uhabits/io/HabitsCSVExporter;->addFileToZip(Ljava/util/zip/ZipOutputStream;Ljava/lang/String;)V │ + invoke-direct {p0, v5, v2}, Lorg/isoron/uhabits/io/HabitsCSVExporter;->addFileToZip(Ljava/util/zip/ZipOutputStream;Ljava/lang/String;)V │ │ goto :goto_0 │ │ .line 118 │ .end local v2 # "filename":Ljava/lang/String; │ :cond_0 │ - invoke-virtual {v6}, Ljava/util/zip/ZipOutputStream;->close()V │ + invoke-virtual {v5}, Ljava/util/zip/ZipOutputStream;->close()V │ │ .line 119 │ invoke-virtual {v3}, Ljava/io/FileOutputStream;->close()V │ │ .line 121 │ - return-object v5 │ + return-object v4 │ .end method │ │ │ # virtual methods │ .method public writeArchive()Ljava/lang/String; │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; ├── smali/org/isoron/uhabits/io/RewireDBImporter$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$db:Landroid/database/sqlite/SQLiteDatabase; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/io/RewireDBImporter;Landroid/database/sqlite/SQLiteDatabase;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/io/RewireDBImporter; │ │ .prologue │ .line 61 │ iput-object p1, p0, Lorg/isoron/uhabits/io/RewireDBImporter$1;->this$0:Lorg/isoron/uhabits/io/RewireDBImporter; │ │ iput-object p2, p0, Lorg/isoron/uhabits/io/RewireDBImporter$1;->val$db:Landroid/database/sqlite/SQLiteDatabase; ├── smali/org/isoron/uhabits/io/RewireDBImporter.smali │ @@ -460,209 +460,199 @@ │ :pswitch_0 │ :pswitch_1 │ :pswitch_2 │ .end packed-switch │ .end method │ │ .method private createReminder(Landroid/database/sqlite/SQLiteDatabase;Lorg/isoron/uhabits/models/Habit;I)V │ - .locals 12 │ + .locals 10 │ .param p1, "db" # Landroid/database/sqlite/SQLiteDatabase; │ .param p2, "habit" # Lorg/isoron/uhabits/models/Habit; │ .param p3, "rewireHabitId" # I │ │ .prologue │ - const/4 v11, 0x0 │ + const/4 v8, 0x1 │ │ - const/4 v10, 0x1 │ + const/4 v7, 0x0 │ │ .line 133 │ - new-array v7, v10, [Ljava/lang/String; │ + new-array v4, v8, [Ljava/lang/String; │ │ invoke-static {p3}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v8 │ │ - aput-object v10, v7, v11 │ + aput-object v8, v4, v7 │ │ .line 134 │ - .local v7, "params":[Ljava/lang/String; │ - const/4 v2, 0x0 │ + .local v4, "params":[Ljava/lang/String; │ + const/4 v1, 0x0 │ │ .line 138 │ - .local v2, "c":Landroid/database/Cursor; │ + .local v1, "c":Landroid/database/Cursor; │ :try_start_0 │ - const-string v10, "select time, active_days from reminders where habit_id=? limit 1" │ + const-string v8, "select time, active_days from reminders where habit_id=? limit 1" │ │ - invoke-virtual {p1, v10, v7}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; │ + invoke-virtual {p1, v8, v4}, Landroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 140 │ - invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z │ + invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - move-result v10 │ + move-result v8 │ │ - if-nez v10, :cond_1 │ + if-nez v8, :cond_1 │ │ .line 160 │ - if-eqz v2, :cond_0 │ + if-eqz v1, :cond_0 │ │ - invoke-interface {v2}, Landroid/database/Cursor;->close()V │ + invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ .line 162 │ :cond_0 │ :goto_0 │ return-void │ │ .line 141 │ :cond_1 │ - const/4 v10, 0x0 │ + const/4 v8, 0x0 │ │ :try_start_1 │ - invoke-interface {v2, v10}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ + invoke-interface {v1, v8}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v8 │ │ - invoke-static {v10}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ + invoke-static {v8}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - move-result v9 │ + move-result v6 │ │ .line 142 │ - .local v9, "rewireReminder":I │ - if-lez v9, :cond_2 │ + .local v6, "rewireReminder":I │ + if-lez v6, :cond_2 │ │ - const/16 v10, 0x5a0 │ + const/16 v8, 0x5a0 │ │ - if-lt v9, v10, :cond_3 │ + if-lt v6, v8, :cond_3 │ │ .line 160 │ :cond_2 │ - if-eqz v2, :cond_0 │ + if-eqz v1, :cond_0 │ │ - invoke-interface {v2}, Landroid/database/Cursor;->close()V │ + invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ goto :goto_0 │ │ .line 144 │ :cond_3 │ - const/4 v10, 0x7 │ + const/4 v8, 0x7 │ │ :try_start_2 │ - new-array v8, v10, [Z │ + new-array v5, v8, [Z │ │ .line 146 │ - .local v8, "reminderDays":[Z │ - const/4 v10, 0x1 │ + .local v5, "reminderDays":[Z │ + const/4 v8, 0x1 │ │ - invoke-interface {v2, v10}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ + invoke-interface {v1, v8}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v8 │ │ - const-string v11, "," │ + const-string v9, "," │ │ - invoke-virtual {v10, v11}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v8, v9}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v0 │ │ .line 147 │ .local v0, "activeDays":[Ljava/lang/String; │ - move-object v1, v0 │ - │ - .local v1, "arr$":[Ljava/lang/String; │ - array-length v6, v1 │ + array-length v8, v0 │ │ - .local v6, "len$":I │ - const/4 v4, 0x0 │ - │ - .local v4, "i$":I │ :goto_1 │ - if-ge v4, v6, :cond_4 │ + if-ge v7, v8, :cond_4 │ │ - aget-object v3, v1, v4 │ + aget-object v2, v0, v7 │ │ .line 149 │ - .local v3, "d":Ljava/lang/String; │ - invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ + .local v2, "d":Ljava/lang/String; │ + invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ - move-result v10 │ + move-result v9 │ │ - add-int/lit8 v10, v10, 0x1 │ + add-int/lit8 v9, v9, 0x1 │ │ - rem-int/lit8 v5, v10, 0x7 │ + rem-int/lit8 v3, v9, 0x7 │ │ .line 150 │ - .local v5, "idx":I │ - const/4 v10, 0x1 │ + .local v3, "idx":I │ + const/4 v9, 0x1 │ │ - aput-boolean v10, v8, v5 │ + aput-boolean v9, v5, v3 │ │ .line 147 │ - add-int/lit8 v4, v4, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ goto :goto_1 │ │ .line 153 │ - .end local v3 # "d":Ljava/lang/String; │ - .end local v5 # "idx":I │ + .end local v2 # "d":Ljava/lang/String; │ + .end local v3 # "idx":I │ :cond_4 │ - invoke-static {v8}, Lorg/isoron/uhabits/helpers/DateHelper;->packWeekdayList([Z)Ljava/lang/Integer; │ + invoke-static {v5}, Lorg/isoron/uhabits/helpers/DateHelper;->packWeekdayList([Z)Ljava/lang/Integer; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - iput-object v10, p2, Lorg/isoron/uhabits/models/Habit;->reminderDays:Ljava/lang/Integer; │ + iput-object v7, p2, Lorg/isoron/uhabits/models/Habit;->reminderDays:Ljava/lang/Integer; │ │ .line 154 │ - div-int/lit8 v10, v9, 0x3c │ + div-int/lit8 v7, v6, 0x3c │ │ - invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - iput-object v10, p2, Lorg/isoron/uhabits/models/Habit;->reminderHour:Ljava/lang/Integer; │ + iput-object v7, p2, Lorg/isoron/uhabits/models/Habit;->reminderHour:Ljava/lang/Integer; │ │ .line 155 │ - rem-int/lit8 v10, v9, 0x3c │ + rem-int/lit8 v7, v6, 0x3c │ │ - invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - iput-object v10, p2, Lorg/isoron/uhabits/models/Habit;->reminderMin:Ljava/lang/Integer; │ + iput-object v7, p2, Lorg/isoron/uhabits/models/Habit;->reminderMin:Ljava/lang/Integer; │ │ .line 156 │ invoke-virtual {p2}, Lorg/isoron/uhabits/models/Habit;->save()Ljava/lang/Long; │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ │ .line 160 │ - if-eqz v2, :cond_0 │ + if-eqz v1, :cond_0 │ │ - invoke-interface {v2}, Landroid/database/Cursor;->close()V │ + invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ goto :goto_0 │ │ .end local v0 # "activeDays":[Ljava/lang/String; │ - .end local v1 # "arr$":[Ljava/lang/String; │ - .end local v4 # "i$":I │ - .end local v6 # "len$":I │ - .end local v8 # "reminderDays":[Z │ - .end local v9 # "rewireReminder":I │ + .end local v5 # "reminderDays":[Z │ + .end local v6 # "rewireReminder":I │ :catchall_0 │ - move-exception v10 │ + move-exception v7 │ │ - if-eqz v2, :cond_5 │ + if-eqz v1, :cond_5 │ │ - invoke-interface {v2}, Landroid/database/Cursor;->close()V │ + invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ :cond_5 │ - throw v10 │ + throw v7 │ .end method │ │ │ # virtual methods │ .method public canHandle(Ljava/io/File;)Z │ .locals 8 │ .param p1, "file" # Ljava/io/File; ├── smali/org/isoron/uhabits/io/TickmateDBImporter$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$db:Landroid/database/sqlite/SQLiteDatabase; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/io/TickmateDBImporter;Landroid/database/sqlite/SQLiteDatabase;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/io/TickmateDBImporter; │ │ .prologue │ .line 61 │ iput-object p1, p0, Lorg/isoron/uhabits/io/TickmateDBImporter$1;->this$0:Lorg/isoron/uhabits/io/TickmateDBImporter; │ │ iput-object p2, p0, Lorg/isoron/uhabits/io/TickmateDBImporter$1;->val$db:Landroid/database/sqlite/SQLiteDatabase; ├── smali/org/isoron/uhabits/loaders/HabitListLoader$1.smali │ @@ -65,14 +65,15 @@ │ │ .field final synthetic val$updateScoresAndCheckmarks:Z │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/loaders/HabitListLoader;Z)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ .prologue │ .line 92 │ iput-object p1, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ iput-boolean p2, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->val$updateScoresAndCheckmarks:Z │ │ @@ -122,224 +123,223 @@ │ .method protected doInBackground()V │ .locals 15 │ │ .prologue │ const/4 v14, 0x0 │ │ .line 101 │ - new-instance v10, Ljava/util/HashMap; │ + new-instance v9, Ljava/util/HashMap; │ │ - invoke-direct {v10}, Ljava/util/HashMap;->()V │ + invoke-direct {v9}, Ljava/util/HashMap;->()V │ │ - iput-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabits:Ljava/util/HashMap; │ + iput-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabits:Ljava/util/HashMap; │ │ .line 102 │ - new-instance v10, Ljava/util/HashMap; │ + new-instance v9, Ljava/util/HashMap; │ │ - invoke-direct {v10}, Ljava/util/HashMap;->()V │ + invoke-direct {v9}, Ljava/util/HashMap;->()V │ │ - iput-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newCheckmarks:Ljava/util/HashMap; │ + iput-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newCheckmarks:Ljava/util/HashMap; │ │ .line 103 │ - new-instance v10, Ljava/util/HashMap; │ + new-instance v9, Ljava/util/HashMap; │ │ - invoke-direct {v10}, Ljava/util/HashMap;->()V │ + invoke-direct {v9}, Ljava/util/HashMap;->()V │ │ - iput-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newScores:Ljava/util/HashMap; │ + iput-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newScores:Ljava/util/HashMap; │ │ .line 104 │ - iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ + iget-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ - iget-boolean v10, v10, Lorg/isoron/uhabits/loaders/HabitListLoader;->includeArchived:Z │ + iget-boolean v9, v9, Lorg/isoron/uhabits/loaders/HabitListLoader;->includeArchived:Z │ │ - invoke-static {v10}, Lorg/isoron/uhabits/models/Habit;->getAll(Z)Ljava/util/List; │ + invoke-static {v9}, Lorg/isoron/uhabits/models/Habit;->getAll(Z)Ljava/util/List; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - iput-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabitList:Ljava/util/List; │ + iput-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabitList:Ljava/util/List; │ │ .line 106 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocalTime()J │ │ move-result-wide v10 │ │ invoke-static {v10, v11}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfDay(J)J │ │ move-result-wide v4 │ │ .line 107 │ .local v4, "dateTo":J │ - iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ + iget-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ # getter for: Lorg/isoron/uhabits/loaders/HabitListLoader;->checkmarkCount:I │ - invoke-static {v10}, Lorg/isoron/uhabits/loaders/HabitListLoader;->access$000(Lorg/isoron/uhabits/loaders/HabitListLoader;)I │ + invoke-static {v9}, Lorg/isoron/uhabits/loaders/HabitListLoader;->access$000(Lorg/isoron/uhabits/loaders/HabitListLoader;)I │ │ - move-result v10 │ + move-result v9 │ │ - add-int/lit8 v10, v10, -0x1 │ + add-int/lit8 v9, v9, -0x1 │ │ - int-to-long v10, v10 │ + int-to-long v10, v9 │ │ sget-wide v12, Lorg/isoron/uhabits/helpers/DateHelper;->millisecondsInOneDay:J │ │ mul-long/2addr v10, v12 │ │ sub-long v2, v4, v10 │ │ .line 108 │ .local v2, "dateFrom":J │ - iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ + iget-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ # getter for: Lorg/isoron/uhabits/loaders/HabitListLoader;->checkmarkCount:I │ - invoke-static {v10}, Lorg/isoron/uhabits/loaders/HabitListLoader;->access$000(Lorg/isoron/uhabits/loaders/HabitListLoader;)I │ + invoke-static {v9}, Lorg/isoron/uhabits/loaders/HabitListLoader;->access$000(Lorg/isoron/uhabits/loaders/HabitListLoader;)I │ │ - move-result v10 │ + move-result v9 │ │ - new-array v6, v10, [I │ + new-array v6, v9, [I │ │ .line 110 │ .local v6, "empty":[I │ - iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabitList:Ljava/util/List; │ + iget-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabitList:Ljava/util/List; │ │ - invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v9}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v8 │ + move-result-object v9 │ │ - .local v8, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_2 │ │ - invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v7 │ │ check-cast v7, Lorg/isoron/uhabits/models/Habit; │ │ .line 112 │ .local v7, "h":Lorg/isoron/uhabits/models/Habit; │ invoke-virtual {v7}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ - move-result-object v9 │ + move-result-object v8 │ │ .line 114 │ - .local v9, "id":Ljava/lang/Long; │ + .local v8, "id":Ljava/lang/Long; │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabits:Ljava/util/HashMap; │ │ - invoke-virtual {v10, v9, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 116 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ iget-object v10, v10, Lorg/isoron/uhabits/loaders/HabitListLoader;->checkmarks:Ljava/util/HashMap; │ │ - invoke-virtual {v10, v9}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z │ + invoke-virtual {v10, v8}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z │ │ move-result v10 │ │ if-eqz v10, :cond_0 │ │ .line 117 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newCheckmarks:Ljava/util/HashMap; │ │ iget-object v11, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ iget-object v11, v11, Lorg/isoron/uhabits/loaders/HabitListLoader;->checkmarks:Ljava/util/HashMap; │ │ - invoke-virtual {v11, v9}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v11, v8}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v11 │ │ - invoke-virtual {v10, v9, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 121 │ :goto_1 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ iget-object v10, v10, Lorg/isoron/uhabits/loaders/HabitListLoader;->scores:Ljava/util/HashMap; │ │ - invoke-virtual {v10, v9}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z │ + invoke-virtual {v10, v8}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z │ │ move-result v10 │ │ if-eqz v10, :cond_1 │ │ .line 122 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newScores:Ljava/util/HashMap; │ │ iget-object v11, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ iget-object v11, v11, Lorg/isoron/uhabits/loaders/HabitListLoader;->scores:Ljava/util/HashMap; │ │ - invoke-virtual {v11, v9}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v11, v8}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v11 │ │ - invoke-virtual {v10, v9, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 119 │ :cond_0 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newCheckmarks:Ljava/util/HashMap; │ │ - invoke-virtual {v10, v9, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_1 │ │ .line 124 │ :cond_1 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newScores:Ljava/util/HashMap; │ │ invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v11 │ │ - invoke-virtual {v10, v9, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 127 │ .end local v7 # "h":Lorg/isoron/uhabits/models/Habit; │ - .end local v9 # "id":Ljava/lang/Long; │ + .end local v8 # "id":Ljava/lang/Long; │ :cond_2 │ invoke-direct {p0}, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->commit()V │ │ .line 129 │ - iget-boolean v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->val$updateScoresAndCheckmarks:Z │ + iget-boolean v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->val$updateScoresAndCheckmarks:Z │ │ - if-nez v10, :cond_4 │ + if-nez v9, :cond_4 │ │ .line 142 │ :cond_3 │ return-void │ │ .line 131 │ :cond_4 │ const/4 v0, 0x0 │ │ .line 132 │ .local v0, "current":I │ - iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabitList:Ljava/util/List; │ + iget-object v9, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newHabitList:Ljava/util/List; │ │ - invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v9}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v8 │ + move-result-object v9 │ │ :goto_2 │ - invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_3 │ │ - invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v7 │ │ check-cast v7, Lorg/isoron/uhabits/models/Habit; │ │ .line 134 │ .restart local v7 # "h":Lorg/isoron/uhabits/models/Habit; │ @@ -348,42 +348,42 @@ │ move-result v10 │ │ if-nez v10, :cond_3 │ │ .line 136 │ invoke-virtual {v7}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ - move-result-object v9 │ + move-result-object v8 │ │ .line 137 │ - .restart local v9 # "id":Ljava/lang/Long; │ + .restart local v8 # "id":Ljava/lang/Long; │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newScores:Ljava/util/HashMap; │ │ iget-object v11, v7, Lorg/isoron/uhabits/models/Habit;->scores:Lorg/isoron/uhabits/models/ScoreList; │ │ invoke-virtual {v11}, Lorg/isoron/uhabits/models/ScoreList;->getTodayValue()I │ │ move-result v11 │ │ invoke-static {v11}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v11 │ │ - invoke-virtual {v10, v9, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 138 │ iget-object v10, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$1;->newCheckmarks:Ljava/util/HashMap; │ │ iget-object v11, v7, Lorg/isoron/uhabits/models/Habit;->checkmarks:Lorg/isoron/uhabits/models/CheckmarkList; │ │ invoke-virtual {v11, v2, v3, v4, v5}, Lorg/isoron/uhabits/models/CheckmarkList;->getValues(JJ)[I │ │ move-result-object v11 │ │ - invoke-virtual {v10, v9, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v10, v8, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 140 │ const/4 v10, 0x2 │ │ new-array v10, v10, [Ljava/lang/Integer; │ │ add-int/lit8 v1, v0, 0x1 ├── smali/org/isoron/uhabits/loaders/HabitListLoader$2.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic val$id:Ljava/lang/Long; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/loaders/HabitListLoader;Ljava/lang/Long;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ .prologue │ .line 179 │ iput-object p1, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$2;->this$0:Lorg/isoron/uhabits/loaders/HabitListLoader; │ │ iput-object p2, p0, Lorg/isoron/uhabits/loaders/HabitListLoader$2;->val$id:Ljava/lang/Long; ├── smali/org/isoron/uhabits/loaders/HabitListLoader.smali │ @@ -286,12 +286,13 @@ │ │ invoke-direct {v0, p0, p1}, Lorg/isoron/uhabits/loaders/HabitListLoader$2;->(Lorg/isoron/uhabits/loaders/HabitListLoader;Ljava/lang/Long;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 202 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/loaders/HabitListLoader$2;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 203 │ return-void │ .end method ├── smali/org/isoron/uhabits/models/CheckmarkList.smali │ @@ -134,26 +134,26 @@ │ .line 157 │ sget-wide v6, Lorg/isoron/uhabits/helpers/DateHelper;->millisecondsInOneDay:J │ │ .line 159 │ .local v6, "day":J │ invoke-virtual/range {p0 .. p0}, Lorg/isoron/uhabits/models/CheckmarkList;->findNewest()Lorg/isoron/uhabits/models/Checkmark; │ │ - move-result-object v15 │ + move-result-object v14 │ │ .line 160 │ - .local v15, "newestCheckmark":Lorg/isoron/uhabits/models/Checkmark; │ - if-eqz v15, :cond_0 │ + .local v14, "newestCheckmark":Lorg/isoron/uhabits/models/Checkmark; │ + if-eqz v14, :cond_0 │ │ .line 161 │ - iget-object v0, v15, Lorg/isoron/uhabits/models/Checkmark;->timestamp:Ljava/lang/Long; │ + iget-object v0, v14, Lorg/isoron/uhabits/models/Checkmark;->timestamp:Ljava/lang/Long; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - invoke-virtual/range {v20 .. v20}, Ljava/lang/Long;->longValue()J │ + invoke-virtual/range {v19 .. v19}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v20 │ │ add-long v20, v20, v6 │ │ move-wide/from16 v0, p1 │ │ @@ -161,41 +161,41 @@ │ │ invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(JJ)J │ │ move-result-wide p1 │ │ .line 163 │ :cond_0 │ - cmp-long v20, p1, p3 │ + cmp-long v19, p1, p3 │ │ - if-lez v20, :cond_1 │ + if-lez v19, :cond_1 │ │ .line 198 │ :goto_0 │ return-void │ │ .line 165 │ :cond_1 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/CheckmarkList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - move-object/from16 v0, v20 │ + move-object/from16 v0, v19 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/Habit;->freqDen:Ljava/lang/Integer; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - invoke-virtual/range {v20 .. v20}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual/range {v19 .. v19}, Ljava/lang/Integer;->intValue()I │ │ - move-result v20 │ + move-result v19 │ │ - move/from16 v0, v20 │ + move/from16 v0, v19 │ │ int-to-long v0, v0 │ │ move-wide/from16 v20, v0 │ │ mul-long v20, v20, v6 │ │ @@ -203,89 +203,90 @@ │ │ .line 166 │ .local v8, "fromExtended":J │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/CheckmarkList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - move-object/from16 v0, v20 │ + move-object/from16 v0, v19 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/Habit;->repetitions:Lorg/isoron/uhabits/models/RepetitionList; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - move-object/from16 v0, v20 │ + .line 167 │ + move-object/from16 v0, v19 │ │ move-wide/from16 v1, p3 │ │ invoke-virtual {v0, v8, v9, v1, v2}, Lorg/isoron/uhabits/models/RepetitionList;->selectFromTo(JJ)Lcom/activeandroid/query/From; │ │ - move-result-object v20 │ + move-result-object v19 │ │ - invoke-virtual/range {v20 .. v20}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ + .line 168 │ + invoke-virtual/range {v19 .. v19}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ │ - move-result-object v18 │ + move-result-object v17 │ │ .line 170 │ - .local v18, "reps":Ljava/util/List;, "Ljava/util/List;" │ + .local v17, "reps":Ljava/util/List;, "Ljava/util/List;" │ sub-long v20, p3, p1 │ │ div-long v20, v20, v6 │ │ move-wide/from16 v0, v20 │ │ long-to-int v0, v0 │ │ - move/from16 v20, v0 │ + move/from16 v19, v0 │ │ - add-int/lit8 v13, v20, 0x1 │ + add-int/lit8 v12, v19, 0x1 │ │ .line 171 │ - .local v13, "nDays":I │ + .local v12, "nDays":I │ sub-long v20, p3, v8 │ │ div-long v20, v20, v6 │ │ move-wide/from16 v0, v20 │ │ long-to-int v0, v0 │ │ - move/from16 v20, v0 │ + move/from16 v19, v0 │ │ - add-int/lit8 v14, v20, 0x1 │ + add-int/lit8 v13, v19, 0x1 │ │ .line 172 │ - .local v14, "nDaysExtended":I │ - new-array v4, v14, [I │ + .local v13, "nDaysExtended":I │ + new-array v4, v13, [I │ │ .line 174 │ .local v4, "checks":[I │ - invoke-interface/range {v18 .. v18}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface/range {v17 .. v17}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v11 │ + move-result-object v19 │ │ - .local v11, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface/range {v19 .. v19}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v20 │ │ if-eqz v20, :cond_2 │ │ - invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface/range {v19 .. v19}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v17 │ + move-result-object v16 │ │ - check-cast v17, Lorg/isoron/uhabits/models/Repetition; │ + check-cast v16, Lorg/isoron/uhabits/models/Repetition; │ │ .line 176 │ - .local v17, "rep":Lorg/isoron/uhabits/models/Repetition; │ - move-object/from16 v0, v17 │ + .local v16, "rep":Lorg/isoron/uhabits/models/Repetition; │ + move-object/from16 v0, v16 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/Repetition;->timestamp:Ljava/lang/Long; │ │ move-object/from16 v20, v0 │ │ invoke-virtual/range {v20 .. v20}, Ljava/lang/Long;->longValue()J │ │ @@ -293,170 +294,168 @@ │ │ sub-long v20, v20, v8 │ │ div-long v20, v20, v6 │ │ move-wide/from16 v0, v20 │ │ - long-to-int v0, v0 │ - │ - move/from16 v16, v0 │ + long-to-int v15, v0 │ │ .line 177 │ - .local v16, "offset":I │ - sub-int v20, v14, v16 │ + .local v15, "offset":I │ + sub-int v20, v13, v15 │ │ add-int/lit8 v20, v20, -0x1 │ │ const/16 v21, 0x2 │ │ aput v21, v4, v20 │ │ goto :goto_1 │ │ .line 180 │ - .end local v16 # "offset":I │ - .end local v17 # "rep":Lorg/isoron/uhabits/models/Repetition; │ + .end local v15 # "offset":I │ + .end local v16 # "rep":Lorg/isoron/uhabits/models/Repetition; │ :cond_2 │ const/4 v10, 0x0 │ │ .local v10, "i":I │ :goto_2 │ - if-ge v10, v13, :cond_6 │ + if-ge v10, v12, :cond_6 │ │ .line 182 │ const/4 v5, 0x0 │ │ .line 184 │ .local v5, "counter":I │ - const/4 v12, 0x0 │ + const/4 v11, 0x0 │ │ - .local v12, "j":I │ + .local v11, "j":I │ :goto_3 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/CheckmarkList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - move-object/from16 v0, v20 │ + move-object/from16 v0, v19 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/Habit;->freqDen:Ljava/lang/Integer; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - invoke-virtual/range {v20 .. v20}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual/range {v19 .. v19}, Ljava/lang/Integer;->intValue()I │ │ - move-result v20 │ + move-result v19 │ │ - move/from16 v0, v20 │ + move/from16 v0, v19 │ │ - if-ge v12, v0, :cond_4 │ + if-ge v11, v0, :cond_4 │ │ .line 185 │ - add-int v20, v10, v12 │ + add-int v19, v10, v11 │ │ - aget v20, v4, v20 │ + aget v19, v4, v19 │ │ - const/16 v21, 0x2 │ + const/16 v20, 0x2 │ │ - move/from16 v0, v20 │ + move/from16 v0, v19 │ │ - move/from16 v1, v21 │ + move/from16 v1, v20 │ │ if-ne v0, v1, :cond_3 │ │ add-int/lit8 v5, v5, 0x1 │ │ .line 184 │ :cond_3 │ - add-int/lit8 v12, v12, 0x1 │ + add-int/lit8 v11, v11, 0x1 │ │ goto :goto_3 │ │ .line 187 │ :cond_4 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/CheckmarkList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - move-object/from16 v0, v20 │ + move-object/from16 v0, v19 │ │ iget-object v0, v0, Lorg/isoron/uhabits/models/Habit;->freqNum:Ljava/lang/Integer; │ │ - move-object/from16 v20, v0 │ + move-object/from16 v19, v0 │ │ - invoke-virtual/range {v20 .. v20}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual/range {v19 .. v19}, Ljava/lang/Integer;->intValue()I │ │ - move-result v20 │ + move-result v19 │ │ - move/from16 v0, v20 │ + move/from16 v0, v19 │ │ if-lt v5, v0, :cond_5 │ │ .line 188 │ - aget v20, v4, v10 │ + aget v19, v4, v10 │ │ - const/16 v21, 0x2 │ + const/16 v20, 0x2 │ │ - move/from16 v0, v20 │ + move/from16 v0, v19 │ │ - move/from16 v1, v21 │ + move/from16 v1, v20 │ │ if-eq v0, v1, :cond_5 │ │ .line 189 │ - const/16 v20, 0x1 │ + const/16 v19, 0x1 │ │ - aput v20, v4, v10 │ + aput v19, v4, v10 │ │ .line 180 │ :cond_5 │ add-int/lit8 v10, v10, 0x1 │ │ goto :goto_2 │ │ .line 193 │ .end local v5 # "counter":I │ - .end local v12 # "j":I │ + .end local v11 # "j":I │ :cond_6 │ - new-array v0, v13, [J │ + new-array v0, v12, [J │ │ - move-object/from16 v19, v0 │ + move-object/from16 v18, v0 │ │ .line 194 │ - .local v19, "timestamps":[J │ + .local v18, "timestamps":[J │ const/4 v10, 0x0 │ │ :goto_4 │ - if-ge v10, v13, :cond_7 │ + if-ge v10, v12, :cond_7 │ │ .line 195 │ int-to-long v0, v10 │ │ move-wide/from16 v20, v0 │ │ mul-long v20, v20, v6 │ │ sub-long v20, p3, v20 │ │ - aput-wide v20, v19, v10 │ + aput-wide v20, v18, v10 │ │ .line 194 │ add-int/lit8 v10, v10, 0x1 │ │ goto :goto_4 │ │ .line 197 │ :cond_7 │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v19 │ + move-object/from16 v1, v18 │ │ invoke-direct {v0, v1, v4}, Lorg/isoron/uhabits/models/CheckmarkList;->insert([J[I)V │ │ goto/16 :goto_0 │ .end method │ │ .method protected computeAll()V │ @@ -527,38 +526,41 @@ │ │ const-string v1, "habit = ?" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/CheckmarkList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 59 │ invoke-virtual {v3}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v4 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp >= ?" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ + .line 60 │ invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v4 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->and(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 61 │ invoke-virtual {v0}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ │ .line 62 │ return-void │ .end method │ │ .method protected findNewest()Lorg/isoron/uhabits/models/Checkmark; │ @@ -584,28 +586,30 @@ │ │ const-string v1, "habit = ?" │ │ new-array v2, v6, [Ljava/lang/Object; │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/CheckmarkList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 237 │ invoke-virtual {v3}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v7 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp <= ?" │ │ new-array v2, v6, [Ljava/lang/Object; │ │ + .line 238 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfToday()J │ │ move-result-wide v4 │ │ invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v3 │ @@ -614,28 +618,32 @@ │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->and(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp desc" │ │ + .line 239 │ invoke-virtual {v0, v1}, Lcom/activeandroid/query/From;->orderBy(Ljava/lang/String;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 240 │ invoke-virtual {v0, v6}, Lcom/activeandroid/query/From;->limit(I)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 241 │ invoke-virtual {v0}, Lcom/activeandroid/query/From;->executeSingle()Lcom/activeandroid/Model; │ │ move-result-object v0 │ │ check-cast v0, Lorg/isoron/uhabits/models/Checkmark; │ │ + .line 236 │ return-object v0 │ .end method │ │ .method public getAllValues()[I │ .locals 8 │ .annotation build Landroid/support/annotation/NonNull; │ .end annotation │ @@ -805,14 +813,15 @@ │ │ move-result-object v12 │ │ aput-object v12, v0, v9 │ │ const/4 v9, 0x2 │ │ + .line 88 │ invoke-static/range {p3 .. p4}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v12 │ │ aput-object v12, v0, v9 │ │ .line 89 ├── smali/org/isoron/uhabits/models/RepetitionList.smali │ @@ -158,38 +158,41 @@ │ │ const-string v1, "habit = ?" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/RepetitionList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 85 │ invoke-virtual {v3}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v4 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp = ?" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ + .line 86 │ invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v4 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->and(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 87 │ invoke-virtual {v0}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ │ .line 88 │ return-void │ .end method │ │ .method public getOldest()Lorg/isoron/uhabits/models/Repetition; │ @@ -329,14 +332,15 @@ │ │ move-result-object v17 │ │ aput-object v17, v10, v16 │ │ const/16 v16, 0x1 │ │ + .line 167 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfToday()J │ │ move-result-wide v18 │ │ invoke-static/range {v18 .. v19}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v17 │ @@ -544,28 +548,30 @@ │ │ const-string v1, "habit = ?" │ │ new-array v2, v4, [Ljava/lang/Object; │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/RepetitionList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 54 │ invoke-virtual {v3}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v6 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp <= ?" │ │ new-array v2, v4, [Ljava/lang/Object; │ │ + .line 55 │ invoke-static {}, Lorg/isoron/uhabits/helpers/DateHelper;->getStartOfToday()J │ │ move-result-wide v4 │ │ invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v3 │ @@ -574,18 +580,20 @@ │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->and(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp" │ │ + .line 56 │ invoke-virtual {v0, v1}, Lcom/activeandroid/query/From;->orderBy(Ljava/lang/String;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 53 │ return-object v0 │ .end method │ │ .method protected selectFromTo(JJ)Lcom/activeandroid/query/From; │ .locals 7 │ .param p1, "timeFrom" # J │ .param p3, "timeTo" # J ├── smali/org/isoron/uhabits/models/ScoreList.smali │ @@ -734,14 +734,15 @@ │ │ move-result-object v9 │ │ aput-object v9, v5, v8 │ │ const/4 v8, 0x3 │ │ + .line 266 │ invoke-static {p1, p2}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v9 │ │ aput-object v9, v5, v8 │ │ const/4 v8, 0x4 │ @@ -851,38 +852,41 @@ │ │ const-string v1, "habit = ?" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/ScoreList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 75 │ invoke-virtual {v3}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v4 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp >= ?" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ + .line 76 │ invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v4 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->and(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 77 │ invoke-virtual {v0}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ │ .line 78 │ return-void │ .end method │ │ .method protected select()Lcom/activeandroid/query/From; │ @@ -892,44 +896,48 @@ │ .line 60 │ new-instance v0, Lcom/activeandroid/query/Select; │ │ invoke-direct {v0}, Lcom/activeandroid/query/Select;->()V │ │ const-class v1, Lorg/isoron/uhabits/models/Score; │ │ + .line 61 │ invoke-virtual {v0, v1}, Lcom/activeandroid/query/Select;->from(Ljava/lang/Class;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "habit = ?" │ │ const/4 v2, 0x1 │ │ new-array v2, v2, [Ljava/lang/Object; │ │ const/4 v3, 0x0 │ │ iget-object v4, p0, Lorg/isoron/uhabits/models/ScoreList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 62 │ invoke-virtual {v4}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "timestamp desc" │ │ + .line 63 │ invoke-virtual {v0, v1}, Lcom/activeandroid/query/From;->orderBy(Ljava/lang/String;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 60 │ return-object v0 │ .end method │ │ .method public writeCSV(Ljava/io/Writer;)V │ .locals 13 │ .param p1, "out" # Ljava/io/Writer; │ .annotation system Ldalvik/annotation/Throws; ├── smali/org/isoron/uhabits/models/StreakList.smali │ @@ -47,14 +47,15 @@ │ │ const-string v1, "habit = ?" │ │ new-array v2, v4, [Ljava/lang/Object; │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/StreakList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 156 │ invoke-virtual {v3}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v6 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ @@ -65,24 +66,26 @@ │ │ new-array v2, v4, [Ljava/lang/Object; │ │ sget-wide v4, Lorg/isoron/uhabits/helpers/DateHelper;->millisecondsInOneDay:J │ │ sub-long v4, p1, v4 │ │ + .line 157 │ invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v3 │ │ aput-object v3, v2, v6 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->and(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 158 │ invoke-virtual {v0}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ │ .line 159 │ return-void │ .end method │ │ .method public getAll(I)Ljava/util/List; │ @@ -135,14 +138,15 @@ │ │ move-result-object v7 │ │ aput-object v7, v2, v6 │ │ const/4 v6, 0x2 │ │ + .line 54 │ invoke-static {p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v7 │ │ aput-object v7, v2, v6 │ │ .line 56 │ @@ -238,40 +242,45 @@ │ │ new-array v2, v5, [Ljava/lang/Object; │ │ const/4 v3, 0x0 │ │ iget-object v4, p0, Lorg/isoron/uhabits/models/StreakList;->habit:Lorg/isoron/uhabits/models/Habit; │ │ + .line 82 │ invoke-virtual {v4}, Lorg/isoron/uhabits/models/Habit;->getId()Ljava/lang/Long; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/From;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ const-string v1, "end desc" │ │ + .line 83 │ invoke-virtual {v0, v1}, Lcom/activeandroid/query/From;->orderBy(Ljava/lang/String;)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 84 │ invoke-virtual {v0, v5}, Lcom/activeandroid/query/From;->limit(I)Lcom/activeandroid/query/From; │ │ move-result-object v0 │ │ + .line 85 │ invoke-virtual {v0}, Lcom/activeandroid/query/From;->executeSingle()Lcom/activeandroid/Model; │ │ move-result-object v0 │ │ check-cast v0, Lorg/isoron/uhabits/models/Streak; │ │ + .line 81 │ return-object v0 │ .end method │ │ .method public rebuild()V │ .locals 22 │ │ .prologue ├── smali/org/isoron/uhabits/models/Habit.smali │ @@ -465,17 +465,17 @@ │ .method public static rebuildOrder()V │ .locals 6 │ │ .prologue │ .line 312 │ invoke-static {}, Lorg/isoron/uhabits/models/Habit;->selectWithArchived()Lcom/activeandroid/query/From; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v5}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ + invoke-virtual {v4}, Lcom/activeandroid/query/From;->execute()Ljava/util/List; │ │ move-result-object v1 │ │ .line 314 │ .local v1, "habits":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {}, Lcom/activeandroid/ActiveAndroid;->beginTransaction()V │ │ @@ -487,15 +487,14 @@ │ :try_start_0 │ invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v4 │ │ - .local v4, "i$":Ljava/util/Iterator; │ move v3, v2 │ │ .end local v2 # "i":I │ .local v3, "i":I │ :goto_0 │ :try_start_1 │ invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ @@ -549,29 +548,27 @@ │ invoke-static {}, Lcom/activeandroid/ActiveAndroid;->endTransaction()V │ │ .line 331 │ return-void │ │ .line 328 │ .end local v3 # "i":I │ - .end local v4 # "i$":Ljava/util/Iterator; │ .restart local v2 # "i":I │ :catchall_0 │ - move-exception v5 │ + move-exception v4 │ │ :goto_1 │ invoke-static {}, Lcom/activeandroid/ActiveAndroid;->endTransaction()V │ │ - throw v5 │ + throw v4 │ │ .end local v2 # "i":I │ .restart local v3 # "i":I │ - .restart local v4 # "i$":Ljava/util/Iterator; │ :catchall_1 │ - move-exception v5 │ + move-exception v4 │ │ move v2, v3 │ │ .end local v3 # "i":I │ .restart local v2 # "i":I │ goto :goto_1 │ .end method │ @@ -632,18 +629,20 @@ │ │ aput-object v3, v2, v4 │ │ iget-object v3, p0, Lorg/isoron/uhabits/models/Habit;->position:Ljava/lang/Integer; │ │ aput-object v3, v2, v5 │ │ + .line 292 │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/Set;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/Set; │ │ move-result-object v0 │ │ + .line 293 │ invoke-virtual {v0}, Lcom/activeandroid/query/Set;->execute()V │ │ .line 302 │ :goto_1 │ iget-object v0, p1, Lorg/isoron/uhabits/models/Habit;->position:Ljava/lang/Integer; │ │ iput-object v0, p0, Lorg/isoron/uhabits/models/Habit;->position:Ljava/lang/Integer; │ @@ -675,18 +674,20 @@ │ │ aput-object v3, v2, v4 │ │ iget-object v3, p1, Lorg/isoron/uhabits/models/Habit;->position:Ljava/lang/Integer; │ │ aput-object v3, v2, v5 │ │ + .line 298 │ invoke-virtual {v0, v1, v2}, Lcom/activeandroid/query/Set;->where(Ljava/lang/String;[Ljava/lang/Object;)Lcom/activeandroid/query/Set; │ │ move-result-object v0 │ │ + .line 299 │ invoke-virtual {v0}, Lcom/activeandroid/query/Set;->execute()V │ │ goto :goto_1 │ .end method │ │ .method protected static select()Lcom/activeandroid/query/From; │ .locals 2 │ @@ -845,15 +846,14 @@ │ │ .line 415 │ :try_start_0 │ invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ @@ -881,24 +881,22 @@ │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ goto :goto_0 │ │ .line 426 │ .end local v0 # "h":Lorg/isoron/uhabits/models/Habit; │ - .end local v1 # "i$":Ljava/util/Iterator; │ :catchall_0 │ - move-exception v2 │ + move-exception v1 │ │ invoke-static {}, Lcom/activeandroid/ActiveAndroid;->endTransaction()V │ │ - throw v2 │ + throw v1 │ │ .line 422 │ - .restart local v1 # "i$":Ljava/util/Iterator; │ :cond_2 │ :try_start_1 │ invoke-static {}, Lcom/activeandroid/ActiveAndroid;->setTransactionSuccessful()V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ .line 426 │ @@ -982,43 +980,43 @@ │ const/4 v10, 0x2 │ │ const/4 v9, 0x1 │ │ const/4 v8, 0x0 │ │ .line 492 │ - const/4 v5, 0x6 │ + const/4 v4, 0x6 │ │ - new-array v3, v5, [Ljava/lang/String; │ + new-array v3, v4, [Ljava/lang/String; │ │ - const-string v5, "Position" │ + const-string v4, "Position" │ │ - aput-object v5, v3, v8 │ + aput-object v4, v3, v8 │ │ - const-string v5, "Name" │ + const-string v4, "Name" │ │ - aput-object v5, v3, v9 │ + aput-object v4, v3, v9 │ │ - const-string v5, "Description" │ + const-string v4, "Description" │ │ - aput-object v5, v3, v10 │ + aput-object v4, v3, v10 │ │ - const-string v5, "NumRepetitions" │ + const-string v4, "NumRepetitions" │ │ - aput-object v5, v3, v11 │ + aput-object v4, v3, v11 │ │ - const-string v5, "Interval" │ + const-string v4, "Interval" │ │ - aput-object v5, v3, v12 │ + aput-object v4, v3, v12 │ │ - const/4 v5, 0x5 │ + const/4 v4, 0x5 │ │ - const-string v6, "Color" │ + const-string v5, "Color" │ │ - aput-object v6, v3, v5 │ + aput-object v5, v3, v4 │ │ .line 494 │ .local v3, "header":[Ljava/lang/String; │ new-instance v1, Lcom/opencsv/CSVWriter; │ │ invoke-direct {v1, p1}, Lcom/opencsv/CSVWriter;->(Ljava/io/Writer;)V │ │ @@ -1027,15 +1025,14 @@ │ invoke-virtual {v1, v3, v8}, Lcom/opencsv/CSVWriter;->writeNext([Ljava/lang/String;Z)V │ │ .line 497 │ invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v4 │ │ - .local v4, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ @@ -1053,14 +1050,15 @@ │ │ const-string v5, "%03d" │ │ new-array v6, v9, [Ljava/lang/Object; │ │ iget-object v7, v2, Lorg/isoron/uhabits/models/Habit;->position:Ljava/lang/Integer; │ │ + .line 501 │ invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I │ │ move-result v7 │ │ add-int/lit8 v7, v7, 0x1 │ │ invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ @@ -1081,26 +1079,28 @@ │ │ iget-object v5, v2, Lorg/isoron/uhabits/models/Habit;->description:Ljava/lang/String; │ │ aput-object v5, v0, v10 │ │ iget-object v5, v2, Lorg/isoron/uhabits/models/Habit;->freqNum:Ljava/lang/Integer; │ │ + .line 504 │ invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I │ │ move-result v5 │ │ invoke-static {v5}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v0, v11 │ │ iget-object v5, v2, Lorg/isoron/uhabits/models/Habit;->freqDen:Ljava/lang/Integer; │ │ + .line 505 │ invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I │ │ move-result v5 │ │ invoke-static {v5}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v5 │ @@ -1109,14 +1109,15 @@ │ │ const/4 v5, 0x5 │ │ sget-object v6, Lorg/isoron/uhabits/helpers/ColorHelper;->CSV_PALETTE:[I │ │ iget-object v7, v2, Lorg/isoron/uhabits/models/Habit;->color:Ljava/lang/Integer; │ │ + .line 506 │ invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I │ │ move-result v7 │ │ aget v6, v6, v7 │ │ invoke-static {v6}, Lorg/isoron/uhabits/helpers/ColorHelper;->toHTML(I)Ljava/lang/String; ├── smali/org/isoron/uhabits/views/CheckmarkWidgetView.smali │ @@ -422,14 +422,15 @@ │ .restart local v3 # "text":Ljava/lang/String; │ iget v0, p0, Lorg/isoron/uhabits/views/CheckmarkWidgetView;->activeColor:I │ │ .line 101 │ .restart local v0 # "backgroundColor":I │ const v4, 0x7f010008 │ │ + .line 102 │ invoke-static {v1, v4}, Lorg/isoron/uhabits/helpers/UIHelper;->getStyledColor(Landroid/content/Context;I)I │ │ move-result v2 │ │ .line 104 │ .restart local v2 # "foregroundColor":I │ const/16 v4, 0x4f ├── smali/org/isoron/uhabits/views/HabitFrequencyView.smali │ @@ -448,30 +448,30 @@ │ .method private drawGrid(Landroid/graphics/Canvas;Landroid/graphics/RectF;)V │ .locals 12 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ .param p2, "rGrid" # Landroid/graphics/RectF; │ │ .prologue │ .line 275 │ - const/4 v10, 0x7 │ + const/4 v7, 0x7 │ │ .line 276 │ - .local v10, "nRows":I │ + .local v7, "nRows":I │ invoke-virtual {p2}, Landroid/graphics/RectF;->height()F │ │ move-result v0 │ │ const/16 v1, 0x8 │ │ int-to-float v1, v1 │ │ - div-float v11, v0, v1 │ + div-float v8, v0, v1 │ │ .line 278 │ - .local v11, "rowHeight":F │ + .local v8, "rowHeight":F │ iget-object v0, p0, Lorg/isoron/uhabits/views/HabitFrequencyView;->pText:Landroid/graphics/Paint; │ │ sget-object v1, Landroid/graphics/Paint$Align;->LEFT:Landroid/graphics/Paint$Align; │ │ invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V │ │ .line 279 │ @@ -489,55 +489,54 @@ │ invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V │ │ .line 282 │ const/4 v0, 0x1 │ │ invoke-static {v0}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocaleDayNames(I)[Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v10 │ │ - .local v6, "arr$":[Ljava/lang/String; │ - array-length v9, v6 │ + array-length v11, v10 │ │ - .local v9, "len$":I │ - const/4 v8, 0x0 │ + const/4 v0, 0x0 │ + │ + move v9, v0 │ │ - .local v8, "i$":I │ :goto_0 │ - if-ge v8, v9, :cond_0 │ + if-ge v9, v11, :cond_0 │ │ - aget-object v7, v6, v8 │ + aget-object v6, v10, v9 │ │ .line 283 │ - .local v7, "day":Ljava/lang/String; │ + .local v6, "day":Ljava/lang/String; │ iget v0, p2, Landroid/graphics/RectF;->right:F │ │ iget v1, p0, Lorg/isoron/uhabits/views/HabitFrequencyView;->columnWidth:F │ │ sub-float/2addr v0, v1 │ │ iget v1, p2, Landroid/graphics/RectF;->top:F │ │ const/high16 v2, 0x40000000 # 2.0f │ │ - div-float v2, v11, v2 │ + div-float v2, v8, v2 │ │ add-float/2addr v1, v2 │ │ const/high16 v2, 0x3e800000 # 0.25f │ │ iget v3, p0, Lorg/isoron/uhabits/views/HabitFrequencyView;->em:F │ │ mul-float/2addr v2, v3 │ │ add-float/2addr v1, v2 │ │ iget-object v2, p0, Lorg/isoron/uhabits/views/HabitFrequencyView;->pText:Landroid/graphics/Paint; │ │ - invoke-virtual {p1, v7, v0, v1, v2}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V │ + invoke-virtual {p1, v6, v0, v1, v2}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V │ │ .line 286 │ iget-object v0, p0, Lorg/isoron/uhabits/views/HabitFrequencyView;->pGrid:Landroid/graphics/Paint; │ │ const/high16 v1, 0x3f800000 # 1.0f │ │ invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V │ @@ -556,23 +555,25 @@ │ move-object v0, p1 │ │ invoke-virtual/range {v0 .. v5}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V │ │ .line 289 │ const/4 v0, 0x0 │ │ - invoke-virtual {p2, v0, v11}, Landroid/graphics/RectF;->offset(FF)V │ + invoke-virtual {p2, v0, v8}, Landroid/graphics/RectF;->offset(FF)V │ │ .line 282 │ - add-int/lit8 v8, v8, 0x1 │ + add-int/lit8 v0, v9, 0x1 │ + │ + move v9, v0 │ │ goto :goto_0 │ │ .line 292 │ - .end local v7 # "day":Ljava/lang/String; │ + .end local v6 # "day":Ljava/lang/String; │ :cond_0 │ iget v1, p2, Landroid/graphics/RectF;->left:F │ │ iget v2, p2, Landroid/graphics/RectF;->top:F │ │ iget v3, p2, Landroid/graphics/RectF;->right:F ├── smali/org/isoron/uhabits/views/HabitHistoryView$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/isoron/uhabits/views/HabitHistoryView; │ │ │ # direct methods │ .method constructor (Lorg/isoron/uhabits/views/HabitHistoryView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/isoron/uhabits/views/HabitHistoryView; │ │ .prologue │ .line 397 │ iput-object p1, p0, Lorg/isoron/uhabits/views/HabitHistoryView$1;->this$0:Lorg/isoron/uhabits/views/HabitHistoryView; │ │ invoke-direct {p0}, Lorg/isoron/uhabits/tasks/BaseTask;->()V ├── smali/org/isoron/uhabits/views/HabitHistoryView.smali │ @@ -307,76 +307,75 @@ │ .method private drawAxis(Landroid/graphics/Canvas;Landroid/graphics/RectF;)V │ .locals 8 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ .param p2, "location" # Landroid/graphics/RectF; │ │ .prologue │ .line 305 │ - iget-object v5, p0, Lorg/isoron/uhabits/views/HabitHistoryView;->pTextHeader:Landroid/graphics/Paint; │ + iget-object v2, p0, Lorg/isoron/uhabits/views/HabitHistoryView;->pTextHeader:Landroid/graphics/Paint; │ │ - invoke-virtual {v5}, Landroid/graphics/Paint;->getFontSpacing()F │ + invoke-virtual {v2}, Landroid/graphics/Paint;->getFontSpacing()F │ │ - move-result v5 │ + move-result v2 │ │ - const v6, 0x3ecccccd # 0.4f │ + const v3, 0x3ecccccd # 0.4f │ │ - mul-float v4, v5, v6 │ + mul-float v1, v2, v3 │ │ .line 307 │ - .local v4, "verticalOffset":F │ - const/4 v5, 0x1 │ + .local v1, "verticalOffset":F │ + const/4 v2, 0x1 │ │ - invoke-static {v5}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocaleDayNames(I)[Ljava/lang/String; │ + invoke-static {v2}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocaleDayNames(I)[Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v3, v0 │ + array-length v4, v3 │ │ - .local v3, "len$":I │ const/4 v2, 0x0 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v3, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v1, v0, v2 │ + aget-object v0, v3, v2 │ │ .line 309 │ - .local v1, "day":Ljava/lang/String; │ + .local v0, "day":Ljava/lang/String; │ const/4 v5, 0x0 │ │ iget v6, p0, Lorg/isoron/uhabits/views/HabitHistoryView;->columnWidth:F │ │ invoke-virtual {p2, v5, v6}, Landroid/graphics/RectF;->offset(FF)V │ │ .line 310 │ iget v5, p2, Landroid/graphics/RectF;->left:F │ │ iget v6, p0, Lorg/isoron/uhabits/views/HabitHistoryView;->headerTextOffset:F │ │ add-float/2addr v5, v6 │ │ + .line 311 │ invoke-virtual {p2}, Landroid/graphics/RectF;->centerY()F │ │ move-result v6 │ │ - add-float/2addr v6, v4 │ + add-float/2addr v6, v1 │ │ iget-object v7, p0, Lorg/isoron/uhabits/views/HabitHistoryView;->pTextHeader:Landroid/graphics/Paint; │ │ - invoke-virtual {p1, v1, v5, v6, v7}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V │ + .line 310 │ + invoke-virtual {p1, v0, v5, v6, v7}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V │ │ .line 307 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 313 │ - .end local v1 # "day":Ljava/lang/String; │ + .end local v0 # "day":Ljava/lang/String; │ :cond_0 │ return-void │ .end method │ │ .method private drawColumn(Landroid/graphics/Canvas;Landroid/graphics/RectF;Ljava/util/GregorianCalendar;I)V │ .locals 5 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ @@ -813,57 +812,54 @@ │ .end method │ │ .method private getWeekdayLabelWidth()F │ .locals 6 │ │ .prologue │ .line 158 │ - const/4 v4, 0x0 │ + const/4 v1, 0x0 │ │ .line 160 │ - .local v4, "width":F │ - const/4 v5, 0x1 │ + .local v1, "width":F │ + const/4 v2, 0x1 │ │ - invoke-static {v5}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocaleDayNames(I)[Ljava/lang/String; │ + invoke-static {v2}, Lorg/isoron/uhabits/helpers/DateHelper;->getLocaleDayNames(I)[Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v2, v0 │ + array-length v4, v3 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v3, v0, v1 │ + aget-object v0, v3, v2 │ │ .line 161 │ - .local v3, "w":Ljava/lang/String; │ + .local v0, "w":Ljava/lang/String; │ iget-object v5, p0, Lorg/isoron/uhabits/views/HabitHistoryView;->pSquareFg:Landroid/graphics/Paint; │ │ - invoke-virtual {v5, v3}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F │ + invoke-virtual {v5, v0}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F │ │ move-result v5 │ │ - invoke-static {v4, v5}, Ljava/lang/Math;->max(FF)F │ + invoke-static {v1, v5}, Ljava/lang/Math;->max(FF)F │ │ - move-result v4 │ + move-result v1 │ │ .line 160 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 163 │ - .end local v3 # "w":Ljava/lang/String; │ + .end local v0 # "w":Ljava/lang/String; │ :cond_0 │ - return v4 │ + return v1 │ .end method │ │ .method private init()V │ .locals 2 │ │ .prologue │ const/4 v0, 0x0 │ @@ -1553,14 +1549,15 @@ │ │ invoke-direct {v0, p0}, Lorg/isoron/uhabits/views/HabitHistoryView$1;->(Lorg/isoron/uhabits/views/HabitHistoryView;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 410 │ invoke-virtual {v0, v1}, Lorg/isoron/uhabits/views/HabitHistoryView$1;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 411 │ return-void │ .end method │ │ .method public refreshData()V ├── smali/org/isoron/uhabits/views/HabitStreakView.smali │ @@ -753,59 +753,58 @@ │ │ .line 176 │ const-wide v4, 0x7fffffffffffffffL │ │ iput-wide v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->minLength:J │ │ .line 177 │ - const/4 v4, 0x1 │ + const/4 v3, 0x1 │ │ - iput-boolean v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->shouldShowLabels:Z │ + iput-boolean v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->shouldShowLabels:Z │ │ .line 179 │ - iget-object v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->streaks:Ljava/util/List; │ + iget-object v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->streaks:Ljava/util/List; │ │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lorg/isoron/uhabits/models/Streak; │ + check-cast v2, Lorg/isoron/uhabits/models/Streak; │ │ .line 181 │ - .local v3, "s":Lorg/isoron/uhabits/models/Streak; │ + .local v2, "s":Lorg/isoron/uhabits/models/Streak; │ iget-wide v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLength:J │ │ - iget-object v6, v3, Lorg/isoron/uhabits/models/Streak;->length:Ljava/lang/Long; │ + iget-object v6, v2, Lorg/isoron/uhabits/models/Streak;->length:Ljava/lang/Long; │ │ invoke-virtual {v6}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v6 │ │ invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->max(JJ)J │ │ move-result-wide v4 │ │ iput-wide v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLength:J │ │ .line 182 │ iget-wide v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->minLength:J │ │ - iget-object v6, v3, Lorg/isoron/uhabits/models/Streak;->length:Ljava/lang/Long; │ + iget-object v6, v2, Lorg/isoron/uhabits/models/Streak;->length:Ljava/lang/Long; │ │ invoke-virtual {v6}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v6 │ │ invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->min(JJ)J │ │ @@ -816,108 +815,108 @@ │ .line 184 │ iget-object v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->paint:Landroid/graphics/Paint; │ │ iget-object v5, p0, Lorg/isoron/uhabits/views/HabitStreakView;->dateFormat:Ljava/text/DateFormat; │ │ new-instance v6, Ljava/util/Date; │ │ - iget-object v7, v3, Lorg/isoron/uhabits/models/Streak;->start:Ljava/lang/Long; │ + iget-object v7, v2, Lorg/isoron/uhabits/models/Streak;->start:Ljava/lang/Long; │ │ invoke-virtual {v7}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v8 │ │ invoke-direct {v6, v8, v9}, Ljava/util/Date;->(J)V │ │ invoke-virtual {v5, v6}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F │ │ - move-result v1 │ + move-result v0 │ │ .line 185 │ - .local v1, "lw1":F │ + .local v0, "lw1":F │ iget-object v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->paint:Landroid/graphics/Paint; │ │ iget-object v5, p0, Lorg/isoron/uhabits/views/HabitStreakView;->dateFormat:Ljava/text/DateFormat; │ │ new-instance v6, Ljava/util/Date; │ │ - iget-object v7, v3, Lorg/isoron/uhabits/models/Streak;->end:Ljava/lang/Long; │ + iget-object v7, v2, Lorg/isoron/uhabits/models/Streak;->end:Ljava/lang/Long; │ │ invoke-virtual {v7}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v8 │ │ invoke-direct {v6, v8, v9}, Ljava/util/Date;->(J)V │ │ invoke-virtual {v5, v6}, Ljava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F │ │ - move-result v2 │ + move-result v1 │ │ .line 186 │ - .local v2, "lw2":F │ + .local v1, "lw2":F │ iget v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLabelWidth:F │ │ - invoke-static {v1, v2}, Ljava/lang/Math;->max(FF)F │ + invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F │ │ move-result v5 │ │ invoke-static {v4, v5}, Ljava/lang/Math;->max(FF)F │ │ move-result v4 │ │ iput v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLabelWidth:F │ │ goto :goto_0 │ │ .line 189 │ - .end local v1 # "lw1":F │ - .end local v2 # "lw2":F │ - .end local v3 # "s":Lorg/isoron/uhabits/models/Streak; │ + .end local v0 # "lw1":F │ + .end local v1 # "lw2":F │ + .end local v2 # "s":Lorg/isoron/uhabits/models/Streak; │ :cond_0 │ - iget v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->width:I │ + iget v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->width:I │ │ - int-to-float v4, v4 │ + int-to-float v3, v3 │ │ - const/high16 v5, 0x40000000 # 2.0f │ + const/high16 v4, 0x40000000 # 2.0f │ │ - iget v6, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLabelWidth:F │ + iget v5, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLabelWidth:F │ │ - mul-float/2addr v5, v6 │ + mul-float/2addr v4, v5 │ │ - sub-float/2addr v4, v5 │ + sub-float/2addr v3, v4 │ │ - iget v5, p0, Lorg/isoron/uhabits/views/HabitStreakView;->width:I │ + iget v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->width:I │ │ - int-to-float v5, v5 │ + int-to-float v4, v4 │ │ - const/high16 v6, 0x3e800000 # 0.25f │ + const/high16 v5, 0x3e800000 # 0.25f │ │ - mul-float/2addr v5, v6 │ + mul-float/2addr v4, v5 │ │ - cmpg-float v4, v4, v5 │ + cmpg-float v3, v3, v4 │ │ - if-gez v4, :cond_1 │ + if-gez v3, :cond_1 │ │ .line 191 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ - iput v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLabelWidth:F │ + iput v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->maxLabelWidth:F │ │ .line 192 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ - iput-boolean v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->shouldShowLabels:Z │ + iput-boolean v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->shouldShowLabels:Z │ │ .line 194 │ :cond_1 │ return-void │ .end method │ │ │ @@ -948,85 +947,84 @@ │ invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setAntiAlias(Z)V │ │ .line 148 │ return-void │ .end method │ │ .method protected onDraw(Landroid/graphics/Canvas;)V │ - .locals 6 │ + .locals 5 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ │ .prologue │ - const/4 v5, 0x0 │ + const/4 v4, 0x0 │ │ .line 161 │ invoke-super {p0, p1}, Landroid/view/View;->onDraw(Landroid/graphics/Canvas;)V │ │ .line 162 │ - iget-object v2, p0, Lorg/isoron/uhabits/views/HabitStreakView;->streaks:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/views/HabitStreakView;->streaks:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->size()I │ + invoke-interface {v1}, Ljava/util/List;->size()I │ │ - move-result v2 │ + move-result v1 │ │ - if-nez v2, :cond_1 │ + if-nez v1, :cond_1 │ │ .line 171 │ :cond_0 │ return-void │ │ .line 164 │ :cond_1 │ - iget-object v2, p0, Lorg/isoron/uhabits/views/HabitStreakView;->rect:Landroid/graphics/RectF; │ + iget-object v1, p0, Lorg/isoron/uhabits/views/HabitStreakView;->rect:Landroid/graphics/RectF; │ │ - iget v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->width:I │ + iget v2, p0, Lorg/isoron/uhabits/views/HabitStreakView;->width:I │ │ - int-to-float v3, v3 │ + int-to-float v2, v2 │ │ - iget v4, p0, Lorg/isoron/uhabits/views/HabitStreakView;->baseSize:I │ + iget v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->baseSize:I │ │ - int-to-float v4, v4 │ + int-to-float v3, v3 │ │ - invoke-virtual {v2, v5, v5, v3, v4}, Landroid/graphics/RectF;->set(FFFF)V │ + invoke-virtual {v1, v4, v4, v2, v3}, Landroid/graphics/RectF;->set(FFFF)V │ │ .line 166 │ - iget-object v2, p0, Lorg/isoron/uhabits/views/HabitStreakView;->streaks:Ljava/util/List; │ + iget-object v1, p0, Lorg/isoron/uhabits/views/HabitStreakView;->streaks:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/isoron/uhabits/models/Streak; │ + check-cast v0, Lorg/isoron/uhabits/models/Streak; │ │ .line 168 │ - .local v1, "s":Lorg/isoron/uhabits/models/Streak; │ + .local v0, "s":Lorg/isoron/uhabits/models/Streak; │ iget-object v2, p0, Lorg/isoron/uhabits/views/HabitStreakView;->rect:Landroid/graphics/RectF; │ │ - invoke-direct {p0, p1, v1, v2}, Lorg/isoron/uhabits/views/HabitStreakView;->drawRow(Landroid/graphics/Canvas;Lorg/isoron/uhabits/models/Streak;Landroid/graphics/RectF;)V │ + invoke-direct {p0, p1, v0, v2}, Lorg/isoron/uhabits/views/HabitStreakView;->drawRow(Landroid/graphics/Canvas;Lorg/isoron/uhabits/models/Streak;Landroid/graphics/RectF;)V │ │ .line 169 │ iget-object v2, p0, Lorg/isoron/uhabits/views/HabitStreakView;->rect:Landroid/graphics/RectF; │ │ iget v3, p0, Lorg/isoron/uhabits/views/HabitStreakView;->baseSize:I │ │ int-to-float v3, v3 │ │ - invoke-virtual {v2, v5, v3}, Landroid/graphics/RectF;->offset(FF)V │ + invoke-virtual {v2, v4, v3}, Landroid/graphics/RectF;->offset(FF)V │ │ goto :goto_0 │ .end method │ │ .method protected onMeasure(II)V │ .locals 2 │ .param p1, "widthMeasureSpec" # I ├── smali/org/isoron/uhabits/views/HabitWidgetView.smali │ @@ -126,14 +126,15 @@ │ │ .line 84 │ .local v7, "context":Landroid/content/Context; │ const/high16 v0, 0x437f0000 # 255.0f │ │ const v3, 0x7f01001c │ │ + .line 85 │ invoke-static {v7, v3}, Lorg/isoron/uhabits/helpers/UIHelper;->getStyledFloat(Landroid/content/Context;I)F │ │ move-result v3 │ │ mul-float/2addr v0, v3 │ │ float-to-int v6, v0 ├── smali/org/isoron/uhabits/views/NumberView.smali │ @@ -103,22 +103,24 @@ │ move-result v0 │ │ iput v0, p0, Lorg/isoron/uhabits/views/NumberView;->number:I │ │ .line 71 │ const-string v0, "textSize" │ │ + .line 72 │ invoke-virtual {p0}, Lorg/isoron/uhabits/views/NumberView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v1 │ │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimension(I)F │ │ move-result v1 │ │ + .line 71 │ invoke-static {p1, p2, v0, v1}, Lorg/isoron/uhabits/helpers/UIHelper;->getFloatAttribute(Landroid/content/Context;Landroid/util/AttributeSet;Ljava/lang/String;F)F │ │ move-result v0 │ │ iput v0, p0, Lorg/isoron/uhabits/views/NumberView;->textSize:F │ │ .line 74 ├── smali/org/isoron/uhabits/views/RepetitionCountView.smali │ @@ -40,24 +40,26 @@ │ │ move-result v1 │ │ .line 44 │ .local v1, "labelValue":I │ const-string v2, "labelFormat" │ │ + .line 45 │ invoke-virtual {p0}, Lorg/isoron/uhabits/views/RepetitionCountView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v3 │ │ const v4, 0x7f07005b │ │ invoke-virtual {v3, v4}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 44 │ invoke-static {p1, p2, v2, v3}, Lorg/isoron/uhabits/helpers/UIHelper;->getAttribute(Landroid/content/Context;Landroid/util/AttributeSet;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 47 │ .local v0, "labelFormat":Ljava/lang/String; │ const/4 v2, 0x1 ├── smali/org/isoron/uhabits/widgets/BaseWidgetProvider.smali │ @@ -2,30 +2,28 @@ │ .super Landroid/appwidget/AppWidgetProvider; │ .source "BaseWidgetProvider.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/isoron/uhabits/widgets/BaseWidgetProvider$1;, │ Lorg/isoron/uhabits/widgets/BaseWidgetProvider$RenderWidgetTask;, │ Lorg/isoron/uhabits/widgets/BaseWidgetProvider$WidgetDimensions; │ } │ .end annotation │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 46 │ invoke-direct {p0}, Landroid/appwidget/AppWidgetProvider;->()V │ │ - .line 212 │ return-void │ .end method │ │ .method static synthetic access$100(Lorg/isoron/uhabits/widgets/BaseWidgetProvider;Landroid/content/Context;IILandroid/view/View;)V │ .locals 0 │ .param p0, "x0" # Lorg/isoron/uhabits/widgets/BaseWidgetProvider; │ .param p1, "x1" # Landroid/content/Context; │ @@ -220,65 +218,73 @@ │ const/16 v6, 0x10 │ │ if-lt v5, v6, :cond_0 │ │ .line 173 │ const-string v5, "appWidgetMaxWidth" │ │ + .line 174 │ invoke-virtual {p2, v5}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I │ │ move-result v5 │ │ int-to-float v5, v5 │ │ + .line 173 │ invoke-static {p1, v5}, Lorg/isoron/uhabits/helpers/UIHelper;->dpToPixels(Landroid/content/Context;F)F │ │ move-result v5 │ │ float-to-int v1, v5 │ │ .line 175 │ const-string v5, "appWidgetMaxHeight" │ │ + .line 176 │ invoke-virtual {p2, v5}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I │ │ move-result v5 │ │ int-to-float v5, v5 │ │ + .line 175 │ invoke-static {p1, v5}, Lorg/isoron/uhabits/helpers/UIHelper;->dpToPixels(Landroid/content/Context;F)F │ │ move-result v5 │ │ float-to-int v0, v5 │ │ .line 177 │ const-string v5, "appWidgetMinWidth" │ │ + .line 178 │ invoke-virtual {p2, v5}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I │ │ move-result v5 │ │ int-to-float v5, v5 │ │ + .line 177 │ invoke-static {p1, v5}, Lorg/isoron/uhabits/helpers/UIHelper;->dpToPixels(Landroid/content/Context;F)F │ │ move-result v5 │ │ float-to-int v3, v5 │ │ .line 179 │ const-string v5, "appWidgetMinHeight" │ │ + .line 180 │ invoke-virtual {p2, v5}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I │ │ move-result v5 │ │ int-to-float v5, v5 │ │ + .line 179 │ invoke-static {p1, v5}, Lorg/isoron/uhabits/helpers/UIHelper;->dpToPixels(Landroid/content/Context;F)F │ │ move-result v5 │ │ float-to-int v2, v5 │ │ .line 183 │ @@ -738,133 +744,123 @@ │ invoke-direct {p0, p1, p2, p3, p4}, Lorg/isoron/uhabits/widgets/BaseWidgetProvider;->updateWidget(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;ILandroid/os/Bundle;)V │ │ .line 84 │ return-void │ .end method │ │ .method public onDeleted(Landroid/content/Context;[I)V │ - .locals 10 │ + .locals 8 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "appWidgetIds" # [I │ │ .prologue │ .line 72 │ invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; │ │ move-result-object v0 │ │ .line 73 │ .local v0, "appContext":Landroid/content/Context; │ invoke-static {v0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 75 │ - .local v5, "prefs":Landroid/content/SharedPreferences; │ - move-object v1, p2 │ - │ - .local v1, "arr$":[I │ - array-length v4, v1 │ + .local v2, "prefs":Landroid/content/SharedPreferences; │ + array-length v4, p2 │ │ - .local v4, "len$":I │ - const/4 v2, 0x0 │ + const/4 v3, 0x0 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v4, :cond_0 │ + if-ge v3, v4, :cond_0 │ │ - aget v6, v1, v2 │ + aget v5, p2, v3 │ │ - invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v3 │ + move-result-object v1 │ │ .line 76 │ - .local v3, "id":Ljava/lang/Integer; │ - invoke-interface {v5}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ + .local v1, "id":Ljava/lang/Integer; │ + invoke-interface {v2}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I │ + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I │ │ - move-result v7 │ + move-result v6 │ │ - int-to-long v8, v7 │ + int-to-long v6, v6 │ │ - invoke-static {v8, v9}, Lorg/isoron/uhabits/widgets/BaseWidgetProvider;->getHabitIdKey(J)Ljava/lang/String; │ + invoke-static {v6, v7}, Lorg/isoron/uhabits/widgets/BaseWidgetProvider;->getHabitIdKey(J)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-interface {v6, v7}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ + invoke-interface {v5, v6}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-interface {v6}, Landroid/content/SharedPreferences$Editor;->apply()V │ + invoke-interface {v5}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 75 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 77 │ - .end local v3 # "id":Ljava/lang/Integer; │ + .end local v1 # "id":Ljava/lang/Integer; │ :cond_0 │ return-void │ .end method │ │ .method public onUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[I)V │ - .locals 7 │ + .locals 6 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "manager" # Landroid/appwidget/AppWidgetManager; │ .param p3, "appWidgetIds" # [I │ │ .prologue │ .line 89 │ - move-object v0, p3 │ - │ - .local v0, "arr$":[I │ - array-length v3, v0 │ + array-length v3, p3 │ │ - .local v3, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v3, :cond_1 │ + if-ge v2, v3, :cond_1 │ │ - aget v2, v0, v1 │ + aget v0, p3, v2 │ │ .line 91 │ - .local v2, "id":I │ - const/4 v4, 0x0 │ + .local v0, "id":I │ + const/4 v1, 0x0 │ │ .line 93 │ - .local v4, "options":Landroid/os/Bundle; │ - sget v5, Landroid/os/Build$VERSION;->SDK_INT:I │ + .local v1, "options":Landroid/os/Bundle; │ + sget v4, Landroid/os/Build$VERSION;->SDK_INT:I │ │ - const/16 v6, 0x10 │ + const/16 v5, 0x10 │ │ - if-lt v5, v6, :cond_0 │ + if-lt v4, v5, :cond_0 │ │ .line 94 │ - invoke-virtual {p2, v2}, Landroid/appwidget/AppWidgetManager;->getAppWidgetOptions(I)Landroid/os/Bundle; │ + invoke-virtual {p2, v0}, Landroid/appwidget/AppWidgetManager;->getAppWidgetOptions(I)Landroid/os/Bundle; │ │ - move-result-object v4 │ + move-result-object v1 │ │ .line 96 │ :cond_0 │ - invoke-direct {p0, p1, p2, v2, v4}, Lorg/isoron/uhabits/widgets/BaseWidgetProvider;->updateWidget(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;ILandroid/os/Bundle;)V │ + invoke-direct {p0, p1, p2, v0, v1}, Lorg/isoron/uhabits/widgets/BaseWidgetProvider;->updateWidget(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;ILandroid/os/Bundle;)V │ │ .line 89 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 98 │ - .end local v2 # "id":I │ - .end local v4 # "options":Landroid/os/Bundle; │ + .end local v0 # "id":I │ + .end local v1 # "options":Landroid/os/Bundle; │ :cond_1 │ return-void │ .end method │ │ .method protected abstract refreshCustomViewData(Landroid/view/View;)V │ .end method ├── smali/org/isoron/uhabits/widgets/HabitPickerDialog.smali │ @@ -35,95 +35,94 @@ │ │ # virtual methods │ .method protected onCreate(Landroid/os/Bundle;)V │ .locals 10 │ .param p1, "savedInstanceState" # Landroid/os/Bundle; │ │ .prologue │ - const/4 v9, 0x0 │ + const/4 v8, 0x0 │ │ .line 50 │ invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V │ │ .line 51 │ - const v8, 0x7f040057 │ + const v7, 0x7f040057 │ │ - invoke-virtual {p0, v8}, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->setContentView(I)V │ + invoke-virtual {p0, v7}, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->setContentView(I)V │ │ .line 53 │ invoke-virtual {p0}, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->getIntent()Landroid/content/Intent; │ │ - move-result-object v6 │ + move-result-object v5 │ │ .line 54 │ - .local v6, "intent":Landroid/content/Intent; │ - invoke-virtual {v6}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle; │ + .local v5, "intent":Landroid/content/Intent; │ + invoke-virtual {v5}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle; │ │ move-result-object v1 │ │ .line 56 │ .local v1, "extras":Landroid/os/Bundle; │ if-eqz v1, :cond_0 │ │ - const-string v8, "appWidgetId" │ + const-string v7, "appWidgetId" │ │ - invoke-virtual {v1, v8, v9}, Landroid/os/Bundle;->getInt(Ljava/lang/String;I)I │ + invoke-virtual {v1, v7, v8}, Landroid/os/Bundle;->getInt(Ljava/lang/String;I)I │ │ - move-result v8 │ + move-result v7 │ │ - invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - iput-object v8, p0, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->widgetId:Ljava/lang/Integer; │ + iput-object v7, p0, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->widgetId:Ljava/lang/Integer; │ │ .line 59 │ :cond_0 │ - const v8, 0x7f0e00aa │ + const v7, 0x7f0e00aa │ │ - invoke-virtual {p0, v8}, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v7}, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->findViewById(I)Landroid/view/View; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - check-cast v7, Landroid/widget/ListView; │ + check-cast v6, Landroid/widget/ListView; │ │ .line 61 │ - .local v7, "listView":Landroid/widget/ListView; │ - new-instance v8, Ljava/util/ArrayList; │ + .local v6, "listView":Landroid/widget/ListView; │ + new-instance v7, Ljava/util/ArrayList; │ │ - invoke-direct {v8}, Ljava/util/ArrayList;->()V │ + invoke-direct {v7}, Ljava/util/ArrayList;->()V │ │ - iput-object v8, p0, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->habitIds:Ljava/util/ArrayList; │ + iput-object v7, p0, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->habitIds:Ljava/util/ArrayList; │ │ .line 62 │ new-instance v3, Ljava/util/ArrayList; │ │ invoke-direct {v3}, Ljava/util/ArrayList;->()V │ │ .line 64 │ .local v3, "habitNames":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - invoke-static {v9}, Lorg/isoron/uhabits/models/Habit;->getAll(Z)Ljava/util/List; │ + invoke-static {v8}, Lorg/isoron/uhabits/models/Habit;->getAll(Z)Ljava/util/List; │ │ move-result-object v4 │ │ .line 65 │ .local v4, "habits":Ljava/util/List;, "Ljava/util/List;" │ invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v5 │ + move-result-object v7 │ │ - .local v5, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v8 │ │ if-eqz v8, :cond_1 │ │ - invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/isoron/uhabits/models/Habit; │ │ .line 67 │ .local v2, "h":Lorg/isoron/uhabits/models/Habit; │ @@ -143,24 +142,24 @@ │ goto :goto_0 │ │ .line 71 │ .end local v2 # "h":Lorg/isoron/uhabits/models/Habit; │ :cond_1 │ new-instance v0, Landroid/widget/ArrayAdapter; │ │ - const v8, 0x1090003 │ + const v7, 0x1090003 │ │ - invoke-direct {v0, p0, v8, v3}, Landroid/widget/ArrayAdapter;->(Landroid/content/Context;ILjava/util/List;)V │ + invoke-direct {v0, p0, v7, v3}, Landroid/widget/ArrayAdapter;->(Landroid/content/Context;ILjava/util/List;)V │ │ .line 73 │ .local v0, "adapter":Landroid/widget/ArrayAdapter;, "Landroid/widget/ArrayAdapter;" │ - invoke-virtual {v7, v0}, Landroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V │ + invoke-virtual {v6, v0}, Landroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V │ │ .line 74 │ - invoke-virtual {v7, p0}, Landroid/widget/ListView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V │ + invoke-virtual {v6, p0}, Landroid/widget/ListView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V │ │ .line 75 │ return-void │ .end method │ │ .method public onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V │ .locals 8 │ @@ -184,20 +183,21 @@ │ │ invoke-virtual {v3, p3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Long; │ │ - .line 81 │ + .line 82 │ .local v0, "habitId":Ljava/lang/Long; │ invoke-virtual {p0}, Lorg/isoron/uhabits/widgets/HabitPickerDialog;->getApplicationContext()Landroid/content/Context; │ │ move-result-object v3 │ │ + .line 81 │ invoke-static {v3}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ move-result-object v1 │ │ .line 83 │ .local v1, "prefs":Landroid/content/SharedPreferences; │ invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;