Offset 1, 18 lines modified | Offset 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/. |
Offset 1, 699 lines modified | Offset 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:·60 | 1 | Zip·file·size:·6074251·bytes,·number·of·entries:·695 |
2 | -rw----·····2.0·fat···· | 2 | -rw----·····2.0·fat·····9088·bX·defN·17-Oct-07·00:17·AndroidManifest.xml |
3 | -rw----·····2.0·fat··· | 3 | -rw----·····2.0·fat···166704·bl·defN·17-Oct-07·00:17·assets/materialdesignicons-webfont.ttf |
4 | -rw----·····2.0·fat·····1 | 4 | -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······ | 5 | -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······ | 6 | -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····· | 7 | -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/abc_fade_in.xml |
8 | -rw----·····2.0·fat··· | 8 | -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/abc_fade_out.xml |
9 | -rw----·····2.0·fat····· | 9 | -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······ | 10 | -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/abc_popup_enter.xml |
11 | -rw----·····2.0·fat······ | 11 | -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/abc_popup_exit.xml |
12 | -rw----·····2.0·fat······ | 12 | -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······ | 13 | -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_in_bottom.xml |
14 | -rw----·····2.0·fat······ | 14 | -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_in_top.xml |
15 | -rw----·····2.0·fat······ | 15 | -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_out_bottom.xml |
16 | -rw----·····2.0·fat······ | 16 | -rw----·····2.0·fat······400·bl·defN·17-Oct-07·00:17·res/anim/abc_slide_out_top.xml |
17 | -rw----·····2.0·fat······ | 17 | -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/activity_fade_in.xml |
18 | -rw----·····2.0·fat······ | 18 | -rw----·····2.0·fat······396·bl·defN·17-Oct-07·00:17·res/anim/activity_fade_out.xml |
19 | -rw----·····2.0·fat······ | 19 | -rw----·····2.0·fat······288·bl·defN·17-Oct-07·00:17·res/anim/decelerate_cubic.xml |
20 | -rw----·····2.0·fat······ | 20 | -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······ | 21 | -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······ | 22 | -rw----·····2.0·fat······688·bl·defN·17-Oct-07·00:17·res/anim/design_fab_in.xml |
23 | -rw----·····2.0·fat······ | 23 | -rw----·····2.0·fat······688·bl·defN·17-Oct-07·00:17·res/anim/design_fab_out.xml |
24 | -rw----·····2.0·fat······ | 24 | -rw----·····2.0·fat······320·bl·defN·17-Oct-07·00:17·res/anim/design_snackbar_in.xml |
25 | -rw----·····2.0·fat······ | 25 | -rw----·····2.0·fat······320·bl·defN·17-Oct-07·00:17·res/anim/design_snackbar_out.xml |
26 | -rw----·····2.0·fat······ | 26 | -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/popup_enter.xml |
27 | -rw----·····2.0·fat······ | 27 | -rw----·····2.0·fat······512·bl·defN·17-Oct-07·00:17·res/anim/popup_exit.xml |
28 | -rw----·····2.0·fat······6 | 28 | -rw----·····2.0·fat······664·bl·defN·17-Oct-07·00:17·res/anim/scale.xml |
29 | -rw----·····2.0·fat······ | 29 | -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_in_from_bottom.xml |
30 | -rw----·····2.0·fat······ | 30 | -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_in_from_left.xml |
31 | -rw----·····2.0·fat······5 | 31 | -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_in_from_right.xml |
32 | -rw----·····2.0·fat······5 | 32 | -rw----·····2.0·fat······528·bl·defN·17-Oct-07·00:17·res/anim/slide_out_to_bottom.xml |
33 | -rw----·····2.0·fat······ | 33 | -rw----·····2.0·fat······716·bl·defN·17-Oct-07·00:17·res/anim/slide_out_to_left.xml |
34 | -rw----·····2.0·fat······ | 34 | -rw----·····2.0·fat······716·bl·defN·17-Oct-07·00:17·res/anim/slide_out_to_right.xml |
35 | -rw----·····2.0·fat······ | 35 | -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······ | 36 | -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······5 | 37 | -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······ | 38 | -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······ | 39 | -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····· | 40 | -rw----·····2.0·fat·····1128·bl·defN·17-Oct-07·00:17·res/color-v23/abc_tint_default.xml |
41 | -rw----·····2.0·fat······ | 41 | -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·1 | 42 | -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······ | 43 | -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·1 | 44 | -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····· | 45 | -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······ | 46 | -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······ | 47 | -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······ | 48 | -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······ | 49 | -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······ | 50 | -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······ | 51 | -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······ | 52 | -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·1 | 53 | -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·1 | 54 | -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······ | 55 | -rw----·····2.0·fat······732·bl·defN·17-Oct-07·00:17·res/color/abc_tint_btn_checkable.xml |
56 | -rw----·····2.0·fat····· | 56 | -rw----·····2.0·fat·····1232·bl·defN·17-Oct-07·00:17·res/color/abc_tint_default.xml |
57 | -rw----·····2.0·fat······ | 57 | -rw----·····2.0·fat······776·bl·defN·17-Oct-07·00:17·res/color/abc_tint_edittext.xml |
58 | -rw----·····2.0·fat······ | 58 | -rw----·····2.0·fat······608·bl·defN·17-Oct-07·00:17·res/color/abc_tint_seek_thumb.xml |
59 | -rw----·····2.0·fat······ | 59 | -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·1 | 60 | -rw----·····2.0·fat······732·bl·defN·17-Oct-07·00:17·res/color/abc_tint_switch_thumb.xml |
61 | -rw----·····2.0·fat····· | 61 | -rw----·····2.0·fat······772·bl·defN·17-Oct-07·00:17·res/color/abc_tint_switch_track.xml |
62 | -rw----·····2.0·fat······ | 62 | -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/design_error.xml |
63 | -rw----·····2.0·fat······6 | 63 | -rw----·····2.0·fat······628·bl·defN·17-Oct-07·00:17·res/color/design_tint_password_toggle.xml |
64 | -rw----·····2.0·fat······ | 64 | -rw----·····2.0·fat······488·bl·defN·17-Oct-07·00:17·res/color/state_selector_black.xml |
65 | -rw----·····2.0·fat······ | 65 | -rw----·····2.0·fat······488·bl·defN·17-Oct-07·00:17·res/color/state_selector_dark.xml |
66 | -rw----·····2.0·fat······ | 66 | -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·1 | 67 | -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/switch_thumb_material_dark.xml |
68 | -rw----·····2.0·fat······ | 68 | -rw----·····2.0·fat······468·bl·defN·17-Oct-07·00:17·res/color/switch_thumb_material_light.xml |
69 | -rw----·····2.0·fat······ | 69 | -rw----·····2.0·fat······784·bl·defN·17-Oct-07·00:17·res/drawable-anydpi-v21/ate_check.xml |
70 | -rw----·····2.0·fat······ | 70 | -rw----·····2.0·fat······804·bl·defN·17-Oct-07·00:17·res/drawable-anydpi-v21/md_nav_back.xml |
71 | -rw----····· | 71 | -rw----·····1.0·fat······792·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v11/ic_notification.png |
72 | -rw----····· | 72 | -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----····· | 73 | -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----····· | 74 | -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----····· | 75 | -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······7 | 76 | -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····· | 77 | -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····· | 78 | -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······ | 79 | -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······ | 80 | -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······ | 81 | -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····· | 82 | -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····· | 83 | -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······2 | 84 | -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······ | 85 | -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······ | 86 | -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······ | 87 | -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····· | 88 | -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······ | 89 | -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······ | 90 | -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······ | 91 | -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······ | 92 | -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····· | 93 | -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······ | 94 | -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······ | 95 | -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······ | 96 | -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······ | 97 | -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······24 | 98 | -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······ | 99 | -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····· | 100 | -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······2 | 101 | -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······2 | 102 | -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······ | 103 | -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······ | 104 | -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····· | 105 | -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······ | 106 | -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······ | 107 | -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······ | 108 | -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······2 | 109 | -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······2 | 110 | -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······ | 111 | -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······53 | 112 | -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······ | 113 | -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·0 | 114 | -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······ | 115 | -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······ | 116 | -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······ | 117 | -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······ | 118 | -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······ | 119 | -rw----·····1.0·fat······447·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/ate_check.png |
120 | -rw----·····1.0·fat····· | 120 | -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······1 | 121 | -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······ | 122 | -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····· | 123 | -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······ | 124 | -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····· | 125 | -rw----·····1.0·fat······217·b-·stor·80-Jan-01·00:00·res/drawable-hdpi-v4/ic_back.png |
126 | -rw----·····1.0·fat····· | 126 | -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. |
Offset 1, 1 lines modified | Offset 1, 1 lines modified | ||
1 | 1 | Java·archive·data·(JAR) |
Offset 1, 35 lines modified | Offset 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············:· | 4 | checksum············:·4184cb9e |
5 | signature···········:· | 5 | signature···········:·de3b...4e9e |
6 | file_size···········:·44 | 6 | file_size···········:·4443320 |
7 | header_size·········:·112 | 7 | header_size·········:·112 |
8 | link_size···········:·0 | 8 | link_size···········:·0 |
9 | link_off············:·0·(0x000000) | 9 | link_off············:·0·(0x000000) |
10 | string_ids_size·····:·38 | 10 | string_ids_size·····:·38156 |
11 | string_ids_off······:·112·(0x000070) | 11 | string_ids_off······:·112·(0x000070) |
12 | type_ids_size·······:·437 | 12 | type_ids_size·······:·4377 |
13 | type_ids_off········:·152 | 13 | type_ids_off········:·152736·(0x0254a0) |
14 | proto_ids_size······:·64 | 14 | proto_ids_size······:·6449 |
15 | proto_ids_off·······:·170 | 15 | proto_ids_off·······:·170244·(0x029904) |
16 | field_ids_size······:·269 | 16 | field_ids_size······:·26958 |
17 | field_ids_off·······:·247 | 17 | field_ids_off·······:·247632·(0x03c750) |
18 | method_ids_size·····:·32 | 18 | method_ids_size·····:·32413 |
19 | method_ids_off······:·46 | 19 | method_ids_off······:·463296·(0x0711c0) |
20 | class_defs_size·····:·335 | 20 | class_defs_size·····:·3353 |
21 | class_defs_off······:·72 | 21 | class_defs_off······:·722600·(0x0b06a8) |
22 | data_size···········:·36 | 22 | data_size···········:·3613424 |
23 | data_off············:·82 | 23 | data_off············:·829896·(0x0ca9c8) |
24 | Class·#0·header: | 24 | Class·#0·header: |
25 | class_idx···········:·313 | 25 | class_idx···········:·313 |
26 | access_flags········:·9729·(0x2601) | 26 | access_flags········:·9729·(0x2601) |
27 | superclass_idx······:·37 | 27 | superclass_idx······:·3761 |
28 | source_file_idx·····:·1891 | 28 | source_file_idx·····:·1891 |
29 | static_fields_size··:·0 | 29 | static_fields_size··:·0 |
30 | instance_fields_size:·0 | 30 | instance_fields_size:·0 |
31 | direct_methods_size·:·0 | 31 | direct_methods_size·:·0 |
32 | virtual_methods_size:·0 | 32 | virtual_methods_size:·0 |
33 | Class·#0·annotations: | 33 | Class·#0·annotations: |
Offset 49, 15 lines modified | Offset 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···········:·314 | 53 | class_idx···········:·314 |
54 | access_flags········:·9729·(0x2601) | 54 | access_flags········:·9729·(0x2601) |
55 | superclass_idx······:·37 | 55 | superclass_idx······:·3761 |
56 | source_file_idx·····:·1910 | 56 | source_file_idx·····:·1910 |
57 | static_fields_size··:·0 | 57 | static_fields_size··:·0 |
58 | instance_fields_size:·0 | 58 | instance_fields_size:·0 |
59 | direct_methods_size·:·0 | 59 | direct_methods_size·:·0 |
60 | virtual_methods_size:·0 | 60 | virtual_methods_size:·0 |
61 | Class·#1·annotations: | 61 | Class·#1·annotations: |
Offset 77, 15 lines modified | Offset 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···········:·315 | 81 | class_idx···········:·315 |
82 | access_flags········:·9729·(0x2601) | 82 | access_flags········:·9729·(0x2601) |
83 | superclass_idx······:·37 | 83 | superclass_idx······:·3761 |
84 | source_file_idx·····:·1915 | 84 | source_file_idx·····:·1915 |
85 | static_fields_size··:·0 | 85 | static_fields_size··:·0 |
86 | instance_fields_size:·0 | 86 | instance_fields_size:·0 |
87 | direct_methods_size·:·0 | 87 | direct_methods_size·:·0 |
88 | virtual_methods_size:·0 | 88 | virtual_methods_size:·0 |
89 | Class·#2·annotations: | 89 | Class·#2·annotations: |
Offset 105, 15 lines modified | Offset 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···········:·316 | 109 | class_idx···········:·316 |
110 | access_flags········:·9729·(0x2601) | 110 | access_flags········:·9729·(0x2601) |
111 | superclass_idx······:·37 | 111 | superclass_idx······:·3761 |
112 | source_file_idx·····:·1917 | 112 | source_file_idx·····:·1917 |
113 | static_fields_size··:·0 | 113 | static_fields_size··:·0 |
114 | instance_fields_size:·0 | 114 | instance_fields_size:·0 |
115 | direct_methods_size·:·0 | 115 | direct_methods_size·:·0 |
116 | virtual_methods_size:·0 | 116 | virtual_methods_size:·0 |
117 | Class·#3·annotations: | 117 | Class·#3·annotations: |
Offset 133, 15 lines modified | Offset 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···········:·317 | 137 | class_idx···········:·317 |
138 | access_flags········:·9729·(0x2601) | 138 | access_flags········:·9729·(0x2601) |
139 | superclass_idx······:·37 | 139 | superclass_idx······:·3761 |
140 | source_file_idx·····:·2151 | 140 | source_file_idx·····:·2151 |
141 | static_fields_size··:·0 | 141 | static_fields_size··:·0 |
142 | instance_fields_size:·0 | 142 | instance_fields_size:·0 |
143 | direct_methods_size·:·0 | 143 | direct_methods_size·:·0 |
144 | virtual_methods_size:·0 | 144 | virtual_methods_size:·0 |
145 | Class·#4·annotations: | 145 | Class·#4·annotations: |
Offset 161, 15 lines modified | Offset 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···········:·318 | 165 | class_idx···········:·318 |
166 | access_flags········:·9729·(0x2601) | 166 | access_flags········:·9729·(0x2601) |
167 | superclass_idx······:·37 | 167 | superclass_idx······:·3761 |
168 | source_file_idx·····:·2203 | 168 | source_file_idx·····:·2203 |
169 | static_fields_size··:·0 | 169 | static_fields_size··:·0 |
170 | instance_fields_size:·0 | 170 | instance_fields_size:·0 |
171 | direct_methods_size·:·0 | 171 | direct_methods_size·:·0 |
172 | virtual_methods_size:·0 | 172 | virtual_methods_size:·0 |
173 | Class·#5·annotations: | 173 | Class·#5·annotations: |
Offset 189, 16 lines modified | Offset 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···········:·319 | 193 | class_idx···········:·319 |
194 | access_flags········:·9729·(0x2601) | 194 | access_flags········:·9729·(0x2601) |
195 | superclass_idx······:·37 | 195 | superclass_idx······:·3761 |
196 | source_file_idx·····:·261 | 196 | source_file_idx·····:·2614 |
197 | static_fields_size··:·0 | 197 | static_fields_size··:·0 |
198 | instance_fields_size:·0 | 198 | instance_fields_size:·0 |
Max diff block lines reached; 102700492/102704498 bytes (100.00%) of diff not shown. |
Offset 1, 22 lines modified | Offset 1, 21 lines modified | ||
1 | Zip·file·size:·66 | 1 | 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.class | 2 | ?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.class | 3 | ?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.class | 4 | ?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.class | 5 | ?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.class | 6 | ?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.class | 7 | ?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.class | 8 | ?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.class | 9 | ?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.class | 10 | ?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.class | 11 | ?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.class | 12 | ?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.class | 13 | ?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.class | 14 | ?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.class | 15 | ?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.class | 16 | ?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.class | 17 | ?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.class | 18 | ?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.class | 19 | ?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.class | 20 | ?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.class | 21 | ?rwxrwxr-x··2.0·unx······160·b-·stor·80-Jan-01·00:00·android/support/annotation/IntRange.class |
Offset 31, 22 lines modified | Offset 30, 24 lines modified | ||
31 | ?rwxrwxr-x··2.0·unx······128·b-·stor·80-Jan-01·00:00·android/support/annotation/PluralsRes.class | 30 | ?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.class | 31 | ?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.class | 32 | ?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.class | 33 | ?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.class | 34 | ?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.class | 35 | ?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.class | 36 | ?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.class | 39 | ?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.class | 40 | ?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.class | 41 | ?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.class | 42 | ?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.class | 43 | ?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.class | 44 | ?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.class | 45 | ?rwxrwxr-x··2.0·unx······126·b-·stor·80-Jan-01·00:00·android/support/annotation/UiThread.class |
45 | ?rwxrwxr-x··2.0·unx······ | 46 | ?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.class | 47 | ?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.class | 48 | ?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.class | 49 | ?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.class | 50 | ?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.class | 51 | ?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.class | 52 | ?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.class | 53 | ?rwxrwxr-x··2.0·unx······909·b-·stor·80-Jan-01·00:00·android/support/design/R$anim.class |
Offset 1496, 30 lines modified | Offset 1497, 31 lines modified | ||
1496 | ?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·····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.class | 1498 | ?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.class | 1499 | ?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.class | 1500 | ?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.class | 1501 | ?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.class | 1502 | ?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.class | 1503 | ?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····· | 1504 | ?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····· | 1505 | ?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·····1 | 1506 | ?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.class | 1508 | ?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.class | 1509 | ?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····· | 1510 | ?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.class | 1513 | ?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·····2 | 1514 | ?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.class | 1516 | ?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.class | 1517 | ?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····· | 1518 | ?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.class | 1519 | ?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·····2 | 1520 | ?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.class | 1521 | ?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.class | 1522 | ?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.class | 1523 | ?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.class | 1524 | ?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.class | 1525 | ?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.class | 1526 | ?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.class | 1527 | ?rwxrwxr-x··2.0·unx······192·b-·stor·80-Jan-01·00:00·com/google/gson/JsonDeserializationContext.class |
Offset 2709, 18 lines modified | Offset 2711, 18 lines modified | ||
2709 | ?rwxrwxr-x··2.0·unx······990·b-·stor·80-Jan-01·00:00·com/afollestad/materialdialogs/prefs/MaterialEditTextPreference$1.class | 2711 | ?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.class | 2712 | ?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.class | 2713 | ?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.class | 2714 | ?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.class | 2715 | ?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.class | 2716 | ?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.class | 2717 | ?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····· | 2718 | ?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····· | 2719 | ?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.class | 2720 | ?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····1 | 2721 | ?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.class | 2722 | ?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.class | 2723 | ?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.class | 2724 | ?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.class | 2725 | ?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.class | 2726 | ?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.class | 2727 | ?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.class | 2728 | ?rwxrwxr-x··2.0·unx·····1247·b-·stor·80-Jan-01·00:00·com/google/gson/Gson$5.class |
Offset 3346, 8 lines modified | Offset 3348, 8 lines modified | ||
3346 | ?rwxrwxr-x··2.0·unx······770·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$KitKatViewCompatImpl.class | 3348 | ?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.class | 3349 | ?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.class | 3350 | ?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.class | 3351 | ?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.class | 3352 | ?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.class | 3353 | ?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.class | 3354 | ?rwxrwxr-x··2.0·unx······530·b-·stor·80-Jan-01·00:00·android/support/v4/view/ViewCompat$Api24ViewCompatImpl.class |
3353 | 335 | 3355 | 3353·files,·7418257·bytes·uncompressed,·6021531·bytes·compressed:··18.8% |
Offset 33, 17 lines modified | Offset 33, 14 lines modified | ||
33 | Filename:·android/support/annotation/ColorRes.class | 33 | Filename:·android/support/annotation/ColorRes.class |
34 | Comment:· | 34 | Comment:· |
35 | Filename:·android/support/annotation/DimenRes.class | 35 | 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.class | 37 | Filename:·android/support/annotation/Dimension.class |
40 | Comment:· | 38 | Comment:· |
41 | Filename:·android/support/annotation/DrawableRes.class | 39 | Filename:·android/support/annotation/DrawableRes.class |
42 | Comment:· | 40 | Comment:· |
43 | Filename:·android/support/annotation/FloatRange.class | 41 | Filename:·android/support/annotation/FloatRange.class |
Offset 102, 14 lines modified | Offset 99, 20 lines modified | ||
102 | Filename:·android/support/annotation/RequiresPermission$Write.class | 99 | Filename:·android/support/annotation/RequiresPermission$Write.class |
103 | Comment:· | 100 | Comment:· |
104 | Filename:·android/support/annotation/RequiresPermission.class | 101 | 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.class | 107 | Filename:·android/support/annotation/Size.class |
107 | Comment:· | 108 | Comment:· |
108 | Filename:·android/support/annotation/StringDef.class | 109 | Filename:·android/support/annotation/StringDef.class |
109 | Comment:· | 110 | Comment:· |
110 | Filename:·android/support/annotation/StringRes.class | 111 | Filename:·android/support/annotation/StringRes.class |
Offset 4506, 36 lines modified | Offset 4509, 39 lines modified | ||
4506 | Filename:·com/anjlab/android/iab/v3/BillingBase.class | 4509 | Filename:·com/anjlab/android/iab/v3/BillingBase.class |
4507 | Comment:· | 4510 | Comment:· |
4508 | Filename:·com/anjlab/android/iab/v3/BillingProcessor$1.class | 4511 | 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.class | 4515 | Filename:·com/anjlab/android/iab/v3/BillingProcessor$IBillingHandler.class |
4511 | Comment:· | 4516 | Comment:· |
4512 | Filename:·com/anjlab/android/iab/v3/BuildConfig.class | 4517 | Filename:·com/anjlab/android/iab/v3/BuildConfig.class |
4513 | Comment:· | 4518 | Comment:· |
4514 | Filename:·com/anjlab/android/iab/v3/Constants.class | 4519 | Filename:·com/anjlab/android/iab/v3/Constants.class |
4515 | Comment:· | 4520 | Comment:· |
4516 | Filename:·com/anjlab/android/iab/v3/Purchase | 4521 | Filename:·com/anjlab/android/iab/v3/PurchaseData$1.class |
4517 | Comment:· | 4522 | Comment:· |
4518 | Filename:·com/anjlab/android/iab/v3/Purchase | 4523 | Filename:·com/anjlab/android/iab/v3/PurchaseData.class |
4519 | Comment:· | 4524 | Comment:· |
4520 | Filename:·com/anjlab/android/iab/v3/PurchaseInfo$ | 4525 | Filename:·com/anjlab/android/iab/v3/PurchaseInfo$1.class |
4521 | Comment:· | 4526 | Comment:· |
4522 | Filename:·com/anjlab/android/iab/v3/PurchaseInfo | 4527 | Filename:·com/anjlab/android/iab/v3/PurchaseInfo.class |
4523 | Comment:· | 4528 | Comment:· |
4524 | Filename:·com/anjlab/android/iab/v3/Purchase | 4529 | Filename:·com/anjlab/android/iab/v3/PurchaseState.class |
4525 | Comment:· | 4530 | Comment:· |
4526 | Filename:·com/anjlab/android/iab/v3/Security.class | 4531 | Filename:·com/anjlab/android/iab/v3/Security.class |
4527 | Comment:· | 4532 | Comment:· |
4528 | Filename:·com/anjlab/android/iab/v3/SkuDetails$1.class | 4533 | Filename:·com/anjlab/android/iab/v3/SkuDetails$1.class |
4529 | Comment:· | 4534 | Comment:· |
Offset 1, 7 lines modified | Offset 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 | } |
Offset 7, 17 lines modified | Offset 7, 23 lines modified | ||
7 | public·interface·IInAppBillingService·extends·IInterface | 7 | 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 | } |
Offset 1, 81 lines modified | Offset 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·BillingBase | 6 | class·BillingBase |
8 | { | 7 | { |
9 | ····private· | 8 | ····private·Context·context; |
10 | ···· | 9 | ···· |
11 | ···· | 10 | ····BillingBase(final·Context·context)·{ |
12 | ········this.context | 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 | ···· | 18 | ····Context·getContext()·{ |
27 | ········return· | 19 | ········return·this.context; |
28 | ····} | 20 | ····} |
29 | ···· | 21 | ···· |
30 | ···· | 22 | ····String·getPreferencesBaseKey()·{ |
31 | ········return· | 23 | ········return·this.getContext().getPackageName()·+·"_preferences"; |
32 | ····} | 24 | ····} |
33 | ···· | 25 | ···· |
34 | ···· | 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 | ···· | 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 | ···· | 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 | ···· | 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; |
Offset 12, 23 lines modified | Offset 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$ | 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$ | 24 | ········BillingProcessor.access$302(this.this$0,·(IInAppBillingService)null); |
33 | ····} | 25 | ····} |
34 | } | 26 | } |
Offset 4, 9 lines modified | Offset 4, 9 lines modified | ||
4 | public·final·class·BuildConfig | 4 | 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. | 11 | ····public·static·final·String·VERSION_NAME·=·"1.0.44"; |
12 | } | 12 | } |
Offset 1, 15 lines modified | Offset 1, 17 lines modified | ||
1 | package·com.anjlab.android.iab.v3; | 1 | package·com.anjlab.android.iab.v3; |
2 | public·class·Constants | 2 | 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 modified | Offset 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_PA | 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 | } |
Offset 9, 106 lines modified | Offset 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·Parcelable | 11 | 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 | ···· | 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 | ················b | 44 | ················b·=·false; |
38 | ············} | 45 | ············} |
39 | ············ | 46 | ············else·{ |
40 | ················purchaseInfo$PurchaseState·=·PurchaseInfo$PurchaseState.PurchasedSuccessfully; | ||
41 | ················ | 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· | 53 | ········return·b; |
57 | ····} | 54 | ····} |
58 | ···· | 55 | ···· |
59 | ····public·int·describeContents()·{ | ||
60 | ···· | 56 | ····public·PurchaseData·parseResponseData()·{ |
57 | ········return·this.parseResponseDataImpl(); | ||
61 | ····} | 58 | ····} |
62 | ···· | 59 | ···· |
63 | ···· | 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 | ················Purchase | 65 | ················PurchaseData·purchaseData·=·new(com.anjlab.android.iab.v3.PurchaseData.class); |
69 | ················try·{ | 66 | ················try·{ |
70 | ····················new·Purchase | 67 | ····················new·PurchaseData(); |
71 | ····················purchase | 68 | ····················purchaseData.orderId·=·jsonObject.optString("orderId"); |
72 | ····················purchase | 69 | ····················purchaseData.packageName·=·jsonObject.optString("packageName"); |
73 | ····················purchase | 70 | ····················purchaseData.productId·=·jsonObject.optString("productId"); |
74 | ····················final·long·optLong·=·jsonObject.optLong("purchaseTime",·0L); | 71 | ····················final·long·optLong·=·jsonObject.optLong("purchaseTime",·0L); |
75 | ····················Label_022 | 72 | ····················Label_0228:·{ |
76 | ························if·(optLong·==·n)·{ | 73 | ························if·(optLong·==·n)·{ |
77 | ····························break·Label_022 | 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·Purchase | 78 | ····························final·PurchaseData·purchaseData2·=·purchaseData; |
82 | ····························try·{ | 79 | ····························try·{ |
83 | ································purchase | 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 | ································ | 82 | ································purchaseData.developerPayload·=·jsonObject.optString("developerPayload"); |
88 | ································ | 83 | ································purchaseData.purchaseToken·=·jsonObject.getString("purchaseToken"); |
89 | ································ | 84 | ································purchaseData.autoRenewing·=·jsonObject.optBoolean("autoRenewing"); |
90 | ································ | 85 | ································return·purchaseData; |
91 | ································ | 86 | ································purchaseTime·=·null; |
92 | ···························· | 87 | ····························} |
93 | ···························· | 88 | ····························catch·(JSONException·ex)·{ |
94 | ································ | 89 | ································Log.e("iabv3.purchaseInfo",·"Failed·to·parse·response·data",·(Throwable)ex); |
95 | ································ | 90 | ································purchaseData·=·null; |
96 | ································} | ||
97 | ····························} | 91 | ····························} |
98 | ····························catch·(JSONException·ex2)·{} | ||
99 | ························} | 92 | ························} |
100 | ····················} | 93 | ····················} |
101 | ················} | 94 | ················} |
102 | ················catch·(JSONException·ex | 95 | ················catch·(JSONException·ex2)·{} |
103 | ············} | 96 | ············} |
104 | ············catch·(JSONException·ex | 97 | ············catch·(JSONException·ex3)·{} |
105 | ········} | 98 | ········} |
106 | ········catch·(JSONException·ex | 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 | } |
Offset 1, 55 lines modified | Offset 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·Parcelable | 8 | 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·/· | 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 | ····@Override | 90 | ····@Override |
Offset 95, 28 lines modified | Offset 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 | ····@Override | 138 | ····@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·=· | 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. |
Offset 1, 11 lines modified | Offset 1, 11 lines modified | ||
1 | package·com.anjlab.android.iab.v3; | 1 | package·com.anjlab.android.iab.v3; |
2 | import· | 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·Parcelable | 7 | public·class·TransactionDetails·implements·Parcelable |
8 | { | 8 | { |
Offset 17, 36 lines modified | Offset 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.p | 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 | ····@Override | 43 | ····@Override |
Offset 82, 25 lines modified | Offset 73, 14 lines modified | ||
82 | ············hashCode·=·0; | 73 | ············hashCode·=·0; |
83 | ········} | 74 | ········} |
84 | ········return·hashCode; | 75 | ········return·hashCode; |
85 | ····} | 76 | ····} |
86 | ···· | 77 | ···· |
87 | ····@Override | 78 | ····@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 | } |
Offset 63, 14 lines modified | Offset 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 modified | Offset 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 modified | Offset 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. |
Offset 9, 18 lines modified | Offset 9, 21 lines modified | ||
9 | import·android.os.Binder; | 9 | import·android.os.Binder; |
10 | public·abstract·class·IInAppBillingService$Stub·extends·Binder·implements·IInAppBillingService | 10 | 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 modified | Offset 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 | } |
Offset 16, 15 lines modified | Offset 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 | ···· | 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 modified | Offset 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 | ···· | 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 | ···· | 85 | ····List·getContents()·{ |
86 | ········return·new·ArrayList(this.data.keySet()); | 86 | ········return·new·ArrayList(this.data.keySet()); |
87 | ····} | 87 | ····} |
88 | ···· | 88 | ···· |
89 | ···· | 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 | ···· | 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 | ···· | 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 | ···· | 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 | ···· |
Offset 1, 26 lines modified | Offset 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· | 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·BillingBase | 23 | 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 modified | Offset 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 | ········ | 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 | ····p | 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·=· | 71 | ········this.contextPackageName·=·this.getContext().getPackageName(); |
60 | ········this.cachedProducts·=·new·BillingCache( | 72 | ········this.cachedProducts·=·new·BillingCache(this.getContext(),·".products.cache.v2_6"); |
61 | ········this.cachedSubscriptions·=·new·BillingCache( | 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·ex | 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. |
Offset 1, 25 lines modified | Offset 1, 25 lines modified | ||
1 | package·com.anjlab.android.iab.v3; | 1 | package·com.anjlab.android.iab.v3; |
2 | public·enum·Purchase | 2 | 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·Purchase | 13 | ········final·PurchaseState[]·$values·=·new·PurchaseState[4]; |
14 | ········$values[0]·=·Purchase | 14 | ········$values[0]·=·PurchaseState.PurchasedSuccessfully; |
15 | ········$values[n3]·=·Purchase | 15 | ········$values[n3]·=·PurchaseState.Canceled; |
16 | ········$values[n2]·=·Purchase | 16 | ········$values[n2]·=·PurchaseState.Refunded; |
17 | ········$values[n]·=·Purchase | 17 | ········$values[n]·=·PurchaseState.SubscriptionExpired; |
18 | ········$VALUES·=·$values; | 18 | ········$VALUES·=·$values; |
19 | ····} | 19 | ····} |
20 | ···· | 20 | ···· |
21 | ····private·Purchase | 21 | ····private·PurchaseState(final·String·name,·final·int·ordinal)·{ |
22 | ····} | 22 | ····} |
23 | } | 23 | } |
Offset 1, 16 lines modified | Offset 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·Purchase | 4 | final·class·PurchaseData$1·implements·Parcelable$Creator |
5 | { | 5 | { |
6 | ····public·Purchase | 6 | ····public·PurchaseData·createFromParcel(final·Parcel·parcel)·{ |
7 | ········return·new·Purchase | 7 | ········return·new·PurchaseData(parcel); |
8 | ····} | 8 | ····} |
9 | ···· | 9 | ···· |
10 | ····public·Purchase | 10 | ····public·PurchaseData[]·newArray(final·int·n)·{ |
11 | ········return·new·Purchase | 11 | ········return·new·PurchaseData[n]; |
12 | ····} | 12 | ····} |
13 | } | 13 | } |
Offset 2, 50 lines modified | Offset 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·Purchase | 7 | 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·Purchase | 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·Purchase | 20 | ········CREATOR·=·(Parcelable$Creator)new·PurchaseData$1(); |
21 | ····} | 21 | ····} |
22 | ···· | 22 | ···· |
23 | ····public·Purchase | 23 | ····public·PurchaseData()·{ |
24 | ····} | 24 | ····} |
25 | ···· | 25 | ···· |
26 | ····protected·Purchase | 26 | ····protected·PurchaseData(final·Parcel·parcel)·{ |
27 | ········Purchase | 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·=·Purchase | 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 | ···· |
Offset 9, 20 lines modified | Offset 9, 14 lines modified | ||
9 | #·annotations | 9 | #·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·=·0x1 | 12 | ········unit·=·0x1 |
13 | ····.end·subannotation | 13 | ····.end·subannotation |
14 | .end·annotation | 14 | .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·annotation | 16 | .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·annotation | 19 | .end·annotation |
Offset 14, 10 lines modified | Offset 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·annotation | 15 | .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·annotation | 24 | .end·annotation |
Offset 3, 10 lines modified | Offset 3, 31 lines modified | ||
3 | .source·"VisibleForTesting.java" | 3 | .source·"VisibleForTesting.java" |
4 | #·interfaces | 4 | #·interfaces |
5 | .implements·Ljava/lang/annotation/Annotation; | 5 | .implements·Ljava/lang/annotation/Annotation; |
6 | #·annotations | 6 | #·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·annotation | 14 | .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 |
Offset 14, 10 lines modified | Offset 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·annotation | 15 | .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·annotation | 24 | .end·annotation |
Offset 28, 62 lines modified | Offset 28, 62 lines modified | ||
28 | #·direct·methods | 28 | #·direct·methods |
29 | .method·constructor·<init>()V | 29 | .method·constructor·<init>()V |
30 | ····.locals·0 | 30 | ····.locals·0 |
31 | ····.prologue | 31 | ····.prologue |
32 | ····.line·1 | 32 | ····.line·189 |
33 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 33 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
34 | ····return-void | 34 | ····return-void |
35 | .end·method | 35 | .end·method |
36 | #·virtual·methods | 36 | #·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·1 | 38 | ····.locals·1 |
39 | ····.param·p1,·"source"····#·Landroid/os/Parcel; | 39 | ····.param·p1,·"source"····#·Landroid/os/Parcel; |
40 | ····.prologue | 40 | ····.prologue |
41 | ····.line·1 | 41 | ····.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;)V | 43 | ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/SkuDetails;-><init>(Landroid/os/Parcel;)V |
44 | ····return-object·v0 | 44 | ····return-object·v0 |
45 | .end·method | 45 | .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·1 | 47 | ····.locals·1 |
48 | ····.prologue | 48 | ····.prologue |
49 | ····.line·1 | 49 | ····.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·v0 | 51 | ····move-result-object·v0 |
52 | ····return-object·v0 | 52 | ····return-object·v0 |
53 | .end·method | 53 | .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·1 | 55 | ····.locals·1 |
56 | ····.param·p1,·"size"····#·I | 56 | ····.param·p1,·"size"····#·I |
57 | ····.prologue | 57 | ····.prologue |
58 | ····.line·1 | 58 | ····.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·v0 | 60 | ····return-object·v0 |
61 | .end·method | 61 | .end·method |
62 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; | 62 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; |
63 | ····.locals·1 | 63 | ····.locals·1 |
64 | ····.prologue | 64 | ····.prologue |
65 | ····.line·1 | 65 | ····.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·v0 | 67 | ····move-result-object·v0 |
68 | ····return-object·v0 | 68 | ····return-object·v0 |
69 | .end·method | 69 | .end·method |
Offset 12, 17 lines modified | Offset 12, 29 lines modified | ||
12 | ····accessFlags·=·0x609 | 12 | ····accessFlags·=·0x609 |
13 | ····name·=·"IBillingHandler" | 13 | ····name·=·"IBillingHandler" |
14 | .end·annotation | 14 | .end·annotation |
15 | #·virtual·methods | 15 | #·virtual·methods |
16 | .method·public·abstract·onBillingError(ILjava/lang/Throwable;)V | 16 | .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·method | 21 | .end·method |
18 | .method·public·abstract·onBillingInitialized()V | 22 | .method·public·abstract·onBillingInitialized()V |
19 | .end·method | 23 | .end·method |
20 | .method·public·abstract·onProductPurchased(Ljava/lang/String;Lcom/anjlab/android/iab/v3/TransactionDetails;)V | 24 | .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·method | 33 | .end·method |
22 | .method·public·abstract·onPurchaseHistoryRestored()V | 34 | .method·public·abstract·onPurchaseHistoryRestored()V |
23 | .end·method | 35 | .end·method |
Offset 20, 265 lines modified | Offset 20, 475 lines modified | ||
20 | #·instance·fields | 20 | #·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:Z | 30 | .field·public·final·isSubscription:Z |
24 | .field·public·final·priceLong:J | 31 | .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·methods | 38 | #·direct·methods |
30 | .method·static·constructor·<clinit>()V | 39 | .method·static·constructor·<clinit>()V |
31 | ····.locals·1 | 40 | ····.locals·1 |
32 | ····.prologue | 41 | ····.prologue |
33 | ····.line·1 | 42 | ····.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>()V | 44 | ····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-void | 46 | ····return-void |
38 | .end·method | 47 | .end·method |
39 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V | 48 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V |
40 | ····.locals· | 49 | ····.locals·6 |
41 | ····.param·p1,·"in"····#·Landroid/os/Parcel; | 50 | ····.param·p1,·"in"····#·Landroid/os/Parcel; |
42 | ····.prologue | 51 | ····.prologue |
52 | ····const/4·v1,·0x1 | ||
53 | ····const/4·v2,·0x0 | ||
43 | ····.line·1 | 54 | ····.line·167 |
44 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 55 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
45 | ····.line·1 | 56 | ····.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·v0 | 58 | ····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·1 | 60 | ····.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·v0 | 62 | ····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·1 | 64 | ····.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·v0 | 66 | ····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·1 | 68 | ····.line·171 |
58 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readByte()B | 69 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readByte()B |
59 | ····move-result·v0 | 70 | ····move-result·v0 |
60 | ····if-eqz·v0,·:cond_0 | 71 | ····if-eqz·v0,·:cond_0 |
61 | ···· | 72 | ····move·v0,·v1 |
62 | ····:goto_0 | 73 | ····:goto_0 |
63 | ····iput-boolean·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->isSubscription:Z | 74 | ····iput-boolean·v0,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->isSubscription:Z |
64 | ····.line·1 | 75 | ····.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·v0 | 77 | ····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·1 | 79 | ····.line·173 |
69 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readDouble()D | 80 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readDouble()D |
70 | ····move-result-wide·v | 81 | ····move-result-wide·v4 |
71 | ····invoke-static·{v | 82 | ····invoke-static·{v4,·v5},·Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; |
72 | ····move-result-object·v0 | 83 | ····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·1 | 85 | ····.line·174 |
75 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J | 86 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J |
76 | ····move-result-wide·v | 87 | ····move-result-wide·v4 |
77 | ····iput-wide·v | 88 | ····iput-wide·v4,·p0,·Lcom/anjlab/android/iab/v3/SkuDetails;->priceLong:J |
78 | ····.line·1 | 89 | ····.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·v0 | 91 | ····move-result-object·v0 |
Max diff block lines reached; 18092/21780 bytes (83.07%) of diff not shown. |
Offset 1, 19 lines modified | Offset 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·fields | 4 | #·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·=·0x6f | 6 | .field·public·static·final·BILLING_ERROR_CONSUME_FAILED:I·=·0x6f |
6 | .field·public·static·final·BILLING_ERROR_FAILED_LOAD_PURCHASES:I·=·0x64 | 7 | .field·public·static·final·BILLING_ERROR_FAILED_LOAD_PURCHASES:I·=·0x64 |
7 | .field·public·static·final·BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE:I·=·0x65 | 8 | .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·=·0x68 | 13 | .field·public·static·final·BILLING_ERROR_INVALID_MERCHANT_ID:I·=·0x68 |
9 | .field·public·static·final·BILLING_ERROR_INVALID_SIGNATURE:I·=·0x66 | 14 | .field·public·static·final·BILLING_ERROR_INVALID_SIGNATURE:I·=·0x66 |
10 | .field·public·static·final·BILLING_ERROR_LOST_CONTEXT:I·=·0x67 | 15 | .field·public·static·final·BILLING_ERROR_LOST_CONTEXT:I·=·0x67 |
11 | .field·public·static·final·BILLING_ERROR_OTHER_ERROR:I·=·0x6e | 16 | .field·public·static·final·BILLING_ERROR_OTHER_ERROR:I·=·0x6e |
Offset 38, 52 lines modified | Offset 45, 76 lines modified | ||
38 | .field·public·static·final·BILLING_RESPONSE_RESULT_USER_CANCELED:I·=·0x1 | 45 | .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·=·0x5 | 50 | .field·public·static·final·GOOGLE_API_SUBSCRIPTION_CHANGE_VERSION:I·=·0x5 |
42 | .field·public·static·final·GOOGLE_API_VERSION:I·=·0x3 | 51 | .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_PA | 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·methods | 81 | #·direct·methods |
63 | .method·public·constructor·<init>()V | 82 | .method·public·constructor·<init>()V |
Offset 1, 121 lines modified | Offset 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·fields | 4 | #·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·methods | 6 | #·direct·methods |
16 | .method· | 7 | .method·constructor·<init>(Landroid/content/Context;)V |
17 | ····.locals· | 8 | ····.locals·0 |
18 | ····.param·p1,·"context"····#·Landroid/content/Context; | 9 | ····.param·p1,·"context"····#·Landroid/content/Context; |
19 | ····.prologue | 10 | ····.prologue |
20 | ····.line·2 | 11 | ····.line·27 |
21 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 12 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
22 | ····.line·2 | 13 | ····.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· | 15 | ····.line·29 |
27 | ····return-void | 16 | ····return-void |
28 | .end·method | 17 | .end·method |
29 | .method·private·getPreferences()Landroid/content/SharedPreferences; | 18 | .method·private·getPreferences()Landroid/content/SharedPreferences; |
30 | ····.locals·1 | 19 | ····.locals·1 |
31 | ····.prologue | 20 | ····.prologue |
32 | ····.line·4 | 21 | ····.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·v0 | 23 | ····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·v0 | 25 | ····move-result-object·v0 |
44 | ····.line·43 | ||
45 | ····:goto_0 | ||
46 | ····return-object·v0 | 26 | ····return-object·v0 |
47 | ····:cond_0 | ||
48 | ····const/4·v0,·0x0 | ||
49 | ····goto·:goto_0 | ||
50 | .end·method | 27 | .end·method |
51 | #·virtual·methods | 28 | #·virtual·methods |
52 | .method· | 29 | .method·getContext()Landroid/content/Context; |
53 | ····.locals·1 | 30 | ····.locals·1 |
54 | ····.prologue | 31 | ····.prologue |
55 | ····.line·33 | 32 | ····.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·v0 | 34 | ····return-object·v0 |
61 | .end·method | 35 | .end·method |
62 | .method· | 36 | .method·getPreferencesBaseKey()Ljava/lang/String; |
63 | ····.locals·2 | 37 | ····.locals·2 |
64 | ····.prologue | 38 | ····.prologue |
65 | ····.line·3 | 39 | ····.line·38 |
66 | ····new-instance·v | 40 | ····new-instance·v0,·Ljava/lang/StringBuilder; |
67 | ····invoke-direct·{v1},·Ljava/lang/StringBuilder;-><init>()V | ||
68 | ····i | 41 | ····invoke-direct·{v0},·Ljava/lang/StringBuilder;-><init>()V |
69 | ····invoke-virtual·{ | 42 | ····invoke-virtual·{p0},·Lcom/anjlab/android/iab/v3/BillingBase;->getContext()Landroid/content/Context; |
70 | ····move-result-object·v | 43 | ····move-result-object·v1 |
71 | ····check-cast·v0,·Landroid/content/Context; | ||
72 | ····invoke-virtual·{v | 44 | ····invoke-virtual·{v1},·Landroid/content/Context;->getPackageName()Ljava/lang/String; |
73 | ····move-result-object·v | 45 | ····move-result-object·v1 |
74 | ····invoke-virtual·{v | 46 | ····invoke-virtual·{v0,·v1},·Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; |
75 | ····move-result-object·v0 | 47 | ····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 modified | Offset 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. |
Offset 28, 62 lines modified | Offset 28, 62 lines modified | ||
28 | #·direct·methods | 28 | #·direct·methods |
29 | .method·constructor·<init>()V | 29 | .method·constructor·<init>()V |
30 | ····.locals·0 | 30 | ····.locals·0 |
31 | ····.prologue | 31 | ····.prologue |
32 | ····.line· | 32 | ····.line·119 |
33 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 33 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
34 | ····return-void | 34 | ····return-void |
35 | .end·method | 35 | .end·method |
36 | #·virtual·methods | 36 | #·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·1 | 38 | ····.locals·1 |
39 | ····.param·p1,·"source"····#·Landroid/os/Parcel; | 39 | ····.param·p1,·"source"····#·Landroid/os/Parcel; |
40 | ····.prologue | 40 | ····.prologue |
41 | ····.line· | 41 | ····.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;)V | 43 | ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/TransactionDetails;-><init>(Landroid/os/Parcel;)V |
44 | ····return-object·v0 | 44 | ····return-object·v0 |
45 | .end·method | 45 | .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·1 | 47 | ····.locals·1 |
48 | ····.prologue | 48 | ····.prologue |
49 | ····.line· | 49 | ····.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·v0 | 51 | ····move-result-object·v0 |
52 | ····return-object·v0 | 52 | ····return-object·v0 |
53 | .end·method | 53 | .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·1 | 55 | ····.locals·1 |
56 | ····.param·p1,·"size"····#·I | 56 | ····.param·p1,·"size"····#·I |
57 | ····.prologue | 57 | ····.prologue |
58 | ····.line· | 58 | ····.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·v0 | 60 | ····return-object·v0 |
61 | .end·method | 61 | .end·method |
62 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; | 62 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; |
63 | ····.locals·1 | 63 | ····.locals·1 |
64 | ····.prologue | 64 | ····.prologue |
65 | ····.line· | 65 | ····.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·v0 | 67 | ····move-result-object·v0 |
68 | ····return-object·v0 | 68 | ····return-object·v0 |
69 | .end·method | 69 | .end·method |
Offset 2, 23 lines modified | Offset 2, 14 lines modified | ||
2 | .super·Ljava/lang/Object; | 2 | .super·Ljava/lang/Object; |
3 | .source·"PurchaseInfo.java" | 3 | .source·"PurchaseInfo.java" |
4 | #·interfaces | 4 | #·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·fields | 6 | #·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 modified | Offset 18, 384 lines modified | ||
27 | ····.end·annotation | 18 | ····.end·annotation |
28 | .end·field | 19 | .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·fields | 21 | #·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·methods | 25 | #·direct·methods |
34 | .method·static·constructor·<clinit>()V | 26 | .method·static·constructor·<clinit>()V |
35 | ····.locals·1 | 27 | ····.locals·1 |
36 | ····.prologue | 28 | ····.prologue |
37 | ····.line·1 | 29 | ····.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>()V | 31 | ····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-void | 33 | ····return-void |
42 | .end·method | 34 | .end·method |
43 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V | 35 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V |
44 | ····.locals·1 | 36 | ····.locals·1 |
45 | ····.param·p1,·"in"····#·Landroid/os/Parcel; | 37 | ····.param·p1,·"in"····#·Landroid/os/Parcel; |
46 | ····.prologue | 38 | ····.prologue |
47 | ····.line· | 39 | ····.line·97 |
48 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 40 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
49 | ····.line· | 41 | ····.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·v0 | 43 | ····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· | 45 | ····.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·v0 | 47 | ····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·1 | 49 | ····.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-void | 54 | ····return-void |
59 | .end·method | 55 | .end·method |
60 | .method·public·constructor·<init>(Ljava/lang/String;Ljava/lang/String;)V | 56 | .method·public·constructor·<init>(Ljava/lang/String;Ljava/lang/String;)V |
61 | ····.locals· | 57 | ····.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 | ····.prologue | 60 | ····.prologue |
65 | ····.line·4 | 61 | ····.line·44 |
66 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 62 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
67 | ····.line·4 | 63 | ····.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·4 | 65 | ····.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·48 | 71 | ····.line·48 |
72 | ····return-void | 72 | ····return-void |
73 | .end·method | 73 | .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·1 | 76 | ····.locals·1 |
76 | ····.param·p0,·"state"····#·I | ||
77 | ····.prologue | 77 | ····.prologue |
78 | ····.line· | 78 | ····.line·86 |
79 | ···· | 79 | ····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. |
Offset 26, 50 lines modified | Offset 26, 50 lines modified | ||
26 | ····.end·annotation | 26 | ····.end·annotation |
27 | .end·field | 27 | .end·field |
28 | .field·private·version:Ljava/lang/String; | 28 | .field·private·version:Ljava/lang/String; |
29 | #·direct·methods | 29 | #·direct·methods |
30 | .method· | 30 | .method·constructor·<init>(Landroid/content/Context;Ljava/lang/String;)V |
31 | ····.locals·1 | 31 | ····.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 | ····.prologue | 34 | ····.prologue |
35 | ····.line·3 | 35 | ····.line·39 |
36 | ····invoke-direct·{p0,·p1},·Lcom/anjlab/android/iab/v3/BillingBase;-><init>(Landroid/content/Context;)V | 36 | ····invoke-direct·{p0,·p1},·Lcom/anjlab/android/iab/v3/BillingBase;-><init>(Landroid/content/Context;)V |
37 | ····.line· | 37 | ····.line·40 |
38 | ····new-instance·v0,·Ljava/util/HashMap; | 38 | ····new-instance·v0,·Ljava/util/HashMap; |
39 | ····invoke-direct·{v0},·Ljava/util/HashMap;-><init>()V | 39 | ····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· | 41 | ····.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·4 | 43 | ····.line·42 |
44 | ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->load()V | 44 | ····invoke-direct·{p0},·Lcom/anjlab/android/iab/v3/BillingCache;->load()V |
45 | ····.line·4 | 45 | ····.line·43 |
46 | ····return-void | 46 | ····return-void |
47 | .end·method | 47 | .end·method |
48 | .method·private·flush()V | 48 | .method·private·flush()V |
49 | ····.locals·6 | 49 | ····.locals·6 |
50 | ····.prologue | 50 | ····.prologue |
51 | ····.line· | 51 | ····.line·78 |
52 | ····new-instance·v1,·Ljava/util/ArrayList; | 52 | ····new-instance·v1,·Ljava/util/ArrayList; |
53 | ····invoke-direct·{v1},·Ljava/util/ArrayList;-><init>()V | 53 | ····invoke-direct·{v1},·Ljava/util/ArrayList;-><init>()V |
54 | ····.line· | 54 | ····.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·v3 | 58 | ····move-result-object·v3 |
Offset 86, 25 lines modified | Offset 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·v2 | 87 | ····move-result-object·v2 |
88 | ····check-cast·v2,·Ljava/lang/String; | 88 | ····check-cast·v2,·Ljava/lang/String; |
89 | ····.line· | 89 | ····.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·v0 | 93 | ····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· | 95 | ····.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>()V | 98 | ····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 modified | Offset 138, 15 lines modified | ||
138 | ····move-result-object·v4 | 138 | ····move-result-object·v4 |
139 | ····invoke-virtual·{v1,·v4},·Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z | 139 | ····invoke-virtual·{v1,·v4},·Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z |
140 | ····goto·:goto_0 | 140 | ····goto·:goto_0 |
141 | ····.line· | 141 | ····.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_0 | 144 | ····: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·v3 | 146 | ····move-result-object·v3 |
Offset 154, 47 lines modified | Offset 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·v4 | 155 | ····move-result-object·v4 |
156 | ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z | 156 | ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z |
157 | ····.line· | 157 | ····.line·86 |
158 | ····new-instance·v3,·Ljava/util/Date; | 158 | ····new-instance·v3,·Ljava/util/Date; |
159 | ····invoke-direct·{v3},·Ljava/util/Date;-><init>()V | 159 | ····invoke-direct·{v3},·Ljava/util/Date;-><init>()V |
160 | ····invoke-virtual·{v3},·Ljava/util/Date;->getTime()J | 160 | ····invoke-virtual·{v3},·Ljava/util/Date;->getTime()J |
161 | ····move-result-wide·v4 | 161 | ····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·v3 | 163 | ····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· | 165 | ····.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·v3 | 167 | ····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;)Z | 169 | ····invoke-virtual·{p0,·v3,·v4},·Lcom/anjlab/android/iab/v3/BillingCache;->saveString(Ljava/lang/String;Ljava/lang/String;)Z |
170 | ····.line· | 170 | ····.line·88 |
171 | ····return-void | 171 | ····return-void |
172 | .end·method | 172 | .end·method |
Max diff block lines reached; 12193/16238 bytes (75.09%) of diff not shown. |
Offset 23, 31 lines modified | Offset 23, 31 lines modified | ||
23 | .end·method | 23 | .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·5 | 25 | ····.locals·5 |
26 | ····.param·p0,·"encodedPublicKey"····#·Ljava/lang/String; | 26 | ····.param·p0,·"encodedPublicKey"····#·Ljava/lang/String; |
27 | ····.prologue | 27 | ····.prologue |
28 | ····.line· | 28 | ····.line·94 |
29 | ····const/4·v3,·0x0 | 29 | ····const/4·v3,·0x0 |
30 | ····:try_start_0 | 30 | ····:try_start_0 |
31 | ····invoke-static·{p0,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B | 31 | ····invoke-static·{p0,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B |
32 | ····move-result-object·v0 | 32 | ····move-result-object·v0 |
33 | ····.line· | 33 | ····.line·95 |
34 | ····.local·v0,·"decodedKey":[B | 34 | ····.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·v2 | 37 | ····move-result-object·v2 |
38 | ····.line· | 38 | ····.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)V | 41 | ····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_0 | 43 | ····:try_end_0 |
Offset 55, 181 lines modified | Offset 55, 181 lines modified | ||
55 | ····.catch·Ljava/security/spec/InvalidKeySpecException;·{:try_start_0·..·:try_end_0}·:catch_1 | 55 | ····.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_2 | 56 | ····.catch·Ljava/lang/IllegalArgumentException;·{:try_start_0·..·:try_end_0}·:catch_2 |
57 | ····move-result-object·v3 | 57 | ····move-result-object·v3 |
58 | ····return-object·v3 | 58 | ····return-object·v3 |
59 | ····.line· | 59 | ····.line·98 |
60 | ····.end·local·v0····#·"decodedKey":[B | 60 | ····.end·local·v0····#·"decodedKey":[B |
61 | ····.end·local·v2····#·"keyFactory":Ljava/security/KeyFactory; | 61 | ····.end·local·v2····#·"keyFactory":Ljava/security/KeyFactory; |
62 | ····:catch_0 | 62 | ····:catch_0 |
63 | ····move-exception·v1 | 63 | ····move-exception·v1 |
64 | ····.line· | 64 | ····.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;)V | 67 | ····invoke-direct·{v3,·v1},·Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V |
68 | ····throw·v3 | 68 | ····throw·v3 |
69 | ····.line· | 69 | ····.line·102 |
70 | ····.end·local·v1····#·"e":Ljava/security/NoSuchAlgorithmException; | 70 | ····.end·local·v1····#·"e":Ljava/security/NoSuchAlgorithmException; |
71 | ····:catch_1 | 71 | ····:catch_1 |
72 | ····move-exception·v1 | 72 | ····move-exception·v1 |
73 | ····.line· | 73 | ····.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;)I | 77 | ····invoke-static·{v3,·v4},·Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I |
78 | ····.line· | 78 | ····.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;)V | 80 | ····invoke-direct·{v3,·v1},·Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/Throwable;)V |
81 | ····throw·v3 | 81 | ····throw·v3 |
82 | ····.line· | 82 | ····.line·107 |
83 | ····.end·local·v1····#·"e":Ljava/security/spec/InvalidKeySpecException; | 83 | ····.end·local·v1····#·"e":Ljava/security/spec/InvalidKeySpecException; |
84 | ····:catch_2 | 84 | ····:catch_2 |
85 | ····move-exception·v1 | 85 | ····move-exception·v1 |
86 | ····.line· | 86 | ····.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;)I | 90 | ····invoke-static·{v3,·v4},·Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I |
91 | ····.line· | 91 | ····.line·110 |
92 | ····throw·v1 | 92 | ····throw·v1 |
93 | .end·method | 93 | .end·method |
94 | .method·public·static·verify(Ljava/security/PublicKey;Ljava/lang/String;Ljava/lang/String;)Z | 94 | .method·public·static·verify(Ljava/security/PublicKey;Ljava/lang/String;Ljava/lang/String;)Z |
95 | ····.locals·5 | 95 | ····.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 | ····.prologue | 99 | ····.prologue |
100 | ····const/4·v2,·0x0 | 100 | ····const/4·v2,·0x0 |
101 | ····.line·1 | 101 | ····.line·128 |
102 | ····:try_start_0 | 102 | ····: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·v1 | 105 | ····move-result-object·v1 |
106 | ····.line·1 | 106 | ····.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;)V | 108 | ····invoke-virtual·{v1,·p0},·Ljava/security/Signature;->initVerify(Ljava/security/PublicKey;)V |
109 | ····.line·1 | 109 | ····.line·130 |
110 | ····invoke-virtual·{p1},·Ljava/lang/String;->getBytes()[B | 110 | ····invoke-virtual·{p1},·Ljava/lang/String;->getBytes()[B |
111 | ····move-result-object·v3 | 111 | ····move-result-object·v3 |
112 | ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->update([B)V | 112 | ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->update([B)V |
113 | ····.line·1 | 113 | ····.line·131 |
114 | ····const/4·v3,·0x0 | 114 | ····const/4·v3,·0x0 |
115 | ····invoke-static·{p2,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B | 115 | ····invoke-static·{p2,·v3},·Landroid/util/Base64;->decode(Ljava/lang/String;I)[B |
116 | ····move-result-object·v3 | 116 | ····move-result-object·v3 |
117 | ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->verify([B)Z | 117 | ····invoke-virtual·{v1,·v3},·Ljava/security/Signature;->verify([B)Z |
Max diff block lines reached; 5067/9008 bytes (56.25%) of diff not shown. |
Offset 28, 62 lines modified | Offset 28, 62 lines modified | ||
28 | #·direct·methods | 28 | #·direct·methods |
29 | .method·constructor·<init>()V | 29 | .method·constructor·<init>()V |
30 | ····.locals·0 | 30 | ····.locals·0 |
31 | ····.prologue | 31 | ····.prologue |
32 | ····.line·1 | 32 | ····.line·105 |
33 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 33 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
34 | ····return-void | 34 | ····return-void |
35 | .end·method | 35 | .end·method |
36 | #·virtual·methods | 36 | #·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·1 | 38 | ····.locals·1 |
39 | ····.param·p1,·"source"····#·Landroid/os/Parcel; | 39 | ····.param·p1,·"source"····#·Landroid/os/Parcel; |
40 | ····.prologue | 40 | ····.prologue |
41 | ····.line·1 | 41 | ····.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;)V | 43 | ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseInfo;-><init>(Landroid/os/Parcel;)V |
44 | ····return-object·v0 | 44 | ····return-object·v0 |
45 | .end·method | 45 | .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·1 | 47 | ····.locals·1 |
48 | ····.prologue | 48 | ····.prologue |
49 | ····.line·1 | 49 | ····.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·v0 | 51 | ····move-result-object·v0 |
52 | ····return-object·v0 | 52 | ····return-object·v0 |
53 | .end·method | 53 | .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·1 | 55 | ····.locals·1 |
56 | ····.param·p1,·"size"····#·I | 56 | ····.param·p1,·"size"····#·I |
57 | ····.prologue | 57 | ····.prologue |
58 | ····.line·1 | 58 | ····.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·v0 | 60 | ····return-object·v0 |
61 | .end·method | 61 | .end·method |
62 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; | 62 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; |
63 | ····.locals·1 | 63 | ····.locals·1 |
64 | ····.prologue | 64 | ····.prologue |
65 | ····.line·1 | 65 | ····.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·v0 | 67 | ····move-result-object·v0 |
68 | ····return-object·v0 | 68 | ····return-object·v0 |
69 | .end·method | 69 | .end·method |
Offset 2, 14 lines modified | Offset 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 | #·annotations | 4 | #·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·annotation | 10 | .end·annotation |
10 | #·static·fields | 11 | #·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 modified | Offset 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:Z | 46 | .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·methods | 50 | #·direct·methods |
47 | .method·static·constructor·<clinit>()V | 51 | .method·static·constructor·<clinit>()V |
48 | ····.locals·4 | 52 | ····.locals·4 |
49 | ····.prologue | 53 | ····.prologue |
50 | ····.line· | 54 | ····.line·68 |
51 | ····n | 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,·0x7dc | 59 | ····const/16·v1,·0x7dc |
53 | ····const/16·v2,·0x | 60 | ····const/16·v2,·0xb |
54 | ····const/4·v3,·0x5 | 61 | ····const/4·v3,·0x5 |
55 | ····invoke- | 62 | ····invoke-virtual·{v0,·v1,·v2,·v3},·Ljava/util/Calendar;->set(III)V |
56 | ···· | 63 | ····.line·70 |
64 | ····invoke-virtual·{v0},·Ljava/util/Calendar;->getTime()Ljava/util/Date; | ||
57 | ····.line·59 | ||
58 | ···· | 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,·0x7df | 68 | ····const/16·v1,·0x7df |
60 | ····const/4·v2,·0x | 69 | ····const/4·v2,·0x6 |
61 | ····const/16·v3,·0x1 | 70 | ····const/16·v3,·0x15 |
62 | ····invoke- | 71 | ····invoke-virtual·{v0,·v1,·v2,·v3},·Ljava/util/Calendar;->set(III)V |
63 | ···· | 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-void | 77 | ····return-void |
65 | .end·method | 78 | .end·method |
66 | .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V | 79 | .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V |
67 | ····.locals·1 | 80 | ····.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 | ····.prologue | 84 | ····.prologue |
72 | ····.line· | 85 | ····.line·163 |
73 | ····const/4·v0,·0x0 | 86 | ····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;)V | 87 | ····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· | 88 | ····.line·164 |
76 | ····return-void | 89 | ····return-void |
77 | .end·method | 90 | .end·method |
78 | .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V | 91 | .method·public·constructor·<init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;)V |
79 | ····.locals· | 92 | ····.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. |
Offset 17, 211 lines modified | Offset 17, 195 lines modified | ||
17 | ········} | 17 | ········} |
18 | ····.end·annotation | 18 | ····.end·annotation |
19 | .end·field | 19 | .end·field |
20 | #·instance·fields | 20 | #·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·methods | 38 | #·direct·methods |
27 | .method·static·constructor·<clinit>()V | 39 | .method·static·constructor·<clinit>()V |
28 | ····.locals·1 | 40 | ····.locals·1 |
29 | ····.prologue | 41 | ····.prologue |
30 | ····.line· | 42 | ····.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>()V | 44 | ····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-void | 46 | ····return-void |
35 | .end·method | 47 | .end·method |
36 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V | 48 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V |
37 | ····.locals· | 49 | ····.locals·1 |
38 | ····.param·p1,·"in"····#·Landroid/os/Parcel; | 50 | ····.param·p1,·"in"····#·Landroid/os/Parcel; |
39 | ····.prologue | 51 | ····.prologue |
40 | ····.line· | 52 | ····.line·109 |
41 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 53 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
42 | ····.line· | 54 | ····.line·110 |
43 | ···· | 55 | ····const-class·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo; |
44 | ···· | 56 | ····invoke-virtual·{v0},·Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; |
45 | ···· | 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·v | 59 | ····move-result-object·v0 |
49 | ···· | 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 | ···· | 62 | ····.line·111 |
63 | ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo; | ||
53 | ····i | 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-r | 66 | ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->productId:Ljava/lang/String; |
57 | ····.line· | 67 | ····.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 | ···· | 69 | ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData; |
61 | ····i | 70 | ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->orderId:Ljava/lang/String; |
62 | ····const/ | 71 | ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->orderId:Ljava/lang/String; |
63 | ···· | 72 | ····.line·113 |
64 | ····i | 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 | ····i | 75 | ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->purchaseToken:Ljava/lang/String; |
68 | ····mov | 76 | ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseToken:Ljava/lang/String; |
69 | ···· | 77 | ····.line·114 |
78 | ····iget-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseInfo:Lcom/anjlab/android/iab/v3/PurchaseInfo; | ||
70 | ····move-re | 79 | ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseInfo;->purchaseData:Lcom/anjlab/android/iab/v3/PurchaseData; |
71 | ···· | 80 | ····iget-object·v0,·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->purchaseTime:Ljava/util/Date; |
72 | ····iput-object·v | 81 | ····iput-object·v0,·p0,·Lcom/anjlab/android/iab/v3/TransactionDetails;->purchaseTime:Ljava/util/Date; |
73 | ····.line· | 82 | ····.line·115 |
74 | ····return-void | 83 | ····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·method | 84 | .end·method |
81 | .method·public·constructor·<init>(Lcom/anjlab/android/iab/v3/PurchaseInfo;)V | 85 | .method·public·constructor·<init>(Lcom/anjlab/android/iab/v3/PurchaseInfo;)V |
82 | ····.locals· | 86 | ····.locals·1 |
Max diff block lines reached; 9779/15491 bytes (63.13%) of diff not shown. |
Offset 23, 111 lines modified | Offset 23, 66 lines modified | ||
23 | #·direct·methods | 23 | #·direct·methods |
24 | .method·constructor·<init>(Lcom/anjlab/android/iab/v3/BillingProcessor;)V | 24 | .method·constructor·<init>(Lcom/anjlab/android/iab/v3/BillingProcessor;)V |
25 | ····.locals·0 | 25 | ····.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 | ····.prologue | 27 | ····.prologue |
28 | ····.line· | 28 | ····.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>()V | 30 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
31 | ····return-void | 31 | ····return-void |
32 | .end·method | 32 | .end·method |
33 | #·virtual·methods | 33 | #·virtual·methods |
34 | .method·public·onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V | 34 | .method·public·onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V |
35 | ····.locals· | 35 | ····.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 | ····.prologue | 38 | ····.prologue |
39 | ····.line· | 39 | ····.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·v1 | 42 | ····move-result-object·v1 |
43 | ····invoke-static·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$ | 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· | 44 | ····.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- | 46 | ····iget-object·v1,·p0,·Lcom/anjlab/android/iab/v3/BillingProcessor$1;->this$0:Lcom/anjlab/android/iab/v3/BillingProcessor; |
65 | ···· | 47 | ····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- | 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 | ···· | 50 | ····new-array·v1,·v1,·[Ljava/lang/Void; |
76 | ····invoke-i | 51 | ····invoke-virtual·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor$HistoryInitializationTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; |
77 | ····.line· | 52 | ····.line·139 |
78 | ····:cond_1 | ||
79 | ····return-void | 53 | ····return-void |
80 | .end·method | 54 | .end·method |
81 | .method·public·onServiceDisconnected(Landroid/content/ComponentName;)V | 55 | .method·public·onServiceDisconnected(Landroid/content/ComponentName;)V |
82 | ····.locals·2 | 56 | ····.locals·2 |
83 | ····.param·p1,·"name"····#·Landroid/content/ComponentName; | 57 | ····.param·p1,·"name"····#·Landroid/content/ComponentName; |
84 | ····.prologue | 58 | ····.prologue |
85 | ····.line· | 59 | ····.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,·0x0 | 61 | ····const/4·v1,·0x0 |
88 | ····invoke-static·{v0,·v1},·Lcom/anjlab/android/iab/v3/BillingProcessor;->access$ | 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· | 63 | ····.line·132 |
90 | ····return-void | 64 | ····return-void |
91 | .end·method | 65 | .end·method |
Offset 10, 15 lines modified | Offset 10, 15 lines modified | ||
10 | .field·public·static·final·DEBUG:Z·=·false | 10 | .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·=·0x1 | 12 | .field·public·static·final·VERSION_CODE:I·=·0x1 |
13 | .field·public·static·final·VERSION_NAME:Ljava/lang/String;·=·"1.0. | 13 | .field·public·static·final·VERSION_NAME:Ljava/lang/String;·=·"1.0.44" |
14 | #·direct·methods | 14 | #·direct·methods |
15 | .method·public·constructor·<init>()V | 15 | .method·public·constructor·<init>()V |
16 | ····.locals·0 | 16 | ····.locals·0 |
17 | ····.prologue | 17 | ····.prologue |
Offset 27, 14 lines modified | Offset 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·annotation | 31 | ····.end·annotation |
32 | .end·method | 32 | .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 modified | Offset 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·annotation | 63 | ····.end·annotation |
56 | .end·method | 64 | .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·annotation | 77 | ····.end·annotation |
63 | .end·method | 78 | .end·method |
Offset 75, 14 lines modified | Offset 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·annotation | 95 | ····.end·annotation |
80 | .end·method | 96 | .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;)I | 104 | .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·annotation | 109 | ····.end·annotation |
87 | .end·method | 110 | .end·method |
Offset 26, 22 lines modified | Offset 26, 28 lines modified | ||
26 | #·static·fields | 26 | #·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·=·0x5 | 28 | .field·static·final·TRANSACTION_consumePurchase:I·=·0x5 |
29 | .field·static·final·TRANSACTION_getBuyIntent:I·=·0x3 | 29 | .field·static·final·TRANSACTION_getBuyIntent:I·=·0x3 |
30 | .field·static·final·TRANSACTION_getBuyIntentExtraParams:I·=·0x8 | ||
30 | .field·static·final·TRANSACTION_getBuyIntentToReplaceSkus:I·=·0x7 | 31 | .field·static·final·TRANSACTION_getBuyIntentToReplaceSkus:I·=·0x7 |
32 | .field·static·final·TRANSACTION_getPurchaseHistory:I·=·0x9 | ||
31 | .field·static·final·TRANSACTION_getPurchases:I·=·0x4 | 33 | .field·static·final·TRANSACTION_getPurchases:I·=·0x4 |
32 | .field·static·final·TRANSACTION_getSkuDetails:I·=·0x2 | 34 | .field·static·final·TRANSACTION_getSkuDetails:I·=·0x2 |
33 | .field·static·final·TRANSACTION_isBillingSupported:I·=·0x1 | 35 | .field·static·final·TRANSACTION_isBillingSupported:I·=·0x1 |
36 | .field·static·final·TRANSACTION_isBillingSupportedExtraParams:I·=·0xa | ||
34 | .field·static·final·TRANSACTION_stub:I·=·0x6 | 37 | .field·static·final·TRANSACTION_stub:I·=·0x6 |
35 | #·direct·methods | 38 | #·direct·methods |
36 | .method·public·constructor·<init>()V | 39 | .method·public·constructor·<init>()V |
37 | ····.locals·1 | 40 | ····.locals·1 |
Offset 126, 15 lines modified | Offset 132, 15 lines modified | ||
126 | ········} | 132 | ········} |
127 | ····.end·annotation | 133 | ····.end·annotation |
128 | ····.prologue | 134 | ····.prologue |
129 | ····.line·63 | 135 | ····.line·63 |
130 | ····sparse-switch·p1,·:sswitch_data_0 | 136 | ····sparse-switch·p1,·:sswitch_data_0 |
131 | ····.line·2 | 137 | ····.line·293 |
132 | ····invoke-super/range·{p0·..·p4},·Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z | 138 | ····invoke-super/range·{p0·..·p4},·Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z |
133 | ····move-result·v1 | 139 | ····move-result·v1 |
134 | ····:goto_0 | 140 | ····:goto_0 |
135 | ····return·v1 | 141 | ····return·v1 |
Offset 660, 22 lines modified | Offset 666, 337 lines modified | ||
660 | ····move-object/from16·v0,·p3 | 666 | ····move-object/from16·v0,·p3 |
661 | ····invoke-virtual·{v0,·v1},·Landroid/os/Parcel;->writeInt(I)V | 667 | ····invoke-virtual·{v0,·v1},·Landroid/os/Parcel;->writeInt(I)V |
662 | ····goto·:goto_5 | 668 | ····goto·:goto_5 |
663 | ····.line· | 669 | ····.line·213 |
664 | ····no | 670 | ····.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. |
Offset 23, 31 lines modified | Offset 23, 31 lines modified | ||
23 | #·direct·methods | 23 | #·direct·methods |
24 | .method·constructor·<init>(Landroid/os/IBinder;)V | 24 | .method·constructor·<init>(Landroid/os/IBinder;)V |
25 | ····.locals·0 | 25 | ····.locals·0 |
26 | ····.param·p1,·"remote"····#·Landroid/os/IBinder; | 26 | ····.param·p1,·"remote"····#·Landroid/os/IBinder; |
27 | ····.prologue | 27 | ····.prologue |
28 | ····.line·2 | 28 | ····.line·299 |
29 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 29 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
30 | ····.line· | 30 | ····.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· | 32 | ····.line·301 |
33 | ····return-void | 33 | ····return-void |
34 | .end·method | 34 | .end·method |
35 | #·virtual·methods | 35 | #·virtual·methods |
36 | .method·public·asBinder()Landroid/os/IBinder; | 36 | .method·public·asBinder()Landroid/os/IBinder; |
37 | ····.locals·1 | 37 | ····.locals·1 |
38 | ····.prologue | 38 | ····.prologue |
39 | ····.line· | 39 | ····.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·v0 | 41 | ····return-object·v0 |
42 | .end·method | 42 | .end·method |
43 | .method·public·consumePurchase(ILjava/lang/String;Ljava/lang/String;)I | 43 | .method·public·consumePurchase(ILjava/lang/String;Ljava/lang/String;)I |
44 | ····.locals·6 | 44 | ····.locals·6 |
Offset 57, 78 lines modified | Offset 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·annotation | 61 | ····.end·annotation |
62 | ····.prologue | 62 | ····.prologue |
63 | ····.line·4 | 63 | ····.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·v0 | 65 | ····move-result-object·v0 |
66 | ····.line·4 | 66 | ····.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·v1 | 69 | ····move-result-object·v1 |
70 | ····.line·4 | 70 | ····.line·497 |
71 | ····.local·v1,·"_reply":Landroid/os/Parcel; | 71 | ····.local·v1,·"_reply":Landroid/os/Parcel; |
72 | ····:try_start_0 | 72 | ····: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;)V | 74 | ····invoke-virtual·{v0,·v3},·Landroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V |
75 | ····.line·4 | 75 | ····.line·498 |
76 | ····invoke-virtual·{v0,·p1},·Landroid/os/Parcel;->writeInt(I)V | 76 | ····invoke-virtual·{v0,·p1},·Landroid/os/Parcel;->writeInt(I)V |
77 | ····.line·4 | 77 | ····.line·499 |
78 | ····invoke-virtual·{v0,·p2},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V | 78 | ····invoke-virtual·{v0,·p2},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V |
79 | ····.line· | 79 | ····.line·500 |
80 | ····invoke-virtual·{v0,·p3},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V | 80 | ····invoke-virtual·{v0,·p3},·Landroid/os/Parcel;->writeString(Ljava/lang/String;)V |
81 | ····.line· | 81 | ····.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,·0x5 | 83 | ····const/4·v4,·0x5 |
84 | ····const/4·v5,·0x0 | 84 | ····const/4·v5,·0x0 |
85 | ····invoke-interface·{v3,·v4,·v0,·v1,·v5},·Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z | 85 | ····invoke-interface·{v3,·v4,·v0,·v1,·v5},·Landroid/os/IBinder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z |
86 | ····.line· | 86 | ····.line·502 |
87 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->readException()V | 87 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->readException()V |
88 | ····.line· | 88 | ····.line·503 |
89 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->readInt()I | 89 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->readInt()I |
90 | ····:try_end_0 | 90 | ····:try_end_0 |
91 | ····.catchall·{:try_start_0·..·:try_end_0}·:catchall_0 | 91 | ····.catchall·{:try_start_0·..·:try_end_0}·:catchall_0 |
92 | ····move-result·v2 | 92 | ····move-result·v2 |
93 | ····.line· | 93 | ····.line·506 |
94 | ····.local·v2,·"_result":I | 94 | ····.local·v2,·"_result":I |
95 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V | 95 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V |
96 | ····.line· | 96 | ····.line·507 |
97 | ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V | 97 | ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V |
98 | ····.line· | 98 | ····.line·509 |
99 | ····return·v2 | 99 | ····return·v2 |
100 | ····.line· | 100 | ····.line·506 |
101 | ····.end·local·v2····#·"_result":I | 101 | ····.end·local·v2····#·"_result":I |
102 | ····:catchall_0 | 102 | ····:catchall_0 |
103 | ····move-exception·v3 | 103 | ····move-exception·v3 |
104 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V | 104 | ····invoke-virtual·{v1},·Landroid/os/Parcel;->recycle()V |
105 | ····.line· | 105 | ····.line·507 |
106 | ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V | 106 | ····invoke-virtual·{v0},·Landroid/os/Parcel;->recycle()V |
107 | ····throw·v3 | 107 | ····throw·v3 |
108 | .end·method | 108 | .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·6 | 110 | ····.locals·6 |
Offset 140, 109 lines modified | Offset 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·annotation | 144 | ····.end·annotation |
145 | ····.prologue | 145 | ····.prologue |
146 | ····.line· | 146 | ····.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·v0 | 148 | ····move-result-object·v0 |
149 | ····.line· | 149 | ····.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. |
Offset 1, 42 lines modified | Offset 1, 33 lines modified | ||
1 | .class·public·final·enum·Lcom/anjlab/android/iab/v3/Purchase | 1 | .class·public·final·enum·Lcom/anjlab/android/iab/v3/PurchaseState; |
2 | .super·Ljava/lang/Enum; | 2 | .super·Ljava/lang/Enum; |
3 | .source·"Purchase | 3 | .source·"PurchaseState.java" |
4 | #·annotations | 4 | #·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/Purchase | 9 | ········"Lcom/anjlab/android/iab/v3/PurchaseState;", |
17 | ········">;" | 10 | ········">;" |
18 | ····} | 11 | ····} |
19 | .end·annotation | 12 | .end·annotation |
20 | #·static·fields | 13 | #·static·fields |
21 | .field·private·static·final·synthetic·$VALUES:[Lcom/anjlab/android/iab/v3/Purchase | 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/Purchase | 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/Purchase | 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/Purchase | 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/Purchase | 18 | .field·public·static·final·enum·SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseState; |
26 | #·direct·methods | 19 | #·direct·methods |
27 | .method·static·constructor·<clinit>()V | 20 | .method·static·constructor·<clinit>()V |
28 | ····.locals·6 | 21 | ····.locals·6 |
29 | ····.prologue | 22 | ····.prologue |
Offset 44, 113 lines modified | Offset 35, 116 lines modified | ||
44 | ····const/4·v4,·0x2 | 35 | ····const/4·v4,·0x2 |
45 | ····const/4·v3,·0x1 | 36 | ····const/4·v3,·0x1 |
46 | ····const/4·v2,·0x0 | 37 | ····const/4·v2,·0x0 |
47 | ····.line· | 38 | ····.line·20 |
48 | ····new-instance·v0,·Lcom/anjlab/android/iab/v3/Purchase | 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/Purchase | 41 | ····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/Purchase | 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/Purchase | 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/Purchase | 46 | ····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/Purchase | 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/Purchase | 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/Purchase | 51 | ····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/Purchase | 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/Purchase | 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/Purchase | 56 | ····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/Purchase | 57 | ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseState; |
64 | ····.line· | 58 | ····.line·18 |
65 | ····const/4·v0,·0x4 | 59 | ····const/4·v0,·0x4 |
66 | ····new-array·v0,·v0,·[Lcom/anjlab/android/iab/v3/Purchase | 60 | ····new-array·v0,·v0,·[Lcom/anjlab/android/iab/v3/PurchaseState; |
67 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/Purchase | 61 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->PurchasedSuccessfully:Lcom/anjlab/android/iab/v3/PurchaseState; |
68 | ····aput-object·v1,·v0,·v2 | 62 | ····aput-object·v1,·v0,·v2 |
69 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/Purchase | 63 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->Canceled:Lcom/anjlab/android/iab/v3/PurchaseState; |
70 | ····aput-object·v1,·v0,·v3 | 64 | ····aput-object·v1,·v0,·v3 |
71 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/Purchase | 65 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->Refunded:Lcom/anjlab/android/iab/v3/PurchaseState; |
72 | ····aput-object·v1,·v0,·v4 | 66 | ····aput-object·v1,·v0,·v4 |
73 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/Purchase | 67 | ····sget-object·v1,·Lcom/anjlab/android/iab/v3/PurchaseState;->SubscriptionExpired:Lcom/anjlab/android/iab/v3/PurchaseState; |
74 | ····aput-object·v1,·v0,·v5 | 68 | ····aput-object·v1,·v0,·v5 |
75 | ····sput-object·v0,·Lcom/anjlab/android/iab/v3/Purchase | 69 | ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseState;->$VALUES:[Lcom/anjlab/android/iab/v3/PurchaseState; |
76 | ····return-void | 70 | ····return-void |
77 | .end·method | 71 | .end·method |
78 | .method·private·constructor·<init>(Ljava/lang/String;I)V | 72 | .method·private·constructor·<init>(Ljava/lang/String;I)V |
79 | ····.locals·0 | 73 | ····.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·annotation | 78 | ····.end·annotation |
85 | ····.prologue | 79 | ····.prologue |
86 | ····.line· | 80 | ····.line·18 |
87 | ····invoke-direct·{p0,·p1,·p2},·Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V | 81 | ····invoke-direct·{p0,·p1,·p2},·Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V |
88 | ····return-void | 82 | ····return-void |
89 | .end·method | 83 | .end·method |
Max diff block lines reached; 1439/8450 bytes (17.03%) of diff not shown. |
Offset 1, 89 lines modified | Offset 1, 89 lines modified | ||
1 | .class·final·Lcom/anjlab/android/iab/v3/Purchase | 1 | .class·final·Lcom/anjlab/android/iab/v3/PurchaseData$1; |
2 | .super·Ljava/lang/Object; | 2 | .super·Ljava/lang/Object; |
3 | .source·"Purchase | 3 | .source·"PurchaseData.java" |
4 | #·interfaces | 4 | #·interfaces |
5 | .implements·Landroid/os/Parcelable$Creator; | 5 | .implements·Landroid/os/Parcelable$Creator; |
6 | #·annotations | 6 | #·annotations |
7 | .annotation·system·Ldalvik/annotation/EnclosingClass; | 7 | .annotation·system·Ldalvik/annotation/EnclosingClass; |
8 | ····value·=·Lcom/anjlab/android/iab/v3/Purchase | 8 | ····value·=·Lcom/anjlab/android/iab/v3/PurchaseData; |
9 | .end·annotation | 9 | .end·annotation |
10 | .annotation·system·Ldalvik/annotation/InnerClass; | 10 | .annotation·system·Ldalvik/annotation/InnerClass; |
11 | ····accessFlags·=·0x8 | 11 | ····accessFlags·=·0x8 |
12 | ····name·=·null | 12 | ····name·=·null |
13 | .end·annotation | 13 | .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/Purchase | 19 | ········"Lcom/anjlab/android/iab/v3/PurchaseData;", |
20 | ········">;" | 20 | ········">;" |
21 | ····} | 21 | ····} |
22 | .end·annotation | 22 | .end·annotation |
23 | #·direct·methods | 23 | #·direct·methods |
24 | .method·constructor·<init>()V | 24 | .method·constructor·<init>()V |
25 | ····.locals·0 | 25 | ····.locals·0 |
26 | ····.prologue | 26 | ····.prologue |
27 | ····.line· | 27 | ····.line·74 |
28 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 28 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
29 | ····return-void | 29 | ····return-void |
30 | .end·method | 30 | .end·method |
31 | #·virtual·methods | 31 | #·virtual·methods |
32 | .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/Purchase | 32 | .method·public·createFromParcel(Landroid/os/Parcel;)Lcom/anjlab/android/iab/v3/PurchaseData; |
33 | ····.locals·1 | 33 | ····.locals·1 |
34 | ····.param·p1,·"source"····#·Landroid/os/Parcel; | 34 | ····.param·p1,·"source"····#·Landroid/os/Parcel; |
35 | ····.prologue | 35 | ····.prologue |
36 | ····.line· | 36 | ····.line·77 |
37 | ····new-instance·v0,·Lcom/anjlab/android/iab/v3/Purchase | 37 | ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseData; |
38 | ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/Purchase | 38 | ····invoke-direct·{v0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseData;-><init>(Landroid/os/Parcel;)V |
39 | ····return-object·v0 | 39 | ····return-object·v0 |
40 | .end·method | 40 | .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·1 | 42 | ····.locals·1 |
43 | ····.prologue | 43 | ····.prologue |
44 | ····.line· | 44 | ····.line·74 |
45 | ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/Purchase | 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·v0 | 46 | ····move-result-object·v0 |
47 | ····return-object·v0 | 47 | ····return-object·v0 |
48 | .end·method | 48 | .end·method |
49 | .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/Purchase | 49 | .method·public·newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseData; |
50 | ····.locals·1 | 50 | ····.locals·1 |
51 | ····.param·p1,·"size"····#·I | 51 | ····.param·p1,·"size"····#·I |
52 | ····.prologue | 52 | ····.prologue |
53 | ····.line· | 53 | ····.line·82 |
54 | ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/Purchase | 54 | ····new-array·v0,·p1,·[Lcom/anjlab/android/iab/v3/PurchaseData; |
55 | ····return-object·v0 | 55 | ····return-object·v0 |
56 | .end·method | 56 | .end·method |
57 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; | 57 | .method·public·bridge·synthetic·newArray(I)[Ljava/lang/Object; |
58 | ····.locals·1 | 58 | ····.locals·1 |
59 | ····.prologue | 59 | ····.prologue |
60 | ····.line· | 60 | ····.line·74 |
61 | ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/Purchase | 61 | ····invoke-virtual·{p0,·p1},·Lcom/anjlab/android/iab/v3/PurchaseData$1;->newArray(I)[Lcom/anjlab/android/iab/v3/PurchaseData; |
62 | ····move-result-object·v0 | 62 | ····move-result-object·v0 |
63 | ····return-object·v0 | 63 | ····return-object·v0 |
64 | .end·method | 64 | .end·method |
Offset 1, 33 lines modified | Offset 1, 22 lines modified | ||
1 | .class·public·Lcom/anjlab/android/iab/v3/Purchase | 1 | .class·public·Lcom/anjlab/android/iab/v3/PurchaseData; |
2 | .super·Ljava/lang/Object; | 2 | .super·Ljava/lang/Object; |
3 | .source·"Purchase | 3 | .source·"PurchaseData.java" |
4 | #·interfaces | 4 | #·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·fields | 6 | #·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/Purchase | 12 | ············"Lcom/anjlab/android/iab/v3/PurchaseData;", |
21 | ············">;" | 13 | ············">;" |
22 | ········} | 14 | ········} |
23 | ····.end·annotation | 15 | ····.end·annotation |
24 | .end·field | 16 | .end·field |
25 | #·instance·fields | 17 | #·instance·fields |
Offset 37, 261 lines modified | Offset 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/Purchase | 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·methods | 32 | #·direct·methods |
44 | .method·static·constructor·<clinit>()V | 33 | .method·static·constructor·<clinit>()V |
45 | ····.locals·1 | 34 | ····.locals·1 |
46 | ····.prologue | 35 | ····.prologue |
47 | ····.line· | 36 | ····.line·72 |
48 | ····new-instance·v0,·Lcom/anjlab/android/iab/v3/Purchase | 37 | ····new-instance·v0,·Lcom/anjlab/android/iab/v3/PurchaseData$1; |
49 | ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/Purchase | 38 | ····invoke-direct·{v0},·Lcom/anjlab/android/iab/v3/PurchaseData$1;-><init>()V |
50 | ····sput-object·v0,·Lcom/anjlab/android/iab/v3/Purchase | 39 | ····sput-object·v0,·Lcom/anjlab/android/iab/v3/PurchaseData;->CREATOR:Landroid/os/Parcelable$Creator; |
51 | ····return-void | 40 | ····return-void |
52 | .end·method | 41 | .end·method |
53 | .method·public·constructor·<init>()V | 42 | .method·public·constructor·<init>()V |
54 | ····.locals·0 | 43 | ····.locals·0 |
55 | ····.prologue | 44 | ····.prologue |
56 | ····.line· | 45 | ····.line·54 |
57 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 46 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
58 | ····.line· | 47 | ····.line·55 |
59 | ····return-void | 48 | ····return-void |
60 | .end·method | 49 | .end·method |
61 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V | 50 | .method·protected·constructor·<init>(Landroid/os/Parcel;)V |
62 | ····.locals·8 | 51 | ····.locals·8 |
63 | ····.param·p1,·"in"····#·Landroid/os/Parcel; | 52 | ····.param·p1,·"in"····#·Landroid/os/Parcel; |
64 | ····.prologue | 53 | ····.prologue |
65 | ····const/4·v4,·0x0 | 54 | ····const/4·v4,·0x0 |
66 | ····.line· | 55 | ····.line·58 |
67 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V | 56 | ····invoke-direct·{p0},·Ljava/lang/Object;-><init>()V |
68 | ····.line· | 57 | ····.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·v1 | 59 | ····move-result-object·v1 |
71 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/Purchase | 60 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->orderId:Ljava/lang/String; |
72 | ····.line· | 61 | ····.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·v1 | 63 | ····move-result-object·v1 |
75 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/Purchase | 64 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->packageName:Ljava/lang/String; |
76 | ····.line· | 65 | ····.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·v1 | 67 | ····move-result-object·v1 |
79 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/Purchase | 68 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->productId:Ljava/lang/String; |
80 | ····.line· | 69 | ····.line·62 |
81 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J | 70 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readLong()J |
82 | ····move-result-wide·v2 | 71 | ····move-result-wide·v2 |
83 | ····.line· | 72 | ····.line·63 |
84 | ····.local·v2,·"tmpPurchaseTime":J | 73 | ····.local·v2,·"tmpPurchaseTime":J |
85 | ····const-wide/16·v6,·-0x1 | 74 | ····const-wide/16·v6,·-0x1 |
86 | ····cmp-long·v1,·v2,·v6 | 75 | ····cmp-long·v1,·v2,·v6 |
87 | ····if-nez·v1,·:cond_0 | 76 | ····if-nez·v1,·:cond_0 |
88 | ····move-object·v1,·v4 | 77 | ····move-object·v1,·v4 |
89 | ····:goto_0 | 78 | ····:goto_0 |
90 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/Purchase | 79 | ····iput-object·v1,·p0,·Lcom/anjlab/android/iab/v3/PurchaseData;->purchaseTime:Ljava/util/Date; |
91 | ····.line· | 80 | ····.line·64 |
92 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readInt()I | 81 | ····invoke-virtual·{p1},·Landroid/os/Parcel;->readInt()I |
93 | ····move-result·v0 | 82 | ····move-result·v0 |
Max diff block lines reached; 6404/10610 bytes (60.36%) of diff not shown. |