98.5 MB
/home/fdroid/fdroiddata/tmp/naman14.timber_14.apk vs.
/home/fdroid/fdroiddata/tmp/sigcp_naman14.timber_14.apk
1.72 KB
/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}
error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): DOES NOT VERIFY ERROR: META-INF/buildserverid entry referenced by META-INF/MANIFEST.MF not found in the APK ERROR: META-INF/fdroidserverid entry referenced by META-INF/MANIFEST.MF not found in the APK
    
Offset 1, 18 lines modifiedOffset 0, 0 lines modified
1 Verifies 
2 Verified·using·v1·scheme·(JAR·signing):·true 
3 Verified·using·v2·scheme·(APK·Signature·Scheme·v2):·false 
4 Verified·using·v3·scheme·(APK·Signature·Scheme·v3):·false 
5 Verified·using·v4·scheme·(APK·Signature·Scheme·v4):·false 
6 Verified·for·SourceStamp:·false 
7 Number·of·signers:·1 
8 Signer·#1·certificate·DN:·CN=FDroid,·OU=FDroid,·O=fdroid.org,·L=ORG,·ST=ORG,·C=UK 
9 Signer·#1·certificate·SHA-256·digest:·7d7f26479bd596e4fa6037088bbb03e4159e9d8f5309b6207223b072a48e1549 
10 Signer·#1·certificate·SHA-1·digest:·ad540f4d035047a7d2ddfca04bef3bfa5dc08be6 
11 Signer·#1·certificate·MD5·digest:·bd0cfef85b3aa47f3b5c1b0854fc643e 
12 Signer·#1·key·algorithm:·RSA 
13 Signer·#1·key·size·(bits):·2048 
14 Signer·#1·public·key·SHA-256·digest:·e72f4439bf4ed02ce8cfbdddd01a572d3b3c7f63bd97afb666037c42c0b7518e 
15 Signer·#1·public·key·SHA-1·digest:·e706231a6db26f3a3d4b6a31e2ad3ae1786627b3 
16 Signer·#1·public·key·MD5·digest:·aed0d36a2a49aaec48e0ffe2083f28af 
17 WARNING:·META-INF/buildserverid·not·protected·by·signature.·Unauthorized·modifications·to·this·JAR·entry·will·not·be·detected.·Delete·or·move·the·entry·outside·of·META-INF/. 
18 WARNING:·META-INF/fdroidserverid·not·protected·by·signature.·Unauthorized·modifications·to·this·JAR·entry·will·not·be·detected.·Delete·or·move·the·entry·outside·of·META-INF/. 
137 KB
zipinfo {}
    
Offset 1, 699 lines modifiedOffset 1, 697 lines modified
Diff chunk too large, falling back to line-by-line diff (697 lines added, 699 lines removed)
1 Zip·file·size:·6083012·bytes,·number·of·entries:·6971 Zip·file·size:·6074251·bytes,·number·of·entries:·695
2 -rw----·····2.0·fat····68414·bl·defN·16-Nov-02·09:54·META-INF/MANIFEST.MF2 -rw----·····2.0·fat·····9088·bX·defN·17-Oct-07·00:17·AndroidManifest.xml
3 -rw----·····2.0·fat····68535·bl·defN·16-Nov-02·09:54·META-INF/90A556A3.SF3 -rw----·····2.0·fat···166704·bl·defN·17-Oct-07·00:17·assets/materialdesignicons-webfont.ttf
4 -rw----·····2.0·fat·····1326·bl·defN·16-Nov-02·09:54·META-INF/90A556A3.RSA4 -rw----·····2.0·fat·····1228·bl·defN·17-Oct-07·00:17·res/anim-v21/design_appbar_state_list_animator.xml
5 -rw----·····2.0·fat·······41·bl·defN·16-Nov-02·07:33·META-INF/buildserverid5 -rw----·····2.0·fat······620·bl·defN·17-Oct-07·00:17·res/anim-v21/design_bottom_sheet_slide_in.xml
6 -rw----·····2.0·fat·······41·bl·defN·16-Nov-02·07:33·META-INF/fdroidserverid6 -rw----·····2.0·fat······620·bl·defN·17-Oct-07·00:17·res/anim-v21/design_bottom_sheet_slide_out.xml
7 -rw----·····2.0·fat·····9088·bX·defN·16-Nov-02·07:33·AndroidManifest.xml7 -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/abc_fade_in.xml
8 -rw----·····2.0·fat···166704·bl·defN·16-Nov-02·07:33·assets/materialdesignicons-webfont.ttf8 -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/abc_fade_out.xml
9 -rw----·····2.0·fat·····1228·bl·defN·16-Nov-02·07:33·res/anim-v21/design_appbar_state_list_animator.xml9 -rw----·····2.0·fat······860·bl·defN·17-Oct-07·00:17·res/anim/abc_grow_fade_in_from_bottom.xml
10 -rw----·····2.0·fat······620·bl·defN·16-Nov-02·07:33·res/anim-v21/design_bottom_sheet_slide_in.xml10 -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/abc_popup_enter.xml
11 -rw----·····2.0·fat······620·bl·defN·16-Nov-02·07:33·res/anim-v21/design_bottom_sheet_slide_out.xml11 -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/abc_popup_exit.xml
12 -rw----·····2.0·fat······396·bl·defN·16-Nov-02·07:33·res/anim/abc_fade_in.xml12 -rw----·····2.0·fat······860·bl·defN·17-Oct-07·00:17·res/anim/abc_shrink_fade_out_from_bottom.xml
13 -rw----·····2.0·fat······396·bl·defN·16-Nov-02·07:33·res/anim/abc_fade_out.xml13 -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_in_bottom.xml
14 -rw----·····2.0·fat······860·bl·defN·16-Nov-02·07:33·res/anim/abc_grow_fade_in_from_bottom.xml14 -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_in_top.xml
15 -rw----·····2.0·fat······512·bl·defN·16-Nov-02·07:33·res/anim/abc_popup_enter.xml15 -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_out_bottom.xml
16 -rw----·····2.0·fat······512·bl·defN·16-Nov-02·07:33·res/anim/abc_popup_exit.xml16 -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_out_top.xml
17 -rw----·····2.0·fat······860·bl·defN·16-Nov-02·07:33·res/anim/abc_shrink_fade_out_from_bottom.xml17 -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/activity_fade_in.xml
18 -rw----·····2.0·fat······400·bl·defN·16-Nov-02·07:33·res/anim/abc_slide_in_bottom.xml18 -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/activity_fade_out.xml
19 -rw----·····2.0·fat······400·bl·defN·16-Nov-02·07:33·res/anim/abc_slide_in_top.xml19 -rw----·····2.0·fat······288·bl·defN·17-Oct-07·00:17·res/anim/decelerate_cubic.xml
20 -rw----·····2.0·fat······400·bl·defN·16-Nov-02·07:33·res/anim/abc_slide_out_bottom.xml20 -rw----·····2.0·fat······620·bl·defN·17-Oct-07·00:17·res/anim/design_bottom_sheet_slide_in.xml
21 -rw----·····2.0·fat······400·bl·defN·16-Nov-02·07:33·res/anim/abc_slide_out_top.xml21 -rw----·····2.0·fat······620·bl·defN·17-Oct-07·00:17·res/anim/design_bottom_sheet_slide_out.xml
22 -rw----·····2.0·fat······396·bl·defN·16-Nov-02·07:33·res/anim/activity_fade_in.xml22 -rw----·····2.0·fat······688·bl·defN·17-Oct-07·00:17·res/anim/design_fab_in.xml
23 -rw----·····2.0·fat······396·bl·defN·16-Nov-02·07:33·res/anim/activity_fade_out.xml23 -rw----·····2.0·fat······688·bl·defN·17-Oct-07·00:17·res/anim/design_fab_out.xml
24 -rw----·····2.0·fat······288·bl·defN·16-Nov-02·07:33·res/anim/decelerate_cubic.xml24 -rw----·····2.0·fat······320·bl·defN·17-Oct-07·00:17·res/anim/design_snackbar_in.xml
25 -rw----·····2.0·fat······620·bl·defN·16-Nov-02·07:33·res/anim/design_bottom_sheet_slide_in.xml25 -rw----·····2.0·fat······320·bl·defN·17-Oct-07·00:17·res/anim/design_snackbar_out.xml
26 -rw----·····2.0·fat······620·bl·defN·16-Nov-02·07:33·res/anim/design_bottom_sheet_slide_out.xml26 -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/popup_enter.xml
27 -rw----·····2.0·fat······688·bl·defN·16-Nov-02·07:33·res/anim/design_fab_in.xml27 -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/popup_exit.xml
28 -rw----·····2.0·fat······688·bl·defN·16-Nov-02·07:33·res/anim/design_fab_out.xml28 -rw----·····2.0·fat······664·bl·defN·17-Oct-07·00:17·res/anim/scale.xml
29 -rw----·····2.0·fat······320·bl·defN·16-Nov-02·07:33·res/anim/design_snackbar_in.xml29 -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_in_from_bottom.xml
30 -rw----·····2.0·fat······320·bl·defN·16-Nov-02·07:33·res/anim/design_snackbar_out.xml30 -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_in_from_left.xml
31 -rw----·····2.0·fat······512·bl·defN·16-Nov-02·07:33·res/anim/popup_enter.xml31 -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_in_from_right.xml
32 -rw----·····2.0·fat······512·bl·defN·16-Nov-02·07:33·res/anim/popup_exit.xml32 -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_out_to_bottom.xml
33 -rw----·····2.0·fat······664·bl·defN·16-Nov-02·07:33·res/anim/scale.xml33 -rw----·····2.0·fat······716·bl·defN·17-Oct-07·00:17·res/anim/slide_out_to_left.xml
34 -rw----·····2.0·fat······528·bl·defN·16-Nov-02·07:33·res/anim/slide_in_from_bottom.xml34 -rw----·····2.0·fat······716·bl·defN·17-Oct-07·00:17·res/anim/slide_out_to_right.xml
35 -rw----·····2.0·fat······528·bl·defN·16-Nov-02·07:33·res/anim/slide_in_from_left.xml35 -rw----·····2.0·fat······472·bl·defN·17-Oct-07·00:17·res/color-v11/abc_background_cache_hint_selector_material_dark.xml
36 -rw----·····2.0·fat······528·bl·defN·16-Nov-02·07:33·res/anim/slide_in_from_right.xml36 -rw----·····2.0·fat······472·bl·defN·17-Oct-07·00:17·res/color-v11/abc_background_cache_hint_selector_material_light.xml
37 -rw----·····2.0·fat······528·bl·defN·16-Nov-02·07:33·res/anim/slide_out_to_bottom.xml37 -rw----·····2.0·fat······504·bl·defN·17-Oct-07·00:17·res/color-v23/abc_btn_colored_borderless_text_material.xml
38 -rw----·····2.0·fat······716·bl·defN·16-Nov-02·07:33·res/anim/slide_out_to_left.xml38 -rw----·····2.0·fat······548·bl·defN·17-Oct-07·00:17·res/color-v23/abc_color_highlight_material.xml
39 -rw----·····2.0·fat······716·bl·defN·16-Nov-02·07:33·res/anim/slide_out_to_right.xml39 -rw----·····2.0·fat······628·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_btn_checkable.xml
40 -rw----·····2.0·fat······472·bl·defN·16-Nov-02·07:33·res/color-v11/abc_background_cache_hint_selector_material_dark.xml40 -rw----·····2.0·fat·····1128·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_default.xml
41 -rw----·····2.0·fat······472·bl·defN·16-Nov-02·07:33·res/color-v11/abc_background_cache_hint_selector_material_light.xml41 -rw----·····2.0·fat······672·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_edittext.xml
42 -rw----·····2.0·fat······504·bl·defN·16-Nov-02·07:33·res/color-v23/abc_btn_colored_borderless_text_material.xml42 -rw----·····2.0·fat······504·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_seek_thumb.xml
43 -rw----·····2.0·fat······548·bl·defN·16-Nov-02·07:33·res/color-v23/abc_color_highlight_material.xml43 -rw----·····2.0·fat······672·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_spinner.xml
44 -rw----·····2.0·fat······628·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_btn_checkable.xml44 -rw----·····2.0·fat······628·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_switch_thumb.xml
45 -rw----·····2.0·fat·····1128·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_default.xml45 -rw----·····2.0·fat······668·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_switch_track.xml
46 -rw----·····2.0·fat······672·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_edittext.xml46 -rw----·····2.0·fat······524·bl·defN·17-Oct-07·00:17·res/color-v23/design_tint_password_toggle.xml
47 -rw----·····2.0·fat······504·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_seek_thumb.xml47 -rw----·····2.0·fat······608·bl·defN·17-Oct-07·00:17·res/color/abc_btn_colored_borderless_text_material.xml
48 -rw----·····2.0·fat······672·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_spinner.xml48 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/abc_primary_text_disable_only_material_dark.xml
49 -rw----·····2.0·fat······628·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_switch_thumb.xml49 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/abc_primary_text_disable_only_material_light.xml
50 -rw----·····2.0·fat······668·bl·defN·16-Nov-02·07:33·res/color-v23/abc_tint_switch_track.xml50 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/abc_primary_text_material_dark.xml
51 -rw----·····2.0·fat······524·bl·defN·16-Nov-02·07:33·res/color-v23/design_tint_password_toggle.xml51 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/abc_primary_text_material_light.xml
52 -rw----·····2.0·fat······608·bl·defN·16-Nov-02·07:33·res/color/abc_btn_colored_borderless_text_material.xml52 -rw----·····2.0·fat······596·bl·defN·17-Oct-07·00:17·res/color/abc_search_url_text.xml
53 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/abc_primary_text_disable_only_material_dark.xml53 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/abc_secondary_text_material_dark.xml
54 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/abc_primary_text_disable_only_material_light.xml54 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/abc_secondary_text_material_light.xml
55 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/abc_primary_text_material_dark.xml55 -rw----·····2.0·fat······732·bl·defN·17-Oct-07·00:17·res/color/abc_tint_btn_checkable.xml
56 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/abc_primary_text_material_light.xml56 -rw----·····2.0·fat·····1232·bl·defN·17-Oct-07·00:17·res/color/abc_tint_default.xml
57 -rw----·····2.0·fat······596·bl·defN·16-Nov-02·07:33·res/color/abc_search_url_text.xml57 -rw----·····2.0·fat······776·bl·defN·17-Oct-07·00:17·res/color/abc_tint_edittext.xml
58 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/abc_secondary_text_material_dark.xml58 -rw----·····2.0·fat······608·bl·defN·17-Oct-07·00:17·res/color/abc_tint_seek_thumb.xml
59 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/abc_secondary_text_material_light.xml59 -rw----·····2.0·fat······776·bl·defN·17-Oct-07·00:17·res/color/abc_tint_spinner.xml
60 -rw----·····2.0·fat······732·bl·defN·16-Nov-02·07:33·res/color/abc_tint_btn_checkable.xml60 -rw----·····2.0·fat······732·bl·defN·17-Oct-07·00:17·res/color/abc_tint_switch_thumb.xml
61 -rw----·····2.0·fat·····1232·bl·defN·16-Nov-02·07:33·res/color/abc_tint_default.xml61 -rw----·····2.0·fat······772·bl·defN·17-Oct-07·00:17·res/color/abc_tint_switch_track.xml
62 -rw----·····2.0·fat······776·bl·defN·16-Nov-02·07:33·res/color/abc_tint_edittext.xml62 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/design_error.xml
63 -rw----·····2.0·fat······608·bl·defN·16-Nov-02·07:33·res/color/abc_tint_seek_thumb.xml63 -rw----·····2.0·fat······628·bl·defN·17-Oct-07·00:17·res/color/design_tint_password_toggle.xml
64 -rw----·····2.0·fat······776·bl·defN·16-Nov-02·07:33·res/color/abc_tint_spinner.xml64 -rw----·····2.0·fat······488·bl·defN·17-Oct-07·00:17·res/color/state_selector_black.xml
65 -rw----·····2.0·fat······732·bl·defN·16-Nov-02·07:33·res/color/abc_tint_switch_thumb.xml65 -rw----·····2.0·fat······488·bl·defN·17-Oct-07·00:17·res/color/state_selector_dark.xml
66 -rw----·····2.0·fat······772·bl·defN·16-Nov-02·07:33·res/color/abc_tint_switch_track.xml66 -rw----·····2.0·fat······488·bl·defN·17-Oct-07·00:17·res/color/state_selector_light.xml
67 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/design_error.xml67 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/switch_thumb_material_dark.xml
68 -rw----·····2.0·fat······628·bl·defN·16-Nov-02·07:33·res/color/design_tint_password_toggle.xml68 -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/switch_thumb_material_light.xml
69 -rw----·····2.0·fat······488·bl·defN·16-Nov-02·07:33·res/color/state_selector_black.xml69 -rw----·····2.0·fat······784·bl·defN·17-Oct-07·00:17·res/drawable-anydpi-v21/ate_check.xml
70 -rw----·····2.0·fat······488·bl·defN·16-Nov-02·07:33·res/color/state_selector_dark.xml70 -rw----·····2.0·fat······804·bl·defN·17-Oct-07·00:17·res/drawable-anydpi-v21/md_nav_back.xml
71 -rw----·····2.0·fat······488·bl·defN·16-Nov-02·07:33·res/color/state_selector_light.xml71 -rw----·····1.0·fat······792·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v11/ic_notification.png
72 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/switch_thumb_material_dark.xml72 -rw----·····1.0·fat······287·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png
73 -rw----·····2.0·fat······468·bl·defN·16-Nov-02·07:33·res/color/switch_thumb_material_light.xml73 -rw----·····1.0·fat······305·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png
74 -rw----·····2.0·fat······784·bl·defN·16-Nov-02·07:33·res/drawable-anydpi-v21/ate_check.xml74 -rw----·····1.0·fat······548·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png
75 -rw----·····2.0·fat······804·bl·defN·16-Nov-02·07:33·res/drawable-anydpi-v21/md_nav_back.xml75 -rw----·····1.0·fat······621·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png
76 -rw----·····1.0·fat······792·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v11/ic_notification.png76 -rw----·····1.0·fat······752·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png
77 -rw----·····1.0·fat······287·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png77 -rw----·····1.0·fat·····1548·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png
78 -rw----·····1.0·fat······305·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png78 -rw----·····1.0·fat·····1748·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png
79 -rw----·····1.0·fat······548·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png79 -rw----·····1.0·fat······229·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png
80 -rw----·····1.0·fat······621·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png80 -rw----·····1.0·fat······225·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png
81 -rw----·····1.0·fat······752·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png81 -rw----·····1.0·fat······280·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
82 -rw----·····1.0·fat·····1548·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png82 -rw----·····1.0·fat······583·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
83 -rw----·····1.0·fat·····1748·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png83 -rw----·····1.0·fat······359·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png
84 -rw----·····1.0·fat······229·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png84 -rw----·····1.0·fat······269·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png
85 -rw----·····1.0·fat······225·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png85 -rw----·····1.0·fat······791·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png
86 -rw----·····1.0·fat······280·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png86 -rw----·····1.0·fat······493·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_star_black_16dp.png
87 -rw----·····1.0·fat······583·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png87 -rw----·····1.0·fat······974·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_star_black_36dp.png
88 -rw----·····1.0·fat······359·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png88 -rw----·····1.0·fat·····1234·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_star_black_48dp.png
89 -rw----·····1.0·fat······269·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png89 -rw----·····1.0·fat······349·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_star_half_black_16dp.png
90 -rw----·····1.0·fat······791·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png90 -rw----·····1.0·fat······621·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_star_half_black_36dp.png
91 -rw----·····1.0·fat······493·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_star_black_16dp.png91 -rw----·····1.0·fat······783·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_ic_star_half_black_48dp.png
92 -rw----·····1.0·fat······974·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_star_black_36dp.png92 -rw----·····1.0·fat······167·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png
93 -rw----·····1.0·fat·····1234·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_star_black_48dp.png93 -rw----·····1.0·fat······244·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_focused_holo.9.png
94 -rw----·····1.0·fat······349·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_star_half_black_16dp.png94 -rw----·····1.0·fat······212·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png
95 -rw----·····1.0·fat······621·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_star_half_black_36dp.png95 -rw----·····1.0·fat······212·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png
96 -rw----·····1.0·fat······783·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_ic_star_half_black_48dp.png96 -rw----·····1.0·fat······212·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png
97 -rw----·····1.0·fat······167·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png97 -rw----·····1.0·fat······239·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png
98 -rw----·····1.0·fat······244·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_focused_holo.9.png98 -rw----·····1.0·fat······240·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png
99 -rw----·····1.0·fat······212·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png99 -rw----·····1.0·fat······817·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png
100 -rw----·····1.0·fat······212·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png100 -rw----·····1.0·fat·····1256·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png
101 -rw----·····1.0·fat······212·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png101 -rw----·····1.0·fat······257·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_scrubber_control_off_mtrl_alpha.png
102 -rw----·····1.0·fat······239·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png102 -rw----·····1.0·fat······270·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png
103 -rw----·····1.0·fat······240·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png103 -rw----·····1.0·fat······386·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png
104 -rw----·····1.0·fat······817·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png104 -rw----·····1.0·fat······214·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png
105 -rw----·····1.0·fat·····1256·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png105 -rw----·····1.0·fat······201·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_scrubber_track_mtrl_alpha.9.png
106 -rw----·····1.0·fat······257·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_scrubber_control_off_mtrl_alpha.png106 -rw----·····1.0·fat······368·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png
107 -rw----·····1.0·fat······270·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png107 -rw----·····1.0·fat······538·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png
108 -rw----·····1.0·fat······386·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png108 -rw----·····1.0·fat······199·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png
109 -rw----·····1.0·fat······214·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png109 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_dark.png
110 -rw----·····1.0·fat······201·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_scrubber_track_mtrl_alpha.9.png110 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_light.png
111 -rw----·····1.0·fat······368·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png111 -rw----·····1.0·fat······653·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_dark.png
112 -rw----·····1.0·fat······538·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png112 -rw----·····1.0·fat······653·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_light.png
113 -rw----·····1.0·fat······199·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png113 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_dark.png
114 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_dark.png114 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_light.png
115 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_text_select_handle_left_mtrl_light.png115 -rw----·····1.0·fat······192·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png
116 -rw----·····1.0·fat······653·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_dark.png116 -rw----·····1.0·fat······198·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png
117 -rw----·····1.0·fat······653·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_text_select_handle_middle_mtrl_light.png117 -rw----·····1.0·fat······182·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png
118 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_dark.png118 -rw----·····1.0·fat······182·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png
119 -rw----·····1.0·fat······277·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_text_select_handle_right_mtrl_light.png119 -rw----·····1.0·fat······447·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/ate_check.png
120 -rw----·····1.0·fat······192·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png120 -rw----·····1.0·fat·····1253·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/btn_playback_next.png
121 -rw----·····1.0·fat······198·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png121 -rw----·····1.0·fat······141·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/btn_playback_pause.png
122 -rw----·····1.0·fat······182·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png122 -rw----·····1.0·fat······384·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/btn_playback_play.png
123 -rw----·····1.0·fat······182·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png123 -rw----·····1.0·fat·····1251·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/btn_playback_previous.png
124 -rw----·····1.0·fat······447·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/ate_check.png124 -rw----·····1.0·fat······583·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/ic_action_search.png
125 -rw----·····1.0·fat·····1253·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/btn_playback_next.png125 -rw----·····1.0·fat······217·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/ic_back.png
126 -rw----·····1.0·fat······141·b-·stor·80-Jan-01·01:00·res/drawable-hdpi-v4/btn_playback_pause.png126 -rw----·····1.0·fat·····1062·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/ic_history.png
Max diff block lines reached; -1/139799 bytes (-0.00%) of diff not shown.
123 B
filetype from file(1)
    
Offset 1, 1 lines modifiedOffset 1, 1 lines modified
1 Zip·archive·data,·at·least·v2.0·to·extract1 Java·archive·data·(JAR)
98.1 MB
classes.dex
97.9 MB
dexdump -a -d -f -h {}
Ignoring differences in offsets to keep diff size reasonable.
    
Offset 1, 35 lines modifiedOffset 1, 35 lines modified
1 DEX·version·'035'1 DEX·version·'035'
2 DEX·file·header:2 DEX·file·header:
3 magic···············:·'dex\n035\0'3 magic···············:·'dex\n035\0'
4 checksum············:·982d04894 checksum············:·4184cb9e
5 signature···········:·0740...39085 signature···········:·de3b...4e9e
6 file_size···········:·44363686 file_size···········:·4443320
7 header_size·········:·1127 header_size·········:·112
8 link_size···········:·08 link_size···········:·0
9 link_off············:·0·(0x000000)9 link_off············:·0·(0x000000)
10 string_ids_size·····:·3809810 string_ids_size·····:·38156
11 string_ids_off······:·112·(0x000070)11 string_ids_off······:·112·(0x000070)
12 type_ids_size·······:·437412 type_ids_size·······:·4377
13 type_ids_off········:·152504·(0x0253b8)13 type_ids_off········:·152736·(0x0254a0)
14 proto_ids_size······:·643414 proto_ids_size······:·6449
15 proto_ids_off·······:·170000·(0x029810)15 proto_ids_off·······:·170244·(0x029904)
16 field_ids_size······:·2691716 field_ids_size······:·26958
17 field_ids_off·······:·247208·(0x03c5a8)17 field_ids_off·······:·247632·(0x03c750)
18 method_ids_size·····:·3237218 method_ids_size·····:·32413
19 method_ids_off······:·462544·(0x070ed0)19 method_ids_off······:·463296·(0x0711c0)
20 class_defs_size·····:·335120 class_defs_size·····:·3353
21 class_defs_off······:·721520·(0x0b0270)21 class_defs_off······:·722600·(0x0b06a8)
22 data_size···········:·360761622 data_size···········:·3613424
23 data_off············:·828752·(0x0ca550)23 data_off············:·829896·(0x0ca9c8)
  
24 Class·#0·header:24 Class·#0·header:
25 class_idx···········:·31325 class_idx···········:·313
26 access_flags········:·9729·(0x2601)26 access_flags········:·9729·(0x2601)
27 superclass_idx······:·375927 superclass_idx······:·3761
28 source_file_idx·····:·189128 source_file_idx·····:·1891
29 static_fields_size··:·029 static_fields_size··:·0
30 instance_fields_size:·030 instance_fields_size:·0
31 direct_methods_size·:·031 direct_methods_size·:·0
32 virtual_methods_size:·032 virtual_methods_size:·0
  
33 Class·#0·annotations:33 Class·#0·annotations:
Offset 49, 15 lines modifiedOffset 49, 15 lines modified
49 ··Direct·methods····-49 ··Direct·methods····-
50 ··Virtual·methods···-50 ··Virtual·methods···-
51 ··source_file_idx···:·1891·(AnimRes.java)51 ··source_file_idx···:·1891·(AnimRes.java)
  
52 Class·#1·header:52 Class·#1·header:
53 class_idx···········:·31453 class_idx···········:·314
54 access_flags········:·9729·(0x2601)54 access_flags········:·9729·(0x2601)
55 superclass_idx······:·375955 superclass_idx······:·3761
56 source_file_idx·····:·191056 source_file_idx·····:·1910
57 static_fields_size··:·057 static_fields_size··:·0
58 instance_fields_size:·058 instance_fields_size:·0
59 direct_methods_size·:·059 direct_methods_size·:·0
60 virtual_methods_size:·060 virtual_methods_size:·0
  
61 Class·#1·annotations:61 Class·#1·annotations:
Offset 77, 15 lines modifiedOffset 77, 15 lines modified
77 ··Direct·methods····-77 ··Direct·methods····-
78 ··Virtual·methods···-78 ··Virtual·methods···-
79 ··source_file_idx···:·1910·(AnimatorRes.java)79 ··source_file_idx···:·1910·(AnimatorRes.java)
  
80 Class·#2·header:80 Class·#2·header:
81 class_idx···········:·31581 class_idx···········:·315
82 access_flags········:·9729·(0x2601)82 access_flags········:·9729·(0x2601)
83 superclass_idx······:·375983 superclass_idx······:·3761
84 source_file_idx·····:·191584 source_file_idx·····:·1915
85 static_fields_size··:·085 static_fields_size··:·0
86 instance_fields_size:·086 instance_fields_size:·0
87 direct_methods_size·:·087 direct_methods_size·:·0
88 virtual_methods_size:·088 virtual_methods_size:·0
  
89 Class·#2·annotations:89 Class·#2·annotations:
Offset 105, 15 lines modifiedOffset 105, 15 lines modified
105 ··Direct·methods····-105 ··Direct·methods····-
106 ··Virtual·methods···-106 ··Virtual·methods···-
107 ··source_file_idx···:·1915·(AnyRes.java)107 ··source_file_idx···:·1915·(AnyRes.java)
  
108 Class·#3·header:108 Class·#3·header:
109 class_idx···········:·316109 class_idx···········:·316
110 access_flags········:·9729·(0x2601)110 access_flags········:·9729·(0x2601)
111 superclass_idx······:·3759111 superclass_idx······:·3761
112 source_file_idx·····:·1917112 source_file_idx·····:·1917
113 static_fields_size··:·0113 static_fields_size··:·0
114 instance_fields_size:·0114 instance_fields_size:·0
115 direct_methods_size·:·0115 direct_methods_size·:·0
116 virtual_methods_size:·0116 virtual_methods_size:·0
  
117 Class·#3·annotations:117 Class·#3·annotations:
Offset 133, 15 lines modifiedOffset 133, 15 lines modified
133 ··Direct·methods····-133 ··Direct·methods····-
134 ··Virtual·methods···-134 ··Virtual·methods···-
135 ··source_file_idx···:·1917·(AnyThread.java)135 ··source_file_idx···:·1917·(AnyThread.java)
  
136 Class·#4·header:136 Class·#4·header:
137 class_idx···········:·317137 class_idx···········:·317
138 access_flags········:·9729·(0x2601)138 access_flags········:·9729·(0x2601)
139 superclass_idx······:·3759139 superclass_idx······:·3761
140 source_file_idx·····:·2151140 source_file_idx·····:·2151
141 static_fields_size··:·0141 static_fields_size··:·0
142 instance_fields_size:·0142 instance_fields_size:·0
143 direct_methods_size·:·0143 direct_methods_size·:·0
144 virtual_methods_size:·0144 virtual_methods_size:·0
  
145 Class·#4·annotations:145 Class·#4·annotations:
Offset 161, 15 lines modifiedOffset 161, 15 lines modified
161 ··Direct·methods····-161 ··Direct·methods····-
162 ··Virtual·methods···-162 ··Virtual·methods···-
163 ··source_file_idx···:·2151·(ArrayRes.java)163 ··source_file_idx···:·2151·(ArrayRes.java)
  
164 Class·#5·header:164 Class·#5·header:
165 class_idx···········:·318165 class_idx···········:·318
166 access_flags········:·9729·(0x2601)166 access_flags········:·9729·(0x2601)
167 superclass_idx······:·3759167 superclass_idx······:·3761
168 source_file_idx·····:·2203168 source_file_idx·····:·2203
169 static_fields_size··:·0169 static_fields_size··:·0
170 instance_fields_size:·0170 instance_fields_size:·0
171 direct_methods_size·:·0171 direct_methods_size·:·0
172 virtual_methods_size:·0172 virtual_methods_size:·0
  
173 Class·#5·annotations:173 Class·#5·annotations:
Offset 189, 16 lines modifiedOffset 189, 16 lines modified
189 ··Direct·methods····-189 ··Direct·methods····-
190 ··Virtual·methods···-190 ··Virtual·methods···-
191 ··source_file_idx···:·2203·(AttrRes.java)191 ··source_file_idx···:·2203·(AttrRes.java)
  
192 Class·#6·header:192 Class·#6·header:
193 class_idx···········:·319193 class_idx···········:·319
194 access_flags········:·9729·(0x2601)194 access_flags········:·9729·(0x2601)
195 superclass_idx······:·3759195 superclass_idx······:·3761
196 source_file_idx·····:·2612196 source_file_idx·····:·2614
197 static_fields_size··:·0197 static_fields_size··:·0
198 instance_fields_size:·0198 instance_fields_size:·0
Max diff block lines reached; 102700492/102704498 bytes (100.00%) of diff not shown.
127 KB
classes.jar
12.1 KB
zipinfo {}
    
Offset 1, 22 lines modifiedOffset 1, 21 lines modified
1 Zip·file·size:·6658226·bytes,·number·of·entries:·33511 Zip·file·size:·6666009·bytes,·number·of·entries:·3353
2 ?rwxrwxr-x··2.0·unx······125·b-·stor·80-Jan-01·00:00·android/support/annotation/AnimRes.class2 ?rwxrwxr-x··2.0·unx······125·b-·stor·80-Jan-01·00:00·android/support/annotation/AnimRes.class
3 ?rwxrwxr-x··2.0·unx······129·b-·stor·80-Jan-01·00:00·android/support/annotation/AnimatorRes.class3 ?rwxrwxr-x··2.0·unx······129·b-·stor·80-Jan-01·00:00·android/support/annotation/AnimatorRes.class
4 ?rwxrwxr-x··2.0·unx······124·b-·stor·80-Jan-01·00:00·android/support/annotation/AnyRes.class4 ?rwxrwxr-x··2.0·unx······124·b-·stor·80-Jan-01·00:00·android/support/annotation/AnyRes.class
5 ?rwxrwxr-x··2.0·unx······127·b-·stor·80-Jan-01·00:00·android/support/annotation/AnyThread.class5 ?rwxrwxr-x··2.0·unx······127·b-·stor·80-Jan-01·00:00·android/support/annotation/AnyThread.class
6 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/ArrayRes.class6 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/ArrayRes.class
7 ?rwxrwxr-x··2.0·unx······125·b-·stor·80-Jan-01·00:00·android/support/annotation/AttrRes.class7 ?rwxrwxr-x··2.0·unx······125·b-·stor·80-Jan-01·00:00·android/support/annotation/AttrRes.class
8 ?rwxrwxr-x··2.0·unx······130·b-·stor·80-Jan-01·00:00·android/support/annotation/BinderThread.class8 ?rwxrwxr-x··2.0·unx······130·b-·stor·80-Jan-01·00:00·android/support/annotation/BinderThread.class
9 ?rwxrwxr-x··2.0·unx······125·b-·stor·80-Jan-01·00:00·android/support/annotation/BoolRes.class9 ?rwxrwxr-x··2.0·unx······125·b-·stor·80-Jan-01·00:00·android/support/annotation/BoolRes.class
10 ?rwxrwxr-x··2.0·unx······127·b-·stor·80-Jan-01·00:00·android/support/annotation/CallSuper.class10 ?rwxrwxr-x··2.0·unx······127·b-·stor·80-Jan-01·00:00·android/support/annotation/CallSuper.class
11 ?rwxrwxr-x··2.0·unx······170·b-·stor·80-Jan-01·00:00·android/support/annotation/CheckResult.class11 ?rwxrwxr-x··2.0·unx······170·b-·stor·80-Jan-01·00:00·android/support/annotation/CheckResult.class
12 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/ColorInt.class12 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/ColorInt.class
13 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/ColorRes.class13 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/ColorRes.class
14 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/DimenRes.class14 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/DimenRes.class
15 ?rwxrwxr-x··2.0·unx······132·b-·stor·80-Jan-01·00:00·android/support/annotation/Dimension$Unit.class 
16 ?rwxrwxr-x··2.0·unx······246·b-·stor·80-Jan-01·00:00·android/support/annotation/Dimension.class15 ?rwxrwxr-x··2.0·unx······246·b-·stor·80-Jan-01·00:00·android/support/annotation/Dimension.class
17 ?rwxrwxr-x··2.0·unx······129·b-·stor·80-Jan-01·00:00·android/support/annotation/DrawableRes.class16 ?rwxrwxr-x··2.0·unx······129·b-·stor·80-Jan-01·00:00·android/support/annotation/DrawableRes.class
18 ?rwxrwxr-x··2.0·unx······214·b-·stor·80-Jan-01·00:00·android/support/annotation/FloatRange.class17 ?rwxrwxr-x··2.0·unx······214·b-·stor·80-Jan-01·00:00·android/support/annotation/FloatRange.class
19 ?rwxrwxr-x··2.0·unx······129·b-·stor·80-Jan-01·00:00·android/support/annotation/FractionRes.class18 ?rwxrwxr-x··2.0·unx······129·b-·stor·80-Jan-01·00:00·android/support/annotation/FractionRes.class
20 ?rwxrwxr-x··2.0·unx······123·b-·stor·80-Jan-01·00:00·android/support/annotation/IdRes.class19 ?rwxrwxr-x··2.0·unx······123·b-·stor·80-Jan-01·00:00·android/support/annotation/IdRes.class
21 ?rwxrwxr-x··2.0·unx······168·b-·stor·80-Jan-01·00:00·android/support/annotation/IntDef.class20 ?rwxrwxr-x··2.0·unx······168·b-·stor·80-Jan-01·00:00·android/support/annotation/IntDef.class
22 ?rwxrwxr-x··2.0·unx······160·b-·stor·80-Jan-01·00:00·android/support/annotation/IntRange.class21 ?rwxrwxr-x··2.0·unx······160·b-·stor·80-Jan-01·00:00·android/support/annotation/IntRange.class
Offset 31, 22 lines modifiedOffset 30, 24 lines modified
31 ?rwxrwxr-x··2.0·unx······128·b-·stor·80-Jan-01·00:00·android/support/annotation/PluralsRes.class30 ?rwxrwxr-x··2.0·unx······128·b-·stor·80-Jan-01·00:00·android/support/annotation/PluralsRes.class
32 ?rwxrwxr-x··2.0·unx······120·b-·stor·80-Jan-01·00:00·android/support/annotation/Px.class31 ?rwxrwxr-x··2.0·unx······120·b-·stor·80-Jan-01·00:00·android/support/annotation/Px.class
33 ?rwxrwxr-x··2.0·unx······124·b-·stor·80-Jan-01·00:00·android/support/annotation/RawRes.class32 ?rwxrwxr-x··2.0·unx······124·b-·stor·80-Jan-01·00:00·android/support/annotation/RawRes.class
34 ?rwxrwxr-x··2.0·unx······165·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresApi.class33 ?rwxrwxr-x··2.0·unx······165·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresApi.class
35 ?rwxrwxr-x··2.0·unx······209·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresPermission$Read.class34 ?rwxrwxr-x··2.0·unx······209·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresPermission$Read.class
36 ?rwxrwxr-x··2.0·unx······210·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresPermission$Write.class35 ?rwxrwxr-x··2.0·unx······210·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresPermission$Write.class
37 ?rwxrwxr-x··2.0·unx······259·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresPermission.class36 ?rwxrwxr-x··2.0·unx······259·b-·stor·80-Jan-01·00:00·android/support/annotation/RequiresPermission.class
 37 ?rwxrwxr-x··2.0·unx·····1023·b-·stor·80-Jan-01·00:00·android/support/annotation/RestrictTo$Scope.class
 38 ?rwxrwxr-x··2.0·unx······195·b-·stor·80-Jan-01·00:00·android/support/annotation/RestrictTo.class
38 ?rwxrwxr-x··2.0·unx······191·b-·stor·80-Jan-01·00:00·android/support/annotation/Size.class39 ?rwxrwxr-x··2.0·unx······191·b-·stor·80-Jan-01·00:00·android/support/annotation/Size.class
39 ?rwxrwxr-x··2.0·unx······167·b-·stor·80-Jan-01·00:00·android/support/annotation/StringDef.class40 ?rwxrwxr-x··2.0·unx······167·b-·stor·80-Jan-01·00:00·android/support/annotation/StringDef.class
40 ?rwxrwxr-x··2.0·unx······127·b-·stor·80-Jan-01·00:00·android/support/annotation/StringRes.class41 ?rwxrwxr-x··2.0·unx······127·b-·stor·80-Jan-01·00:00·android/support/annotation/StringRes.class
41 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/StyleRes.class42 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/StyleRes.class
42 ?rwxrwxr-x··2.0·unx······130·b-·stor·80-Jan-01·00:00·android/support/annotation/StyleableRes.class43 ?rwxrwxr-x··2.0·unx······130·b-·stor·80-Jan-01·00:00·android/support/annotation/StyleableRes.class
43 ?rwxrwxr-x··2.0·unx······131·b-·stor·80-Jan-01·00:00·android/support/annotation/TransitionRes.class44 ?rwxrwxr-x··2.0·unx······131·b-·stor·80-Jan-01·00:00·android/support/annotation/TransitionRes.class
44 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/UiThread.class45 ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/UiThread.class
45 ?rwxrwxr-x··2.0·unx······135·b-·stor·80-Jan-01·00:00·android/support/annotation/VisibleForTesting.class46 ?rwxrwxr-x··2.0·unx······312·b-·stor·80-Jan-01·00:00·android/support/annotation/VisibleForTesting.class
46 ?rwxrwxr-x··2.0·unx······130·b-·stor·80-Jan-01·00:00·android/support/annotation/WorkerThread.class47 ?rwxrwxr-x··2.0·unx······130·b-·stor·80-Jan-01·00:00·android/support/annotation/WorkerThread.class
47 ?rwxrwxr-x··2.0·unx······124·b-·stor·80-Jan-01·00:00·android/support/annotation/XmlRes.class48 ?rwxrwxr-x··2.0·unx······124·b-·stor·80-Jan-01·00:00·android/support/annotation/XmlRes.class
48 ?rwxrwxr-x··2.0·unx······424·b-·stor·80-Jan-01·00:00·android/support/compat/BuildConfig.class49 ?rwxrwxr-x··2.0·unx······424·b-·stor·80-Jan-01·00:00·android/support/compat/BuildConfig.class
49 ?rwxrwxr-x··2.0·unx······424·b-·stor·80-Jan-01·00:00·android/support/coreui/BuildConfig.class50 ?rwxrwxr-x··2.0·unx······424·b-·stor·80-Jan-01·00:00·android/support/coreui/BuildConfig.class
50 ?rwxrwxr-x··2.0·unx······430·b-·stor·80-Jan-01·00:00·android/support/coreutils/BuildConfig.class51 ?rwxrwxr-x··2.0·unx······430·b-·stor·80-Jan-01·00:00·android/support/coreutils/BuildConfig.class
51 ?rwxrwxr-x··2.0·unx······424·b-·stor·80-Jan-01·00:00·android/support/design/BuildConfig.class52 ?rwxrwxr-x··2.0·unx······424·b-·stor·80-Jan-01·00:00·android/support/design/BuildConfig.class
52 ?rwxrwxr-x··2.0·unx······909·b-·stor·80-Jan-01·00:00·android/support/design/R$anim.class53 ?rwxrwxr-x··2.0·unx······909·b-·stor·80-Jan-01·00:00·android/support/design/R$anim.class
Offset 1496, 30 lines modifiedOffset 1497, 31 lines modified
1496 ?rwxrwxr-x··2.0·unx·····2749·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListItem$Builder.class1497 ?rwxrwxr-x··2.0·unx·····2749·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListItem$Builder.class
1497 ?rwxrwxr-x··2.0·unx·····1399·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListItem.class1498 ?rwxrwxr-x··2.0·unx·····1399·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListItem.class
1498 ?rwxrwxr-x··2.0·unx·····1071·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/DialogUtils$1.class1499 ?rwxrwxr-x··2.0·unx·····1071·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/DialogUtils$1.class
1499 ?rwxrwxr-x··2.0·unx······625·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/DialogUtils$2.class1500 ?rwxrwxr-x··2.0·unx······625·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/DialogUtils$2.class
1500 ?rwxrwxr-x··2.0·unx·····6385·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/DialogUtils.class1501 ?rwxrwxr-x··2.0·unx·····6385·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/DialogUtils.class
1501 ?rwxrwxr-x··2.0·unx······481·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/RippleHelper.class1502 ?rwxrwxr-x··2.0·unx······481·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/RippleHelper.class
1502 ?rwxrwxr-x··2.0·unx·····1300·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/TypefaceHelper.class1503 ?rwxrwxr-x··2.0·unx·····1300·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/util/TypefaceHelper.class
1503 ?rwxrwxr-x··2.0·unx······717·b-·stor·80-Jan-01·00:00·com/android/vending/billing/IInAppBillingService.class1504 ?rwxrwxr-x··2.0·unx·····1096·b-·stor·80-Jan-01·00:00·com/android/vending/billing/IInAppBillingService.class
1504 ?rwxrwxr-x··2.0·unx·····2037·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingBase.class1505 ?rwxrwxr-x··2.0·unx·····1809·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingBase.class
1505 ?rwxrwxr-x··2.0·unx·····1444·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor$1.class1506 ?rwxrwxr-x··2.0·unx·····1223·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor$1.class
 1507 ?rwxrwxr-x··2.0·unx·····1454·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask.class
1506 ?rwxrwxr-x··2.0·unx······335·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor$IBillingHandler.class1508 ?rwxrwxr-x··2.0·unx······335·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor$IBillingHandler.class
1507 ?rwxrwxr-x··2.0·unx······442·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BuildConfig.class1509 ?rwxrwxr-x··2.0·unx······442·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BuildConfig.class
1508 ?rwxrwxr-x··2.0·unx·····2337·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/Constants.class1510 ?rwxrwxr-x··2.0·unx·····3270·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/Constants.class
 1511 ?rwxrwxr-x··2.0·unx······631·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseData$1.class
 1512 ?rwxrwxr-x··2.0·unx·····1636·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseData.class
1509 ?rwxrwxr-x··2.0·unx······631·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo$1.class1513 ?rwxrwxr-x··2.0·unx······631·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo$1.class
1510 ?rwxrwxr-x··2.0·unx·····1003·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo$PurchaseState.class 
1511 ?rwxrwxr-x··2.0·unx······683·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1.class 
1512 ?rwxrwxr-x··2.0·unx·····1701·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo$ResponseData.class 
1513 ?rwxrwxr-x··2.0·unx·····2606·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo.class1514 ?rwxrwxr-x··2.0·unx·····2754·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseInfo.class
 1515 ?rwxrwxr-x··2.0·unx······938·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/PurchaseState.class
1514 ?rwxrwxr-x··2.0·unx·····2757·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/Security.class1516 ?rwxrwxr-x··2.0·unx·····2757·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/Security.class
1515 ?rwxrwxr-x··2.0·unx······623·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/SkuDetails$1.class1517 ?rwxrwxr-x··2.0·unx······623·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/SkuDetails$1.class
1516 ?rwxrwxr-x··2.0·unx·····2442·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/SkuDetails.class1518 ?rwxrwxr-x··2.0·unx·····3649·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/SkuDetails.class
1517 ?rwxrwxr-x··2.0·unx······655·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/TransactionDetails$1.class1519 ?rwxrwxr-x··2.0·unx······655·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/TransactionDetails$1.class
1518 ?rwxrwxr-x··2.0·unx·····2328·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/TransactionDetails.class1520 ?rwxrwxr-x··2.0·unx·····2083·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/TransactionDetails.class
1519 ?rwxrwxr-x··2.0·unx······199·b-·stor·80-Jan-01·00:00·com/google/gson/ExclusionStrategy.class1521 ?rwxrwxr-x··2.0·unx······199·b-·stor·80-Jan-01·00:00·com/google/gson/ExclusionStrategy.class
1520 ?rwxrwxr-x··2.0·unx·····1282·b-·stor·80-Jan-01·00:00·com/google/gson/FieldAttributes.class1522 ?rwxrwxr-x··2.0·unx·····1282·b-·stor·80-Jan-01·00:00·com/google/gson/FieldAttributes.class
1521 ?rwxrwxr-x··2.0·unx······159·b-·stor·80-Jan-01·00:00·com/google/gson/FieldNamingStrategy.class1523 ?rwxrwxr-x··2.0·unx······159·b-·stor·80-Jan-01·00:00·com/google/gson/FieldNamingStrategy.class
1522 ?rwxrwxr-x··2.0·unx····12874·b-·defN·80-Jan-01·00:00·com/google/gson/Gson.class1524 ?rwxrwxr-x··2.0·unx····12874·b-·defN·80-Jan-01·00:00·com/google/gson/Gson.class
1523 ?rwxrwxr-x··2.0·unx·····6150·b-·stor·80-Jan-01·00:00·com/google/gson/GsonBuilder.class1525 ?rwxrwxr-x··2.0·unx·····6150·b-·stor·80-Jan-01·00:00·com/google/gson/GsonBuilder.class
1524 ?rwxrwxr-x··2.0·unx······155·b-·stor·80-Jan-01·00:00·com/google/gson/InstanceCreator.class1526 ?rwxrwxr-x··2.0·unx······155·b-·stor·80-Jan-01·00:00·com/google/gson/InstanceCreator.class
1525 ?rwxrwxr-x··2.0·unx······192·b-·stor·80-Jan-01·00:00·com/google/gson/JsonDeserializationContext.class1527 ?rwxrwxr-x··2.0·unx······192·b-·stor·80-Jan-01·00:00·com/google/gson/JsonDeserializationContext.class
Offset 2709, 18 lines modifiedOffset 2711, 18 lines modified
2709 ?rwxrwxr-x··2.0·unx······990·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialEditTextPreference$1.class2711 ?rwxrwxr-x··2.0·unx······990·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialEditTextPreference$1.class
2710 ?rwxrwxr-x··2.0·unx·····1291·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialListPreference$1.class2712 ?rwxrwxr-x··2.0·unx·····1291·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialListPreference$1.class
2711 ?rwxrwxr-x··2.0·unx······970·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialListPreference$2.class2713 ?rwxrwxr-x··2.0·unx······970·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialListPreference$2.class
2712 ?rwxrwxr-x··2.0·unx·····1355·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialMultiSelectListPreference$1.class2714 ?rwxrwxr-x··2.0·unx·····1355·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialMultiSelectListPreference$1.class
2713 ?rwxrwxr-x··2.0·unx·····1025·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialMultiSelectListPreference$2.class2715 ?rwxrwxr-x··2.0·unx·····1025·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialMultiSelectListPreference$2.class
2714 ?rwxrwxr-x··2.0·unx·····1720·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListAdapter$SimpleListVH.class2716 ?rwxrwxr-x··2.0·unx·····1720·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListAdapter$SimpleListVH.class
2715 ?rwxrwxr-x··2.0·unx·····4160·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListAdapter.class2717 ?rwxrwxr-x··2.0·unx·····4160·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/simplelist/MaterialSimpleListAdapter.class
2716 ?rwxrwxr-x··2.0·unx·····3442·b-·stor·80-Jan-01·00:00·com/android/vending/billing/IInAppBillingService$Stub$Proxy.class2718 ?rwxrwxr-x··2.0·unx·····4759·b-·stor·80-Jan-01·00:00·com/android/vending/billing/IInAppBillingService$Stub$Proxy.class
2717 ?rwxrwxr-x··2.0·unx·····3140·b-·stor·80-Jan-01·00:00·com/android/vending/billing/IInAppBillingService$Stub.class2719 ?rwxrwxr-x··2.0·unx·····4094·b-·stor·80-Jan-01·00:00·com/android/vending/billing/IInAppBillingService$Stub.class
2718 ?rwxrwxr-x··2.0·unx·····3502·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingCache.class2720 ?rwxrwxr-x··2.0·unx·····3502·b-·stor·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingCache.class
2719 ?rwxrwxr-x··2.0·unx····15904·b-·defN·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor.class2721 ?rwxrwxr-x··2.0·unx····18583·b-·defN·80-Jan-01·00:00·com/anjlab/android/iab/v3/BillingProcessor.class
2720 ?rwxrwxr-x··2.0·unx·····3665·b-·stor·80-Jan-01·00:00·com/google/gson/DefaultDateTypeAdapter.class2722 ?rwxrwxr-x··2.0·unx·····3665·b-·stor·80-Jan-01·00:00·com/google/gson/DefaultDateTypeAdapter.class
2721 ?rwxrwxr-x··2.0·unx·····2516·b-·stor·80-Jan-01·00:00·com/google/gson/FieldNamingPolicy.class2723 ?rwxrwxr-x··2.0·unx·····2516·b-·stor·80-Jan-01·00:00·com/google/gson/FieldNamingPolicy.class
2722 ?rwxrwxr-x··2.0·unx······445·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$1.class2724 ?rwxrwxr-x··2.0·unx······445·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$1.class
2723 ?rwxrwxr-x··2.0·unx······540·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$2.class2725 ?rwxrwxr-x··2.0·unx······540·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$2.class
2724 ?rwxrwxr-x··2.0·unx·····1301·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$3.class2726 ?rwxrwxr-x··2.0·unx·····1301·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$3.class
2725 ?rwxrwxr-x··2.0·unx·····1316·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$4.class2727 ?rwxrwxr-x··2.0·unx·····1316·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$4.class
2726 ?rwxrwxr-x··2.0·unx·····1247·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$5.class2728 ?rwxrwxr-x··2.0·unx·····1247·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$5.class
Offset 3346, 8 lines modifiedOffset 3348, 8 lines modified
3346 ?rwxrwxr-x··2.0·unx······770·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$KitKatViewCompatImpl.class3348 ?rwxrwxr-x··2.0·unx······770·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$KitKatViewCompatImpl.class
3347 ?rwxrwxr-x··2.0·unx······829·b-·stor·80-Jan-01·00:00·android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi22Impl.class3349 ?rwxrwxr-x··2.0·unx······829·b-·stor·80-Jan-01·00:00·android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi22Impl.class
3348 ?rwxrwxr-x··2.0·unx·····3470·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$LollipopViewCompatImpl.class3350 ?rwxrwxr-x··2.0·unx·····3470·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$LollipopViewCompatImpl.class
3349 ?rwxrwxr-x··2.0·unx·····1008·b-·stor·80-Jan-01·00:00·android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi23Impl.class3351 ?rwxrwxr-x··2.0·unx·····1008·b-·stor·80-Jan-01·00:00·android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi23Impl.class
3350 ?rwxrwxr-x··2.0·unx······641·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$MarshmallowViewCompatImpl.class3352 ?rwxrwxr-x··2.0·unx······641·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$MarshmallowViewCompatImpl.class
3351 ?rwxrwxr-x··2.0·unx······814·b-·stor·80-Jan-01·00:00·android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi24Impl.class3353 ?rwxrwxr-x··2.0·unx······814·b-·stor·80-Jan-01·00:00·android/support/v4/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityNodeInfoApi24Impl.class
3352 ?rwxrwxr-x··2.0·unx······530·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$Api24ViewCompatImpl.class3354 ?rwxrwxr-x··2.0·unx······530·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$Api24ViewCompatImpl.class
3353 3351·files,·7408799·bytes·uncompressed,·6014060·bytes·compressed:··18.8%3355 3353·files,·7418257·bytes·uncompressed,·6021531·bytes·compressed:··18.8%
2.28 KB
zipnote «TEMP»/diffoscope_h32y84m5_tmp/tmpfyv23kgp_.zip
    
Offset 33, 17 lines modifiedOffset 33, 14 lines modified
  
33 Filename:·android/support/annotation/ColorRes.class33 Filename:·android/support/annotation/ColorRes.class
34 Comment:·34 Comment:·
  
35 Filename:·android/support/annotation/DimenRes.class35 Filename:·android/support/annotation/DimenRes.class
36 Comment:·36 Comment:·
  
37 Filename:·android/support/annotation/Dimension$Unit.class 
38 Comment:· 
  
39 Filename:·android/support/annotation/Dimension.class37 Filename:·android/support/annotation/Dimension.class
40 Comment:·38 Comment:·
  
41 Filename:·android/support/annotation/DrawableRes.class39 Filename:·android/support/annotation/DrawableRes.class
42 Comment:·40 Comment:·
  
43 Filename:·android/support/annotation/FloatRange.class41 Filename:·android/support/annotation/FloatRange.class
Offset 102, 14 lines modifiedOffset 99, 20 lines modified
  
102 Filename:·android/support/annotation/RequiresPermission$Write.class99 Filename:·android/support/annotation/RequiresPermission$Write.class
103 Comment:·100 Comment:·
  
104 Filename:·android/support/annotation/RequiresPermission.class101 Filename:·android/support/annotation/RequiresPermission.class
105 Comment:·102 Comment:·
  
 103 Filename:·android/support/annotation/RestrictTo$Scope.class
 104 Comment:·
  
 105 Filename:·android/support/annotation/RestrictTo.class
 106 Comment:·
  
106 Filename:·android/support/annotation/Size.class107 Filename:·android/support/annotation/Size.class
107 Comment:·108 Comment:·
  
108 Filename:·android/support/annotation/StringDef.class109 Filename:·android/support/annotation/StringDef.class
109 Comment:·110 Comment:·
  
110 Filename:·android/support/annotation/StringRes.class111 Filename:·android/support/annotation/StringRes.class
Offset 4506, 36 lines modifiedOffset 4509, 39 lines modified
  
4506 Filename:·com/anjlab/android/iab/v3/BillingBase.class4509 Filename:·com/anjlab/android/iab/v3/BillingBase.class
4507 Comment:·4510 Comment:·
  
4508 Filename:·com/anjlab/android/iab/v3/BillingProcessor$1.class4511 Filename:·com/anjlab/android/iab/v3/BillingProcessor$1.class
4509 Comment:·4512 Comment:·
  
 4513 Filename:·com/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask.class
 4514 Comment:·
  
4510 Filename:·com/anjlab/android/iab/v3/BillingProcessor$IBillingHandler.class4515 Filename:·com/anjlab/android/iab/v3/BillingProcessor$IBillingHandler.class
4511 Comment:·4516 Comment:·
  
4512 Filename:·com/anjlab/android/iab/v3/BuildConfig.class4517 Filename:·com/anjlab/android/iab/v3/BuildConfig.class
4513 Comment:·4518 Comment:·
  
4514 Filename:·com/anjlab/android/iab/v3/Constants.class4519 Filename:·com/anjlab/android/iab/v3/Constants.class
4515 Comment:·4520 Comment:·
  
4516 Filename:·com/anjlab/android/iab/v3/PurchaseInfo$1.class4521 Filename:·com/anjlab/android/iab/v3/PurchaseData$1.class
4517 Comment:·4522 Comment:·
  
4518 Filename:·com/anjlab/android/iab/v3/PurchaseInfo$PurchaseState.class4523 Filename:·com/anjlab/android/iab/v3/PurchaseData.class
4519 Comment:·4524 Comment:·
  
4520 Filename:·com/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1.class4525 Filename:·com/anjlab/android/iab/v3/PurchaseInfo$1.class
4521 Comment:·4526 Comment:·
  
4522 Filename:·com/anjlab/android/iab/v3/PurchaseInfo$ResponseData.class4527 Filename:·com/anjlab/android/iab/v3/PurchaseInfo.class
4523 Comment:·4528 Comment:·
  
4524 Filename:·com/anjlab/android/iab/v3/PurchaseInfo.class4529 Filename:·com/anjlab/android/iab/v3/PurchaseState.class
4525 Comment:·4530 Comment:·
  
4526 Filename:·com/anjlab/android/iab/v3/Security.class4531 Filename:·com/anjlab/android/iab/v3/Security.class
4527 Comment:·4532 Comment:·
  
4528 Filename:·com/anjlab/android/iab/v3/SkuDetails$1.class4533 Filename:·com/anjlab/android/iab/v3/SkuDetails$1.class
4529 Comment:·4534 Comment:·
474 B
android/support/annotation/VisibleForTesting.class
374 B
procyon -ec {}
    
Offset 1, 7 lines modifiedOffset 1, 13 lines modified
  
1 package·android.support.annotation;1 package·android.support.annotation;
  
2 import·java.lang.annotation.Annotation;2 import·java.lang.annotation.Annotation;
  
3 public·@interface·VisibleForTesting·{3 public·@interface·VisibleForTesting·{
 4 ····public·static·final·int·NONE·=·5;
 5 ····public·static·final·int·PACKAGE_PRIVATE·=·3;
 6 ····public·static·final·int·PRIVATE·=·2;
 7 ····public·static·final·int·PROTECTED·=·4;
 8 ····
 9 ····int·otherwise();
4 }10 }
1.24 KB
com/android/vending/billing/IInAppBillingService.class
1.13 KB
procyon -ec {}
    
Offset 7, 17 lines modifiedOffset 7, 23 lines modified
  
7 public·interface·IInAppBillingService·extends·IInterface7 public·interface·IInAppBillingService·extends·IInterface
8 {8 {
9 ····int·consumePurchase(final·int·p0,·final·String·p1,·final·String·p2);9 ····int·consumePurchase(final·int·p0,·final·String·p1,·final·String·p2);
10 ····10 ····
11 ····Bundle·getBuyIntent(final·int·p0,·final·String·p1,·final·String·p2,·final·String·p3,·final·String·p4);11 ····Bundle·getBuyIntent(final·int·p0,·final·String·p1,·final·String·p2,·final·String·p3,·final·String·p4);
12 ····12 ····
 13 ····Bundle·getBuyIntentExtraParams(final·int·p0,·final·String·p1,·final·String·p2,·final·String·p3,·final·String·p4,·final·Bundle·p5);
 14 ····
13 ····Bundle·getBuyIntentToReplaceSkus(final·int·p0,·final·String·p1,·final·List·p2,·final·String·p3,·final·String·p4,·final·String·p5);15 ····Bundle·getBuyIntentToReplaceSkus(final·int·p0,·final·String·p1,·final·List·p2,·final·String·p3,·final·String·p4,·final·String·p5);
14 ····16 ····
 17 ····Bundle·getPurchaseHistory(final·int·p0,·final·String·p1,·final·String·p2,·final·String·p3,·final·Bundle·p4);
 18 ····
15 ····Bundle·getPurchases(final·int·p0,·final·String·p1,·final·String·p2,·final·String·p3);19 ····Bundle·getPurchases(final·int·p0,·final·String·p1,·final·String·p2,·final·String·p3);
16 ····20 ····
17 ····Bundle·getSkuDetails(final·int·p0,·final·String·p1,·final·String·p2,·final·Bundle·p3);21 ····Bundle·getSkuDetails(final·int·p0,·final·String·p1,·final·String·p2,·final·Bundle·p3);
18 ····22 ····
19 ····int·isBillingSupported(final·int·p0,·final·String·p1,·final·String·p2);23 ····int·isBillingSupported(final·int·p0,·final·String·p1,·final·String·p2);
20 ····24 ····
 25 ····int·isBillingSupportedExtraParams(final·int·p0,·final·String·p1,·final·String·p2,·final·Bundle·p3);
 26 ····
21 ····int·stub(final·int·p0,·final·String·p1,·final·String·p2);27 ····int·stub(final·int·p0,·final·String·p1,·final·String·p2);
22 }28 }
3.29 KB
com/anjlab/android/iab/v3/BillingBase.class
3.2 KB
procyon -ec {}
    
Offset 1, 81 lines modifiedOffset 1, 67 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
2 import·android.content.SharedPreferences$Editor;2 import·android.content.SharedPreferences$Editor;
3 import·android.preference.PreferenceManager;3 import·android.preference.PreferenceManager;
4 import·android.content.SharedPreferences;4 import·android.content.SharedPreferences;
5 import·android.content.Context;5 import·android.content.Context;
6 import·java.lang.ref.WeakReference; 
  
7 class·BillingBase6 class·BillingBase
8 {7 {
9 ····private·WeakReference·contextReference;8 ····private·Context·context;
10 ····9 ····
11 ····public·BillingBase(final·Context·referent)·{10 ····BillingBase(final·Context·context)·{
12 ········this.contextReference·=·new·WeakReference((T)referent);11 ········this.context·=·context;
13 ····}12 ····}
14 ····13 ····
15 ····private·SharedPreferences·getPreferences()·{14 ····private·SharedPreferences·getPreferences()·{
 15 ········return·PreferenceManager.getDefaultSharedPreferences(this.getContext());
16 ········SharedPreferences·defaultSharedPreferences; 
17 ········if·(this.contextReference.get()·!=·null)·{ 
18 ············defaultSharedPreferences·=·PreferenceManager.getDefaultSharedPreferences((Context)this.contextReference.get()); 
19 ········} 
20 ········else·{ 
21 ············defaultSharedPreferences·=·null; 
22 ········} 
23 ········return·defaultSharedPreferences; 
24 ····}16 ····}
25 ····17 ····
26 ····public·Context·getContext()·{18 ····Context·getContext()·{
27 ········return·(Context)this.contextReference.get();19 ········return·this.context;
28 ····}20 ····}
29 ····21 ····
30 ····protected·String·getPreferencesBaseKey()·{22 ····String·getPreferencesBaseKey()·{
31 ········return·((Context)this.contextReference.get()).getPackageName()·+·"_preferences";23 ········return·this.getContext().getPackageName()·+·"_preferences";
32 ····}24 ····}
33 ····25 ····
34 ····protected·boolean·loadBoolean(final·String·s,·boolean·boolean1)·{26 ····boolean·loadBoolean(final·String·s,·boolean·boolean1)·{
35 ········final·SharedPreferences·preferences·=·this.getPreferences();27 ········final·SharedPreferences·preferences·=·this.getPreferences();
36 ········if·(preferences·!=·null)·{28 ········if·(preferences·!=·null)·{
37 ············boolean1·=·preferences.getBoolean(s,·boolean1);29 ············boolean1·=·preferences.getBoolean(s,·boolean1);
38 ········}30 ········}
39 ········return·boolean1;31 ········return·boolean1;
40 ····}32 ····}
41 ····33 ····
42 ····protected·String·loadString(final·String·s,·String·string)·{34 ····String·loadString(final·String·s,·String·string)·{
43 ········final·SharedPreferences·preferences·=·this.getPreferences();35 ········final·SharedPreferences·preferences·=·this.getPreferences();
44 ········if·(preferences·!=·null)·{36 ········if·(preferences·!=·null)·{
45 ············string·=·preferences.getString(s,·string);37 ············string·=·preferences.getString(s,·string);
46 ········}38 ········}
47 ········return·string;39 ········return·string;
48 ····}40 ····}
49 ····41 ····
50 ····public·void·release()·{ 
51 ········if·(this.contextReference·!=·null)·{ 
52 ············this.contextReference.clear(); 
53 ········} 
54 ····} 
55 ···· 
56 ····protected·boolean·saveBoolean(final·String·s,·final·Boolean·b)·{42 ····boolean·saveBoolean(final·String·s,·final·Boolean·b)·{
57 ········final·SharedPreferences·preferences·=·this.getPreferences();43 ········final·SharedPreferences·preferences·=·this.getPreferences();
58 ········boolean·b2;44 ········boolean·b2;
59 ········if·(preferences·!=·null)·{45 ········if·(preferences·!=·null)·{
60 ············final·SharedPreferences$Editor·edit·=·preferences.edit();46 ············final·SharedPreferences$Editor·edit·=·preferences.edit();
61 ············edit.putBoolean(s,·(boolean)b);47 ············edit.putBoolean(s,·(boolean)b);
62 ············edit.commit();48 ············edit.commit();
63 ············b2·=·true;49 ············b2·=·true;
64 ········}50 ········}
65 ········else·{51 ········else·{
66 ············b2·=·false;52 ············b2·=·false;
67 ········}53 ········}
68 ········return·b2;54 ········return·b2;
69 ····}55 ····}
70 ····56 ····
71 ····protected·boolean·saveString(final·String·s,·final·String·s2)·{57 ····boolean·saveString(final·String·s,·final·String·s2)·{
72 ········final·SharedPreferences·preferences·=·this.getPreferences();58 ········final·SharedPreferences·preferences·=·this.getPreferences();
73 ········boolean·b;59 ········boolean·b;
74 ········if·(preferences·!=·null)·{60 ········if·(preferences·!=·null)·{
75 ············final·SharedPreferences$Editor·edit·=·preferences.edit();61 ············final·SharedPreferences$Editor·edit·=·preferences.edit();
76 ············edit.putString(s,·s2);62 ············edit.putString(s,·s2);
77 ············edit.commit();63 ············edit.commit();
78 ············b·=·true;64 ············b·=·true;
1.44 KB
com/anjlab/android/iab/v3/BillingProcessor$1.class
1.34 KB
procyon -ec {}
    
Offset 12, 23 lines modifiedOffset 12, 15 lines modified
12 ····final·/*·synthetic·*/·BillingProcessor·this$0;12 ····final·/*·synthetic·*/·BillingProcessor·this$0;
13 ····13 ····
14 ····BillingProcessor$1(final·BillingProcessor·this$0)·{14 ····BillingProcessor$1(final·BillingProcessor·this$0)·{
15 ········this.this$0·=·this$0;15 ········this.this$0·=·this$0;
16 ····}16 ····}
17 ····17 ····
18 ····public·void·onServiceConnected(final·ComponentName·componentName,·final·IBinder·binder)·{18 ····public·void·onServiceConnected(final·ComponentName·componentName,·final·IBinder·binder)·{
19 ········BillingProcessor.access$002(this.this$0,·IInAppBillingService$Stub.asInterface(binder));19 ········BillingProcessor.access$302(this.this$0,·IInAppBillingService$Stub.asInterface(binder));
 20 ········new·BillingProcessor$HistoryInitializationTask(this.this$0,·(BillingProcessor$1)null).execute((Object[])new·Void[0]);
20 ········if·(!BillingProcessor.access$100(this.this$0)·&&·this.this$0.loadOwnedPurchasesFromGoogle())·{ 
21 ············this.this$0.setPurchaseHistoryRestored(); 
22 ············if·(BillingProcessor.access$200(this.this$0)·!=·null)·{ 
23 ················BillingProcessor.access$200(this.this$0).onPurchaseHistoryRestored(); 
24 ············} 
25 ········} 
26 ········if·(BillingProcessor.access$200(this.this$0)·!=·null)·{ 
27 ············BillingProcessor.access$200(this.this$0).onBillingInitialized(); 
28 ········} 
29 ····}21 ····}
30 ····22 ····
31 ····public·void·onServiceDisconnected(final·ComponentName·componentName)·{23 ····public·void·onServiceDisconnected(final·ComponentName·componentName)·{
32 ········BillingProcessor.access$002(this.this$0,·(IInAppBillingService)null);24 ········BillingProcessor.access$302(this.this$0,·(IInAppBillingService)null);
33 ····}25 ····}
34 }26 }
556 B
com/anjlab/android/iab/v3/BuildConfig.class
470 B
procyon -ec {}
    
Offset 4, 9 lines modifiedOffset 4, 9 lines modified
4 public·final·class·BuildConfig4 public·final·class·BuildConfig
5 {5 {
6 ····public·static·final·String·APPLICATION_ID·=·"com.anjlab.android.iab.v3";6 ····public·static·final·String·APPLICATION_ID·=·"com.anjlab.android.iab.v3";
7 ····public·static·final·String·BUILD_TYPE·=·"release";7 ····public·static·final·String·BUILD_TYPE·=·"release";
8 ····public·static·final·boolean·DEBUG·=·false;8 ····public·static·final·boolean·DEBUG·=·false;
9 ····public·static·final·String·FLAVOR·=·"";9 ····public·static·final·String·FLAVOR·=·"";
10 ····public·static·final·int·VERSION_CODE·=·1;10 ····public·static·final·int·VERSION_CODE·=·1;
11 ····public·static·final·String·VERSION_NAME·=·"1.0.33";11 ····public·static·final·String·VERSION_NAME·=·"1.0.44";
12 }12 }
3.98 KB
com/anjlab/android/iab/v3/Constants.class
3.9 KB
procyon -ec {}
    
Offset 1, 15 lines modifiedOffset 1, 17 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
2 public·class·Constants2 public·class·Constants
3 {3 {
 4 ····public·static·final·int·BILLING_ERROR_BIND_PLAY_STORE_FAILED·=·113;
4 ····public·static·final·int·BILLING_ERROR_CONSUME_FAILED·=·111;5 ····public·static·final·int·BILLING_ERROR_CONSUME_FAILED·=·111;
5 ····public·static·final·int·BILLING_ERROR_FAILED_LOAD_PURCHASES·=·100;6 ····public·static·final·int·BILLING_ERROR_FAILED_LOAD_PURCHASES·=·100;
6 ····public·static·final·int·BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE·=·101;7 ····public·static·final·int·BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE·=·101;
 8 ····public·static·final·int·BILLING_ERROR_INVALID_DEVELOPER_PAYLOAD·=·105;
7 ····public·static·final·int·BILLING_ERROR_INVALID_MERCHANT_ID·=·104;9 ····public·static·final·int·BILLING_ERROR_INVALID_MERCHANT_ID·=·104;
8 ····public·static·final·int·BILLING_ERROR_INVALID_SIGNATURE·=·102;10 ····public·static·final·int·BILLING_ERROR_INVALID_SIGNATURE·=·102;
9 ····public·static·final·int·BILLING_ERROR_LOST_CONTEXT·=·103;11 ····public·static·final·int·BILLING_ERROR_LOST_CONTEXT·=·103;
10 ····public·static·final·int·BILLING_ERROR_OTHER_ERROR·=·110;12 ····public·static·final·int·BILLING_ERROR_OTHER_ERROR·=·110;
11 ····public·static·final·int·BILLING_ERROR_SKUDETAILS_FAILED·=·112;13 ····public·static·final·int·BILLING_ERROR_SKUDETAILS_FAILED·=·112;
12 ····public·static·final·int·BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE·=·3;14 ····public·static·final·int·BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE·=·3;
13 ····public·static·final·int·BILLING_RESPONSE_RESULT_DEVELOPER_ERROR·=·5;15 ····public·static·final·int·BILLING_RESPONSE_RESULT_DEVELOPER_ERROR·=·5;
Offset 18, 29 lines modifiedOffset 20, 41 lines modified
18 ····public·static·final·int·BILLING_RESPONSE_RESULT_ITEM_NOT_OWNED·=·8;20 ····public·static·final·int·BILLING_RESPONSE_RESULT_ITEM_NOT_OWNED·=·8;
19 ····public·static·final·int·BILLING_RESPONSE_RESULT_ITEM_UNAVAILABLE·=·4;21 ····public·static·final·int·BILLING_RESPONSE_RESULT_ITEM_UNAVAILABLE·=·4;
20 ····public·static·final·int·BILLING_RESPONSE_RESULT_OK·=·0;22 ····public·static·final·int·BILLING_RESPONSE_RESULT_OK·=·0;
21 ····public·static·final·int·BILLING_RESPONSE_RESULT_SERVICE_UNAVAILABLE·=·2;23 ····public·static·final·int·BILLING_RESPONSE_RESULT_SERVICE_UNAVAILABLE·=·2;
22 ····public·static·final·int·BILLING_RESPONSE_RESULT_USER_CANCELED·=·1;24 ····public·static·final·int·BILLING_RESPONSE_RESULT_USER_CANCELED·=·1;
23 ····public·static·final·String·BUY_INTENT·=·"BUY_INTENT";25 ····public·static·final·String·BUY_INTENT·=·"BUY_INTENT";
24 ····public·static·final·String·DETAILS_LIST·=·"DETAILS_LIST";26 ····public·static·final·String·DETAILS_LIST·=·"DETAILS_LIST";
 27 ····public·static·final·String·EXTRA_PARAMS_KEY_SKU_TO_REPLACE·=·"skusToReplace";
 28 ····public·static·final·String·EXTRA_PARAMS_KEY_VR·=·"vr";
25 ····public·static·final·int·GOOGLE_API_SUBSCRIPTION_CHANGE_VERSION·=·5;29 ····public·static·final·int·GOOGLE_API_SUBSCRIPTION_CHANGE_VERSION·=·5;
26 ····public·static·final·int·GOOGLE_API_VERSION·=·3;30 ····public·static·final·int·GOOGLE_API_VERSION·=·3;
 31 ····public·static·final·int·GOOGLE_API_VR_SUPPORTED_VERSION·=·7;
27 ····public·static·final·String·INAPP_DATA_SIGNATURE_LIST·=·"INAPP_DATA_SIGNATURE_LIST";32 ····public·static·final·String·INAPP_DATA_SIGNATURE_LIST·=·"INAPP_DATA_SIGNATURE_LIST";
28 ····public·static·final·String·INAPP_PURCHASE_DATA·=·"INAPP_PURCHASE_DATA";33 ····public·static·final·String·INAPP_PURCHASE_DATA·=·"INAPP_PURCHASE_DATA";
29 ····public·static·final·String·INAPP_PURCHASE_DATA_LIST·=·"INAPP_PURCHASE_DATA_LIST";34 ····public·static·final·String·INAPP_PURCHASE_DATA_LIST·=·"INAPP_PURCHASE_DATA_LIST";
30 ····public·static·final·String·PRODUCTS_LIST·=·"ITEM_ID_LIST";35 ····public·static·final·String·PRODUCTS_LIST·=·"ITEM_ID_LIST";
31 ····public·static·final·String·PRODUCT_TYPE_MANAGED·=·"inapp";36 ····public·static·final·String·PRODUCT_TYPE_MANAGED·=·"inapp";
32 ····public·static·final·String·PRODUCT_TYPE_SUBSCRIPTION·=·"subs";37 ····public·static·final·String·PRODUCT_TYPE_SUBSCRIPTION·=·"subs";
 38 ····public·static·final·String·RESPONSE_AUTO_RENEWING·=·"autoRenewing";
33 ····public·static·final·String·RESPONSE_CODE·=·"RESPONSE_CODE";39 ····public·static·final·String·RESPONSE_CODE·=·"RESPONSE_CODE";
34 ····public·static·final·String·RESPONSE_DESCRIPTION·=·"description";40 ····public·static·final·String·RESPONSE_DESCRIPTION·=·"description";
 41 ····public·static·final·String·RESPONSE_DEVELOPER_PAYLOAD·=·"developerPayload";
 42 ····public·static·final·String·RESPONSE_FREE_TRIAL_PERIOD·=·"freeTrialPeriod";
35 ····public·static·final·String·RESPONSE_INAPP_SIGNATURE·=·"INAPP_DATA_SIGNATURE";43 ····public·static·final·String·RESPONSE_INAPP_SIGNATURE·=·"INAPP_DATA_SIGNATURE";
 44 ····public·static·final·String·RESPONSE_INTRODUCTORY_PRICE·=·"introductoryPrice";
 45 ····public·static·final·String·RESPONSE_INTRODUCTORY_PRICE_CYCLES·=·"introductoryPriceCycles";
 46 ····public·static·final·String·RESPONSE_INTRODUCTORY_PRICE_MICROS·=·"introductoryPriceAmountMicros";
 47 ····public·static·final·String·RESPONSE_INTRODUCTORY_PRICE_PERIOD·=·"introductoryPricePeriod";
36 ····public·static·final·String·RESPONSE_ORDER_ID·=·"orderId";48 ····public·static·final·String·RESPONSE_ORDER_ID·=·"orderId";
37 ····public·static·final·String·RESPONSE_PAYLOAD·=·"developerPayload";49 ····public·static·final·String·RESPONSE_PACKAGE_NAME·=·"packageName";
38 ····public·static·final·String·RESPONSE_PRICE·=·"price";50 ····public·static·final·String·RESPONSE_PRICE·=·"price";
39 ····public·static·final·String·RESPONSE_PRICE_CURRENCY·=·"price_currency_code";51 ····public·static·final·String·RESPONSE_PRICE_CURRENCY·=·"price_currency_code";
40 ····public·static·final·String·RESPONSE_PRICE_MICROS·=·"price_amount_micros";52 ····public·static·final·String·RESPONSE_PRICE_MICROS·=·"price_amount_micros";
41 ····public·static·final·String·RESPONSE_PRODUCT_ID·=·"productId";53 ····public·static·final·String·RESPONSE_PRODUCT_ID·=·"productId";
 54 ····public·static·final·String·RESPONSE_PURCHASE_STATE·=·"purchaseState";
42 ····public·static·final·String·RESPONSE_PURCHASE_TIME·=·"purchaseTime";55 ····public·static·final·String·RESPONSE_PURCHASE_TIME·=·"purchaseTime";
43 ····public·static·final·String·RESPONSE_PURCHASE_TOKEN·=·"purchaseToken";56 ····public·static·final·String·RESPONSE_PURCHASE_TOKEN·=·"purchaseToken";
 57 ····public·static·final·String·RESPONSE_SUBSCRIPTION_PERIOD·=·"subscriptionPeriod";
44 ····public·static·final·String·RESPONSE_TITLE·=·"title";58 ····public·static·final·String·RESPONSE_TITLE·=·"title";
45 ····public·static·final·String·RESPONSE_TYPE·=·"type";59 ····public·static·final·String·RESPONSE_TYPE·=·"type";
46 }60 }
7.15 KB
com/anjlab/android/iab/v3/PurchaseInfo.class
7.06 KB
procyon -ec {}
    
Offset 9, 106 lines modifiedOffset 9, 99 lines modified
9 import·android.os.Parcelable$Creator;9 import·android.os.Parcelable$Creator;
10 import·android.os.Parcelable;10 import·android.os.Parcelable;
  
11 public·class·PurchaseInfo·implements·Parcelable11 public·class·PurchaseInfo·implements·Parcelable
12 {12 {
13 ····public·static·final·Parcelable$Creator·CREATOR;13 ····public·static·final·Parcelable$Creator·CREATOR;
14 ····private·static·final·String·LOG_TAG·=·"iabv3.purchaseInfo";14 ····private·static·final·String·LOG_TAG·=·"iabv3.purchaseInfo";
 15 ····public·final·PurchaseData·purchaseData;
15 ····public·final·String·responseData;16 ····public·final·String·responseData;
16 ····public·final·String·signature;17 ····public·final·String·signature;
17 ····18 ····
18 ····static·{19 ····static·{
19 ········CREATOR·=·(Parcelable$Creator)new·PurchaseInfo$1();20 ········CREATOR·=·(Parcelable$Creator)new·PurchaseInfo$1();
20 ····}21 ····}
21 ····22 ····
22 ····protected·PurchaseInfo(final·Parcel·parcel)·{23 ····protected·PurchaseInfo(final·Parcel·parcel)·{
23 ········this.responseData·=·parcel.readString();24 ········this.responseData·=·parcel.readString();
24 ········this.signature·=·parcel.readString();25 ········this.signature·=·parcel.readString();
 26 ········this.purchaseData·=·this.parseResponseDataImpl();
25 ····}27 ····}
26 ····28 ····
27 ····public·PurchaseInfo(final·String·responseData,·final·String·signature)·{29 ····public·PurchaseInfo(final·String·responseData,·final·String·signature)·{
28 ········this.responseData·=·responseData;30 ········this.responseData·=·responseData;
29 ········this.signature·=·signature;31 ········this.signature·=·signature;
 32 ········this.purchaseData·=·this.parseResponseDataImpl();
30 ····}33 ····}
31 ····34 ····
32 ····public·static·PurchaseInfo$PurchaseState·getPurchaseState(final·int·n)·{ 
33 ········PurchaseInfo$PurchaseState·purchaseInfo$PurchaseState·=·null; 
34 ········switch·(n)·{ 
35 ············default:·{ 
36 ················purchaseInfo$PurchaseState·=·PurchaseInfo$PurchaseState.Canceled;35 ····public·int·describeContents()·{
 36 ········return·0;
 37 ····}
 38 ····
 39 ····@Override
 40 ····public·boolean·equals(final·Object·o)·{
 41 ········boolean·b·=·true;
 42 ········if·(this·!=·o)·{
 43 ············if·(o·==·null·||·!(o·instanceof·PurchaseInfo))·{
37 ················break;44 ················b·=·false;
38 ············}45 ············}
39 ············case·0:·{46 ············else·{
40 ················purchaseInfo$PurchaseState·=·PurchaseInfo$PurchaseState.PurchasedSuccessfully; 
41 ················break;47 ················final·PurchaseInfo·purchaseInfo·=·(PurchaseInfo)o;
 48 ················if·(!this.responseData.equals(purchaseInfo.responseData)·||·!this.signature.equals(purchaseInfo.signature)·||·!this.purchaseData.purchaseToken.equals(purchaseInfo.purchaseData.purchaseToken)·||·!this.purchaseData.purchaseTime.equals(purchaseInfo.purchaseData.purchaseTime))·{
 49 ····················b·=·false;
42 ············}50 ················}
43 ············case·1:·{ 
44 ················purchaseInfo$PurchaseState·=·PurchaseInfo$PurchaseState.Canceled; 
45 ················break; 
46 ············} 
47 ············case·2:·{ 
48 ················purchaseInfo$PurchaseState·=·PurchaseInfo$PurchaseState.Refunded; 
49 ················break; 
50 ············} 
51 ············case·3:·{ 
52 ················purchaseInfo$PurchaseState·=·PurchaseInfo$PurchaseState.SubscriptionExpired; 
53 ················break; 
54 ············}51 ············}
55 ········}52 ········}
56 ········return·purchaseInfo$PurchaseState;53 ········return·b;
57 ····}54 ····}
58 ····55 ····
59 ····public·int·describeContents()·{ 
60 ········return·0;56 ····public·PurchaseData·parseResponseData()·{
 57 ········return·this.parseResponseDataImpl();
61 ····}58 ····}
62 ····59 ····
63 ····public·PurchaseInfo$ResponseData·parseResponseData()·{60 ····PurchaseData·parseResponseDataImpl()·{
64 ········final·long·n·=·0L;61 ········final·long·n·=·0L;
65 ········try·{62 ········try·{
66 ············try·{63 ············try·{
67 ················final·JSONObject·jsonObject·=·new·JSONObject(this.responseData);64 ················final·JSONObject·jsonObject·=·new·JSONObject(this.responseData);
68 ················PurchaseInfo$ResponseData·purchaseInfo$ResponseData·=·new(com.anjlab.android.iab.v3.PurchaseInfo$ResponseData.class);65 ················PurchaseData·purchaseData·=·new(com.anjlab.android.iab.v3.PurchaseData.class);
69 ················try·{66 ················try·{
70 ····················new·PurchaseInfo$ResponseData();67 ····················new·PurchaseData();
71 ····················purchaseInfo$ResponseData.orderId·=·jsonObject.optString("orderId");68 ····················purchaseData.orderId·=·jsonObject.optString("orderId");
72 ····················purchaseInfo$ResponseData.packageName·=·jsonObject.optString("packageName");69 ····················purchaseData.packageName·=·jsonObject.optString("packageName");
73 ····················purchaseInfo$ResponseData.productId·=·jsonObject.optString("productId");70 ····················purchaseData.productId·=·jsonObject.optString("productId");
74 ····················final·long·optLong·=·jsonObject.optLong("purchaseTime",·0L);71 ····················final·long·optLong·=·jsonObject.optLong("purchaseTime",·0L);
75 ····················Label_0223:·{72 ····················Label_0228:·{
76 ························if·(optLong·==·n)·{73 ························if·(optLong·==·n)·{
77 ····························break·Label_0223;74 ····························break·Label_0228;
78 ························}75 ························}
79 ························Date·purchaseTime·=·new·Date(optLong);76 ························Date·purchaseTime·=·new·Date(optLong);
80 ························while·(true)·{77 ························while·(true)·{
81 ····························final·PurchaseInfo$ResponseData·purchaseInfo$ResponseData2·=·purchaseInfo$ResponseData;78 ····························final·PurchaseData·purchaseData2·=·purchaseData;
82 ····························try·{79 ····························try·{
83 ································purchaseInfo$ResponseData2.purchaseTime·=·purchaseTime;80 ································purchaseData2.purchaseTime·=·purchaseTime;
 81 ································purchaseData.purchaseState·=·PurchaseState.values()[jsonObject.optInt("purchaseState",·1)];
84 ································final·int·optInt·=·jsonObject.optInt("purchaseState",·1); 
85 ································try·{ 
86 ····································purchaseInfo$ResponseData.purchaseState·=·getPurchaseState(optInt); 
87 ····································purchaseInfo$ResponseData.developerPayload·=·jsonObject.optString("developerPayload");82 ································purchaseData.developerPayload·=·jsonObject.optString("developerPayload");
88 ····································purchaseInfo$ResponseData.purchaseToken·=·jsonObject.getString("purchaseToken");83 ································purchaseData.purchaseToken·=·jsonObject.getString("purchaseToken");
89 ····································purchaseInfo$ResponseData.autoRenewing·=·jsonObject.optBoolean("autoRenewing");84 ································purchaseData.autoRenewing·=·jsonObject.optBoolean("autoRenewing");
90 ····································return·purchaseInfo$ResponseData;85 ································return·purchaseData;
91 ····································purchaseTime·=·null;86 ································purchaseTime·=·null;
92 ································}87 ····························}
93 ································catch·(JSONException·ex)·{88 ····························catch·(JSONException·ex)·{
94 ····································Log.e("iabv3.purchaseInfo",·"Failed·to·parse·response·data",·(Throwable)ex);89 ································Log.e("iabv3.purchaseInfo",·"Failed·to·parse·response·data",·(Throwable)ex);
95 ····································purchaseInfo$ResponseData·=·null;90 ································purchaseData·=·null;
96 ································} 
97 ····························}91 ····························}
98 ····························catch·(JSONException·ex2)·{} 
99 ························}92 ························}
100 ····················}93 ····················}
101 ················}94 ················}
102 ················catch·(JSONException·ex3)·{}95 ················catch·(JSONException·ex2)·{}
103 ············}96 ············}
104 ············catch·(JSONException·ex4)·{}97 ············catch·(JSONException·ex3)·{}
105 ········}98 ········}
106 ········catch·(JSONException·ex5)·{}99 ········catch·(JSONException·ex4)·{}
107 ····}100 ····}
108 ····101 ····
109 ····public·void·writeToParcel(final·Parcel·parcel,·final·int·n)·{102 ····public·void·writeToParcel(final·Parcel·parcel,·final·int·n)·{
110 ········parcel.writeString(this.responseData);103 ········parcel.writeString(this.responseData);
111 ········parcel.writeString(this.signature);104 ········parcel.writeString(this.signature);
112 ····}105 ····}
113 }106 }
6.06 KB
com/anjlab/android/iab/v3/SkuDetails.class
5.98 KB
procyon -ec {}
    
Offset 1, 55 lines modifiedOffset 1, 93 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
 2 import·java.util.Locale;
 3 import·android.text.TextUtils;
2 import·org.json.JSONObject;4 import·org.json.JSONObject;
3 import·android.os.Parcel;5 import·android.os.Parcel;
4 import·android.os.Parcelable$Creator;6 import·android.os.Parcelable$Creator;
5 import·android.os.Parcelable;7 import·android.os.Parcelable;
  
6 public·class·SkuDetails·implements·Parcelable8 public·class·SkuDetails·implements·Parcelable
7 {9 {
8 ····public·static·final·Parcelable$Creator·CREATOR;10 ····public·static·final·Parcelable$Creator·CREATOR;
9 ····public·final·String·currency;11 ····public·final·String·currency;
10 ····public·final·String·description;12 ····public·final·String·description;
 13 ····public·final·boolean·haveIntroductoryPeriod;
 14 ····public·final·boolean·haveTrialPeriod;
 15 ····public·final·int·introductoryPriceCycles;
 16 ····public·final·long·introductoryPriceLong;
 17 ····public·final·String·introductoryPricePeriod;
 18 ····public·final·String·introductoryPriceText;
 19 ····public·final·double·introductoryPriceValue;
11 ····public·final·boolean·isSubscription;20 ····public·final·boolean·isSubscription;
12 ····public·final·long·priceLong;21 ····public·final·long·priceLong;
13 ····public·final·String·priceText;22 ····public·final·String·priceText;
14 ····public·final·Double·priceValue;23 ····public·final·Double·priceValue;
15 ····public·final·String·productId;24 ····public·final·String·productId;
 25 ····public·final·String·subscriptionFreeTrialPeriod;
 26 ····public·final·String·subscriptionPeriod;
16 ····public·final·String·title;27 ····public·final·String·title;
17 ····28 ····
18 ····static·{29 ····static·{
19 ········CREATOR·=·(Parcelable$Creator)new·SkuDetails$1();30 ········CREATOR·=·(Parcelable$Creator)new·SkuDetails$1();
20 ····}31 ····}
21 ····32 ····
22 ····protected·SkuDetails(final·Parcel·parcel)·{33 ····protected·SkuDetails(final·Parcel·parcel)·{
 34 ········boolean·haveIntroductoryPeriod·=·true;
23 ········this.productId·=·parcel.readString();35 ········this.productId·=·parcel.readString();
24 ········this.title·=·parcel.readString();36 ········this.title·=·parcel.readString();
25 ········this.description·=·parcel.readString();37 ········this.description·=·parcel.readString();
26 ········this.isSubscription·=·(parcel.readByte()·!=·0);38 ········this.isSubscription·=·(parcel.readByte()·!=·0·&&·haveIntroductoryPeriod);
27 ········this.currency·=·parcel.readString();39 ········this.currency·=·parcel.readString();
28 ········this.priceValue·=·Double.valueOf(parcel.readDouble());40 ········this.priceValue·=·Double.valueOf(parcel.readDouble());
29 ········this.priceLong·=·parcel.readLong();41 ········this.priceLong·=·parcel.readLong();
30 ········this.priceText·=·parcel.readString();42 ········this.priceText·=·parcel.readString();
 43 ········this.subscriptionPeriod·=·parcel.readString();
 44 ········this.subscriptionFreeTrialPeriod·=·parcel.readString();
 45 ········this.haveTrialPeriod·=·(parcel.readByte()·!=·0·&&·haveIntroductoryPeriod);
 46 ········this.introductoryPriceValue·=·parcel.readDouble();
 47 ········this.introductoryPriceLong·=·parcel.readLong();
 48 ········this.introductoryPriceText·=·parcel.readString();
 49 ········this.introductoryPricePeriod·=·parcel.readString();
 50 ········if·(parcel.readByte()·==·0)·{
 51 ············haveIntroductoryPeriod·=·false;
 52 ········}
 53 ········this.haveIntroductoryPeriod·=·haveIntroductoryPeriod;
 54 ········this.introductoryPriceCycles·=·parcel.readInt();
31 ····}55 ····}
32 ····56 ····
33 ····public·SkuDetails(final·JSONObject·jsonObject)·{57 ····public·SkuDetails(final·JSONObject·jsonObject)·{
 58 ········boolean·haveIntroductoryPeriod·=·true;
 59 ········final·double·n·=·1000000.0;
34 ········String·optString·=·jsonObject.optString("type");60 ········String·optString·=·jsonObject.optString("type");
35 ········if·(optString·==·null)·{61 ········if·(optString·==·null)·{
36 ············optString·=·"inapp";62 ············optString·=·"inapp";
37 ········}63 ········}
38 ········this.productId·=·jsonObject.optString("productId");64 ········this.productId·=·jsonObject.optString("productId");
39 ········this.title·=·jsonObject.optString("title");65 ········this.title·=·jsonObject.optString("title");
40 ········this.description·=·jsonObject.optString("description");66 ········this.description·=·jsonObject.optString("description");
41 ········this.isSubscription·=·optString.equalsIgnoreCase("subs");67 ········this.isSubscription·=·optString.equalsIgnoreCase("subs");
42 ········this.currency·=·jsonObject.optString("price_currency_code");68 ········this.currency·=·jsonObject.optString("price_currency_code");
43 ········this.priceLong·=·jsonObject.optLong("price_amount_micros");69 ········this.priceLong·=·jsonObject.optLong("price_amount_micros");
44 ········this.priceValue·=·Double.valueOf((double)this.priceLong·/·1000000.0);70 ········this.priceValue·=·Double.valueOf((double)this.priceLong·/·n);
45 ········this.priceText·=·jsonObject.optString("price");71 ········this.priceText·=·jsonObject.optString("price");
 72 ········this.subscriptionPeriod·=·jsonObject.optString("subscriptionPeriod");
 73 ········this.subscriptionFreeTrialPeriod·=·jsonObject.optString("freeTrialPeriod");
 74 ········this.haveTrialPeriod·=·(!TextUtils.isEmpty((CharSequence)this.subscriptionFreeTrialPeriod)·&&·haveIntroductoryPeriod);
 75 ········this.introductoryPriceLong·=·jsonObject.optLong("introductoryPriceAmountMicros");
 76 ········this.introductoryPriceValue·=·this.introductoryPriceLong·/·n;
 77 ········this.introductoryPriceText·=·jsonObject.optString("introductoryPrice");
 78 ········this.introductoryPricePeriod·=·jsonObject.optString("introductoryPricePeriod");
 79 ········if·(TextUtils.isEmpty((CharSequence)this.introductoryPricePeriod))·{
 80 ············haveIntroductoryPeriod·=·false;
 81 ········}
 82 ········this.haveIntroductoryPeriod·=·haveIntroductoryPeriod;
 83 ········this.introductoryPriceCycles·=·jsonObject.optInt("introductoryPriceCycles");
46 ····}84 ····}
47 ····85 ····
48 ····public·int·describeContents()·{86 ····public·int·describeContents()·{
49 ········return·0;87 ········return·0;
50 ····}88 ····}
51 ····89 ····
52 ····@Override90 ····@Override
Offset 95, 28 lines modifiedOffset 133, 48 lines modified
95 ············n·=·1;133 ············n·=·1;
96 ········}134 ········}
97 ········return·n2·+·n;135 ········return·n2·+·n;
98 ····}136 ····}
99 ····137 ····
100 ····@Override138 ····@Override
101 ····public·String·toString()·{139 ····public·String·toString()·{
102 ········return·String.format("%s:·%s(%s)·%f·in·%s·(%s)",·this.productId,·this.title,·this.description,·this.priceValue,·this.currency,·this.priceText);140 ········return·String.format(Locale.US,·"%s:·%s(%s)·%f·in·%s·(%s)",·this.productId,·this.title,·this.description,·this.priceValue,·this.currency,·this.priceText);
103 ····}141 ····}
104 ····142 ····
105 ····public·void·writeToParcel(final·Parcel·parcel,·final·int·n)·{143 ····public·void·writeToParcel(final·Parcel·parcel,·final·int·n)·{
 144 ········byte·b·=·1;
106 ········parcel.writeString(this.productId);145 ········parcel.writeString(this.productId);
107 ········parcel.writeString(this.title);146 ········parcel.writeString(this.title);
108 ········parcel.writeString(this.description);147 ········parcel.writeString(this.description);
109 ········byte·b;148 ········byte·b2;
110 ········if·(this.isSubscription)·{149 ········if·(this.isSubscription)·{
111 ············b·=·1;150 ············b2·=·b;
112 ········}151 ········}
113 ········else·{152 ········else·{
114 ············b·=·0;153 ············b2·=·0;
115 ········}154 ········}
116 ········parcel.writeByte(b);155 ········parcel.writeByte(b2);
117 ········parcel.writeString(this.currency);156 ········parcel.writeString(this.currency);
118 ········parcel.writeDouble((double)this.priceValue);157 ········parcel.writeDouble((double)this.priceValue);
119 ········parcel.writeLong(this.priceLong);158 ········parcel.writeLong(this.priceLong);
120 ········parcel.writeString(this.priceText);159 ········parcel.writeString(this.priceText);
 160 ········parcel.writeString(this.subscriptionPeriod);
 161 ········parcel.writeString(this.subscriptionFreeTrialPeriod);
 162 ········byte·b3;
 163 ········if·(this.haveTrialPeriod)·{
 164 ············b3·=·b;
 165 ········}
Max diff block lines reached; 3/6091 bytes (0.05%) of diff not shown.
3.21 KB
com/anjlab/android/iab/v3/TransactionDetails.class
3.12 KB
procyon -ec {}
    
Offset 1, 11 lines modifiedOffset 1, 11 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
2 import·org.json.JSONObject;2 import·java.util.Locale;
3 import·android.os.Parcel;3 import·android.os.Parcel;
4 import·java.util.Date;4 import·java.util.Date;
5 import·android.os.Parcelable$Creator;5 import·android.os.Parcelable$Creator;
6 import·android.os.Parcelable;6 import·android.os.Parcelable;
  
7 public·class·TransactionDetails·implements·Parcelable7 public·class·TransactionDetails·implements·Parcelable
8 {8 {
Offset 17, 36 lines modifiedOffset 17, 27 lines modified
17 ····public·final·String·purchaseToken;17 ····public·final·String·purchaseToken;
18 ····18 ····
19 ····static·{19 ····static·{
20 ········CREATOR·=·(Parcelable$Creator)new·TransactionDetails$1();20 ········CREATOR·=·(Parcelable$Creator)new·TransactionDetails$1();
21 ····}21 ····}
22 ····22 ····
23 ····protected·TransactionDetails(final·Parcel·parcel)·{23 ····protected·TransactionDetails(final·Parcel·parcel)·{
24 ········this.productId·=·parcel.readString(); 
25 ········this.orderId·=·parcel.readString(); 
26 ········this.purchaseToken·=·parcel.readString(); 
27 ········final·long·long1·=·parcel.readLong(); 
28 ········Date·purchaseTime; 
29 ········if·(long1·==·-1)·{ 
30 ············purchaseTime·=·null; 
31 ········} 
32 ········else·{ 
33 ············purchaseTime·=·new·Date(long1); 
34 ········} 
35 ········this.purchaseTime·=·purchaseTime; 
36 ········this.purchaseInfo·=·(PurchaseInfo)parcel.readParcelable(PurchaseInfo.class.getClassLoader());24 ········this.purchaseInfo·=·(PurchaseInfo)parcel.readParcelable(PurchaseInfo.class.getClassLoader());
 25 ········this.productId·=·this.purchaseInfo.purchaseData.productId;
 26 ········this.orderId·=·this.purchaseInfo.purchaseData.orderId;
 27 ········this.purchaseToken·=·this.purchaseInfo.purchaseData.purchaseToken;
 28 ········this.purchaseTime·=·this.purchaseInfo.purchaseData.purchaseTime;
37 ····}29 ····}
38 ····30 ····
39 ····public·TransactionDetails(final·PurchaseInfo·purchaseInfo)·{31 ····public·TransactionDetails(final·PurchaseInfo·purchaseInfo)·{
40 ········final·JSONObject·jsonObject·=·new·JSONObject(purchaseInfo.responseData); 
41 ········this.purchaseInfo·=·purchaseInfo;32 ········this.purchaseInfo·=·purchaseInfo;
42 ········this.productId·=·jsonObject.getString("productId"); 
43 ········this.orderId·=·jsonObject.optString("orderId"); 
44 ········this.purchaseToken·=·jsonObject.getString("purchaseToken"); 
45 ········this.purchaseTime·=·new·Date(jsonObject.getLong("purchaseTime"));33 ········this.productId·=·this.purchaseInfo.purchaseData.productId;
 34 ········this.orderId·=·this.purchaseInfo.purchaseData.orderId;
 35 ········this.purchaseToken·=·this.purchaseInfo.purchaseData.purchaseToken;
 36 ········this.purchaseTime·=·this.purchaseInfo.purchaseData.purchaseTime;
46 ····}37 ····}
47 ····38 ····
48 ····public·int·describeContents()·{39 ····public·int·describeContents()·{
49 ········return·0;40 ········return·0;
50 ····}41 ····}
51 ····42 ····
52 ····@Override43 ····@Override
Offset 82, 25 lines modifiedOffset 73, 14 lines modified
82 ············hashCode·=·0;73 ············hashCode·=·0;
83 ········}74 ········}
84 ········return·hashCode;75 ········return·hashCode;
85 ····}76 ····}
86 ····77 ····
87 ····@Override78 ····@Override
88 ····public·String·toString()·{79 ····public·String·toString()·{
89 ········return·String.format("%s·purchased·at·%s(%s).·Token:·%s,·Signature:·%s",·this.productId,·this.purchaseTime,·this.orderId,·this.purchaseToken,·this.purchaseInfo.signature);80 ········return·String.format(Locale.US,·"%s·purchased·at·%s(%s).·Token:·%s,·Signature:·%s",·this.productId,·this.purchaseTime,·this.orderId,·this.purchaseToken,·this.purchaseInfo.signature);
90 ····}81 ····}
91 ····82 ····
92 ····public·void·writeToParcel(final·Parcel·parcel,·final·int·n)·{83 ····public·void·writeToParcel(final·Parcel·parcel,·final·int·n)·{
93 ········parcel.writeString(this.productId); 
94 ········parcel.writeString(this.orderId); 
95 ········parcel.writeString(this.purchaseToken); 
96 ········long·time; 
97 ········if·(this.purchaseTime·!=·null)·{ 
98 ············time·=·this.purchaseTime.getTime(); 
99 ········} 
100 ········else·{ 
101 ············time·=·-1; 
102 ········} 
103 ········parcel.writeLong(time); 
104 ········parcel.writeParcelable((Parcelable)this.purchaseInfo,·n);84 ········parcel.writeParcelable((Parcelable)this.purchaseInfo,·n);
105 ····}85 ····}
106 }86 }
5.19 KB
com/android/vending/billing/IInAppBillingService$Stub$Proxy.class
5.06 KB
procyon -ec {}
    
Offset 63, 14 lines modifiedOffset 63, 48 lines modified
63 ········}63 ········}
64 ········finally·{64 ········finally·{
65 ············obtain2.recycle();65 ············obtain2.recycle();
66 ············obtain.recycle();66 ············obtain.recycle();
67 ········}67 ········}
68 ····}68 ····}
69 ····69 ····
 70 ····public·Bundle·getBuyIntentExtraParams(final·int·n,·final·String·s,·final·String·s2,·final·String·s3,·final·String·s4,·final·Bundle·bundle)·{
 71 ········while·(true)·{
 72 ············final·Parcel·obtain·=·Parcel.obtain();
 73 ············final·Parcel·obtain2·=·Parcel.obtain();
 74 ············final·String·s5·=·"com.android.vending.billing.IInAppBillingService";
 75 ············final·Parcel·parcel·=·obtain;
 76 ············try·{
 77 ················parcel.writeInterfaceToken(s5);
 78 ················obtain.writeInt(n);
 79 ················obtain.writeString(s);
 80 ················obtain.writeString(s2);
 81 ················obtain.writeString(s3);
 82 ················obtain.writeString(s4);
 83 ················if·(bundle·!=·null)·{
 84 ····················obtain.writeInt(1);
 85 ····················bundle.writeToParcel(obtain,·0);
 86 ················}
 87 ················else·{
 88 ····················obtain.writeInt(0);
 89 ················}
 90 ················this.mRemote.transact(8,·obtain,·obtain2,·0);
 91 ················obtain2.readException();
 92 ················if·(obtain2.readInt()·!=·0)·{
 93 ····················return·(Bundle)Bundle.CREATOR.createFromParcel(obtain2);
 94 ················}
 95 ············}
 96 ············finally·{
 97 ················obtain2.recycle();
 98 ················obtain.recycle();
 99 ············}
 100 ············return·null;
 101 ········}
 102 ····}
 103 ····
70 ····public·Bundle·getBuyIntentToReplaceSkus(final·int·n,·final·String·s,·final·List·list,·final·String·s2,·final·String·s3,·final·String·s4)·{104 ····public·Bundle·getBuyIntentToReplaceSkus(final·int·n,·final·String·s,·final·List·list,·final·String·s2,·final·String·s3,·final·String·s4)·{
71 ········final·Parcel·obtain·=·Parcel.obtain();105 ········final·Parcel·obtain·=·Parcel.obtain();
72 ········final·Parcel·obtain2·=·Parcel.obtain();106 ········final·Parcel·obtain2·=·Parcel.obtain();
73 ········final·String·s5·=·"com.android.vending.billing.IInAppBillingService";107 ········final·String·s5·=·"com.android.vending.billing.IInAppBillingService";
74 ········final·Parcel·parcel·=·obtain;108 ········final·Parcel·parcel·=·obtain;
75 ········try·{109 ········try·{
76 ············parcel.writeInterfaceToken(s5);110 ············parcel.writeInterfaceToken(s5);
Offset 97, 14 lines modifiedOffset 131, 47 lines modified
97 ········}131 ········}
98 ····}132 ····}
99 ····133 ····
100 ····public·String·getInterfaceDescriptor()·{134 ····public·String·getInterfaceDescriptor()·{
101 ········return·"com.android.vending.billing.IInAppBillingService";135 ········return·"com.android.vending.billing.IInAppBillingService";
102 ····}136 ····}
103 ····137 ····
 138 ····public·Bundle·getPurchaseHistory(final·int·n,·final·String·s,·final·String·s2,·final·String·s3,·final·Bundle·bundle)·{
 139 ········while·(true)·{
 140 ············final·Parcel·obtain·=·Parcel.obtain();
 141 ············final·Parcel·obtain2·=·Parcel.obtain();
 142 ············final·String·s4·=·"com.android.vending.billing.IInAppBillingService";
 143 ············final·Parcel·parcel·=·obtain;
 144 ············try·{
 145 ················parcel.writeInterfaceToken(s4);
 146 ················obtain.writeInt(n);
 147 ················obtain.writeString(s);
 148 ················obtain.writeString(s2);
 149 ················obtain.writeString(s3);
 150 ················if·(bundle·!=·null)·{
 151 ····················obtain.writeInt(1);
 152 ····················bundle.writeToParcel(obtain,·0);
 153 ················}
 154 ················else·{
 155 ····················obtain.writeInt(0);
 156 ················}
 157 ················this.mRemote.transact(9,·obtain,·obtain2,·0);
 158 ················obtain2.readException();
 159 ················if·(obtain2.readInt()·!=·0)·{
 160 ····················return·(Bundle)Bundle.CREATOR.createFromParcel(obtain2);
 161 ················}
 162 ············}
 163 ············finally·{
 164 ················obtain2.recycle();
 165 ················obtain.recycle();
 166 ············}
 167 ············return·null;
 168 ········}
 169 ····}
 170 ····
104 ····public·Bundle·getPurchases(final·int·n,·final·String·s,·final·String·s2,·final·String·s3)·{171 ····public·Bundle·getPurchases(final·int·n,·final·String·s,·final·String·s2,·final·String·s3)·{
105 ········final·Parcel·obtain·=·Parcel.obtain();172 ········final·Parcel·obtain·=·Parcel.obtain();
106 ········final·Parcel·obtain2·=·Parcel.obtain();173 ········final·Parcel·obtain2·=·Parcel.obtain();
107 ········final·String·s4·=·"com.android.vending.billing.IInAppBillingService";174 ········final·String·s4·=·"com.android.vending.billing.IInAppBillingService";
108 ········final·Parcel·parcel·=·obtain;175 ········final·Parcel·parcel·=·obtain;
109 ········try·{176 ········try·{
110 ············parcel.writeInterfaceToken(s4);177 ············parcel.writeInterfaceToken(s4);
Offset 175, 14 lines modifiedOffset 242, 41 lines modified
175 ············obtain2.readException();242 ············obtain2.readException();
176 ············return·obtain2.readInt();243 ············return·obtain2.readInt();
177 ········}244 ········}
178 ········finally·{245 ········finally·{
179 ············obtain2.recycle();246 ············obtain2.recycle();
180 ············obtain.recycle();247 ············obtain.recycle();
181 ········}248 ········}
 249 ····}
 250 ····
 251 ····public·int·isBillingSupportedExtraParams(final·int·n,·final·String·s,·final·String·s2,·final·Bundle·bundle)·{
 252 ········final·Parcel·obtain·=·Parcel.obtain();
 253 ········final·Parcel·obtain2·=·Parcel.obtain();
 254 ········final·String·s3·=·"com.android.vending.billing.IInAppBillingService";
 255 ········final·Parcel·parcel·=·obtain;
 256 ········try·{
 257 ············parcel.writeInterfaceToken(s3);
 258 ············obtain.writeInt(n);
 259 ············obtain.writeString(s);
 260 ············obtain.writeString(s2);
 261 ············if·(bundle·!=·null)·{
 262 ················obtain.writeInt(1);
 263 ················bundle.writeToParcel(obtain,·0);
 264 ············}
 265 ············else·{
 266 ················obtain.writeInt(0);
 267 ············}
 268 ············this.mRemote.transact(10,·obtain,·obtain2,·0);
 269 ············obtain2.readException();
 270 ············return·obtain2.readInt();
 271 ········}
Max diff block lines reached; 290/5154 bytes (5.63%) of diff not shown.
4.5 KB
com/android/vending/billing/IInAppBillingService$Stub.class
4.38 KB
procyon -ec {}
    
Offset 9, 18 lines modifiedOffset 9, 21 lines modified
9 import·android.os.Binder;9 import·android.os.Binder;
  
10 public·abstract·class·IInAppBillingService$Stub·extends·Binder·implements·IInAppBillingService10 public·abstract·class·IInAppBillingService$Stub·extends·Binder·implements·IInAppBillingService
11 {11 {
12 ····private·static·final·String·DESCRIPTOR·=·"com.android.vending.billing.IInAppBillingService";12 ····private·static·final·String·DESCRIPTOR·=·"com.android.vending.billing.IInAppBillingService";
13 ····static·final·int·TRANSACTION_consumePurchase·=·5;13 ····static·final·int·TRANSACTION_consumePurchase·=·5;
14 ····static·final·int·TRANSACTION_getBuyIntent·=·3;14 ····static·final·int·TRANSACTION_getBuyIntent·=·3;
 15 ····static·final·int·TRANSACTION_getBuyIntentExtraParams·=·8;
15 ····static·final·int·TRANSACTION_getBuyIntentToReplaceSkus·=·7;16 ····static·final·int·TRANSACTION_getBuyIntentToReplaceSkus·=·7;
 17 ····static·final·int·TRANSACTION_getPurchaseHistory·=·9;
16 ····static·final·int·TRANSACTION_getPurchases·=·4;18 ····static·final·int·TRANSACTION_getPurchases·=·4;
17 ····static·final·int·TRANSACTION_getSkuDetails·=·2;19 ····static·final·int·TRANSACTION_getSkuDetails·=·2;
18 ····static·final·int·TRANSACTION_isBillingSupported·=·1;20 ····static·final·int·TRANSACTION_isBillingSupported·=·1;
 21 ····static·final·int·TRANSACTION_isBillingSupportedExtraParams·=·10;
19 ····static·final·int·TRANSACTION_stub·=·6;22 ····static·final·int·TRANSACTION_stub·=·6;
20 ····23 ····
21 ····public·IInAppBillingService$Stub()·{24 ····public·IInAppBillingService$Stub()·{
22 ········this.attachInterface((IInterface)this,·"com.android.vending.billing.IInAppBillingService");25 ········this.attachInterface((IInterface)this,·"com.android.vending.billing.IInAppBillingService");
23 ····}26 ····}
24 ····27 ····
25 ····public·static·IInAppBillingService·asInterface(final·IBinder·binder)·{28 ····public·static·IInAppBillingService·asInterface(final·IBinder·binder)·{
Offset 142, 11 lines modifiedOffset 145, 80 lines modified
142 ················}145 ················}
143 ················else·{146 ················else·{
144 ····················parcel2.writeInt(0);147 ····················parcel2.writeInt(0);
145 ················}148 ················}
146 ················onTransact·=·true;149 ················onTransact·=·true;
147 ················break;150 ················break;
148 ············}151 ············}
 152 ············case·8:·{
 153 ················parcel.enforceInterface("com.android.vending.billing.IInAppBillingService");
 154 ················final·int·int2·=·parcel.readInt();
 155 ················final·String·string3·=·parcel.readString();
 156 ················final·String·string4·=·parcel.readString();
 157 ················final·String·string5·=·parcel.readString();
 158 ················final·String·string6·=·parcel.readString();
 159 ················Bundle·bundle2;
 160 ················if·(parcel.readInt()·!=·0)·{
 161 ····················bundle2·=·(Bundle)Bundle.CREATOR.createFromParcel(parcel);
 162 ················}
 163 ················else·{
 164 ····················bundle2·=·null;
 165 ················}
 166 ················final·Bundle·buyIntentExtraParams·=·this.getBuyIntentExtraParams(int2,·string3,·string4,·string5,·string6,·bundle2);
 167 ················parcel2.writeNoException();
 168 ················if·(buyIntentExtraParams·!=·null)·{
 169 ····················parcel2.writeInt(1);
 170 ····················buyIntentExtraParams.writeToParcel(parcel2,·1);
 171 ················}
 172 ················else·{
 173 ····················parcel2.writeInt(0);
 174 ················}
 175 ················onTransact·=·true;
 176 ················break;
 177 ············}
 178 ············case·9:·{
 179 ················parcel.enforceInterface("com.android.vending.billing.IInAppBillingService");
 180 ················final·int·int3·=·parcel.readInt();
 181 ················final·String·string7·=·parcel.readString();
 182 ················final·String·string8·=·parcel.readString();
 183 ················final·String·string9·=·parcel.readString();
 184 ················Bundle·bundle3;
 185 ················if·(parcel.readInt()·!=·0)·{
 186 ····················bundle3·=·(Bundle)Bundle.CREATOR.createFromParcel(parcel);
 187 ················}
 188 ················else·{
 189 ····················bundle3·=·null;
 190 ················}
 191 ················final·Bundle·purchaseHistory·=·this.getPurchaseHistory(int3,·string7,·string8,·string9,·bundle3);
 192 ················parcel2.writeNoException();
 193 ················if·(purchaseHistory·!=·null)·{
 194 ····················parcel2.writeInt(1);
 195 ····················purchaseHistory.writeToParcel(parcel2,·1);
 196 ················}
 197 ················else·{
 198 ····················parcel2.writeInt(0);
 199 ················}
 200 ················onTransact·=·true;
 201 ················break;
 202 ············}
 203 ············case·10:·{
 204 ················parcel.enforceInterface("com.android.vending.billing.IInAppBillingService");
 205 ················final·int·int4·=·parcel.readInt();
 206 ················final·String·string10·=·parcel.readString();
 207 ················final·String·string11·=·parcel.readString();
 208 ················Bundle·bundle4;
 209 ················if·(parcel.readInt()·!=·0)·{
 210 ····················bundle4·=·(Bundle)Bundle.CREATOR.createFromParcel(parcel);
 211 ················}
 212 ················else·{
 213 ····················bundle4·=·null;
 214 ················}
 215 ················final·int·billingSupportedExtraParams·=·this.isBillingSupportedExtraParams(int4,·string10,·string11,·bundle4);
 216 ················parcel2.writeNoException();
 217 ················parcel2.writeInt(billingSupportedExtraParams);
 218 ················onTransact·=·true;
 219 ················break;
 220 ············}
149 ········}221 ········}
150 ········return·onTransact;222 ········return·onTransact;
151 ····}223 ····}
152 }224 }
2.27 KB
com/anjlab/android/iab/v3/BillingCache.class
2.19 KB
procyon -ec {}
    
Offset 16, 15 lines modifiedOffset 16, 15 lines modified
16 ····private·static·final·String·ENTRY_DELIMITER·=·"#####";16 ····private·static·final·String·ENTRY_DELIMITER·=·"#####";
17 ····private·static·final·String·LINE_DELIMITER·=·">>>>>";17 ····private·static·final·String·LINE_DELIMITER·=·">>>>>";
18 ····private·static·final·String·VERSION_KEY·=·".version";18 ····private·static·final·String·VERSION_KEY·=·".version";
19 ····private·String·cacheKey;19 ····private·String·cacheKey;
20 ····private·HashMap·data;20 ····private·HashMap·data;
21 ····private·String·version;21 ····private·String·version;
22 ····22 ····
23 ····public·BillingCache(final·Context·context,·final·String·cacheKey)·{23 ····BillingCache(final·Context·context,·final·String·cacheKey)·{
24 ········super(context);24 ········super(context);
25 ········this.data·=·new·HashMap();25 ········this.data·=·new·HashMap();
26 ········this.cacheKey·=·cacheKey;26 ········this.cacheKey·=·cacheKey;
27 ········this.load();27 ········this.load();
28 ····}28 ····}
29 ····29 ····
30 ····private·void·flush()·{30 ····private·void·flush()·{
Offset 72, 50 lines modifiedOffset 72, 50 lines modified
72 ····private·void·reloadDataIfNeeded()·{72 ····private·void·reloadDataIfNeeded()·{
73 ········if·(!this.version.equalsIgnoreCase(this.getCurrentVersion()))·{73 ········if·(!this.version.equalsIgnoreCase(this.getCurrentVersion()))·{
74 ············this.data.clear();74 ············this.data.clear();
75 ············this.load();75 ············this.load();
76 ········}76 ········}
77 ····}77 ····}
78 ····78 ····
79 ····public·void·clear()·{79 ····void·clear()·{
80 ········this.reloadDataIfNeeded();80 ········this.reloadDataIfNeeded();
81 ········this.data.clear();81 ········this.data.clear();
82 ········this.flush();82 ········this.flush();
83 ····}83 ····}
84 ····84 ····
85 ····public·List·getContents()·{85 ····List·getContents()·{
86 ········return·new·ArrayList(this.data.keySet());86 ········return·new·ArrayList(this.data.keySet());
87 ····}87 ····}
88 ····88 ····
89 ····public·PurchaseInfo·getDetails(final·String·s)·{89 ····PurchaseInfo·getDetails(final·String·s)·{
90 ········this.reloadDataIfNeeded();90 ········this.reloadDataIfNeeded();
91 ········PurchaseInfo·purchaseInfo;91 ········PurchaseInfo·purchaseInfo;
92 ········if·(this.data.containsKey(s))·{92 ········if·(this.data.containsKey(s))·{
93 ············purchaseInfo·=·this.data.get(s);93 ············purchaseInfo·=·this.data.get(s);
94 ········}94 ········}
95 ········else·{95 ········else·{
96 ············purchaseInfo·=·null;96 ············purchaseInfo·=·null;
97 ········}97 ········}
98 ········return·purchaseInfo;98 ········return·purchaseInfo;
99 ····}99 ····}
100 ····100 ····
101 ····public·boolean·includesProduct(final·String·key)·{101 ····boolean·includesProduct(final·String·key)·{
102 ········this.reloadDataIfNeeded();102 ········this.reloadDataIfNeeded();
103 ········return·this.data.containsKey(key);103 ········return·this.data.containsKey(key);
104 ····}104 ····}
105 ····105 ····
106 ····public·void·put(final·String·s,·final·String·s2,·final·String·s3)·{106 ····void·put(final·String·s,·final·String·s2,·final·String·s3)·{
107 ········this.reloadDataIfNeeded();107 ········this.reloadDataIfNeeded();
108 ········if·(!this.data.containsKey(s))·{108 ········if·(!this.data.containsKey(s))·{
109 ············this.data.put(s,·new·PurchaseInfo(s2,·s3));109 ············this.data.put(s,·new·PurchaseInfo(s2,·s3));
110 ············this.flush();110 ············this.flush();
111 ········}111 ········}
112 ····}112 ····}
113 ····113 ····
114 ····public·void·remove(final·String·s)·{114 ····void·remove(final·String·s)·{
115 ········this.reloadDataIfNeeded();115 ········this.reloadDataIfNeeded();
116 ········if·(this.data.containsKey(s))·{116 ········if·(this.data.containsKey(s))·{
117 ············this.data.remove(s);117 ············this.data.remove(s);
118 ············this.flush();118 ············this.flush();
119 ········}119 ········}
120 ····}120 ····}
121 ····121 ····
69.2 KB
com/anjlab/android/iab/v3/BillingProcessor.class
69.1 KB
procyon -ec {}
    
Offset 1, 26 lines modifiedOffset 1, 28 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
 2 import·java.util.Collections;
2 import·android.os.RemoteException;3 import·android.os.RemoteException;
3 import·android.content.IntentSender;4 import·android.content.IntentSender;
4 import·android.os.Parcelable;5 import·android.os.Parcelable;
 6 import·java.util.Collection;
5 import·android.app.PendingIntent;7 import·android.app.PendingIntent;
6 import·java.util.UUID;8 import·java.util.UUID;
7 import·android.app.Activity;9 import·android.app.Activity;
8 import·java.util.Iterator;10 import·java.util.Iterator;
9 import·org.json.JSONObject; 
10 import·android.os.Bundle;11 import·android.os.Bundle;
11 import·java.util.List;12 import·java.util.List;
12 import·java.util.ArrayList;13 import·java.util.ArrayList;
13 import·org.json.JSONException; 
14 import·android.text.TextUtils;14 import·android.text.TextUtils;
15 import·android.util.Log;15 import·org.json.JSONObject;
16 import·android.content.Intent;16 import·android.content.Intent;
 17 import·android.util.Log;
17 import·android.content.Context;18 import·android.content.Context;
 19 import·java.util.Calendar;
18 import·android.content.ServiceConnection;20 import·android.content.ServiceConnection;
19 import·com.android.vending.billing.IInAppBillingService;21 import·com.android.vending.billing.IInAppBillingService;
20 import·java.util.Date;22 import·java.util.Date;
  
21 public·class·BillingProcessor·extends·BillingBase23 public·class·BillingProcessor·extends·BillingBase
22 {24 {
23 ····private·static·final·Date·DATE_MERCHANT_LIMIT_1;25 ····private·static·final·Date·DATE_MERCHANT_LIMIT_1;
Offset 34, 89 lines modifiedOffset 36, 123 lines modified
34 ····private·static·final·String·SUBSCRIPTIONS_CACHE_KEY·=·".subscriptions.cache.v2_6";36 ····private·static·final·String·SUBSCRIPTIONS_CACHE_KEY·=·".subscriptions.cache.v2_6";
35 ····private·IInAppBillingService·billingService;37 ····private·IInAppBillingService·billingService;
36 ····private·BillingCache·cachedProducts;38 ····private·BillingCache·cachedProducts;
37 ····private·BillingCache·cachedSubscriptions;39 ····private·BillingCache·cachedSubscriptions;
38 ····private·String·contextPackageName;40 ····private·String·contextPackageName;
39 ····private·String·developerMerchantId;41 ····private·String·developerMerchantId;
40 ····private·BillingProcessor$IBillingHandler·eventHandler;42 ····private·BillingProcessor$IBillingHandler·eventHandler;
 43 ····private·boolean·isOneTimePurchaseExtraParamsSupported;
 44 ····private·boolean·isOneTimePurchasesSupported;
41 ····private·boolean·isSubsUpdateSupported;45 ····private·boolean·isSubsUpdateSupported;
 46 ····private·boolean·isSubscriptionExtraParamsSupported;
42 ····private·ServiceConnection·serviceConnection;47 ····private·ServiceConnection·serviceConnection;
43 ····private·String·signatureBase64;48 ····private·String·signatureBase64;
44 ····49 ····
45 ····static·{50 ····static·{
46 ········DATE_MERCHANT_LIMIT_1·=·new·Date(2012,·12,·5); 
47 ········DATE_MERCHANT_LIMIT_2·=·new·Date(2015,·7,·20);51 ········final·Calendar·instance·=·Calendar.getInstance();
 52 ········instance.set(2012,·11,·5);
 53 ········DATE_MERCHANT_LIMIT_1·=·instance.getTime();
 54 ········instance.set(2015,·6,·21);
 55 ········DATE_MERCHANT_LIMIT_2·=·instance.getTime();
48 ····}56 ····}
49 ····57 ····
50 ····public·BillingProcessor(final·Context·context,·final·String·s,·final·BillingProcessor$IBillingHandler·billingProcessor$IBillingHandler)·{58 ····public·BillingProcessor(final·Context·context,·final·String·s,·final·BillingProcessor$IBillingHandler·billingProcessor$IBillingHandler)·{
51 ········this(context,·s,·null,·billingProcessor$IBillingHandler);59 ········this(context,·s,·null,·billingProcessor$IBillingHandler);
52 ····}60 ····}
53 ····61 ····
 62 ····public·BillingProcessor(final·Context·context,·final·String·s,·final·String·s2,·final·BillingProcessor$IBillingHandler·billingProcessor$IBillingHandler)·{
 63 ········this(context,·s,·s2,·billingProcessor$IBillingHandler,·true);
 64 ····}
 65 ····
54 ····public·BillingProcessor(final·Context·context,·final·String·signatureBase64,·final·String·developerMerchantId,·final·BillingProcessor$IBillingHandler·eventHandler)·{66 ····private·BillingProcessor(final·Context·context,·final·String·signatureBase64,·final·String·developerMerchantId,·final·BillingProcessor$IBillingHandler·eventHandler,·final·boolean·b)·{
55 ········super(context);67 ········super(context.getApplicationContext());
56 ········this.serviceConnection·=·(ServiceConnection)new·BillingProcessor$1(this);68 ········this.serviceConnection·=·(ServiceConnection)new·BillingProcessor$1(this);
57 ········this.signatureBase64·=·signatureBase64;69 ········this.signatureBase64·=·signatureBase64;
58 ········this.eventHandler·=·eventHandler;70 ········this.eventHandler·=·eventHandler;
59 ········this.contextPackageName·=·context.getApplicationContext().getPackageName();71 ········this.contextPackageName·=·this.getContext().getPackageName();
60 ········this.cachedProducts·=·new·BillingCache(context,·".products.cache.v2_6");72 ········this.cachedProducts·=·new·BillingCache(this.getContext(),·".products.cache.v2_6");
61 ········this.cachedSubscriptions·=·new·BillingCache(context,·".subscriptions.cache.v2_6");73 ········this.cachedSubscriptions·=·new·BillingCache(this.getContext(),·".subscriptions.cache.v2_6");
62 ········this.developerMerchantId·=·developerMerchantId;74 ········this.developerMerchantId·=·developerMerchantId;
 75 ········if·(b)·{
63 ········this.bindPlayServices();76 ············this.bindPlayServices();
 77 ········}
64 ····}78 ····}
65 ····79 ····
66 ····private·void·bindPlayServices()·{80 ····private·void·bindPlayServices()·{
67 ········try·{81 ········try·{
68 ············final·Intent·intent·=·new·Intent("com.android.vending.billing.InAppBillingService.BIND"); 
69 ············intent.setPackage("com.android.vending"); 
70 ············final·Context·context·=·this.getContext();82 ············final·Context·context·=·this.getContext();
71 ············try·{83 ············try·{
 84 ················final·Intent·bindServiceIntent·=·getBindServiceIntent();
 85 ················try·{
72 ················context.bindService(intent,·this.serviceConnection,·1);86 ····················context.bindService(bindServiceIntent,·this.serviceConnection,·1);
73 ············}87 ················}
74 ············catch·(Exception·ex)·{88 ················catch·(Exception·ex)·{
75 ················Log.e("iabv3",·"error·in·bindPlayServices",·(Throwable)ex);89 ····················Log.e("iabv3",·"error·in·bindPlayServices",·(Throwable)ex);
 90 ····················this.reportBillingError(113,·ex);
 91 ················}
76 ············}92 ············}
 93 ············catch·(Exception·ex2)·{}
77 ········}94 ········}
78 ········catch·(Exception·ex2)·{}95 ········catch·(Exception·ex3)·{}
79 ····}96 ····}
80 ····97 ····
81 ····private·boolean·checkMerchant(final·TransactionDetails·transactionDetails)·{98 ····private·boolean·checkMerchant(final·TransactionDetails·transactionDetails)·{
82 ········boolean·b·=·true;99 ········boolean·b·=·true;
83 ········if·(this.developerMerchantId·!=·null·&&·!transactionDetails.purchaseTime.before(BillingProcessor.DATE_MERCHANT_LIMIT_1)·&&·!transactionDetails.purchaseTime.after(BillingProcessor.DATE_MERCHANT_LIMIT_2))·{100 ········if·(this.developerMerchantId·!=·null·&&·!transactionDetails.purchaseInfo.purchaseData.purchaseTime.before(BillingProcessor.DATE_MERCHANT_LIMIT_1)·&&·!transactionDetails.purchaseInfo.purchaseData.purchaseTime.after(BillingProcessor.DATE_MERCHANT_LIMIT_2))·{
84 ············if·(transactionDetails.orderId·==·null·||·transactionDetails.orderId.trim().length()·==·0)·{101 ············if·(transactionDetails.purchaseInfo.purchaseData.orderId·==·null·||·transactionDetails.purchaseInfo.purchaseData.orderId.trim().length()·==·0)·{
85 ················b·=·false;102 ················b·=·false;
86 ············}103 ············}
87 ············else·{104 ············else·{
88 ················final·int·index·=·transactionDetails.orderId.indexOf(46);105 ················final·int·index·=·transactionDetails.purchaseInfo.purchaseData.orderId.indexOf(46);
89 ················if·(index·<=·0)·{106 ················if·(index·<=·0)·{
90 ····················b·=·false;107 ····················b·=·false;
91 ················}108 ················}
92 ················else·if·(transactionDetails.orderId.substring(0,·index).compareTo(this.developerMerchantId)·!=·0)·{109 ················else·if·(transactionDetails.purchaseInfo.purchaseData.orderId.substring(0,·index).compareTo(this.developerMerchantId)·!=·0)·{
93 ····················b·=·false;110 ····················b·=·false;
94 ················}111 ················}
95 ············}112 ············}
96 ········}113 ········}
97 ········return·b;114 ········return·b;
98 ····}115 ····}
99 ····116 ····
 117 ····private·String·detectPurchaseTypeFromPurchaseResponseData(final·JSONObject·jsonObject)·{
 118 ········final·String·purchasePayload·=·this.getPurchasePayload();
 119 ········String·s;
 120 ········if·(!TextUtils.isEmpty((CharSequence)purchasePayload)·&&·purchasePayload.startsWith("subs"))·{
 121 ············s·=·"subs";
 122 ········}
 123 ········else·if·(jsonObject·!=·null·&&·jsonObject.has("autoRenewing"))·{
 124 ············s·=·"subs";
 125 ········}
 126 ········else·{
 127 ············s·=·"inapp";
 128 ········}
Max diff block lines reached; 63553/70692 bytes (89.90%) of diff not shown.
1.36 KB
com/anjlab/android/iab/v3/PurchaseInfo$PurchaseState.class vs.
com/anjlab/android/iab/v3/PurchaseState.class
Files 14% similar despite different names
1.22 KB
procyon -ec {}
    
Offset 1, 25 lines modifiedOffset 1, 25 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
2 public·enum·PurchaseInfo$PurchaseState2 public·enum·PurchaseState
3 {3 {
4 ····Canceled("Canceled",·n3),·4 ····Canceled("Canceled",·n3),·
5 ····PurchasedSuccessfully("PurchasedSuccessfully",·0),·5 ····PurchasedSuccessfully("PurchasedSuccessfully",·0),·
6 ····Refunded("Refunded",·n2),·6 ····Refunded("Refunded",·n2),·
7 ····SubscriptionExpired("SubscriptionExpired",·n);7 ····SubscriptionExpired("SubscriptionExpired",·n);
8 ····8 ····
9 ····static·{9 ····static·{
10 ········final·int·n·=·3;10 ········final·int·n·=·3;
11 ········final·int·n2·=·2;11 ········final·int·n2·=·2;
12 ········final·int·n3·=·1;12 ········final·int·n3·=·1;
13 ········final·PurchaseInfo$PurchaseState[]·$values·=·new·PurchaseInfo$PurchaseState[4];13 ········final·PurchaseState[]·$values·=·new·PurchaseState[4];
14 ········$values[0]·=·PurchaseInfo$PurchaseState.PurchasedSuccessfully;14 ········$values[0]·=·PurchaseState.PurchasedSuccessfully;
15 ········$values[n3]·=·PurchaseInfo$PurchaseState.Canceled;15 ········$values[n3]·=·PurchaseState.Canceled;
16 ········$values[n2]·=·PurchaseInfo$PurchaseState.Refunded;16 ········$values[n2]·=·PurchaseState.Refunded;
17 ········$values[n]·=·PurchaseInfo$PurchaseState.SubscriptionExpired;17 ········$values[n]·=·PurchaseState.SubscriptionExpired;
18 ········$VALUES·=·$values;18 ········$VALUES·=·$values;
19 ····}19 ····}
20 ····20 ····
21 ····private·PurchaseInfo$PurchaseState(final·String·name,·final·int·ordinal)·{21 ····private·PurchaseState(final·String·name,·final·int·ordinal)·{
22 ····}22 ····}
23 }23 }
897 B
com/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1.class vs.
com/anjlab/android/iab/v3/PurchaseData$1.class
Files 16% similar despite different names
751 B
procyon -ec {}
    
Offset 1, 16 lines modifiedOffset 1, 16 lines modified
  
1 package·com.anjlab.android.iab.v3;1 package·com.anjlab.android.iab.v3;
  
2 import·android.os.Parcel;2 import·android.os.Parcel;
3 import·android.os.Parcelable$Creator;3 import·android.os.Parcelable$Creator;
  
4 final·class·PurchaseInfo$ResponseData$1·implements·Parcelable$Creator4 final·class·PurchaseData$1·implements·Parcelable$Creator
5 {5 {
6 ····public·PurchaseInfo$ResponseData·createFromParcel(final·Parcel·parcel)·{6 ····public·PurchaseData·createFromParcel(final·Parcel·parcel)·{
7 ········return·new·PurchaseInfo$ResponseData(parcel);7 ········return·new·PurchaseData(parcel);
8 ····}8 ····}
9 ····9 ····
10 ····public·PurchaseInfo$ResponseData[]·newArray(final·int·n)·{10 ····public·PurchaseData[]·newArray(final·int·n)·{
11 ········return·new·PurchaseInfo$ResponseData[n];11 ········return·new·PurchaseData[n];
12 ····}12 ····}
13 }13 }
2.09 KB
com/anjlab/android/iab/v3/PurchaseInfo$ResponseData.class vs.
com/anjlab/android/iab/v3/PurchaseData.class
Files 13% similar despite different names
1.95 KB
procyon -ec {}
    
Offset 2, 50 lines modifiedOffset 2, 50 lines modified
2 package·com.anjlab.android.iab.v3;2 package·com.anjlab.android.iab.v3;
  
3 import·android.os.Parcel;3 import·android.os.Parcel;
4 import·java.util.Date;4 import·java.util.Date;
5 import·android.os.Parcelable$Creator;5 import·android.os.Parcelable$Creator;
6 import·android.os.Parcelable;6 import·android.os.Parcelable;
  
7 public·class·PurchaseInfo$ResponseData·implements·Parcelable7 public·class·PurchaseData·implements·Parcelable
8 {8 {
9 ····public·static·final·Parcelable$Creator·CREATOR;9 ····public·static·final·Parcelable$Creator·CREATOR;
10 ····public·boolean·autoRenewing;10 ····public·boolean·autoRenewing;
11 ····public·String·developerPayload;11 ····public·String·developerPayload;
12 ····public·String·orderId;12 ····public·String·orderId;
13 ····public·String·packageName;13 ····public·String·packageName;
14 ····public·String·productId;14 ····public·String·productId;
15 ····public·PurchaseInfo$PurchaseState·purchaseState;15 ····public·PurchaseState·purchaseState;
16 ····public·Date·purchaseTime;16 ····public·Date·purchaseTime;
17 ····public·String·purchaseToken;17 ····public·String·purchaseToken;
18 ····18 ····
19 ····static·{19 ····static·{
20 ········CREATOR·=·(Parcelable$Creator)new·PurchaseInfo$ResponseData$1();20 ········CREATOR·=·(Parcelable$Creator)new·PurchaseData$1();
21 ····}21 ····}
22 ····22 ····
23 ····public·PurchaseInfo$ResponseData()·{23 ····public·PurchaseData()·{
24 ····}24 ····}
25 ····25 ····
26 ····protected·PurchaseInfo$ResponseData(final·Parcel·parcel)·{26 ····protected·PurchaseData(final·Parcel·parcel)·{
27 ········PurchaseInfo$PurchaseState·purchaseState·=·null;27 ········PurchaseState·purchaseState·=·null;
28 ········this.orderId·=·parcel.readString();28 ········this.orderId·=·parcel.readString();
29 ········this.packageName·=·parcel.readString();29 ········this.packageName·=·parcel.readString();
30 ········this.productId·=·parcel.readString();30 ········this.productId·=·parcel.readString();
31 ········final·long·long1·=·parcel.readLong();31 ········final·long·long1·=·parcel.readLong();
32 ········Date·purchaseTime;32 ········Date·purchaseTime;
33 ········if·(long1·==·-1)·{33 ········if·(long1·==·-1)·{
34 ············purchaseTime·=·null;34 ············purchaseTime·=·null;
35 ········}35 ········}
36 ········else·{36 ········else·{
37 ············purchaseTime·=·new·Date(long1);37 ············purchaseTime·=·new·Date(long1);
38 ········}38 ········}
39 ········this.purchaseTime·=·purchaseTime;39 ········this.purchaseTime·=·purchaseTime;
40 ········final·int·int1·=·parcel.readInt();40 ········final·int·int1·=·parcel.readInt();
41 ········if·(int1·!=·-1)·{41 ········if·(int1·!=·-1)·{
42 ············purchaseState·=·PurchaseInfo$PurchaseState.values()[int1];42 ············purchaseState·=·PurchaseState.values()[int1];
43 ········}43 ········}
44 ········this.purchaseState·=·purchaseState;44 ········this.purchaseState·=·purchaseState;
45 ········this.developerPayload·=·parcel.readString();45 ········this.developerPayload·=·parcel.readString();
46 ········this.purchaseToken·=·parcel.readString();46 ········this.purchaseToken·=·parcel.readString();
47 ········this.autoRenewing·=·(parcel.readByte()·!=·0);47 ········this.autoRenewing·=·(parcel.readByte()·!=·0);
48 ····}48 ····}
49 ····49 ····
716 B
smali/android/support/annotation/Dimension.smali
    
Offset 9, 20 lines modifiedOffset 9, 14 lines modified
9 #·annotations9 #·annotations
10 .annotation·system·Ldalvik/annotation/AnnotationDefault;10 .annotation·system·Ldalvik/annotation/AnnotationDefault;
11 ····value·=·.subannotation·Landroid/support/annotation/Dimension;11 ····value·=·.subannotation·Landroid/support/annotation/Dimension;
12 ········unit·=·0x112 ········unit·=·0x1
13 ····.end·subannotation13 ····.end·subannotation
14 .end·annotation14 .end·annotation
  
15 .annotation·system·Ldalvik/annotation/MemberClasses; 
16 ····value·=·{ 
17 ········Landroid/support/annotation/Dimension$Unit; 
18 ····} 
19 .end·annotation 
  
20 .annotation·runtime·Ljava/lang/annotation/Documented;15 .annotation·runtime·Ljava/lang/annotation/Documented;
21 .end·annotation16 .end·annotation
  
22 .annotation·runtime·Ljava/lang/annotation/Retention;17 .annotation·runtime·Ljava/lang/annotation/Retention;
23 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;18 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;
24 .end·annotation19 .end·annotation
  
900 B
smali/android/support/annotation/Nullable.smali
    
Offset 14, 10 lines modifiedOffset 14, 12 lines modified
14 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;14 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;
15 .end·annotation15 .end·annotation
  
16 .annotation·runtime·Ljava/lang/annotation/Target;16 .annotation·runtime·Ljava/lang/annotation/Target;
17 ····value·=·{17 ····value·=·{
18 ········.enum·Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;,18 ········.enum·Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;,
19 ········.enum·Ljava/lang/annotation/ElementType;->PARAMETER:Ljava/lang/annotation/ElementType;,19 ········.enum·Ljava/lang/annotation/ElementType;->PARAMETER:Ljava/lang/annotation/ElementType;,
20 ········.enum·Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;20 ········.enum·Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;,
 21 ········.enum·Ljava/lang/annotation/ElementType;->ANNOTATION_TYPE:Ljava/lang/annotation/ElementType;,
 22 ········.enum·Ljava/lang/annotation/ElementType;->PACKAGE:Ljava/lang/annotation/ElementType;
21 ····}23 ····}
22 .end·annotation24 .end·annotation
906 B
smali/android/support/annotation/VisibleForTesting.smali
    
Offset 3, 10 lines modifiedOffset 3, 31 lines modified
3 .source·"VisibleForTesting.java"3 .source·"VisibleForTesting.java"
  
4 #·interfaces4 #·interfaces
5 .implements·Ljava/lang/annotation/Annotation;5 .implements·Ljava/lang/annotation/Annotation;
  
  
6 #·annotations6 #·annotations
 7 .annotation·system·Ldalvik/annotation/AnnotationDefault;
 8 ····value·=·.subannotation·Landroid/support/annotation/VisibleForTesting;
 9 ········otherwise·=·0x2
 10 ····.end·subannotation
 11 .end·annotation
  
7 .annotation·runtime·Ljava/lang/annotation/Retention;12 .annotation·runtime·Ljava/lang/annotation/Retention;
8 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;13 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;
9 .end·annotation14 .end·annotation
  
  
 15 #·static·fields
 16 .field·public·static·final·NONE:I·=·0x5
  
 17 .field·public·static·final·PACKAGE_PRIVATE:I·=·0x3
  
 18 .field·public·static·final·PRIVATE:I·=·0x2
  
 19 .field·public·static·final·PROTECTED:I·=·0x4
  
  
 20 #·virtual·methods
 21 .method·public·abstract·otherwise()I
 22 .end·method
898 B
smali/android/support/annotation/NonNull.smali
    
Offset 14, 10 lines modifiedOffset 14, 12 lines modified
14 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;14 ····value·=·.enum·Ljava/lang/annotation/RetentionPolicy;->CLASS:Ljava/lang/annotation/RetentionPolicy;
15 .end·annotation15 .end·annotation
  
16 .annotation·runtime·Ljava/lang/annotation/Target;16 .annotation·runtime·Ljava/lang/annotation/Target;
17 ····value·=·{17 ····value·=·{
18 ········.enum·Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;,18 ········.enum·Ljava/lang/annotation/ElementType;->METHOD:Ljava/lang/annotation/ElementType;,
19 ········.enum·Ljava/lang/annotation/ElementType;->PARAMETER:Ljava/lang/annotation/ElementType;,19 ········.enum·Ljava/lang/annotation/ElementType;->PARAMETER:Ljava/lang/annotation/ElementType;,
20 ········.enum·Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;20 ········.enum·Ljava/lang/annotation/ElementType;->FIELD:Ljava/lang/annotation/ElementType;,
 21 ········.enum·Ljava/lang/annotation/ElementType;->ANNOTATION_TYPE:Ljava/lang/annotation/ElementType;,
 22 ········.enum·Ljava/lang/annotation/ElementType;->PACKAGE:Ljava/lang/annotation/ElementType;
21 ····}23 ····}
22 .end·annotation24 .end·annotation
1.65 KB
smali/com/anjlab/android/iab/v3/SkuDetails$1.smali
    
Offset 28, 62 lines modifiedOffset 28, 62 lines modified
  
  
28 #·direct·methods28 #·direct·methods
29 .method·constructor·<init>()V29 .method·constructor·<init>()V
30 ····.locals·030 ····.locals·0
  
31 ····.prologue31 ····.prologue
32 ····.line·11532 ····.line·189
33 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V33 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
34 ····return-void34 ····return-void
35 .end·method35 .end·method
  
  
36 #·virtual·methods36 #·virtual·methods
37 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/SkuDetails;37 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/SkuDetails;
38 ····.locals·138 ····.locals·1
39 ····.param·p1,·"source"····#·Landroid/os/Parcel;39 ····.param·p1,·"source"····#·Landroid/os/Parcel;
  
40 ····.prologue40 ····.prologue
41 ····.line·11741 ····.line·192
42 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/SkuDetails;42 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/SkuDetails;
  
43 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails;-><init>(Landroid/os/Parcel;)V43 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails;-><init>(Landroid/os/Parcel;)V
  
44 ····return-object·v044 ····return-object·v0
45 .end·method45 .end·method
  
46 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;46 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
47 ····.locals·147 ····.locals·1
  
48 ····.prologue48 ····.prologue
49 ····.line·11549 ····.line·189
50 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/SkuDetails;50 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/SkuDetails;
  
51 ····move-result-object·v051 ····move-result-object·v0
  
52 ····return-object·v052 ····return-object·v0
53 .end·method53 .end·method
  
54 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/SkuDetails;54 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/SkuDetails;
55 ····.locals·155 ····.locals·1
56 ····.param·p1,·"size"····#·I56 ····.param·p1,·"size"····#·I
  
57 ····.prologue57 ····.prologue
58 ····.line·12158 ····.line·197
59 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/SkuDetails;59 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/SkuDetails;
  
60 ····return-object·v060 ····return-object·v0
61 .end·method61 .end·method
  
62 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;62 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;
63 ····.locals·163 ····.locals·1
  
64 ····.prologue64 ····.prologue
65 ····.line·11565 ····.line·189
66 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails$1;->newArray(I)[Lcom/anjlab/android/iab/v3/SkuDetails;66 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails$1;->newArray(I)[Lcom/anjlab/android/iab/v3/SkuDetails;
  
67 ····move-result-object·v067 ····move-result-object·v0
  
68 ····return-object·v068 ····return-object·v0
69 .end·method69 .end·method
1.03 KB
smali/com/anjlab/android/iab/v3/BillingProcessor$IBillingHandler.smali
    
Offset 12, 17 lines modifiedOffset 12, 29 lines modified
12 ····accessFlags·=·0x60912 ····accessFlags·=·0x609
13 ····name·=·"IBillingHandler"13 ····name·=·"IBillingHandler"
14 .end·annotation14 .end·annotation
  
  
15 #·virtual·methods15 #·virtual·methods
16 .method·public·abstract·onBillingError(ILjava/lang/Throwable;)V16 .method·public·abstract·onBillingError(ILjava/lang/Throwable;)V
 17 ····.param·p2····#·Ljava/lang/Throwable;
 18 ········.annotation·build·Landroid/support/annotation/Nullable;
 19 ········.end·annotation
 20 ····.end·param
17 .end·method21 .end·method
  
18 .method·public·abstract·onBillingInitialized()V22 .method·public·abstract·onBillingInitialized()V
19 .end·method23 .end·method
  
20 .method·public·abstract·onProductPurchased(Ljava/lang/String;Lcom/anjlab/android/iab/v3/TransactionDetails;)V24 .method·public·abstract·onProductPurchased(Ljava/lang/String;Lcom/anjlab/android/iab/v3/TransactionDetails;)V
 25 ····.param·p1····#·Ljava/lang/String;
 26 ········.annotation·build·Landroid/support/annotation/NonNull;
 27 ········.end·annotation
 28 ····.end·param
 29 ····.param·p2····#·Lcom/anjlab/android/iab/v3/TransactionDetails;
 30 ········.annotation·build·Landroid/support/annotation/Nullable;
 31 ········.end·annotation
 32 ····.end·param
21 .end·method33 .end·method
  
22 .method·public·abstract·onPurchaseHistoryRestored()V34 .method·public·abstract·onPurchaseHistoryRestored()V
23 .end·method35 .end·method
21.4 KB
smali/com/anjlab/android/iab/v3/SkuDetails.smali
    
Offset 20, 265 lines modifiedOffset 20, 475 lines modified
  
  
20 #·instance·fields20 #·instance·fields
21 .field·public·final·currency:Ljava/lang/String;21 .field·public·final·currency:Ljava/lang/String;
  
22 .field·public·final·description:Ljava/lang/String;22 .field·public·final·description:Ljava/lang/String;
  
 23 .field·public·final·haveIntroductoryPeriod:Z
  
 24 .field·public·final·haveTrialPeriod:Z
  
 25 .field·public·final·introductoryPriceCycles:I
  
 26 .field·public·final·introductoryPriceLong:J
  
 27 .field·public·final·introductoryPricePeriod:Ljava/lang/String;
  
 28 .field·public·final·introductoryPriceText:Ljava/lang/String;
  
 29 .field·public·final·introductoryPriceValue:D
  
23 .field·public·final·isSubscription:Z30 .field·public·final·isSubscription:Z
  
24 .field·public·final·priceLong:J31 .field·public·final·priceLong:J
  
25 .field·public·final·priceText:Ljava/lang/String;32 .field·public·final·priceText:Ljava/lang/String;
  
26 .field·public·final·priceValue:Ljava/lang/Double;33 .field·public·final·priceValue:Ljava/lang/Double;
  
27 .field·public·final·productId:Ljava/lang/String;34 .field·public·final·productId:Ljava/lang/String;
  
 35 .field·public·final·subscriptionFreeTrialPeriod:Ljava/lang/String;
  
 36 .field·public·final·subscriptionPeriod:Ljava/lang/String;
  
28 .field·public·final·title:Ljava/lang/String;37 .field·public·final·title:Ljava/lang/String;
  
  
29 #·direct·methods38 #·direct·methods
30 .method·static·constructor·<clinit>()V39 .method·static·constructor·<clinit>()V
31 ····.locals·140 ····.locals·1
  
32 ····.prologue41 ····.prologue
33 ····.line·11542 ····.line·187
34 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/SkuDetails$1;43 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/SkuDetails$1;
  
35 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/SkuDetails$1;-><init>()V44 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/SkuDetails$1;-><init>()V
  
36 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/SkuDetails;->CREATOR:Landroid/os/Parcelable$Creator;45 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/SkuDetails;->CREATOR:Landroid/os/Parcelable$Creator;
  
37 ····return-void46 ····return-void
38 .end·method47 .end·method
  
39 .method·protected·constructor·<init>(Landroid/os/Parcel;)V48 .method·protected·constructor·<init>(Landroid/os/Parcel;)V
40 ····.locals·249 ····.locals·6
41 ····.param·p1,·"in"····#·Landroid/os/Parcel;50 ····.param·p1,·"in"····#·Landroid/os/Parcel;
  
42 ····.prologue51 ····.prologue
 52 ····const/4·v1,·0x1
  
 53 ····const/4·v2,·0x0
  
43 ····.line·10454 ····.line·167
44 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V55 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
45 ····.line·10556 ····.line·168
46 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;57 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
47 ····move-result-object·v058 ····move-result-object·v0
  
48 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->productId:Ljava/lang/String;59 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->productId:Ljava/lang/String;
  
49 ····.line·10660 ····.line·169
50 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;61 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
51 ····move-result-object·v062 ····move-result-object·v0
  
52 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->title:Ljava/lang/String;63 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->title:Ljava/lang/String;
  
53 ····.line·10764 ····.line·170
54 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;65 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
55 ····move-result-object·v066 ····move-result-object·v0
  
56 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->description:Ljava/lang/String;67 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->description:Ljava/lang/String;
  
57 ····.line·10868 ····.line·171
58 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readByte()B69 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readByte()B
  
59 ····move-result·v070 ····move-result·v0
  
60 ····if-eqz·v0,·:cond_071 ····if-eqz·v0,·:cond_0
  
61 ····const/4·v0,·0x172 ····move·v0,·v1
  
62 ····:goto_073 ····:goto_0
63 ····iput-boolean·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->isSubscription:Z74 ····iput-boolean·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->isSubscription:Z
  
64 ····.line·10975 ····.line·172
65 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;76 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
66 ····move-result-object·v077 ····move-result-object·v0
  
67 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->currency:Ljava/lang/String;78 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->currency:Ljava/lang/String;
  
68 ····.line·11079 ····.line·173
69 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readDouble()D80 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readDouble()D
  
70 ····move-result-wide·v081 ····move-result-wide·v4
  
71 ····invoke-static·{v0,·v1},·Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;82 ····invoke-static·{v4,·v5},·Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
  
72 ····move-result-object·v083 ····move-result-object·v0
  
73 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->priceValue:Ljava/lang/Double;84 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->priceValue:Ljava/lang/Double;
  
74 ····.line·11185 ····.line·174
75 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J86 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J
  
76 ····move-result-wide·v087 ····move-result-wide·v4
  
77 ····iput-wide·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->priceLong:J88 ····iput-wide·v4,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->priceLong:J
  
78 ····.line·11289 ····.line·175
79 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;90 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
80 ····move-result-object·v091 ····move-result-object·v0
Max diff block lines reached; 18092/21780 bytes (83.07%) of diff not shown.
4.21 KB
smali/com/anjlab/android/iab/v3/Constants.smali
    
Offset 1, 19 lines modifiedOffset 1, 26 lines modified
1 .class·public·Lcom/anjlab/android/iab/v3/Constants;1 .class·public·Lcom/anjlab/android/iab/v3/Constants;
2 .super·Ljava/lang/Object;2 .super·Ljava/lang/Object;
3 .source·"Constants.java"3 .source·"Constants.java"
  
  
4 #·static·fields4 #·static·fields
 5 .field·public·static·final·BILLING_ERROR_BIND_PLAY_STORE_FAILED:I·=·0x71
  
5 .field·public·static·final·BILLING_ERROR_CONSUME_FAILED:I·=·0x6f6 .field·public·static·final·BILLING_ERROR_CONSUME_FAILED:I·=·0x6f
  
6 .field·public·static·final·BILLING_ERROR_FAILED_LOAD_PURCHASES:I·=·0x647 .field·public·static·final·BILLING_ERROR_FAILED_LOAD_PURCHASES:I·=·0x64
  
7 .field·public·static·final·BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE:I·=·0x658 .field·public·static·final·BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE:I·=·0x65
  
 9 .field·public·static·final·BILLING_ERROR_INVALID_DEVELOPER_PAYLOAD:I·=·0x69
 10 ····.annotation·runtime·Ljava/lang/Deprecated;
 11 ····.end·annotation
 12 .end·field
  
8 .field·public·static·final·BILLING_ERROR_INVALID_MERCHANT_ID:I·=·0x6813 .field·public·static·final·BILLING_ERROR_INVALID_MERCHANT_ID:I·=·0x68
  
9 .field·public·static·final·BILLING_ERROR_INVALID_SIGNATURE:I·=·0x6614 .field·public·static·final·BILLING_ERROR_INVALID_SIGNATURE:I·=·0x66
  
10 .field·public·static·final·BILLING_ERROR_LOST_CONTEXT:I·=·0x6715 .field·public·static·final·BILLING_ERROR_LOST_CONTEXT:I·=·0x67
  
11 .field·public·static·final·BILLING_ERROR_OTHER_ERROR:I·=·0x6e16 .field·public·static·final·BILLING_ERROR_OTHER_ERROR:I·=·0x6e
Offset 38, 52 lines modifiedOffset 45, 76 lines modified
  
38 .field·public·static·final·BILLING_RESPONSE_RESULT_USER_CANCELED:I·=·0x145 .field·public·static·final·BILLING_RESPONSE_RESULT_USER_CANCELED:I·=·0x1
  
39 .field·public·static·final·BUY_INTENT:Ljava/lang/String;·=·"BUY_INTENT"46 .field·public·static·final·BUY_INTENT:Ljava/lang/String;·=·"BUY_INTENT"
  
40 .field·public·static·final·DETAILS_LIST:Ljava/lang/String;·=·"DETAILS_LIST"47 .field·public·static·final·DETAILS_LIST:Ljava/lang/String;·=·"DETAILS_LIST"
  
 48 .field·public·static·final·EXTRA_PARAMS_KEY_SKU_TO_REPLACE:Ljava/lang/String;·=·"skusToReplace"
  
 49 .field·public·static·final·EXTRA_PARAMS_KEY_VR:Ljava/lang/String;·=·"vr"
  
41 .field·public·static·final·GOOGLE_API_SUBSCRIPTION_CHANGE_VERSION:I·=·0x550 .field·public·static·final·GOOGLE_API_SUBSCRIPTION_CHANGE_VERSION:I·=·0x5
  
42 .field·public·static·final·GOOGLE_API_VERSION:I·=·0x351 .field·public·static·final·GOOGLE_API_VERSION:I·=·0x3
  
 52 .field·public·static·final·GOOGLE_API_VR_SUPPORTED_VERSION:I·=·0x7
  
43 .field·public·static·final·INAPP_DATA_SIGNATURE_LIST:Ljava/lang/String;·=·"INAPP_DATA_SIGNATURE_LIST"53 .field·public·static·final·INAPP_DATA_SIGNATURE_LIST:Ljava/lang/String;·=·"INAPP_DATA_SIGNATURE_LIST"
  
44 .field·public·static·final·INAPP_PURCHASE_DATA:Ljava/lang/String;·=·"INAPP_PURCHASE_DATA"54 .field·public·static·final·INAPP_PURCHASE_DATA:Ljava/lang/String;·=·"INAPP_PURCHASE_DATA"
  
45 .field·public·static·final·INAPP_PURCHASE_DATA_LIST:Ljava/lang/String;·=·"INAPP_PURCHASE_DATA_LIST"55 .field·public·static·final·INAPP_PURCHASE_DATA_LIST:Ljava/lang/String;·=·"INAPP_PURCHASE_DATA_LIST"
  
46 .field·public·static·final·PRODUCTS_LIST:Ljava/lang/String;·=·"ITEM_ID_LIST"56 .field·public·static·final·PRODUCTS_LIST:Ljava/lang/String;·=·"ITEM_ID_LIST"
  
47 .field·public·static·final·PRODUCT_TYPE_MANAGED:Ljava/lang/String;·=·"inapp"57 .field·public·static·final·PRODUCT_TYPE_MANAGED:Ljava/lang/String;·=·"inapp"
  
48 .field·public·static·final·PRODUCT_TYPE_SUBSCRIPTION:Ljava/lang/String;·=·"subs"58 .field·public·static·final·PRODUCT_TYPE_SUBSCRIPTION:Ljava/lang/String;·=·"subs"
  
 59 .field·public·static·final·RESPONSE_AUTO_RENEWING:Ljava/lang/String;·=·"autoRenewing"
  
49 .field·public·static·final·RESPONSE_CODE:Ljava/lang/String;·=·"RESPONSE_CODE"60 .field·public·static·final·RESPONSE_CODE:Ljava/lang/String;·=·"RESPONSE_CODE"
  
50 .field·public·static·final·RESPONSE_DESCRIPTION:Ljava/lang/String;·=·"description"61 .field·public·static·final·RESPONSE_DESCRIPTION:Ljava/lang/String;·=·"description"
  
 62 .field·public·static·final·RESPONSE_DEVELOPER_PAYLOAD:Ljava/lang/String;·=·"developerPayload"
  
 63 .field·public·static·final·RESPONSE_FREE_TRIAL_PERIOD:Ljava/lang/String;·=·"freeTrialPeriod"
  
51 .field·public·static·final·RESPONSE_INAPP_SIGNATURE:Ljava/lang/String;·=·"INAPP_DATA_SIGNATURE"64 .field·public·static·final·RESPONSE_INAPP_SIGNATURE:Ljava/lang/String;·=·"INAPP_DATA_SIGNATURE"
  
 65 .field·public·static·final·RESPONSE_INTRODUCTORY_PRICE:Ljava/lang/String;·=·"introductoryPrice"
  
 66 .field·public·static·final·RESPONSE_INTRODUCTORY_PRICE_CYCLES:Ljava/lang/String;·=·"introductoryPriceCycles"
  
 67 .field·public·static·final·RESPONSE_INTRODUCTORY_PRICE_MICROS:Ljava/lang/String;·=·"introductoryPriceAmountMicros"
  
 68 .field·public·static·final·RESPONSE_INTRODUCTORY_PRICE_PERIOD:Ljava/lang/String;·=·"introductoryPricePeriod"
  
52 .field·public·static·final·RESPONSE_ORDER_ID:Ljava/lang/String;·=·"orderId"69 .field·public·static·final·RESPONSE_ORDER_ID:Ljava/lang/String;·=·"orderId"
  
53 .field·public·static·final·RESPONSE_PAYLOAD:Ljava/lang/String;·=·"developerPayload"70 .field·public·static·final·RESPONSE_PACKAGE_NAME:Ljava/lang/String;·=·"packageName"
  
54 .field·public·static·final·RESPONSE_PRICE:Ljava/lang/String;·=·"price"71 .field·public·static·final·RESPONSE_PRICE:Ljava/lang/String;·=·"price"
  
55 .field·public·static·final·RESPONSE_PRICE_CURRENCY:Ljava/lang/String;·=·"price_currency_code"72 .field·public·static·final·RESPONSE_PRICE_CURRENCY:Ljava/lang/String;·=·"price_currency_code"
  
56 .field·public·static·final·RESPONSE_PRICE_MICROS:Ljava/lang/String;·=·"price_amount_micros"73 .field·public·static·final·RESPONSE_PRICE_MICROS:Ljava/lang/String;·=·"price_amount_micros"
  
57 .field·public·static·final·RESPONSE_PRODUCT_ID:Ljava/lang/String;·=·"productId"74 .field·public·static·final·RESPONSE_PRODUCT_ID:Ljava/lang/String;·=·"productId"
  
 75 .field·public·static·final·RESPONSE_PURCHASE_STATE:Ljava/lang/String;·=·"purchaseState"
  
58 .field·public·static·final·RESPONSE_PURCHASE_TIME:Ljava/lang/String;·=·"purchaseTime"76 .field·public·static·final·RESPONSE_PURCHASE_TIME:Ljava/lang/String;·=·"purchaseTime"
  
59 .field·public·static·final·RESPONSE_PURCHASE_TOKEN:Ljava/lang/String;·=·"purchaseToken"77 .field·public·static·final·RESPONSE_PURCHASE_TOKEN:Ljava/lang/String;·=·"purchaseToken"
  
 78 .field·public·static·final·RESPONSE_SUBSCRIPTION_PERIOD:Ljava/lang/String;·=·"subscriptionPeriod"
  
60 .field·public·static·final·RESPONSE_TITLE:Ljava/lang/String;·=·"title"79 .field·public·static·final·RESPONSE_TITLE:Ljava/lang/String;·=·"title"
  
61 .field·public·static·final·RESPONSE_TYPE:Ljava/lang/String;·=·"type"80 .field·public·static·final·RESPONSE_TYPE:Ljava/lang/String;·=·"type"
  
  
62 #·direct·methods81 #·direct·methods
63 .method·public·constructor·<init>()V82 .method·public·constructor·<init>()V
9.28 KB
smali/com/anjlab/android/iab/v3/BillingBase.smali
    
Offset 1, 121 lines modifiedOffset 1, 78 lines modified
1 .class·Lcom/anjlab/android/iab/v3/BillingBase;1 .class·Lcom/anjlab/android/iab/v3/BillingBase;
2 .super·Ljava/lang/Object;2 .super·Ljava/lang/Object;
3 .source·"BillingBase.java"3 .source·"BillingBase.java"
  
  
4 #·instance·fields4 #·instance·fields
 5 .field·private·context:Landroid/content/Context;
5 .field·private·contextReference:Ljava/lang/ref/WeakReference; 
6 ····.annotation·system·Ldalvik/annotation/Signature; 
7 ········value·=·{ 
8 ············"Ljava/lang/ref/WeakReference", 
9 ············"<", 
10 ············"Landroid/content/Context;", 
11 ············">;" 
12 ········} 
13 ····.end·annotation 
14 .end·field 
  
  
15 #·direct·methods6 #·direct·methods
16 .method·public·constructor·<init>(Landroid/content/Context;)V7 .method·constructor·<init>(Landroid/content/Context;)V
17 ····.locals·18 ····.locals·0
18 ····.param·p1,·"context"····#·Landroid/content/Context;9 ····.param·p1,·"context"····#·Landroid/content/Context;
  
19 ····.prologue10 ····.prologue
20 ····.line·2811 ····.line·27
21 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V12 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
22 ····.line·2913 ····.line·28
 14 ····iput-object·p1,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->context:Landroid/content/Context;
23 ····new-instance·v0,·Ljava/lang/ref/WeakReference; 
  
24 ····invoke-direct·{v0,·p1},·Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V 
  
25 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->contextReference:Ljava/lang/ref/WeakReference; 
  
26 ····.line·3015 ····.line·29
27 ····return-void16 ····return-void
28 .end·method17 .end·method
  
29 .method·private·getPreferences()Landroid/content/SharedPreferences;18 .method·private·getPreferences()Landroid/content/SharedPreferences;
30 ····.locals·119 ····.locals·1
  
31 ····.prologue20 ····.prologue
32 ····.line·4121 ····.line·43
 22 ····invoke-virtual·{p0},·Lcom/anjlab/android/iab/v3/BillingBase;->getContext()Landroid/content/Context;
33 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->contextReference:Ljava/lang/ref/WeakReference; 
  
34 ····invoke-virtual·{v0},·Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; 
  
35 ····move-result-object·v0 
  
36 ····if-eqz·v0,·:cond_0 
  
37 ····.line·42 
38 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->contextReference:Ljava/lang/ref/WeakReference; 
  
39 ····invoke-virtual·{v0},·Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; 
  
40 ····move-result-object·v023 ····move-result-object·v0
  
41 ····check-cast·v0,·Landroid/content/Context; 
  
42 ····invoke-static·{v0},·Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;24 ····invoke-static·{v0},·Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
  
43 ····move-result-object·v025 ····move-result-object·v0
  
44 ····.line·43 
45 ····:goto_0 
46 ····return-object·v026 ····return-object·v0
  
47 ····:cond_0 
48 ····const/4·v0,·0x0 
  
49 ····goto·:goto_0 
50 .end·method27 .end·method
  
  
51 #·virtual·methods28 #·virtual·methods
52 .method·public·getContext()Landroid/content/Context;29 .method·getContext()Landroid/content/Context;
53 ····.locals·130 ····.locals·1
  
54 ····.prologue31 ····.prologue
55 ····.line·3332 ····.line·33
 33 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->context:Landroid/content/Context;
56 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->contextReference:Ljava/lang/ref/WeakReference; 
  
57 ····invoke-virtual·{v0},·Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; 
  
58 ····move-result-object·v0 
  
59 ····check-cast·v0,·Landroid/content/Context; 
  
60 ····return-object·v034 ····return-object·v0
61 .end·method35 .end·method
  
62 .method·protected·getPreferencesBaseKey()Ljava/lang/String;36 .method·getPreferencesBaseKey()Ljava/lang/String;
63 ····.locals·237 ····.locals·2
  
64 ····.prologue38 ····.prologue
65 ····.line·3739 ····.line·38
66 ····new-instance·v1,·Ljava/lang/StringBuilder;40 ····new-instance·v0,·Ljava/lang/StringBuilder;
  
67 ····invoke-direct·{v1},·Ljava/lang/StringBuilder;-><init>()V 
  
68 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingBase;->contextReference:Ljava/lang/ref/WeakReference;41 ····invoke-direct·{v0},·Ljava/lang/StringBuilder;-><init>()V
  
69 ····invoke-virtual·{v0},·Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;42 ····invoke-virtual·{p0},·Lcom/anjlab/android/iab/v3/BillingBase;->getContext()Landroid/content/Context;
  
70 ····move-result-object·v043 ····move-result-object·v1
  
71 ····check-cast·v0,·Landroid/content/Context; 
  
72 ····invoke-virtual·{v0},·Landroid/content/Context;->getPackageName()Ljava/lang/String;44 ····invoke-virtual·{v1},·Landroid/content/Context;->getPackageName()Ljava/lang/String;
  
73 ····move-result-object·v045 ····move-result-object·v1
  
74 ····invoke-virtual·{v1,·v0},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;46 ····invoke-virtual·{v0,·v1},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  
75 ····move-result-object·v047 ····move-result-object·v0
  
76 ····const-string·v1,·"_preferences"48 ····const-string·v1,·"_preferences"
  
77 ····invoke-virtual·{v0,·v1},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;49 ····invoke-virtual·{v0,·v1},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  
Offset 124, 161 lines modifiedOffset 81, 142 lines modified
124 ····invoke-virtual·{v0},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;81 ····invoke-virtual·{v0},·Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
Max diff block lines reached; 4922/9402 bytes (52.35%) of diff not shown.
1.73 KB
smali/com/anjlab/android/iab/v3/TransactionDetails$1.smali
    
Offset 28, 62 lines modifiedOffset 28, 62 lines modified
  
  
28 #·direct·methods28 #·direct·methods
29 .method·constructor·<init>()V29 .method·constructor·<init>()V
30 ····.locals·030 ····.locals·0
  
31 ····.prologue31 ····.prologue
32 ····.line·9132 ····.line·119
33 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V33 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
34 ····return-void34 ····return-void
35 .end·method35 .end·method
  
  
36 #·virtual·methods36 #·virtual·methods
37 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/TransactionDetails;37 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/TransactionDetails;
38 ····.locals·138 ····.locals·1
39 ····.param·p1,·"source"····#·Landroid/os/Parcel;39 ····.param·p1,·"source"····#·Landroid/os/Parcel;
  
40 ····.prologue40 ····.prologue
41 ····.line·9341 ····.line·122
42 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/TransactionDetails;42 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/TransactionDetails;
  
43 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails;-><init>(Landroid/os/Parcel;)V43 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails;-><init>(Landroid/os/Parcel;)V
  
44 ····return-object·v044 ····return-object·v0
45 .end·method45 .end·method
  
46 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;46 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
47 ····.locals·147 ····.locals·1
  
48 ····.prologue48 ····.prologue
49 ····.line·9149 ····.line·119
50 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/TransactionDetails;50 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/TransactionDetails;
  
51 ····move-result-object·v051 ····move-result-object·v0
  
52 ····return-object·v052 ····return-object·v0
53 .end·method53 .end·method
  
54 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/TransactionDetails;54 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/TransactionDetails;
55 ····.locals·155 ····.locals·1
56 ····.param·p1,·"size"····#·I56 ····.param·p1,·"size"····#·I
  
57 ····.prologue57 ····.prologue
58 ····.line·9758 ····.line·127
59 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/TransactionDetails;59 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/TransactionDetails;
  
60 ····return-object·v060 ····return-object·v0
61 .end·method61 .end·method
  
62 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;62 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;
63 ····.locals·163 ····.locals·1
  
64 ····.prologue64 ····.prologue
65 ····.line·9165 ····.line·119
66 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails$1;->newArray(I)[Lcom/anjlab/android/iab/v3/TransactionDetails;66 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails$1;->newArray(I)[Lcom/anjlab/android/iab/v3/TransactionDetails;
  
67 ····move-result-object·v067 ····move-result-object·v0
  
68 ····return-object·v068 ····return-object·v0
69 .end·method69 .end·method
14.9 KB
smali/com/anjlab/android/iab/v3/PurchaseInfo.smali
    
Offset 2, 23 lines modifiedOffset 2, 14 lines modified
2 .super·Ljava/lang/Object;2 .super·Ljava/lang/Object;
3 .source·"PurchaseInfo.java"3 .source·"PurchaseInfo.java"
  
4 #·interfaces4 #·interfaces
5 .implements·Landroid/os/Parcelable;5 .implements·Landroid/os/Parcelable;
  
  
6 #·annotations 
7 .annotation·system·Ldalvik/annotation/MemberClasses; 
8 ····value·=·{ 
9 ········Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;, 
10 ········Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState; 
11 ····} 
12 .end·annotation 
  
  
13 #·static·fields6 #·static·fields
14 .field·public·static·final·CREATOR:Landroid/os/Parcelable$Creator;7 .field·public·static·final·CREATOR:Landroid/os/Parcelable$Creator;
15 ····.annotation·system·Ldalvik/annotation/Signature;8 ····.annotation·system·Ldalvik/annotation/Signature;
16 ········value·=·{9 ········value·=·{
17 ············"Landroid/os/Parcelable$Creator",10 ············"Landroid/os/Parcelable$Creator",
18 ············"<",11 ············"<",
19 ············"Lcom/anjlab/android/iab/v3/PurchaseInfo;",12 ············"Lcom/anjlab/android/iab/v3/PurchaseInfo;",
Offset 27, 304 lines modifiedOffset 18, 384 lines modified
27 ····.end·annotation18 ····.end·annotation
28 .end·field19 .end·field
  
29 .field·private·static·final·LOG_TAG:Ljava/lang/String;·=·"iabv3.purchaseInfo"20 .field·private·static·final·LOG_TAG:Ljava/lang/String;·=·"iabv3.purchaseInfo"
  
  
30 #·instance·fields21 #·instance·fields
 22 .field·public·final·purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
  
31 .field·public·final·responseData:Ljava/lang/String;23 .field·public·final·responseData:Ljava/lang/String;
  
32 .field·public·final·signature:Ljava/lang/String;24 .field·public·final·signature:Ljava/lang/String;
  
  
33 #·direct·methods25 #·direct·methods
34 .method·static·constructor·<clinit>()V26 .method·static·constructor·<clinit>()V
35 ····.locals·127 ····.locals·1
  
36 ····.prologue28 ····.prologue
37 ····.line·15629 ····.line·103
38 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;30 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;
  
39 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;-><init>()V31 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;-><init>()V
  
40 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->CREATOR:Landroid/os/Parcelable$Creator;32 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->CREATOR:Landroid/os/Parcelable$Creator;
  
41 ····return-void33 ····return-void
42 .end·method34 .end·method
  
43 .method·protected·constructor·<init>(Landroid/os/Parcel;)V35 .method·protected·constructor·<init>(Landroid/os/Parcel;)V
44 ····.locals·136 ····.locals·1
45 ····.param·p1,·"in"····#·Landroid/os/Parcel;37 ····.param·p1,·"in"····#·Landroid/os/Parcel;
  
46 ····.prologue38 ····.prologue
47 ····.line·15139 ····.line·97
48 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V40 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
49 ····.line·15241 ····.line·98
50 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;42 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
51 ····move-result-object·v043 ····move-result-object·v0
  
52 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->responseData:Ljava/lang/String;44 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->responseData:Ljava/lang/String;
  
53 ····.line·15345 ····.line·99
54 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;46 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
55 ····move-result-object·v047 ····move-result-object·v0
  
56 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->signature:Ljava/lang/String;48 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->signature:Ljava/lang/String;
  
57 ····.line·15449 ····.line·100
 50 ····invoke-virtual·{p0},·Lcom/anjlab/android/iab/v3/PurchaseInfo;->parseResponseDataImpl()Lcom/anjlab/android/iab/v3/PurchaseData;
  
 51 ····move-result-object·v0
  
 52 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
  
 53 ····.line·101
58 ····return-void54 ····return-void
59 .end·method55 .end·method
  
60 .method·public·constructor·<init>(Ljava/lang/String;Ljava/lang/String;)V56 .method·public·constructor·<init>(Ljava/lang/String;Ljava/lang/String;)V
61 ····.locals·057 ····.locals·1
62 ····.param·p1,·"responseData"····#·Ljava/lang/String;58 ····.param·p1,·"responseData"····#·Ljava/lang/String;
63 ····.param·p2,·"signature"····#·Ljava/lang/String;59 ····.param·p2,·"signature"····#·Ljava/lang/String;
  
64 ····.prologue60 ····.prologue
65 ····.line·4561 ····.line·44
66 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V62 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
67 ····.line·4663 ····.line·45
68 ····iput-object·p1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->responseData:Ljava/lang/String;64 ····iput-object·p1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->responseData:Ljava/lang/String;
  
69 ····.line·4765 ····.line·46
70 ····iput-object·p2,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->signature:Ljava/lang/String;66 ····iput-object·p2,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->signature:Ljava/lang/String;
  
 67 ····.line·47
 68 ····invoke-virtual·{p0},·Lcom/anjlab/android/iab/v3/PurchaseInfo;->parseResponseDataImpl()Lcom/anjlab/android/iab/v3/PurchaseData;
  
 69 ····move-result-object·v0
  
 70 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
  
71 ····.line·4871 ····.line·48
72 ····return-void72 ····return-void
73 .end·method73 .end·method
  
74 .method·public·static·getPurchaseState(I)Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState; 
 74 #·virtual·methods
 75 .method·public·describeContents()I
75 ····.locals·176 ····.locals·1
76 ····.param·p0,·"state"····#·I 
  
77 ····.prologue77 ····.prologue
78 ····.line·10678 ····.line·86
79 ····packed-switch·p0,·:pswitch_data_079 ····const/4·v0,·0x0
  
 80 ····return·v0
 81 .end·method
  
 82 .method·public·equals(Ljava/lang/Object;)Z
 83 ····.locals·5
Max diff block lines reached; 11312/15170 bytes (74.57%) of diff not shown.
16.0 KB
smali/com/anjlab/android/iab/v3/BillingCache.smali
    
Offset 26, 50 lines modifiedOffset 26, 50 lines modified
26 ····.end·annotation26 ····.end·annotation
27 .end·field27 .end·field
  
28 .field·private·version:Ljava/lang/String;28 .field·private·version:Ljava/lang/String;
  
  
29 #·direct·methods29 #·direct·methods
30 .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;)V30 .method·constructor·<init>(Landroid/content/Context;Ljava/lang/String;)V
31 ····.locals·131 ····.locals·1
32 ····.param·p1,·"context"····#·Landroid/content/Context;32 ····.param·p1,·"context"····#·Landroid/content/Context;
33 ····.param·p2,·"key"····#·Ljava/lang/String;33 ····.param·p2,·"key"····#·Ljava/lang/String;
  
34 ····.prologue34 ····.prologue
35 ····.line·3735 ····.line·39
36 ····invoke-direct·{p0,·p1},·Lcom/anjlab/android/iab/v3/BillingBase;-><init>(Landroid/content/Context;)V36 ····invoke-direct·{p0,·p1},·Lcom/anjlab/android/iab/v3/BillingBase;-><init>(Landroid/content/Context;)V
  
37 ····.line·3837 ····.line·40
38 ····new-instance·v0,·Ljava/util/HashMap;38 ····new-instance·v0,·Ljava/util/HashMap;
  
39 ····invoke-direct·{v0},·Ljava/util/HashMap;-><init>()V39 ····invoke-direct·{v0},·Ljava/util/HashMap;-><init>()V
  
40 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->data:Ljava/util/HashMap;40 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->data:Ljava/util/HashMap;
  
41 ····.line·3941 ····.line·41
42 ····iput-object·p2,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->cacheKey:Ljava/lang/String;42 ····iput-object·p2,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->cacheKey:Ljava/lang/String;
  
43 ····.line·4043 ····.line·42
44 ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->load()V44 ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->load()V
  
45 ····.line·4145 ····.line·43
46 ····return-void46 ····return-void
47 .end·method47 .end·method
  
48 .method·private·flush()V48 .method·private·flush()V
49 ····.locals·649 ····.locals·6
  
50 ····.prologue50 ····.prologue
51 ····.line·6651 ····.line·78
52 ····new-instance·v1,·Ljava/util/ArrayList;52 ····new-instance·v1,·Ljava/util/ArrayList;
  
53 ····invoke-direct·{v1},·Ljava/util/ArrayList;-><init>()V53 ····invoke-direct·{v1},·Ljava/util/ArrayList;-><init>()V
  
54 ····.line·6754 ····.line·79
55 ····.local·v1,·"output":Ljava/util/ArrayList;,·"Ljava/util/ArrayList<Ljava/lang/String;>;"55 ····.local·v1,·"output":Ljava/util/ArrayList;,·"Ljava/util/ArrayList<Ljava/lang/String;>;"
56 ····iget-object·v3,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->data:Ljava/util/HashMap;56 ····iget-object·v3,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->data:Ljava/util/HashMap;
  
57 ····invoke-virtual·{v3},·Ljava/util/HashMap;->keySet()Ljava/util/Set;57 ····invoke-virtual·{v3},·Ljava/util/HashMap;->keySet()Ljava/util/Set;
  
58 ····move-result-object·v358 ····move-result-object·v3
  
Offset 86, 25 lines modifiedOffset 86, 25 lines modified
  
86 ····invoke-interface·{v3},·Ljava/util/Iterator;->next()Ljava/lang/Object;86 ····invoke-interface·{v3},·Ljava/util/Iterator;->next()Ljava/lang/Object;
  
87 ····move-result-object·v287 ····move-result-object·v2
  
88 ····check-cast·v2,·Ljava/lang/String;88 ····check-cast·v2,·Ljava/lang/String;
  
89 ····.line·6889 ····.line·81
90 ····.local·v2,·"productId":Ljava/lang/String;90 ····.local·v2,·"productId":Ljava/lang/String;
91 ····iget-object·v4,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->data:Ljava/util/HashMap;91 ····iget-object·v4,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->data:Ljava/util/HashMap;
  
92 ····invoke-virtual·{v4,·v2},·Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;92 ····invoke-virtual·{v4,·v2},·Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
  
93 ····move-result-object·v093 ····move-result-object·v0
  
94 ····check-cast·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;94 ····check-cast·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
95 ····.line·6995 ····.line·82
96 ····.local·v0,·"info":Lcom/anjlab/android/iab/v3/PurchaseInfo;96 ····.local·v0,·"info":Lcom/anjlab/android/iab/v3/PurchaseInfo;
97 ····new-instance·v4,·Ljava/lang/StringBuilder;97 ····new-instance·v4,·Ljava/lang/StringBuilder;
  
98 ····invoke-direct·{v4},·Ljava/lang/StringBuilder;-><init>()V98 ····invoke-direct·{v4},·Ljava/lang/StringBuilder;-><init>()V
  
99 ····invoke-virtual·{v4,·v2},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;99 ····invoke-virtual·{v4,·v2},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  
Offset 138, 15 lines modifiedOffset 138, 15 lines modified
  
138 ····move-result-object·v4138 ····move-result-object·v4
  
139 ····invoke-virtual·{v1,·v4},·Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z139 ····invoke-virtual·{v1,·v4},·Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
  
140 ····goto·:goto_0140 ····goto·:goto_0
  
141 ····.line·71141 ····.line·85
142 ····.end·local·v0····#·"info":Lcom/anjlab/android/iab/v3/PurchaseInfo;142 ····.end·local·v0····#·"info":Lcom/anjlab/android/iab/v3/PurchaseInfo;
143 ····.end·local·v2····#·"productId":Ljava/lang/String;143 ····.end·local·v2····#·"productId":Ljava/lang/String;
144 ····:cond_0144 ····:cond_0
145 ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->getPreferencesCacheKey()Ljava/lang/String;145 ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->getPreferencesCacheKey()Ljava/lang/String;
  
146 ····move-result-object·v3146 ····move-result-object·v3
  
Offset 154, 47 lines modifiedOffset 154, 47 lines modified
  
154 ····invoke-static·{v4,·v1},·Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;154 ····invoke-static·{v4,·v1},·Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
  
155 ····move-result-object·v4155 ····move-result-object·v4
  
156 ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z156 ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z
  
157 ····.line·72157 ····.line·86
158 ····new-instance·v3,·Ljava/util/Date;158 ····new-instance·v3,·Ljava/util/Date;
  
159 ····invoke-direct·{v3},·Ljava/util/Date;-><init>()V159 ····invoke-direct·{v3},·Ljava/util/Date;-><init>()V
  
160 ····invoke-virtual·{v3},·Ljava/util/Date;->getTime()J160 ····invoke-virtual·{v3},·Ljava/util/Date;->getTime()J
  
161 ····move-result-wide·v4161 ····move-result-wide·v4
  
162 ····invoke-static·{v4,·v5},·Ljava/lang/Long;->toString(J)Ljava/lang/String;162 ····invoke-static·{v4,·v5},·Ljava/lang/Long;->toString(J)Ljava/lang/String;
  
163 ····move-result-object·v3163 ····move-result-object·v3
  
164 ····iput-object·v3,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->version:Ljava/lang/String;164 ····iput-object·v3,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->version:Ljava/lang/String;
  
165 ····.line·73165 ····.line·87
166 ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->getPreferencesVersionKey()Ljava/lang/String;166 ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->getPreferencesVersionKey()Ljava/lang/String;
  
167 ····move-result-object·v3167 ····move-result-object·v3
  
168 ····iget-object·v4,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->version:Ljava/lang/String;168 ····iget-object·v4,·p0,·Lcom/anjlab/android/iab/v3/BillingCache;->version:Ljava/lang/String;
  
169 ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z169 ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z
  
170 ····.line·74170 ····.line·88
171 ····return-void171 ····return-void
172 .end·method172 .end·method
Max diff block lines reached; 12193/16238 bytes (75.09%) of diff not shown.
8.89 KB
smali/com/anjlab/android/iab/v3/Security.smali
    
Offset 23, 31 lines modifiedOffset 23, 31 lines modified
23 .end·method23 .end·method
  
24 .method·public·static·generatePublicKey(Ljava/lang/String;)Ljava/security/PublicKey;24 .method·public·static·generatePublicKey(Ljava/lang/String;)Ljava/security/PublicKey;
25 ····.locals·525 ····.locals·5
26 ····.param·p0,·"encodedPublicKey"····#·Ljava/lang/String;26 ····.param·p0,·"encodedPublicKey"····#·Ljava/lang/String;
  
27 ····.prologue27 ····.prologue
28 ····.line·8628 ····.line·94
29 ····const/4·v3,·0x029 ····const/4·v3,·0x0
  
30 ····:try_start_030 ····:try_start_0
31 ····invoke-static·{p0,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B31 ····invoke-static·{p0,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B
  
32 ····move-result-object·v032 ····move-result-object·v0
  
33 ····.line·8733 ····.line·95
34 ····.local·v0,·"decodedKey":[B34 ····.local·v0,·"decodedKey":[B
35 ····const-string·v3,·"RSA"35 ····const-string·v3,·"RSA"
  
36 ····invoke-static·{v3},·Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;36 ····invoke-static·{v3},·Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
  
37 ····move-result-object·v237 ····move-result-object·v2
  
38 ····.line·8838 ····.line·96
39 ····.local·v2,·"keyFactory":Ljava/security/KeyFactory;39 ····.local·v2,·"keyFactory":Ljava/security/KeyFactory;
40 ····new-instance·v3,·Ljava/security/spec/X509EncodedKeySpec;40 ····new-instance·v3,·Ljava/security/spec/X509EncodedKeySpec;
  
41 ····invoke-direct·{v3,·v0},·Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V41 ····invoke-direct·{v3,·v0},·Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V
  
42 ····invoke-virtual·{v2,·v3},·Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;42 ····invoke-virtual·{v2,·v3},·Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
43 ····:try_end_043 ····:try_end_0
Offset 55, 181 lines modifiedOffset 55, 181 lines modified
55 ····.catch·Ljava/security/spec/InvalidKeySpecException;·{:try_start_0·..·:try_end_0}·:catch_155 ····.catch·Ljava/security/spec/InvalidKeySpecException;·{:try_start_0·..·:try_end_0}·:catch_1
56 ····.catch·Ljava/lang/IllegalArgumentException;·{:try_start_0·..·:try_end_0}·:catch_256 ····.catch·Ljava/lang/IllegalArgumentException;·{:try_start_0·..·:try_end_0}·:catch_2
  
57 ····move-result-object·v357 ····move-result-object·v3
  
58 ····return-object·v358 ····return-object·v3
  
59 ····.line·8959 ····.line·98
60 ····.end·local·v0····#·"decodedKey":[B60 ····.end·local·v0····#·"decodedKey":[B
61 ····.end·local·v2····#·"keyFactory":Ljava/security/KeyFactory;61 ····.end·local·v2····#·"keyFactory":Ljava/security/KeyFactory;
62 ····:catch_062 ····:catch_0
63 ····move-exception·v163 ····move-exception·v1
  
64 ····.line·9064 ····.line·100
65 ····.local·v1,·"e":Ljava/security/NoSuchAlgorithmException;65 ····.local·v1,·"e":Ljava/security/NoSuchAlgorithmException;
66 ····new-instance·v3,·Ljava/lang/RuntimeException;66 ····new-instance·v3,·Ljava/lang/RuntimeException;
  
67 ····invoke-direct·{v3,·v1},·Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V67 ····invoke-direct·{v3,·v1},·Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
  
68 ····throw·v368 ····throw·v3
  
69 ····.line·9169 ····.line·102
70 ····.end·local·v1····#·"e":Ljava/security/NoSuchAlgorithmException;70 ····.end·local·v1····#·"e":Ljava/security/NoSuchAlgorithmException;
71 ····:catch_171 ····:catch_1
72 ····move-exception·v172 ····move-exception·v1
  
73 ····.line·9273 ····.line·104
74 ····.local·v1,·"e":Ljava/security/spec/InvalidKeySpecException;74 ····.local·v1,·"e":Ljava/security/spec/InvalidKeySpecException;
75 ····const-string·v3,·"IABUtil/Security"75 ····const-string·v3,·"IABUtil/Security"
  
76 ····const-string·v4,·"Invalid·key·specification."76 ····const-string·v4,·"Invalid·key·specification."
  
77 ····invoke-static·{v3,·v4},·Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I77 ····invoke-static·{v3,·v4},·Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  
78 ····.line·9378 ····.line·105
79 ····new-instance·v3,·Ljava/lang/IllegalArgumentException;79 ····new-instance·v3,·Ljava/lang/IllegalArgumentException;
  
80 ····invoke-direct·{v3,·v1},·Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/Throwable;)V80 ····invoke-direct·{v3,·v1},·Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/Throwable;)V
  
81 ····throw·v381 ····throw·v3
  
82 ····.line·9482 ····.line·107
83 ····.end·local·v1····#·"e":Ljava/security/spec/InvalidKeySpecException;83 ····.end·local·v1····#·"e":Ljava/security/spec/InvalidKeySpecException;
84 ····:catch_284 ····:catch_2
85 ····move-exception·v185 ····move-exception·v1
  
86 ····.line·9586 ····.line·109
87 ····.local·v1,·"e":Ljava/lang/IllegalArgumentException;87 ····.local·v1,·"e":Ljava/lang/IllegalArgumentException;
88 ····const-string·v3,·"IABUtil/Security"88 ····const-string·v3,·"IABUtil/Security"
  
89 ····const-string·v4,·"Base64·decoding·failed."89 ····const-string·v4,·"Base64·decoding·failed."
  
90 ····invoke-static·{v3,·v4},·Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I90 ····invoke-static·{v3,·v4},·Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  
91 ····.line·9691 ····.line·110
92 ····throw·v192 ····throw·v1
93 .end·method93 .end·method
  
94 .method·public·static·verify(Ljava/security/PublicKey;Ljava/lang/String;Ljava/lang/String;)Z94 .method·public·static·verify(Ljava/security/PublicKey;Ljava/lang/String;Ljava/lang/String;)Z
95 ····.locals·595 ····.locals·5
96 ····.param·p0,·"publicKey"····#·Ljava/security/PublicKey;96 ····.param·p0,·"publicKey"····#·Ljava/security/PublicKey;
97 ····.param·p1,·"signedData"····#·Ljava/lang/String;97 ····.param·p1,·"signedData"····#·Ljava/lang/String;
98 ····.param·p2,·"signature"····#·Ljava/lang/String;98 ····.param·p2,·"signature"····#·Ljava/lang/String;
  
99 ····.prologue99 ····.prologue
100 ····const/4·v2,·0x0100 ····const/4·v2,·0x0
  
101 ····.line·112101 ····.line·128
102 ····:try_start_0102 ····:try_start_0
103 ····const-string·v3,·"SHA1withRSA"103 ····const-string·v3,·"SHA1withRSA"
  
104 ····invoke-static·{v3},·Ljava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;104 ····invoke-static·{v3},·Ljava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
  
105 ····move-result-object·v1105 ····move-result-object·v1
  
106 ····.line·113106 ····.line·129
107 ····.local·v1,·"sig":Ljava/security/Signature;107 ····.local·v1,·"sig":Ljava/security/Signature;
108 ····invoke-virtual·{v1,·p0},·Ljava/security/Signature;->initVerify(Ljava/security/PublicKey;)V108 ····invoke-virtual·{v1,·p0},·Ljava/security/Signature;->initVerify(Ljava/security/PublicKey;)V
  
109 ····.line·114109 ····.line·130
110 ····invoke-virtual·{p1},·Ljava/lang/String;->getBytes()[B110 ····invoke-virtual·{p1},·Ljava/lang/String;->getBytes()[B
  
111 ····move-result-object·v3111 ····move-result-object·v3
  
112 ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->update([B)V112 ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->update([B)V
  
113 ····.line·115113 ····.line·131
114 ····const/4·v3,·0x0114 ····const/4·v3,·0x0
  
115 ····invoke-static·{p2,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B115 ····invoke-static·{p2,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B
  
116 ····move-result-object·v3116 ····move-result-object·v3
  
117 ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->verify([B)Z117 ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->verify([B)Z
  
Max diff block lines reached; 5067/9008 bytes (56.25%) of diff not shown.
1.67 KB
smali/com/anjlab/android/iab/v3/PurchaseInfo$1.smali
    
Offset 28, 62 lines modifiedOffset 28, 62 lines modified
  
  
28 #·direct·methods28 #·direct·methods
29 .method·constructor·<init>()V29 .method·constructor·<init>()V
30 ····.locals·030 ····.locals·0
  
31 ····.prologue31 ····.prologue
32 ····.line·15632 ····.line·105
33 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V33 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
34 ····return-void34 ····return-void
35 .end·method35 .end·method
  
  
36 #·virtual·methods36 #·virtual·methods
37 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseInfo;37 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseInfo;
38 ····.locals·138 ····.locals·1
39 ····.param·p1,·"source"····#·Landroid/os/Parcel;39 ····.param·p1,·"source"····#·Landroid/os/Parcel;
  
40 ····.prologue40 ····.prologue
41 ····.line·15841 ····.line·108
42 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;42 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
43 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo;-><init>(Landroid/os/Parcel;)V43 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo;-><init>(Landroid/os/Parcel;)V
  
44 ····return-object·v044 ····return-object·v0
45 .end·method45 .end·method
  
46 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;46 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
47 ····.locals·147 ····.locals·1
  
48 ····.prologue48 ····.prologue
49 ····.line·15649 ····.line·105
50 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseInfo;50 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
51 ····move-result-object·v051 ····move-result-object·v0
  
52 ····return-object·v052 ····return-object·v0
53 .end·method53 .end·method
  
54 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseInfo;54 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseInfo;
55 ····.locals·155 ····.locals·1
56 ····.param·p1,·"size"····#·I56 ····.param·p1,·"size"····#·I
  
57 ····.prologue57 ····.prologue
58 ····.line·16258 ····.line·113
59 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/PurchaseInfo;59 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
60 ····return-object·v060 ····return-object·v0
61 .end·method61 .end·method
  
62 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;62 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;
63 ····.locals·163 ····.locals·1
  
64 ····.prologue64 ····.prologue
65 ····.line·15665 ····.line·105
66 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;->newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseInfo;66 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$1;->newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
67 ····move-result-object·v067 ····move-result-object·v0
  
68 ····return-object·v068 ····return-object·v0
69 .end·method69 .end·method
116 KB
smali/com/anjlab/android/iab/v3/BillingProcessor.smali
    
Offset 2, 14 lines modifiedOffset 2, 15 lines modified
2 .super·Lcom/anjlab/android/iab/v3/BillingBase;2 .super·Lcom/anjlab/android/iab/v3/BillingBase;
3 .source·"BillingProcessor.java"3 .source·"BillingProcessor.java"
  
  
4 #·annotations4 #·annotations
5 .annotation·system·Ldalvik/annotation/MemberClasses;5 .annotation·system·Ldalvik/annotation/MemberClasses;
6 ····value·=·{6 ····value·=·{
 7 ········Lcom/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask;,
7 ········Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;8 ········Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;
8 ····}9 ····}
9 .end·annotation10 .end·annotation
  
  
10 #·static·fields11 #·static·fields
11 .field·private·static·final·DATE_MERCHANT_LIMIT_1:Ljava/util/Date;12 .field·private·static·final·DATE_MERCHANT_LIMIT_1:Ljava/util/Date;
Offset 40, 333 lines modifiedOffset 41, 505 lines modified
  
40 .field·private·contextPackageName:Ljava/lang/String;41 .field·private·contextPackageName:Ljava/lang/String;
  
41 .field·private·developerMerchantId:Ljava/lang/String;42 .field·private·developerMerchantId:Ljava/lang/String;
  
42 .field·private·eventHandler:Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;43 .field·private·eventHandler:Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;
  
 44 .field·private·isOneTimePurchaseExtraParamsSupported:Z
  
 45 .field·private·isOneTimePurchasesSupported:Z
  
43 .field·private·isSubsUpdateSupported:Z46 .field·private·isSubsUpdateSupported:Z
  
 47 .field·private·isSubscriptionExtraParamsSupported:Z
  
44 .field·private·serviceConnection:Landroid/content/ServiceConnection;48 .field·private·serviceConnection:Landroid/content/ServiceConnection;
  
45 .field·private·signatureBase64:Ljava/lang/String;49 .field·private·signatureBase64:Ljava/lang/String;
  
  
46 #·direct·methods50 #·direct·methods
47 .method·static·constructor·<clinit>()V51 .method·static·constructor·<clinit>()V
48 ····.locals·452 ····.locals·4
  
49 ····.prologue53 ····.prologue
50 ····.line·5854 ····.line·68
51 ····new-instance·v0,·Ljava/util/Date;55 ····invoke-static·{},·Ljava/util/Calendar;->getInstance()Ljava/util/Calendar;
  
 56 ····move-result-object·v0
  
 57 ····.line·69
 58 ····.local·v0,·"calendar":Ljava/util/Calendar;
52 ····const/16·v1,·0x7dc59 ····const/16·v1,·0x7dc
  
53 ····const/16·v2,·0xc60 ····const/16·v2,·0xb
  
54 ····const/4·v3,·0x561 ····const/4·v3,·0x5
  
55 ····invoke-direct·{v0,·v1,·v2,·v3},·Ljava/util/Date;-><init>(III)V62 ····invoke-virtual·{v0,·v1,·v2,·v3},·Ljava/util/Calendar;->set(III)V
  
56 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/BillingProcessor;->DATE_MERCHANT_LIMIT_1:Ljava/util/Date;63 ····.line·70
 64 ····invoke-virtual·{v0},·Ljava/util/Calendar;->getTime()Ljava/util/Date;
  
57 ····.line·59 
58 ····new-instance·v0,·Ljava/util/Date;65 ····move-result-object·v1
  
 66 ····sput-object·v1,·Lcom/anjlab/android/iab/v3/BillingProcessor;->DATE_MERCHANT_LIMIT_1:Ljava/util/Date;
  
 67 ····.line·71
59 ····const/16·v1,·0x7df68 ····const/16·v1,·0x7df
  
60 ····const/4·v2,·0x769 ····const/4·v2,·0x6
  
61 ····const/16·v3,·0x1470 ····const/16·v3,·0x15
  
62 ····invoke-direct·{v0,·v1,·v2,·v3},·Ljava/util/Date;-><init>(III)V71 ····invoke-virtual·{v0,·v1,·v2,·v3},·Ljava/util/Calendar;->set(III)V
  
63 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/BillingProcessor;->DATE_MERCHANT_LIMIT_2:Ljava/util/Date;72 ····.line·72
 73 ····invoke-virtual·{v0},·Ljava/util/Calendar;->getTime()Ljava/util/Date;
  
 74 ····move-result-object·v1
  
 75 ····sput-object·v1,·Lcom/anjlab/android/iab/v3/BillingProcessor;->DATE_MERCHANT_LIMIT_2:Ljava/util/Date;
  
 76 ····.line·73
64 ····return-void77 ····return-void
65 .end·method78 .end·method
  
66 .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V79 .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V
67 ····.locals·180 ····.locals·1
68 ····.param·p1,·"context"····#·Landroid/content/Context;81 ····.param·p1,·"context"····#·Landroid/content/Context;
69 ····.param·p2,·"licenseKey"····#·Ljava/lang/String;82 ····.param·p2,·"licenseKey"····#·Ljava/lang/String;
70 ····.param·p3,·"handler"····#·Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;83 ····.param·p3,·"handler"····#·Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;
  
71 ····.prologue84 ····.prologue
72 ····.line·9885 ····.line·163
73 ····const/4·v0,·0x086 ····const/4·v0,·0x0
  
74 ····invoke-direct·{p0,·p1,·p2,·v0,·p3},·Lcom/anjlab/android/iab/v3/BillingProcessor;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V87 ····invoke-direct·{p0,·p1,·p2,·v0,·p3},·Lcom/anjlab/android/iab/v3/BillingProcessor;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V
  
75 ····.line·9988 ····.line·164
76 ····return-void89 ····return-void
77 .end·method90 .end·method
  
78 .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V91 .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V
79 ····.locals·292 ····.locals·6
 93 ····.param·p1,·"context"····#·Landroid/content/Context;
 94 ····.param·p2,·"licenseKey"····#·Ljava/lang/String;
 95 ····.param·p3,·"merchantId"····#·Ljava/lang/String;
 96 ····.param·p4,·"handler"····#·Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;
  
 97 ····.prologue
 98 ····.line·169
 99 ····const/4·v5,·0x1
  
 100 ····move-object·v0,·p0
  
 101 ····move-object·v1,·p1
  
 102 ····move-object·v2,·p2
  
 103 ····move-object·v3,·p3
  
 104 ····move-object·v4,·p4
  
 105 ····invoke-direct/range·{v0·..·v5},·Lcom/anjlab/android/iab/v3/BillingProcessor;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;Z)V
  
 106 ····.line·170
 107 ····return-void
 108 .end·method
  
Max diff block lines reached; 114608/119053 bytes (96.27%) of diff not shown.
15.2 KB
smali/com/anjlab/android/iab/v3/TransactionDetails.smali
    
Offset 17, 211 lines modifiedOffset 17, 195 lines modified
17 ········}17 ········}
18 ····.end·annotation18 ····.end·annotation
19 .end·field19 .end·field
  
  
20 #·instance·fields20 #·instance·fields
21 .field·public·final·orderId:Ljava/lang/String;21 .field·public·final·orderId:Ljava/lang/String;
 22 ····.annotation·runtime·Ljava/lang/Deprecated;
 23 ····.end·annotation
 24 .end·field
  
22 .field·public·final·productId:Ljava/lang/String;25 .field·public·final·productId:Ljava/lang/String;
 26 ····.annotation·runtime·Ljava/lang/Deprecated;
 27 ····.end·annotation
 28 .end·field
  
23 .field·public·final·purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;29 .field·public·final·purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
24 .field·public·final·purchaseTime:Ljava/util/Date;30 .field·public·final·purchaseTime:Ljava/util/Date;
 31 ····.annotation·runtime·Ljava/lang/Deprecated;
 32 ····.end·annotation
 33 .end·field
  
25 .field·public·final·purchaseToken:Ljava/lang/String;34 .field·public·final·purchaseToken:Ljava/lang/String;
 35 ····.annotation·runtime·Ljava/lang/Deprecated;
 36 ····.end·annotation
 37 .end·field
  
  
26 #·direct·methods38 #·direct·methods
27 .method·static·constructor·<clinit>()V39 .method·static·constructor·<clinit>()V
28 ····.locals·140 ····.locals·1
  
29 ····.prologue41 ····.prologue
30 ····.line·9142 ····.line·117
31 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/TransactionDetails$1;43 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/TransactionDetails$1;
  
32 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/TransactionDetails$1;-><init>()V44 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/TransactionDetails$1;-><init>()V
  
33 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->CREATOR:Landroid/os/Parcelable$Creator;45 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->CREATOR:Landroid/os/Parcelable$Creator;
  
34 ····return-void46 ····return-void
35 .end·method47 .end·method
  
36 .method·protected·constructor·<init>(Landroid/os/Parcel;)V48 .method·protected·constructor·<init>(Landroid/os/Parcel;)V
37 ····.locals·449 ····.locals·1
38 ····.param·p1,·"in"····#·Landroid/os/Parcel;50 ····.param·p1,·"in"····#·Landroid/os/Parcel;
  
39 ····.prologue51 ····.prologue
40 ····.line·8252 ····.line·109
41 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V53 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
42 ····.line·8354 ····.line·110
43 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;55 ····const-class·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
44 ····move-result-object·v256 ····invoke-virtual·{v0},·Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
  
45 ····iput-object·v2,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->productId:Ljava/lang/String;57 ····move-result-object·v0
  
 58 ····invoke-virtual·{p1,·v0},·Landroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
46 ····.line·84 
47 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String; 
  
48 ····move-result-object·v259 ····move-result-object·v0
  
49 ····iput-object·v2,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->orderId:Ljava/lang/String;60 ····check-cast·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
 61 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;
50 ····.line·85 
51 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String; 
  
52 ····move-result-object·v262 ····.line·111
 63 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
53 ····iput-object·v2,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseToken:Ljava/lang/String;64 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
  
 65 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->productId:Ljava/lang/String;
54 ····.line·86 
55 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J 
  
56 ····move-result-wide·v066 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->productId:Ljava/lang/String;
  
57 ····.line·8767 ····.line·112
 68 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;
58 ····.local·v0,·"tmpPurchaseTime":J 
59 ····const-wide/16·v2,·-0x1 
  
60 ····cmp-long·v2,·v0,·v269 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
  
61 ····if-nez·v2,·:cond_070 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->orderId:Ljava/lang/String;
  
62 ····const/4·v2,·0x071 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->orderId:Ljava/lang/String;
  
63 ····:goto_072 ····.line·113
64 ····iput-object·v2,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseTime:Ljava/util/Date;73 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
 74 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
65 ····.line·88 
66 ····const-class·v2,·Lcom/anjlab/android/iab/v3/PurchaseInfo; 
  
67 ····invoke-virtual·{v2},·Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;75 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->purchaseToken:Ljava/lang/String;
  
68 ····move-result-object·v276 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseToken:Ljava/lang/String;
  
69 ····invoke-virtual·{p1,·v2},·Landroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;77 ····.line·114
 78 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;
  
70 ····move-result-object·v279 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData;
  
71 ····check-cast·v2,·Lcom/anjlab/android/iab/v3/PurchaseInfo;80 ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->purchaseTime:Ljava/util/Date;
  
72 ····iput-object·v2,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo;81 ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseTime:Ljava/util/Date;
  
73 ····.line·8982 ····.line·115
74 ····return-void83 ····return-void
  
75 ····.line·87 
76 ····:cond_0 
77 ····new-instance·v2,·Ljava/util/Date; 
  
78 ····invoke-direct·{v2,·v0,·v1},·Ljava/util/Date;-><init>(J)V 
  
79 ····goto·:goto_0 
80 .end·method84 .end·method
  
81 .method·public·constructor·<init>(Lcom/anjlab/android/iab/v3/PurchaseInfo;)V85 .method·public·constructor·<init>(Lcom/anjlab/android/iab/v3/PurchaseInfo;)V
82 ····.locals·486 ····.locals·1
Max diff block lines reached; 9779/15491 bytes (63.13%) of diff not shown.
5.73 KB
smali/com/anjlab/android/iab/v3/BillingProcessor$1.smali
    
Offset 23, 111 lines modifiedOffset 23, 66 lines modified
  
23 #·direct·methods23 #·direct·methods
24 .method·constructor·<init>(Lcom/anjlab/android/iab/v3/BillingProcessor;)V24 .method·constructor·<init>(Lcom/anjlab/android/iab/v3/BillingProcessor;)V
25 ····.locals·025 ····.locals·0
26 ····.param·p1,·"this$0"····#·Lcom/anjlab/android/iab/v3/BillingProcessor;26 ····.param·p1,·"this$0"····#·Lcom/anjlab/android/iab/v3/BillingProcessor;
  
27 ····.prologue27 ····.prologue
28 ····.line·7828 ····.line·127
29 ····iput-object·p1,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;29 ····iput-object·p1,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;
  
30 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V30 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
31 ····return-void31 ····return-void
32 .end·method32 .end·method
  
  
33 #·virtual·methods33 #·virtual·methods
34 .method·public·onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V34 .method·public·onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
35 ····.locals·235 ····.locals·3
36 ····.param·p1,·"name"····#·Landroid/content/ComponentName;36 ····.param·p1,·"name"····#·Landroid/content/ComponentName;
37 ····.param·p2,·"service"····#·Landroid/os/IBinder;37 ····.param·p2,·"service"····#·Landroid/os/IBinder;
  
38 ····.prologue38 ····.prologue
39 ····.line·8639 ····.line·137
40 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;40 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;
  
41 ····invoke-static·{p2},·Lcom/android/vending/billing/IInAppBillingService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/vending/billing/IInAppBillingService;41 ····invoke-static·{p2},·Lcom/android/vending/billing/IInAppBillingService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/vending/billing/IInAppBillingService;
  
42 ····move-result-object·v142 ····move-result-object·v1
  
43 ····invoke-static·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$002(Lcom/anjlab/android/iab/v3/BillingProcessor;Lcom/android/vending/billing/IInAppBillingService;)Lcom/android/vending/billing/IInAppBillingService;43 ····invoke-static·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$302(Lcom/anjlab/android/iab/v3/BillingProcessor;Lcom/android/vending/billing/IInAppBillingService;)Lcom/android/vending/billing/IInAppBillingService;
  
44 ····.line·87 
45 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
46 ····invoke-static·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$100(Lcom/anjlab/android/iab/v3/BillingProcessor;)Z 
  
47 ····move-result·v0 
  
48 ····if-nez·v0,·:cond_0 
  
49 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
50 ····invoke-virtual·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->loadOwnedPurchasesFromGoogle()Z 
  
51 ····move-result·v0 
  
52 ····if-eqz·v0,·:cond_0 
  
53 ····.line·88 
54 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
55 ····invoke-virtual·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->setPurchaseHistoryRestored()V 
  
56 ····.line·8944 ····.line·138
 45 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask;
57 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
58 ····invoke-static·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$200(Lcom/anjlab/android/iab/v3/BillingProcessor;)Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler; 
  
59 ····move-result-object·v0 
  
60 ····if-eqz·v0,·:cond_0 
  
61 ····.line·90 
62 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
63 ····invoke-static·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$200(Lcom/anjlab/android/iab/v3/BillingProcessor;)Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler; 
  
64 ····move-result-object·v046 ····iget-object·v1,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;
  
65 ····invoke-interface·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;->onPurchaseHistoryRestored()V47 ····const/4·v2,·0x0
  
66 ····.line·92 
67 ····:cond_0 
68 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
69 ····invoke-static·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$200(Lcom/anjlab/android/iab/v3/BillingProcessor;)Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;48 ····invoke-direct·{v0,·v1,·v2},·Lcom/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask;-><init>(Lcom/anjlab/android/iab/v3/BillingProcessor;Lcom/anjlab/android/iab/v3/BillingProcessor$1;)V
  
70 ····move-result-object·v0 
  
71 ····if-eqz·v0,·:cond_1 
  
 49 ····const/4·v1,·0x0
72 ····.line·93 
73 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; 
  
74 ····invoke-static·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$200(Lcom/anjlab/android/iab/v3/BillingProcessor;)Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler; 
  
75 ····move-result-object·v050 ····new-array·v1,·v1,·[Ljava/lang/Void;
  
76 ····invoke-interface·{v0},·Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;->onBillingInitialized()V51 ····invoke-virtual·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask;
  
77 ····.line·9452 ····.line·139
78 ····:cond_1 
79 ····return-void53 ····return-void
80 .end·method54 .end·method
  
81 .method·public·onServiceDisconnected(Landroid/content/ComponentName;)V55 .method·public·onServiceDisconnected(Landroid/content/ComponentName;)V
82 ····.locals·256 ····.locals·2
83 ····.param·p1,·"name"····#·Landroid/content/ComponentName;57 ····.param·p1,·"name"····#·Landroid/content/ComponentName;
  
84 ····.prologue58 ····.prologue
85 ····.line·8159 ····.line·131
86 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;60 ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor;
  
87 ····const/4·v1,·0x061 ····const/4·v1,·0x0
  
88 ····invoke-static·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$002(Lcom/anjlab/android/iab/v3/BillingProcessor;Lcom/android/vending/billing/IInAppBillingService;)Lcom/android/vending/billing/IInAppBillingService;62 ····invoke-static·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$302(Lcom/anjlab/android/iab/v3/BillingProcessor;Lcom/android/vending/billing/IInAppBillingService;)Lcom/android/vending/billing/IInAppBillingService;
  
89 ····.line·8263 ····.line·132
90 ····return-void64 ····return-void
91 .end·method65 .end·method
512 B
smali/com/anjlab/android/iab/v3/BuildConfig.smali
    
Offset 10, 15 lines modifiedOffset 10, 15 lines modified
  
10 .field·public·static·final·DEBUG:Z·=·false10 .field·public·static·final·DEBUG:Z·=·false
  
11 .field·public·static·final·FLAVOR:Ljava/lang/String;·=·""11 .field·public·static·final·FLAVOR:Ljava/lang/String;·=·""
  
12 .field·public·static·final·VERSION_CODE:I·=·0x112 .field·public·static·final·VERSION_CODE:I·=·0x1
  
13 .field·public·static·final·VERSION_NAME:Ljava/lang/String;·=·"1.0.33"13 .field·public·static·final·VERSION_NAME:Ljava/lang/String;·=·"1.0.44"
  
  
14 #·direct·methods14 #·direct·methods
15 .method·public·constructor·<init>()V15 .method·public·constructor·<init>()V
16 ····.locals·016 ····.locals·0
  
17 ····.prologue17 ····.prologue
2.33 KB
smali/com/android/vending/billing/IInAppBillingService.smali
    
Offset 27, 14 lines modifiedOffset 27, 22 lines modified
27 ····.annotation·system·Ldalvik/annotation/Throws;27 ····.annotation·system·Ldalvik/annotation/Throws;
28 ········value·=·{28 ········value·=·{
29 ············Landroid/os/RemoteException;29 ············Landroid/os/RemoteException;
30 ········}30 ········}
31 ····.end·annotation31 ····.end·annotation
32 .end·method32 .end·method
  
 33 .method·public·abstract·getBuyIntentExtraParams(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 34 ····.annotation·system·Ldalvik/annotation/Throws;
 35 ········value·=·{
 36 ············Landroid/os/RemoteException;
 37 ········}
 38 ····.end·annotation
 39 .end·method
  
33 .method·public·abstract·getBuyIntentToReplaceSkus(ILjava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;40 .method·public·abstract·getBuyIntentToReplaceSkus(ILjava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
34 ····.annotation·system·Ldalvik/annotation/Signature;41 ····.annotation·system·Ldalvik/annotation/Signature;
35 ········value·=·{42 ········value·=·{
36 ············"(I",43 ············"(I",
37 ············"Ljava/lang/String;",44 ············"Ljava/lang/String;",
38 ············"Ljava/util/List",45 ············"Ljava/util/List",
39 ············"<",46 ············"<",
Offset 51, 14 lines modifiedOffset 59, 22 lines modified
51 ····.annotation·system·Ldalvik/annotation/Throws;59 ····.annotation·system·Ldalvik/annotation/Throws;
52 ········value·=·{60 ········value·=·{
53 ············Landroid/os/RemoteException;61 ············Landroid/os/RemoteException;
54 ········}62 ········}
55 ····.end·annotation63 ····.end·annotation
56 .end·method64 .end·method
  
 65 .method·public·abstract·getPurchaseHistory(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 66 ····.annotation·system·Ldalvik/annotation/Throws;
 67 ········value·=·{
 68 ············Landroid/os/RemoteException;
 69 ········}
 70 ····.end·annotation
 71 .end·method
  
57 .method·public·abstract·getPurchases(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;72 .method·public·abstract·getPurchases(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
58 ····.annotation·system·Ldalvik/annotation/Throws;73 ····.annotation·system·Ldalvik/annotation/Throws;
59 ········value·=·{74 ········value·=·{
60 ············Landroid/os/RemoteException;75 ············Landroid/os/RemoteException;
61 ········}76 ········}
62 ····.end·annotation77 ····.end·annotation
63 .end·method78 .end·method
Offset 75, 14 lines modifiedOffset 91, 22 lines modified
75 ····.annotation·system·Ldalvik/annotation/Throws;91 ····.annotation·system·Ldalvik/annotation/Throws;
76 ········value·=·{92 ········value·=·{
77 ············Landroid/os/RemoteException;93 ············Landroid/os/RemoteException;
78 ········}94 ········}
79 ····.end·annotation95 ····.end·annotation
80 .end·method96 .end·method
  
 97 .method·public·abstract·isBillingSupportedExtraParams(ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)I
 98 ····.annotation·system·Ldalvik/annotation/Throws;
 99 ········value·=·{
 100 ············Landroid/os/RemoteException;
 101 ········}
 102 ····.end·annotation
 103 .end·method
  
81 .method·public·abstract·stub(ILjava/lang/String;Ljava/lang/String;)I104 .method·public·abstract·stub(ILjava/lang/String;Ljava/lang/String;)I
82 ····.annotation·system·Ldalvik/annotation/Throws;105 ····.annotation·system·Ldalvik/annotation/Throws;
83 ········value·=·{106 ········value·=·{
84 ············Landroid/os/RemoteException;107 ············Landroid/os/RemoteException;
85 ········}108 ········}
86 ····.end·annotation109 ····.end·annotation
87 .end·method110 .end·method
10.5 KB
smali/com/android/vending/billing/IInAppBillingService$Stub.smali
    
Offset 26, 22 lines modifiedOffset 26, 28 lines modified
26 #·static·fields26 #·static·fields
27 .field·private·static·final·DESCRIPTOR:Ljava/lang/String;·=·"com.android.vending.billing.IInAppBillingService"27 .field·private·static·final·DESCRIPTOR:Ljava/lang/String;·=·"com.android.vending.billing.IInAppBillingService"
  
28 .field·static·final·TRANSACTION_consumePurchase:I·=·0x528 .field·static·final·TRANSACTION_consumePurchase:I·=·0x5
  
29 .field·static·final·TRANSACTION_getBuyIntent:I·=·0x329 .field·static·final·TRANSACTION_getBuyIntent:I·=·0x3
  
 30 .field·static·final·TRANSACTION_getBuyIntentExtraParams:I·=·0x8
  
30 .field·static·final·TRANSACTION_getBuyIntentToReplaceSkus:I·=·0x731 .field·static·final·TRANSACTION_getBuyIntentToReplaceSkus:I·=·0x7
  
 32 .field·static·final·TRANSACTION_getPurchaseHistory:I·=·0x9
  
31 .field·static·final·TRANSACTION_getPurchases:I·=·0x433 .field·static·final·TRANSACTION_getPurchases:I·=·0x4
  
32 .field·static·final·TRANSACTION_getSkuDetails:I·=·0x234 .field·static·final·TRANSACTION_getSkuDetails:I·=·0x2
  
33 .field·static·final·TRANSACTION_isBillingSupported:I·=·0x135 .field·static·final·TRANSACTION_isBillingSupported:I·=·0x1
  
 36 .field·static·final·TRANSACTION_isBillingSupportedExtraParams:I·=·0xa
  
34 .field·static·final·TRANSACTION_stub:I·=·0x637 .field·static·final·TRANSACTION_stub:I·=·0x6
  
  
35 #·direct·methods38 #·direct·methods
36 .method·public·constructor·<init>()V39 .method·public·constructor·<init>()V
37 ····.locals·140 ····.locals·1
  
Offset 126, 15 lines modifiedOffset 132, 15 lines modified
126 ········}132 ········}
127 ····.end·annotation133 ····.end·annotation
  
128 ····.prologue134 ····.prologue
129 ····.line·63135 ····.line·63
130 ····sparse-switch·p1,·:sswitch_data_0136 ····sparse-switch·p1,·:sswitch_data_0
  
131 ····.line·212137 ····.line·293
132 ····invoke-super/range·{p0·..·p4},·Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z138 ····invoke-super/range·{p0·..·p4},·Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
  
133 ····move-result·v1139 ····move-result·v1
  
134 ····:goto_0140 ····:goto_0
135 ····return·v1141 ····return·v1
  
Offset 660, 22 lines modifiedOffset 666, 337 lines modified
  
660 ····move-object/from16·v0,·p3666 ····move-object/from16·v0,·p3
  
661 ····invoke-virtual·{v0,·v1},·Landroid/os/Parcel;->writeInt(I)V667 ····invoke-virtual·{v0,·v1},·Landroid/os/Parcel;->writeInt(I)V
  
662 ····goto·:goto_5668 ····goto·:goto_5
  
663 ····.line·63669 ····.line·213
664 ····nop670 ····.end·local·v2····#·"_arg0":I
 671 ····.end·local·v3····#·"_arg1":Ljava/lang/String;
 672 ····.end·local·v5····#·"_arg3":Ljava/lang/String;
 673 ····.end·local·v6····#·"_arg4":Ljava/lang/String;
 674 ····.end·local·v10····#·"_arg2":Ljava/util/List;,·"Ljava/util/List<Ljava/lang/String;>;"
 675 ····.end·local·v13····#·"_arg5":Ljava/lang/String;
 676 ····.end·local·v14····#·"_result":Landroid/os/Bundle;
 677 ····:sswitch_8
 678 ····const-string·v1,·"com.android.vending.billing.IInAppBillingService"
  
 679 ····move-object/from16·v0,·p2
  
 680 ····invoke-virtual·{v0,·v1},·Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
  
 681 ····.line·215
 682 ····invoke-virtual/range·{p2·..·p2},·Landroid/os/Parcel;->readInt()I
  
 683 ····move-result·v2
  
 684 ····.line·217
 685 ····.restart·local·v2····#·"_arg0":I
 686 ····invoke-virtual/range·{p2·..·p2},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
 687 ····move-result-object·v3
  
 688 ····.line·219
 689 ····.restart·local·v3····#·"_arg1":Ljava/lang/String;
 690 ····invoke-virtual/range·{p2·..·p2},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
 691 ····move-result-object·v4
  
 692 ····.line·221
 693 ····.restart·local·v4····#·"_arg2":Ljava/lang/String;
 694 ····invoke-virtual/range·{p2·..·p2},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
 695 ····move-result-object·v5
  
 696 ····.line·223
 697 ····.restart·local·v5····#·"_arg3":Ljava/lang/String;
 698 ····invoke-virtual/range·{p2·..·p2},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
 699 ····move-result-object·v6
  
 700 ····.line·225
 701 ····.restart·local·v6····#·"_arg4":Ljava/lang/String;
 702 ····invoke-virtual/range·{p2·..·p2},·Landroid/os/Parcel;->readInt()I
  
 703 ····move-result·v1
  
 704 ····if-eqz·v1,·:cond_5
  
 705 ····.line·226
 706 ····sget-object·v1,·Landroid/os/Bundle;->CREATOR:Landroid/os/Parcelable$Creator;
  
 707 ····move-object/from16·v0,·p2
  
 708 ····invoke-interface·{v1,·v0},·Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
  
 709 ····move-result-object·v13
  
 710 ····check-cast·v13,·Landroid/os/Bundle;
  
 711 ····.local·v13,·"_arg5":Landroid/os/Bundle;
 712 ····:goto_6
 713 ····move-object·v1,·p0
  
 714 ····move-object·v7,·v13
  
 715 ····.line·231
 716 ····invoke-virtual/range·{v1·..·v7},·Lcom/android/vending/billing/IInAppBillingService$Stub;->getBuyIntentExtraParams(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
  
 717 ····move-result-object·v14
  
 718 ····.line·232
Max diff block lines reached; 361/10586 bytes (3.41%) of diff not shown.
30.7 KB
smali/com/android/vending/billing/IInAppBillingService$Stub$Proxy.smali
    
Offset 23, 31 lines modifiedOffset 23, 31 lines modified
  
23 #·direct·methods23 #·direct·methods
24 .method·constructor·<init>(Landroid/os/IBinder;)V24 .method·constructor·<init>(Landroid/os/IBinder;)V
25 ····.locals·025 ····.locals·0
26 ····.param·p1,·"remote"····#·Landroid/os/IBinder;26 ····.param·p1,·"remote"····#·Landroid/os/IBinder;
  
27 ····.prologue27 ····.prologue
28 ····.line·21828 ····.line·299
29 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V29 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
30 ····.line·21930 ····.line·300
31 ····iput-object·p1,·p0,·Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;31 ····iput-object·p1,·p0,·Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
  
32 ····.line·22032 ····.line·301
33 ····return-void33 ····return-void
34 .end·method34 .end·method
  
  
35 #·virtual·methods35 #·virtual·methods
36 .method·public·asBinder()Landroid/os/IBinder;36 .method·public·asBinder()Landroid/os/IBinder;
37 ····.locals·137 ····.locals·1
  
38 ····.prologue38 ····.prologue
39 ····.line·22339 ····.line·304
40 ····iget-object·v0,·p0,·Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;40 ····iget-object·v0,·p0,·Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
  
41 ····return-object·v041 ····return-object·v0
42 .end·method42 .end·method
  
43 .method·public·consumePurchase(ILjava/lang/String;Ljava/lang/String;)I43 .method·public·consumePurchase(ILjava/lang/String;Ljava/lang/String;)I
44 ····.locals·644 ····.locals·6
Offset 57, 78 lines modifiedOffset 57, 78 lines modified
57 ····.annotation·system·Ldalvik/annotation/Throws;57 ····.annotation·system·Ldalvik/annotation/Throws;
58 ········value·=·{58 ········value·=·{
59 ············Landroid/os/RemoteException;59 ············Landroid/os/RemoteException;
60 ········}60 ········}
61 ····.end·annotation61 ····.end·annotation
  
62 ····.prologue62 ····.prologue
63 ····.line·43163 ····.line·493
64 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;64 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
  
65 ····move-result-object·v065 ····move-result-object·v0
  
66 ····.line·43266 ····.line·494
67 ····.local·v0,·"_data":Landroid/os/Parcel;67 ····.local·v0,·"_data":Landroid/os/Parcel;
68 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;68 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
  
69 ····move-result-object·v169 ····move-result-object·v1
  
70 ····.line·43570 ····.line·497
71 ····.local·v1,·"_reply":Landroid/os/Parcel;71 ····.local·v1,·"_reply":Landroid/os/Parcel;
72 ····:try_start_072 ····:try_start_0
73 ····const-string·v3,·"com.android.vending.billing.IInAppBillingService"73 ····const-string·v3,·"com.android.vending.billing.IInAppBillingService"
  
74 ····invoke-virtual·{v0,·v3},·Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V74 ····invoke-virtual·{v0,·v3},·Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
  
75 ····.line·43675 ····.line·498
76 ····invoke-virtual·{v0,·p1},·Landroid/os/Parcel;->writeInt(I)V76 ····invoke-virtual·{v0,·p1},·Landroid/os/Parcel;->writeInt(I)V
  
77 ····.line·43777 ····.line·499
78 ····invoke-virtual·{v0,·p2},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V78 ····invoke-virtual·{v0,·p2},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
  
79 ····.line·43879 ····.line·500
80 ····invoke-virtual·{v0,·p3},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V80 ····invoke-virtual·{v0,·p3},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V
  
81 ····.line·43981 ····.line·501
82 ····iget-object·v3,·p0,·Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;82 ····iget-object·v3,·p0,·Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
  
83 ····const/4·v4,·0x583 ····const/4·v4,·0x5
  
84 ····const/4·v5,·0x084 ····const/4·v5,·0x0
  
85 ····invoke-interface·{v3,·v4,·v0,·v1,·v5},·Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z85 ····invoke-interface·{v3,·v4,·v0,·v1,·v5},·Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
  
86 ····.line·44086 ····.line·502
87 ····invoke-virtual·{v1},·Landroid/os/Parcel;->readException()V87 ····invoke-virtual·{v1},·Landroid/os/Parcel;->readException()V
  
88 ····.line·44188 ····.line·503
89 ····invoke-virtual·{v1},·Landroid/os/Parcel;->readInt()I89 ····invoke-virtual·{v1},·Landroid/os/Parcel;->readInt()I
90 ····:try_end_090 ····:try_end_0
91 ····.catchall·{:try_start_0·..·:try_end_0}·:catchall_091 ····.catchall·{:try_start_0·..·:try_end_0}·:catchall_0
  
92 ····move-result·v292 ····move-result·v2
  
93 ····.line·44493 ····.line·506
94 ····.local·v2,·"_result":I94 ····.local·v2,·"_result":I
95 ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V95 ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V
  
96 ····.line·44596 ····.line·507
97 ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V97 ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V
  
98 ····.line·44798 ····.line·509
99 ····return·v299 ····return·v2
  
100 ····.line·444100 ····.line·506
101 ····.end·local·v2····#·"_result":I101 ····.end·local·v2····#·"_result":I
102 ····:catchall_0102 ····:catchall_0
103 ····move-exception·v3103 ····move-exception·v3
  
104 ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V104 ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V
  
105 ····.line·445105 ····.line·507
106 ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V106 ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V
  
107 ····throw·v3107 ····throw·v3
108 .end·method108 .end·method
  
109 .method·public·getBuyIntent(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;109 .method·public·getBuyIntent(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
110 ····.locals·6110 ····.locals·6
Offset 140, 109 lines modifiedOffset 140, 243 lines modified
140 ····.annotation·system·Ldalvik/annotation/Throws;140 ····.annotation·system·Ldalvik/annotation/Throws;
141 ········value·=·{141 ········value·=·{
142 ············Landroid/os/RemoteException;142 ············Landroid/os/RemoteException;
143 ········}143 ········}
144 ····.end·annotation144 ····.end·annotation
  
145 ····.prologue145 ····.prologue
146 ····.line·345146 ····.line·416
147 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;147 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
  
148 ····move-result-object·v0148 ····move-result-object·v0
  
149 ····.line·346149 ····.line·417
150 ····.local·v0,·"_data":Landroid/os/Parcel;150 ····.local·v0,·"_data":Landroid/os/Parcel;
151 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;151 ····invoke-static·{},·Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
  
Max diff block lines reached; 27630/31324 bytes (88.21%) of diff not shown.
8.4 KB
smali/com/anjlab/android/iab/v3/PurchaseInfo$PurchaseState.smali vs.
smali/com/anjlab/android/iab/v3/PurchaseState.smali
Files 19% similar despite different names
    
Offset 1, 42 lines modifiedOffset 1, 33 lines modified
1 .class·public·final·enum·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;1 .class·public·final·enum·Lcom/anjlab/android/iab/v3/PurchaseState;
2 .super·Ljava/lang/Enum;2 .super·Ljava/lang/Enum;
3 .source·"PurchaseInfo.java"3 .source·"PurchaseState.java"
  
  
4 #·annotations4 #·annotations
5 .annotation·system·Ldalvik/annotation/EnclosingClass; 
6 ····value·=·Lcom/anjlab/android/iab/v3/PurchaseInfo; 
7 .end·annotation 
  
8 .annotation·system·Ldalvik/annotation/InnerClass; 
9 ····accessFlags·=·0x4019 
10 ····name·=·"PurchaseState" 
11 .end·annotation 
  
12 .annotation·system·Ldalvik/annotation/Signature;5 .annotation·system·Ldalvik/annotation/Signature;
13 ····value·=·{6 ····value·=·{
14 ········"Ljava/lang/Enum",7 ········"Ljava/lang/Enum",
15 ········"<",8 ········"<",
16 ········"Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;",9 ········"Lcom/anjlab/android/iab/v3/PurchaseState;",
17 ········">;"10 ········">;"
18 ····}11 ····}
19 .end·annotation12 .end·annotation
  
  
20 #·static·fields13 #·static·fields
21 .field·private·static·final·synthetic·$VALUES:[Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;14 .field·private·static·final·synthetic·$VALUES:[Lcom/anjlab/android/iab/v3/PurchaseState;
  
22 .field·public·static·final·enum·Canceled:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;15 .field·public·static·final·enum·Canceled:Lcom/anjlab/android/iab/v3/PurchaseState;
  
23 .field·public·static·final·enum·PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;16 .field·public·static·final·enum·PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseState;
  
24 .field·public·static·final·enum·Refunded:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;17 .field·public·static·final·enum·Refunded:Lcom/anjlab/android/iab/v3/PurchaseState;
  
25 .field·public·static·final·enum·SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;18 .field·public·static·final·enum·SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseState;
  
  
26 #·direct·methods19 #·direct·methods
27 .method·static·constructor·<clinit>()V20 .method·static·constructor·<clinit>()V
28 ····.locals·621 ····.locals·6
  
29 ····.prologue22 ····.prologue
Offset 44, 113 lines modifiedOffset 35, 116 lines modified
  
44 ····const/4·v4,·0x235 ····const/4·v4,·0x2
  
45 ····const/4·v3,·0x136 ····const/4·v3,·0x1
  
46 ····const/4·v2,·0x037 ····const/4·v2,·0x0
  
47 ····.line·3938 ····.line·20
48 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;39 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;
  
49 ····const-string·v1,·"PurchasedSuccessfully"40 ····const-string·v1,·"PurchasedSuccessfully"
  
50 ····invoke-direct·{v0,·v1,·v2},·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;-><init>(Ljava/lang/String;I)V41 ····invoke-direct·{v0,·v1,·v2},·Lcom/anjlab/android/iab/v3/PurchaseState;-><init>(Ljava/lang/String;I)V
  
51 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;42 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseState;
  
 43 ····.line·21
52 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;44 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;
  
53 ····const-string·v1,·"Canceled"45 ····const-string·v1,·"Canceled"
  
54 ····invoke-direct·{v0,·v1,·v3},·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;-><init>(Ljava/lang/String;I)V46 ····invoke-direct·{v0,·v1,·v3},·Lcom/anjlab/android/iab/v3/PurchaseState;-><init>(Ljava/lang/String;I)V
  
55 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->Canceled:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;47 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->Canceled:Lcom/anjlab/android/iab/v3/PurchaseState;
  
 48 ····.line·22
56 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;49 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;
  
57 ····const-string·v1,·"Refunded"50 ····const-string·v1,·"Refunded"
  
58 ····invoke-direct·{v0,·v1,·v4},·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;-><init>(Ljava/lang/String;I)V51 ····invoke-direct·{v0,·v1,·v4},·Lcom/anjlab/android/iab/v3/PurchaseState;-><init>(Ljava/lang/String;I)V
  
59 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->Refunded:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;52 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->Refunded:Lcom/anjlab/android/iab/v3/PurchaseState;
  
 53 ····.line·23
60 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;54 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;
  
61 ····const-string·v1,·"SubscriptionExpired"55 ····const-string·v1,·"SubscriptionExpired"
  
62 ····invoke-direct·{v0,·v1,·v5},·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;-><init>(Ljava/lang/String;I)V56 ····invoke-direct·{v0,·v1,·v5},·Lcom/anjlab/android/iab/v3/PurchaseState;-><init>(Ljava/lang/String;I)V
  
63 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;57 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseState;
  
64 ····.line·3858 ····.line·18
65 ····const/4·v0,·0x459 ····const/4·v0,·0x4
  
66 ····new-array·v0,·v0,·[Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;60 ····new-array·v0,·v0,·[Lcom/anjlab/android/iab/v3/PurchaseState;
  
67 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;61 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseState;
  
68 ····aput-object·v1,·v0,·v262 ····aput-object·v1,·v0,·v2
  
69 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->Canceled:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;63 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->Canceled:Lcom/anjlab/android/iab/v3/PurchaseState;
  
70 ····aput-object·v1,·v0,·v364 ····aput-object·v1,·v0,·v3
  
71 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->Refunded:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;65 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->Refunded:Lcom/anjlab/android/iab/v3/PurchaseState;
  
72 ····aput-object·v1,·v0,·v466 ····aput-object·v1,·v0,·v4
  
73 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;67 ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseState;
  
74 ····aput-object·v1,·v0,·v568 ····aput-object·v1,·v0,·v5
  
75 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;->$VALUES:[Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;69 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->$VALUES:[Lcom/anjlab/android/iab/v3/PurchaseState;
  
76 ····return-void70 ····return-void
77 .end·method71 .end·method
  
78 .method·private·constructor·<init>(Ljava/lang/String;I)V72 .method·private·constructor·<init>(Ljava/lang/String;I)V
79 ····.locals·073 ····.locals·0
80 ····.annotation·system·Ldalvik/annotation/Signature;74 ····.annotation·system·Ldalvik/annotation/Signature;
81 ········value·=·{75 ········value·=·{
82 ············"()V"76 ············"()V"
83 ········}77 ········}
84 ····.end·annotation78 ····.end·annotation
  
85 ····.prologue79 ····.prologue
86 ····.line·3880 ····.line·18
87 ····invoke-direct·{p0,·p1,·p2},·Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V81 ····invoke-direct·{p0,·p1,·p2},·Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
  
88 ····return-void82 ····return-void
89 .end·method83 .end·method
  
Max diff block lines reached; 1439/8450 bytes (17.03%) of diff not shown.
3.37 KB
smali/com/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1.smali vs.
smali/com/anjlab/android/iab/v3/PurchaseData$1.smali
Files 24% similar despite different names
    
Offset 1, 89 lines modifiedOffset 1, 89 lines modified
1 .class·final·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1;1 .class·final·Lcom/anjlab/android/iab/v3/PurchaseData$1;
2 .super·Ljava/lang/Object;2 .super·Ljava/lang/Object;
3 .source·"PurchaseInfo.java"3 .source·"PurchaseData.java"
  
4 #·interfaces4 #·interfaces
5 .implements·Landroid/os/Parcelable$Creator;5 .implements·Landroid/os/Parcelable$Creator;
  
  
6 #·annotations6 #·annotations
7 .annotation·system·Ldalvik/annotation/EnclosingClass;7 .annotation·system·Ldalvik/annotation/EnclosingClass;
8 ····value·=·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;8 ····value·=·Lcom/anjlab/android/iab/v3/PurchaseData;
9 .end·annotation9 .end·annotation
  
10 .annotation·system·Ldalvik/annotation/InnerClass;10 .annotation·system·Ldalvik/annotation/InnerClass;
11 ····accessFlags·=·0x811 ····accessFlags·=·0x8
12 ····name·=·null12 ····name·=·null
13 .end·annotation13 .end·annotation
  
14 .annotation·system·Ldalvik/annotation/Signature;14 .annotation·system·Ldalvik/annotation/Signature;
15 ····value·=·{15 ····value·=·{
16 ········"Ljava/lang/Object;",16 ········"Ljava/lang/Object;",
17 ········"Landroid/os/Parcelable$Creator",17 ········"Landroid/os/Parcelable$Creator",
18 ········"<",18 ········"<",
19 ········"Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;",19 ········"Lcom/anjlab/android/iab/v3/PurchaseData;",
20 ········">;"20 ········">;"
21 ····}21 ····}
22 .end·annotation22 .end·annotation
  
  
23 #·direct·methods23 #·direct·methods
24 .method·constructor·<init>()V24 .method·constructor·<init>()V
25 ····.locals·025 ····.locals·0
  
26 ····.prologue26 ····.prologue
27 ····.line·9427 ····.line·74
28 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V28 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
29 ····return-void29 ····return-void
30 .end·method30 .end·method
  
  
31 #·virtual·methods31 #·virtual·methods
32 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;32 .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseData;
33 ····.locals·133 ····.locals·1
34 ····.param·p1,·"source"····#·Landroid/os/Parcel;34 ····.param·p1,·"source"····#·Landroid/os/Parcel;
  
35 ····.prologue35 ····.prologue
36 ····.line·9636 ····.line·77
37 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;37 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;
  
38 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;-><init>(Landroid/os/Parcel;)V38 ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseData;-><init>(Landroid/os/Parcel;)V
  
39 ····return-object·v039 ····return-object·v0
40 .end·method40 .end·method
  
41 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;41 .method·public·bridge·synthetic·createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
42 ····.locals·142 ····.locals·1
  
43 ····.prologue43 ····.prologue
44 ····.line·9444 ····.line·74
45 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;45 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseData$1;->createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseData;
  
46 ····move-result-object·v046 ····move-result-object·v0
  
47 ····return-object·v047 ····return-object·v0
48 .end·method48 .end·method
  
49 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;49 .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseData;
50 ····.locals·150 ····.locals·1
51 ····.param·p1,·"size"····#·I51 ····.param·p1,·"size"····#·I
  
52 ····.prologue52 ····.prologue
53 ····.line·10053 ····.line·82
54 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;54 ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/PurchaseData;
  
55 ····return-object·v055 ····return-object·v0
56 .end·method56 .end·method
  
57 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;57 .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object;
58 ····.locals·158 ····.locals·1
  
59 ····.prologue59 ····.prologue
60 ····.line·9460 ····.line·74
61 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1;->newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;61 ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseData$1;->newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseData;
  
62 ····move-result-object·v062 ····move-result-object·v0
  
63 ····return-object·v063 ····return-object·v0
64 .end·method64 .end·method
10.5 KB
smali/com/anjlab/android/iab/v3/PurchaseInfo$ResponseData.smali vs.
smali/com/anjlab/android/iab/v3/PurchaseData.smali
Files 11% similar despite different names
    
Offset 1, 33 lines modifiedOffset 1, 22 lines modified
1 .class·public·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;1 .class·public·Lcom/anjlab/android/iab/v3/PurchaseData;
2 .super·Ljava/lang/Object;2 .super·Ljava/lang/Object;
3 .source·"PurchaseInfo.java"3 .source·"PurchaseData.java"
  
4 #·interfaces4 #·interfaces
5 .implements·Landroid/os/Parcelable;5 .implements·Landroid/os/Parcelable;
  
  
6 #·annotations 
7 .annotation·system·Ldalvik/annotation/EnclosingClass; 
8 ····value·=·Lcom/anjlab/android/iab/v3/PurchaseInfo; 
9 .end·annotation 
  
10 .annotation·system·Ldalvik/annotation/InnerClass; 
11 ····accessFlags·=·0x9 
12 ····name·=·"ResponseData" 
13 .end·annotation 
  
  
14 #·static·fields6 #·static·fields
15 .field·public·static·final·CREATOR:Landroid/os/Parcelable$Creator;7 .field·public·static·final·CREATOR:Landroid/os/Parcelable$Creator;
16 ····.annotation·system·Ldalvik/annotation/Signature;8 ····.annotation·system·Ldalvik/annotation/Signature;
17 ········value·=·{9 ········value·=·{
18 ············"Landroid/os/Parcelable$Creator",10 ············"Landroid/os/Parcelable$Creator",
19 ············"<",11 ············"<",
20 ············"Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;",12 ············"Lcom/anjlab/android/iab/v3/PurchaseData;",
21 ············">;"13 ············">;"
22 ········}14 ········}
23 ····.end·annotation15 ····.end·annotation
24 .end·field16 .end·field
  
  
25 #·instance·fields17 #·instance·fields
Offset 37, 261 lines modifiedOffset 26, 262 lines modified
  
37 .field·public·orderId:Ljava/lang/String;26 .field·public·orderId:Ljava/lang/String;
  
38 .field·public·packageName:Ljava/lang/String;27 .field·public·packageName:Ljava/lang/String;
  
39 .field·public·productId:Ljava/lang/String;28 .field·public·productId:Ljava/lang/String;
  
40 .field·public·purchaseState:Lcom/anjlab/android/iab/v3/PurchaseInfo$PurchaseState;29 .field·public·purchaseState:Lcom/anjlab/android/iab/v3/PurchaseState;
  
41 .field·public·purchaseTime:Ljava/util/Date;30 .field·public·purchaseTime:Ljava/util/Date;
  
42 .field·public·purchaseToken:Ljava/lang/String;31 .field·public·purchaseToken:Ljava/lang/String;
  
  
43 #·direct·methods32 #·direct·methods
44 .method·static·constructor·<clinit>()V33 .method·static·constructor·<clinit>()V
45 ····.locals·134 ····.locals·1
  
46 ····.prologue35 ····.prologue
47 ····.line·9436 ····.line·72
48 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1;37 ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseData$1;
  
49 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData$1;-><init>()V38 ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/PurchaseData$1;-><init>()V
  
50 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;->CREATOR:Landroid/os/Parcelable$Creator;39 ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->CREATOR:Landroid/os/Parcelable$Creator;
  
51 ····return-void40 ····return-void
52 .end·method41 .end·method
  
53 .method·public·constructor·<init>()V42 .method·public·constructor·<init>()V
54 ····.locals·043 ····.locals·0
  
55 ····.prologue44 ····.prologue
56 ····.line·7845 ····.line·54
57 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V46 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
58 ····.line·7947 ····.line·55
59 ····return-void48 ····return-void
60 .end·method49 .end·method
  
61 .method·protected·constructor·<init>(Landroid/os/Parcel;)V50 .method·protected·constructor·<init>(Landroid/os/Parcel;)V
62 ····.locals·851 ····.locals·8
63 ····.param·p1,·"in"····#·Landroid/os/Parcel;52 ····.param·p1,·"in"····#·Landroid/os/Parcel;
  
64 ····.prologue53 ····.prologue
65 ····const/4·v4,·0x054 ····const/4·v4,·0x0
  
66 ····.line·8155 ····.line·58
67 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V56 ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V
  
68 ····.line·8257 ····.line·59
69 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;58 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
70 ····move-result-object·v159 ····move-result-object·v1
  
71 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;->orderId:Ljava/lang/String;60 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->orderId:Ljava/lang/String;
  
72 ····.line·8361 ····.line·60
73 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;62 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
74 ····move-result-object·v163 ····move-result-object·v1
  
75 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;->packageName:Ljava/lang/String;64 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->packageName:Ljava/lang/String;
  
76 ····.line·8465 ····.line·61
77 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;66 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readString()Ljava/lang/String;
  
78 ····move-result-object·v167 ····move-result-object·v1
  
79 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;->productId:Ljava/lang/String;68 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->productId:Ljava/lang/String;
  
80 ····.line·8569 ····.line·62
81 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J70 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J
  
82 ····move-result-wide·v271 ····move-result-wide·v2
  
83 ····.line·8672 ····.line·63
84 ····.local·v2,·"tmpPurchaseTime":J73 ····.local·v2,·"tmpPurchaseTime":J
85 ····const-wide/16·v6,·-0x174 ····const-wide/16·v6,·-0x1
  
86 ····cmp-long·v1,·v2,·v675 ····cmp-long·v1,·v2,·v6
  
87 ····if-nez·v1,·:cond_076 ····if-nez·v1,·:cond_0
  
88 ····move-object·v1,·v477 ····move-object·v1,·v4
  
89 ····:goto_078 ····:goto_0
90 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseInfo$ResponseData;->purchaseTime:Ljava/util/Date;79 ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->purchaseTime:Ljava/util/Date;
  
91 ····.line·8780 ····.line·64
92 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readInt()I81 ····invoke-virtual·{p1},·Landroid/os/Parcel;->readInt()I
  
93 ····move-result·v082 ····move-result·v0
Max diff block lines reached; 6404/10610 bytes (60.36%) of diff not shown.