--- /home/hans/code/fdroid/data/tmp/org.bienvenidoainternet.app_11.apk +++ /home/hans/code/fdroid/data/tmp/sigcp_org.bienvenidoainternet.app_11.apk ├── zipinfo {} │ @@ -1,471 +1,471 @@ │ -Zip file size: 4008758 bytes, number of entries: 469 │ +Zip file size: 4009242 bytes, number of entries: 469 │ -rw---- 2.0 fat 47480 bl defN 16-May-11 18:28 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 47601 bl defN 16-May-11 18:28 META-INF/8229C2C9.SF │ -rw---- 2.0 fat 1326 bl defN 16-May-11 18:28 META-INF/8229C2C9.RSA │ -rw---- 2.0 fat 41 bl defN 16-May-11 17:53 META-INF/buildserverid │ -rw---- 2.0 fat 41 bl defN 16-May-11 17:53 META-INF/fdroidserverid │ --rw---- 2.0 fat 3224 bX defN 16-May-11 17:53 AndroidManifest.xml │ --rw---- 2.0 fat 2828124 bl defN 16-May-11 17:53 assets/fonts/mona.ttf │ --rw---- 2.0 fat 25921 bl defN 16-May-11 17:53 assets/html/licenses.html │ --rw---- 2.0 fat 396 bl defN 16-May-11 17:53 res/anim/abc_fade_in.xml │ --rw---- 2.0 fat 396 bl defN 16-May-11 17:53 res/anim/abc_fade_out.xml │ --rw---- 2.0 fat 860 bl defN 16-May-11 17:53 res/anim/abc_grow_fade_in_from_bottom.xml │ --rw---- 2.0 fat 512 bl defN 16-May-11 17:53 res/anim/abc_popup_enter.xml │ --rw---- 2.0 fat 512 bl defN 16-May-11 17:53 res/anim/abc_popup_exit.xml │ --rw---- 2.0 fat 860 bl defN 16-May-11 17:53 res/anim/abc_shrink_fade_out_from_bottom.xml │ --rw---- 2.0 fat 400 bl defN 16-May-11 17:53 res/anim/abc_slide_in_bottom.xml │ --rw---- 2.0 fat 400 bl defN 16-May-11 17:53 res/anim/abc_slide_in_top.xml │ --rw---- 2.0 fat 400 bl defN 16-May-11 17:53 res/anim/abc_slide_out_bottom.xml │ --rw---- 2.0 fat 400 bl defN 16-May-11 17:53 res/anim/abc_slide_out_top.xml │ --rw---- 2.0 fat 688 bl defN 16-May-11 17:53 res/anim/design_fab_in.xml │ --rw---- 2.0 fat 688 bl defN 16-May-11 17:53 res/anim/design_fab_out.xml │ --rw---- 2.0 fat 320 bl defN 16-May-11 17:53 res/anim/design_snackbar_in.xml │ --rw---- 2.0 fat 320 bl defN 16-May-11 17:53 res/anim/design_snackbar_out.xml │ --rw---- 2.0 fat 472 bl defN 16-May-11 17:53 res/color-v11/abc_background_cache_hint_selector_material_dark.xml │ --rw---- 2.0 fat 472 bl defN 16-May-11 17:53 res/color-v11/abc_background_cache_hint_selector_material_light.xml │ --rw---- 2.0 fat 548 bl defN 16-May-11 17:53 res/color-v23/abc_color_highlight_material.xml │ --rw---- 2.0 fat 344 bl defN 16-May-11 17:53 res/color/abc_background_cache_hint_selector_material_dark.xml │ --rw---- 2.0 fat 344 bl defN 16-May-11 17:53 res/color/abc_background_cache_hint_selector_material_light.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/abc_primary_text_disable_only_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/abc_primary_text_disable_only_material_light.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/abc_primary_text_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/abc_primary_text_material_light.xml │ --rw---- 2.0 fat 596 bl defN 16-May-11 17:53 res/color/abc_search_url_text.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/abc_secondary_text_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/abc_secondary_text_material_light.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/switch_thumb_material_dark.xml │ --rw---- 2.0 fat 468 bl defN 16-May-11 17:53 res/color/switch_thumb_material_light.xml │ --rw---- 1.0 fat 287 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 306 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 549 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 622 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 753 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 1619 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1078 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 1548 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 1748 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 229 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 416 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 280 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 233 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 160 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 288 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 612 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 190 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 373 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 270 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 791 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1028 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 541 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 170 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 244 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 212 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 212 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 212 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 239 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 240 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 840 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 1290 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 259 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ --rw---- 1.0 fat 271 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ --rw---- 1.0 fat 387 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ --rw---- 1.0 fat 214 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ --rw---- 1.0 fat 201 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 392 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 538 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 199 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 192 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 202 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 182 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 182 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 130 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_add.png │ --rw---- 1.0 fat 414 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_download.png │ --rw---- 1.0 fat 653 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_font_bold.png │ --rw---- 1.0 fat 340 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_font_italic.png │ --rw---- 1.0 fat 389 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_font_underline.png │ --rw---- 1.0 fat 182 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_list_2.png │ --rw---- 1.0 fat 366 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_action_send.png │ --rw---- 1.0 fat 280 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_code.png │ --rw---- 1.0 fat 386 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_edit.png │ --rw---- 1.0 fat 290 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_format_list_bulleted.png │ --rw---- 1.0 fat 223 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_format_strikethrough.png │ --rw---- 1.0 fat 398 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_format_underlined.png │ --rw---- 1.0 fat 1229 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_refresh.png │ --rw---- 1.0 fat 516 b- stor 16-May-11 17:50 res/drawable-hdpi-v4/ic_sync.png │ --rw---- 1.0 fat 384 b- stor 16-May-11 17:50 res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 289 b- stor 16-May-11 17:50 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 610 b- stor 16-May-11 17:50 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 391 b- stor 16-May-11 17:50 res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 325 b- stor 16-May-11 17:50 res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 174 b- stor 16-May-11 17:50 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 381 b- stor 16-May-11 17:50 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 351 b- stor 16-May-11 17:50 res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 428 b- stor 16-May-11 17:50 res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 237 b- stor 16-May-11 17:50 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 729 b- stor 16-May-11 17:50 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 503 b- stor 16-May-11 17:50 res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 475 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 361 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 991 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 630 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 246 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 418 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 1257 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 611 b- stor 16-May-11 17:50 res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 274 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 288 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 429 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 428 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 493 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 1348 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1005 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 1047 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 1124 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 225 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 351 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 236 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 280 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 158 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 185 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 377 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 158 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 234 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 186 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 545 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 681 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 415 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 170 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 222 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 211 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 211 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 211 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 226 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 227 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 604 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 863 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 214 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ --rw---- 1.0 fat 202 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ --rw---- 1.0 fat 279 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ --rw---- 1.0 fat 208 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ --rw---- 1.0 fat 197 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 353 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 428 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 192 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 186 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 185 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 181 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 180 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 115 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_add.png │ --rw---- 1.0 fat 273 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_download.png │ --rw---- 1.0 fat 481 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_font_bold.png │ --rw---- 1.0 fat 332 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_font_italic.png │ --rw---- 1.0 fat 302 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_font_underline.png │ --rw---- 1.0 fat 134 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_list_2.png │ --rw---- 1.0 fat 275 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_action_send.png │ --rw---- 1.0 fat 233 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_addreply.png │ --rw---- 1.0 fat 222 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_code.png │ --rw---- 1.0 fat 333 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_edit.png │ --rw---- 1.0 fat 111 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_format_list_bulleted.png │ --rw---- 1.0 fat 125 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_format_strikethrough.png │ --rw---- 1.0 fat 233 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_format_underlined.png │ --rw---- 1.0 fat 896 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_refresh.png │ --rw---- 1.0 fat 333 b- stor 16-May-11 17:50 res/drawable-mdpi-v4/ic_sync.png │ --rw---- 2.0 fat 336 bl defN 16-May-11 17:53 res/drawable-v21/abc_action_bar_item_background_material.xml │ --rw---- 2.0 fat 1908 bl defN 16-May-11 17:53 res/drawable-v21/abc_btn_colored_material.xml │ --rw---- 2.0 fat 380 bl defN 16-May-11 17:53 res/drawable-v23/abc_control_background_material.xml │ --rw---- 1.0 fat 297 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 354 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 556 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 831 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 996 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 2215 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1547 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 2259 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 2606 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 234 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 485 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 365 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 344 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 188 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 237 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 723 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 218 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 371 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 238 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 919 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1131 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 730 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 170 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 244 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 214 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 214 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 214 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 254 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 253 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 1141 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 1811 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 345 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ --rw---- 1.0 fat 400 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ --rw---- 1.0 fat 557 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ --rw---- 1.0 fat 219 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ --rw---- 1.0 fat 207 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 507 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 741 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 205 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 198 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 197 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 190 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 190 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 135 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_add.png │ --rw---- 1.0 fat 411 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_download.png │ --rw---- 1.0 fat 759 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_font_bold.png │ --rw---- 1.0 fat 577 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_font_italic.png │ --rw---- 1.0 fat 520 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_font_underline.png │ --rw---- 1.0 fat 179 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_list_2.png │ --rw---- 1.0 fat 421 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_action_send.png │ --rw---- 1.0 fat 288 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_code.png │ --rw---- 1.0 fat 433 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_edit.png │ --rw---- 1.0 fat 119 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_format_list_bulleted.png │ --rw---- 1.0 fat 131 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_format_strikethrough.png │ --rw---- 1.0 fat 348 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_format_underlined.png │ --rw---- 1.0 fat 1554 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_refresh.png │ --rw---- 1.0 fat 559 b- stor 16-May-11 17:50 res/drawable-xhdpi-v4/ic_sync.png │ --rw---- 1.0 fat 305 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ --rw---- 1.0 fat 369 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 725 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 1249 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 1467 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 2401 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ --rw---- 1.0 fat 1032 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ --rw---- 1.0 fat 3755 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 2804 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 246 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ --rw---- 1.0 fat 570 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 395 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 306 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 176 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 363 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 988 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 284 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 521 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 337 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 1292 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1908 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 947 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 178 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ --rw---- 1.0 fat 245 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png │ --rw---- 1.0 fat 221 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png │ --rw---- 1.0 fat 221 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png │ --rw---- 1.0 fat 221 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png │ --rw---- 1.0 fat 307 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ --rw---- 1.0 fat 305 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ --rw---- 1.0 fat 1822 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ --rw---- 1.0 fat 2774 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png │ --rw---- 1.0 fat 396 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ --rw---- 1.0 fat 589 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ --rw---- 1.0 fat 811 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ --rw---- 1.0 fat 218 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ --rw---- 1.0 fat 246 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 632 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 1060 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 210 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 202 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 204 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 193 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ --rw---- 1.0 fat 196 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ --rw---- 1.0 fat 146 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_add.png │ --rw---- 1.0 fat 587 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_download.png │ --rw---- 1.0 fat 1022 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_font_bold.png │ --rw---- 1.0 fat 573 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_font_italic.png │ --rw---- 1.0 fat 706 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_font_underline.png │ --rw---- 1.0 fat 229 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_list_2.png │ --rw---- 1.0 fat 611 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_action_send.png │ --rw---- 1.0 fat 439 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_code.png │ --rw---- 1.0 fat 574 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_edit.png │ --rw---- 1.0 fat 133 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_format_list_bulleted.png │ --rw---- 1.0 fat 141 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_format_strikethrough.png │ --rw---- 1.0 fat 479 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_format_underlined.png │ --rw---- 1.0 fat 2101 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_refresh.png │ --rw---- 1.0 fat 857 b- stor 16-May-11 17:50 res/drawable-xxhdpi-v4/ic_sync.png │ --rw---- 1.0 fat 295 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ --rw---- 1.0 fat 551 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ --rw---- 1.0 fat 1014 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ --rw---- 1.0 fat 1226 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ --rw---- 1.0 fat 3524 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ --rw---- 1.0 fat 3853 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ --rw---- 1.0 fat 240 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ --rw---- 1.0 fat 566 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ --rw---- 1.0 fat 418 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ --rw---- 1.0 fat 1253 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ --rw---- 1.0 fat 378 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ --rw---- 1.0 fat 680 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ --rw---- 1.0 fat 390 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ --rw---- 1.0 fat 1559 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ --rw---- 1.0 fat 1571 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 1291 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ --rw---- 1.0 fat 666 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ --rw---- 1.0 fat 959 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ --rw---- 1.0 fat 617 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ --rw---- 1.0 fat 1025 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ --rw---- 1.0 fat 208 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ --rw---- 1.0 fat 401 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_add.png │ --rw---- 1.0 fat 1499 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_download.png │ --rw---- 1.0 fat 2222 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_font_bold.png │ --rw---- 1.0 fat 1678 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_font_italic.png │ --rw---- 1.0 fat 1584 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_font_underline.png │ --rw---- 1.0 fat 752 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_list_2.png │ --rw---- 1.0 fat 1535 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_action_send.png │ --rw---- 1.0 fat 396 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_code.png │ --rw---- 1.0 fat 689 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_edit.png │ --rw---- 1.0 fat 279 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_format_list_bulleted.png │ --rw---- 1.0 fat 150 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_format_strikethrough.png │ --rw---- 1.0 fat 591 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_format_underlined.png │ --rw---- 1.0 fat 2764 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_refresh.png │ --rw---- 1.0 fat 999 b- stor 16-May-11 17:50 res/drawable-xxxhdpi-v4/ic_sync.png │ --rw---- 2.0 fat 700 bl defN 16-May-11 17:53 res/drawable/abc_btn_borderless_material.xml │ --rw---- 2.0 fat 560 bl defN 16-May-11 17:53 res/drawable/abc_btn_check_material.xml │ --rw---- 2.0 fat 428 bl defN 16-May-11 17:53 res/drawable/abc_btn_colored_material.xml │ --rw---- 2.0 fat 1092 bl defN 16-May-11 17:53 res/drawable/abc_btn_default_mtrl_shape.xml │ --rw---- 2.0 fat 560 bl defN 16-May-11 17:53 res/drawable/abc_btn_radio_material.xml │ --rw---- 2.0 fat 436 bl defN 16-May-11 17:53 res/drawable/abc_cab_background_internal_bg.xml │ --rw---- 2.0 fat 412 bl defN 16-May-11 17:53 res/drawable/abc_cab_background_top_material.xml │ --rw---- 2.0 fat 844 bl defN 16-May-11 17:53 res/drawable/abc_dialog_material_background_dark.xml │ --rw---- 2.0 fat 844 bl defN 16-May-11 17:53 res/drawable/abc_dialog_material_background_light.xml │ --rw---- 2.0 fat 1040 bl defN 16-May-11 17:53 res/drawable/abc_edit_text_material.xml │ --rw---- 2.0 fat 1136 bl defN 16-May-11 17:53 res/drawable/abc_item_background_holo_dark.xml │ --rw---- 2.0 fat 1136 bl defN 16-May-11 17:53 res/drawable/abc_item_background_holo_light.xml │ --rw---- 2.0 fat 508 bl defN 16-May-11 17:53 res/drawable/abc_list_selector_background_transition_holo_dark.xml │ --rw---- 2.0 fat 508 bl defN 16-May-11 17:53 res/drawable/abc_list_selector_background_transition_holo_light.xml │ --rw---- 2.0 fat 1208 bl defN 16-May-11 17:53 res/drawable/abc_list_selector_holo_dark.xml │ --rw---- 2.0 fat 1208 bl defN 16-May-11 17:53 res/drawable/abc_list_selector_holo_light.xml │ --rw---- 2.0 fat 664 bl defN 16-May-11 17:53 res/drawable/abc_ratingbar_full_material.xml │ --rw---- 2.0 fat 1232 bl defN 16-May-11 17:53 res/drawable/abc_seekbar_thumb_material.xml │ --rw---- 2.0 fat 1532 bl defN 16-May-11 17:53 res/drawable/abc_seekbar_track_material.xml │ --rw---- 2.0 fat 1328 bl defN 16-May-11 17:53 res/drawable/abc_spinner_textfield_background_material.xml │ --rw---- 2.0 fat 560 bl defN 16-May-11 17:53 res/drawable/abc_switch_thumb_material.xml │ --rw---- 2.0 fat 564 bl defN 16-May-11 17:53 res/drawable/abc_tab_indicator_material.xml │ --rw---- 2.0 fat 600 bl defN 16-May-11 17:53 res/drawable/abc_text_cursor_material.xml │ --rw---- 2.0 fat 880 bl defN 16-May-11 17:53 res/drawable/abc_textfield_search_material.xml │ --rw---- 1.0 fat 38884 b- stor 16-May-11 17:50 res/drawable/bai_banner.png │ --rw---- 1.0 fat 16138 b- stor 16-May-11 17:50 res/drawable/bai_logo.png │ --rw---- 1.0 fat 11419 b- stor 16-May-11 17:50 res/drawable/bai_mona.png │ --rw---- 1.0 fat 68 b- stor 16-May-11 17:50 res/drawable/blank.png │ --rw---- 2.0 fat 436 bl defN 16-May-11 17:53 res/drawable/design_fab_background.xml │ --rw---- 2.0 fat 564 bl defN 16-May-11 17:53 res/drawable/design_snackbar_background.xml │ --rw---- 2.0 fat 584 bl defN 16-May-11 17:53 res/drawable/side_nav_bar.xml │ --rw---- 2.0 fat 528 bl defN 16-May-11 17:53 res/layout-sw600dp-v13/design_layout_snackbar.xml │ --rw---- 2.0 fat 1692 bl defN 16-May-11 17:53 res/layout-v17/abc_alert_dialog_button_bar_material.xml │ --rw---- 2.0 fat 3328 bl defN 16-May-11 17:53 res/layout-v17/abc_alert_dialog_material.xml │ --rw---- 2.0 fat 1156 bl defN 16-May-11 17:53 res/layout-v17/abc_dialog_title_material.xml │ --rw---- 2.0 fat 3696 bl defN 16-May-11 17:53 res/layout-v17/abc_search_view.xml │ --rw---- 2.0 fat 636 bl defN 16-May-11 17:53 res/layout-v17/activity_licenses.xml │ --rw---- 2.0 fat 5200 bl defN 16-May-11 17:53 res/layout-v17/activity_response.xml │ --rw---- 2.0 fat 964 bl defN 16-May-11 17:53 res/layout-v17/activity_viewer.xml │ --rw---- 2.0 fat 1540 bl defN 16-May-11 17:53 res/layout-v17/boardthread_item.xml │ --rw---- 2.0 fat 1292 bl defN 16-May-11 17:53 res/layout-v17/design_layout_snackbar_include.xml │ --rw---- 2.0 fat 688 bl defN 16-May-11 17:53 res/layout-v17/fragment_fragment_recent.xml │ --rw---- 2.0 fat 2204 bl defN 16-May-11 17:53 res/layout-v17/fragment_fragment_thread_list.xml │ --rw---- 2.0 fat 788 bl defN 16-May-11 17:53 res/layout-v17/nav_header_main.xml │ --rw---- 2.0 fat 1780 bl defN 16-May-11 17:53 res/layout-v17/notification_template_big_media.xml │ --rw---- 2.0 fat 1920 bl defN 16-May-11 17:53 res/layout-v17/notification_template_big_media_narrow.xml │ --rw---- 2.0 fat 2848 bl defN 16-May-11 17:53 res/layout-v17/notification_template_lines.xml │ --rw---- 2.0 fat 1428 bl defN 16-May-11 17:53 res/layout-v17/notification_template_media.xml │ --rw---- 2.0 fat 660 bl defN 16-May-11 17:53 res/layout-v17/notification_template_part_chronometer.xml │ --rw---- 2.0 fat 660 bl defN 16-May-11 17:53 res/layout-v17/notification_template_part_time.xml │ --rw---- 2.0 fat 1528 bl defN 16-May-11 17:53 res/layout-v17/recentpost_item.xml │ --rw---- 2.0 fat 872 bl defN 16-May-11 17:53 res/layout-v17/select_dialog_multichoice_material.xml │ --rw---- 2.0 fat 872 bl defN 16-May-11 17:53 res/layout-v17/select_dialog_singlechoice_material.xml │ --rw---- 2.0 fat 3028 bl defN 16-May-11 17:53 res/layout-v17/thread_item.xml │ --rw---- 2.0 fat 1632 bl defN 16-May-11 17:53 res/layout-v21/abc_screen_toolbar.xml │ --rw---- 2.0 fat 5240 bl defN 16-May-11 17:53 res/layout-v22/activity_response.xml │ --rw---- 2.0 fat 940 bl defN 16-May-11 17:53 res/layout/abc_action_bar_title_item.xml │ --rw---- 2.0 fat 448 bl defN 16-May-11 17:53 res/layout/abc_action_bar_up_container.xml │ --rw---- 2.0 fat 396 bl defN 16-May-11 17:53 res/layout/abc_action_bar_view_list_nav_layout.xml │ --rw---- 2.0 fat 804 bl defN 16-May-11 17:53 res/layout/abc_action_menu_item_layout.xml │ --rw---- 2.0 fat 584 bl defN 16-May-11 17:53 res/layout/abc_action_menu_layout.xml │ --rw---- 2.0 fat 500 bl defN 16-May-11 17:53 res/layout/abc_action_mode_bar.xml │ --rw---- 2.0 fat 592 bl defN 16-May-11 17:53 res/layout/abc_action_mode_close_item_material.xml │ --rw---- 2.0 fat 1752 bl defN 16-May-11 17:53 res/layout/abc_activity_chooser_view.xml │ --rw---- 2.0 fat 1272 bl defN 16-May-11 17:53 res/layout/abc_activity_chooser_view_list_item.xml │ --rw---- 2.0 fat 1648 bl defN 16-May-11 17:53 res/layout/abc_alert_dialog_button_bar_material.xml │ --rw---- 2.0 fat 3284 bl defN 16-May-11 17:53 res/layout/abc_alert_dialog_material.xml │ --rw---- 2.0 fat 1112 bl defN 16-May-11 17:53 res/layout/abc_dialog_title_material.xml │ --rw---- 2.0 fat 396 bl defN 16-May-11 17:53 res/layout/abc_expanded_menu_layout.xml │ --rw---- 2.0 fat 536 bl defN 16-May-11 17:53 res/layout/abc_list_menu_item_checkbox.xml │ --rw---- 2.0 fat 688 bl defN 16-May-11 17:53 res/layout/abc_list_menu_item_icon.xml │ --rw---- 2.0 fat 1404 bl defN 16-May-11 17:53 res/layout/abc_list_menu_item_layout.xml │ --rw---- 2.0 fat 536 bl defN 16-May-11 17:53 res/layout/abc_list_menu_item_radio.xml │ --rw---- 2.0 fat 1548 bl defN 16-May-11 17:53 res/layout/abc_popup_menu_item_layout.xml │ --rw---- 2.0 fat 556 bl defN 16-May-11 17:53 res/layout/abc_screen_content_include.xml │ --rw---- 2.0 fat 872 bl defN 16-May-11 17:53 res/layout/abc_screen_simple.xml │ --rw---- 2.0 fat 828 bl defN 16-May-11 17:53 res/layout/abc_screen_simple_overlay_action_mode.xml │ --rw---- 2.0 fat 1580 bl defN 16-May-11 17:53 res/layout/abc_screen_toolbar.xml │ --rw---- 2.0 fat 2204 bl defN 16-May-11 17:53 res/layout/abc_search_dropdown_item_icons_2line.xml │ --rw---- 2.0 fat 3648 bl defN 16-May-11 17:53 res/layout/abc_search_view.xml │ --rw---- 2.0 fat 768 bl defN 16-May-11 17:53 res/layout/abc_select_dialog_material.xml │ --rw---- 2.0 fat 584 bl defN 16-May-11 17:53 res/layout/activity_licenses.xml │ --rw---- 2.0 fat 1028 bl defN 16-May-11 17:53 res/layout/activity_main.xml │ --rw---- 2.0 fat 4740 bl defN 16-May-11 17:53 res/layout/activity_response.xml │ --rw---- 2.0 fat 888 bl defN 16-May-11 17:53 res/layout/activity_viewer.xml │ --rw---- 2.0 fat 1428 bl defN 16-May-11 17:53 res/layout/app_bar_main.xml │ --rw---- 2.0 fat 1416 bl defN 16-May-11 17:53 res/layout/boardthread_item.xml │ --rw---- 2.0 fat 656 bl defN 16-May-11 17:53 res/layout/content_main.xml │ --rw---- 2.0 fat 528 bl defN 16-May-11 17:53 res/layout/design_layout_snackbar.xml │ --rw---- 2.0 fat 1240 bl defN 16-May-11 17:53 res/layout/design_layout_snackbar_include.xml │ --rw---- 2.0 fat 368 bl defN 16-May-11 17:53 res/layout/design_layout_tab_icon.xml │ --rw---- 2.0 fat 444 bl defN 16-May-11 17:53 res/layout/design_layout_tab_text.xml │ --rw---- 2.0 fat 328 bl defN 16-May-11 17:53 res/layout/design_menu_item_action_area.xml │ --rw---- 2.0 fat 536 bl defN 16-May-11 17:53 res/layout/design_navigation_item.xml │ --rw---- 2.0 fat 448 bl defN 16-May-11 17:53 res/layout/design_navigation_item_header.xml │ --rw---- 2.0 fat 480 bl defN 16-May-11 17:53 res/layout/design_navigation_item_separator.xml │ --rw---- 2.0 fat 572 bl defN 16-May-11 17:53 res/layout/design_navigation_item_subheader.xml │ --rw---- 2.0 fat 572 bl defN 16-May-11 17:53 res/layout/design_navigation_menu.xml │ --rw---- 2.0 fat 864 bl defN 16-May-11 17:53 res/layout/design_navigation_menu_item.xml │ --rw---- 2.0 fat 1548 bl defN 16-May-11 17:53 res/layout/fragment_fragment_image.xml │ --rw---- 2.0 fat 636 bl defN 16-May-11 17:53 res/layout/fragment_fragment_recent.xml │ --rw---- 2.0 fat 2084 bl defN 16-May-11 17:53 res/layout/fragment_fragment_thread_list.xml │ --rw---- 2.0 fat 732 bl defN 16-May-11 17:53 res/layout/nav_header_main.xml │ --rw---- 2.0 fat 616 bl defN 16-May-11 17:53 res/layout/notification_media_action.xml │ --rw---- 2.0 fat 688 bl defN 16-May-11 17:53 res/layout/notification_media_cancel_action.xml │ --rw---- 2.0 fat 1640 bl defN 16-May-11 17:53 res/layout/notification_template_big_media.xml │ --rw---- 2.0 fat 1660 bl defN 16-May-11 17:53 res/layout/notification_template_big_media_narrow.xml │ --rw---- 2.0 fat 2676 bl defN 16-May-11 17:53 res/layout/notification_template_lines.xml │ --rw---- 2.0 fat 1336 bl defN 16-May-11 17:53 res/layout/notification_template_media.xml │ --rw---- 2.0 fat 616 bl defN 16-May-11 17:53 res/layout/notification_template_part_chronometer.xml │ --rw---- 2.0 fat 616 bl defN 16-May-11 17:53 res/layout/notification_template_part_time.xml │ --rw---- 2.0 fat 1400 bl defN 16-May-11 17:53 res/layout/recentpost_item.xml │ --rw---- 2.0 fat 648 bl defN 16-May-11 17:53 res/layout/select_dialog_item_material.xml │ --rw---- 2.0 fat 788 bl defN 16-May-11 17:53 res/layout/select_dialog_multichoice_material.xml │ --rw---- 2.0 fat 788 bl defN 16-May-11 17:53 res/layout/select_dialog_singlechoice_material.xml │ --rw---- 2.0 fat 508 bl defN 16-May-11 17:53 res/layout/support_simple_spinner_dropdown_item.xml │ --rw---- 2.0 fat 2828 bl defN 16-May-11 17:53 res/layout/thread_item.xml │ --rw---- 2.0 fat 432 bl defN 16-May-11 17:53 res/menu/activity_main_drawer.xml │ --rw---- 2.0 fat 1364 bl defN 16-May-11 17:53 res/menu/main.xml │ --rw---- 2.0 fat 776 bl defN 16-May-11 17:53 res/menu/menu_reply.xml │ --rw---- 2.0 fat 572 bl defN 16-May-11 17:53 res/menu/menu_replyform.xml │ --rw---- 2.0 fat 616 bl defN 16-May-11 17:53 res/menu/menu_viewer.xml │ --rw---- 1.0 fat 8055 b- stor 16-May-11 17:50 res/mipmap-hdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 4358 b- stor 16-May-11 17:50 res/mipmap-mdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 12565 b- stor 16-May-11 17:50 res/mipmap-xhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 22723 b- stor 16-May-11 17:50 res/mipmap-xxhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 34519 b- stor 16-May-11 17:50 res/mipmap-xxxhdpi-v4/ic_launcher.png │ --rw---- 2.0 fat 3424 bl defN 16-May-11 17:53 res/xml/preferences.xml │ --rw---- 1.0 fat 232264 b- stor 16-May-11 17:50 resources.arsc │ --rw---- 2.0 fat 3353688 bl defN 16-May-11 17:53 classes.dex │ --rw---- 2.0 fat 1254 bl defN 16-May-11 17:53 org/jsoup/nodes/entities-base.properties │ --rw---- 2.0 fat 27501 bl defN 16-May-11 17:53 org/jsoup/nodes/entities-full.properties │ --rw---- 2.0 fat 10368 bl defN 16-May-11 17:53 lib/mips64/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 41712 bl defN 16-May-11 17:53 lib/mips64/libpl_droidsonroids_gif.so │ --rw---- 2.0 fat 13488 bl defN 16-May-11 17:53 lib/armeabi-v7a/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 29884 bl defN 16-May-11 17:53 lib/armeabi-v7a/libpl_droidsonroids_gif.so │ --rw---- 2.0 fat 17572 bl defN 16-May-11 17:53 lib/armeabi/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 38064 bl defN 16-May-11 17:53 lib/armeabi/libpl_droidsonroids_gif.so │ --rw---- 2.0 fat 9816 bl defN 16-May-11 17:53 lib/x86_64/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 34416 bl defN 16-May-11 17:53 lib/x86_64/libpl_droidsonroids_gif.so │ --rw---- 2.0 fat 71136 bl defN 16-May-11 17:53 lib/mips/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 73652 bl defN 16-May-11 17:53 lib/mips/libpl_droidsonroids_gif.so │ --rw---- 2.0 fat 9624 bl defN 16-May-11 17:53 lib/arm64-v8a/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 34224 bl defN 16-May-11 17:53 lib/arm64-v8a/libpl_droidsonroids_gif.so │ --rw---- 2.0 fat 9280 bl defN 16-May-11 17:53 lib/x86/libpl_droidsonroids_gif_surface.so │ --rw---- 2.0 fat 33868 bl defN 16-May-11 17:53 lib/x86/libpl_droidsonroids_gif.so │ -469 files, 7473208 bytes uncompressed, 3924442 bytes compressed: 47.5% │ +-rw---- 2.0 fat 3224 bX defN 08-Jan-01 00:00 AndroidManifest.xml │ +-rw---- 2.0 fat 2828124 bl defN 08-Jan-01 00:00 assets/fonts/mona.ttf │ +-rw---- 2.0 fat 25921 bl defN 08-Jan-01 00:00 assets/html/licenses.html │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/anim/abc_fade_in.xml │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/anim/abc_fade_out.xml │ +-rw---- 2.0 fat 860 bl defN 08-Jan-01 00:00 res/anim/abc_grow_fade_in_from_bottom.xml │ +-rw---- 2.0 fat 512 bl defN 08-Jan-01 00:00 res/anim/abc_popup_enter.xml │ +-rw---- 2.0 fat 512 bl defN 08-Jan-01 00:00 res/anim/abc_popup_exit.xml │ +-rw---- 2.0 fat 860 bl defN 08-Jan-01 00:00 res/anim/abc_shrink_fade_out_from_bottom.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_in_bottom.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_in_top.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_out_bottom.xml │ +-rw---- 2.0 fat 400 bl defN 08-Jan-01 00:00 res/anim/abc_slide_out_top.xml │ +-rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/anim/design_fab_in.xml │ +-rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/anim/design_fab_out.xml │ +-rw---- 2.0 fat 320 bl defN 08-Jan-01 00:00 res/anim/design_snackbar_in.xml │ +-rw---- 2.0 fat 320 bl defN 08-Jan-01 00:00 res/anim/design_snackbar_out.xml │ +-rw---- 2.0 fat 472 bl defN 08-Jan-01 00:00 res/color-v11/abc_background_cache_hint_selector_material_dark.xml │ +-rw---- 2.0 fat 472 bl defN 08-Jan-01 00:00 res/color-v11/abc_background_cache_hint_selector_material_light.xml │ +-rw---- 2.0 fat 548 bl defN 08-Jan-01 00:00 res/color-v23/abc_color_highlight_material.xml │ +-rw---- 2.0 fat 344 bl defN 08-Jan-01 00:00 res/color/abc_background_cache_hint_selector_material_dark.xml │ +-rw---- 2.0 fat 344 bl defN 08-Jan-01 00:00 res/color/abc_background_cache_hint_selector_material_light.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_disable_only_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_disable_only_material_light.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_primary_text_material_light.xml │ +-rw---- 2.0 fat 596 bl defN 08-Jan-01 00:00 res/color/abc_search_url_text.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_secondary_text_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/abc_secondary_text_material_light.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/switch_thumb_material_dark.xml │ +-rw---- 2.0 fat 468 bl defN 08-Jan-01 00:00 res/color/switch_thumb_material_light.xml │ +-rw---- 1.0 fat 287 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 306 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 549 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 622 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 753 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1619 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1078 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 1548 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 1748 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 229 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 416 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 280 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 233 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 160 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 288 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 612 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 190 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 373 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 270 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 791 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1028 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 541 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 170 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 244 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 212 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 212 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 212 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 239 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 240 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 840 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 1290 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 259 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ +-rw---- 1.0 fat 271 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ +-rw---- 1.0 fat 387 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ +-rw---- 1.0 fat 201 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 392 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 538 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 199 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 192 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 202 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 182 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 182 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 130 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_add.png │ +-rw---- 1.0 fat 414 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_download.png │ +-rw---- 1.0 fat 653 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_font_bold.png │ +-rw---- 1.0 fat 340 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_font_italic.png │ +-rw---- 1.0 fat 389 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_font_underline.png │ +-rw---- 1.0 fat 182 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_list_2.png │ +-rw---- 1.0 fat 366 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_action_send.png │ +-rw---- 1.0 fat 280 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_code.png │ +-rw---- 1.0 fat 386 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_edit.png │ +-rw---- 1.0 fat 290 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_format_list_bulleted.png │ +-rw---- 1.0 fat 223 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_format_strikethrough.png │ +-rw---- 1.0 fat 398 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_format_underlined.png │ +-rw---- 1.0 fat 1229 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_refresh.png │ +-rw---- 1.0 fat 516 b- stor 08-Jan-01 00:00 res/drawable-hdpi-v4/ic_sync.png │ +-rw---- 1.0 fat 384 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 289 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 610 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 391 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 325 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 174 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 381 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 351 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-mdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 428 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 237 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 729 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 503 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 475 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 361 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 991 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 630 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 246 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 418 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 1257 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 611 b- stor 08-Jan-01 00:00 res/drawable-ldrtl-xxxhdpi-v17/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 274 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 288 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 429 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 428 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 493 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1348 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1005 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 1047 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 1124 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 225 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 351 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 236 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 280 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 158 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 185 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 377 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 158 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 234 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 186 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 545 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 681 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 415 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 170 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 222 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 211 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 211 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 211 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 226 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 227 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 604 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 863 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ +-rw---- 1.0 fat 202 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ +-rw---- 1.0 fat 279 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ +-rw---- 1.0 fat 208 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ +-rw---- 1.0 fat 197 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 353 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 428 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 192 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 186 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 185 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 181 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 180 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 115 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_add.png │ +-rw---- 1.0 fat 273 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_download.png │ +-rw---- 1.0 fat 481 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_font_bold.png │ +-rw---- 1.0 fat 332 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_font_italic.png │ +-rw---- 1.0 fat 302 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_font_underline.png │ +-rw---- 1.0 fat 134 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_list_2.png │ +-rw---- 1.0 fat 275 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_action_send.png │ +-rw---- 1.0 fat 233 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_addreply.png │ +-rw---- 1.0 fat 222 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_code.png │ +-rw---- 1.0 fat 333 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_edit.png │ +-rw---- 1.0 fat 111 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_format_list_bulleted.png │ +-rw---- 1.0 fat 125 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_format_strikethrough.png │ +-rw---- 1.0 fat 233 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_format_underlined.png │ +-rw---- 1.0 fat 896 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_refresh.png │ +-rw---- 1.0 fat 333 b- stor 08-Jan-01 00:00 res/drawable-mdpi-v4/ic_sync.png │ +-rw---- 2.0 fat 336 bl defN 08-Jan-01 00:00 res/drawable-v21/abc_action_bar_item_background_material.xml │ +-rw---- 2.0 fat 1908 bl defN 08-Jan-01 00:00 res/drawable-v21/abc_btn_colored_material.xml │ +-rw---- 2.0 fat 380 bl defN 08-Jan-01 00:00 res/drawable-v23/abc_control_background_material.xml │ +-rw---- 1.0 fat 297 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 354 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 556 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 831 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 996 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 2215 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1547 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 2259 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 2606 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 234 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 485 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 365 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 344 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 188 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 237 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 723 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 218 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 371 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 238 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 919 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1131 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 730 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 170 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 244 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 214 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 254 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 253 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 1141 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 1811 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 345 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ +-rw---- 1.0 fat 400 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ +-rw---- 1.0 fat 557 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ +-rw---- 1.0 fat 219 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ +-rw---- 1.0 fat 207 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 507 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 741 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 205 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 198 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 197 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 190 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 190 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 135 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_add.png │ +-rw---- 1.0 fat 411 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_download.png │ +-rw---- 1.0 fat 759 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_font_bold.png │ +-rw---- 1.0 fat 577 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_font_italic.png │ +-rw---- 1.0 fat 520 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_font_underline.png │ +-rw---- 1.0 fat 179 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_list_2.png │ +-rw---- 1.0 fat 421 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_action_send.png │ +-rw---- 1.0 fat 288 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_code.png │ +-rw---- 1.0 fat 433 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_edit.png │ +-rw---- 1.0 fat 119 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_format_list_bulleted.png │ +-rw---- 1.0 fat 131 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_format_strikethrough.png │ +-rw---- 1.0 fat 348 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_format_underlined.png │ +-rw---- 1.0 fat 1554 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_refresh.png │ +-rw---- 1.0 fat 559 b- stor 08-Jan-01 00:00 res/drawable-xhdpi-v4/ic_sync.png │ +-rw---- 1.0 fat 305 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png │ +-rw---- 1.0 fat 369 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 725 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1249 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 1467 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 2401 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_rating_star_off_mtrl_alpha.png │ +-rw---- 1.0 fat 1032 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_rating_star_on_mtrl_alpha.png │ +-rw---- 1.0 fat 3755 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 2804 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 246 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png │ +-rw---- 1.0 fat 570 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 395 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 306 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 176 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 363 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 988 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 284 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 521 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 337 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 1292 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1908 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 947 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 178 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png │ +-rw---- 1.0 fat 245 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png │ +-rw---- 1.0 fat 221 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png │ +-rw---- 1.0 fat 221 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png │ +-rw---- 1.0 fat 221 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png │ +-rw---- 1.0 fat 307 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png │ +-rw---- 1.0 fat 305 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png │ +-rw---- 1.0 fat 1822 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png │ +-rw---- 1.0 fat 2774 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png │ +-rw---- 1.0 fat 396 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_scrubber_control_off_mtrl_alpha.png │ +-rw---- 1.0 fat 589 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ +-rw---- 1.0 fat 811 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ +-rw---- 1.0 fat 218 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png │ +-rw---- 1.0 fat 246 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_scrubber_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 632 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 1060 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 210 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 202 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 204 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 193 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png │ +-rw---- 1.0 fat 196 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png │ +-rw---- 1.0 fat 146 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_add.png │ +-rw---- 1.0 fat 587 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_download.png │ +-rw---- 1.0 fat 1022 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_font_bold.png │ +-rw---- 1.0 fat 573 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_font_italic.png │ +-rw---- 1.0 fat 706 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_font_underline.png │ +-rw---- 1.0 fat 229 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_list_2.png │ +-rw---- 1.0 fat 611 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_action_send.png │ +-rw---- 1.0 fat 439 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_code.png │ +-rw---- 1.0 fat 574 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_edit.png │ +-rw---- 1.0 fat 133 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_format_list_bulleted.png │ +-rw---- 1.0 fat 141 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_format_strikethrough.png │ +-rw---- 1.0 fat 479 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_format_underlined.png │ +-rw---- 1.0 fat 2101 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_refresh.png │ +-rw---- 1.0 fat 857 b- stor 08-Jan-01 00:00 res/drawable-xxhdpi-v4/ic_sync.png │ +-rw---- 1.0 fat 295 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png │ +-rw---- 1.0 fat 551 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png │ +-rw---- 1.0 fat 1014 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png │ +-rw---- 1.0 fat 1226 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png │ +-rw---- 1.0 fat 3524 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png │ +-rw---- 1.0 fat 3853 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png │ +-rw---- 1.0 fat 240 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png │ +-rw---- 1.0 fat 566 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png │ +-rw---- 1.0 fat 418 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png │ +-rw---- 1.0 fat 1253 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png │ +-rw---- 1.0 fat 378 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png │ +-rw---- 1.0 fat 680 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png │ +-rw---- 1.0 fat 390 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png │ +-rw---- 1.0 fat 1559 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png │ +-rw---- 1.0 fat 1571 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 1291 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png │ +-rw---- 1.0 fat 666 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_000.png │ +-rw---- 1.0 fat 959 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_scrubber_control_to_pressed_mtrl_005.png │ +-rw---- 1.0 fat 617 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png │ +-rw---- 1.0 fat 1025 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png │ +-rw---- 1.0 fat 208 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png │ +-rw---- 1.0 fat 401 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_add.png │ +-rw---- 1.0 fat 1499 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_download.png │ +-rw---- 1.0 fat 2222 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_font_bold.png │ +-rw---- 1.0 fat 1678 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_font_italic.png │ +-rw---- 1.0 fat 1584 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_font_underline.png │ +-rw---- 1.0 fat 752 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_list_2.png │ +-rw---- 1.0 fat 1535 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_action_send.png │ +-rw---- 1.0 fat 396 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_code.png │ +-rw---- 1.0 fat 689 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_edit.png │ +-rw---- 1.0 fat 279 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_format_list_bulleted.png │ +-rw---- 1.0 fat 150 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_format_strikethrough.png │ +-rw---- 1.0 fat 591 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_format_underlined.png │ +-rw---- 1.0 fat 2764 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_refresh.png │ +-rw---- 1.0 fat 999 b- stor 08-Jan-01 00:00 res/drawable-xxxhdpi-v4/ic_sync.png │ +-rw---- 2.0 fat 700 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_borderless_material.xml │ +-rw---- 2.0 fat 560 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_check_material.xml │ +-rw---- 2.0 fat 428 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_colored_material.xml │ +-rw---- 2.0 fat 1092 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_default_mtrl_shape.xml │ +-rw---- 2.0 fat 560 bl defN 08-Jan-01 00:00 res/drawable/abc_btn_radio_material.xml │ +-rw---- 2.0 fat 436 bl defN 08-Jan-01 00:00 res/drawable/abc_cab_background_internal_bg.xml │ +-rw---- 2.0 fat 412 bl defN 08-Jan-01 00:00 res/drawable/abc_cab_background_top_material.xml │ +-rw---- 2.0 fat 844 bl defN 08-Jan-01 00:00 res/drawable/abc_dialog_material_background_dark.xml │ +-rw---- 2.0 fat 844 bl defN 08-Jan-01 00:00 res/drawable/abc_dialog_material_background_light.xml │ +-rw---- 2.0 fat 1040 bl defN 08-Jan-01 00:00 res/drawable/abc_edit_text_material.xml │ +-rw---- 2.0 fat 1136 bl defN 08-Jan-01 00:00 res/drawable/abc_item_background_holo_dark.xml │ +-rw---- 2.0 fat 1136 bl defN 08-Jan-01 00:00 res/drawable/abc_item_background_holo_light.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_background_transition_holo_dark.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_background_transition_holo_light.xml │ +-rw---- 2.0 fat 1208 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_holo_dark.xml │ +-rw---- 2.0 fat 1208 bl defN 08-Jan-01 00:00 res/drawable/abc_list_selector_holo_light.xml │ +-rw---- 2.0 fat 664 bl defN 08-Jan-01 00:00 res/drawable/abc_ratingbar_full_material.xml │ +-rw---- 2.0 fat 1232 bl defN 08-Jan-01 00:00 res/drawable/abc_seekbar_thumb_material.xml │ +-rw---- 2.0 fat 1532 bl defN 08-Jan-01 00:00 res/drawable/abc_seekbar_track_material.xml │ +-rw---- 2.0 fat 1328 bl defN 08-Jan-01 00:00 res/drawable/abc_spinner_textfield_background_material.xml │ +-rw---- 2.0 fat 560 bl defN 08-Jan-01 00:00 res/drawable/abc_switch_thumb_material.xml │ +-rw---- 2.0 fat 564 bl defN 08-Jan-01 00:00 res/drawable/abc_tab_indicator_material.xml │ +-rw---- 2.0 fat 600 bl defN 08-Jan-01 00:00 res/drawable/abc_text_cursor_material.xml │ +-rw---- 2.0 fat 880 bl defN 08-Jan-01 00:00 res/drawable/abc_textfield_search_material.xml │ +-rw---- 1.0 fat 38884 b- stor 08-Jan-01 00:00 res/drawable/bai_banner.png │ +-rw---- 1.0 fat 16138 b- stor 08-Jan-01 00:00 res/drawable/bai_logo.png │ +-rw---- 1.0 fat 11419 b- stor 08-Jan-01 00:00 res/drawable/bai_mona.png │ +-rw---- 1.0 fat 68 b- stor 08-Jan-01 00:00 res/drawable/blank.png │ +-rw---- 2.0 fat 436 bl defN 08-Jan-01 00:00 res/drawable/design_fab_background.xml │ +-rw---- 2.0 fat 564 bl defN 08-Jan-01 00:00 res/drawable/design_snackbar_background.xml │ +-rw---- 2.0 fat 584 bl defN 08-Jan-01 00:00 res/drawable/side_nav_bar.xml │ +-rw---- 2.0 fat 528 bl defN 08-Jan-01 00:00 res/layout-sw600dp-v13/design_layout_snackbar.xml │ +-rw---- 2.0 fat 1692 bl defN 08-Jan-01 00:00 res/layout-v17/abc_alert_dialog_button_bar_material.xml │ +-rw---- 2.0 fat 3328 bl defN 08-Jan-01 00:00 res/layout-v17/abc_alert_dialog_material.xml │ +-rw---- 2.0 fat 1156 bl defN 08-Jan-01 00:00 res/layout-v17/abc_dialog_title_material.xml │ +-rw---- 2.0 fat 3696 bl defN 08-Jan-01 00:00 res/layout-v17/abc_search_view.xml │ +-rw---- 2.0 fat 636 bl defN 08-Jan-01 00:00 res/layout-v17/activity_licenses.xml │ +-rw---- 2.0 fat 5200 bl defN 08-Jan-01 00:00 res/layout-v17/activity_response.xml │ +-rw---- 2.0 fat 964 bl defN 08-Jan-01 00:00 res/layout-v17/activity_viewer.xml │ +-rw---- 2.0 fat 1540 bl defN 08-Jan-01 00:00 res/layout-v17/boardthread_item.xml │ +-rw---- 2.0 fat 1292 bl defN 08-Jan-01 00:00 res/layout-v17/design_layout_snackbar_include.xml │ +-rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/layout-v17/fragment_fragment_recent.xml │ +-rw---- 2.0 fat 2204 bl defN 08-Jan-01 00:00 res/layout-v17/fragment_fragment_thread_list.xml │ +-rw---- 2.0 fat 788 bl defN 08-Jan-01 00:00 res/layout-v17/nav_header_main.xml │ +-rw---- 2.0 fat 1780 bl defN 08-Jan-01 00:00 res/layout-v17/notification_template_big_media.xml │ +-rw---- 2.0 fat 1920 bl defN 08-Jan-01 00:00 res/layout-v17/notification_template_big_media_narrow.xml │ +-rw---- 2.0 fat 2848 bl defN 08-Jan-01 00:00 res/layout-v17/notification_template_lines.xml │ +-rw---- 2.0 fat 1428 bl defN 08-Jan-01 00:00 res/layout-v17/notification_template_media.xml │ +-rw---- 2.0 fat 660 bl defN 08-Jan-01 00:00 res/layout-v17/notification_template_part_chronometer.xml │ +-rw---- 2.0 fat 660 bl defN 08-Jan-01 00:00 res/layout-v17/notification_template_part_time.xml │ +-rw---- 2.0 fat 1528 bl defN 08-Jan-01 00:00 res/layout-v17/recentpost_item.xml │ +-rw---- 2.0 fat 872 bl defN 08-Jan-01 00:00 res/layout-v17/select_dialog_multichoice_material.xml │ +-rw---- 2.0 fat 872 bl defN 08-Jan-01 00:00 res/layout-v17/select_dialog_singlechoice_material.xml │ +-rw---- 2.0 fat 3028 bl defN 08-Jan-01 00:00 res/layout-v17/thread_item.xml │ +-rw---- 2.0 fat 1632 bl defN 08-Jan-01 00:00 res/layout-v21/abc_screen_toolbar.xml │ +-rw---- 2.0 fat 5240 bl defN 08-Jan-01 00:00 res/layout-v22/activity_response.xml │ +-rw---- 2.0 fat 940 bl defN 08-Jan-01 00:00 res/layout/abc_action_bar_title_item.xml │ +-rw---- 2.0 fat 448 bl defN 08-Jan-01 00:00 res/layout/abc_action_bar_up_container.xml │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/layout/abc_action_bar_view_list_nav_layout.xml │ +-rw---- 2.0 fat 804 bl defN 08-Jan-01 00:00 res/layout/abc_action_menu_item_layout.xml │ +-rw---- 2.0 fat 584 bl defN 08-Jan-01 00:00 res/layout/abc_action_menu_layout.xml │ +-rw---- 2.0 fat 500 bl defN 08-Jan-01 00:00 res/layout/abc_action_mode_bar.xml │ +-rw---- 2.0 fat 592 bl defN 08-Jan-01 00:00 res/layout/abc_action_mode_close_item_material.xml │ +-rw---- 2.0 fat 1752 bl defN 08-Jan-01 00:00 res/layout/abc_activity_chooser_view.xml │ +-rw---- 2.0 fat 1272 bl defN 08-Jan-01 00:00 res/layout/abc_activity_chooser_view_list_item.xml │ +-rw---- 2.0 fat 1648 bl defN 08-Jan-01 00:00 res/layout/abc_alert_dialog_button_bar_material.xml │ +-rw---- 2.0 fat 3284 bl defN 08-Jan-01 00:00 res/layout/abc_alert_dialog_material.xml │ +-rw---- 2.0 fat 1112 bl defN 08-Jan-01 00:00 res/layout/abc_dialog_title_material.xml │ +-rw---- 2.0 fat 396 bl defN 08-Jan-01 00:00 res/layout/abc_expanded_menu_layout.xml │ +-rw---- 2.0 fat 536 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_checkbox.xml │ +-rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_icon.xml │ +-rw---- 2.0 fat 1404 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_layout.xml │ +-rw---- 2.0 fat 536 bl defN 08-Jan-01 00:00 res/layout/abc_list_menu_item_radio.xml │ +-rw---- 2.0 fat 1548 bl defN 08-Jan-01 00:00 res/layout/abc_popup_menu_item_layout.xml │ +-rw---- 2.0 fat 556 bl defN 08-Jan-01 00:00 res/layout/abc_screen_content_include.xml │ +-rw---- 2.0 fat 872 bl defN 08-Jan-01 00:00 res/layout/abc_screen_simple.xml │ +-rw---- 2.0 fat 828 bl defN 08-Jan-01 00:00 res/layout/abc_screen_simple_overlay_action_mode.xml │ +-rw---- 2.0 fat 1580 bl defN 08-Jan-01 00:00 res/layout/abc_screen_toolbar.xml │ +-rw---- 2.0 fat 2204 bl defN 08-Jan-01 00:00 res/layout/abc_search_dropdown_item_icons_2line.xml │ +-rw---- 2.0 fat 3648 bl defN 08-Jan-01 00:00 res/layout/abc_search_view.xml │ +-rw---- 2.0 fat 768 bl defN 08-Jan-01 00:00 res/layout/abc_select_dialog_material.xml │ +-rw---- 2.0 fat 584 bl defN 08-Jan-01 00:00 res/layout/activity_licenses.xml │ +-rw---- 2.0 fat 1028 bl defN 08-Jan-01 00:00 res/layout/activity_main.xml │ +-rw---- 2.0 fat 4740 bl defN 08-Jan-01 00:00 res/layout/activity_response.xml │ +-rw---- 2.0 fat 888 bl defN 08-Jan-01 00:00 res/layout/activity_viewer.xml │ +-rw---- 2.0 fat 1428 bl defN 08-Jan-01 00:00 res/layout/app_bar_main.xml │ +-rw---- 2.0 fat 1416 bl defN 08-Jan-01 00:00 res/layout/boardthread_item.xml │ +-rw---- 2.0 fat 656 bl defN 08-Jan-01 00:00 res/layout/content_main.xml │ +-rw---- 2.0 fat 528 bl defN 08-Jan-01 00:00 res/layout/design_layout_snackbar.xml │ +-rw---- 2.0 fat 1240 bl defN 08-Jan-01 00:00 res/layout/design_layout_snackbar_include.xml │ +-rw---- 2.0 fat 368 bl defN 08-Jan-01 00:00 res/layout/design_layout_tab_icon.xml │ +-rw---- 2.0 fat 444 bl defN 08-Jan-01 00:00 res/layout/design_layout_tab_text.xml │ +-rw---- 2.0 fat 328 bl defN 08-Jan-01 00:00 res/layout/design_menu_item_action_area.xml │ +-rw---- 2.0 fat 536 bl defN 08-Jan-01 00:00 res/layout/design_navigation_item.xml │ +-rw---- 2.0 fat 448 bl defN 08-Jan-01 00:00 res/layout/design_navigation_item_header.xml │ +-rw---- 2.0 fat 480 bl defN 08-Jan-01 00:00 res/layout/design_navigation_item_separator.xml │ +-rw---- 2.0 fat 572 bl defN 08-Jan-01 00:00 res/layout/design_navigation_item_subheader.xml │ +-rw---- 2.0 fat 572 bl defN 08-Jan-01 00:00 res/layout/design_navigation_menu.xml │ +-rw---- 2.0 fat 864 bl defN 08-Jan-01 00:00 res/layout/design_navigation_menu_item.xml │ +-rw---- 2.0 fat 1548 bl defN 08-Jan-01 00:00 res/layout/fragment_fragment_image.xml │ +-rw---- 2.0 fat 636 bl defN 08-Jan-01 00:00 res/layout/fragment_fragment_recent.xml │ +-rw---- 2.0 fat 2084 bl defN 08-Jan-01 00:00 res/layout/fragment_fragment_thread_list.xml │ +-rw---- 2.0 fat 732 bl defN 08-Jan-01 00:00 res/layout/nav_header_main.xml │ +-rw---- 2.0 fat 616 bl defN 08-Jan-01 00:00 res/layout/notification_media_action.xml │ +-rw---- 2.0 fat 688 bl defN 08-Jan-01 00:00 res/layout/notification_media_cancel_action.xml │ +-rw---- 2.0 fat 1640 bl defN 08-Jan-01 00:00 res/layout/notification_template_big_media.xml │ +-rw---- 2.0 fat 1660 bl defN 08-Jan-01 00:00 res/layout/notification_template_big_media_narrow.xml │ +-rw---- 2.0 fat 2676 bl defN 08-Jan-01 00:00 res/layout/notification_template_lines.xml │ +-rw---- 2.0 fat 1336 bl defN 08-Jan-01 00:00 res/layout/notification_template_media.xml │ +-rw---- 2.0 fat 616 bl defN 08-Jan-01 00:00 res/layout/notification_template_part_chronometer.xml │ +-rw---- 2.0 fat 616 bl defN 08-Jan-01 00:00 res/layout/notification_template_part_time.xml │ +-rw---- 2.0 fat 1400 bl defN 08-Jan-01 00:00 res/layout/recentpost_item.xml │ +-rw---- 2.0 fat 648 bl defN 08-Jan-01 00:00 res/layout/select_dialog_item_material.xml │ +-rw---- 2.0 fat 788 bl defN 08-Jan-01 00:00 res/layout/select_dialog_multichoice_material.xml │ +-rw---- 2.0 fat 788 bl defN 08-Jan-01 00:00 res/layout/select_dialog_singlechoice_material.xml │ +-rw---- 2.0 fat 508 bl defN 08-Jan-01 00:00 res/layout/support_simple_spinner_dropdown_item.xml │ +-rw---- 2.0 fat 2828 bl defN 08-Jan-01 00:00 res/layout/thread_item.xml │ +-rw---- 2.0 fat 432 bl defN 08-Jan-01 00:00 res/menu/activity_main_drawer.xml │ +-rw---- 2.0 fat 1364 bl defN 08-Jan-01 00:00 res/menu/main.xml │ +-rw---- 2.0 fat 776 bl defN 08-Jan-01 00:00 res/menu/menu_reply.xml │ +-rw---- 2.0 fat 572 bl defN 08-Jan-01 00:00 res/menu/menu_replyform.xml │ +-rw---- 2.0 fat 616 bl defN 08-Jan-01 00:00 res/menu/menu_viewer.xml │ +-rw---- 1.0 fat 8055 b- stor 08-Jan-01 00:00 res/mipmap-hdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 4358 b- stor 08-Jan-01 00:00 res/mipmap-mdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 12565 b- stor 08-Jan-01 00:00 res/mipmap-xhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 22723 b- stor 08-Jan-01 00:00 res/mipmap-xxhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 34519 b- stor 08-Jan-01 00:00 res/mipmap-xxxhdpi-v4/ic_launcher.png │ +-rw---- 2.0 fat 3424 bl defN 08-Jan-01 00:00 res/xml/preferences.xml │ +-rw---- 1.0 fat 232264 b- stor 08-Jan-01 00:00 resources.arsc │ +-rw---- 2.0 fat 3358424 bl defN 08-Jan-01 00:00 classes.dex │ +-rw---- 2.0 fat 1254 bl defN 08-Jan-01 00:00 org/jsoup/nodes/entities-base.properties │ +-rw---- 2.0 fat 27501 bl defN 08-Jan-01 00:00 org/jsoup/nodes/entities-full.properties │ +-rw---- 2.0 fat 13488 bl defN 08-Jan-01 00:00 lib/armeabi-v7a/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 29884 bl defN 08-Jan-01 00:00 lib/armeabi-v7a/libpl_droidsonroids_gif.so │ +-rw---- 2.0 fat 73652 bl defN 08-Jan-01 00:00 lib/mips/libpl_droidsonroids_gif.so │ +-rw---- 2.0 fat 71136 bl defN 08-Jan-01 00:00 lib/mips/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 34224 bl defN 08-Jan-01 00:00 lib/arm64-v8a/libpl_droidsonroids_gif.so │ +-rw---- 2.0 fat 9624 bl defN 08-Jan-01 00:00 lib/arm64-v8a/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 9280 bl defN 08-Jan-01 00:00 lib/x86/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 33868 bl defN 08-Jan-01 00:00 lib/x86/libpl_droidsonroids_gif.so │ +-rw---- 2.0 fat 38064 bl defN 08-Jan-01 00:00 lib/armeabi/libpl_droidsonroids_gif.so │ +-rw---- 2.0 fat 17572 bl defN 08-Jan-01 00:00 lib/armeabi/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 9816 bl defN 08-Jan-01 00:00 lib/x86_64/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 34416 bl defN 08-Jan-01 00:00 lib/x86_64/libpl_droidsonroids_gif.so │ +-rw---- 2.0 fat 10368 bl defN 08-Jan-01 00:00 lib/mips64/libpl_droidsonroids_gif_surface.so │ +-rw---- 2.0 fat 41712 bl defN 08-Jan-01 00:00 lib/mips64/libpl_droidsonroids_gif.so │ +469 files, 7477944 bytes uncompressed, 3926076 bytes compressed: 47.5% ├── AndroidManifest.xml │ @@ -1,9 +1,9 @@ │ │ - ├── smali/android/support/design/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 1106 │ return-void │ .end method ├── smali/android/support/v4/app/BundleCompatDonut.smali │ @@ -96,17 +96,17 @@ │ │ invoke-virtual {v1, p0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/os/IBinder; │ :try_end_1 │ - .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_2 │ - .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_3 │ - .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_3 │ + .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_2 │ │ .line 58 │ :goto_1 │ return-object v1 │ │ .line 43 │ :catch_0 │ @@ -233,17 +233,17 @@ │ │ const/4 v3, 0x1 │ │ aput-object p2, v2, v3 │ │ invoke-virtual {v1, p0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_1 │ - .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_2 │ - .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_3 │ - .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_1} :catch_3 │ + .catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_1} :catch_1 │ + .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_2 │ │ .line 82 │ :cond_1 │ :goto_1 │ return-void │ │ .line 67 ├── smali/android/support/v7/appcompat/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 933 │ return-void │ .end method ├── smali/android/support/v7/recyclerview/R.smali │ @@ -18,10 +18,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 22 │ return-void │ .end method ├── smali/com/davemorrissey/labs/subscaleview/R.smali │ @@ -16,10 +16,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 18 │ return-void │ .end method ├── smali/com/koushikdutta/async/ArrayDeque.smali │ @@ -1850,23 +1850,24 @@ │ │ .line 781 │ .local v0, "size":I │ array-length v1, p1 │ │ if-ge v1, v0, :cond_0 │ │ - .line 782 │ + .line 783 │ invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class; │ │ move-result-object v1 │ │ + .line 782 │ invoke-static {v1, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, [Ljava/lang/Object; │ │ move-object p1, v1 ├── smali/com/koushikdutta/async/AsyncDatagramSocket$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$port:I │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncDatagramSocket;Ljava/lang/String;ILjava/nio/ByteBuffer;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ .prologue │ .line 27 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncDatagramSocket$1;->this$0:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncDatagramSocket$1;->val$host:Ljava/lang/String; ├── smali/com/koushikdutta/async/AsyncDatagramSocket$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$buffer:Ljava/nio/ByteBuffer; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncDatagramSocket;Ljava/net/InetSocketAddress;Ljava/nio/ByteBuffer;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ .prologue │ .line 48 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncDatagramSocket$2;->this$0:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncDatagramSocket$2;->val$address:Ljava/net/InetSocketAddress; ├── smali/com/koushikdutta/async/AsyncNetworkSocket$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$list:Lcom/koushikdutta/async/ByteBufferList; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncNetworkSocket;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ .prologue │ .line 71 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncNetworkSocket$1;->this$0:Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncNetworkSocket$1;->val$list:Lcom/koushikdutta/async/ByteBufferList; ├── smali/com/koushikdutta/async/AsyncNetworkSocket$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ .prologue │ .line 271 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncNetworkSocket$2;->this$0:Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/AsyncNetworkSocket$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ .prologue │ .line 300 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncNetworkSocket$3;->this$0:Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/AsyncSSLSocketWrapper$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncSSLSocketWrapper;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ .prologue │ .line 138 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$3;->this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/AsyncSSLSocketWrapper$4.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncSSLSocketWrapper;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ .prologue │ .line 149 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$4;->this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/AsyncSSLSocketWrapper$5.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncSSLSocketWrapper;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ .prologue │ .line 164 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$5;->this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/AsyncSSLSocketWrapper$6.smali │ @@ -20,41 +20,42 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncSSLSocketWrapper;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ .prologue │ - .line 335 │ + .line 337 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$6;->this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 1 │ │ .prologue │ - .line 338 │ + .line 340 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$6;->this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ iget-object v0, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWriteableCallback:Lcom/koushikdutta/async/callback/WritableCallback; │ │ if-eqz v0, :cond_0 │ │ - .line 339 │ + .line 341 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$6;->this$0:Lcom/koushikdutta/async/AsyncSSLSocketWrapper; │ │ iget-object v0, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWriteableCallback:Lcom/koushikdutta/async/callback/WritableCallback; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/callback/WritableCallback;->onWriteable()V │ │ - .line 340 │ + .line 342 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncSSLSocketWrapper.smali │ @@ -209,15 +209,15 @@ │ .line 164 │ new-instance v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$5; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$5;->(Lcom/koushikdutta/async/AsyncSSLSocketWrapper;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->dataCallback:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 364 │ + .line 366 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->writeList:Lcom/koushikdutta/async/ByteBufferList; │ │ .line 128 │ @@ -577,71 +577,70 @@ │ invoke-virtual {v12, v14, v15, v0}, Lorg/apache/http/conn/ssl/StrictHostnameVerifier;->verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V │ :try_end_1 │ .catch Ljava/security/GeneralSecurityException; {:try_start_1 .. :try_end_1} :catch_1 │ .catch Ljavax/net/ssl/SSLException; {:try_start_1 .. :try_end_1} :catch_2 │ .catch Ljava/security/NoSuchAlgorithmException; {:try_start_1 .. :try_end_1} :catch_0 │ .catch Lcom/koushikdutta/async/AsyncSSLException; {:try_start_1 .. :try_end_1} :catch_4 │ │ - .line 308 │ + .line 310 │ .end local v12 # "verifier":Lorg/apache/http/conn/ssl/StrictHostnameVerifier; │ :cond_5 │ - :goto_1 │ const/4 v11, 0x1 │ │ - .line 318 │ + .line 320 │ .end local v8 # "tm":Ljavax/net/ssl/TrustManager; │ .end local v13 # "xtm":Ljavax/net/ssl/X509TrustManager; │ :cond_6 │ const/4 v14, 0x1 │ │ :try_start_2 │ move-object/from16 v0, p0 │ │ iput-boolean v14, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->finishedHandshake:Z │ │ - .line 319 │ + .line 321 │ if-nez v11, :cond_9 │ │ - .line 320 │ + .line 322 │ new-instance v2, Lcom/koushikdutta/async/AsyncSSLException; │ │ invoke-direct {v2, v6}, Lcom/koushikdutta/async/AsyncSSLException;->(Ljava/lang/Throwable;)V │ │ - .line 321 │ + .line 323 │ .local v2, "e":Lcom/koushikdutta/async/AsyncSSLException; │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v2}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->report(Ljava/lang/Exception;)V │ │ - .line 322 │ + .line 324 │ invoke-virtual {v2}, Lcom/koushikdutta/async/AsyncSSLException;->getIgnore()Z │ │ move-result v14 │ │ if-nez v14, :cond_9 │ │ - .line 323 │ + .line 325 │ throw v2 │ :try_end_2 │ .catch Ljava/security/NoSuchAlgorithmException; {:try_start_2 .. :try_end_2} :catch_0 │ .catch Ljava/security/GeneralSecurityException; {:try_start_2 .. :try_end_2} :catch_3 │ .catch Lcom/koushikdutta/async/AsyncSSLException; {:try_start_2 .. :try_end_2} :catch_4 │ │ - .line 345 │ + .line 347 │ .end local v1 # "arr$":[Ljavax/net/ssl/TrustManager; │ .end local v2 # "e":Lcom/koushikdutta/async/AsyncSSLException; │ .end local v4 # "i$":I │ .end local v5 # "len$":I │ .end local v6 # "peerUnverifiedCause":Ljava/lang/Exception; │ .end local v10 # "trustManagers":[Ljavax/net/ssl/TrustManager; │ .end local v11 # "trusted":Z │ :catch_0 │ move-exception v3 │ │ - .line 346 │ + .line 348 │ .local v3, "ex":Ljava/security/NoSuchAlgorithmException; │ new-instance v14, Ljava/lang/RuntimeException; │ │ invoke-direct {v14, v3}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ throw v14 │ │ @@ -672,49 +671,88 @@ │ move-object/from16 v16, v0 │ │ invoke-virtual/range {v16 .. v16}, Ljavax/net/ssl/SSLEngine;->getSession()Ljavax/net/ssl/SSLSession; │ │ move-result-object v16 │ │ invoke-interface/range {v14 .. v16}, Ljavax/net/ssl/HostnameVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z │ + │ + move-result v14 │ + │ + if-nez v14, :cond_5 │ + │ + .line 306 │ + new-instance v14, Ljavax/net/ssl/SSLException; │ + │ + new-instance v15, Ljava/lang/StringBuilder; │ + │ + invoke-direct {v15}, Ljava/lang/StringBuilder;->()V │ + │ + const-string v16, "hostname <" │ + │ + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v15 │ + │ + move-object/from16 v0, p0 │ + │ + iget-object v0, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mHost:Ljava/lang/String; │ + │ + move-object/from16 v16, v0 │ + │ + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v15 │ + │ + const-string v16, "> has been denied" │ + │ + invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v15 │ + │ + invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v15 │ + │ + invoke-direct {v14, v15}, Ljavax/net/ssl/SSLException;->(Ljava/lang/String;)V │ + │ + throw v14 │ :try_end_3 │ .catch Ljava/security/GeneralSecurityException; {:try_start_3 .. :try_end_3} :catch_1 │ .catch Ljavax/net/ssl/SSLException; {:try_start_3 .. :try_end_3} :catch_2 │ .catch Ljava/security/NoSuchAlgorithmException; {:try_start_3 .. :try_end_3} :catch_0 │ .catch Lcom/koushikdutta/async/AsyncSSLException; {:try_start_3 .. :try_end_3} :catch_4 │ │ - goto :goto_1 │ - │ - .line 311 │ + .line 313 │ .end local v13 # "xtm":Ljavax/net/ssl/X509TrustManager; │ :catch_1 │ move-exception v3 │ │ - .line 312 │ + .line 314 │ .local v3, "ex":Ljava/security/GeneralSecurityException; │ move-object v6, v3 │ │ .line 294 │ .end local v3 # "ex":Ljava/security/GeneralSecurityException; │ - :goto_2 │ + :goto_1 │ add-int/lit8 v4, v4, 0x1 │ │ goto/16 :goto_0 │ │ - .line 314 │ + .line 316 │ :catch_2 │ move-exception v3 │ │ - .line 315 │ + .line 317 │ .local v3, "ex":Ljavax/net/ssl/SSLException; │ move-object v6, v3 │ │ - goto :goto_2 │ + goto :goto_1 │ │ - .line 327 │ + .line 329 │ .end local v1 # "arr$":[Ljavax/net/ssl/TrustManager; │ .end local v3 # "ex":Ljavax/net/ssl/SSLException; │ .end local v4 # "i$":I │ .end local v5 # "len$":I │ .end local v6 # "peerUnverifiedCause":Ljava/lang/Exception; │ .end local v8 # "tm":Ljavax/net/ssl/TrustManager; │ .end local v10 # "trustManagers":[Ljavax/net/ssl/TrustManager; │ @@ -723,91 +761,91 @@ │ const/4 v14, 0x1 │ │ :try_start_4 │ move-object/from16 v0, p0 │ │ iput-boolean v14, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->finishedHandshake:Z │ │ - .line 329 │ + .line 331 │ :cond_9 │ move-object/from16 v0, p0 │ │ iget-object v14, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->handshakeCallback:Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ │ const/4 v15, 0x0 │ │ move-object/from16 v0, p0 │ │ invoke-interface {v14, v15, v0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback;->onHandshakeCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSSLSocket;)V │ │ - .line 330 │ + .line 332 │ const/4 v14, 0x0 │ │ move-object/from16 v0, p0 │ │ iput-object v14, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->handshakeCallback:Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ │ - .line 332 │ + .line 334 │ move-object/from16 v0, p0 │ │ iget-object v14, v0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ const/4 v15, 0x0 │ │ invoke-interface {v14, v15}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 335 │ + .line 337 │ invoke-virtual/range {p0 .. p0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v14 │ │ new-instance v15, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$6; │ │ move-object/from16 v0, p0 │ │ invoke-direct {v15, v0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$6;->(Lcom/koushikdutta/async/AsyncSSLSocketWrapper;)V │ │ invoke-virtual {v14, v15}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 342 │ + .line 344 │ invoke-virtual/range {p0 .. p0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->onDataAvailable()V │ :try_end_4 │ .catch Ljava/security/NoSuchAlgorithmException; {:try_start_4 .. :try_end_4} :catch_0 │ .catch Ljava/security/GeneralSecurityException; {:try_start_4 .. :try_end_4} :catch_3 │ .catch Lcom/koushikdutta/async/AsyncSSLException; {:try_start_4 .. :try_end_4} :catch_4 │ │ - .line 354 │ + .line 356 │ :cond_a │ - :goto_3 │ + :goto_2 │ return-void │ │ - .line 348 │ + .line 350 │ :catch_3 │ move-exception v3 │ │ - .line 349 │ + .line 351 │ .local v3, "ex":Ljava/security/GeneralSecurityException; │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v3}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->report(Ljava/lang/Exception;)V │ │ - goto :goto_3 │ + goto :goto_2 │ │ - .line 351 │ + .line 353 │ .end local v3 # "ex":Ljava/security/GeneralSecurityException; │ :catch_4 │ move-exception v3 │ │ - .line 352 │ + .line 354 │ .local v3, "ex":Lcom/koushikdutta/async/AsyncSSLException; │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v3}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->report(Ljava/lang/Exception;)V │ │ - goto :goto_3 │ + goto :goto_2 │ .end method │ │ .method public static handshake(Lcom/koushikdutta/async/AsyncSocket;Ljava/lang/String;ILjavax/net/ssl/SSLEngine;[Ljavax/net/ssl/TrustManager;Ljavax/net/ssl/HostnameVerifier;ZLcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback;)V │ .locals 10 │ .param p0, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ .param p1, "host" # Ljava/lang/String; │ .param p2, "port" # I │ @@ -887,67 +925,67 @@ │ .method private report(Ljava/lang/Exception;)V │ .locals 5 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ const/4 v4, 0x0 │ │ - .line 422 │ + .line 424 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->handshakeCallback:Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ │ - .line 423 │ + .line 425 │ .local v1, "hs":Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ if-eqz v1, :cond_1 │ │ - .line 424 │ + .line 426 │ iput-object v4, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->handshakeCallback:Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ │ - .line 425 │ + .line 427 │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ new-instance v3, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v3}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-interface {v2, v3}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 426 │ + .line 428 │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v2}, Lcom/koushikdutta/async/AsyncSocket;->end()V │ │ - .line 428 │ + .line 430 │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v2, v4}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 429 │ + .line 431 │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v2}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 430 │ + .line 432 │ invoke-interface {v1, p1, v4}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback;->onHandshakeCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSSLSocket;)V │ │ - .line 437 │ + .line 439 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 434 │ + .line 436 │ :cond_1 │ invoke-virtual {p0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->getEndCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ │ move-result-object v0 │ │ - .line 435 │ + .line 437 │ .local v0, "cb":Lcom/koushikdutta/async/callback/CompletedCallback; │ if-eqz v0, :cond_0 │ │ - .line 436 │ + .line 438 │ invoke-interface {v0, p1}, Lcom/koushikdutta/async/callback/CompletedCallback;->onCompleted(Ljava/lang/Exception;)V │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ @@ -982,51 +1020,51 @@ │ .end method │ │ .method calculateAlloc(I)I │ .locals 2 │ .param p1, "remaining" # I │ │ .prologue │ - .line 358 │ + .line 360 │ mul-int/lit8 v1, p1, 0x3 │ │ div-int/lit8 v0, v1, 0x2 │ │ - .line 359 │ + .line 361 │ .local v0, "alloc":I │ if-nez v0, :cond_0 │ │ - .line 360 │ + .line 362 │ const/16 v0, 0x2000 │ │ - .line 361 │ + .line 363 │ :cond_0 │ return v0 │ .end method │ │ .method public charset()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 523 │ + .line 525 │ const/4 v0, 0x0 │ │ return-object v0 │ .end method │ │ .method public close()V │ .locals 1 │ │ .prologue │ - .line 461 │ + .line 463 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 462 │ + .line 464 │ return-void │ .end method │ │ .method public end()V │ .locals 1 │ │ .prologue │ @@ -1039,49 +1077,49 @@ │ return-void │ .end method │ │ .method public getClosedCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ .locals 1 │ │ .prologue │ - .line 471 │ + .line 473 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->getClosedCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getDataCallback()Lcom/koushikdutta/async/callback/DataCallback; │ .locals 1 │ │ .prologue │ - .line 446 │ + .line 448 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mDataCallback:Lcom/koushikdutta/async/callback/DataCallback; │ │ return-object v0 │ .end method │ │ .method public getDataEmitter()Lcom/koushikdutta/async/DataEmitter; │ .locals 1 │ │ .prologue │ - .line 513 │ + .line 515 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ return-object v0 │ .end method │ │ .method public getEndCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ .locals 1 │ │ .prologue │ - .line 482 │ + .line 484 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mEndCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ return-object v0 │ .end method │ │ .method public getHost()Ljava/lang/String; │ .locals 1 │ @@ -1093,15 +1131,15 @@ │ return-object v0 │ .end method │ │ .method public getPeerCertificates()[Ljava/security/cert/X509Certificate; │ .locals 1 │ │ .prologue │ - .line 518 │ + .line 520 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->peerCertificates:[Ljava/security/cert/X509Certificate; │ │ return-object v0 │ .end method │ │ .method public getPort()I │ .locals 1 │ @@ -1123,77 +1161,77 @@ │ return-object v0 │ .end method │ │ .method public getServer()Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ │ .prologue │ - .line 503 │ + .line 505 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getSocket()Lcom/koushikdutta/async/AsyncSocket; │ .locals 1 │ │ .prologue │ - .line 508 │ + .line 510 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ return-object v0 │ .end method │ │ .method public getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ .locals 1 │ │ .prologue │ - .line 418 │ + .line 420 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWriteableCallback:Lcom/koushikdutta/async/callback/WritableCallback; │ │ return-object v0 │ .end method │ │ .method public isChunked()Z │ .locals 1 │ │ .prologue │ - .line 451 │ + .line 453 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isChunked()Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public isOpen()Z │ .locals 1 │ │ .prologue │ - .line 456 │ + .line 458 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public isPaused()Z │ .locals 1 │ │ .prologue │ - .line 498 │ + .line 500 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isPaused()Z │ │ move-result v0 │ │ return v0 │ @@ -1237,194 +1275,194 @@ │ return-void │ .end method │ │ .method public pause()V │ .locals 1 │ │ .prologue │ - .line 487 │ + .line 489 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->pause()V │ │ - .line 488 │ + .line 490 │ return-void │ .end method │ │ .method public resume()V │ .locals 1 │ │ .prologue │ - .line 492 │ + .line 494 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->resume()V │ │ - .line 493 │ + .line 495 │ invoke-virtual {p0}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->onDataAvailable()V │ │ - .line 494 │ + .line 496 │ return-void │ .end method │ │ .method public setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 1 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 466 │ + .line 468 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, p1}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 467 │ + .line 469 │ return-void │ .end method │ │ .method public setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/callback/DataCallback; │ │ .prologue │ - .line 441 │ + .line 443 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mDataCallback:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 442 │ + .line 444 │ return-void │ .end method │ │ .method public setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 477 │ + .line 479 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mEndCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ - .line 478 │ + .line 480 │ return-void │ .end method │ │ .method public setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ .locals 0 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/WritableCallback; │ │ .prologue │ - .line 413 │ + .line 415 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWriteableCallback:Lcom/koushikdutta/async/callback/WritableCallback; │ │ - .line 414 │ + .line 416 │ return-void │ .end method │ │ .method public write(Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 8 │ .param p1, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 367 │ + .line 369 │ iget-boolean v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWrapping:Z │ │ if-eqz v6, :cond_1 │ │ - .line 409 │ + .line 411 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 369 │ + .line 371 │ :cond_1 │ iget-object v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSink:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/BufferedDataSink;->remaining()I │ │ move-result v6 │ │ if-gtz v6, :cond_0 │ │ - .line 371 │ + .line 373 │ const/4 v6, 0x1 │ │ iput-boolean v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWrapping:Z │ │ - .line 373 │ + .line 375 │ const/4 v4, 0x0 │ │ - .line 374 │ + .line 376 │ .local v4, "res":Ljavax/net/ssl/SSLEngineResult; │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ invoke-virtual {p0, v6}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->calculateAlloc(I)I │ │ move-result v6 │ │ invoke-static {v6}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ - .line 379 │ + .line 381 │ .local v5, "writeBuf":Ljava/nio/ByteBuffer; │ :cond_2 │ iget-boolean v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->finishedHandshake:Z │ │ if-eqz v6, :cond_4 │ │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ if-nez v6, :cond_4 │ │ - .line 407 │ + .line 409 │ :cond_3 │ :goto_1 │ const/4 v6, 0x0 │ │ iput-boolean v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mWrapping:Z │ │ - .line 408 │ + .line 410 │ invoke-static {v5}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ goto :goto_0 │ │ - .line 381 │ + .line 383 │ :cond_4 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v3 │ │ - .line 383 │ + .line 385 │ .local v3, "remaining":I │ :try_start_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getAllArray()[Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ - .line 384 │ + .line 386 │ .local v0, "arr":[Ljava/nio/ByteBuffer; │ iget-object v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->engine:Ljavax/net/ssl/SSLEngine; │ │ invoke-virtual {v6, v0, v5}, Ljavax/net/ssl/SSLEngine;->wrap([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult; │ │ move-result-object v4 │ │ - .line 385 │ + .line 387 │ invoke-virtual {p1, v0}, Lcom/koushikdutta/async/ByteBufferList;->addAll([Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 386 │ + .line 388 │ invoke-virtual {v5}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 387 │ + .line 389 │ iget-object v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->writeList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v5}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 388 │ + .line 390 │ sget-boolean v6, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->$assertionsDisabled:Z │ │ if-nez v6, :cond_6 │ │ iget-object v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->writeList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ByteBufferList;->hasRemaining()Z │ @@ -1437,24 +1475,24 @@ │ │ invoke-direct {v6}, Ljava/lang/AssertionError;->()V │ │ throw v6 │ :try_end_0 │ .catch Ljavax/net/ssl/SSLException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 402 │ + .line 404 │ .end local v0 # "arr":[Ljava/nio/ByteBuffer; │ :catch_0 │ move-exception v1 │ │ - .line 403 │ + .line 405 │ .local v1, "e":Ljavax/net/ssl/SSLException; │ invoke-direct {p0, v1}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->report(Ljava/lang/Exception;)V │ │ - .line 406 │ + .line 408 │ .end local v1 # "e":Ljavax/net/ssl/SSLException; │ :goto_2 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ if-ne v3, v6, :cond_5 │ @@ -1476,79 +1514,79 @@ │ │ move-result v6 │ │ if-eqz v6, :cond_2 │ │ goto :goto_1 │ │ - .line 389 │ + .line 391 │ .restart local v0 # "arr":[Ljava/nio/ByteBuffer; │ :cond_6 │ :try_start_1 │ iget-object v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->writeList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ if-lez v6, :cond_7 │ │ - .line 390 │ + .line 392 │ iget-object v6, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->mSink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v7, p0, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->writeList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v7}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 391 │ + .line 393 │ :cond_7 │ invoke-virtual {v5}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v2 │ │ - .line 392 │ + .line 394 │ .local v2, "previousCapacity":I │ const/4 v5, 0x0 │ │ - .line 393 │ + .line 395 │ invoke-virtual {v4}, Ljavax/net/ssl/SSLEngineResult;->getStatus()Ljavax/net/ssl/SSLEngineResult$Status; │ │ move-result-object v6 │ │ sget-object v7, Ljavax/net/ssl/SSLEngineResult$Status;->BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status; │ │ if-ne v6, v7, :cond_8 │ │ - .line 394 │ + .line 396 │ mul-int/lit8 v6, v2, 0x2 │ │ invoke-static {v6}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ - .line 395 │ + .line 397 │ const/4 v3, -0x1 │ │ goto :goto_2 │ │ - .line 398 │ + .line 400 │ :cond_8 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ invoke-virtual {p0, v6}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->calculateAlloc(I)I │ │ move-result v6 │ │ invoke-static {v6}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ - .line 399 │ + .line 401 │ invoke-virtual {v4}, Ljavax/net/ssl/SSLEngineResult;->getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus; │ │ move-result-object v6 │ │ invoke-direct {p0, v6}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->handleHandshakeStatus(Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;)V │ :try_end_1 │ .catch Ljavax/net/ssl/SSLException; {:try_start_1 .. :try_end_1} :catch_0 ├── smali/com/koushikdutta/async/AsyncServer$10.smali │ @@ -1,116 +1,86 @@ │ .class Lcom/koushikdutta/async/AsyncServer$10; │ -.super Ljava/lang/Object; │ +.super Lcom/koushikdutta/async/future/TransformFuture; │ .source "AsyncServer.java" │ │ -# interfaces │ -.implements Ljava/lang/Runnable; │ - │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->connectDatagram(Ljava/lang/String;I)Lcom/koushikdutta/async/AsyncDatagramSocket; │ + value = Lcom/koushikdutta/async/AsyncServer;->getByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Lcom/koushikdutta/async/future/TransformFuture", │ + "<", │ + "Ljava/net/InetAddress;", │ + "[", │ + "Ljava/net/InetAddress;", │ + ">;" │ + } │ +.end annotation │ + │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ │ -.field final synthetic val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ - │ -.field final synthetic val$host:Ljava/lang/String; │ - │ -.field final synthetic val$port:I │ - │ -.field final synthetic val$socket:Ljava/nio/channels/DatagramChannel; │ - │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;ILcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 458 │ + .line 473 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$10;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$host:Ljava/lang/String; │ - │ - iput p3, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$port:I │ - │ - iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ - │ - iput-object p5, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$socket:Ljava/nio/channels/DatagramChannel; │ - │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public run()V │ - .locals 5 │ +.method protected bridge synthetic transform(Ljava/lang/Object;)V │ + .locals 0 │ + .param p1, "x0" # Ljava/lang/Object; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/lang/Exception; │ + } │ + .end annotation │ │ .prologue │ - .line 462 │ - :try_start_0 │ - new-instance v1, Ljava/net/InetSocketAddress; │ - │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$host:Ljava/lang/String; │ - │ - iget v3, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$port:I │ + .line 473 │ + check-cast p1, [Ljava/net/InetAddress; │ │ - invoke-direct {v1, v2, v3}, Ljava/net/InetSocketAddress;->(Ljava/lang/String;I)V │ + .end local p1 # "x0":Ljava/lang/Object; │ + invoke-virtual {p0, p1}, Lcom/koushikdutta/async/AsyncServer$10;->transform([Ljava/net/InetAddress;)V │ │ - .line 463 │ - .local v1, "remote":Ljava/net/SocketAddress; │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$10;->this$0:Lcom/koushikdutta/async/AsyncServer; │ - │ - iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ - │ - # invokes: Lcom/koushikdutta/async/AsyncServer;->handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ - invoke-static {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->access$600(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ - │ - .line 464 │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$socket:Ljava/nio/channels/DatagramChannel; │ - │ - invoke-virtual {v2, v1}, Ljava/nio/channels/DatagramChannel;->connect(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel; │ - :try_end_0 │ - .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ - │ - .line 470 │ - .end local v1 # "remote":Ljava/net/SocketAddress; │ - :goto_0 │ return-void │ +.end method │ │ - .line 466 │ - :catch_0 │ - move-exception v0 │ - │ - .line 467 │ - .local v0, "e":Ljava/io/IOException; │ - const-string v2, "NIO" │ - │ - const-string v3, "Datagram error" │ - │ - invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ - │ - .line 468 │ - const/4 v2, 0x1 │ - │ - new-array v2, v2, [Ljava/io/Closeable; │ - │ - const/4 v3, 0x0 │ +.method protected transform([Ljava/net/InetAddress;)V │ + .locals 1 │ + .param p1, "result" # [Ljava/net/InetAddress; │ + .annotation system Ldalvik/annotation/Throws; │ + value = { │ + Ljava/lang/Exception; │ + } │ + .end annotation │ │ - iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$10;->val$socket:Ljava/nio/channels/DatagramChannel; │ + .prologue │ + .line 476 │ + const/4 v0, 0x0 │ │ - aput-object v4, v2, v3 │ + aget-object v0, p1, v0 │ │ - invoke-static {v2}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ + invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer$10;->setComplete(Ljava/lang/Object;)Z │ │ - goto :goto_0 │ + .line 477 │ + return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$11.smali │ @@ -4,125 +4,114 @@ │ │ # interfaces │ .implements Ljava/lang/Runnable; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->openDatagram(Ljava/net/SocketAddress;Z)Lcom/koushikdutta/async/AsyncDatagramSocket; │ + value = Lcom/koushikdutta/async/AsyncServer;->connectDatagram(Ljava/lang/String;I)Lcom/koushikdutta/async/AsyncDatagramSocket; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ │ -.field final synthetic val$address:Ljava/net/SocketAddress; │ - │ .field final synthetic val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ -.field final synthetic val$reuseAddress:Z │ +.field final synthetic val$host:Ljava/lang/String; │ + │ +.field final synthetic val$port:I │ │ .field final synthetic val$socket:Ljava/nio/channels/DatagramChannel; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;ZLjava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;Lcom/koushikdutta/async/AsyncDatagramSocket;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;ILcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 486 │ + .line 488 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$11;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - iput-boolean p2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$reuseAddress:Z │ + iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$host:Ljava/lang/String; │ │ - iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ + iput p3, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$port:I │ │ - iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$address:Ljava/net/SocketAddress; │ + iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ - iput-object p5, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ + iput-object p5, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ - .locals 4 │ + .locals 5 │ │ .prologue │ - .line 490 │ - :try_start_0 │ - iget-boolean v1, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$reuseAddress:Z │ - │ - if-eqz v1, :cond_0 │ - │ - .line 491 │ - iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ - │ - invoke-virtual {v1}, Ljava/nio/channels/DatagramChannel;->socket()Ljava/net/DatagramSocket; │ - │ - move-result-object v1 │ - │ - iget-boolean v2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$reuseAddress:Z │ - │ - invoke-virtual {v1, v2}, Ljava/net/DatagramSocket;->setReuseAddress(Z)V │ - │ .line 492 │ - :cond_0 │ - iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ - │ - invoke-virtual {v1}, Ljava/nio/channels/DatagramChannel;->socket()Ljava/net/DatagramSocket; │ + :try_start_0 │ + new-instance v1, Ljava/net/InetSocketAddress; │ │ - move-result-object v1 │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$host:Ljava/lang/String; │ │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$address:Ljava/net/SocketAddress; │ + iget v3, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$port:I │ │ - invoke-virtual {v1, v2}, Ljava/net/DatagramSocket;->bind(Ljava/net/SocketAddress;)V │ + invoke-direct {v1, v2, v3}, Ljava/net/InetSocketAddress;->(Ljava/lang/String;I)V │ │ .line 493 │ - iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$11;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + .local v1, "remote":Ljava/net/SocketAddress; │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$11;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ + iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ # invokes: Lcom/koushikdutta/async/AsyncServer;->handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ - invoke-static {v1, v2}, Lcom/koushikdutta/async/AsyncServer;->access$600(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ + invoke-static {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->access$700(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ + │ + .line 494 │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ + │ + invoke-virtual {v2, v1}, Ljava/nio/channels/DatagramChannel;->connect(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel; │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 499 │ + .line 500 │ + .end local v1 # "remote":Ljava/net/SocketAddress; │ :goto_0 │ return-void │ │ - .line 495 │ + .line 496 │ :catch_0 │ move-exception v0 │ │ - .line 496 │ + .line 497 │ .local v0, "e":Ljava/io/IOException; │ - const-string v1, "NIO" │ + const-string v2, "NIO" │ │ - const-string v2, "Datagram error" │ + const-string v3, "Datagram error" │ │ - invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ - .line 497 │ - const/4 v1, 0x1 │ + .line 498 │ + const/4 v2, 0x1 │ │ - new-array v1, v1, [Ljava/io/Closeable; │ + new-array v2, v2, [Ljava/io/Closeable; │ │ - const/4 v2, 0x0 │ + const/4 v3, 0x0 │ │ - iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ + iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$11;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ - aput-object v3, v1, v2 │ + aput-object v4, v2, v3 │ │ - invoke-static {v1}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ + invoke-static {v2}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$12.smali │ @@ -4,86 +4,119 @@ │ │ # interfaces │ .implements Ljava/lang/Runnable; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->connectDatagram(Ljava/net/SocketAddress;)Lcom/koushikdutta/async/AsyncDatagramSocket; │ + value = Lcom/koushikdutta/async/AsyncServer;->openDatagram(Ljava/net/SocketAddress;Z)Lcom/koushikdutta/async/AsyncDatagramSocket; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ │ +.field final synthetic val$address:Ljava/net/SocketAddress; │ + │ .field final synthetic val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ -.field final synthetic val$remote:Ljava/net/SocketAddress; │ +.field final synthetic val$reuseAddress:Z │ │ .field final synthetic val$socket:Ljava/nio/channels/DatagramChannel; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer;ZLjava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;Lcom/koushikdutta/async/AsyncDatagramSocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 511 │ + .line 516 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$12;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ + iput-boolean p2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$reuseAddress:Z │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ - iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$remote:Ljava/net/SocketAddress; │ + iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$address:Ljava/net/SocketAddress; │ + │ + iput-object p5, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 4 │ │ .prologue │ - .line 515 │ + .line 520 │ :try_start_0 │ - iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$12;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + iget-boolean v1, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$reuseAddress:Z │ │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ + if-eqz v1, :cond_0 │ │ - # invokes: Lcom/koushikdutta/async/AsyncServer;->handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ - invoke-static {v1, v2}, Lcom/koushikdutta/async/AsyncServer;->access$600(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ + .line 521 │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ - .line 516 │ + invoke-virtual {v1}, Ljava/nio/channels/DatagramChannel;->socket()Ljava/net/DatagramSocket; │ + │ + move-result-object v1 │ + │ + iget-boolean v2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$reuseAddress:Z │ + │ + invoke-virtual {v1, v2}, Ljava/net/DatagramSocket;->setReuseAddress(Z)V │ + │ + .line 522 │ + :cond_0 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$remote:Ljava/net/SocketAddress; │ + invoke-virtual {v1}, Ljava/nio/channels/DatagramChannel;->socket()Ljava/net/DatagramSocket; │ │ - invoke-virtual {v1, v2}, Ljava/nio/channels/DatagramChannel;->connect(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel; │ + move-result-object v1 │ + │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$address:Ljava/net/SocketAddress; │ + │ + invoke-virtual {v1, v2}, Ljava/net/DatagramSocket;->bind(Ljava/net/SocketAddress;)V │ + │ + .line 523 │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$12;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ + │ + # invokes: Lcom/koushikdutta/async/AsyncServer;->handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ + invoke-static {v1, v2}, Lcom/koushikdutta/async/AsyncServer;->access$700(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 521 │ + .line 529 │ :goto_0 │ return-void │ │ - .line 518 │ + .line 525 │ :catch_0 │ move-exception v0 │ │ - .line 519 │ + .line 526 │ .local v0, "e":Ljava/io/IOException; │ + const-string v1, "NIO" │ + │ + const-string v2, "Datagram error" │ + │ + invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + │ + .line 527 │ const/4 v1, 0x1 │ │ new-array v1, v1, [Ljava/io/Closeable; │ │ const/4 v2, 0x0 │ │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer$12;->val$socket:Ljava/nio/channels/DatagramChannel; ├── smali/com/koushikdutta/async/AsyncServer$13.smali │ @@ -1,61 +1,97 @@ │ .class Lcom/koushikdutta/async/AsyncServer$13; │ -.super Ljava/lang/Thread; │ +.super Ljava/lang/Object; │ .source "AsyncServer.java" │ │ +# interfaces │ +.implements Ljava/lang/Runnable; │ + │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->run(Z)V │ + value = Lcom/koushikdutta/async/AsyncServer;->connectDatagram(Ljava/net/SocketAddress;)Lcom/koushikdutta/async/AsyncDatagramSocket; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ │ -.field final synthetic val$queue:Ljava/util/PriorityQueue; │ +.field final synthetic val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ + │ +.field final synthetic val$remote:Ljava/net/SocketAddress; │ │ -.field final synthetic val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ +.field final synthetic val$socket:Ljava/nio/channels/DatagramChannel; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;)V │ .locals 0 │ - .param p2, "x0" # Ljava/lang/String; │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 567 │ + .line 541 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$13;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ + iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ - iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$queue:Ljava/util/PriorityQueue; │ + iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ - invoke-direct {p0, p2}, Ljava/lang/Thread;->(Ljava/lang/String;)V │ + iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$remote:Ljava/net/SocketAddress; │ + │ + invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ - .locals 3 │ + .locals 4 │ │ .prologue │ - .line 569 │ - iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$13;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + .line 545 │ + :try_start_0 │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$13;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$handler:Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ - iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ + # invokes: Lcom/koushikdutta/async/AsyncServer;->handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ + invoke-static {v1, v2}, Lcom/koushikdutta/async/AsyncServer;->access$700(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$queue:Ljava/util/PriorityQueue; │ + .line 546 │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$socket:Ljava/nio/channels/DatagramChannel; │ │ - # invokes: Lcom/koushikdutta/async/AsyncServer;->run(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ - invoke-static {v0, v1, v2}, Lcom/koushikdutta/async/AsyncServer;->access$700(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$remote:Ljava/net/SocketAddress; │ │ - .line 570 │ + invoke-virtual {v1, v2}, Ljava/nio/channels/DatagramChannel;->connect(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel; │ + :try_end_0 │ + .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ + │ + .line 551 │ + :goto_0 │ return-void │ + │ + .line 548 │ + :catch_0 │ + move-exception v0 │ + │ + .line 549 │ + .local v0, "e":Ljava/io/IOException; │ + const/4 v1, 0x1 │ + │ + new-array v1, v1, [Ljava/io/Closeable; │ + │ + const/4 v2, 0x0 │ + │ + iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer$13;->val$socket:Ljava/nio/channels/DatagramChannel; │ + │ + aput-object v3, v1, v2 │ + │ + invoke-static {v1}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ + │ + goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$14.smali │ @@ -1,158 +1,62 @@ │ .class Lcom/koushikdutta/async/AsyncServer$14; │ -.super Ljava/lang/Object; │ +.super Ljava/lang/Thread; │ .source "AsyncServer.java" │ │ -# interfaces │ -.implements Ljava/lang/Runnable; │ - │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->dump()V │ + value = Lcom/koushikdutta/async/AsyncServer;->run(Z)V │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ │ +.field final synthetic val$queue:Ljava/util/PriorityQueue; │ + │ +.field final synthetic val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ + │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ + .param p2, "x0" # Ljava/lang/String; │ │ .prologue │ - .line 835 │ + .line 597 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$14;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ + iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$14;->val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ + │ + iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$14;->val$queue:Ljava/util/PriorityQueue; │ + │ + invoke-direct {p0, p2}, Ljava/lang/Thread;->(Ljava/lang/String;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ - .locals 5 │ + .locals 3 │ │ .prologue │ - .line 838 │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$14;->this$0:Lcom/koushikdutta/async/AsyncServer; │ - │ - # getter for: Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ - invoke-static {v2}, Lcom/koushikdutta/async/AsyncServer;->access$300(Lcom/koushikdutta/async/AsyncServer;)Lcom/koushikdutta/async/SelectorWrapper; │ - │ - move-result-object v2 │ + .line 599 │ + iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$14;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - if-nez v2, :cond_1 │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$14;->val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 839 │ - const-string v2, "NIO" │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$14;->val$queue:Ljava/util/PriorityQueue; │ │ - const-string v3, "Server dump not possible. No selector?" │ + # invokes: Lcom/koushikdutta/async/AsyncServer;->run(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ + invoke-static {v0, v1, v2}, Lcom/koushikdutta/async/AsyncServer;->access$800(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ │ - invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ - │ - .line 847 │ - :cond_0 │ + .line 600 │ return-void │ - │ - .line 842 │ - :cond_1 │ - const-string v2, "NIO" │ - │ - new-instance v3, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v4, "Key Count: " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$14;->this$0:Lcom/koushikdutta/async/AsyncServer; │ - │ - # getter for: Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ - invoke-static {v4}, Lcom/koushikdutta/async/AsyncServer;->access$300(Lcom/koushikdutta/async/AsyncServer;)Lcom/koushikdutta/async/SelectorWrapper; │ - │ - move-result-object v4 │ - │ - invoke-virtual {v4}, Lcom/koushikdutta/async/SelectorWrapper;->keys()Ljava/util/Set; │ - │ - move-result-object v4 │ - │ - invoke-interface {v4}, Ljava/util/Set;->size()I │ - │ - move-result v4 │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v3 │ - │ - invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ - │ - .line 844 │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$14;->this$0:Lcom/koushikdutta/async/AsyncServer; │ - │ - # getter for: Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ - invoke-static {v2}, Lcom/koushikdutta/async/AsyncServer;->access$300(Lcom/koushikdutta/async/AsyncServer;)Lcom/koushikdutta/async/SelectorWrapper; │ - │ - move-result-object v2 │ - │ - invoke-virtual {v2}, Lcom/koushikdutta/async/SelectorWrapper;->keys()Ljava/util/Set; │ - │ - move-result-object v2 │ - │ - invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ - │ - move-result-object v0 │ - │ - .local v0, "i$":Ljava/util/Iterator; │ - :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ - │ - move-result v2 │ - │ - if-eqz v2, :cond_0 │ - │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ - │ - move-result-object v1 │ - │ - check-cast v1, Ljava/nio/channels/SelectionKey; │ - │ - .line 845 │ - .local v1, "key":Ljava/nio/channels/SelectionKey; │ - const-string v2, "NIO" │ - │ - new-instance v3, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v4, "Key: " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ - │ - move-result-object v3 │ - │ - invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ - │ - goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$1.smali │ @@ -22,45 +22,45 @@ │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/SelectorWrapper;)V │ .locals 0 │ │ .prologue │ - .line 130 │ + .line 133 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$1;->val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 134 │ + .line 137 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$1;->val$selector:Lcom/koushikdutta/async/SelectorWrapper; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/SelectorWrapper;->wakeupOnce()V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 139 │ + .line 142 │ :goto_0 │ return-void │ │ - .line 136 │ + .line 139 │ :catch_0 │ move-exception v0 │ │ - .line 137 │ + .line 140 │ .local v0, "e":Ljava/lang/Exception; │ const-string v1, "NIO" │ │ const-string v2, "Selector Exception? L Preview?" │ │ invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I ├── smali/com/koushikdutta/async/AsyncServer$2.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$e:Ljava/lang/Exception; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/callback/CompletedCallback;Ljava/lang/Exception;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 175 │ + .line 191 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$2;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$2;->val$callback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$2;->val$e:Ljava/lang/Exception; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -44,17 +45,17 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 2 │ │ .prologue │ - .line 178 │ + .line 194 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$2;->val$callback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$2;->val$e:Ljava/lang/Exception; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/callback/CompletedCallback;->onCompleted(Ljava/lang/Exception;)V │ │ - .line 179 │ + .line 195 │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$3.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$semaphore:Ljava/util/concurrent/Semaphore; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/Runnable;Ljava/util/concurrent/Semaphore;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 191 │ + .line 207 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$3;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$3;->val$runnable:Ljava/lang/Runnable; │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$3;->val$semaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -44,20 +45,20 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 1 │ │ .prologue │ - .line 194 │ + .line 210 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$3;->val$runnable:Ljava/lang/Runnable; │ │ invoke-interface {v0}, Ljava/lang/Runnable;->run()V │ │ - .line 195 │ + .line 211 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$3;->val$semaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v0}, Ljava/util/concurrent/Semaphore;->release()V │ │ - .line 196 │ + .line 212 │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$4.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$semaphore:Ljava/util/concurrent/Semaphore; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/concurrent/Semaphore;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 248 │ + .line 264 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$4;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$4;->val$currentSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$4;->val$semaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -44,21 +45,21 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 1 │ │ .prologue │ - .line 251 │ + .line 267 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$4;->val$currentSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ # invokes: Lcom/koushikdutta/async/AsyncServer;->shutdownEverything(Lcom/koushikdutta/async/SelectorWrapper;)V │ invoke-static {v0}, Lcom/koushikdutta/async/AsyncServer;->access$100(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ - .line 252 │ + .line 268 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$4;->val$semaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v0}, Ljava/util/concurrent/Semaphore;->release()V │ │ - .line 253 │ + .line 269 │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$5$1.smali │ @@ -26,17 +26,18 @@ │ │ .field final synthetic val$wrapper:Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer$5;Ljava/nio/channels/ServerSocketChannel;Lcom/koushikdutta/async/ServerSocketChannelWrapper;Ljava/nio/channels/SelectionKey;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/AsyncServer$5; │ │ .prologue │ - .line 302 │ + .line 318 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->this$1:Lcom/koushikdutta/async/AsyncServer$5; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->val$server:Ljava/nio/channels/ServerSocketChannel; │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->val$wrapper:Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ │ iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->val$key:Ljava/nio/channels/SelectionKey; │ @@ -48,15 +49,15 @@ │ │ │ # virtual methods │ .method public getLocalPort()I │ .locals 1 │ │ .prologue │ - .line 305 │ + .line 321 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->val$server:Ljava/nio/channels/ServerSocketChannel; │ │ invoke-virtual {v0}, Ljava/nio/channels/ServerSocketChannel;->socket()Ljava/net/ServerSocket; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/net/ServerSocket;->getLocalPort()I │ @@ -66,38 +67,38 @@ │ return v0 │ .end method │ │ .method public stop()V │ .locals 3 │ │ .prologue │ - .line 310 │ + .line 326 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/io/Closeable; │ │ const/4 v1, 0x0 │ │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->val$wrapper:Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ │ aput-object v2, v0, v1 │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 312 │ + .line 328 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$5$1;->val$key:Ljava/nio/channels/SelectionKey; │ │ invoke-virtual {v0}, Ljava/nio/channels/SelectionKey;->cancel()V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 316 │ + .line 332 │ :goto_0 │ return-void │ │ - .line 314 │ + .line 330 │ :catch_0 │ move-exception v0 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$5.smali │ @@ -28,17 +28,18 @@ │ │ .field final synthetic val$port:I │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/net/InetAddress;ILcom/koushikdutta/async/callback/ListenCallback;Lcom/koushikdutta/async/AsyncServer$ObjectHolder;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 283 │ + .line 299 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$5;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$host:Ljava/net/InetAddress; │ │ iput p3, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$port:I │ │ iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$handler:Lcom/koushikdutta/async/callback/ListenCallback; │ @@ -52,68 +53,68 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 11 │ │ .prologue │ - .line 286 │ + .line 302 │ const/4 v0, 0x0 │ │ - .line 287 │ + .line 303 │ .local v0, "closeableServer":Ljava/nio/channels/ServerSocketChannel; │ const/4 v1, 0x0 │ │ - .line 289 │ + .line 305 │ .local v1, "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ :try_start_0 │ invoke-static {}, Ljava/nio/channels/ServerSocketChannel;->open()Ljava/nio/channels/ServerSocketChannel; │ │ move-result-object v0 │ │ - .line 290 │ + .line 306 │ new-instance v2, Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ │ invoke-direct {v2, v0}, Lcom/koushikdutta/async/ServerSocketChannelWrapper;->(Ljava/nio/channels/ServerSocketChannel;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 292 │ + .line 308 │ .end local v1 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .local v2, "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ move-object v6, v0 │ │ - .line 293 │ + .line 309 │ .local v6, "server":Ljava/nio/channels/ServerSocketChannel; │ move-object v7, v2 │ │ - .line 295 │ + .line 311 │ .local v7, "wrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ :try_start_1 │ iget-object v8, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$host:Ljava/net/InetAddress; │ │ if-nez v8, :cond_0 │ │ - .line 296 │ + .line 312 │ new-instance v4, Ljava/net/InetSocketAddress; │ │ iget v8, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$port:I │ │ invoke-direct {v4, v8}, Ljava/net/InetSocketAddress;->(I)V │ │ - .line 299 │ + .line 315 │ .local v4, "isa":Ljava/net/InetSocketAddress; │ :goto_0 │ invoke-virtual {v6}, Ljava/nio/channels/ServerSocketChannel;->socket()Ljava/net/ServerSocket; │ │ move-result-object v8 │ │ invoke-virtual {v8, v4}, Ljava/net/ServerSocket;->bind(Ljava/net/SocketAddress;)V │ │ - .line 300 │ + .line 316 │ iget-object v8, p0, Lcom/koushikdutta/async/AsyncServer$5;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ # getter for: Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ invoke-static {v8}, Lcom/koushikdutta/async/AsyncServer;->access$300(Lcom/koushikdutta/async/AsyncServer;)Lcom/koushikdutta/async/SelectorWrapper; │ │ move-result-object v8 │ │ @@ -121,46 +122,46 @@ │ │ move-result-object v8 │ │ invoke-virtual {v7, v8}, Lcom/koushikdutta/async/ServerSocketChannelWrapper;->register(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey; │ │ move-result-object v5 │ │ - .line 301 │ + .line 317 │ .local v5, "key":Ljava/nio/channels/SelectionKey; │ iget-object v8, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$handler:Lcom/koushikdutta/async/callback/ListenCallback; │ │ invoke-virtual {v5, v8}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 302 │ + .line 318 │ iget-object v8, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$handler:Lcom/koushikdutta/async/callback/ListenCallback; │ │ iget-object v9, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$holder:Lcom/koushikdutta/async/AsyncServer$ObjectHolder; │ │ new-instance v10, Lcom/koushikdutta/async/AsyncServer$5$1; │ │ invoke-direct {v10, p0, v6, v7, v5}, Lcom/koushikdutta/async/AsyncServer$5$1;->(Lcom/koushikdutta/async/AsyncServer$5;Ljava/nio/channels/ServerSocketChannel;Lcom/koushikdutta/async/ServerSocketChannelWrapper;Ljava/nio/channels/SelectionKey;)V │ │ iput-object v10, v9, Lcom/koushikdutta/async/AsyncServer$ObjectHolder;->held:Ljava/lang/Object; │ │ invoke-interface {v8, v10}, Lcom/koushikdutta/async/callback/ListenCallback;->onListening(Lcom/koushikdutta/async/AsyncServerSocket;)V │ │ move-object v1, v2 │ │ - .line 324 │ + .line 340 │ .end local v2 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .end local v4 # "isa":Ljava/net/InetSocketAddress; │ .end local v5 # "key":Ljava/nio/channels/SelectionKey; │ .end local v6 # "server":Ljava/nio/channels/ServerSocketChannel; │ .end local v7 # "wrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .restart local v1 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ :goto_1 │ return-void │ │ - .line 298 │ + .line 314 │ .end local v1 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .restart local v2 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .restart local v6 # "server":Ljava/nio/channels/ServerSocketChannel; │ .restart local v7 # "wrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ :cond_0 │ new-instance v4, Ljava/net/InetSocketAddress; │ │ @@ -171,55 +172,55 @@ │ invoke-direct {v4, v8, v9}, Ljava/net/InetSocketAddress;->(Ljava/net/InetAddress;I)V │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1 │ │ .restart local v4 # "isa":Ljava/net/InetSocketAddress; │ goto :goto_0 │ │ - .line 319 │ + .line 335 │ .end local v2 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .end local v4 # "isa":Ljava/net/InetSocketAddress; │ .end local v6 # "server":Ljava/nio/channels/ServerSocketChannel; │ .end local v7 # "wrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .restart local v1 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ :catch_0 │ move-exception v3 │ │ - .line 320 │ + .line 336 │ .local v3, "e":Ljava/io/IOException; │ :goto_2 │ const-string v8, "NIO" │ │ const-string v9, "wtf" │ │ invoke-static {v8, v9, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ - .line 321 │ + .line 337 │ const/4 v8, 0x2 │ │ new-array v8, v8, [Ljava/io/Closeable; │ │ const/4 v9, 0x0 │ │ aput-object v1, v8, v9 │ │ const/4 v9, 0x1 │ │ aput-object v0, v8, v9 │ │ invoke-static {v8}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 322 │ + .line 338 │ iget-object v8, p0, Lcom/koushikdutta/async/AsyncServer$5;->val$handler:Lcom/koushikdutta/async/callback/ListenCallback; │ │ invoke-interface {v8, v3}, Lcom/koushikdutta/async/callback/ListenCallback;->onCompleted(Ljava/lang/Exception;)V │ │ goto :goto_1 │ │ - .line 319 │ + .line 335 │ .end local v1 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .end local v3 # "e":Ljava/io/IOException; │ .restart local v2 # "closeableWrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ .restart local v6 # "server":Ljava/nio/channels/ServerSocketChannel; │ .restart local v7 # "wrapper":Lcom/koushikdutta/async/ServerSocketChannelWrapper; │ :catch_1 │ move-exception v3 ├── smali/com/koushikdutta/async/AsyncServer$6.smali │ @@ -26,17 +26,18 @@ │ │ .field final synthetic val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncServer$ConnectFuture;Lcom/koushikdutta/async/callback/ConnectCallback;Ljava/net/InetSocketAddress;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 349 │ + .line 365 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$6;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$address:Ljava/net/InetSocketAddress; │ @@ -50,64 +51,64 @@ │ # virtual methods │ .method public run()V │ .locals 7 │ │ .prologue │ const/4 v6, 0x0 │ │ - .line 352 │ + .line 368 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->isCancelled()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - .line 371 │ + .line 387 │ :goto_0 │ return-void │ │ - .line 355 │ + .line 371 │ :cond_0 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ iget-object v5, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ iput-object v5, v4, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ - .line 356 │ + .line 372 │ const/4 v0, 0x0 │ │ - .line 357 │ + .line 373 │ .local v0, "ckey":Ljava/nio/channels/SelectionKey; │ const/4 v2, 0x0 │ │ - .line 359 │ + .line 375 │ .local v2, "socket":Ljava/nio/channels/SocketChannel; │ :try_start_0 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ invoke-static {}, Ljava/nio/channels/SocketChannel;->open()Ljava/nio/channels/SocketChannel; │ │ move-result-object v3 │ │ iput-object v3, v4, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->socket:Ljava/nio/channels/SocketChannel; │ :try_end_0 │ .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 360 │ + .line 376 │ .end local v2 # "socket":Ljava/nio/channels/SocketChannel; │ .local v3, "socket":Ljava/nio/channels/SocketChannel; │ const/4 v4, 0x0 │ │ :try_start_1 │ invoke-virtual {v3, v4}, Ljava/nio/channels/SocketChannel;->configureBlocking(Z)Ljava/nio/channels/SelectableChannel; │ │ - .line 361 │ + .line 377 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ # getter for: Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ invoke-static {v4}, Lcom/koushikdutta/async/AsyncServer;->access$300(Lcom/koushikdutta/async/AsyncServer;)Lcom/koushikdutta/async/SelectorWrapper; │ │ move-result-object v4 │ │ @@ -117,67 +118,67 @@ │ │ const/16 v5, 0x8 │ │ invoke-virtual {v3, v4, v5}, Ljava/nio/channels/SocketChannel;->register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey; │ │ move-result-object v0 │ │ - .line 362 │ + .line 378 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ invoke-virtual {v0, v4}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 363 │ + .line 379 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$address:Ljava/net/InetSocketAddress; │ │ invoke-virtual {v3, v4}, Ljava/nio/channels/SocketChannel;->connect(Ljava/net/SocketAddress;)Z │ :try_end_1 │ .catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_1} :catch_1 │ │ move-object v2, v3 │ │ - .line 370 │ + .line 386 │ .end local v3 # "socket":Ljava/nio/channels/SocketChannel; │ .restart local v2 # "socket":Ljava/nio/channels/SocketChannel; │ goto :goto_0 │ │ - .line 365 │ + .line 381 │ :catch_0 │ move-exception v1 │ │ - .line 366 │ + .line 382 │ .local v1, "e":Ljava/lang/Throwable; │ :goto_1 │ if-eqz v0, :cond_1 │ │ - .line 367 │ + .line 383 │ invoke-virtual {v0}, Ljava/nio/channels/SelectionKey;->cancel()V │ │ - .line 368 │ + .line 384 │ :cond_1 │ const/4 v4, 0x1 │ │ new-array v4, v4, [Ljava/io/Closeable; │ │ aput-object v2, v4, v6 │ │ invoke-static {v4}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 369 │ + .line 385 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer$6;->val$cancel:Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ new-instance v5, Ljava/lang/RuntimeException; │ │ invoke-direct {v5, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->setComplete(Ljava/lang/Exception;)Z │ │ goto :goto_0 │ │ - .line 365 │ + .line 381 │ .end local v1 # "e":Ljava/lang/Throwable; │ .end local v2 # "socket":Ljava/nio/channels/SocketChannel; │ .restart local v3 # "socket":Ljava/nio/channels/SocketChannel; │ :catch_1 │ move-exception v1 │ │ move-object v2, v3 ├── smali/com/koushikdutta/async/AsyncServer$7.smali │ @@ -36,17 +36,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/callback/ConnectCallback;Lcom/koushikdutta/async/future/SimpleFuture;Ljava/net/InetSocketAddress;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 386 │ + .line 402 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$7;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$7;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$7;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iput-object p4, p0, Lcom/koushikdutta/async/AsyncServer$7;->val$remote:Ljava/net/InetSocketAddress; │ @@ -60,49 +61,49 @@ │ # virtual methods │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Exception; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 386 │ + .line 402 │ check-cast p2, Ljava/net/InetAddress; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer$7;->onCompleted(Ljava/lang/Exception;Ljava/net/InetAddress;)V │ │ return-void │ .end method │ │ .method public onCompleted(Ljava/lang/Exception;Ljava/net/InetAddress;)V │ .locals 4 │ .param p1, "e" # Ljava/lang/Exception; │ .param p2, "result" # Ljava/net/InetAddress; │ │ .prologue │ - .line 389 │ + .line 405 │ if-eqz p1, :cond_0 │ │ - .line 390 │ + .line 406 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$7;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, p1, v1}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 391 │ + .line 407 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$7;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ │ - .line 396 │ + .line 412 │ :goto_0 │ return-void │ │ - .line 395 │ + .line 411 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$7;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$7;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ new-instance v2, Ljava/net/InetSocketAddress; ├── smali/com/koushikdutta/async/AsyncServer$8.smali │ @@ -1,114 +1,115 @@ │ -.class Lcom/koushikdutta/async/AsyncServer$8; │ +.class final Lcom/koushikdutta/async/AsyncServer$8; │ .super Ljava/lang/Object; │ .source "AsyncServer.java" │ │ # interfaces │ -.implements Ljava/lang/Runnable; │ +.implements Ljava/util/Comparator; │ │ │ # annotations │ -.annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->getAllByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ +.annotation system Ldalvik/annotation/EnclosingClass; │ + value = Lcom/koushikdutta/async/AsyncServer; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ - accessFlags = 0x0 │ + accessFlags = 0x8 │ name = null │ .end annotation │ │ - │ -# instance fields │ -.field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ - │ -.field final synthetic val$host:Ljava/lang/String; │ - │ -.field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Ljava/lang/Object;", │ + "Ljava/util/Comparator", │ + "<", │ + "Ljava/net/InetAddress;", │ + ">;" │ + } │ +.end annotation │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ +.method constructor ()V │ .locals 0 │ │ .prologue │ - .line 415 │ - iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$8;->this$0:Lcom/koushikdutta/async/AsyncServer; │ - │ - iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$8;->val$host:Ljava/lang/String; │ - │ - iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$8;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ - │ + .line 428 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public run()V │ - .locals 4 │ +.method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I │ + .locals 1 │ + .param p1, "x0" # Ljava/lang/Object; │ + .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 419 │ - :try_start_0 │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$8;->val$host:Ljava/lang/String; │ + .line 428 │ + check-cast p1, Ljava/net/InetAddress; │ │ - invoke-static {v2}, Ljava/net/InetAddress;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress; │ + .end local p1 # "x0":Ljava/lang/Object; │ + check-cast p2, Ljava/net/InetAddress; │ │ - move-result-object v1 │ + .end local p2 # "x1":Ljava/lang/Object; │ + invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer$8;->compare(Ljava/net/InetAddress;Ljava/net/InetAddress;)I │ │ - .line 420 │ - .local v1, "result":[Ljava/net/InetAddress; │ - if-eqz v1, :cond_0 │ + move-result v0 │ │ - array-length v2, v1 │ + return v0 │ +.end method │ │ - if-nez v2, :cond_1 │ +.method public compare(Ljava/net/InetAddress;Ljava/net/InetAddress;)I │ + .locals 2 │ + .param p1, "lhs" # Ljava/net/InetAddress; │ + .param p2, "rhs" # Ljava/net/InetAddress; │ │ - .line 421 │ - :cond_0 │ - new-instance v2, Lcom/koushikdutta/async/HostnameResolutionException; │ + .prologue │ + const/4 v0, 0x0 │ │ - const-string v3, "no addresses for host" │ + .line 431 │ + instance-of v1, p1, Ljava/net/Inet4Address; │ │ - invoke-direct {v2, v3}, Lcom/koushikdutta/async/HostnameResolutionException;->(Ljava/lang/String;)V │ + if-eqz v1, :cond_1 │ │ - throw v2 │ - :try_end_0 │ - .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ + instance-of v1, p2, Ljava/net/Inet4Address; │ │ - .line 428 │ - .end local v1 # "result":[Ljava/net/InetAddress; │ - :catch_0 │ - move-exception v0 │ + if-eqz v1, :cond_1 │ │ - .line 429 │ - .local v0, "e":Ljava/lang/Exception; │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$8;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + .line 437 │ + :cond_0 │ + :goto_0 │ + return v0 │ │ - new-instance v3, Lcom/koushikdutta/async/AsyncServer$8$2; │ + .line 433 │ + :cond_1 │ + instance-of v1, p1, Ljava/net/Inet6Address; │ │ - invoke-direct {v3, p0, v0}, Lcom/koushikdutta/async/AsyncServer$8$2;->(Lcom/koushikdutta/async/AsyncServer$8;Ljava/lang/Exception;)V │ + if-eqz v1, :cond_2 │ │ - invoke-virtual {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ + instance-of v1, p2, Ljava/net/Inet6Address; │ │ - .line 436 │ - .end local v0 # "e":Ljava/lang/Exception; │ - :goto_0 │ - return-void │ + if-nez v1, :cond_0 │ │ - .line 422 │ - .restart local v1 # "result":[Ljava/net/InetAddress; │ - :cond_1 │ - :try_start_1 │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$8;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + .line 435 │ + :cond_2 │ + instance-of v0, p1, Ljava/net/Inet4Address; │ + │ + if-eqz v0, :cond_3 │ + │ + instance-of v0, p2, Ljava/net/Inet6Address; │ │ - new-instance v3, Lcom/koushikdutta/async/AsyncServer$8$1; │ + if-eqz v0, :cond_3 │ │ - invoke-direct {v3, p0, v1}, Lcom/koushikdutta/async/AsyncServer$8$1;->(Lcom/koushikdutta/async/AsyncServer$8;[Ljava/net/InetAddress;)V │ + .line 436 │ + const/4 v0, -0x1 │ + │ + goto :goto_0 │ │ - invoke-virtual {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ - :try_end_1 │ - .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 │ + .line 437 │ + :cond_3 │ + const/4 v0, 0x1 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$9.smali │ @@ -1,85 +1,123 @@ │ .class Lcom/koushikdutta/async/AsyncServer$9; │ -.super Lcom/koushikdutta/async/future/TransformFuture; │ +.super Ljava/lang/Object; │ .source "AsyncServer.java" │ │ +# interfaces │ +.implements Ljava/lang/Runnable; │ + │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer;->getByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ + value = Lcom/koushikdutta/async/AsyncServer;->getAllByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ -.annotation system Ldalvik/annotation/Signature; │ - value = { │ - "Lcom/koushikdutta/async/future/TransformFuture", │ - "<", │ - "Ljava/net/InetAddress;", │ - "[", │ - "Ljava/net/InetAddress;", │ - ">;" │ - } │ -.end annotation │ - │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/AsyncServer; │ │ +.field final synthetic val$host:Ljava/lang/String; │ + │ +.field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ + │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 443 │ + .line 444 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$9;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ - invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V │ + iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$9;->val$host:Ljava/lang/String; │ + │ + iput-object p3, p0, Lcom/koushikdutta/async/AsyncServer$9;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ + │ + invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method protected bridge synthetic transform(Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Ljava/lang/Object; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/lang/Exception; │ - } │ - .end annotation │ +.method public run()V │ + .locals 4 │ │ .prologue │ - .line 443 │ - check-cast p1, [Ljava/net/InetAddress; │ + .line 448 │ + :try_start_0 │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$9;->val$host:Ljava/lang/String; │ │ - .end local p1 # "x0":Ljava/lang/Object; │ - invoke-virtual {p0, p1}, Lcom/koushikdutta/async/AsyncServer$9;->transform([Ljava/net/InetAddress;)V │ + invoke-static {v2}, Ljava/net/InetAddress;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress; │ │ - return-void │ -.end method │ + move-result-object v1 │ │ -.method protected transform([Ljava/net/InetAddress;)V │ - .locals 1 │ - .param p1, "result" # [Ljava/net/InetAddress; │ - .annotation system Ldalvik/annotation/Throws; │ - value = { │ - Ljava/lang/Exception; │ - } │ - .end annotation │ + .line 449 │ + .local v1, "result":[Ljava/net/InetAddress; │ + # getter for: Lcom/koushikdutta/async/AsyncServer;->ipSorter:Ljava/util/Comparator; │ + invoke-static {}, Lcom/koushikdutta/async/AsyncServer;->access$600()Ljava/util/Comparator; │ │ - .prologue │ - .line 446 │ - const/4 v0, 0x0 │ + move-result-object v2 │ + │ + invoke-static {v1, v2}, Ljava/util/Arrays;->sort([Ljava/lang/Object;Ljava/util/Comparator;)V │ + │ + .line 450 │ + if-eqz v1, :cond_0 │ + │ + array-length v2, v1 │ │ - aget-object v0, p1, v0 │ + if-nez v2, :cond_1 │ │ - invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer$9;->setComplete(Ljava/lang/Object;)Z │ + .line 451 │ + :cond_0 │ + new-instance v2, Lcom/koushikdutta/async/HostnameResolutionException; │ │ - .line 447 │ + const-string v3, "no addresses for host" │ + │ + invoke-direct {v2, v3}, Lcom/koushikdutta/async/HostnameResolutionException;->(Ljava/lang/String;)V │ + │ + throw v2 │ + :try_end_0 │ + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ + │ + .line 458 │ + .end local v1 # "result":[Ljava/net/InetAddress; │ + :catch_0 │ + move-exception v0 │ + │ + .line 459 │ + .local v0, "e":Ljava/lang/Exception; │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$9;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + │ + new-instance v3, Lcom/koushikdutta/async/AsyncServer$9$2; │ + │ + invoke-direct {v3, p0, v0}, Lcom/koushikdutta/async/AsyncServer$9$2;->(Lcom/koushikdutta/async/AsyncServer$9;Ljava/lang/Exception;)V │ + │ + invoke-virtual {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ + │ + .line 466 │ + .end local v0 # "e":Ljava/lang/Exception; │ + :goto_0 │ return-void │ + │ + .line 452 │ + .restart local v1 # "result":[Ljava/net/InetAddress; │ + :cond_1 │ + :try_start_1 │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$9;->this$0:Lcom/koushikdutta/async/AsyncServer; │ + │ + new-instance v3, Lcom/koushikdutta/async/AsyncServer$9$1; │ + │ + invoke-direct {v3, p0, v1}, Lcom/koushikdutta/async/AsyncServer$9$1;->(Lcom/koushikdutta/async/AsyncServer$9;[Ljava/net/InetAddress;)V │ + │ + invoke-virtual {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ + :try_end_1 │ + .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 │ + │ + goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$AsyncSelectorException.smali │ @@ -16,13 +16,13 @@ │ │ # direct methods │ .method public constructor (Ljava/lang/Exception;)V │ .locals 0 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 717 │ + .line 748 │ invoke-direct {p0, p1}, Ljava/io/IOException;->(Ljava/lang/Throwable;)V │ │ - .line 718 │ + .line 749 │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$ConnectFuture.smali │ @@ -32,60 +32,60 @@ │ │ │ # direct methods │ .method private constructor (Lcom/koushikdutta/async/AsyncServer;)V │ .locals 0 │ │ .prologue │ - .line 329 │ + .line 345 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->this$0:Lcom/koushikdutta/async/AsyncServer; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ return-void │ .end method │ │ .method synthetic constructor (Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncServer$1;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/AsyncServer; │ .param p2, "x1" # Lcom/koushikdutta/async/AsyncServer$1; │ │ .prologue │ - .line 329 │ + .line 345 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->(Lcom/koushikdutta/async/AsyncServer;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method protected cancelCleanup()V │ .locals 1 │ │ .prologue │ - .line 332 │ + .line 348 │ invoke-super {p0}, Lcom/koushikdutta/async/future/SimpleFuture;->cancelCleanup()V │ │ - .line 334 │ + .line 350 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->socket:Ljava/nio/channels/SocketChannel; │ │ if-eqz v0, :cond_0 │ │ - .line 335 │ + .line 351 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->socket:Ljava/nio/channels/SocketChannel; │ │ invoke-virtual {v0}, Ljava/nio/channels/SocketChannel;->close()V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 339 │ + .line 355 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 337 │ + .line 353 │ :catch_0 │ move-exception v0 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$NamedThreadFactory.smali │ @@ -27,54 +27,56 @@ │ │ # direct methods │ .method constructor (Ljava/lang/String;)V │ .locals 3 │ .param p1, "namePrefix" # Ljava/lang/String; │ │ .prologue │ - .line 869 │ + .line 900 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 866 │ + .line 897 │ new-instance v1, Ljava/util/concurrent/atomic/AtomicInteger; │ │ const/4 v2, 0x1 │ │ invoke-direct {v1, v2}, Ljava/util/concurrent/atomic/AtomicInteger;->(I)V │ │ iput-object v1, p0, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory;->threadNumber:Ljava/util/concurrent/atomic/AtomicInteger; │ │ - .line 870 │ + .line 901 │ invoke-static {}, Ljava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager; │ │ move-result-object v0 │ │ - .line 871 │ + .line 902 │ .local v0, "s":Ljava/lang/SecurityManager; │ if-eqz v0, :cond_0 │ │ invoke-virtual {v0}, Ljava/lang/SecurityManager;->getThreadGroup()Ljava/lang/ThreadGroup; │ │ move-result-object v1 │ │ + .line 903 │ :goto_0 │ iput-object v1, p0, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory;->group:Ljava/lang/ThreadGroup; │ │ - .line 873 │ + .line 904 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory;->namePrefix:Ljava/lang/String; │ │ - .line 874 │ + .line 905 │ return-void │ │ - .line 871 │ + .line 902 │ :cond_0 │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v1 │ │ + .line 903 │ invoke-virtual {v1}, Ljava/lang/Thread;->getThreadGroup()Ljava/lang/ThreadGroup; │ │ move-result-object v1 │ │ goto :goto_0 │ .end method │ │ @@ -83,15 +85,15 @@ │ .method public newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; │ .locals 7 │ .param p1, "r" # Ljava/lang/Runnable; │ │ .prologue │ const/4 v6, 0x5 │ │ - .line 877 │ + .line 908 │ new-instance v0, Ljava/lang/Thread; │ │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory;->group:Ljava/lang/ThreadGroup; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ @@ -100,14 +102,15 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory;->threadNumber:Ljava/util/concurrent/atomic/AtomicInteger; │ │ + .line 909 │ invoke-virtual {v3}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I │ │ move-result v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ @@ -118,34 +121,34 @@ │ │ const-wide/16 v4, 0x0 │ │ move-object v2, p1 │ │ invoke-direct/range {v0 .. v5}, Ljava/lang/Thread;->(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V │ │ - .line 879 │ + .line 910 │ .local v0, "t":Ljava/lang/Thread; │ invoke-virtual {v0}, Ljava/lang/Thread;->isDaemon()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ const/4 v1, 0x0 │ │ invoke-virtual {v0, v1}, Ljava/lang/Thread;->setDaemon(Z)V │ │ - .line 880 │ + .line 911 │ :cond_0 │ invoke-virtual {v0}, Ljava/lang/Thread;->getPriority()I │ │ move-result v1 │ │ if-eq v1, v6, :cond_1 │ │ - .line 881 │ + .line 912 │ invoke-virtual {v0, v6}, Ljava/lang/Thread;->setPriority(I)V │ │ - .line 883 │ + .line 914 │ :cond_1 │ return-object v0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$ObjectHolder.smali │ @@ -34,25 +34,25 @@ │ │ │ # direct methods │ .method private constructor ()V │ .locals 0 │ │ .prologue │ - .line 278 │ + .line 294 │ .local p0, "this":Lcom/koushikdutta/async/AsyncServer$ObjectHolder;, "Lcom/koushikdutta/async/AsyncServer$ObjectHolder;" │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method synthetic constructor (Lcom/koushikdutta/async/AsyncServer$1;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/AsyncServer$1; │ │ .prologue │ - .line 278 │ + .line 294 │ .local p0, "this":Lcom/koushikdutta/async/AsyncServer$ObjectHolder;, "Lcom/koushikdutta/async/AsyncServer$ObjectHolder;" │ invoke-direct {p0}, Lcom/koushikdutta/async/AsyncServer$ObjectHolder;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$RunnableWrapper.smali │ @@ -28,123 +28,123 @@ │ │ │ # direct methods │ .method private constructor ()V │ .locals 0 │ │ .prologue │ - .line 44 │ + .line 47 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method synthetic constructor (Lcom/koushikdutta/async/AsyncServer$1;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/AsyncServer$1; │ │ .prologue │ - .line 44 │ + .line 47 │ invoke-direct {p0}, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 51 │ + .line 54 │ monitor-enter p0 │ │ - .line 52 │ + .line 55 │ :try_start_0 │ iget-boolean v0, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->hasRun:Z │ │ if-eqz v0, :cond_0 │ │ - .line 53 │ + .line 56 │ monitor-exit p0 │ │ - .line 67 │ + .line 70 │ :goto_0 │ return-void │ │ - .line 54 │ + .line 57 │ :cond_0 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->hasRun:Z │ │ - .line 55 │ + .line 58 │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 57 │ + .line 60 │ :try_start_1 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->runnable:Ljava/lang/Runnable; │ │ invoke-interface {v0}, Ljava/lang/Runnable;->run()V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_1 │ │ - .line 60 │ + .line 63 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->threadQueue:Lcom/koushikdutta/async/ThreadQueue; │ │ invoke-virtual {v0, p0}, Lcom/koushikdutta/async/ThreadQueue;->remove(Ljava/lang/Object;)Z │ │ - .line 61 │ + .line 64 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->handler:Landroid/os/Handler; │ │ invoke-virtual {v0, p0}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V │ │ - .line 63 │ + .line 66 │ iput-object v2, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->threadQueue:Lcom/koushikdutta/async/ThreadQueue; │ │ - .line 64 │ + .line 67 │ iput-object v2, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->handler:Landroid/os/Handler; │ │ - .line 65 │ + .line 68 │ iput-object v2, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->runnable:Ljava/lang/Runnable; │ │ goto :goto_0 │ │ - .line 55 │ + .line 58 │ :catchall_0 │ move-exception v0 │ │ :try_start_2 │ monitor-exit p0 │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ │ throw v0 │ │ - .line 60 │ + .line 63 │ :catchall_1 │ move-exception v0 │ │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->threadQueue:Lcom/koushikdutta/async/ThreadQueue; │ │ invoke-virtual {v1, p0}, Lcom/koushikdutta/async/ThreadQueue;->remove(Ljava/lang/Object;)Z │ │ - .line 61 │ + .line 64 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->handler:Landroid/os/Handler; │ │ invoke-virtual {v1, p0}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V │ │ - .line 63 │ + .line 66 │ iput-object v2, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->threadQueue:Lcom/koushikdutta/async/ThreadQueue; │ │ - .line 64 │ + .line 67 │ iput-object v2, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->handler:Landroid/os/Handler; │ │ - .line 65 │ + .line 68 │ iput-object v2, p0, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->runnable:Ljava/lang/Runnable; │ │ throw v0 │ .end method ├── smali/com/koushikdutta/async/AsyncServer$Scheduled.smali │ @@ -23,19 +23,19 @@ │ # direct methods │ .method public constructor (Ljava/lang/Runnable;J)V │ .locals 0 │ .param p1, "runnable" # Ljava/lang/Runnable; │ .param p2, "time" # J │ │ .prologue │ - .line 207 │ + .line 223 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 208 │ + .line 224 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$Scheduled;->runnable:Ljava/lang/Runnable; │ │ - .line 209 │ + .line 225 │ iput-wide p2, p0, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ - .line 210 │ + .line 226 │ return-void │ .end method ├── smali/com/koushikdutta/async/AsyncServer$Scheduler.smali │ @@ -32,88 +32,88 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 217 │ + .line 233 │ new-instance v0, Lcom/koushikdutta/async/AsyncServer$Scheduler; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/AsyncServer$Scheduler;->()V │ │ sput-object v0, Lcom/koushikdutta/async/AsyncServer$Scheduler;->INSTANCE:Lcom/koushikdutta/async/AsyncServer$Scheduler; │ │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue │ - .line 218 │ + .line 234 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 219 │ + .line 235 │ return-void │ .end method │ │ │ # virtual methods │ .method public compare(Lcom/koushikdutta/async/AsyncServer$Scheduled;Lcom/koushikdutta/async/AsyncServer$Scheduled;)I │ .locals 4 │ .param p1, "s1" # Lcom/koushikdutta/async/AsyncServer$Scheduled; │ .param p2, "s2" # Lcom/koushikdutta/async/AsyncServer$Scheduled; │ │ .prologue │ - .line 223 │ + .line 239 │ iget-wide v0, p1, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ iget-wide v2, p2, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ cmp-long v0, v0, v2 │ │ if-nez v0, :cond_0 │ │ - .line 224 │ + .line 240 │ const/4 v0, 0x0 │ │ - .line 227 │ + .line 243 │ :goto_0 │ return v0 │ │ - .line 225 │ + .line 241 │ :cond_0 │ iget-wide v0, p1, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ iget-wide v2, p2, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ cmp-long v0, v0, v2 │ │ if-lez v0, :cond_1 │ │ - .line 226 │ + .line 242 │ const/4 v0, 0x1 │ │ goto :goto_0 │ │ - .line 227 │ + .line 243 │ :cond_1 │ const/4 v0, -0x1 │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I │ .locals 1 │ .param p1, "x0" # Ljava/lang/Object; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 216 │ + .line 232 │ check-cast p1, Lcom/koushikdutta/async/AsyncServer$Scheduled; │ │ .end local p1 # "x0":Ljava/lang/Object; │ check-cast p2, Lcom/koushikdutta/async/AsyncServer$Scheduled; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer$Scheduler;->compare(Lcom/koushikdutta/async/AsyncServer$Scheduled;Lcom/koushikdutta/async/AsyncServer$Scheduled;)I ├── smali/com/koushikdutta/async/AsyncServer.smali │ @@ -20,14 +20,25 @@ │ # static fields │ .field static final synthetic $assertionsDisabled:Z │ │ .field public static final LOGTAG:Ljava/lang/String; = "NIO" │ │ .field private static final QUEUE_EMPTY:J = 0x7fffffffffffffffL │ │ +.field private static final ipSorter:Ljava/util/Comparator; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Ljava/util/Comparator", │ + "<", │ + "Ljava/net/InetAddress;", │ + ">;" │ + } │ + .end annotation │ +.end field │ + │ .field static mInstance:Lcom/koushikdutta/async/AsyncServer; │ │ .field static final mServers:Ljava/util/WeakHashMap; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Ljava/util/WeakHashMap", │ "<", │ @@ -55,260 +66,284 @@ │ ">;" │ } │ .end annotation │ .end field │ │ .field private mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ +.field postCounter:I │ + │ │ # direct methods │ .method static constructor ()V │ .locals 2 │ │ .prologue │ - .line 41 │ + .line 44 │ const-class v0, Lcom/koushikdutta/async/AsyncServer; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ const/4 v0, 0x1 │ │ :goto_0 │ sput-boolean v0, Lcom/koushikdutta/async/AsyncServer;->$assertionsDisabled:Z │ │ - .line 85 │ + .line 88 │ :try_start_0 │ sget v0, Landroid/os/Build$VERSION;->SDK_INT:I │ │ const/16 v1, 0x8 │ │ if-gt v0, v1, :cond_0 │ │ - .line 86 │ + .line 89 │ const-string v0, "java.net.preferIPv4Stack" │ │ const-string v1, "true" │ │ invoke-static {v0, v1}, Ljava/lang/System;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ - .line 87 │ + .line 90 │ const-string v0, "java.net.preferIPv6Addresses" │ │ const-string v1, "false" │ │ invoke-static {v0, v1}, Ljava/lang/System;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ :try_end_0 │ .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 94 │ + .line 97 │ :cond_0 │ :goto_1 │ new-instance v0, Lcom/koushikdutta/async/AsyncServer; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/AsyncServer;->()V │ │ sput-object v0, Lcom/koushikdutta/async/AsyncServer;->mInstance:Lcom/koushikdutta/async/AsyncServer; │ │ - .line 412 │ + .line 428 │ + new-instance v0, Lcom/koushikdutta/async/AsyncServer$8; │ + │ + invoke-direct {v0}, Lcom/koushikdutta/async/AsyncServer$8;->()V │ + │ + sput-object v0, Lcom/koushikdutta/async/AsyncServer;->ipSorter:Ljava/util/Comparator; │ + │ + .line 441 │ invoke-static {}, Lcom/koushikdutta/async/AsyncServer;->newSynchronousWorkers()Ljava/util/concurrent/ExecutorService; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/AsyncServer;->synchronousWorkers:Ljava/util/concurrent/ExecutorService; │ │ - .line 526 │ + .line 556 │ new-instance v0, Ljava/util/WeakHashMap; │ │ invoke-direct {v0}, Ljava/util/WeakHashMap;->()V │ │ sput-object v0, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ return-void │ │ - .line 41 │ + .line 44 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 90 │ + .line 93 │ :catch_0 │ move-exception v0 │ │ goto :goto_1 │ .end method │ │ .method public constructor ()V │ .locals 1 │ │ .prologue │ - .line 107 │ + .line 110 │ const/4 v0, 0x0 │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/AsyncServer;->(Ljava/lang/String;)V │ │ - .line 108 │ + .line 111 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;)V │ .locals 3 │ .param p1, "name" # Ljava/lang/String; │ │ .prologue │ - .line 110 │ + .line 113 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 214 │ + .line 146 │ + const/4 v0, 0x0 │ + │ + iput v0, p0, Lcom/koushikdutta/async/AsyncServer;->postCounter:I │ + │ + .line 230 │ new-instance v0, Ljava/util/PriorityQueue; │ │ const/4 v1, 0x1 │ │ sget-object v2, Lcom/koushikdutta/async/AsyncServer$Scheduler;->INSTANCE:Lcom/koushikdutta/async/AsyncServer$Scheduler; │ │ invoke-direct {v0, v1, v2}, Ljava/util/PriorityQueue;->(ILjava/util/Comparator;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ - .line 111 │ + .line 114 │ if-nez p1, :cond_0 │ │ - .line 112 │ + .line 115 │ const-string p1, "AsyncServer" │ │ - .line 113 │ + .line 116 │ :cond_0 │ iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer;->mName:Ljava/lang/String; │ │ - .line 114 │ + .line 117 │ return-void │ .end method │ │ .method static synthetic access$100(Lcom/koushikdutta/async/SelectorWrapper;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/SelectorWrapper; │ │ .prologue │ - .line 41 │ + .line 44 │ invoke-static {p0}, Lcom/koushikdutta/async/AsyncServer;->shutdownEverything(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ return-void │ .end method │ │ .method static synthetic access$300(Lcom/koushikdutta/async/AsyncServer;)Lcom/koushikdutta/async/SelectorWrapper; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 41 │ + .line 44 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ return-object v0 │ .end method │ │ .method static synthetic access$500(Lcom/koushikdutta/async/AsyncServer;Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/AsyncServer; │ .param p1, "x1" # Ljava/net/InetSocketAddress; │ .param p2, "x2" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 41 │ + .line 44 │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer;->connectResolvedInetSocketAddress(Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method static synthetic access$600(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ +.method static synthetic access$600()Ljava/util/Comparator; │ + .locals 1 │ + │ + .prologue │ + .line 44 │ + sget-object v0, Lcom/koushikdutta/async/AsyncServer;->ipSorter:Ljava/util/Comparator; │ + │ + return-object v0 │ +.end method │ + │ +.method static synthetic access$700(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/AsyncServer; │ .param p1, "x1" # Lcom/koushikdutta/async/AsyncNetworkSocket; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/nio/channels/ClosedChannelException; │ } │ .end annotation │ │ .prologue │ - .line 41 │ + .line 44 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/AsyncServer;->handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ │ return-void │ .end method │ │ -.method static synthetic access$700(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ +.method static synthetic access$800(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/AsyncServer; │ .param p1, "x1" # Lcom/koushikdutta/async/SelectorWrapper; │ .param p2, "x2" # Ljava/util/PriorityQueue; │ │ .prologue │ - .line 41 │ + .line 44 │ invoke-static {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer;->run(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ │ return-void │ .end method │ │ .method private addMe()Z │ .locals 4 │ │ .prologue │ - .line 529 │ + .line 559 │ sget-object v2, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ monitor-enter v2 │ │ - .line 530 │ + .line 560 │ :try_start_0 │ sget-object v1, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ invoke-virtual {v1, v3}, Ljava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/AsyncServer; │ │ - .line 531 │ + .line 561 │ .local v0, "current":Lcom/koushikdutta/async/AsyncServer; │ if-eqz v0, :cond_0 │ │ - .line 533 │ + .line 563 │ const/4 v1, 0x0 │ │ monitor-exit v2 │ │ - .line 537 │ + .line 567 │ :goto_0 │ return v1 │ │ - .line 535 │ + .line 565 │ :cond_0 │ sget-object v1, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ invoke-virtual {v1, v3, p0}, Ljava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 536 │ + .line 566 │ monitor-exit v2 │ │ - .line 537 │ + .line 567 │ const/4 v1, 0x1 │ │ goto :goto_0 │ │ - .line 536 │ + .line 566 │ .end local v0 # "current":Lcom/koushikdutta/async/AsyncServer; │ :catchall_0 │ move-exception v1 │ │ monitor-exit v2 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -318,22 +353,22 @@ │ │ .method private connectResolvedInetSocketAddress(Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ .locals 2 │ .param p1, "address" # Ljava/net/InetSocketAddress; │ .param p2, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 346 │ + .line 362 │ new-instance v0, Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ const/4 v1, 0x0 │ │ invoke-direct {v0, p0, v1}, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncServer$1;)V │ │ - .line 347 │ + .line 363 │ .local v0, "cancel":Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ sget-boolean v1, Lcom/koushikdutta/async/AsyncServer;->$assertionsDisabled:Z │ │ if-nez v1, :cond_0 │ │ invoke-virtual {p1}, Ljava/net/InetSocketAddress;->isUnresolved()Z │ │ @@ -343,31 +378,31 @@ │ │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ │ - .line 349 │ + .line 365 │ :cond_0 │ new-instance v1, Lcom/koushikdutta/async/AsyncServer$6; │ │ invoke-direct {v1, p0, v0, p2, p1}, Lcom/koushikdutta/async/AsyncServer$6;->(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncServer$ConnectFuture;Lcom/koushikdutta/async/callback/ConnectCallback;Ljava/net/InetSocketAddress;)V │ │ invoke-virtual {p0, v1}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 374 │ + .line 390 │ return-object v0 │ .end method │ │ .method public static getCurrentThreadServer()Lcom/koushikdutta/async/AsyncServer; │ .locals 2 │ │ .prologue │ - .line 541 │ + .line 571 │ sget-object v0, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ @@ -379,15 +414,15 @@ │ return-object v0 │ .end method │ │ .method public static getDefault()Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ │ .prologue │ - .line 96 │ + .line 99 │ sget-object v0, Lcom/koushikdutta/async/AsyncServer;->mInstance:Lcom/koushikdutta/async/AsyncServer; │ │ return-object v0 │ .end method │ │ .method private handleSocket(Lcom/koushikdutta/async/AsyncNetworkSocket;)V │ .locals 3 │ @@ -395,39 +430,39 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/nio/channels/ClosedChannelException; │ } │ .end annotation │ │ .prologue │ - .line 117 │ + .line 120 │ invoke-virtual {p1}, Lcom/koushikdutta/async/AsyncNetworkSocket;->getChannel()Lcom/koushikdutta/async/ChannelWrapper; │ │ move-result-object v1 │ │ - .line 118 │ + .line 121 │ .local v1, "sc":Lcom/koushikdutta/async/ChannelWrapper; │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/SelectorWrapper;->getSelector()Ljava/nio/channels/Selector; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/ChannelWrapper;->register(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey; │ │ move-result-object v0 │ │ - .line 119 │ + .line 122 │ .local v0, "ckey":Ljava/nio/channels/SelectionKey; │ invoke-virtual {v0, p1}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 120 │ + .line 123 │ invoke-virtual {p1, p0, v0}, Lcom/koushikdutta/async/AsyncNetworkSocket;->setup(Lcom/koushikdutta/async/AsyncServer;Ljava/nio/channels/SelectionKey;)V │ │ - .line 121 │ + .line 124 │ return-void │ .end method │ │ .method private static lockAndRunQueue(Lcom/koushikdutta/async/AsyncServer;Ljava/util/PriorityQueue;)J │ .locals 8 │ .param p0, "server" # Lcom/koushikdutta/async/AsyncServer; │ .annotation system Ldalvik/annotation/Signature; │ @@ -438,117 +473,125 @@ │ "<", │ "Lcom/koushikdutta/async/AsyncServer$Scheduled;", │ ">;)J" │ } │ .end annotation │ │ .prologue │ - .line 685 │ + .line 715 │ .local p1, "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ const-wide v4, 0x7fffffffffffffffL │ │ - .line 689 │ + .line 719 │ .local v4, "wait":J │ :goto_0 │ const/4 v2, 0x0 │ │ - .line 691 │ + .line 721 │ .local v2, "run":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ monitor-enter p0 │ │ - .line 692 │ + .line 722 │ :try_start_0 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v0 │ │ - .line 694 │ + .line 724 │ .local v0, "now":J │ invoke-virtual {p1}, Ljava/util/PriorityQueue;->size()I │ │ move-result v6 │ │ if-lez v6, :cond_0 │ │ - .line 695 │ + .line 725 │ invoke-virtual {p1}, Ljava/util/PriorityQueue;->remove()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/koushikdutta/async/AsyncServer$Scheduled; │ │ - .line 696 │ + .line 726 │ .local v3, "s":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ iget-wide v6, v3, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ cmp-long v6, v6, v0 │ │ if-gtz v6, :cond_1 │ │ - .line 697 │ + .line 727 │ move-object v2, v3 │ │ - .line 704 │ + .line 734 │ .end local v3 # "s":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ :cond_0 │ :goto_1 │ monitor-exit p0 │ + :try_end_0 │ + .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 706 │ + .line 736 │ if-nez v2, :cond_2 │ │ - .line 712 │ + .line 742 │ + const/4 v6, 0x0 │ + │ + iput v6, p0, Lcom/koushikdutta/async/AsyncServer;->postCounter:I │ + │ + .line 743 │ return-wide v4 │ │ - .line 700 │ + .line 730 │ .restart local v3 # "s":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ :cond_1 │ + :try_start_1 │ iget-wide v6, v3, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ │ sub-long v4, v6, v0 │ │ - .line 701 │ + .line 731 │ invoke-virtual {p1, v3}, Ljava/util/PriorityQueue;->add(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ - .line 704 │ + .line 734 │ .end local v0 # "now":J │ .end local v3 # "s":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ :catchall_0 │ move-exception v6 │ │ monitor-exit p0 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ + :try_end_1 │ + .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ throw v6 │ │ - .line 709 │ + .line 739 │ .restart local v0 # "now":J │ :cond_2 │ iget-object v6, v2, Lcom/koushikdutta/async/AsyncServer$Scheduled;->runnable:Ljava/lang/Runnable; │ │ invoke-interface {v6}, Ljava/lang/Runnable;->run()V │ │ goto :goto_0 │ .end method │ │ .method private static newSynchronousWorkers()Ljava/util/concurrent/ExecutorService; │ .locals 9 │ │ .prologue │ - .line 406 │ + .line 422 │ new-instance v8, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory; │ │ const-string v0, "AsyncServer-worker-" │ │ invoke-direct {v8, v0}, Lcom/koushikdutta/async/AsyncServer$NamedThreadFactory;->(Ljava/lang/String;)V │ │ - .line 407 │ + .line 423 │ .local v8, "tf":Ljava/util/concurrent/ThreadFactory; │ new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor; │ │ const/4 v2, 0x1 │ │ const/4 v3, 0x4 │ │ @@ -558,68 +601,68 @@ │ │ new-instance v7, Ljava/util/concurrent/LinkedBlockingQueue; │ │ invoke-direct {v7}, Ljava/util/concurrent/LinkedBlockingQueue;->()V │ │ invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V │ │ - .line 409 │ + .line 425 │ .local v1, "tpe":Ljava/util/concurrent/ThreadPoolExecutor; │ return-object v1 │ .end method │ │ .method public static post(Landroid/os/Handler;Ljava/lang/Runnable;)V │ .locals 3 │ .param p0, "handler" # Landroid/os/Handler; │ .param p1, "runnable" # Ljava/lang/Runnable; │ │ .prologue │ - .line 70 │ + .line 73 │ new-instance v1, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper; │ │ const/4 v2, 0x0 │ │ invoke-direct {v1, v2}, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->(Lcom/koushikdutta/async/AsyncServer$1;)V │ │ - .line 71 │ + .line 74 │ .local v1, "wrapper":Lcom/koushikdutta/async/AsyncServer$RunnableWrapper; │ invoke-virtual {p0}, Landroid/os/Handler;->getLooper()Landroid/os/Looper; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/os/Looper;->getThread()Ljava/lang/Thread; │ │ move-result-object v2 │ │ invoke-static {v2}, Lcom/koushikdutta/async/ThreadQueue;->getOrCreateThreadQueue(Ljava/lang/Thread;)Lcom/koushikdutta/async/ThreadQueue; │ │ move-result-object v0 │ │ - .line 72 │ + .line 75 │ .local v0, "threadQueue":Lcom/koushikdutta/async/ThreadQueue; │ iput-object v0, v1, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->threadQueue:Lcom/koushikdutta/async/ThreadQueue; │ │ - .line 73 │ + .line 76 │ iput-object p0, v1, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->handler:Landroid/os/Handler; │ │ - .line 74 │ + .line 77 │ iput-object p1, v1, Lcom/koushikdutta/async/AsyncServer$RunnableWrapper;->runnable:Ljava/lang/Runnable; │ │ - .line 76 │ + .line 79 │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/ThreadQueue;->add(Ljava/lang/Runnable;)Z │ │ - .line 77 │ + .line 80 │ invoke-virtual {p0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z │ │ - .line 80 │ + .line 83 │ iget-object v2, v0, Lcom/koushikdutta/async/ThreadQueue;->queueSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v2}, Ljava/util/concurrent/Semaphore;->release()V │ │ - .line 81 │ + .line 84 │ return-void │ .end method │ │ .method private static run(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ .locals 4 │ .param p0, "server" # Lcom/koushikdutta/async/AsyncServer; │ .param p1, "selector" # Lcom/koushikdutta/async/SelectorWrapper; │ @@ -632,27 +675,27 @@ │ "<", │ "Lcom/koushikdutta/async/AsyncServer$Scheduled;", │ ">;)V" │ } │ .end annotation │ │ .prologue │ - .line 627 │ + .line 657 │ .local p2, "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ :goto_0 │ :try_start_0 │ invoke-static {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer;->runLoop(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ :try_end_0 │ .catch Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 639 │ + .line 669 │ :goto_1 │ monitor-enter p0 │ │ - .line 640 │ + .line 670 │ :try_start_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/SelectorWrapper;->isOpen()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ @@ -668,120 +711,120 @@ │ │ invoke-virtual {p2}, Ljava/util/PriorityQueue;->size()I │ │ move-result v1 │ │ if-lez v1, :cond_1 │ │ - .line 641 │ + .line 671 │ :cond_0 │ monitor-exit p0 │ │ goto :goto_0 │ │ - .line 650 │ + .line 680 │ :catchall_0 │ move-exception v1 │ │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ throw v1 │ │ - .line 629 │ + .line 659 │ :catch_0 │ move-exception v0 │ │ - .line 630 │ + .line 660 │ .local v0, "e":Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; │ const-string v1, "NIO" │ │ const-string v2, "Selector exception, shutting down" │ │ invoke-static {v1, v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ - .line 633 │ + .line 663 │ :try_start_2 │ invoke-virtual {p1}, Lcom/koushikdutta/async/SelectorWrapper;->getSelector()Ljava/nio/channels/Selector; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/nio/channels/Selector;->close()V │ :try_end_2 │ .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_1 │ │ goto :goto_1 │ │ - .line 635 │ + .line 665 │ :catch_1 │ move-exception v1 │ │ goto :goto_1 │ │ - .line 643 │ + .line 673 │ .end local v0 # "e":Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; │ :cond_1 │ :try_start_3 │ invoke-static {p1}, Lcom/koushikdutta/async/AsyncServer;->shutdownEverything(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ - .line 644 │ + .line 674 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ if-ne v1, p1, :cond_2 │ │ - .line 645 │ + .line 675 │ new-instance v1, Ljava/util/PriorityQueue; │ │ const/4 v2, 0x1 │ │ sget-object v3, Lcom/koushikdutta/async/AsyncServer$Scheduler;->INSTANCE:Lcom/koushikdutta/async/AsyncServer$Scheduler; │ │ invoke-direct {v1, v2, v3}, Ljava/util/PriorityQueue;->(ILjava/util/Comparator;)V │ │ iput-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ - .line 646 │ + .line 676 │ const/4 v1, 0x0 │ │ iput-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 647 │ + .line 677 │ const/4 v1, 0x0 │ │ iput-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ - .line 649 │ + .line 679 │ :cond_2 │ monitor-exit p0 │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_0 │ │ - .line 652 │ + .line 682 │ sget-object v2, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ monitor-enter v2 │ │ - .line 653 │ + .line 683 │ :try_start_4 │ sget-object v1, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v3 │ │ invoke-virtual {v1, v3}, Ljava/util/WeakHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 654 │ + .line 684 │ monitor-exit v2 │ │ - .line 656 │ + .line 686 │ return-void │ │ - .line 654 │ + .line 684 │ :catchall_1 │ move-exception v1 │ │ monitor-exit v2 │ :try_end_4 │ .catchall {:try_start_4 .. :try_end_4} :catchall_1 │ │ @@ -789,35 +832,35 @@ │ .end method │ │ .method private run(Z)V │ .locals 6 │ .param p1, "newThread" # Z │ │ .prologue │ - .line 548 │ + .line 578 │ const/4 v2, 0x0 │ │ - .line 549 │ + .line 579 │ .local v2, "reentrant":Z │ monitor-enter p0 │ │ - .line 550 │ + .line 580 │ :try_start_0 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ if-eqz v4, :cond_2 │ │ - .line 551 │ + .line 581 │ const-string v4, "NIO" │ │ const-string v5, "Reentrant call" │ │ invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ │ - .line 552 │ + .line 582 │ sget-boolean v4, Lcom/koushikdutta/async/AsyncServer;->$assertionsDisabled:Z │ │ if-nez v4, :cond_0 │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v4 │ @@ -828,59 +871,59 @@ │ │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ │ - .line 595 │ + .line 625 │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v4 │ │ - .line 554 │ + .line 584 │ :cond_0 │ const/4 v2, 0x1 │ │ - .line 555 │ + .line 585 │ :try_start_1 │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 556 │ + .line 586 │ .local v3, "selector":Lcom/koushikdutta/async/SelectorWrapper; │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ - .line 595 │ + .line 625 │ .local v1, "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ :cond_1 │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 597 │ + .line 627 │ if-eqz v2, :cond_5 │ │ - .line 599 │ + .line 629 │ :try_start_2 │ invoke-static {p0, v3, v1}, Lcom/koushikdutta/async/AsyncServer;->runLoop(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ :try_end_2 │ .catch Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; {:try_start_2 .. :try_end_2} :catch_1 │ │ - .line 614 │ + .line 644 │ .end local v1 # "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ .end local v3 # "selector":Lcom/koushikdutta/async/SelectorWrapper; │ :goto_0 │ return-void │ │ - .line 560 │ + .line 590 │ :cond_2 │ :try_start_3 │ new-instance v3, Lcom/koushikdutta/async/SelectorWrapper; │ │ invoke-static {}, Ljava/nio/channels/spi/SelectorProvider;->provider()Ljava/nio/channels/spi/SelectorProvider; │ │ move-result-object v4 │ @@ -889,150 +932,150 @@ │ │ move-result-object v4 │ │ invoke-direct {v3, v4}, Lcom/koushikdutta/async/SelectorWrapper;->(Ljava/nio/channels/Selector;)V │ │ iput-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 561 │ + .line 591 │ .restart local v3 # "selector":Lcom/koushikdutta/async/SelectorWrapper; │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ :try_end_3 │ .catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_0 │ .catchall {:try_start_3 .. :try_end_3} :catchall_0 │ │ - .line 566 │ + .line 596 │ .restart local v1 # "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ if-eqz p1, :cond_3 │ │ - .line 567 │ + .line 597 │ :try_start_4 │ - new-instance v4, Lcom/koushikdutta/async/AsyncServer$13; │ + new-instance v4, Lcom/koushikdutta/async/AsyncServer$14; │ │ iget-object v5, p0, Lcom/koushikdutta/async/AsyncServer;->mName:Ljava/lang/String; │ │ - invoke-direct {v4, p0, v5, v3, v1}, Lcom/koushikdutta/async/AsyncServer$13;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ + invoke-direct {v4, p0, v5, v3, v1}, Lcom/koushikdutta/async/AsyncServer$14;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ │ iput-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ - .line 576 │ + .line 606 │ :goto_1 │ invoke-direct {p0}, Lcom/koushikdutta/async/AsyncServer;->addMe()Z │ :try_end_4 │ .catchall {:try_start_4 .. :try_end_4} :catchall_0 │ │ move-result v4 │ │ if-nez v4, :cond_4 │ │ - .line 578 │ + .line 608 │ :try_start_5 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/SelectorWrapper;->close()V │ :try_end_5 │ .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_3 │ .catchall {:try_start_5 .. :try_end_5} :catchall_0 │ │ - .line 582 │ + .line 612 │ :goto_2 │ const/4 v4, 0x0 │ │ :try_start_6 │ iput-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 583 │ + .line 613 │ const/4 v4, 0x0 │ │ iput-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ - .line 584 │ + .line 614 │ monitor-exit p0 │ │ goto :goto_0 │ │ - .line 563 │ + .line 593 │ .end local v1 # "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ .end local v3 # "selector":Lcom/koushikdutta/async/SelectorWrapper; │ :catch_0 │ move-exception v0 │ │ - .line 564 │ + .line 594 │ .local v0, "e":Ljava/io/IOException; │ monitor-exit p0 │ │ goto :goto_0 │ │ - .line 574 │ + .line 604 │ .end local v0 # "e":Ljava/io/IOException; │ .restart local v1 # "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ .restart local v3 # "selector":Lcom/koushikdutta/async/SelectorWrapper; │ :cond_3 │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ goto :goto_1 │ │ - .line 586 │ + .line 616 │ :cond_4 │ if-eqz p1, :cond_1 │ │ - .line 587 │ + .line 617 │ iget-object v4, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ invoke-virtual {v4}, Ljava/lang/Thread;->start()V │ │ - .line 589 │ + .line 619 │ monitor-exit p0 │ :try_end_6 │ .catchall {:try_start_6 .. :try_end_6} :catchall_0 │ │ goto :goto_0 │ │ - .line 601 │ + .line 631 │ :catch_1 │ move-exception v0 │ │ - .line 602 │ + .line 632 │ .local v0, "e":Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; │ const-string v4, "NIO" │ │ const-string v5, "Selector closed" │ │ invoke-static {v4, v5, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ - .line 605 │ + .line 635 │ :try_start_7 │ invoke-virtual {v3}, Lcom/koushikdutta/async/SelectorWrapper;->getSelector()Ljava/nio/channels/Selector; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/nio/channels/Selector;->close()V │ :try_end_7 │ .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_2 │ │ goto :goto_0 │ │ - .line 607 │ + .line 637 │ :catch_2 │ move-exception v4 │ │ goto :goto_0 │ │ - .line 613 │ + .line 643 │ .end local v0 # "e":Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; │ :cond_5 │ invoke-static {p0, v3, v1}, Lcom/koushikdutta/async/AsyncServer;->run(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ │ goto :goto_0 │ │ - .line 580 │ + .line 610 │ :catch_3 │ move-exception v4 │ │ goto :goto_2 │ .end method │ │ .method private static runLoop(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/SelectorWrapper;Ljava/util/PriorityQueue;)V │ @@ -1054,46 +1097,46 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; │ } │ .end annotation │ │ .prologue │ - .line 723 │ + .line 754 │ .local p2, "queue":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ const/4 v11, 0x1 │ │ - .line 726 │ + .line 757 │ .local v11, "needsSelect":Z │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p2 │ │ invoke-static {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->lockAndRunQueue(Lcom/koushikdutta/async/AsyncServer;Ljava/util/PriorityQueue;)J │ │ move-result-wide v20 │ │ - .line 728 │ + .line 759 │ .local v20, "wait":J │ :try_start_0 │ monitor-enter p0 │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_2 │ │ - .line 731 │ + .line 762 │ :try_start_1 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/SelectorWrapper;->selectNow()I │ │ move-result v15 │ │ - .line 732 │ + .line 763 │ .local v15, "readyNow":I │ if-nez v15, :cond_0 │ │ - .line 735 │ + .line 766 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/SelectorWrapper;->keys()Ljava/util/Set; │ │ move-result-object v19 │ │ invoke-interface/range {v19 .. v19}, Ljava/util/Set;->size()I │ │ move-result v19 │ @@ -1102,55 +1145,55 @@ │ │ const-wide v22, 0x7fffffffffffffffL │ │ cmp-long v19, v20, v22 │ │ if-nez v19, :cond_1 │ │ - .line 737 │ + .line 768 │ monitor-exit p0 │ │ - .line 832 │ + .line 863 │ :goto_0 │ return-void │ │ - .line 741 │ + .line 772 │ :cond_0 │ const/4 v11, 0x0 │ │ - .line 743 │ + .line 774 │ :cond_1 │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 745 │ + .line 776 │ if-eqz v11, :cond_2 │ │ - .line 746 │ + .line 777 │ const-wide v22, 0x7fffffffffffffffL │ │ cmp-long v19, v20, v22 │ │ if-nez v19, :cond_4 │ │ - .line 748 │ + .line 779 │ :try_start_2 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/SelectorWrapper;->select()V │ :try_end_2 │ .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_2 │ │ - .line 761 │ + .line 792 │ :cond_2 │ :goto_1 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/SelectorWrapper;->selectedKeys()Ljava/util/Set; │ │ move-result-object v14 │ │ - .line 762 │ + .line 793 │ .local v14, "readyKeys":Ljava/util/Set;, "Ljava/util/Set;" │ invoke-interface {v14}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ move-result-object v9 │ │ .local v9, "i$":Ljava/util/Iterator; │ :cond_3 │ @@ -1163,60 +1206,60 @@ │ │ invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v10 │ │ check-cast v10, Ljava/nio/channels/SelectionKey; │ │ - .line 764 │ + .line 795 │ .local v10, "key":Ljava/nio/channels/SelectionKey; │ :try_start_3 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->isAcceptable()Z │ │ move-result v19 │ │ if-eqz v19, :cond_5 │ │ - .line 765 │ + .line 796 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel; │ │ move-result-object v13 │ │ check-cast v13, Ljava/nio/channels/ServerSocketChannel; │ :try_end_3 │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_3 .. :try_end_3} :catch_1 │ │ - .line 766 │ + .line 797 │ .local v13, "nextReady":Ljava/nio/channels/ServerSocketChannel; │ const/16 v16, 0x0 │ │ - .line 767 │ + .line 798 │ .local v16, "sc":Ljava/nio/channels/SocketChannel; │ const/4 v5, 0x0 │ │ - .line 769 │ + .line 800 │ .local v5, "ckey":Ljava/nio/channels/SelectionKey; │ :try_start_4 │ invoke-virtual {v13}, Ljava/nio/channels/ServerSocketChannel;->accept()Ljava/nio/channels/SocketChannel; │ │ move-result-object v16 │ │ - .line 770 │ + .line 801 │ if-eqz v16, :cond_3 │ │ - .line 772 │ + .line 803 │ const/16 v19, 0x0 │ │ move-object/from16 v0, v16 │ │ move/from16 v1, v19 │ │ invoke-virtual {v0, v1}, Ljava/nio/channels/SocketChannel;->configureBlocking(Z)Ljava/nio/channels/SelectableChannel; │ │ - .line 773 │ + .line 804 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/SelectorWrapper;->getSelector()Ljava/nio/channels/Selector; │ │ move-result-object v19 │ │ const/16 v22, 0x1 │ │ move-object/from16 v0, v16 │ @@ -1225,28 +1268,28 @@ │ │ move/from16 v2, v22 │ │ invoke-virtual {v0, v1, v2}, Ljava/nio/channels/SocketChannel;->register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey; │ │ move-result-object v5 │ │ - .line 774 │ + .line 805 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object; │ │ move-result-object v17 │ │ check-cast v17, Lcom/koushikdutta/async/callback/ListenCallback; │ │ - .line 775 │ + .line 806 │ .local v17, "serverHandler":Lcom/koushikdutta/async/callback/ListenCallback; │ new-instance v8, Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ invoke-direct {v8}, Lcom/koushikdutta/async/AsyncNetworkSocket;->()V │ │ - .line 776 │ + .line 807 │ .local v8, "handler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ invoke-virtual/range {v16 .. v16}, Ljava/nio/channels/SocketChannel;->socket()Ljava/net/Socket; │ │ move-result-object v19 │ │ invoke-virtual/range {v19 .. v19}, Ljava/net/Socket;->getRemoteSocketAddress()Ljava/net/SocketAddress; │ │ @@ -1256,39 +1299,39 @@ │ │ move-object/from16 v0, v16 │ │ move-object/from16 v1, v19 │ │ invoke-virtual {v8, v0, v1}, Lcom/koushikdutta/async/AsyncNetworkSocket;->attach(Ljava/nio/channels/SocketChannel;Ljava/net/InetSocketAddress;)V │ │ - .line 777 │ + .line 808 │ move-object/from16 v0, p0 │ │ invoke-virtual {v8, v0, v5}, Lcom/koushikdutta/async/AsyncNetworkSocket;->setup(Lcom/koushikdutta/async/AsyncServer;Ljava/nio/channels/SelectionKey;)V │ │ - .line 778 │ + .line 809 │ invoke-virtual {v5, v8}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 779 │ + .line 810 │ move-object/from16 v0, v17 │ │ invoke-interface {v0, v8}, Lcom/koushikdutta/async/callback/ListenCallback;->onAccepted(Lcom/koushikdutta/async/AsyncSocket;)V │ :try_end_4 │ .catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_0 │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_4 .. :try_end_4} :catch_1 │ │ goto :goto_2 │ │ - .line 781 │ + .line 812 │ .end local v8 # "handler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ .end local v17 # "serverHandler":Lcom/koushikdutta/async/callback/ListenCallback; │ :catch_0 │ move-exception v6 │ │ - .line 782 │ + .line 813 │ .local v6, "e":Ljava/io/IOException; │ const/16 v19, 0x1 │ │ :try_start_5 │ move/from16 v0, v19 │ │ new-array v0, v0, [Ljava/io/Closeable; │ @@ -1297,35 +1340,35 @@ │ │ const/16 v22, 0x0 │ │ aput-object v16, v19, v22 │ │ invoke-static/range {v19 .. v19}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 783 │ + .line 814 │ if-eqz v5, :cond_3 │ │ - .line 784 │ + .line 815 │ invoke-virtual {v5}, Ljava/nio/channels/SelectionKey;->cancel()V │ :try_end_5 │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_5 .. :try_end_5} :catch_1 │ │ goto :goto_2 │ │ - .line 828 │ + .line 859 │ .end local v5 # "ckey":Ljava/nio/channels/SelectionKey; │ .end local v6 # "e":Ljava/io/IOException; │ .end local v13 # "nextReady":Ljava/nio/channels/ServerSocketChannel; │ .end local v16 # "sc":Ljava/nio/channels/SocketChannel; │ :catch_1 │ move-exception v19 │ │ goto :goto_2 │ │ - .line 743 │ + .line 774 │ .end local v9 # "i$":Ljava/util/Iterator; │ .end local v10 # "key":Ljava/nio/channels/SelectionKey; │ .end local v14 # "readyKeys":Ljava/util/Set;, "Ljava/util/Set;" │ .end local v15 # "readyNow":I │ :catchall_0 │ move-exception v19 │ │ @@ -1335,151 +1378,151 @@ │ .catchall {:try_start_6 .. :try_end_6} :catchall_0 │ │ :try_start_7 │ throw v19 │ :try_end_7 │ .catch Ljava/lang/Exception; {:try_start_7 .. :try_end_7} :catch_2 │ │ - .line 756 │ + .line 787 │ :catch_2 │ move-exception v6 │ │ - .line 757 │ + .line 788 │ .local v6, "e":Ljava/lang/Exception; │ new-instance v19, Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException; │ │ move-object/from16 v0, v19 │ │ invoke-direct {v0, v6}, Lcom/koushikdutta/async/AsyncServer$AsyncSelectorException;->(Ljava/lang/Exception;)V │ │ throw v19 │ │ - .line 752 │ + .line 783 │ .end local v6 # "e":Ljava/lang/Exception; │ .restart local v15 # "readyNow":I │ :cond_4 │ :try_start_8 │ move-object/from16 v0, p1 │ │ move-wide/from16 v1, v20 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/SelectorWrapper;->select(J)V │ :try_end_8 │ .catch Ljava/lang/Exception; {:try_start_8 .. :try_end_8} :catch_2 │ │ goto/16 :goto_1 │ │ - .line 787 │ + .line 818 │ .restart local v9 # "i$":Ljava/util/Iterator; │ .restart local v10 # "key":Ljava/nio/channels/SelectionKey; │ .restart local v14 # "readyKeys":Ljava/util/Set;, "Ljava/util/Set;" │ :cond_5 │ :try_start_9 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->isReadable()Z │ │ move-result v19 │ │ if-eqz v19, :cond_6 │ │ - .line 788 │ + .line 819 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ - .line 789 │ + .line 820 │ .restart local v8 # "handler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ invoke-virtual {v8}, Lcom/koushikdutta/async/AsyncNetworkSocket;->onReadable()I │ │ move-result v18 │ │ - .line 790 │ + .line 821 │ .local v18, "transmitted":I │ move-object/from16 v0, p0 │ │ move/from16 v1, v18 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->onDataReceived(I)V │ │ goto/16 :goto_2 │ │ - .line 792 │ + .line 823 │ .end local v8 # "handler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ .end local v18 # "transmitted":I │ :cond_6 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->isWritable()Z │ │ move-result v19 │ │ if-eqz v19, :cond_7 │ │ - .line 793 │ + .line 824 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ - .line 794 │ + .line 825 │ .restart local v8 # "handler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ invoke-virtual {v8}, Lcom/koushikdutta/async/AsyncNetworkSocket;->onDataWritable()V │ │ goto/16 :goto_2 │ │ - .line 796 │ + .line 827 │ .end local v8 # "handler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ :cond_7 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->isConnectable()Z │ │ move-result v19 │ │ if-eqz v19, :cond_8 │ │ - .line 797 │ + .line 828 │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object; │ │ move-result-object v4 │ │ check-cast v4, Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ - .line 798 │ + .line 829 │ .local v4, "cancel":Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->channel()Ljava/nio/channels/SelectableChannel; │ │ move-result-object v16 │ │ check-cast v16, Ljava/nio/channels/SocketChannel; │ │ - .line 799 │ + .line 830 │ .restart local v16 # "sc":Ljava/nio/channels/SocketChannel; │ const/16 v19, 0x1 │ │ move/from16 v0, v19 │ │ invoke-virtual {v10, v0}, Ljava/nio/channels/SelectionKey;->interestOps(I)Ljava/nio/channels/SelectionKey; │ :try_end_9 │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_9 .. :try_end_9} :catch_1 │ │ - .line 802 │ + .line 833 │ :try_start_a │ invoke-virtual/range {v16 .. v16}, Ljava/nio/channels/SocketChannel;->finishConnect()Z │ │ - .line 803 │ + .line 834 │ new-instance v12, Lcom/koushikdutta/async/AsyncNetworkSocket; │ │ invoke-direct {v12}, Lcom/koushikdutta/async/AsyncNetworkSocket;->()V │ │ - .line 804 │ + .line 835 │ .local v12, "newHandler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ move-object/from16 v0, p0 │ │ invoke-virtual {v12, v0, v10}, Lcom/koushikdutta/async/AsyncNetworkSocket;->setup(Lcom/koushikdutta/async/AsyncServer;Ljava/nio/channels/SelectionKey;)V │ │ - .line 805 │ + .line 836 │ invoke-virtual/range {v16 .. v16}, Ljava/nio/channels/SocketChannel;->socket()Ljava/net/Socket; │ │ move-result-object v19 │ │ invoke-virtual/range {v19 .. v19}, Ljava/net/Socket;->getRemoteSocketAddress()Ljava/net/SocketAddress; │ │ move-result-object v19 │ @@ -1488,29 +1531,29 @@ │ │ move-object/from16 v0, v16 │ │ move-object/from16 v1, v19 │ │ invoke-virtual {v12, v0, v1}, Lcom/koushikdutta/async/AsyncNetworkSocket;->attach(Ljava/nio/channels/SocketChannel;Ljava/net/InetSocketAddress;)V │ │ - .line 806 │ + .line 837 │ invoke-virtual {v10, v12}, Ljava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_a │ .catch Ljava/io/IOException; {:try_start_a .. :try_end_a} :catch_4 │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_a .. :try_end_a} :catch_1 │ │ - .line 816 │ + .line 847 │ :try_start_b │ invoke-virtual {v4, v12}, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->setComplete(Ljava/lang/Object;)Z │ │ move-result v19 │ │ if-eqz v19, :cond_3 │ │ - .line 817 │ + .line 848 │ iget-object v0, v4, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ move-object/from16 v19, v0 │ │ const/16 v22, 0x0 │ │ move-object/from16 v0, v19 │ @@ -1520,145 +1563,145 @@ │ invoke-interface {v0, v1, v12}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ :try_end_b │ .catch Ljava/lang/Exception; {:try_start_b .. :try_end_b} :catch_3 │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_b .. :try_end_b} :catch_1 │ │ goto/16 :goto_2 │ │ - .line 819 │ + .line 850 │ :catch_3 │ move-exception v6 │ │ - .line 820 │ + .line 851 │ .restart local v6 # "e":Ljava/lang/Exception; │ :try_start_c │ new-instance v19, Ljava/lang/RuntimeException; │ │ move-object/from16 v0, v19 │ │ invoke-direct {v0, v6}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ throw v19 │ │ - .line 808 │ + .line 839 │ .end local v6 # "e":Ljava/lang/Exception; │ .end local v12 # "newHandler":Lcom/koushikdutta/async/AsyncNetworkSocket; │ :catch_4 │ move-exception v7 │ │ - .line 809 │ + .line 840 │ .local v7, "ex":Ljava/io/IOException; │ invoke-virtual {v10}, Ljava/nio/channels/SelectionKey;->cancel()V │ │ - .line 810 │ + .line 841 │ const/16 v19, 0x1 │ │ move/from16 v0, v19 │ │ new-array v0, v0, [Ljava/io/Closeable; │ │ move-object/from16 v19, v0 │ │ const/16 v22, 0x0 │ │ aput-object v16, v19, v22 │ │ invoke-static/range {v19 .. v19}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 811 │ + .line 842 │ invoke-virtual {v4, v7}, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->setComplete(Ljava/lang/Exception;)Z │ │ move-result v19 │ │ if-eqz v19, :cond_3 │ │ - .line 812 │ + .line 843 │ iget-object v0, v4, Lcom/koushikdutta/async/AsyncServer$ConnectFuture;->callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ move-object/from16 v19, v0 │ │ const/16 v22, 0x0 │ │ move-object/from16 v0, v19 │ │ move-object/from16 v1, v22 │ │ invoke-interface {v0, v7, v1}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ goto/16 :goto_2 │ │ - .line 824 │ + .line 855 │ .end local v4 # "cancel":Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ .end local v7 # "ex":Ljava/io/IOException; │ .end local v16 # "sc":Ljava/nio/channels/SocketChannel; │ :cond_8 │ const-string v19, "NIO" │ │ const-string v22, "wtf" │ │ move-object/from16 v0, v19 │ │ move-object/from16 v1, v22 │ │ invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ │ - .line 825 │ + .line 856 │ new-instance v19, Ljava/lang/RuntimeException; │ │ const-string v22, "Unknown key state." │ │ move-object/from16 v0, v19 │ │ move-object/from16 v1, v22 │ │ invoke-direct {v0, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ │ throw v19 │ :try_end_c │ .catch Ljava/nio/channels/CancelledKeyException; {:try_start_c .. :try_end_c} :catch_1 │ │ - .line 831 │ + .line 862 │ .end local v10 # "key":Ljava/nio/channels/SelectionKey; │ :cond_9 │ invoke-interface {v14}, Ljava/util/Set;->clear()V │ │ goto/16 :goto_0 │ .end method │ │ .method private static shutdownEverything(Lcom/koushikdutta/async/SelectorWrapper;)V │ .locals 1 │ .param p0, "selector" # Lcom/koushikdutta/async/SelectorWrapper; │ │ .prologue │ - .line 674 │ + .line 704 │ invoke-static {p0}, Lcom/koushikdutta/async/AsyncServer;->shutdownKeys(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ - .line 677 │ + .line 707 │ :try_start_0 │ invoke-virtual {p0}, Lcom/koushikdutta/async/SelectorWrapper;->close()V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 681 │ + .line 711 │ :goto_0 │ return-void │ │ - .line 679 │ + .line 709 │ :catch_0 │ move-exception v0 │ │ goto :goto_0 │ .end method │ │ .method private static shutdownKeys(Lcom/koushikdutta/async/SelectorWrapper;)V │ .locals 5 │ .param p0, "selector" # Lcom/koushikdutta/async/SelectorWrapper; │ │ .prologue │ - .line 660 │ + .line 690 │ :try_start_0 │ invoke-virtual {p0}, Lcom/koushikdutta/async/SelectorWrapper;->keys()Ljava/util/Set; │ │ move-result-object v2 │ │ invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ @@ -1674,15 +1717,15 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/nio/channels/SelectionKey; │ │ - .line 661 │ + .line 691 │ .local v1, "key":Ljava/nio/channels/SelectionKey; │ const/4 v2, 0x1 │ │ new-array v2, v2, [Ljava/io/Closeable; │ │ const/4 v3, 0x0 │ │ @@ -1692,54 +1735,54 @@ │ │ aput-object v4, v2, v3 │ │ invoke-static {v2}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 │ │ - .line 663 │ + .line 693 │ :try_start_1 │ invoke-virtual {v1}, Ljava/nio/channels/SelectionKey;->cancel()V │ :try_end_1 │ .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 │ │ goto :goto_0 │ │ - .line 665 │ + .line 695 │ :catch_0 │ move-exception v2 │ │ goto :goto_0 │ │ - .line 669 │ + .line 699 │ .end local v0 # "i$":Ljava/util/Iterator; │ .end local v1 # "key":Ljava/nio/channels/SelectionKey; │ :catch_1 │ move-exception v2 │ │ - .line 671 │ + .line 701 │ :cond_0 │ return-void │ .end method │ │ .method private static wakeup(Lcom/koushikdutta/async/SelectorWrapper;)V │ .locals 2 │ .param p0, "selector" # Lcom/koushikdutta/async/SelectorWrapper; │ │ .prologue │ - .line 130 │ + .line 133 │ sget-object v0, Lcom/koushikdutta/async/AsyncServer;->synchronousWorkers:Ljava/util/concurrent/ExecutorService; │ │ new-instance v1, Lcom/koushikdutta/async/AsyncServer$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/AsyncServer$1;->(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ invoke-interface {v0, v1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ │ - .line 141 │ + .line 144 │ return-void │ .end method │ │ │ # virtual methods │ .method public connectDatagram(Ljava/lang/String;I)Lcom/koushikdutta/async/AsyncDatagramSocket; │ .locals 6 │ @@ -1748,90 +1791,90 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 452 │ + .line 482 │ invoke-static {}, Ljava/nio/channels/DatagramChannel;->open()Ljava/nio/channels/DatagramChannel; │ │ move-result-object v5 │ │ - .line 453 │ + .line 483 │ .local v5, "socket":Ljava/nio/channels/DatagramChannel; │ new-instance v4, Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ invoke-direct {v4}, Lcom/koushikdutta/async/AsyncDatagramSocket;->()V │ │ - .line 454 │ + .line 484 │ .local v4, "handler":Lcom/koushikdutta/async/AsyncDatagramSocket; │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/AsyncDatagramSocket;->attach(Ljava/nio/channels/DatagramChannel;)V │ │ - .line 458 │ - new-instance v0, Lcom/koushikdutta/async/AsyncServer$10; │ + .line 488 │ + new-instance v0, Lcom/koushikdutta/async/AsyncServer$11; │ │ move-object v1, p0 │ │ move-object v2, p1 │ │ move v3, p2 │ │ - invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/AsyncServer$10;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;ILcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;)V │ + invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/AsyncServer$11;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;ILcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer;->run(Ljava/lang/Runnable;)V │ │ - .line 472 │ + .line 502 │ return-object v4 │ .end method │ │ .method public connectDatagram(Ljava/net/SocketAddress;)Lcom/koushikdutta/async/AsyncDatagramSocket; │ .locals 3 │ .param p1, "remote" # Ljava/net/SocketAddress; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 505 │ + .line 535 │ invoke-static {}, Ljava/nio/channels/DatagramChannel;->open()Ljava/nio/channels/DatagramChannel; │ │ move-result-object v1 │ │ - .line 506 │ + .line 536 │ .local v1, "socket":Ljava/nio/channels/DatagramChannel; │ new-instance v0, Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/AsyncDatagramSocket;->()V │ │ - .line 507 │ + .line 537 │ .local v0, "handler":Lcom/koushikdutta/async/AsyncDatagramSocket; │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncDatagramSocket;->attach(Ljava/nio/channels/DatagramChannel;)V │ │ - .line 511 │ - new-instance v2, Lcom/koushikdutta/async/AsyncServer$12; │ + .line 541 │ + new-instance v2, Lcom/koushikdutta/async/AsyncServer$13; │ │ - invoke-direct {v2, p0, v0, v1, p1}, Lcom/koushikdutta/async/AsyncServer$12;->(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;)V │ + invoke-direct {v2, p0, v0, v1, p1}, Lcom/koushikdutta/async/AsyncServer$13;->(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/AsyncDatagramSocket;Ljava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;)V │ │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/AsyncServer;->run(Ljava/lang/Runnable;)V │ │ - .line 523 │ + .line 553 │ return-object v0 │ .end method │ │ .method public connectSocket(Ljava/lang/String;ILcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/future/Cancellable; │ .locals 1 │ .param p1, "host" # Ljava/lang/String; │ .param p2, "port" # I │ .param p3, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 402 │ + .line 418 │ invoke-static {p1, p2}, Ljava/net/InetSocketAddress;->createUnresolved(Ljava/lang/String;I)Ljava/net/InetSocketAddress; │ │ move-result-object v0 │ │ invoke-virtual {p0, v0, p3}, Lcom/koushikdutta/async/AsyncServer;->connectSocket(Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/future/Cancellable; │ │ move-result-object v0 │ @@ -1841,80 +1884,81 @@ │ │ .method public connectSocket(Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/future/Cancellable; │ .locals 3 │ .param p1, "remote" # Ljava/net/InetSocketAddress; │ .param p2, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 378 │ + .line 394 │ invoke-virtual {p1}, Ljava/net/InetSocketAddress;->isUnresolved()Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 379 │ + .line 395 │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer;->connectResolvedInetSocketAddress(Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/AsyncServer$ConnectFuture; │ │ move-result-object v1 │ │ - .line 398 │ + .line 414 │ :goto_0 │ return-object v1 │ │ - .line 381 │ + .line 397 │ :cond_0 │ new-instance v1, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 383 │ + .line 399 │ .local v1, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ invoke-virtual {p1}, Ljava/net/InetSocketAddress;->getHostName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/AsyncServer;->getByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ - .line 384 │ + .line 400 │ .local v0, "lookup":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/future/SimpleFuture;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 385 │ + .line 401 │ new-instance v2, Lcom/koushikdutta/async/AsyncServer$7; │ │ invoke-direct {v2, p0, p2, v1, p1}, Lcom/koushikdutta/async/AsyncServer$7;->(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/callback/ConnectCallback;Lcom/koushikdutta/async/future/SimpleFuture;Ljava/net/InetSocketAddress;)V │ │ + .line 402 │ invoke-interface {v0, v2}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ goto :goto_0 │ .end method │ │ .method public dump()V │ .locals 1 │ │ .prologue │ - .line 835 │ - new-instance v0, Lcom/koushikdutta/async/AsyncServer$14; │ + .line 866 │ + new-instance v0, Lcom/koushikdutta/async/AsyncServer$15; │ │ - invoke-direct {v0, p0}, Lcom/koushikdutta/async/AsyncServer$14;->(Lcom/koushikdutta/async/AsyncServer;)V │ + invoke-direct {v0, p0}, Lcom/koushikdutta/async/AsyncServer$15;->(Lcom/koushikdutta/async/AsyncServer;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 849 │ + .line 880 │ return-void │ .end method │ │ .method public getAffinity()Ljava/lang/Thread; │ .locals 1 │ │ .prologue │ - .line 852 │ + .line 883 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ return-object v0 │ .end method │ │ .method public getAllByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ .locals 3 │ @@ -1928,30 +1972,30 @@ │ "<[", │ "Ljava/net/InetAddress;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 414 │ + .line 443 │ new-instance v0, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 415 │ + .line 444 │ .local v0, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture<[Ljava/net/InetAddress;>;" │ sget-object v1, Lcom/koushikdutta/async/AsyncServer;->synchronousWorkers:Ljava/util/concurrent/ExecutorService; │ │ - new-instance v2, Lcom/koushikdutta/async/AsyncServer$8; │ + new-instance v2, Lcom/koushikdutta/async/AsyncServer$9; │ │ - invoke-direct {v2, p0, p1, v0}, Lcom/koushikdutta/async/AsyncServer$8;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ + invoke-direct {v2, p0, p1, v0}, Lcom/koushikdutta/async/AsyncServer$9;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ │ invoke-interface {v1, v2}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ │ - .line 438 │ + .line 468 │ return-object v0 │ .end method │ │ .method public getByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ .locals 2 │ .param p1, "host" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ @@ -1963,37 +2007,38 @@ │ "<", │ "Ljava/net/InetAddress;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 442 │ + .line 472 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/AsyncServer;->getAllByName(Ljava/lang/String;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ - new-instance v1, Lcom/koushikdutta/async/AsyncServer$9; │ + new-instance v1, Lcom/koushikdutta/async/AsyncServer$10; │ │ - invoke-direct {v1, p0}, Lcom/koushikdutta/async/AsyncServer$9;->(Lcom/koushikdutta/async/AsyncServer;)V │ + invoke-direct {v1, p0}, Lcom/koushikdutta/async/AsyncServer$10;->(Lcom/koushikdutta/async/AsyncServer;)V │ │ + .line 473 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 │ .end method │ │ .method public isAffinityThread()Z │ .locals 2 │ │ .prologue │ - .line 856 │ + .line 887 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v1 │ │ if-ne v0, v1, :cond_0 │ @@ -2009,18 +2054,18 @@ │ goto :goto_0 │ .end method │ │ .method public isAffinityThreadOrStopped()Z │ .locals 2 │ │ .prologue │ - .line 860 │ + .line 891 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ - .line 861 │ + .line 892 │ .local v0, "affinity":Ljava/lang/Thread; │ if-eqz v0, :cond_0 │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v1 │ │ @@ -2038,15 +2083,15 @@ │ goto :goto_0 │ .end method │ │ .method public isRunning()Z │ .locals 1 │ │ .prologue │ - .line 102 │ + .line 105 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ if-eqz v0, :cond_0 │ │ const/4 v0, 0x1 │ │ :goto_0 │ @@ -2061,22 +2106,22 @@ │ .method public listen(Ljava/net/InetAddress;ILcom/koushikdutta/async/callback/ListenCallback;)Lcom/koushikdutta/async/AsyncServerSocket; │ .locals 6 │ .param p1, "host" # Ljava/net/InetAddress; │ .param p2, "port" # I │ .param p3, "handler" # Lcom/koushikdutta/async/callback/ListenCallback; │ │ .prologue │ - .line 282 │ + .line 298 │ new-instance v5, Lcom/koushikdutta/async/AsyncServer$ObjectHolder; │ │ const/4 v0, 0x0 │ │ invoke-direct {v5, v0}, Lcom/koushikdutta/async/AsyncServer$ObjectHolder;->(Lcom/koushikdutta/async/AsyncServer$1;)V │ │ - .line 283 │ + .line 299 │ .local v5, "holder":Lcom/koushikdutta/async/AsyncServer$ObjectHolder;, "Lcom/koushikdutta/async/AsyncServer$ObjectHolder;" │ new-instance v0, Lcom/koushikdutta/async/AsyncServer$5; │ │ move-object v1, p0 │ │ move-object v2, p1 │ │ @@ -2084,50 +2129,50 @@ │ │ move-object v4, p3 │ │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/AsyncServer$5;->(Lcom/koushikdutta/async/AsyncServer;Ljava/net/InetAddress;ILcom/koushikdutta/async/callback/ListenCallback;Lcom/koushikdutta/async/AsyncServer$ObjectHolder;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer;->run(Ljava/lang/Runnable;)V │ │ - .line 326 │ + .line 342 │ iget-object v0, v5, Lcom/koushikdutta/async/AsyncServer$ObjectHolder;->held:Ljava/lang/Object; │ │ check-cast v0, Lcom/koushikdutta/async/AsyncServerSocket; │ │ return-object v0 │ .end method │ │ .method protected onDataReceived(I)V │ .locals 0 │ .param p1, "transmitted" # I │ │ .prologue │ - .line 273 │ + .line 289 │ return-void │ .end method │ │ .method protected onDataSent(I)V │ .locals 0 │ .param p1, "transmitted" # I │ │ .prologue │ - .line 276 │ + .line 292 │ return-void │ .end method │ │ .method public openDatagram()Lcom/koushikdutta/async/AsyncDatagramSocket; │ .locals 2 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 476 │ + .line 506 │ const/4 v0, 0x0 │ │ const/4 v1, 0x0 │ │ invoke-virtual {p0, v0, v1}, Lcom/koushikdutta/async/AsyncServer;->openDatagram(Ljava/net/SocketAddress;Z)Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ move-result-object v0 │ @@ -2142,53 +2187,53 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 480 │ + .line 510 │ invoke-static {}, Ljava/nio/channels/DatagramChannel;->open()Ljava/nio/channels/DatagramChannel; │ │ move-result-object v3 │ │ - .line 481 │ + .line 511 │ .local v3, "socket":Ljava/nio/channels/DatagramChannel; │ new-instance v5, Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ invoke-direct {v5}, Lcom/koushikdutta/async/AsyncDatagramSocket;->()V │ │ - .line 482 │ + .line 512 │ .local v5, "handler":Lcom/koushikdutta/async/AsyncDatagramSocket; │ invoke-virtual {v5, v3}, Lcom/koushikdutta/async/AsyncDatagramSocket;->attach(Ljava/nio/channels/DatagramChannel;)V │ │ - .line 486 │ - new-instance v0, Lcom/koushikdutta/async/AsyncServer$11; │ + .line 516 │ + new-instance v0, Lcom/koushikdutta/async/AsyncServer$12; │ │ move-object v1, p0 │ │ move v2, p2 │ │ move-object v4, p1 │ │ - invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/AsyncServer$11;->(Lcom/koushikdutta/async/AsyncServer;ZLjava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;Lcom/koushikdutta/async/AsyncDatagramSocket;)V │ + invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/AsyncServer$12;->(Lcom/koushikdutta/async/AsyncServer;ZLjava/nio/channels/DatagramChannel;Ljava/net/SocketAddress;Lcom/koushikdutta/async/AsyncDatagramSocket;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer;->run(Ljava/lang/Runnable;)V │ │ - .line 501 │ + .line 531 │ return-object v5 │ .end method │ │ .method public post(Lcom/koushikdutta/async/callback/CompletedCallback;Ljava/lang/Exception;)Ljava/lang/Object; │ .locals 1 │ .param p1, "callback" # Lcom/koushikdutta/async/callback/CompletedCallback; │ .param p2, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 175 │ + .line 191 │ new-instance v0, Lcom/koushikdutta/async/AsyncServer$2; │ │ invoke-direct {v0, p0, p1, p2}, Lcom/koushikdutta/async/AsyncServer$2;->(Lcom/koushikdutta/async/AsyncServer;Lcom/koushikdutta/async/callback/CompletedCallback;Ljava/lang/Exception;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -2197,138 +2242,222 @@ │ .end method │ │ .method public post(Ljava/lang/Runnable;)Ljava/lang/Object; │ .locals 2 │ .param p1, "runnable" # Ljava/lang/Runnable; │ │ .prologue │ - .line 171 │ + .line 187 │ const-wide/16 v0, 0x0 │ │ invoke-virtual {p0, p1, v0, v1}, Lcom/koushikdutta/async/AsyncServer;->postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ - .locals 6 │ + .locals 10 │ .param p1, "runnable" # Ljava/lang/Runnable; │ .param p2, "delay" # J │ │ .prologue │ - .line 145 │ - monitor-enter p0 │ - │ - .line 155 │ const-wide/16 v4, 0x0 │ │ + .line 149 │ + monitor-enter p0 │ + │ + .line 159 │ cmp-long v1, p2, v4 │ │ - if-eqz v1, :cond_2 │ + if-lez v1, :cond_2 │ │ - .line 156 │ + .line 160 │ :try_start_0 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v4 │ │ add-long v2, v4, p2 │ │ - .line 159 │ + .line 167 │ .local v2, "time":J │ :goto_0 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ new-instance v0, Lcom/koushikdutta/async/AsyncServer$Scheduled; │ │ invoke-direct {v0, p1, v2, v3}, Lcom/koushikdutta/async/AsyncServer$Scheduled;->(Ljava/lang/Runnable;J)V │ │ .local v0, "s":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ invoke-virtual {v1, v0}, Ljava/util/PriorityQueue;->add(Ljava/lang/Object;)Z │ │ - .line 161 │ + .line 169 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ if-nez v1, :cond_0 │ │ - .line 162 │ + .line 170 │ const/4 v1, 0x1 │ │ invoke-direct {p0, v1}, Lcom/koushikdutta/async/AsyncServer;->run(Z)V │ │ - .line 163 │ + .line 171 │ :cond_0 │ invoke-virtual {p0}, Lcom/koushikdutta/async/AsyncServer;->isAffinityThread()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ - .line 164 │ + .line 172 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ invoke-static {v1}, Lcom/koushikdutta/async/AsyncServer;->wakeup(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ - .line 166 │ + .line 174 │ :cond_1 │ monitor-exit p0 │ │ - .line 167 │ + .line 175 │ return-object v0 │ │ - .line 158 │ + .line 161 │ .end local v0 # "s":Lcom/koushikdutta/async/AsyncServer$Scheduled; │ .end local v2 # "time":J │ :cond_2 │ + cmp-long v1, p2, v4 │ + │ + if-nez v1, :cond_3 │ + │ + .line 162 │ + iget v1, p0, Lcom/koushikdutta/async/AsyncServer;->postCounter:I │ + │ + add-int/lit8 v4, v1, 0x1 │ + │ + iput v4, p0, Lcom/koushikdutta/async/AsyncServer;->postCounter:I │ + │ + int-to-long v2, v1 │ + │ + .restart local v2 # "time":J │ + goto :goto_0 │ + │ + .line 163 │ + .end local v2 # "time":J │ + :cond_3 │ iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ invoke-virtual {v1}, Ljava/util/PriorityQueue;->size()I │ │ move-result v1 │ │ - int-to-long v2, v1 │ + if-lez v1, :cond_4 │ + │ + .line 164 │ + const-wide/16 v4, 0x0 │ + │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ + │ + invoke-virtual {v1}, Ljava/util/PriorityQueue;->peek()Ljava/lang/Object; │ + │ + move-result-object v1 │ + │ + check-cast v1, Lcom/koushikdutta/async/AsyncServer$Scheduled; │ + │ + iget-wide v6, v1, Lcom/koushikdutta/async/AsyncServer$Scheduled;->time:J │ + │ + const-wide/16 v8, 0x1 │ + │ + sub-long/2addr v6, v8 │ + │ + invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->min(JJ)J │ + │ + move-result-wide v2 │ │ .restart local v2 # "time":J │ goto :goto_0 │ │ .line 166 │ .end local v2 # "time":J │ + :cond_4 │ + const-wide/16 v2, 0x0 │ + │ + .restart local v2 # "time":J │ + goto :goto_0 │ + │ + .line 174 │ + .end local v2 # "time":J │ :catchall_0 │ move-exception v1 │ │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v1 │ .end method │ │ +.method public postImmediate(Ljava/lang/Runnable;)Ljava/lang/Object; │ + .locals 2 │ + .param p1, "runnable" # Ljava/lang/Runnable; │ + │ + .prologue │ + .line 179 │ + invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ + │ + move-result-object v0 │ + │ + invoke-virtual {p0}, Lcom/koushikdutta/async/AsyncServer;->getAffinity()Ljava/lang/Thread; │ + │ + move-result-object v1 │ + │ + if-ne v0, v1, :cond_0 │ + │ + .line 180 │ + invoke-interface {p1}, Ljava/lang/Runnable;->run()V │ + │ + .line 181 │ + const/4 v0, 0x0 │ + │ + .line 183 │ + :goto_0 │ + return-object v0 │ + │ + :cond_0 │ + const-wide/16 v0, -0x1 │ + │ + invoke-virtual {p0, p1, v0, v1}, Lcom/koushikdutta/async/AsyncServer;->postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ + │ + move-result-object v0 │ + │ + goto :goto_0 │ +.end method │ + │ .method public removeAllCallbacks(Ljava/lang/Object;)V │ .locals 1 │ .param p1, "scheduled" # Ljava/lang/Object; │ │ .prologue │ - .line 124 │ + .line 127 │ monitor-enter p0 │ │ - .line 125 │ + .line 128 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ invoke-virtual {v0, p1}, Ljava/util/PriorityQueue;->remove(Ljava/lang/Object;)Z │ │ - .line 126 │ + .line 129 │ monitor-exit p0 │ │ - .line 127 │ + .line 130 │ return-void │ │ - .line 126 │ + .line 129 │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ @@ -2336,133 +2465,133 @@ │ .end method │ │ .method public run(Ljava/lang/Runnable;)V │ .locals 4 │ .param p1, "runnable" # Ljava/lang/Runnable; │ │ .prologue │ - .line 184 │ + .line 200 │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ if-ne v2, v3, :cond_0 │ │ - .line 185 │ + .line 201 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 186 │ + .line 202 │ iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ invoke-static {p0, v2}, Lcom/koushikdutta/async/AsyncServer;->lockAndRunQueue(Lcom/koushikdutta/async/AsyncServer;Ljava/util/PriorityQueue;)J │ │ - .line 204 │ + .line 220 │ :goto_0 │ return-void │ │ - .line 190 │ + .line 206 │ :cond_0 │ new-instance v1, Ljava/util/concurrent/Semaphore; │ │ const/4 v2, 0x0 │ │ invoke-direct {v1, v2}, Ljava/util/concurrent/Semaphore;->(I)V │ │ - .line 191 │ + .line 207 │ .local v1, "semaphore":Ljava/util/concurrent/Semaphore; │ new-instance v2, Lcom/koushikdutta/async/AsyncServer$3; │ │ invoke-direct {v2, p0, p1, v1}, Lcom/koushikdutta/async/AsyncServer$3;->(Lcom/koushikdutta/async/AsyncServer;Ljava/lang/Runnable;Ljava/util/concurrent/Semaphore;)V │ │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 199 │ + .line 215 │ :try_start_0 │ invoke-virtual {v1}, Ljava/util/concurrent/Semaphore;->acquire()V │ :try_end_0 │ .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_0 │ │ goto :goto_0 │ │ - .line 201 │ + .line 217 │ :catch_0 │ move-exception v0 │ │ - .line 202 │ + .line 218 │ .local v0, "e":Ljava/lang/InterruptedException; │ const-string v2, "NIO" │ │ const-string v3, "run" │ │ invoke-static {v2, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ goto :goto_0 │ .end method │ │ .method public stop()V │ .locals 8 │ │ .prologue │ - .line 237 │ + .line 253 │ monitor-enter p0 │ │ - .line 238 │ + .line 254 │ :try_start_0 │ invoke-virtual {p0}, Lcom/koushikdutta/async/AsyncServer;->isAffinityThread()Z │ │ move-result v1 │ │ - .line 239 │ + .line 255 │ .local v1, "isAffinityThread":Z │ iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 240 │ + .line 256 │ .local v0, "currentSelector":Lcom/koushikdutta/async/SelectorWrapper; │ if-nez v0, :cond_1 │ │ - .line 241 │ + .line 257 │ monitor-exit p0 │ │ - .line 270 │ + .line 286 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 242 │ + .line 258 │ :cond_1 │ sget-object v4, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ monitor-enter v4 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_1 │ │ - .line 243 │ + .line 259 │ :try_start_1 │ sget-object v3, Lcom/koushikdutta/async/AsyncServer;->mServers:Ljava/util/WeakHashMap; │ │ iget-object v5, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ invoke-virtual {v3, v5}, Ljava/util/WeakHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 244 │ + .line 260 │ monitor-exit v4 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 245 │ + .line 261 │ :try_start_2 │ new-instance v2, Ljava/util/concurrent/Semaphore; │ │ const/4 v3, 0x0 │ │ invoke-direct {v2, v3}, Ljava/util/concurrent/Semaphore;->(I)V │ │ - .line 248 │ + .line 264 │ .local v2, "semaphore":Ljava/util/concurrent/Semaphore; │ iget-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ new-instance v4, Lcom/koushikdutta/async/AsyncServer$Scheduled; │ │ new-instance v5, Lcom/koushikdutta/async/AsyncServer$4; │ │ @@ -2470,77 +2599,77 @@ │ │ const-wide/16 v6, 0x0 │ │ invoke-direct {v4, v5, v6, v7}, Lcom/koushikdutta/async/AsyncServer$Scheduled;->(Ljava/lang/Runnable;J)V │ │ invoke-virtual {v3, v4}, Ljava/util/PriorityQueue;->add(Ljava/lang/Object;)Z │ │ - .line 255 │ + .line 271 │ invoke-virtual {v0}, Lcom/koushikdutta/async/SelectorWrapper;->wakeupOnce()V │ │ - .line 258 │ + .line 274 │ invoke-static {v0}, Lcom/koushikdutta/async/AsyncServer;->shutdownKeys(Lcom/koushikdutta/async/SelectorWrapper;)V │ │ - .line 260 │ + .line 276 │ new-instance v3, Ljava/util/PriorityQueue; │ │ const/4 v4, 0x1 │ │ sget-object v5, Lcom/koushikdutta/async/AsyncServer$Scheduler;->INSTANCE:Lcom/koushikdutta/async/AsyncServer$Scheduler; │ │ invoke-direct {v3, v4, v5}, Ljava/util/PriorityQueue;->(ILjava/util/Comparator;)V │ │ iput-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mQueue:Ljava/util/PriorityQueue; │ │ - .line 261 │ + .line 277 │ const/4 v3, 0x0 │ │ iput-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mSelector:Lcom/koushikdutta/async/SelectorWrapper; │ │ - .line 262 │ + .line 278 │ const/4 v3, 0x0 │ │ iput-object v3, p0, Lcom/koushikdutta/async/AsyncServer;->mAffinity:Ljava/lang/Thread; │ │ - .line 263 │ + .line 279 │ monitor-exit p0 │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_1 │ │ - .line 265 │ + .line 281 │ if-nez v1, :cond_0 │ │ - .line 266 │ + .line 282 │ :try_start_3 │ invoke-virtual {v2}, Ljava/util/concurrent/Semaphore;->acquire()V │ :try_end_3 │ .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_0 │ │ goto :goto_0 │ │ - .line 268 │ + .line 284 │ :catch_0 │ move-exception v3 │ │ goto :goto_0 │ │ - .line 244 │ + .line 260 │ .end local v2 # "semaphore":Ljava/util/concurrent/Semaphore; │ :catchall_0 │ move-exception v3 │ │ :try_start_4 │ monitor-exit v4 │ :try_end_4 │ .catchall {:try_start_4 .. :try_end_4} :catchall_0 │ │ :try_start_5 │ throw v3 │ │ - .line 263 │ + .line 279 │ .end local v0 # "currentSelector":Lcom/koushikdutta/async/SelectorWrapper; │ .end local v1 # "isAffinityThread":Z │ :catchall_1 │ move-exception v3 │ │ monitor-exit p0 │ :try_end_5 ├── smali/com/koushikdutta/async/BufferedDataEmitter$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/BufferedDataEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/BufferedDataEmitter; │ │ .prologue │ .line 10 │ iput-object p1, p0, Lcom/koushikdutta/async/BufferedDataEmitter$1;->this$0:Lcom/koushikdutta/async/BufferedDataEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/BufferedDataEmitter$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/BufferedDataEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/BufferedDataEmitter; │ │ .prologue │ .line 18 │ iput-object p1, p0, Lcom/koushikdutta/async/BufferedDataEmitter$2;->this$0:Lcom/koushikdutta/async/BufferedDataEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/BufferedDataSink$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/BufferedDataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/BufferedDataSink; │ │ .prologue │ .line 31 │ iput-object p1, p0, Lcom/koushikdutta/async/BufferedDataSink$1;->this$0:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/BufferedDataSink$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$ignoreBuffer:Z │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataSink;Lcom/koushikdutta/async/ByteBufferList;Z)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/BufferedDataSink; │ │ .prologue │ .line 64 │ iput-object p1, p0, Lcom/koushikdutta/async/BufferedDataSink$2;->this$0:Lcom/koushikdutta/async/BufferedDataSink; │ │ iput-object p2, p0, Lcom/koushikdutta/async/BufferedDataSink$2;->val$bb:Lcom/koushikdutta/async/ByteBufferList; ├── smali/com/koushikdutta/async/BufferedDataSink$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/BufferedDataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/BufferedDataSink; │ │ .prologue │ .line 120 │ iput-object p1, p0, Lcom/koushikdutta/async/BufferedDataSink$3;->this$0:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/ByteBufferList$Reclaimer.smali │ @@ -28,29 +28,29 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 400 │ + .line 404 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I │ .locals 1 │ .param p1, "x0" # Ljava/lang/Object; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 400 │ + .line 404 │ check-cast p1, Ljava/nio/ByteBuffer; │ │ .end local p1 # "x0":Ljava/lang/Object; │ check-cast p2, Ljava/nio/ByteBuffer; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/ByteBufferList$Reclaimer;->compare(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I │ @@ -62,48 +62,48 @@ │ │ .method public compare(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I │ .locals 2 │ .param p1, "byteBuffer" # Ljava/nio/ByteBuffer; │ .param p2, "byteBuffer2" # Ljava/nio/ByteBuffer; │ │ .prologue │ - .line 404 │ + .line 408 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v0 │ │ invoke-virtual {p2}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v1 │ │ if-ne v0, v1, :cond_0 │ │ - .line 405 │ + .line 409 │ const/4 v0, 0x0 │ │ - .line 408 │ + .line 412 │ :goto_0 │ return v0 │ │ - .line 406 │ + .line 410 │ :cond_0 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v0 │ │ invoke-virtual {p2}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v1 │ │ if-le v0, v1, :cond_1 │ │ - .line 407 │ + .line 411 │ const/4 v0, 0x1 │ │ goto :goto_0 │ │ - .line 408 │ + .line 412 │ :cond_1 │ const/4 v0, -0x1 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/ByteBufferList.smali │ @@ -76,51 +76,51 @@ │ if-nez v0, :cond_0 │ │ const/4 v0, 0x1 │ │ :goto_0 │ sput-boolean v0, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ - .line 412 │ + .line 416 │ new-instance v0, Ljava/util/PriorityQueue; │ │ const/16 v2, 0x8 │ │ new-instance v3, Lcom/koushikdutta/async/ByteBufferList$Reclaimer; │ │ invoke-direct {v3}, Lcom/koushikdutta/async/ByteBufferList$Reclaimer;->()V │ │ invoke-direct {v0, v2, v3}, Ljava/util/PriorityQueue;->(ILjava/util/Comparator;)V │ │ sput-object v0, Lcom/koushikdutta/async/ByteBufferList;->reclaimed:Ljava/util/PriorityQueue; │ │ - .line 423 │ + .line 427 │ const/high16 v0, 0x100000 │ │ sput v0, Lcom/koushikdutta/async/ByteBufferList;->MAX_SIZE:I │ │ - .line 424 │ + .line 428 │ const/high16 v0, 0x40000 │ │ sput v0, Lcom/koushikdutta/async/ByteBufferList;->MAX_ITEM_SIZE:I │ │ - .line 425 │ + .line 429 │ sput v1, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ - .line 426 │ + .line 430 │ sput v1, Lcom/koushikdutta/async/ByteBufferList;->maxItem:I │ │ - .line 483 │ + .line 487 │ new-instance v0, Ljava/lang/Object; │ │ invoke-direct {v0}, Ljava/lang/Object;->()V │ │ sput-object v0, Lcom/koushikdutta/async/ByteBufferList;->LOCK:Ljava/lang/Object; │ │ - .line 539 │ + .line 543 │ invoke-static {v1}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/ByteBufferList;->EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer; │ │ return-void │ @@ -231,29 +231,29 @@ │ .end method │ │ .method private addRemaining(I)V │ .locals 1 │ .param p1, "remaining" # I │ │ .prologue │ - .line 335 │ + .line 339 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v0 │ │ if-ltz v0, :cond_0 │ │ - .line 336 │ + .line 340 │ iget v0, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ add-int/2addr v0, p1 │ │ iput v0, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ - .line 337 │ + .line 341 │ :cond_0 │ return-void │ .end method │ │ .method private static getReclaimed()Ljava/util/PriorityQueue; │ .locals 3 │ .annotation system Ldalvik/annotation/Signature; │ @@ -263,38 +263,38 @@ │ "<", │ "Ljava/nio/ByteBuffer;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 415 │ + .line 419 │ invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; │ │ move-result-object v0 │ │ - .line 416 │ + .line 420 │ .local v0, "mainLooper":Landroid/os/Looper; │ if-eqz v0, :cond_0 │ │ - .line 417 │ + .line 421 │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v1 │ │ invoke-virtual {v0}, Landroid/os/Looper;->getThread()Ljava/lang/Thread; │ │ move-result-object v2 │ │ if-ne v1, v2, :cond_0 │ │ - .line 418 │ + .line 422 │ const/4 v1, 0x0 │ │ - .line 420 │ + .line 424 │ :goto_0 │ return-object v1 │ │ :cond_0 │ sget-object v1, Lcom/koushikdutta/async/ByteBufferList;->reclaimed:Ljava/util/PriorityQueue; │ │ goto :goto_0 │ @@ -305,75 +305,75 @@ │ .param p0, "size" # I │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 486 │ + .line 490 │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->maxItem:I │ │ if-gt p0, v2, :cond_6 │ │ - .line 487 │ + .line 491 │ invoke-static {}, Lcom/koushikdutta/async/ByteBufferList;->getReclaimed()Ljava/util/PriorityQueue; │ │ move-result-object v0 │ │ - .line 488 │ + .line 492 │ .local v0, "r":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ if-eqz v0, :cond_6 │ │ - .line 489 │ + .line 493 │ sget-object v6, Lcom/koushikdutta/async/ByteBufferList;->LOCK:Ljava/lang/Object; │ │ monitor-enter v6 │ │ - .line 490 │ + .line 494 │ :cond_0 │ :try_start_0 │ invoke-virtual {v0}, Ljava/util/PriorityQueue;->size()I │ │ move-result v2 │ │ if-lez v2, :cond_5 │ │ - .line 491 │ + .line 495 │ invoke-virtual {v0}, Ljava/util/PriorityQueue;->remove()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/nio/ByteBuffer; │ │ - .line 492 │ + .line 496 │ .local v1, "ret":Ljava/nio/ByteBuffer; │ invoke-virtual {v0}, Ljava/util/PriorityQueue;->size()I │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ - .line 493 │ + .line 497 │ const/4 v2, 0x0 │ │ sput v2, Lcom/koushikdutta/async/ByteBufferList;->maxItem:I │ │ - .line 494 │ + .line 498 │ :cond_1 │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v5 │ │ sub-int/2addr v2, v5 │ │ sput v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ - .line 495 │ + .line 499 │ sget-boolean v2, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v2, :cond_4 │ │ invoke-virtual {v0}, Ljava/util/PriorityQueue;->size()I │ │ move-result v2 │ @@ -396,115 +396,115 @@ │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 502 │ + .line 506 │ .end local v1 # "ret":Ljava/nio/ByteBuffer; │ :catchall_0 │ move-exception v2 │ │ monitor-exit v6 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v2 │ │ .restart local v1 # "ret":Ljava/nio/ByteBuffer; │ :cond_2 │ move v5, v4 │ │ - .line 495 │ + .line 499 │ goto :goto_0 │ │ :cond_3 │ move v2, v4 │ │ goto :goto_1 │ │ - .line 496 │ + .line 500 │ :cond_4 │ :try_start_1 │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v2 │ │ if-lt v2, p0, :cond_0 │ │ - .line 498 │ + .line 502 │ monitor-exit v6 │ │ - .line 508 │ + .line 512 │ .end local v0 # "r":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ :goto_2 │ return-object v1 │ │ - .line 502 │ + .line 506 │ .end local v1 # "ret":Ljava/nio/ByteBuffer; │ .restart local v0 # "r":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ :cond_5 │ monitor-exit v6 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 507 │ + .line 511 │ .end local v0 # "r":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ :cond_6 │ const/16 v2, 0x2000 │ │ invoke-static {v2, p0}, Ljava/lang/Math;->max(II)I │ │ move-result v2 │ │ invoke-static {v2}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; │ │ move-result-object v1 │ │ - .line 508 │ + .line 512 │ .restart local v1 # "ret":Ljava/nio/ByteBuffer; │ goto :goto_2 │ .end method │ │ .method public static obtainArray([Ljava/nio/ByteBuffer;I)V │ .locals 12 │ .param p0, "arr" # [Ljava/nio/ByteBuffer; │ .param p1, "size" # I │ │ .prologue │ const/4 v8, 0x1 │ │ const/4 v9, 0x0 │ │ - .line 512 │ + .line 516 │ invoke-static {}, Lcom/koushikdutta/async/ByteBufferList;->getReclaimed()Ljava/util/PriorityQueue; │ │ move-result-object v5 │ │ - .line 513 │ + .line 517 │ .local v5, "r":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ const/4 v2, 0x0 │ │ - .line 514 │ + .line 518 │ .local v2, "index":I │ const/4 v6, 0x0 │ │ - .line 516 │ + .line 520 │ .local v6, "total":I │ if-eqz v5, :cond_6 │ │ - .line 517 │ + .line 521 │ sget-object v11, Lcom/koushikdutta/async/ByteBufferList;->LOCK:Ljava/lang/Object; │ │ monitor-enter v11 │ │ move v3, v2 │ │ - .line 518 │ + .line 522 │ .end local v2 # "index":I │ .local v3, "index":I │ :goto_0 │ :try_start_0 │ invoke-virtual {v5}, Ljava/util/PriorityQueue;->size()I │ │ move-result v7 │ @@ -515,34 +515,34 @@ │ │ array-length v7, p0 │ │ add-int/lit8 v7, v7, -0x1 │ │ if-ge v3, v7, :cond_3 │ │ - .line 519 │ + .line 523 │ invoke-virtual {v5}, Ljava/util/PriorityQueue;->remove()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 520 │ + .line 524 │ .local v0, "b":Ljava/nio/ByteBuffer; │ sget v7, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v10 │ │ sub-int/2addr v7, v10 │ │ sput v7, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ - .line 521 │ + .line 525 │ sget-boolean v7, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v7, :cond_2 │ │ invoke-virtual {v5}, Ljava/util/PriorityQueue;->size()I │ │ move-result v7 │ @@ -567,15 +567,15 @@ │ │ invoke-direct {v7}, Ljava/lang/AssertionError;->()V │ │ throw v7 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 526 │ + .line 530 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ :catchall_0 │ move-exception v7 │ │ move v2, v3 │ │ .end local v3 # "index":I │ @@ -590,118 +590,118 @@ │ │ .end local v2 # "index":I │ .restart local v0 # "b":Ljava/nio/ByteBuffer; │ .restart local v3 # "index":I │ :cond_0 │ move v10, v9 │ │ - .line 521 │ + .line 525 │ goto :goto_1 │ │ :cond_1 │ move v7, v9 │ │ goto :goto_2 │ │ - .line 522 │ + .line 526 │ :cond_2 │ sub-int v7, p1, v6 │ │ :try_start_2 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v10 │ │ invoke-static {v7, v10}, Ljava/lang/Math;->min(II)I │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ │ move-result v4 │ │ - .line 523 │ + .line 527 │ .local v4, "needed":I │ add-int/2addr v6, v4 │ │ - .line 524 │ + .line 528 │ add-int/lit8 v2, v3, 0x1 │ │ .end local v3 # "index":I │ .restart local v2 # "index":I │ :try_start_3 │ aput-object v0, p0, v3 │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_1 │ │ move v3, v2 │ │ - .line 525 │ + .line 529 │ .end local v2 # "index":I │ .restart local v3 # "index":I │ goto :goto_0 │ │ - .line 526 │ + .line 530 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ .end local v4 # "needed":I │ :cond_3 │ :try_start_4 │ monitor-exit v11 │ :try_end_4 │ .catchall {:try_start_4 .. :try_end_4} :catchall_0 │ │ - .line 529 │ + .line 533 │ :goto_4 │ if-ge v6, p1, :cond_5 │ │ - .line 530 │ + .line 534 │ const/16 v7, 0x2000 │ │ sub-int v8, p1, v6 │ │ invoke-static {v7, v8}, Ljava/lang/Math;->max(II)I │ │ move-result v7 │ │ invoke-static {v7}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ - .line 531 │ + .line 535 │ .restart local v0 # "b":Ljava/nio/ByteBuffer; │ add-int/lit8 v2, v3, 0x1 │ │ .end local v3 # "index":I │ .restart local v2 # "index":I │ aput-object v0, p0, v3 │ │ - .line 534 │ + .line 538 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ :goto_5 │ move v1, v2 │ │ .local v1, "i":I │ :goto_6 │ array-length v7, p0 │ │ if-ge v1, v7, :cond_4 │ │ - .line 535 │ + .line 539 │ sget-object v7, Lcom/koushikdutta/async/ByteBufferList;->EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer; │ │ aput-object v7, p0, v1 │ │ - .line 534 │ + .line 538 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_6 │ │ - .line 537 │ + .line 541 │ :cond_4 │ return-void │ │ - .line 526 │ + .line 530 │ .end local v1 # "i":I │ :catchall_1 │ move-exception v7 │ │ goto :goto_3 │ │ .end local v2 # "index":I │ @@ -722,22 +722,22 @@ │ .end method │ │ .method private read(I)Ljava/nio/ByteBuffer; │ .locals 9 │ .param p1, "count" # I │ │ .prologue │ - .line 234 │ + .line 238 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ if-ge v6, p1, :cond_0 │ │ - .line 235 │ + .line 239 │ new-instance v6, Ljava/lang/IllegalArgumentException; │ │ new-instance v7, Ljava/lang/StringBuilder; │ │ invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ │ const-string v8, "count : " │ @@ -768,183 +768,183 @@ │ │ move-result-object v7 │ │ invoke-direct {v6, v7}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v6 │ │ - .line 237 │ + .line 241 │ :cond_0 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ArrayDeque;->peek()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/nio/ByteBuffer; │ │ - .line 238 │ + .line 242 │ .local v2, "first":Ljava/nio/ByteBuffer; │ :goto_0 │ if-eqz v2, :cond_1 │ │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->hasRemaining()Z │ │ move-result v6 │ │ if-nez v6, :cond_1 │ │ - .line 239 │ + .line 243 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Ljava/nio/ByteBuffer; │ │ invoke-static {v6}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 240 │ + .line 244 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ArrayDeque;->peek()Ljava/lang/Object; │ │ move-result-object v2 │ │ .end local v2 # "first":Ljava/nio/ByteBuffer; │ check-cast v2, Ljava/nio/ByteBuffer; │ │ .restart local v2 # "first":Ljava/nio/ByteBuffer; │ goto :goto_0 │ │ - .line 243 │ + .line 247 │ :cond_1 │ if-nez v2, :cond_2 │ │ - .line 244 │ + .line 248 │ sget-object v6, Lcom/koushikdutta/async/ByteBufferList;->EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer; │ │ - .line 271 │ + .line 275 │ :goto_1 │ return-object v6 │ │ - .line 247 │ + .line 251 │ :cond_2 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v6 │ │ if-lt v6, p1, :cond_3 │ │ - .line 248 │ + .line 252 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->order:Ljava/nio/ByteOrder; │ │ invoke-virtual {v2, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v6 │ │ goto :goto_1 │ │ - .line 251 │ + .line 255 │ :cond_3 │ invoke-static {p1}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ - .line 252 │ + .line 256 │ .local v4, "ret":Ljava/nio/ByteBuffer; │ invoke-virtual {v4, p1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 253 │ + .line 257 │ invoke-virtual {v4}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v1 │ │ - .line 254 │ + .line 258 │ .local v1, "bytes":[B │ const/4 v3, 0x0 │ │ - .line 255 │ + .line 259 │ .local v3, "offset":I │ const/4 v0, 0x0 │ │ - .line 256 │ + .line 260 │ .local v0, "bb":Ljava/nio/ByteBuffer; │ :cond_4 │ :goto_2 │ if-ge v3, p1, :cond_5 │ │ - .line 257 │ + .line 261 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v0 │ │ .end local v0 # "bb":Ljava/nio/ByteBuffer; │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 258 │ + .line 262 │ .restart local v0 # "bb":Ljava/nio/ByteBuffer; │ sub-int v6, p1, v3 │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v7 │ │ invoke-static {v6, v7}, Ljava/lang/Math;->min(II)I │ │ move-result v5 │ │ - .line 259 │ + .line 263 │ .local v5, "toRead":I │ invoke-virtual {v0, v1, v3, v5}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer; │ │ - .line 260 │ + .line 264 │ add-int/2addr v3, v5 │ │ - .line 261 │ + .line 265 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v6 │ │ if-nez v6, :cond_4 │ │ - .line 262 │ + .line 266 │ invoke-static {v0}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 263 │ + .line 267 │ const/4 v0, 0x0 │ │ goto :goto_2 │ │ - .line 268 │ + .line 272 │ .end local v5 # "toRead":I │ :cond_5 │ if-eqz v0, :cond_6 │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v6 │ │ if-lez v6, :cond_6 │ │ - .line 269 │ + .line 273 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6, v0}, Lcom/koushikdutta/async/ArrayDeque;->addFirst(Ljava/lang/Object;)V │ │ - .line 270 │ + .line 274 │ :cond_6 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6, v4}, Lcom/koushikdutta/async/ArrayDeque;->addFirst(Ljava/lang/Object;)V │ │ - .line 271 │ + .line 275 │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->order:Ljava/nio/ByteOrder; │ │ invoke-virtual {v4, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v6 │ │ goto :goto_1 │ @@ -955,29 +955,29 @@ │ .param p0, "b" # Ljava/nio/ByteBuffer; │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 445 │ + .line 449 │ if-eqz p0, :cond_0 │ │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->isDirect()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 481 │ + .line 485 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 447 │ + .line 451 │ :cond_1 │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->arrayOffset()I │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ @@ -989,47 +989,47 @@ │ │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v5 │ │ if-ne v2, v5, :cond_0 │ │ - .line 449 │ + .line 453 │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v2 │ │ const/16 v5, 0x2000 │ │ if-lt v2, v5, :cond_0 │ │ - .line 451 │ + .line 455 │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v2 │ │ sget v5, Lcom/koushikdutta/async/ByteBufferList;->MAX_ITEM_SIZE:I │ │ if-gt v2, v5, :cond_0 │ │ - .line 454 │ + .line 458 │ invoke-static {}, Lcom/koushikdutta/async/ByteBufferList;->getReclaimed()Ljava/util/PriorityQueue; │ │ move-result-object v1 │ │ - .line 455 │ + .line 459 │ .local v1, "r":Ljava/util/PriorityQueue;, "Ljava/util/PriorityQueue;" │ if-eqz v1, :cond_0 │ │ - .line 458 │ + .line 462 │ sget-object v6, Lcom/koushikdutta/async/ByteBufferList;->LOCK:Ljava/lang/Object; │ │ monitor-enter v6 │ │ - .line 459 │ + .line 463 │ :goto_1 │ :try_start_0 │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ sget v5, Lcom/koushikdutta/async/ByteBufferList;->MAX_SIZE:I │ │ if-le v2, v5, :cond_2 │ @@ -1052,61 +1052,61 @@ │ │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v5 │ │ if-ge v2, v5, :cond_2 │ │ - .line 461 │ + .line 465 │ invoke-virtual {v1}, Ljava/util/PriorityQueue;->remove()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 462 │ + .line 466 │ .local v0, "head":Ljava/nio/ByteBuffer; │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v5 │ │ sub-int/2addr v2, v5 │ │ sput v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ goto :goto_1 │ │ - .line 480 │ + .line 484 │ .end local v0 # "head":Ljava/nio/ByteBuffer; │ :catchall_0 │ move-exception v2 │ │ monitor-exit v6 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v2 │ │ - .line 465 │ + .line 469 │ :cond_2 │ :try_start_1 │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ sget v5, Lcom/koushikdutta/async/ByteBufferList;->MAX_SIZE:I │ │ if-le v2, v5, :cond_3 │ │ - .line 467 │ + .line 471 │ monitor-exit v6 │ │ goto :goto_0 │ │ - .line 470 │ + .line 474 │ :cond_3 │ sget-boolean v2, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v2, :cond_4 │ │ invoke-static {p0}, Lcom/koushikdutta/async/ByteBufferList;->reclaimedContains(Ljava/nio/ByteBuffer;)Z │ │ @@ -1116,42 +1116,42 @@ │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 472 │ + .line 476 │ :cond_4 │ const/4 v2, 0x0 │ │ invoke-virtual {p0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer; │ │ - .line 473 │ + .line 477 │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v2 │ │ invoke-virtual {p0, v2}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 474 │ + .line 478 │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v5 │ │ add-int/2addr v2, v5 │ │ sput v2, Lcom/koushikdutta/async/ByteBufferList;->currentSize:I │ │ - .line 476 │ + .line 480 │ invoke-virtual {v1, p0}, Ljava/util/PriorityQueue;->add(Ljava/lang/Object;)Z │ │ - .line 477 │ + .line 481 │ sget-boolean v2, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v2, :cond_7 │ │ invoke-virtual {v1}, Ljava/util/PriorityQueue;->size()I │ │ move-result v2 │ @@ -1184,42 +1184,42 @@ │ goto :goto_2 │ │ :cond_6 │ move v2, v4 │ │ goto :goto_3 │ │ - .line 479 │ + .line 483 │ :cond_7 │ sget v2, Lcom/koushikdutta/async/ByteBufferList;->maxItem:I │ │ invoke-virtual {p0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v3 │ │ invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I │ │ move-result v2 │ │ sput v2, Lcom/koushikdutta/async/ByteBufferList;->maxItem:I │ │ - .line 480 │ + .line 484 │ monitor-exit v6 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto/16 :goto_0 │ .end method │ │ .method private static reclaimedContains(Ljava/nio/ByteBuffer;)Z │ .locals 3 │ .param p0, "b" # Ljava/nio/ByteBuffer; │ │ .prologue │ - .line 437 │ + .line 441 │ sget-object v2, Lcom/koushikdutta/async/ByteBufferList;->reclaimed:Ljava/util/PriorityQueue; │ │ invoke-virtual {v2}, Ljava/util/PriorityQueue;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ │ .local v0, "i$":Ljava/util/Iterator; │ @@ -1232,22 +1232,22 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/nio/ByteBuffer; │ │ - .line 438 │ + .line 442 │ .local v1, "other":Ljava/nio/ByteBuffer; │ if-ne v1, p0, :cond_0 │ │ - .line 439 │ + .line 443 │ const/4 v2, 0x1 │ │ - .line 441 │ + .line 445 │ .end local v1 # "other":Ljava/nio/ByteBuffer; │ :goto_0 │ return v2 │ │ :cond_1 │ const/4 v2, 0x0 │ │ @@ -1255,101 +1255,101 @@ │ .end method │ │ .method public static setMaxItemSize(I)V │ .locals 0 │ .param p0, "size" # I │ │ .prologue │ - .line 433 │ + .line 437 │ sput p0, Lcom/koushikdutta/async/ByteBufferList;->MAX_ITEM_SIZE:I │ │ - .line 434 │ + .line 438 │ return-void │ .end method │ │ .method public static setMaxPoolSize(I)V │ .locals 0 │ .param p0, "size" # I │ │ .prologue │ - .line 429 │ + .line 433 │ sput p0, Lcom/koushikdutta/async/ByteBufferList;->MAX_SIZE:I │ │ - .line 430 │ + .line 434 │ return-void │ .end method │ │ .method public static writeOutputStream(Ljava/io/OutputStream;Ljava/nio/ByteBuffer;)V │ .locals 5 │ .param p0, "out" # Ljava/io/OutputStream; │ .param p1, "b" # Ljava/nio/ByteBuffer; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 545 │ + .line 549 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->isDirect()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - .line 546 │ + .line 550 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v3 │ │ new-array v0, v3, [B │ │ - .line 547 │ + .line 551 │ .local v0, "bytes":[B │ const/4 v2, 0x0 │ │ - .line 548 │ + .line 552 │ .local v2, "offset":I │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v1 │ │ - .line 549 │ + .line 553 │ .local v1, "length":I │ invoke-virtual {p1, v0}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer; │ │ - .line 556 │ + .line 560 │ :goto_0 │ invoke-virtual {p0, v0, v2, v1}, Ljava/io/OutputStream;->write([BII)V │ │ - .line 557 │ + .line 561 │ return-void │ │ - .line 552 │ + .line 556 │ .end local v0 # "bytes":[B │ .end local v1 # "length":I │ .end local v2 # "offset":I │ :cond_0 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v0 │ │ - .line 553 │ + .line 557 │ .restart local v0 # "bytes":[B │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->arrayOffset()I │ │ move-result v3 │ │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I │ │ move-result v4 │ │ add-int v2, v3, v4 │ │ - .line 554 │ + .line 558 │ .restart local v2 # "offset":I │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v1 │ │ .restart local v1 # "length":I │ goto :goto_0 │ @@ -1358,67 +1358,67 @@ │ │ # virtual methods │ .method public add(Lcom/koushikdutta/async/ByteBufferList;)Lcom/koushikdutta/async/ByteBufferList; │ .locals 0 │ .param p1, "b" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 280 │ + .line 284 │ invoke-virtual {p1, p0}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 281 │ + .line 285 │ return-object p0 │ .end method │ │ .method public add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ .locals 3 │ .param p1, "b" # Ljava/nio/ByteBuffer; │ │ .prologue │ - .line 285 │ + .line 289 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v1 │ │ if-gtz v1, :cond_0 │ │ - .line 287 │ + .line 291 │ invoke-static {p1}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 309 │ + .line 313 │ :goto_0 │ return-object p0 │ │ - .line 290 │ + .line 294 │ :cond_0 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v1 │ │ invoke-direct {p0, v1}, Lcom/koushikdutta/async/ByteBufferList;->addRemaining(I)V │ │ - .line 293 │ + .line 297 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/ArrayDeque;->size()I │ │ move-result v1 │ │ if-lez v1, :cond_1 │ │ - .line 294 │ + .line 298 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/ArrayDeque;->getLast()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 295 │ + .line 299 │ .local v0, "last":Ljava/nio/ByteBuffer; │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v1 │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->limit()I │ │ @@ -1428,60 +1428,60 @@ │ │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v2 │ │ if-lt v1, v2, :cond_1 │ │ - .line 296 │ + .line 300 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer; │ │ - .line 297 │ + .line 301 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->limit()I │ │ move-result v1 │ │ invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer; │ │ - .line 298 │ + .line 302 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v1 │ │ invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 299 │ + .line 303 │ invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; │ │ - .line 300 │ + .line 304 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I │ │ move-result v1 │ │ invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 301 │ + .line 305 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer; │ │ - .line 302 │ + .line 306 │ invoke-static {p1}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 303 │ + .line 307 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->trim()V │ │ goto :goto_0 │ │ - .line 307 │ + .line 311 │ .end local v0 # "last":Ljava/nio/ByteBuffer; │ :cond_1 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1, p1}, Lcom/koushikdutta/async/ArrayDeque;->add(Ljava/lang/Object;)Z │ │ - .line 308 │ + .line 312 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->trim()V │ │ goto :goto_0 │ .end method │ │ .method public varargs addAll([Lcom/koushikdutta/async/ByteBufferList;)Lcom/koushikdutta/async/ByteBufferList; │ .locals 4 │ @@ -1554,94 +1554,94 @@ │ .end method │ │ .method public addFirst(Ljava/nio/ByteBuffer;)V │ .locals 3 │ .param p1, "b" # Ljava/nio/ByteBuffer; │ │ .prologue │ - .line 313 │ + .line 317 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v1 │ │ if-gtz v1, :cond_0 │ │ - .line 314 │ + .line 318 │ invoke-static {p1}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 332 │ + .line 336 │ :goto_0 │ return-void │ │ - .line 317 │ + .line 321 │ :cond_0 │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v1 │ │ invoke-direct {p0, v1}, Lcom/koushikdutta/async/ByteBufferList;->addRemaining(I)V │ │ - .line 320 │ + .line 324 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/ArrayDeque;->size()I │ │ move-result v1 │ │ if-lez v1, :cond_1 │ │ - .line 321 │ + .line 325 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/ArrayDeque;->getFirst()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 322 │ + .line 326 │ .local v0, "first":Ljava/nio/ByteBuffer; │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I │ │ move-result v1 │ │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v2 │ │ if-lt v1, v2, :cond_1 │ │ - .line 323 │ + .line 327 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I │ │ move-result v1 │ │ invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v2 │ │ sub-int/2addr v1, v2 │ │ invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer; │ │ - .line 324 │ + .line 328 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer; │ │ - .line 325 │ + .line 329 │ invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; │ │ - .line 326 │ + .line 330 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer; │ │ - .line 327 │ + .line 331 │ invoke-static {p1}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ goto :goto_0 │ │ - .line 331 │ + .line 335 │ .end local v0 # "first":Ljava/nio/ByteBuffer; │ :cond_1 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1, p1}, Lcom/koushikdutta/async/ArrayDeque;->addFirst(Ljava/lang/Object;)V │ │ goto :goto_0 │ @@ -1675,141 +1675,141 @@ │ .end method │ │ .method public get(I)Lcom/koushikdutta/async/ByteBufferList; │ .locals 2 │ .param p1, "length" # I │ │ .prologue │ - .line 221 │ + .line 225 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ - .line 222 │ + .line 226 │ .local v0, "ret":Lcom/koushikdutta/async/ByteBufferList; │ invoke-virtual {p0, v0, p1}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 223 │ + .line 227 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->order:Ljava/nio/ByteOrder; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/ByteBufferList;->order(Ljava/nio/ByteOrder;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public get(Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 1 │ .param p1, "into" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 217 │ + .line 221 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v0 │ │ invoke-virtual {p0, p1, v0}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 218 │ + .line 222 │ return-void │ .end method │ │ .method public get(Lcom/koushikdutta/async/ByteBufferList;I)V │ .locals 7 │ .param p1, "into" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # I │ │ .prologue │ - .line 180 │ + .line 184 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v5 │ │ if-ge v5, p2, :cond_0 │ │ - .line 181 │ + .line 185 │ new-instance v5, Ljava/lang/IllegalArgumentException; │ │ const-string v6, "length" │ │ invoke-direct {v5, v6}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v5 │ │ - .line 182 │ + .line 186 │ :cond_0 │ const/4 v2, 0x0 │ │ - .line 184 │ + .line 188 │ .local v2, "offset":I │ :goto_0 │ if-ge v2, p2, :cond_4 │ │ - .line 185 │ + .line 189 │ iget-object v5, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v5}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 186 │ + .line 190 │ .local v0, "b":Ljava/nio/ByteBuffer; │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v3 │ │ - .line 188 │ + .line 192 │ .local v3, "remaining":I │ if-nez v3, :cond_1 │ │ - .line 189 │ + .line 193 │ invoke-static {v0}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ goto :goto_0 │ │ - .line 193 │ + .line 197 │ :cond_1 │ add-int v5, v2, v3 │ │ if-le v5, p2, :cond_3 │ │ - .line 194 │ + .line 198 │ sub-int v1, p2, v2 │ │ - .line 196 │ + .line 200 │ .local v1, "need":I │ invoke-static {v1}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ - .line 197 │ + .line 201 │ .local v4, "subset":Ljava/nio/ByteBuffer; │ invoke-virtual {v4, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 198 │ + .line 202 │ invoke-virtual {v4}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v5 │ │ const/4 v6, 0x0 │ │ invoke-virtual {v0, v5, v6, v1}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer; │ │ - .line 199 │ + .line 203 │ invoke-virtual {p1, v4}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 200 │ + .line 204 │ iget-object v5, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v5, v0}, Lcom/koushikdutta/async/ArrayDeque;->addFirst(Ljava/lang/Object;)V │ │ - .line 201 │ + .line 205 │ sget-boolean v5, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v5, :cond_2 │ │ invoke-virtual {v4}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v5 │ @@ -1818,15 +1818,15 @@ │ │ new-instance v5, Ljava/lang/AssertionError; │ │ invoke-direct {v5}, Ljava/lang/AssertionError;->()V │ │ throw v5 │ │ - .line 202 │ + .line 206 │ :cond_2 │ sget-boolean v5, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v5, :cond_4 │ │ invoke-virtual {v4}, Ljava/nio/ByteBuffer;->position()I │ │ @@ -1836,37 +1836,37 @@ │ │ new-instance v5, Ljava/lang/AssertionError; │ │ invoke-direct {v5}, Ljava/lang/AssertionError;->()V │ │ throw v5 │ │ - .line 207 │ + .line 211 │ .end local v1 # "need":I │ .end local v4 # "subset":Ljava/nio/ByteBuffer; │ :cond_3 │ invoke-virtual {p1, v0}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 210 │ + .line 214 │ add-int/2addr v2, v3 │ │ - .line 211 │ + .line 215 │ goto :goto_0 │ │ - .line 213 │ + .line 217 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ .end local v3 # "remaining":I │ :cond_4 │ iget v5, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ sub-int/2addr v5, p2 │ │ iput v5, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ - .line 214 │ + .line 218 │ return-void │ .end method │ │ .method public get([B)V │ .locals 2 │ .param p1, "bytes" # [B │ │ @@ -1937,99 +1937,113 @@ │ .line 165 │ .local v2, "read":I │ if-eqz p1, :cond_2 │ │ .line 166 │ invoke-virtual {v0, p1, p2, v2}, Ljava/nio/ByteBuffer;->get([BII)Ljava/nio/ByteBuffer; │ │ - .line 167 │ - :cond_2 │ + .line 171 │ + :goto_1 │ sub-int/2addr v1, v2 │ │ - .line 168 │ + .line 172 │ add-int/2addr p2, v2 │ │ - .line 169 │ + .line 173 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v4 │ │ if-nez v4, :cond_1 │ │ - .line 170 │ + .line 174 │ iget-object v4, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/nio/ByteBuffer; │ │ - .line 171 │ + .line 175 │ .local v3, "removed":Ljava/nio/ByteBuffer; │ sget-boolean v4, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v4, :cond_3 │ │ if-eq v0, v3, :cond_3 │ │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ │ - .line 172 │ + .line 169 │ + .end local v3 # "removed":Ljava/nio/ByteBuffer; │ + :cond_2 │ + invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I │ + │ + move-result v4 │ + │ + add-int/2addr v4, v2 │ + │ + invoke-virtual {v0, v4}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer; │ + │ + goto :goto_1 │ + │ + .line 176 │ + .restart local v3 # "removed":Ljava/nio/ByteBuffer; │ :cond_3 │ invoke-static {v0}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ goto :goto_0 │ │ - .line 176 │ + .line 180 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ .end local v2 # "read":I │ .end local v3 # "removed":Ljava/nio/ByteBuffer; │ :cond_4 │ iget v4, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ sub-int/2addr v4, p3 │ │ iput v4, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ - .line 177 │ + .line 181 │ return-void │ .end method │ │ .method public getAll()Ljava/nio/ByteBuffer; │ .locals 1 │ │ .prologue │ - .line 227 │ + .line 231 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 228 │ + .line 232 │ sget-object v0, Lcom/koushikdutta/async/ByteBufferList;->EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer; │ │ - .line 230 │ + .line 234 │ :goto_0 │ return-object v0 │ │ - .line 229 │ + .line 233 │ :cond_0 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v0 │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/ByteBufferList;->read(I)Ljava/nio/ByteBuffer; │ │ - .line 230 │ + .line 234 │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->remove()Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ @@ -2432,42 +2446,42 @@ │ return v0 │ .end method │ │ .method public peekString()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 362 │ + .line 366 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/ByteBufferList;->peekString(Ljava/nio/charset/Charset;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public peekString(Ljava/nio/charset/Charset;)Ljava/lang/String; │ .locals 8 │ .param p1, "charset" # Ljava/nio/charset/Charset; │ │ .prologue │ - .line 367 │ + .line 371 │ if-nez p1, :cond_0 │ │ - .line 368 │ + .line 372 │ sget-object p1, Lcom/koushikdutta/async/util/Charsets;->US_ASCII:Ljava/nio/charset/Charset; │ │ - .line 369 │ + .line 373 │ :cond_0 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ - .line 370 │ + .line 374 │ .local v1, "builder":Ljava/lang/StringBuilder; │ iget-object v6, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/ArrayDeque;->iterator()Ljava/util/Iterator; │ │ move-result-object v3 │ │ @@ -2481,84 +2495,84 @@ │ │ invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 374 │ + .line 378 │ .local v0, "bb":Ljava/nio/ByteBuffer; │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->isDirect()Z │ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ - .line 375 │ + .line 379 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v6 │ │ new-array v2, v6, [B │ │ - .line 376 │ + .line 380 │ .local v2, "bytes":[B │ const/4 v5, 0x0 │ │ - .line 377 │ + .line 381 │ .local v5, "offset":I │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v4 │ │ - .line 378 │ + .line 382 │ .local v4, "length":I │ invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer; │ │ - .line 385 │ + .line 389 │ :goto_1 │ new-instance v6, Ljava/lang/String; │ │ invoke-direct {v6, v2, v5, v4, p1}, Ljava/lang/String;->([BIILjava/nio/charset/Charset;)V │ │ invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 381 │ + .line 385 │ .end local v2 # "bytes":[B │ .end local v4 # "length":I │ .end local v5 # "offset":I │ :cond_1 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v2 │ │ - .line 382 │ + .line 386 │ .restart local v2 # "bytes":[B │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->arrayOffset()I │ │ move-result v6 │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I │ │ move-result v7 │ │ add-int v5, v6, v7 │ │ - .line 383 │ + .line 387 │ .restart local v5 # "offset":I │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v4 │ │ .restart local v4 # "length":I │ goto :goto_1 │ │ - .line 387 │ + .line 391 │ .end local v0 # "bb":Ljava/nio/ByteBuffer; │ .end local v2 # "bytes":[B │ .end local v4 # "length":I │ .end local v5 # "offset":I │ :cond_2 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ @@ -2567,70 +2581,70 @@ │ return-object v6 │ .end method │ │ .method public readString()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 391 │ + .line 395 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/ByteBufferList;->readString(Ljava/nio/charset/Charset;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public readString(Ljava/nio/charset/Charset;)Ljava/lang/String; │ .locals 1 │ .param p1, "charset" # Ljava/nio/charset/Charset; │ │ .prologue │ - .line 395 │ + .line 399 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/ByteBufferList;->peekString(Ljava/nio/charset/Charset;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 396 │ + .line 400 │ .local v0, "ret":Ljava/lang/String; │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 397 │ + .line 401 │ return-object v0 │ .end method │ │ .method public recycle()V │ .locals 1 │ │ .prologue │ - .line 340 │ + .line 344 │ :goto_0 │ iget-object v0, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/ArrayDeque;->size()I │ │ move-result v0 │ │ if-lez v0, :cond_0 │ │ - .line 341 │ + .line 345 │ iget-object v0, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ invoke-static {v0}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ goto :goto_0 │ │ - .line 343 │ + .line 347 │ :cond_0 │ sget-boolean v0, Lcom/koushikdutta/async/ByteBufferList;->$assertionsDisabled:Z │ │ if-nez v0, :cond_1 │ │ iget-object v0, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ @@ -2642,21 +2656,21 @@ │ │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ │ - .line 344 │ + .line 348 │ :cond_1 │ const/4 v0, 0x0 │ │ iput v0, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ - .line 345 │ + .line 349 │ return-void │ .end method │ │ .method public remaining()I │ .locals 1 │ │ .prologue │ @@ -2666,44 +2680,44 @@ │ return v0 │ .end method │ │ .method public remove()Ljava/nio/ByteBuffer; │ .locals 3 │ │ .prologue │ - .line 348 │ + .line 352 │ iget-object v1, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/nio/ByteBuffer; │ │ - .line 349 │ + .line 353 │ .local v0, "ret":Ljava/nio/ByteBuffer; │ iget v1, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v2 │ │ sub-int/2addr v1, v2 │ │ iput v1, p0, Lcom/koushikdutta/async/ByteBufferList;->remaining:I │ │ - .line 350 │ + .line 354 │ return-object v0 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 354 │ + .line 358 │ iget-object v0, p0, Lcom/koushikdutta/async/ByteBufferList;->mBuffers:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/ArrayDeque;->size()I │ │ move-result v0 │ │ return v0 │ @@ -2725,32 +2739,32 @@ │ return-object p0 │ .end method │ │ .method public spewString()V │ .locals 2 │ │ .prologue │ - .line 358 │ + .line 362 │ sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; │ │ invoke-virtual {p0}, Lcom/koushikdutta/async/ByteBufferList;->peekString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V │ │ - .line 359 │ + .line 363 │ return-void │ .end method │ │ .method public trim()V │ .locals 1 │ │ .prologue │ - .line 276 │ + .line 280 │ const/4 v0, 0x0 │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/ByteBufferList;->read(I)Ljava/nio/ByteBuffer; │ │ - .line 277 │ + .line 281 │ return-void │ .end method ├── smali/com/koushikdutta/async/BuildConfig.smali │ @@ -8,17 +8,17 @@ │ │ .field public static final BUILD_TYPE:Ljava/lang/String; = "release" │ │ .field public static final DEBUG:Z = false │ │ .field public static final FLAVOR:Ljava/lang/String; = "" │ │ -.field public static final VERSION_CODE:I = 0xd9 │ +.field public static final VERSION_CODE:I = 0xdb │ │ -.field public static final VERSION_NAME:Ljava/lang/String; = "2.1.7" │ +.field public static final VERSION_NAME:Ljava/lang/String; = "2.1.9" │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue ├── smali/com/koushikdutta/async/FileDataEmitter$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/FileDataEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/FileDataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/FileDataEmitter; │ │ .prologue │ .line 62 │ iput-object p1, p0, Lcom/koushikdutta/async/FileDataEmitter$1;->this$0:Lcom/koushikdutta/async/FileDataEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/FilteredDataEmitter$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/FilteredDataEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/FilteredDataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/FilteredDataEmitter; │ │ .prologue │ .line 21 │ iput-object p1, p0, Lcom/koushikdutta/async/FilteredDataEmitter$1;->this$0:Lcom/koushikdutta/async/FilteredDataEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/LineEmitter.smali │ @@ -15,25 +15,27 @@ │ │ │ # static fields │ .field static final synthetic $assertionsDisabled:Z │ │ │ # instance fields │ -.field data:Ljava/lang/StringBuilder; │ +.field charset:Ljava/nio/charset/Charset; │ + │ +.field data:Lcom/koushikdutta/async/ByteBufferList; │ │ .field mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 5 │ + .line 10 │ const-class v0, Lcom/koushikdutta/async/LineEmitter; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -51,119 +53,165 @@ │ goto :goto_0 │ .end method │ │ .method public constructor ()V │ .locals 1 │ │ .prologue │ - .line 5 │ + .line 16 │ + const/4 v0, 0x0 │ + │ + invoke-direct {p0, v0}, Lcom/koushikdutta/async/LineEmitter;->(Ljava/nio/charset/Charset;)V │ + │ + .line 17 │ + return-void │ +.end method │ + │ +.method public constructor (Ljava/nio/charset/Charset;)V │ + .locals 1 │ + .param p1, "charset" # Ljava/nio/charset/Charset; │ + │ + .prologue │ + .line 19 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 10 │ - new-instance v0, Ljava/lang/StringBuilder; │ + .line 25 │ + new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ + │ + invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ + iput-object v0, p0, Lcom/koushikdutta/async/LineEmitter;->data:Lcom/koushikdutta/async/ByteBufferList; │ │ - iput-object v0, p0, Lcom/koushikdutta/async/LineEmitter;->data:Ljava/lang/StringBuilder; │ + .line 20 │ + iput-object p1, p0, Lcom/koushikdutta/async/LineEmitter;->charset:Ljava/nio/charset/Charset; │ │ + .line 21 │ return-void │ .end method │ │ │ # virtual methods │ .method public getLineCallback()Lcom/koushikdutta/async/LineEmitter$StringCallback; │ .locals 1 │ │ .prologue │ - .line 18 │ + .line 33 │ iget-object v0, p0, Lcom/koushikdutta/async/LineEmitter;->mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ │ return-object v0 │ .end method │ │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ - .locals 3 │ + .locals 5 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 23 │ + .line 38 │ + invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ + │ + move-result v2 │ + │ + invoke-static {v2}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; │ + │ + move-result-object v1 │ + │ + .line 39 │ + .local v1, "buffer":Ljava/nio/ByteBuffer; │ :goto_0 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ - move-result v1 │ + move-result v2 │ │ - if-lez v1, :cond_1 │ + if-lez v2, :cond_2 │ │ - .line 24 │ + .line 40 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v0 │ │ - .line 25 │ + .line 41 │ .local v0, "b":B │ - const/16 v1, 0xa │ + const/16 v2, 0xa │ │ - if-ne v0, v1, :cond_2 │ + if-ne v0, v2, :cond_1 │ │ - .line 26 │ - sget-boolean v1, Lcom/koushikdutta/async/LineEmitter;->$assertionsDisabled:Z │ + .line 42 │ + sget-boolean v2, Lcom/koushikdutta/async/LineEmitter;->$assertionsDisabled:Z │ │ - if-nez v1, :cond_0 │ + if-nez v2, :cond_0 │ │ - iget-object v1, p0, Lcom/koushikdutta/async/LineEmitter;->mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ + iget-object v2, p0, Lcom/koushikdutta/async/LineEmitter;->mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ │ - if-nez v1, :cond_0 │ + if-nez v2, :cond_0 │ │ - new-instance v1, Ljava/lang/AssertionError; │ + new-instance v2, Ljava/lang/AssertionError; │ │ - invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ + invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ - throw v1 │ + throw v2 │ │ - .line 27 │ + .line 43 │ :cond_0 │ - iget-object v1, p0, Lcom/koushikdutta/async/LineEmitter;->mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ + invoke-virtual {v1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ + │ + .line 44 │ + iget-object v2, p0, Lcom/koushikdutta/async/LineEmitter;->data:Lcom/koushikdutta/async/ByteBufferList; │ + │ + invoke-virtual {v2, v1}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ + │ + .line 45 │ + iget-object v2, p0, Lcom/koushikdutta/async/LineEmitter;->mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ + │ + iget-object v3, p0, Lcom/koushikdutta/async/LineEmitter;->data:Lcom/koushikdutta/async/ByteBufferList; │ │ - iget-object v2, p0, Lcom/koushikdutta/async/LineEmitter;->data:Ljava/lang/StringBuilder; │ + iget-object v4, p0, Lcom/koushikdutta/async/LineEmitter;->charset:Ljava/nio/charset/Charset; │ │ - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3, v4}, Lcom/koushikdutta/async/ByteBufferList;->readString(Ljava/nio/charset/Charset;)Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - invoke-interface {v1, v2}, Lcom/koushikdutta/async/LineEmitter$StringCallback;->onStringAvailable(Ljava/lang/String;)V │ + invoke-interface {v2, v3}, Lcom/koushikdutta/async/LineEmitter$StringCallback;->onStringAvailable(Ljava/lang/String;)V │ │ - .line 28 │ - new-instance v1, Ljava/lang/StringBuilder; │ + .line 46 │ + new-instance v2, Lcom/koushikdutta/async/ByteBufferList; │ │ - invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v2}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ - iput-object v1, p0, Lcom/koushikdutta/async/LineEmitter;->data:Ljava/lang/StringBuilder; │ + iput-object v2, p0, Lcom/koushikdutta/async/LineEmitter;->data:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 35 │ + .line 55 │ .end local v0 # "b":B │ - :cond_1 │ + :goto_1 │ return-void │ │ - .line 32 │ + .line 50 │ .restart local v0 # "b":B │ + :cond_1 │ + invoke-virtual {v1, v0}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer; │ + │ + goto :goto_0 │ + │ + .line 53 │ + .end local v0 # "b":B │ :cond_2 │ - iget-object v1, p0, Lcom/koushikdutta/async/LineEmitter;->data:Ljava/lang/StringBuilder; │ + invoke-virtual {v1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - int-to-char v2, v0 │ + .line 54 │ + iget-object v2, p0, Lcom/koushikdutta/async/LineEmitter;->data:Lcom/koushikdutta/async/ByteBufferList; │ │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v1}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - goto :goto_0 │ + goto :goto_1 │ .end method │ │ .method public setLineCallback(Lcom/koushikdutta/async/LineEmitter$StringCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/LineEmitter$StringCallback; │ │ .prologue │ - .line 14 │ + .line 29 │ iput-object p1, p0, Lcom/koushikdutta/async/LineEmitter;->mLineCallback:Lcom/koushikdutta/async/LineEmitter$StringCallback; │ │ - .line 15 │ + .line 30 │ return-void │ .end method ├── smali/com/koushikdutta/async/PushParser$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ .param p2, "x0" # I │ │ .prologue │ .line 179 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$1;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/PushParser$Waiter;->(I)V ├── smali/com/koushikdutta/async/PushParser$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ .param p2, "x0" # I │ │ .prologue │ .line 187 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$2;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/PushParser$Waiter;->(I)V ├── smali/com/koushikdutta/async/PushParser$4.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ .param p2, "x0" # I │ │ .prologue │ .line 203 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$4;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/PushParser$Waiter;->(I)V ├── smali/com/koushikdutta/async/PushParser$3.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ .param p2, "x0" # I │ │ .prologue │ .line 195 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$3;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/PushParser$Waiter;->(I)V ├── smali/com/koushikdutta/async/PushParser$5.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ .param p2, "x0" # I │ │ .prologue │ .line 211 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$5;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/PushParser$Waiter;->(I)V ├── smali/com/koushikdutta/async/PushParser$6.smali │ @@ -28,14 +28,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ │ .prologue │ .line 219 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$6;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/PushParser$7.smali │ @@ -30,14 +30,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ │ .prologue │ .line 226 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$7;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/PushParser$8.smali │ @@ -28,14 +28,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/PushParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/PushParser; │ │ .prologue │ .line 233 │ iput-object p1, p0, Lcom/koushikdutta/async/PushParser$8;->this$0:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/dns/Dns.smali │ @@ -321,28 +321,29 @@ │ │ .line 83 │ :cond_3 │ const/4 v12, 0x1 │ │ goto :goto_1 │ │ - .line 106 │ + .line 102 │ :cond_4 │ invoke-static {}, Lcom/koushikdutta/async/AsyncServer;->getDefault()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v12 │ │ new-instance v13, Ljava/net/InetSocketAddress; │ │ - const/16 v14, 0x14e9 │ + const/4 v14, 0x0 │ │ invoke-direct {v13, v14}, Ljava/net/InetSocketAddress;->(I)V │ │ const/4 v14, 0x1 │ │ + .line 106 │ invoke-virtual {v12, v13, v14}, Lcom/koushikdutta/async/AsyncServer;->openDatagram(Ljava/net/SocketAddress;Z)Lcom/koushikdutta/async/AsyncDatagramSocket; │ │ move-result-object v2 │ │ .line 107 │ .restart local v2 # "dgram":Lcom/koushikdutta/async/AsyncDatagramSocket; │ const-class v12, Ljava/net/DatagramSocket; │ @@ -382,15 +383,15 @@ │ │ const/4 v15, 0x0 │ │ const-class v16, Ljava/net/InetAddress; │ │ aput-object v16, v14, v15 │ │ - invoke-virtual {v12, v13, v14}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ + invoke-virtual {v12, v13, v14}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v8 │ │ .line 111 │ .local v8, "method":Ljava/lang/reflect/Method; │ const/4 v12, 0x1 ├── smali/com/koushikdutta/async/future/Continuation$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$cancel:Lcom/koushikdutta/async/future/Cancellable; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/Continuation;Lcom/koushikdutta/async/future/Cancellable;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/Continuation; │ │ .prologue │ .line 30 │ iput-object p1, p0, Lcom/koushikdutta/async/future/Continuation$1;->this$0:Lcom/koushikdutta/async/future/Continuation; │ │ iput-object p2, p0, Lcom/koushikdutta/async/future/Continuation$1;->val$cancel:Lcom/koushikdutta/async/future/Cancellable; ├── smali/com/koushikdutta/async/future/Continuation$2.smali │ @@ -52,14 +52,15 @@ │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method constructor (Lcom/koushikdutta/async/future/Continuation;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/Continuation; │ │ .prologue │ .line 50 │ iput-object p1, p0, Lcom/koushikdutta/async/future/Continuation$2;->this$0:Lcom/koushikdutta/async/future/Continuation; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/future/Continuation$3.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$future:Lcom/koushikdutta/async/future/DependentFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/Continuation;Lcom/koushikdutta/async/future/DependentFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/Continuation; │ │ .prologue │ .line 99 │ iput-object p1, p0, Lcom/koushikdutta/async/future/Continuation$3;->this$0:Lcom/koushikdutta/async/future/Continuation; │ │ iput-object p2, p0, Lcom/koushikdutta/async/future/Continuation$3;->val$future:Lcom/koushikdutta/async/future/DependentFuture; ├── smali/com/koushikdutta/async/future/FutureThread$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$runnable:Lcom/koushikdutta/async/future/FutureRunnable; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/FutureThread;Lcom/koushikdutta/async/future/FutureRunnable;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/FutureThread; │ │ .prologue │ .line 14 │ .local p0, "this":Lcom/koushikdutta/async/future/FutureThread$1;, "Lcom/koushikdutta/async/future/FutureThread.1;" │ iput-object p1, p0, Lcom/koushikdutta/async/future/FutureThread$1;->this$0:Lcom/koushikdutta/async/future/FutureThread; │ │ iput-object p2, p0, Lcom/koushikdutta/async/future/FutureThread$1;->val$runnable:Lcom/koushikdutta/async/future/FutureRunnable; ├── smali/com/koushikdutta/async/future/FutureThread$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$runnable:Lcom/koushikdutta/async/future/FutureRunnable; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/FutureThread;Lcom/koushikdutta/async/future/FutureRunnable;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/FutureThread; │ │ .prologue │ .line 28 │ .local p0, "this":Lcom/koushikdutta/async/future/FutureThread$2;, "Lcom/koushikdutta/async/future/FutureThread.2;" │ iput-object p1, p0, Lcom/koushikdutta/async/future/FutureThread$2;->this$0:Lcom/koushikdutta/async/future/FutureThread; │ │ iput-object p2, p0, Lcom/koushikdutta/async/future/FutureThread$2;->val$runnable:Lcom/koushikdutta/async/future/FutureRunnable; ├── smali/com/koushikdutta/async/future/FutureThread.smali │ @@ -62,14 +62,15 @@ │ │ new-instance v1, Lcom/koushikdutta/async/future/FutureThread$2; │ │ invoke-direct {v1, p0, p1}, Lcom/koushikdutta/async/future/FutureThread$2;->(Lcom/koushikdutta/async/future/FutureThread;Lcom/koushikdutta/async/future/FutureRunnable;)V │ │ invoke-direct {v0, v1, p2}, Ljava/lang/Thread;->(Ljava/lang/Runnable;Ljava/lang/String;)V │ │ + .line 38 │ invoke-virtual {v0}, Ljava/lang/Thread;->start()V │ │ .line 39 │ return-void │ .end method │ │ .method public constructor (Ljava/util/concurrent/ExecutorService;Lcom/koushikdutta/async/future/FutureRunnable;)V ├── smali/com/koushikdutta/async/future/HandlerFuture$1$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$result:Ljava/lang/Object; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/HandlerFuture$1;Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/future/HandlerFuture$1; │ │ .prologue │ .line 29 │ .local p0, "this":Lcom/koushikdutta/async/future/HandlerFuture$1$1;, "Lcom/koushikdutta/async/future/HandlerFuture$1.1;" │ iput-object p1, p0, Lcom/koushikdutta/async/future/HandlerFuture$1$1;->this$1:Lcom/koushikdutta/async/future/HandlerFuture$1; │ │ iput-object p2, p0, Lcom/koushikdutta/async/future/HandlerFuture$1$1;->val$e:Ljava/lang/Exception; ├── smali/com/koushikdutta/async/future/HandlerFuture$1.smali │ @@ -30,14 +30,15 @@ │ │ .field final synthetic val$callback:Lcom/koushikdutta/async/future/FutureCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/HandlerFuture;Lcom/koushikdutta/async/future/FutureCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/HandlerFuture; │ │ .prologue │ .line 21 │ .local p0, "this":Lcom/koushikdutta/async/future/HandlerFuture$1;, "Lcom/koushikdutta/async/future/HandlerFuture.1;" │ iput-object p1, p0, Lcom/koushikdutta/async/future/HandlerFuture$1;->this$0:Lcom/koushikdutta/async/future/HandlerFuture; │ │ iput-object p2, p0, Lcom/koushikdutta/async/future/HandlerFuture$1;->val$callback:Lcom/koushikdutta/async/future/FutureCallback; ├── smali/com/koushikdutta/async/future/MultiFuture$1.smali │ @@ -28,14 +28,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/future/MultiFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/MultiFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/MultiFuture; │ │ .prologue │ .line 11 │ .local p0, "this":Lcom/koushikdutta/async/future/MultiFuture$1;, "Lcom/koushikdutta/async/future/MultiFuture.1;" │ iput-object p1, p0, Lcom/koushikdutta/async/future/MultiFuture$1;->this$0:Lcom/koushikdutta/async/future/MultiFuture; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/future/SimpleFuture$1.smali │ @@ -28,14 +28,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/future/SimpleFuture; │ │ .prologue │ .line 146 │ .local p0, "this":Lcom/koushikdutta/async/future/SimpleFuture$1;, "Lcom/koushikdutta/async/future/SimpleFuture.1;" │ iput-object p1, p0, Lcom/koushikdutta/async/future/SimpleFuture$1;->this$0:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/AsyncHttpClient$10$1.smali │ @@ -30,17 +30,18 @@ │ │ .field final synthetic val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient$10;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/AsyncHttpClient$10; │ │ .prologue │ - .line 657 │ + .line 644 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$10; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10$1;->val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -56,15 +57,15 @@ │ "(", │ "Ljava/lang/Exception;", │ "TT;)V" │ } │ .end annotation │ │ .prologue │ - .line 660 │ + .line 647 │ .local p2, "result":Ljava/lang/Object;, "TT;" │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$10; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$10; │ │ @@ -79,10 +80,10 @@ │ move-object v4, p1 │ │ move-object v5, p2 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invoke(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$900(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 661 │ + .line 648 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$10.smali │ @@ -26,17 +26,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/parser/AsyncParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 647 │ + .line 634 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$callback:Lcom/koushikdutta/async/http/callback/RequestCallback; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$parser:Lcom/koushikdutta/async/parser/AsyncParser; │ @@ -50,18 +51,18 @@ │ # virtual methods │ .method public onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 7 │ .param p1, "ex" # Ljava/lang/Exception; │ .param p2, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 650 │ + .line 637 │ if-eqz p1, :cond_0 │ │ - .line 651 │ + .line 638 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$callback:Lcom/koushikdutta/async/http/callback/RequestCallback; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ const/4 v5, 0x0 │ @@ -69,43 +70,44 @@ │ move-object v3, p2 │ │ move-object v4, p1 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invoke(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$900(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 666 │ + .line 653 │ :goto_0 │ return-void │ │ - .line 654 │ + .line 641 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$callback:Lcom/koushikdutta/async/http/callback/RequestCallback; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeConnect(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ invoke-static {v0, v1, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$1000(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ - .line 656 │ + .line 643 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$parser:Lcom/koushikdutta/async/parser/AsyncParser; │ │ invoke-interface {v0, p2}, Lcom/koushikdutta/async/parser/AsyncParser;->parse(Lcom/koushikdutta/async/DataEmitter;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/http/AsyncHttpClient$10$1; │ │ invoke-direct {v1, p0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient$10$1;->(Lcom/koushikdutta/async/http/AsyncHttpClient$10;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ + .line 644 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v6 │ │ - .line 665 │ + .line 652 │ .local v6, "parsed":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-virtual {v0, v6}, Lcom/koushikdutta/async/future/SimpleFuture;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$11.smali │ @@ -26,17 +26,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 679 │ + .line 666 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$req:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -45,93 +46,96 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ - .locals 4 │ + .locals 3 │ .param p1, "ex" # Ljava/lang/Exception; │ .param p2, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 682 │ + .line 669 │ if-eqz p1, :cond_1 │ │ - .line 683 │ + .line 670 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-virtual {v1, p1}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 684 │ + .line 671 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback; │ │ if-eqz v1, :cond_0 │ │ - .line 685 │ + .line 672 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback; │ │ const/4 v2, 0x0 │ │ invoke-interface {v1, p1, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/WebSocket;)V │ │ - .line 700 │ + .line 688 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 689 │ + .line 676 │ :cond_1 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$req:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v1 │ │ invoke-static {v1, p2}, Lcom/koushikdutta/async/http/WebSocketImpl;->finishHandshake(Lcom/koushikdutta/async/http/Headers;Lcom/koushikdutta/async/http/AsyncHttpResponse;)Lcom/koushikdutta/async/http/WebSocket; │ │ move-result-object v0 │ │ - .line 690 │ + .line 677 │ .local v0, "ws":Lcom/koushikdutta/async/http/WebSocket; │ if-nez v0, :cond_3 │ │ - .line 691 │ - iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ + .line 678 │ + new-instance p1, Lcom/koushikdutta/async/http/WebSocketHandshakeException; │ │ - new-instance v2, Lcom/koushikdutta/async/http/WebSocketHandshakeException; │ + .end local p1 # "ex":Ljava/lang/Exception; │ + const-string v1, "Unable to complete websocket handshake" │ │ - const-string v3, "Unable to complete websocket handshake" │ + invoke-direct {p1, v1}, Lcom/koushikdutta/async/http/WebSocketHandshakeException;->(Ljava/lang/String;)V │ │ - invoke-direct {v2, v3}, Lcom/koushikdutta/async/http/WebSocketHandshakeException;->(Ljava/lang/String;)V │ + .line 679 │ + .restart local p1 # "ex":Ljava/lang/Exception; │ + iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ - invoke-virtual {v1, v2}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ + invoke-virtual {v1, p1}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 698 │ + .line 686 │ :cond_2 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback; │ │ if-eqz v1, :cond_0 │ │ - .line 699 │ + .line 687 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback; │ │ invoke-interface {v1, p1, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/WebSocket;)V │ │ goto :goto_0 │ │ - .line 695 │ + .line 683 │ :cond_3 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Object;)Z │ │ move-result v1 ├── smali/com/koushikdutta/async/http/AsyncHttpClient$1.smali │ @@ -28,17 +28,18 @@ │ │ .field final synthetic val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 186 │ + .line 187 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iput p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$redirectCount:I │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ @@ -52,24 +53,24 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 5 │ │ .prologue │ - .line 189 │ + .line 190 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$redirectCount:I │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$1;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->executeAffinity(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static {v0, v1, v2, v3, v4}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$100(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 190 │ + .line 191 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$2.smali │ @@ -28,17 +28,18 @@ │ │ .field final synthetic val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 238 │ + .line 237 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -52,43 +53,43 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 6 │ │ .prologue │ - .line 242 │ + .line 241 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socketCancellable:Lcom/koushikdutta/async/future/Cancellable; │ │ if-eqz v0, :cond_0 │ │ - .line 243 │ + .line 242 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socketCancellable:Lcom/koushikdutta/async/future/Cancellable; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/future/Cancellable;->cancel()Z │ │ - .line 244 │ + .line 243 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ if-eqz v0, :cond_0 │ │ - .line 245 │ + .line 244 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 247 │ + .line 246 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ new-instance v2, Ljava/util/concurrent/TimeoutException; │ │ @@ -99,10 +100,10 @@ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$200(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 248 │ + .line 247 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$3.smali │ @@ -32,17 +32,18 @@ │ │ .field final synthetic val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 254 │ + .line 253 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ @@ -60,105 +61,105 @@ │ # virtual methods │ .method public onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 6 │ .param p1, "ex" # Ljava/lang/Exception; │ .param p2, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ │ .prologue │ - .line 258 │ + .line 257 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->reported:Z │ │ if-eqz v0, :cond_0 │ │ - .line 259 │ + .line 258 │ if-eqz p2, :cond_0 │ │ - .line 260 │ + .line 259 │ new-instance v0, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-interface {p2, v0}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 261 │ + .line 260 │ new-instance v0, Lcom/koushikdutta/async/callback/CompletedCallback$NullCompletedCallback; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/callback/CompletedCallback$NullCompletedCallback;->()V │ │ invoke-interface {p2, v0}, Lcom/koushikdutta/async/AsyncSocket;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 262 │ + .line 261 │ invoke-interface {p2}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 263 │ + .line 262 │ new-instance v0, Ljava/lang/AssertionError; │ │ const-string v1, "double connect callback" │ │ invoke-direct {v0, v1}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v0 │ │ - .line 266 │ + .line 265 │ :cond_0 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->reported:Z │ │ - .line 268 │ + .line 267 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "socket connected" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 269 │ + .line 268 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->isCancelled()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 270 │ + .line 269 │ if-eqz p2, :cond_1 │ │ - .line 271 │ + .line 270 │ invoke-interface {p2}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 288 │ + .line 287 │ :cond_1 │ :goto_0 │ return-void │ │ - .line 276 │ + .line 275 │ :cond_2 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->timeoutRunnable:Ljava/lang/Runnable; │ │ if-eqz v0, :cond_3 │ │ - .line 277 │ + .line 276 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->removeAllCallbacks(Ljava/lang/Object;)V │ │ - .line 279 │ + .line 278 │ :cond_3 │ if-eqz p1, :cond_4 │ │ - .line 280 │ + .line 279 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ const/4 v3, 0x0 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -168,26 +169,26 @@ │ move-object v2, p1 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$200(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ goto :goto_0 │ │ - .line 284 │ + .line 283 │ :cond_4 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iput-object p2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .line 285 │ + .line 284 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iput-object p2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .line 287 │ + .line 286 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$redirectCount:I │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; ├── smali/com/koushikdutta/async/http/AsyncHttpClient$4.smali │ @@ -27,18 +27,19 @@ │ │ .field final synthetic val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p2, "x0" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 321 │ + .line 318 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iput-object p5, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ @@ -56,98 +57,98 @@ │ # virtual methods │ .method public detachSocket()Lcom/koushikdutta/async/AsyncSocket; │ .locals 4 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 449 │ + .line 438 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "Detaching socket" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 450 │ + .line 439 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->socket()Lcom/koushikdutta/async/AsyncSocket; │ │ move-result-object v0 │ │ - .line 451 │ + .line 440 │ .local v0, "socket":Lcom/koushikdutta/async/AsyncSocket; │ if-nez v0, :cond_0 │ │ move-object v0, v1 │ │ - .line 458 │ + .line 447 │ .end local v0 # "socket":Lcom/koushikdutta/async/AsyncSocket; │ :goto_0 │ return-object v0 │ │ - .line 453 │ + .line 442 │ .restart local v0 # "socket":Lcom/koushikdutta/async/AsyncSocket; │ :cond_0 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ │ - .line 454 │ + .line 443 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 455 │ + .line 444 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 456 │ + .line 445 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 457 │ + .line 446 │ invoke-virtual {p0, v1}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->setSocket(Lcom/koushikdutta/async/AsyncSocket;)V │ │ goto :goto_0 │ .end method │ │ .method protected onHeadersReceived()V │ .locals 5 │ │ .prologue │ - .line 396 │ + .line 389 │ invoke-super {p0}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->onHeadersReceived()V │ │ - .line 397 │ + .line 390 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->isCancelled()Z │ │ move-result v2 │ │ - if-eqz v2, :cond_0 │ + if-eqz v2, :cond_1 │ │ - .line 415 │ - :goto_0 │ + .line 406 │ + :cond_0 │ return-void │ │ - .line 401 │ - :cond_0 │ + .line 394 │ + :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->timeoutRunnable:Ljava/lang/Runnable; │ │ - if-eqz v2, :cond_1 │ + if-eqz v2, :cond_2 │ │ - .line 402 │ + .line 395 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v3, v3, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->removeAllCallbacks(Ljava/lang/Object;)V │ │ - .line 405 │ - :cond_1 │ + .line 398 │ + :cond_2 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "Received headers:\n" │ @@ -166,84 +167,55 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 407 │ + .line 400 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - iget-object v3, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - monitor-enter v3 │ - │ - .line 408 │ - :try_start_0 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ - │ - iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ │ .local v0, "i$":Ljava/util/Iterator; │ - :goto_1 │ + :goto_0 │ invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ - if-eqz v2, :cond_2 │ + if-eqz v2, :cond_0 │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 409 │ + .line 401 │ .local v1, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->onHeadersReceived(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnHeadersReceivedDataOnRequestSentData;)V │ │ - goto :goto_1 │ - │ - .line 411 │ - .end local v0 # "i$":Ljava/util/Iterator; │ - .end local v1 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ - :catchall_0 │ - move-exception v2 │ - │ - monitor-exit v3 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ - │ - throw v2 │ - │ - .restart local v0 # "i$":Ljava/util/Iterator; │ - :cond_2 │ - :try_start_1 │ - monitor-exit v3 │ - :try_end_1 │ - .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ - │ goto :goto_0 │ .end method │ │ .method protected onRequestCompleted(Ljava/lang/Exception;)V │ .locals 8 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 324 │ + .line 321 │ if-eqz p1, :cond_1 │ │ - .line 325 │ + .line 322 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ const/4 v3, 0x0 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -251,59 +223,58 @@ │ iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ move-object v2, p1 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$200(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 343 │ + .line 338 │ :cond_0 │ - :goto_0 │ return-void │ │ - .line 329 │ + .line 326 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "request completed" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 330 │ + .line 327 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->isCancelled()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 333 │ + .line 330 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->timeoutRunnable:Ljava/lang/Runnable; │ │ if-eqz v0, :cond_2 │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ if-nez v0, :cond_2 │ │ - .line 334 │ + .line 331 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->removeAllCallbacks(Ljava/lang/Object;)V │ │ - .line 335 │ + .line 332 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ @@ -319,171 +290,141 @@ │ │ invoke-virtual {v1, v2, v4, v5}, Lcom/koushikdutta/async/AsyncServer;->postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ │ move-result-object v1 │ │ iput-object v1, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ - .line 338 │ + .line 335 │ :cond_2 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - iget-object v1, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - monitor-enter v1 │ + iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - .line 339 │ - :try_start_0 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ - │ - iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v6 │ │ .local v6, "i$":Ljava/util/Iterator; │ - :goto_1 │ + :goto_0 │ invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v0 │ │ - if-eqz v0, :cond_3 │ + if-eqz v0, :cond_0 │ │ invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v7 │ │ check-cast v7, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 340 │ + .line 336 │ .local v7, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ invoke-interface {v7, v0}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->onRequestSent(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestSentData;)V │ │ - goto :goto_1 │ - │ - .line 342 │ - .end local v6 # "i$":Ljava/util/Iterator; │ - .end local v7 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ - :catchall_0 │ - move-exception v0 │ - │ - monitor-exit v1 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ - │ - throw v0 │ - │ - .restart local v6 # "i$":Ljava/util/Iterator; │ - :cond_3 │ - :try_start_1 │ - monitor-exit v1 │ - :try_end_1 │ - .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ - │ goto :goto_0 │ .end method │ │ .method protected report(Ljava/lang/Exception;)V │ .locals 10 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 419 │ + .line 410 │ if-eqz p1, :cond_0 │ │ - .line 420 │ + .line 411 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "exception during response" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->loge(Ljava/lang/String;Ljava/lang/Exception;)V │ │ - .line 421 │ + .line 412 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->isCancelled()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 445 │ + .line 434 │ :cond_1 │ - :goto_0 │ return-void │ │ - .line 423 │ + .line 414 │ :cond_2 │ instance-of v0, p1, Lcom/koushikdutta/async/AsyncSSLException; │ │ if-eqz v0, :cond_3 │ │ - .line 424 │ + .line 415 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "SSL Exception" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->loge(Ljava/lang/String;Ljava/lang/Exception;)V │ │ move-object v6, p1 │ │ - .line 425 │ + .line 416 │ check-cast v6, Lcom/koushikdutta/async/AsyncSSLException; │ │ - .line 426 │ + .line 417 │ .local v6, "ase":Lcom/koushikdutta/async/AsyncSSLException; │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v0, v6}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->onHandshakeException(Lcom/koushikdutta/async/AsyncSSLException;)V │ │ - .line 427 │ + .line 418 │ invoke-virtual {v6}, Lcom/koushikdutta/async/AsyncSSLException;->getIgnore()Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ - .line 430 │ + .line 421 │ .end local v6 # "ase":Lcom/koushikdutta/async/AsyncSSLException; │ :cond_3 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->socket()Lcom/koushikdutta/async/AsyncSocket; │ │ move-result-object v9 │ │ - .line 431 │ + .line 422 │ .local v9, "socket":Lcom/koushikdutta/async/AsyncSocket; │ if-eqz v9, :cond_1 │ │ - .line 433 │ + .line 424 │ invoke-super {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->report(Ljava/lang/Exception;)V │ │ - .line 434 │ + .line 425 │ invoke-interface {v9}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ if-eqz p1, :cond_5 │ │ - .line 435 │ + .line 426 │ :cond_4 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ if-nez v0, :cond_5 │ │ if-eqz p1, :cond_5 │ │ - .line 436 │ + .line 427 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ const/4 v3, 0x0 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -491,113 +432,74 @@ │ iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ move-object v2, p1 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$200(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 439 │ + .line 430 │ :cond_5 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iput-object p1, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->exception:Ljava/lang/Exception; │ │ - .line 440 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ - │ - iget-object v1, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - monitor-enter v1 │ - │ - .line 441 │ - :try_start_0 │ + .line 431 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v7 │ │ .local v7, "i$":Ljava/util/Iterator; │ - :goto_1 │ + :goto_0 │ invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v0 │ │ - if-eqz v0, :cond_6 │ + if-eqz v0, :cond_1 │ │ invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 442 │ + .line 432 │ .local v8, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ invoke-interface {v8, v0}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->onResponseComplete(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;)V │ │ - goto :goto_1 │ - │ - .line 444 │ - .end local v7 # "i$":Ljava/util/Iterator; │ - .end local v8 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ - :catchall_0 │ - move-exception v0 │ - │ - monitor-exit v1 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ - │ - throw v0 │ - │ - .restart local v7 # "i$":Ljava/util/Iterator; │ - :cond_6 │ - :try_start_1 │ - monitor-exit v1 │ - :try_end_1 │ - .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ - │ goto :goto_0 │ .end method │ │ .method public setDataEmitter(Lcom/koushikdutta/async/DataEmitter;)V │ .locals 19 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ │ .prologue │ - .line 347 │ + .line 342 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ move-object/from16 v0, p1 │ │ iput-object v0, v2, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->bodyEmitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 348 │ - move-object/from16 v0, p0 │ - │ - iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ - │ - iget-object v3, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - monitor-enter v3 │ - │ - .line 349 │ - :try_start_0 │ + .line 343 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v12 │ │ .local v12, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z │ │ @@ -607,66 +509,49 @@ │ │ invoke-interface {v12}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v15 │ │ check-cast v15, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 350 │ + .line 344 │ .local v15, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ invoke-interface {v15, v2}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->onBodyDecoder(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;)V │ │ goto :goto_0 │ │ - .line 352 │ - .end local v12 # "i$":Ljava/util/Iterator; │ + .line 347 │ .end local v15 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ - :catchall_0 │ - move-exception v2 │ - │ - monitor-exit v3 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ - │ - throw v2 │ - │ - .restart local v12 # "i$":Ljava/util/Iterator; │ :cond_0 │ - :try_start_1 │ - monitor-exit v3 │ - :try_end_1 │ - .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ - │ - .line 354 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->bodyEmitter:Lcom/koushikdutta/async/DataEmitter; │ │ move-object/from16 v0, p0 │ │ invoke-super {v0, v2}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->setDataEmitter(Lcom/koushikdutta/async/DataEmitter;)V │ │ - .line 356 │ + .line 349 │ move-object/from16 v0, p0 │ │ iget-object v11, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ - .line 357 │ + .line 350 │ .local v11, "headers":Lcom/koushikdutta/async/http/Headers; │ invoke-virtual/range {p0 .. p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->code()I │ │ move-result v18 │ │ - .line 358 │ + .line 351 │ .local v18, "responseCode":I │ const/16 v2, 0x12d │ │ move/from16 v0, v18 │ │ if-eq v0, v2, :cond_1 │ │ @@ -689,37 +574,37 @@ │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getFollowRedirect()Z │ │ move-result v2 │ │ if-eqz v2, :cond_4 │ │ - .line 359 │ + .line 352 │ const-string v2, "Location" │ │ invoke-virtual {v11, v2}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v13 │ │ - .line 362 │ + .line 355 │ .local v13, "location":Ljava/lang/String; │ - :try_start_2 │ + :try_start_0 │ invoke-static {v13}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; │ │ move-result-object v17 │ │ - .line 363 │ + .line 356 │ .local v17, "redirect":Landroid/net/Uri; │ invoke-virtual/range {v17 .. v17}, Landroid/net/Uri;->getScheme()Ljava/lang/String; │ │ move-result-object v2 │ │ if-nez v2, :cond_2 │ │ - .line 364 │ + .line 357 │ new-instance v2, Ljava/net/URL; │ │ new-instance v3, Ljava/net/URL; │ │ move-object/from16 v0, p0 │ │ iget-object v5, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -737,20 +622,20 @@ │ invoke-direct {v2, v3, v13}, Ljava/net/URL;->(Ljava/net/URL;Ljava/lang/String;)V │ │ invoke-virtual {v2}, Ljava/net/URL;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; │ - :try_end_2 │ - .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 │ + :try_end_0 │ + .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v17 │ │ - .line 371 │ + .line 364 │ :cond_2 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getMethod()Ljava/lang/String; │ │ @@ -762,126 +647,126 @@ │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ const-string v14, "HEAD" │ │ - .line 372 │ + .line 365 │ .local v14, "method":Ljava/lang/String; │ :goto_1 │ new-instance v16, Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v0, v16 │ │ move-object/from16 v1, v17 │ │ invoke-direct {v0, v1, v14}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->(Landroid/net/Uri;Ljava/lang/String;)V │ │ - .line 373 │ + .line 366 │ .local v16, "newReq":Lcom/koushikdutta/async/http/AsyncHttpRequest; │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-wide v2, v2, Lcom/koushikdutta/async/http/AsyncHttpRequest;->executionTime:J │ │ move-object/from16 v0, v16 │ │ iput-wide v2, v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->executionTime:J │ │ - .line 374 │ + .line 367 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget v2, v2, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ move-object/from16 v0, v16 │ │ iput v2, v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ - .line 375 │ + .line 368 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ move-object/from16 v0, v16 │ │ iput-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ - .line 376 │ + .line 369 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ move-object/from16 v0, v16 │ │ iput-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ - .line 377 │ + .line 370 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget v2, v2, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyPort:I │ │ move-object/from16 v0, v16 │ │ iput v2, v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyPort:I │ │ - .line 378 │ + .line 371 │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->setupAndroidProxy(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ invoke-static/range {v16 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$500(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ - .line 379 │ + .line 372 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "User-Agent" │ │ move-object/from16 v0, v16 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->copyHeader(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ invoke-static {v2, v0, v3}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$600(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ │ - .line 380 │ + .line 373 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "Range" │ │ move-object/from16 v0, v16 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->copyHeader(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ invoke-static {v2, v0, v3}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$600(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ │ - .line 381 │ + .line 374 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "Redirecting" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logi(Ljava/lang/String;)V │ │ - .line 382 │ + .line 375 │ const-string v2, "Redirected" │ │ move-object/from16 v0, v16 │ │ invoke-virtual {v0, v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logi(Ljava/lang/String;)V │ │ - .line 383 │ + .line 376 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ move-object/from16 v0, p0 │ │ iget v3, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$redirectCount:I │ @@ -897,37 +782,37 @@ │ iget-object v6, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$callback:Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ move-object/from16 v0, v16 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static {v2, v0, v3, v5, v6}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$700(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 385 │ + .line 378 │ new-instance v2, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v2}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 393 │ + .line 386 │ .end local v13 # "location":Ljava/lang/String; │ .end local v14 # "method":Ljava/lang/String; │ .end local v16 # "newReq":Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .end local v17 # "redirect":Landroid/net/Uri; │ :goto_2 │ return-void │ │ - .line 367 │ + .line 360 │ .restart local v13 # "location":Ljava/lang/String; │ :catch_0 │ move-exception v4 │ │ - .line 368 │ + .line 361 │ .local v4, "e":Ljava/lang/Exception; │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ move-object/from16 v0, p0 │ │ @@ -944,23 +829,23 @@ │ move-object/from16 v5, p0 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ invoke-static/range {v2 .. v7}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$200(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ goto :goto_2 │ │ - .line 371 │ + .line 364 │ .end local v4 # "e":Ljava/lang/Exception; │ .restart local v17 # "redirect":Landroid/net/Uri; │ :cond_3 │ const-string v14, "GET" │ │ goto/16 :goto_1 │ │ - .line 389 │ + .line 382 │ .end local v13 # "location":Ljava/lang/String; │ .end local v17 # "redirect":Landroid/net/Uri; │ :cond_4 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ @@ -984,15 +869,15 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 392 │ + .line 385 │ move-object/from16 v0, p0 │ │ iget-object v5, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ move-object/from16 v0, p0 │ │ iget-object v6, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; ├── smali/com/koushikdutta/async/http/AsyncHttpClient$5.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 462 │ + .line 451 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$5;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$5;->val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,27 +42,27 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 1 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 465 │ + .line 454 │ if-eqz p1, :cond_0 │ │ - .line 466 │ + .line 455 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$5;->val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->report(Ljava/lang/Exception;)V │ │ - .line 469 │ + .line 458 │ :goto_0 │ return-void │ │ - .line 468 │ + .line 457 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$5;->val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->onHeadersSent()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$6.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 471 │ + .line 460 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$6;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$6;->val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,27 +42,27 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 1 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 474 │ + .line 463 │ if-eqz p1, :cond_0 │ │ - .line 475 │ + .line 464 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$6;->val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->report(Ljava/lang/Exception;)V │ │ - .line 478 │ + .line 467 │ :goto_0 │ return-void │ │ - .line 477 │ + .line 466 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$6;->val$ret:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->onHeadersReceived()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$7.smali │ @@ -30,17 +30,18 @@ │ │ .field final synthetic val$result:Ljava/lang/Object; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 544 │ + .line 531 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$callback:Lcom/koushikdutta/async/http/callback/RequestCallback; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$future:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ @@ -56,15 +57,15 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 6 │ │ .prologue │ - .line 547 │ + .line 534 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$callback:Lcom/koushikdutta/async/http/callback/RequestCallback; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$future:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ @@ -72,10 +73,10 @@ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$e:Ljava/lang/Exception; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->val$result:Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeWithAffinity(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$800(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 548 │ + .line 535 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$8.smali │ @@ -32,17 +32,18 @@ │ │ .field final synthetic val$fout:Ljava/io/OutputStream; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/io/OutputStream;Ljava/io/File;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 576 │ + .line 563 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$fout:Ljava/io/OutputStream; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$file:Ljava/io/File; │ @@ -54,15 +55,15 @@ │ │ │ # virtual methods │ .method public cancelCleanup()V │ .locals 2 │ │ .prologue │ - .line 580 │ + .line 567 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->get()Ljava/lang/Object; │ │ move-result-object v0 │ │ @@ -70,50 +71,50 @@ │ │ new-instance v1, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 581 │ + .line 568 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$cancel:Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->get()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->close()V │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 │ │ - .line 586 │ + .line 573 │ :goto_0 │ :try_start_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$fout:Ljava/io/OutputStream; │ │ invoke-virtual {v0}, Ljava/io/OutputStream;->close()V │ :try_end_1 │ .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 │ │ - .line 590 │ + .line 577 │ :goto_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->val$file:Ljava/io/File; │ │ invoke-virtual {v0}, Ljava/io/File;->delete()Z │ │ - .line 591 │ + .line 578 │ return-void │ │ - .line 588 │ + .line 575 │ :catch_0 │ move-exception v0 │ │ goto :goto_1 │ │ - .line 583 │ + .line 570 │ :catch_1 │ move-exception v0 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$9$1.smali │ @@ -21,18 +21,19 @@ │ │ .field final synthetic val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient$9;Ljava/io/OutputStream;Lcom/koushikdutta/async/http/AsyncHttpResponse;J)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ .param p2, "x0" # Ljava/io/OutputStream; │ │ .prologue │ - .line 613 │ + .line 600 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ iput-wide p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->val$contentLength:J │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/stream/OutputStreamDataCallback;->(Ljava/io/OutputStream;)V │ @@ -44,33 +45,33 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 8 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 616 │ + .line 603 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-wide v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->mDownloaded:J │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v1 │ │ int-to-long v4, v1 │ │ add-long/2addr v2, v4 │ │ iput-wide v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->mDownloaded:J │ │ - .line 617 │ + .line 604 │ invoke-super {p0, p1, p2}, Lcom/koushikdutta/async/stream/OutputStreamDataCallback;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 618 │ + .line 605 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v1, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback; │ @@ -82,10 +83,10 @@ │ iget-wide v4, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->mDownloaded:J │ │ iget-wide v6, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->val$contentLength:J │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeProgress(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ invoke-static/range {v1 .. v7}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$1100(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ │ - .line 619 │ + .line 606 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$9$2.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient$9;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ .prologue │ - .line 621 │ + .line 608 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -43,36 +44,36 @@ │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 8 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ const/4 v5, 0x0 │ │ - .line 625 │ + .line 612 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$fout:Ljava/io/OutputStream; │ │ invoke-virtual {v0}, Ljava/io/OutputStream;->close()V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 630 │ + .line 617 │ :goto_0 │ if-eqz p1, :cond_0 │ │ - .line 631 │ + .line 618 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$file:Ljava/io/File; │ │ invoke-virtual {v0}, Ljava/io/File;->delete()Z │ │ - .line 632 │ + .line 619 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback; │ @@ -84,29 +85,29 @@ │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->val$response:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ move-object v4, p1 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invoke(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$900(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 637 │ + .line 624 │ :goto_1 │ return-void │ │ - .line 627 │ + .line 614 │ :catch_0 │ move-exception v7 │ │ - .line 628 │ + .line 615 │ .local v7, "e":Ljava/io/IOException; │ move-object p1, v7 │ │ goto :goto_0 │ │ - .line 635 │ + .line 622 │ .end local v7 # "e":Ljava/io/IOException; │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ iget-object v1, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->this$1:Lcom/koushikdutta/async/http/AsyncHttpClient$9; ├── smali/com/koushikdutta/async/http/AsyncHttpClient$9.smali │ @@ -30,30 +30,31 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Ljava/io/OutputStream;Ljava/io/File;Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 594 │ + .line 581 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$fout:Ljava/io/OutputStream; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$file:Ljava/io/File; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback; │ │ iput-object p5, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 595 │ + .line 582 │ const-wide/16 v0, 0x0 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->mDownloaded:J │ │ return-void │ .end method │ │ @@ -61,32 +62,32 @@ │ # virtual methods │ .method public onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 6 │ .param p1, "ex" # Ljava/lang/Exception; │ .param p2, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 599 │ + .line 586 │ if-eqz p1, :cond_0 │ │ - .line 601 │ + .line 588 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$fout:Ljava/io/OutputStream; │ │ invoke-virtual {v0}, Ljava/io/OutputStream;->close()V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 605 │ + .line 592 │ :goto_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$file:Ljava/io/File; │ │ invoke-virtual {v0}, Ljava/io/File;->delete()Z │ │ - .line 606 │ + .line 593 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ const/4 v5, 0x0 │ @@ -94,61 +95,61 @@ │ move-object v3, p2 │ │ move-object v4, p1 │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invoke(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$900(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 639 │ + .line 626 │ :goto_1 │ return-void │ │ - .line 609 │ + .line 596 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$callback:Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeConnect(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ invoke-static {v0, v1, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->access$1000(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ - .line 611 │ + .line 598 │ invoke-interface {p2}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/HttpUtil;->contentLength(Lcom/koushikdutta/async/http/Headers;)I │ │ move-result v0 │ │ int-to-long v4, v0 │ │ - .line 613 │ + .line 600 │ .local v4, "contentLength":J │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->val$fout:Ljava/io/OutputStream; │ │ move-object v1, p0 │ │ move-object v3, p2 │ │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient$9$1;->(Lcom/koushikdutta/async/http/AsyncHttpClient$9;Ljava/io/OutputStream;Lcom/koushikdutta/async/http/AsyncHttpResponse;J)V │ │ invoke-interface {p2, v0}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 621 │ + .line 608 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2; │ │ invoke-direct {v0, p0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient$9$2;->(Lcom/koushikdutta/async/http/AsyncHttpClient$9;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ invoke-interface {p2, v0}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ goto :goto_1 │ │ - .line 603 │ + .line 590 │ .end local v4 # "contentLength":J │ :catch_0 │ move-exception v0 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$DownloadCallback.smali │ @@ -24,12 +24,12 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 500 │ + .line 487 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$FileCallback.smali │ @@ -24,12 +24,12 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 512 │ + .line 499 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse.smali │ @@ -34,88 +34,88 @@ │ │ │ # direct methods │ .method private constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;)V │ .locals 0 │ │ .prologue │ - .line 134 │ + .line 135 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ return-void │ .end method │ │ .method synthetic constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$1;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p2, "x1" # Lcom/koushikdutta/async/http/AsyncHttpClient$1; │ │ .prologue │ - .line 134 │ + .line 135 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->(Lcom/koushikdutta/async/http/AsyncHttpClient;)V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public cancel()Z │ .locals 2 │ │ .prologue │ - .line 141 │ + .line 142 │ invoke-super {p0}, Lcom/koushikdutta/async/future/SimpleFuture;->cancel()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 142 │ + .line 143 │ const/4 v0, 0x0 │ │ - .line 152 │ + .line 153 │ :goto_0 │ return v0 │ │ - .line 144 │ + .line 145 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ if-eqz v0, :cond_1 │ │ - .line 145 │ + .line 146 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ new-instance v1, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 146 │ + .line 147 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 149 │ + .line 150 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ if-eqz v0, :cond_2 │ │ - .line 150 │ + .line 151 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->this$0:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->removeAllCallbacks(Ljava/lang/Object;)V │ │ - .line 152 │ + .line 153 │ :cond_2 │ const/4 v0, 0x1 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$JSONArrayCallback.smali │ @@ -24,12 +24,12 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 509 │ + .line 496 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$JSONObjectCallback.smali │ @@ -24,12 +24,12 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 506 │ + .line 493 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase.smali │ @@ -29,37 +29,37 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 491 │ + .line 478 │ .local p0, "this":Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;, "Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;" │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onConnect(Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 0 │ .param p1, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 497 │ + .line 484 │ .local p0, "this":Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;, "Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;" │ return-void │ .end method │ │ .method public onProgress(Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ .locals 0 │ .param p1, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ .param p2, "downloaded" # J │ .param p4, "total" # J │ │ .prologue │ - .line 494 │ + .line 481 │ .local p0, "this":Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;, "Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;" │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient$StringCallback.smali │ @@ -24,12 +24,12 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 503 │ + .line 490 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$RequestCallbackBase;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpClient.smali │ @@ -25,18 +25,18 @@ │ │ .field private static mDefaultInstance:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ │ # instance fields │ .field httpTransportMiddleware:Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ -.field final mMiddleware:Ljava/util/ArrayList; │ +.field final mMiddleware:Ljava/util/List; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ - "Ljava/util/ArrayList", │ + "Ljava/util/List", │ "<", │ "Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;", │ ">;" │ } │ .end annotation │ .end field │ │ @@ -48,15 +48,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 50 │ + .line 51 │ const-class v0, Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -75,105 +75,105 @@ │ .end method │ │ .method public constructor (Lcom/koushikdutta/async/AsyncServer;)V │ .locals 2 │ .param p1, "server" # Lcom/koushikdutta/async/AsyncServer; │ │ .prologue │ - .line 71 │ + .line 72 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 59 │ - new-instance v0, Ljava/util/ArrayList; │ + .line 60 │ + new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList; │ │ - invoke-direct {v0}, Ljava/util/ArrayList;->()V │ + invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;->()V │ │ - iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - .line 72 │ + .line 73 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ - .line 73 │ + .line 74 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->(Lcom/koushikdutta/async/http/AsyncHttpClient;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->socketMiddleware:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->insertMiddleware(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;)V │ │ - .line 74 │ + .line 75 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;->(Lcom/koushikdutta/async/http/AsyncHttpClient;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->sslSocketMiddleware:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->insertMiddleware(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;)V │ │ - .line 75 │ + .line 76 │ new-instance v0, Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/HttpTransportMiddleware;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->httpTransportMiddleware:Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->insertMiddleware(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;)V │ │ - .line 76 │ + .line 77 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->sslSocketMiddleware:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ new-instance v1, Lcom/koushikdutta/async/http/SSLEngineSNIConfigurator; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/http/SSLEngineSNIConfigurator;->()V │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;->addEngineConfigurator(Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator;)V │ │ - .line 77 │ + .line 78 │ return-void │ .end method │ │ .method static synthetic access$100(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p1, "x1" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "x2" # I │ .param p3, "x3" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p4, "x4" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/AsyncHttpClient;->executeAffinity(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ return-void │ .end method │ │ .method static synthetic access$1000(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p1, "x1" # Lcom/koushikdutta/async/http/callback/RequestCallback; │ .param p2, "x2" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeConnect(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ return-void │ .end method │ │ .method static synthetic access$1100(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p1, "x1" # Lcom/koushikdutta/async/http/callback/RequestCallback; │ .param p2, "x2" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ .param p3, "x3" # J │ .param p5, "x4" # J │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct/range {p0 .. p6}, Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeProgress(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ │ return-void │ .end method │ │ .method static synthetic access$200(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 0 │ @@ -181,15 +181,15 @@ │ .param p1, "x1" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p2, "x2" # Ljava/lang/Exception; │ .param p3, "x3" # Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ .param p4, "x4" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p5, "x5" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct/range {p0 .. p5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ return-void │ .end method │ │ .method static synthetic access$300(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;)V │ .locals 0 │ @@ -197,67 +197,67 @@ │ .param p1, "x1" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "x2" # I │ .param p3, "x3" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p4, "x4" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ .param p5, "x5" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct/range {p0 .. p5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->executeSocket(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;)V │ │ return-void │ .end method │ │ .method static synthetic access$400(Lcom/koushikdutta/async/http/AsyncHttpRequest;)J │ .locals 2 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-static {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getTimeoutRemaining(Lcom/koushikdutta/async/http/AsyncHttpRequest;)J │ │ move-result-wide v0 │ │ return-wide v0 │ .end method │ │ .method static synthetic access$500(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-static {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->setupAndroidProxy(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ return-void │ .end method │ │ .method static synthetic access$600(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p1, "x1" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "x2" # Ljava/lang/String; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-static {p0, p1, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->copyHeader(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ │ return-void │ .end method │ │ .method static synthetic access$700(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p1, "x1" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "x2" # I │ .param p3, "x3" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p4, "x4" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ return-void │ .end method │ │ .method static synthetic access$800(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ @@ -265,15 +265,15 @@ │ .param p1, "x1" # Lcom/koushikdutta/async/http/callback/RequestCallback; │ .param p2, "x2" # Lcom/koushikdutta/async/future/SimpleFuture; │ .param p3, "x3" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ .param p4, "x4" # Ljava/lang/Exception; │ .param p5, "x5" # Ljava/lang/Object; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct/range {p0 .. p5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->invokeWithAffinity(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ return-void │ .end method │ │ .method static synthetic access$900(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ @@ -281,81 +281,81 @@ │ .param p1, "x1" # Lcom/koushikdutta/async/http/callback/RequestCallback; │ .param p2, "x2" # Lcom/koushikdutta/async/future/SimpleFuture; │ .param p3, "x3" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ .param p4, "x4" # Ljava/lang/Exception; │ .param p5, "x5" # Ljava/lang/Object; │ │ .prologue │ - .line 50 │ + .line 51 │ invoke-direct/range {p0 .. p5}, Lcom/koushikdutta/async/http/AsyncHttpClient;->invoke(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ return-void │ .end method │ │ .method private static copyHeader(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ .locals 2 │ .param p0, "from" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p1, "to" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "header" # Ljava/lang/String; │ │ .prologue │ - .line 202 │ + .line 203 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v1 │ │ invoke-virtual {v1, p2}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 203 │ + .line 204 │ .local v0, "value":Ljava/lang/String; │ invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ - .line 204 │ + .line 205 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v1 │ │ invoke-virtual {v1, p2, v0}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 205 │ + .line 206 │ :cond_0 │ return-void │ .end method │ │ .method private execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 7 │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "redirectCount" # I │ .param p3, "cancel" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p4, "callback" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ .prologue │ - .line 182 │ + .line 183 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/AsyncServer;->isAffinityThread()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 183 │ + .line 184 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/AsyncHttpClient;->executeAffinity(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 193 │ + .line 194 │ :goto_0 │ return-void │ │ - .line 186 │ + .line 187 │ :cond_0 │ iget-object v6, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$1; │ │ move-object v1, p0 │ │ @@ -378,15 +378,15 @@ │ .locals 16 │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "redirectCount" # I │ .param p3, "cancel" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p4, "callback" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ .prologue │ - .line 208 │ + .line 209 │ sget-boolean v2, Lcom/koushikdutta/async/http/AsyncHttpClient;->$assertionsDisabled:Z │ │ if-nez v2, :cond_0 │ │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ @@ -399,23 +399,23 @@ │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 209 │ + .line 210 │ :cond_0 │ const/16 v2, 0xf │ │ move/from16 v0, p2 │ │ if-le v0, v2, :cond_1 │ │ - .line 210 │ + .line 211 │ new-instance v4, Lcom/koushikdutta/async/http/RedirectLimitExceededException; │ │ const-string v2, "too many redirects" │ │ invoke-direct {v4, v2}, Lcom/koushikdutta/async/http/RedirectLimitExceededException;->(Ljava/lang/String;)V │ │ const/4 v5, 0x0 │ @@ -426,66 +426,58 @@ │ │ move-object/from16 v6, p1 │ │ move-object/from16 v7, p4 │ │ invoke-direct/range {v2 .. v7}, Lcom/koushikdutta/async/http/AsyncHttpClient;->reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 313 │ + .line 310 │ :goto_0 │ return-void │ │ - .line 213 │ + .line 214 │ :cond_1 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v15 │ │ - .line 214 │ + .line 215 │ .local v15, "uri":Landroid/net/Uri; │ new-instance v4, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ invoke-direct {v4}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->()V │ │ - .line 215 │ + .line 216 │ .local v4, "data":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v2 │ │ move-object/from16 v0, p1 │ │ iput-wide v2, v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->executionTime:J │ │ - .line 216 │ + .line 217 │ move-object/from16 v0, p1 │ │ iput-object v0, v4, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - .line 218 │ + .line 219 │ const-string v2, "Executing request." │ │ move-object/from16 v0, p1 │ │ invoke-virtual {v0, v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 220 │ - move-object/from16 v0, p0 │ - │ - iget-object v3, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - monitor-enter v3 │ - │ .line 221 │ - :try_start_0 │ move-object/from16 v0, p0 │ │ - iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v12 │ │ .local v12, "i$":Ljava/util/Iterator; │ :goto_1 │ invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z │ │ @@ -501,41 +493,24 @@ │ │ .line 222 │ .local v13, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ invoke-interface {v13, v4}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->onRequest(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestData;)V │ │ goto :goto_1 │ │ - .line 224 │ - .end local v12 # "i$":Ljava/util/Iterator; │ + .line 235 │ .end local v13 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ - :catchall_0 │ - move-exception v2 │ - │ - monitor-exit v3 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ - │ - throw v2 │ - │ - .restart local v12 # "i$":Ljava/util/Iterator; │ :cond_2 │ - :try_start_1 │ - monitor-exit v3 │ - :try_end_1 │ - .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ - │ - .line 236 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getTimeout()I │ │ move-result v2 │ │ if-lez v2, :cond_3 │ │ - .line 238 │ + .line 237 │ new-instance v2, Lcom/koushikdutta/async/http/AsyncHttpClient$2; │ │ move-object/from16 v3, p0 │ │ move-object/from16 v5, p3 │ │ move-object/from16 v6, p1 │ @@ -544,15 +519,15 @@ │ │ invoke-direct/range {v2 .. v7}, Lcom/koushikdutta/async/http/AsyncHttpClient$2;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ move-object/from16 v0, p3 │ │ iput-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->timeoutRunnable:Ljava/lang/Runnable; │ │ - .line 250 │ + .line 249 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ move-object/from16 v0, p3 │ │ iget-object v3, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->timeoutRunnable:Ljava/lang/Runnable; │ @@ -565,15 +540,15 @@ │ │ move-result-object v2 │ │ move-object/from16 v0, p3 │ │ iput-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ - .line 254 │ + .line 253 │ :cond_3 │ new-instance v5, Lcom/koushikdutta/async/http/AsyncHttpClient$3; │ │ move-object/from16 v6, p0 │ │ move-object/from16 v7, p1 │ │ @@ -585,38 +560,38 @@ │ │ move/from16 v11, p2 │ │ invoke-direct/range {v5 .. v11}, Lcom/koushikdutta/async/http/AsyncHttpClient$3;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;I)V │ │ iput-object v5, v4, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->connectCallback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ - .line 292 │ + .line 291 │ invoke-static/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpClient;->setupAndroidProxy(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ - .line 295 │ + .line 294 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getBody()Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ │ move-result-object v2 │ │ if-eqz v2, :cond_4 │ │ - .line 296 │ + .line 295 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v2 │ │ const-string v3, "Content-Type" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ if-nez v2, :cond_4 │ │ - .line 297 │ + .line 296 │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v2 │ │ const-string v3, "Content-Type" │ │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getBody()Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ @@ -625,29 +600,21 @@ │ │ invoke-interface {v5}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->getContentType()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v2, v3, v5}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 301 │ + .line 300 │ :cond_4 │ move-object/from16 v0, p0 │ │ - iget-object v3, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - monitor-enter v3 │ - │ - .line 302 │ - :try_start_2 │ - move-object/from16 v0, p0 │ - │ - iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v12 │ │ :cond_5 │ invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ @@ -656,99 +623,80 @@ │ │ invoke-interface {v12}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v13 │ │ check-cast v13, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 303 │ + .line 301 │ .restart local v13 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ invoke-interface {v13, v4}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->getSocket(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;)Lcom/koushikdutta/async/future/Cancellable; │ │ move-result-object v14 │ │ - .line 304 │ + .line 302 │ .local v14, "socketCancellable":Lcom/koushikdutta/async/future/Cancellable; │ if-eqz v14, :cond_5 │ │ - .line 305 │ + .line 303 │ iput-object v14, v4, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socketCancellable:Lcom/koushikdutta/async/future/Cancellable; │ │ - .line 306 │ + .line 304 │ move-object/from16 v0, p3 │ │ invoke-virtual {v0, v14}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 307 │ - monitor-exit v3 │ - │ goto/16 :goto_0 │ │ - .line 311 │ + .line 308 │ .end local v13 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ .end local v14 # "socketCancellable":Lcom/koushikdutta/async/future/Cancellable; │ - :catchall_1 │ - move-exception v2 │ - │ - monitor-exit v3 │ - :try_end_2 │ - .catchall {:try_start_2 .. :try_end_2} :catchall_1 │ - │ - throw v2 │ - │ - .line 310 │ :cond_6 │ - :try_start_3 │ new-instance v7, Ljava/lang/IllegalArgumentException; │ │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ - const-string v5, "invalid uri=" │ + const-string v3, "invalid uri=" │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ invoke-virtual/range {p1 .. p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ - move-result-object v5 │ + move-result-object v3 │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v5, " middlewares=" │ + const-string v3, " middlewares=" │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ move-object/from16 v0, p0 │ │ - iget-object v5, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + iget-object v3, v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-direct {v7, v2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ - .line 311 │ + .line 309 │ .local v7, "unsupportedURI":Ljava/lang/Exception; │ - monitor-exit v3 │ - :try_end_3 │ - .catchall {:try_start_3 .. :try_end_3} :catchall_1 │ - │ - .line 312 │ const/4 v8, 0x0 │ │ move-object/from16 v5, p0 │ │ move-object/from16 v6, p3 │ │ move-object/from16 v9, p1 │ @@ -765,15 +713,15 @@ │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "redirectCount" # I │ .param p3, "cancel" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p4, "callback" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ .param p5, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ .prologue │ - .line 321 │ + .line 318 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$4; │ │ move-object v1, p0 │ │ move-object v2, p1 │ │ move-object v3, p3 │ @@ -784,47 +732,41 @@ │ │ move-object v6, p5 │ │ move v7, p2 │ │ invoke-direct/range {v0 .. v7}, Lcom/koushikdutta/async/http/AsyncHttpClient$4;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;I)V │ │ - .line 462 │ + .line 451 │ .local v0, "ret":Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ new-instance v1, Lcom/koushikdutta/async/http/AsyncHttpClient$5; │ │ invoke-direct {v1, p0, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$5;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ │ iput-object v1, p5, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->sendHeadersCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ - .line 471 │ + .line 460 │ new-instance v1, Lcom/koushikdutta/async/http/AsyncHttpClient$6; │ │ invoke-direct {v1, p0, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$6;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ │ iput-object v1, p5, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->receiveHeadersCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ - .line 480 │ + .line 469 │ iput-object v0, p5, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - .line 481 │ + .line 470 │ iget-object v1, p5, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->setSocket(Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 483 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + .line 472 │ + iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ - monitor-enter v2 │ - │ - .line 484 │ - :try_start_0 │ - iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ - │ - invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v8 │ │ .local v8, "i$":Ljava/util/Iterator; │ :cond_0 │ invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ │ @@ -834,75 +776,61 @@ │ │ invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v9 │ │ check-cast v9, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 485 │ + .line 473 │ .local v9, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ invoke-interface {v9, p5}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;->exchangeHeaders(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 488 │ + .line 476 │ .end local v9 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ :cond_1 │ - monitor-exit v2 │ - │ - .line 489 │ return-void │ - │ - .line 488 │ - .end local v8 # "i$":Ljava/util/Iterator; │ - :catchall_0 │ - move-exception v1 │ - │ - monitor-exit v2 │ - :try_end_0 │ - .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ - │ - throw v1 │ .end method │ │ .method public static getDefaultInstance()Lcom/koushikdutta/async/http/AsyncHttpClient; │ .locals 2 │ │ .prologue │ - .line 53 │ + .line 54 │ sget-object v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mDefaultInstance:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ if-nez v0, :cond_0 │ │ - .line 54 │ + .line 55 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-static {}, Lcom/koushikdutta/async/AsyncServer;->getDefault()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpClient;->(Lcom/koushikdutta/async/AsyncServer;)V │ │ sput-object v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mDefaultInstance:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - .line 56 │ + .line 57 │ :cond_0 │ sget-object v0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mDefaultInstance:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ return-object v0 │ .end method │ │ .method private static getTimeoutRemaining(Lcom/koushikdutta/async/http/AsyncHttpRequest;)J │ .locals 2 │ .param p0, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 198 │ + .line 199 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getTimeout()I │ │ move-result v0 │ │ int-to-long v0, v0 │ │ return-wide v0 │ @@ -924,15 +852,15 @@ │ "Lcom/koushikdutta/async/http/AsyncHttpResponse;", │ "Ljava/lang/Exception;", │ "TT;)V" │ } │ .end annotation │ │ .prologue │ - .line 544 │ + .line 531 │ .local p1, "callback":Lcom/koushikdutta/async/http/callback/RequestCallback;, "Lcom/koushikdutta/async/http/callback/RequestCallback;" │ .local p2, "future":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ .local p5, "result":Ljava/lang/Object;, "TT;" │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$7; │ │ move-object v1, p0 │ │ @@ -944,56 +872,56 @@ │ │ move-object v5, p4 │ │ move-object v6, p5 │ │ invoke-direct/range {v0 .. v6}, Lcom/koushikdutta/async/http/AsyncHttpClient$7;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 550 │ + .line 537 │ .local v0, "runnable":Ljava/lang/Runnable; │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 551 │ + .line 538 │ return-void │ .end method │ │ .method private invokeConnect(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/http/callback/RequestCallback; │ .param p2, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 559 │ + .line 546 │ if-eqz p1, :cond_0 │ │ - .line 560 │ + .line 547 │ invoke-interface {p1, p2}, Lcom/koushikdutta/async/http/callback/RequestCallback;->onConnect(Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ - .line 561 │ + .line 548 │ :cond_0 │ return-void │ .end method │ │ .method private invokeProgress(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ .locals 1 │ .param p1, "callback" # Lcom/koushikdutta/async/http/callback/RequestCallback; │ .param p2, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ .param p3, "downloaded" # J │ .param p5, "total" # J │ │ .prologue │ - .line 554 │ + .line 541 │ if-eqz p1, :cond_0 │ │ - .line 555 │ + .line 542 │ invoke-interface/range {p1 .. p6}, Lcom/koushikdutta/async/http/callback/RequestCallback;->onProgress(Lcom/koushikdutta/async/http/AsyncHttpResponse;JJ)V │ │ - .line 556 │ + .line 543 │ :cond_0 │ return-void │ .end method │ │ .method private invokeWithAffinity(Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpResponse;Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 1 │ .param p3, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ @@ -1010,107 +938,107 @@ │ "Lcom/koushikdutta/async/http/AsyncHttpResponse;", │ "Ljava/lang/Exception;", │ "TT;)V" │ } │ .end annotation │ │ .prologue │ - .line 533 │ + .line 520 │ .local p1, "callback":Lcom/koushikdutta/async/http/callback/RequestCallback;, "Lcom/koushikdutta/async/http/callback/RequestCallback;" │ .local p2, "future":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ .local p5, "result":Ljava/lang/Object;, "TT;" │ if-eqz p4, :cond_1 │ │ - .line 534 │ + .line 521 │ invoke-virtual {p2, p4}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ │ move-result v0 │ │ - .line 537 │ + .line 524 │ .local v0, "complete":Z │ :goto_0 │ if-nez v0, :cond_2 │ │ - .line 541 │ + .line 528 │ :cond_0 │ :goto_1 │ return-void │ │ - .line 536 │ + .line 523 │ .end local v0 # "complete":Z │ :cond_1 │ invoke-virtual {p2, p5}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Object;)Z │ │ move-result v0 │ │ .restart local v0 # "complete":Z │ goto :goto_0 │ │ - .line 539 │ + .line 526 │ :cond_2 │ if-eqz p1, :cond_0 │ │ - .line 540 │ + .line 527 │ invoke-interface {p1, p4, p3, p5}, Lcom/koushikdutta/async/http/callback/RequestCallback;->onCompleted(Ljava/lang/Exception;Ljava/lang/Object;Ljava/lang/Object;)V │ │ goto :goto_1 │ .end method │ │ .method private reportConnectedCompleted(Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ .locals 3 │ .param p1, "cancel" # Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .param p2, "ex" # Ljava/lang/Exception; │ .param p3, "response" # Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ .param p4, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p5, "callback" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ │ .prologue │ - .line 157 │ + .line 158 │ sget-boolean v1, Lcom/koushikdutta/async/http/AsyncHttpClient;->$assertionsDisabled:Z │ │ if-nez v1, :cond_0 │ │ if-nez p5, :cond_0 │ │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ │ - .line 158 │ + .line 159 │ :cond_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ iget-object v2, p1, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->scheduled:Ljava/lang/Object; │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/AsyncServer;->removeAllCallbacks(Ljava/lang/Object;)V │ │ - .line 160 │ + .line 161 │ if-eqz p2, :cond_1 │ │ - .line 161 │ + .line 162 │ const-string v1, "Connection error" │ │ invoke-virtual {p4, v1, p2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->loge(Ljava/lang/String;Ljava/lang/Exception;)V │ │ - .line 162 │ + .line 163 │ invoke-virtual {p1, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->setComplete(Ljava/lang/Exception;)Z │ │ move-result v0 │ │ - .line 168 │ + .line 169 │ .local v0, "complete":Z │ :goto_0 │ if-eqz v0, :cond_2 │ │ - .line 169 │ + .line 170 │ invoke-interface {p5, p2, p3}, Lcom/koushikdutta/async/http/callback/HttpConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ - .line 170 │ + .line 171 │ sget-boolean v1, Lcom/koushikdutta/async/http/AsyncHttpClient;->$assertionsDisabled:Z │ │ if-nez v1, :cond_3 │ │ if-nez p2, :cond_3 │ │ invoke-virtual {p3}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->socket()Lcom/koushikdutta/async/AsyncSocket; │ @@ -1133,69 +1061,69 @@ │ │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ │ - .line 165 │ + .line 166 │ .end local v0 # "complete":Z │ :cond_1 │ const-string v1, "Connection successful" │ │ invoke-virtual {p4, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 166 │ + .line 167 │ invoke-virtual {p1, p3}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->setComplete(Ljava/lang/Object;)Z │ │ move-result v0 │ │ .restart local v0 # "complete":Z │ goto :goto_0 │ │ - .line 174 │ + .line 175 │ :cond_2 │ if-eqz p3, :cond_3 │ │ - .line 176 │ + .line 177 │ new-instance v1, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-virtual {p3, v1}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 177 │ + .line 178 │ invoke-virtual {p3}, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;->close()V │ │ - .line 179 │ + .line 180 │ :cond_3 │ return-void │ .end method │ │ .method private static setupAndroidProxy(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 8 │ .param p0, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .annotation build Landroid/annotation/SuppressLint; │ value = { │ "NewApi" │ } │ .end annotation │ │ .prologue │ - .line 82 │ + .line 83 │ iget-object v6, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ if-eqz v6, :cond_1 │ │ - .line 113 │ + .line 114 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 87 │ + .line 88 │ :cond_1 │ :try_start_0 │ invoke-static {}, Ljava/net/ProxySelector;->getDefault()Ljava/net/ProxySelector; │ │ move-result-object v6 │ │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ @@ -1212,116 +1140,116 @@ │ │ invoke-virtual {v6, v7}, Ljava/net/ProxySelector;->select(Ljava/net/URI;)Ljava/util/List; │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v2 │ │ - .line 93 │ + .line 94 │ .local v2, "proxies":Ljava/util/List;, "Ljava/util/List;" │ invoke-interface {v2}, Ljava/util/List;->isEmpty()Z │ │ move-result v6 │ │ if-nez v6, :cond_0 │ │ - .line 95 │ + .line 96 │ const/4 v6, 0x0 │ │ invoke-interface {v2, v6}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/net/Proxy; │ │ - .line 96 │ + .line 97 │ .local v3, "proxy":Ljava/net/Proxy; │ invoke-virtual {v3}, Ljava/net/Proxy;->type()Ljava/net/Proxy$Type; │ │ move-result-object v6 │ │ sget-object v7, Ljava/net/Proxy$Type;->HTTP:Ljava/net/Proxy$Type; │ │ if-ne v6, v7, :cond_0 │ │ - .line 98 │ + .line 99 │ invoke-virtual {v3}, Ljava/net/Proxy;->address()Ljava/net/SocketAddress; │ │ move-result-object v6 │ │ instance-of v6, v6, Ljava/net/InetSocketAddress; │ │ if-eqz v6, :cond_0 │ │ - .line 100 │ + .line 101 │ invoke-virtual {v3}, Ljava/net/Proxy;->address()Ljava/net/SocketAddress; │ │ move-result-object v4 │ │ check-cast v4, Ljava/net/InetSocketAddress; │ │ - .line 102 │ + .line 103 │ .local v4, "proxyAddress":Ljava/net/InetSocketAddress; │ sget v6, Landroid/os/Build$VERSION;->SDK_INT:I │ │ const/16 v7, 0xe │ │ if-lt v6, v7, :cond_2 │ │ - .line 103 │ + .line 104 │ invoke-virtual {v4}, Ljava/net/InetSocketAddress;->getHostString()Ljava/lang/String; │ │ move-result-object v5 │ │ - .line 112 │ + .line 113 │ .local v5, "proxyHost":Ljava/lang/String; │ :goto_1 │ invoke-virtual {v4}, Ljava/net/InetSocketAddress;->getPort()I │ │ move-result v6 │ │ invoke-virtual {p0, v5, v6}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->enableProxy(Ljava/lang/String;I)V │ │ goto :goto_0 │ │ - .line 89 │ + .line 90 │ .end local v2 # "proxies":Ljava/util/List;, "Ljava/util/List;" │ .end local v3 # "proxy":Ljava/net/Proxy; │ .end local v4 # "proxyAddress":Ljava/net/InetSocketAddress; │ .end local v5 # "proxyHost":Ljava/lang/String; │ :catch_0 │ move-exception v1 │ │ - .line 91 │ + .line 92 │ .local v1, "e":Ljava/lang/Exception; │ goto :goto_0 │ │ - .line 106 │ + .line 107 │ .end local v1 # "e":Ljava/lang/Exception; │ .restart local v2 # "proxies":Ljava/util/List;, "Ljava/util/List;" │ .restart local v3 # "proxy":Ljava/net/Proxy; │ .restart local v4 # "proxyAddress":Ljava/net/InetSocketAddress; │ :cond_2 │ invoke-virtual {v4}, Ljava/net/InetSocketAddress;->getAddress()Ljava/net/InetAddress; │ │ move-result-object v0 │ │ - .line 107 │ + .line 108 │ .local v0, "address":Ljava/net/InetAddress; │ if-eqz v0, :cond_3 │ │ - .line 108 │ + .line 109 │ invoke-virtual {v0}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String; │ │ move-result-object v5 │ │ .restart local v5 # "proxyHost":Ljava/lang/String; │ goto :goto_1 │ │ - .line 110 │ + .line 111 │ .end local v5 # "proxyHost":Ljava/lang/String; │ :cond_3 │ invoke-virtual {v4}, Ljava/net/InetSocketAddress;->getHostName()Ljava/lang/String; │ │ move-result-object v5 │ │ .restart local v5 # "proxyHost":Ljava/lang/String; │ @@ -1344,27 +1272,27 @@ │ "<", │ "Lcom/koushikdutta/async/http/AsyncHttpResponse;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 125 │ + .line 126 │ const/4 v1, 0x0 │ │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ const/4 v2, 0x0 │ │ invoke-direct {v0, p0, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$1;)V │ │ .local v0, "ret":Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ invoke-direct {p0, p1, v1, v0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 126 │ + .line 127 │ return-object v0 │ .end method │ │ .method public execute(Ljava/lang/String;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)Lcom/koushikdutta/async/future/Future; │ .locals 1 │ .param p1, "uri" # Ljava/lang/String; │ .param p2, "callback" # Lcom/koushikdutta/async/http/callback/HttpConnectCallback; │ @@ -1378,15 +1306,15 @@ │ "<", │ "Lcom/koushikdutta/async/http/AsyncHttpResponse;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 130 │ + .line 131 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpGet; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/async/http/AsyncHttpGet;->(Ljava/lang/String;)V │ │ invoke-virtual {p0, v0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ @@ -1409,43 +1337,43 @@ │ ";)", │ "Lcom/koushikdutta/async/future/SimpleFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 645 │ + .line 632 │ .local p2, "parser":Lcom/koushikdutta/async/parser/AsyncParser;, "Lcom/koushikdutta/async/parser/AsyncParser;" │ .local p3, "callback":Lcom/koushikdutta/async/http/callback/RequestCallback;, "Lcom/koushikdutta/async/http/callback/RequestCallback;" │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ const/4 v2, 0x0 │ │ invoke-direct {v0, p0, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$1;)V │ │ - .line 646 │ + .line 633 │ .local v0, "cancel":Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ new-instance v1, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 647 │ + .line 634 │ .local v1, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ const/4 v2, 0x0 │ │ new-instance v3, Lcom/koushikdutta/async/http/AsyncHttpClient$10; │ │ invoke-direct {v3, p0, p3, v1, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient$10;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/callback/RequestCallback;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/parser/AsyncParser;)V │ │ invoke-direct {p0, p1, v2, v0, v3}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ - .line 668 │ + .line 655 │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/future/SimpleFuture;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 669 │ + .line 656 │ return-object v1 │ .end method │ │ .method public executeByteBufferList(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$DownloadCallback;)Lcom/koushikdutta/async/future/Future; │ .locals 1 │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "callback" # Lcom/koushikdutta/async/http/AsyncHttpClient$DownloadCallback; │ @@ -1459,15 +1387,15 @@ │ "<", │ "Lcom/koushikdutta/async/ByteBufferList;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 516 │ + .line 503 │ new-instance v0, Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/ByteBufferListParser;->()V │ │ invoke-virtual {p0, p1, v0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/parser/AsyncParser;Lcom/koushikdutta/async/http/callback/RequestCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ move-result-object v0 │ @@ -1491,100 +1419,100 @@ │ "<", │ "Ljava/io/File;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 564 │ + .line 551 │ new-instance v3, Ljava/io/File; │ │ invoke-direct {v3, p2}, Ljava/io/File;->(Ljava/lang/String;)V │ │ - .line 565 │ + .line 552 │ .local v3, "file":Ljava/io/File; │ invoke-virtual {v3}, Ljava/io/File;->getParentFile()Ljava/io/File; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z │ │ - .line 568 │ + .line 555 │ :try_start_0 │ new-instance v2, Ljava/io/BufferedOutputStream; │ │ new-instance v0, Ljava/io/FileOutputStream; │ │ invoke-direct {v0, v3}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V │ │ const/16 v1, 0x2000 │ │ invoke-direct {v2, v0, v1}, Ljava/io/BufferedOutputStream;->(Ljava/io/OutputStream;I)V │ :try_end_0 │ .catch Ljava/io/FileNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 575 │ + .line 562 │ .local v2, "fout":Ljava/io/OutputStream; │ new-instance v6, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ │ const/4 v0, 0x0 │ │ invoke-direct {v6, p0, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$1;)V │ │ - .line 576 │ + .line 563 │ .local v6, "cancel":Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ new-instance v5, Lcom/koushikdutta/async/http/AsyncHttpClient$8; │ │ invoke-direct {v5, p0, v6, v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpClient$8;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Ljava/io/OutputStream;Ljava/io/File;)V │ │ - .line 593 │ + .line 580 │ .local v5, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/future/SimpleFuture;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 594 │ + .line 581 │ const/4 v9, 0x0 │ │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpClient$9; │ │ move-object v1, p0 │ │ move-object v4, p3 │ │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncHttpClient$9;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Ljava/io/OutputStream;Ljava/io/File;Lcom/koushikdutta/async/http/AsyncHttpClient$FileCallback;Lcom/koushikdutta/async/future/SimpleFuture;)V │ │ invoke-direct {p0, p1, v9, v6, v0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;ILcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)V │ │ move-object v8, v5 │ │ - .line 641 │ + .line 628 │ .end local v2 # "fout":Ljava/io/OutputStream; │ .end local v5 # "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ .end local v6 # "cancel":Lcom/koushikdutta/async/http/AsyncHttpClient$FutureAsyncHttpResponse; │ .local v8, "ret":Ljava/lang/Object;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ :goto_0 │ return-object v8 │ │ - .line 570 │ + .line 557 │ .end local v8 # "ret":Ljava/lang/Object;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ :catch_0 │ move-exception v7 │ │ - .line 571 │ + .line 558 │ .local v7, "e":Ljava/io/FileNotFoundException; │ new-instance v5, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v5}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 572 │ + .line 559 │ .restart local v5 # "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ invoke-virtual {v5, v7}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ │ move-object v8, v5 │ │ - .line 573 │ + .line 560 │ .restart local v8 # "ret":Ljava/lang/Object;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ goto :goto_0 │ .end method │ │ .method public executeJSONArray(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$JSONArrayCallback;)Lcom/koushikdutta/async/future/Future; │ .locals 1 │ .param p1, "req" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -1599,15 +1527,15 @@ │ "<", │ "Lorg/json/JSONArray;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 528 │ + .line 515 │ new-instance v0, Lcom/koushikdutta/async/parser/JSONArrayParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/JSONArrayParser;->()V │ │ invoke-virtual {p0, p1, v0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/parser/AsyncParser;Lcom/koushikdutta/async/http/callback/RequestCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ move-result-object v0 │ @@ -1629,15 +1557,15 @@ │ "<", │ "Lorg/json/JSONObject;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 524 │ + .line 511 │ new-instance v0, Lcom/koushikdutta/async/parser/JSONObjectParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/JSONObjectParser;->()V │ │ invoke-virtual {p0, p1, v0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/parser/AsyncParser;Lcom/koushikdutta/async/http/callback/RequestCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ move-result-object v0 │ @@ -1659,88 +1587,88 @@ │ "<", │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 520 │ + .line 507 │ new-instance v0, Lcom/koushikdutta/async/parser/StringParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/StringParser;->()V │ │ invoke-virtual {p0, p1, v0, p2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/parser/AsyncParser;Lcom/koushikdutta/async/http/callback/RequestCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method public getMiddleware()Ljava/util/ArrayList; │ +.method public getMiddleware()Ljava/util/Collection; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()", │ - "Ljava/util/ArrayList", │ + "Ljava/util/Collection", │ "<", │ "Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 61 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + .line 62 │ + iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ return-object v0 │ .end method │ │ .method public getSSLSocketMiddleware()Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ .locals 1 │ │ .prologue │ - .line 120 │ + .line 121 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->sslSocketMiddleware:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ return-object v0 │ .end method │ │ .method public getServer()Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ │ .prologue │ - .line 714 │ + .line 702 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mServer:Lcom/koushikdutta/async/AsyncServer; │ │ return-object v0 │ .end method │ │ .method public getSocketMiddleware()Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ .locals 1 │ │ .prologue │ - .line 116 │ + .line 117 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->socketMiddleware:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ return-object v0 │ .end method │ │ .method public insertMiddleware(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;)V │ .locals 2 │ .param p1, "middleware" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ .prologue │ - .line 64 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/ArrayList; │ + .line 65 │ + iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpClient;->mMiddleware:Ljava/util/List; │ │ const/4 v1, 0x0 │ │ - invoke-virtual {v0, v1, p1}, Ljava/util/ArrayList;->add(ILjava/lang/Object;)V │ + invoke-interface {v0, v1, p1}, Ljava/util/List;->add(ILjava/lang/Object;)V │ │ - .line 65 │ + .line 66 │ return-void │ .end method │ │ .method public websocket(Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;)Lcom/koushikdutta/async/future/Future; │ .locals 3 │ .param p1, "req" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p2, "protocol" # Ljava/lang/String; │ @@ -1756,37 +1684,37 @@ │ "<", │ "Lcom/koushikdutta/async/http/WebSocket;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 677 │ + .line 664 │ invoke-static {p1, p2}, Lcom/koushikdutta/async/http/WebSocketImpl;->addWebSocketUpgradeHeaders(Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;)V │ │ - .line 678 │ + .line 665 │ new-instance v1, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 679 │ + .line 666 │ .local v1, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ new-instance v2, Lcom/koushikdutta/async/http/AsyncHttpClient$11; │ │ invoke-direct {v2, p0, v1, p3, p1}, Lcom/koushikdutta/async/http/AsyncHttpClient$11;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ invoke-virtual {p0, p1, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->execute(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/callback/HttpConnectCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ - .line 703 │ + .line 691 │ .local v0, "connect":Lcom/koushikdutta/async/future/Cancellable; │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/future/SimpleFuture;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 704 │ + .line 692 │ return-object v1 │ .end method │ │ .method public websocket(Ljava/lang/String;Ljava/lang/String;Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;)Lcom/koushikdutta/async/future/Future; │ .locals 4 │ .param p1, "uri" # Ljava/lang/String; │ .param p2, "protocol" # Ljava/lang/String; │ @@ -1802,15 +1730,15 @@ │ "<", │ "Lcom/koushikdutta/async/http/WebSocket;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 709 │ + .line 697 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpGet; │ │ const-string v1, "ws://" │ │ const-string v2, "http://" │ │ invoke-virtual {p1, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; │ @@ -1823,15 +1751,15 @@ │ │ invoke-virtual {v1, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpGet;->(Ljava/lang/String;)V │ │ - .line 710 │ + .line 698 │ .local v0, "get":Lcom/koushikdutta/async/http/AsyncHttpGet; │ invoke-virtual {p0, v0, p2, p3}, Lcom/koushikdutta/async/http/AsyncHttpClient;->websocket(Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/String;Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v1 │ │ return-object v1 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpRequest$1.smali │ @@ -20,31 +20,32 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 11 │ + .line 13 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public getMethod()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 24 │ + .line 26 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ # getter for: Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ invoke-static {v0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->access$000(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Ljava/lang/String; │ │ move-result-object v0 │ │ @@ -53,138 +54,140 @@ │ │ .method public getProtocolVersion()Lcom/koushikdutta/async/http/ProtocolVersion; │ .locals 3 │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 19 │ + .line 21 │ new-instance v0, Lcom/koushikdutta/async/http/ProtocolVersion; │ │ const-string v1, "HTTP" │ │ invoke-direct {v0, v1, v2, v2}, Lcom/koushikdutta/async/http/ProtocolVersion;->(Ljava/lang/String;II)V │ │ return-object v0 │ .end method │ │ .method public getUri()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 14 │ + .line 16 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ - .locals 7 │ + .locals 8 │ │ .prologue │ const/4 v4, 0x2 │ │ - const/4 v6, 0x1 │ + const/4 v7, 0x1 │ │ - const/4 v5, 0x0 │ + const/4 v6, 0x0 │ │ - .line 29 │ + .line 31 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ if-eqz v2, :cond_0 │ │ - .line 30 │ - const-string v2, "%s %s HTTP/1.1" │ + .line 32 │ + sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v3, "%s %s HTTP/1.1" │ │ - new-array v3, v4, [Ljava/lang/Object; │ + new-array v4, v4, [Ljava/lang/Object; │ │ - iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ # getter for: Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ - invoke-static {v4}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->access$000(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Ljava/lang/String; │ + invoke-static {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->access$000(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v3, v5 │ + aput-object v5, v4, v6 │ │ - iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - invoke-virtual {v4}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ + invoke-virtual {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v3, v6 │ + aput-object v5, v4, v7 │ │ - invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v2, v3, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 38 │ + .line 40 │ :goto_0 │ return-object v2 │ │ - .line 31 │ + .line 33 │ :cond_0 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/net/Uri;->getEncodedPath()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 32 │ + .line 34 │ .local v0, "path":Ljava/lang/String; │ if-eqz v0, :cond_1 │ │ invoke-virtual {v0}, Ljava/lang/String;->length()I │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ - .line 33 │ + .line 35 │ :cond_1 │ const-string v0, "/" │ │ - .line 34 │ + .line 36 │ :cond_2 │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/net/Uri;->getEncodedQuery()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 35 │ + .line 37 │ .local v1, "query":Ljava/lang/String; │ if-eqz v1, :cond_3 │ │ invoke-virtual {v1}, Ljava/lang/String;->length()I │ │ move-result v2 │ │ if-eqz v2, :cond_3 │ │ - .line 36 │ + .line 38 │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ @@ -199,30 +202,32 @@ │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 38 │ + .line 40 │ :cond_3 │ - const-string v2, "%s %s HTTP/1.1" │ + sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v3, "%s %s HTTP/1.1" │ │ - new-array v3, v4, [Ljava/lang/Object; │ + new-array v4, v4, [Ljava/lang/Object; │ │ - iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ # getter for: Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ - invoke-static {v4}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->access$000(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Ljava/lang/String; │ + invoke-static {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->access$000(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v3, v5 │ + aput-object v5, v4, v6 │ │ - aput-object v0, v3, v6 │ + aput-object v0, v4, v7 │ │ - invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v2, v3, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/AsyncHttpRequest.smali │ @@ -34,15 +34,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 9 │ + .line 11 │ const-class v0, Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -62,128 +62,128 @@ │ │ .method public constructor (Landroid/net/Uri;Ljava/lang/String;)V │ .locals 1 │ .param p1, "uri" # Landroid/net/Uri; │ .param p2, "method" # Ljava/lang/String; │ │ .prologue │ - .line 61 │ + .line 63 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, v0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->(Landroid/net/Uri;Ljava/lang/String;Lcom/koushikdutta/async/http/Headers;)V │ │ - .line 62 │ + .line 64 │ return-void │ .end method │ │ .method public constructor (Landroid/net/Uri;Ljava/lang/String;Lcom/koushikdutta/async/http/Headers;)V │ .locals 1 │ .param p1, "uri" # Landroid/net/Uri; │ .param p2, "method" # Ljava/lang/String; │ .param p3, "headers" # Lcom/koushikdutta/async/http/Headers; │ │ .prologue │ - .line 78 │ + .line 80 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 95 │ + .line 97 │ new-instance v0, Lcom/koushikdutta/async/http/Headers; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/Headers;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ - .line 101 │ + .line 103 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mFollowRedirect:Z │ │ - .line 123 │ + .line 125 │ const/16 v0, 0x7530 │ │ iput v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mTimeout:I │ │ - .line 144 │ + .line 146 │ const/4 v0, -0x1 │ │ iput v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyPort:I │ │ - .line 79 │ + .line 81 │ sget-boolean v0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->$assertionsDisabled:Z │ │ if-nez v0, :cond_0 │ │ if-nez p1, :cond_0 │ │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ │ - .line 80 │ + .line 82 │ :cond_0 │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ │ - .line 81 │ + .line 83 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->uri:Landroid/net/Uri; │ │ - .line 82 │ + .line 84 │ if-nez p3, :cond_2 │ │ - .line 83 │ + .line 85 │ new-instance v0, Lcom/koushikdutta/async/http/Headers; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/Headers;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ - .line 86 │ + .line 88 │ :goto_0 │ if-nez p3, :cond_1 │ │ - .line 87 │ + .line 89 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ invoke-static {v0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->setDefaultHeaders(Lcom/koushikdutta/async/http/Headers;Landroid/net/Uri;)V │ │ - .line 88 │ + .line 90 │ :cond_1 │ return-void │ │ - .line 85 │ + .line 87 │ :cond_2 │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ goto :goto_0 │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Ljava/lang/String; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 9 │ + .line 11 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method protected static getDefaultUserAgent()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 44 │ + .line 46 │ const-string v1, "http.agent" │ │ invoke-static {v1}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 45 │ + .line 47 │ .local v0, "agent":Ljava/lang/String; │ if-eqz v0, :cond_0 │ │ .end local v0 # "agent":Ljava/lang/String; │ :goto_0 │ return-object v0 │ │ @@ -213,105 +213,107 @@ │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method private getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ - .locals 6 │ + .locals 7 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 186 │ + .line 188 │ iget-wide v2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->executionTime:J │ │ const-wide/16 v4, 0x0 │ │ cmp-long v2, v2, v4 │ │ if-eqz v2, :cond_0 │ │ - .line 187 │ + .line 189 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v2 │ │ iget-wide v4, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->executionTime:J │ │ sub-long v0, v2, v4 │ │ - .line 190 │ + .line 192 │ .local v0, "elapsed":J │ :goto_0 │ - const-string v2, "(%d ms) %s: %s" │ + sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v3, "(%d ms) %s: %s" │ │ - const/4 v3, 0x3 │ + const/4 v4, 0x3 │ │ - new-array v3, v3, [Ljava/lang/Object; │ + new-array v4, v4, [Ljava/lang/Object; │ │ - const/4 v4, 0x0 │ + const/4 v5, 0x0 │ │ invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v3, v4 │ + aput-object v6, v4, v5 │ │ - const/4 v4, 0x1 │ + const/4 v5, 0x1 │ │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v3, v4 │ + aput-object v6, v4, v5 │ │ - const/4 v4, 0x2 │ + const/4 v5, 0x2 │ │ - aput-object p1, v3, v4 │ + aput-object p1, v4, v5 │ │ - invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v2, v3, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ return-object v2 │ │ - .line 189 │ + .line 191 │ .end local v0 # "elapsed":J │ :cond_0 │ const-wide/16 v0, 0x0 │ │ .restart local v0 # "elapsed":J │ goto :goto_0 │ .end method │ │ .method public static setDefaultHeaders(Lcom/koushikdutta/async/http/Headers;Landroid/net/Uri;)V │ .locals 3 │ .param p0, "ret" # Lcom/koushikdutta/async/http/Headers; │ .param p1, "uri" # Landroid/net/Uri; │ │ .prologue │ - .line 65 │ + .line 67 │ if-eqz p1, :cond_1 │ │ - .line 66 │ + .line 68 │ invoke-virtual {p1}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 67 │ + .line 69 │ .local v0, "host":Ljava/lang/String; │ invoke-virtual {p1}, Landroid/net/Uri;->getPort()I │ │ move-result v1 │ │ const/4 v2, -0x1 │ │ if-eq v1, v2, :cond_0 │ │ - .line 68 │ + .line 70 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -330,248 +332,248 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 69 │ + .line 71 │ :cond_0 │ if-eqz v0, :cond_1 │ │ - .line 70 │ + .line 72 │ const-string v1, "Host" │ │ invoke-virtual {p0, v1, v0}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 72 │ + .line 74 │ .end local v0 # "host":Ljava/lang/String; │ :cond_1 │ const-string v1, "User-Agent" │ │ invoke-static {}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getDefaultUserAgent()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {p0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 73 │ + .line 75 │ const-string v1, "Accept-Encoding" │ │ const-string v2, "gzip, deflate" │ │ invoke-virtual {p0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 74 │ + .line 76 │ const-string v1, "Connection" │ │ const-string v2, "keep-alive" │ │ invoke-virtual {p0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 75 │ + .line 77 │ const-string v1, "Accept" │ │ const-string v2, "*/*" │ │ invoke-virtual {p0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 76 │ + .line 78 │ return-void │ .end method │ │ │ # virtual methods │ .method public addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .locals 1 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "value" # Ljava/lang/String; │ │ .prologue │ - .line 139 │ + .line 141 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ invoke-virtual {v0, p1, p2}, Lcom/koushikdutta/async/http/Headers;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 140 │ + .line 142 │ return-object p0 │ .end method │ │ .method public disableProxy()V │ .locals 1 │ │ .prologue │ - .line 151 │ + .line 153 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ - .line 152 │ + .line 154 │ const/4 v0, -0x1 │ │ iput v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyPort:I │ │ - .line 153 │ + .line 155 │ return-void │ .end method │ │ .method public enableProxy(Ljava/lang/String;I)V │ .locals 0 │ .param p1, "host" # Ljava/lang/String; │ .param p2, "port" # I │ │ .prologue │ - .line 146 │ + .line 148 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ - .line 147 │ + .line 149 │ iput p2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyPort:I │ │ - .line 148 │ + .line 150 │ return-void │ .end method │ │ .method public getBody()Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ .locals 1 │ │ .prologue │ - .line 116 │ + .line 118 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mBody:Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ │ return-object v0 │ .end method │ │ .method public getFollowRedirect()Z │ .locals 1 │ │ .prologue │ - .line 103 │ + .line 105 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mFollowRedirect:Z │ │ return v0 │ .end method │ │ .method public getHeaders()Lcom/koushikdutta/async/http/Headers; │ .locals 1 │ │ .prologue │ - .line 98 │ + .line 100 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ return-object v0 │ .end method │ │ .method public getLogLevel()I │ .locals 1 │ │ .prologue │ - .line 178 │ + .line 180 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ return v0 │ .end method │ │ .method public getLogTag()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 181 │ + .line 183 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method public getMethod()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 50 │ + .line 52 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method public getProxyHost()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 156 │ + .line 158 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyHost:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method public getProxyPort()I │ .locals 1 │ │ .prologue │ - .line 160 │ + .line 162 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->proxyPort:I │ │ return v0 │ .end method │ │ .method public getRequestLine()Lcom/koushikdutta/async/http/RequestLine; │ .locals 1 │ │ .prologue │ - .line 11 │ + .line 13 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncHttpRequest$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest$1;->(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ return-object v0 │ .end method │ │ .method public getTimeout()I │ .locals 1 │ │ .prologue │ - .line 125 │ + .line 127 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mTimeout:I │ │ return v0 │ .end method │ │ .method public getUri()Landroid/net/Uri; │ .locals 1 │ │ .prologue │ - .line 92 │ + .line 94 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->uri:Landroid/net/Uri; │ │ return-object v0 │ .end method │ │ .method public logd(Ljava/lang/String;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 214 │ + .line 216 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 219 │ + .line 221 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 216 │ + .line 218 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x3 │ │ if-gt v0, v1, :cond_0 │ │ - .line 218 │ + .line 220 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ @@ -581,42 +583,42 @@ │ │ .method public logd(Ljava/lang/String;Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ .param p2, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 221 │ + .line 223 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 227 │ + .line 229 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 223 │ + .line 225 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x3 │ │ if-gt v0, v1, :cond_0 │ │ - .line 225 │ + .line 227 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ - .line 226 │ + .line 228 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-virtual {p2}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ @@ -625,33 +627,33 @@ │ .end method │ │ .method public loge(Ljava/lang/String;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 229 │ + .line 231 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 234 │ + .line 236 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 231 │ + .line 233 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x6 │ │ if-gt v0, v1, :cond_0 │ │ - .line 233 │ + .line 235 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ @@ -661,42 +663,42 @@ │ │ .method public loge(Ljava/lang/String;Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ .param p2, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 236 │ + .line 238 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 242 │ + .line 244 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 238 │ + .line 240 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x6 │ │ if-gt v0, v1, :cond_0 │ │ - .line 240 │ + .line 242 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ - .line 241 │ + .line 243 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-virtual {p2}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ @@ -705,33 +707,33 @@ │ .end method │ │ .method public logi(Ljava/lang/String;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 193 │ + .line 195 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 198 │ + .line 200 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 195 │ + .line 197 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x4 │ │ if-gt v0, v1, :cond_0 │ │ - .line 197 │ + .line 199 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ @@ -740,33 +742,33 @@ │ .end method │ │ .method public logv(Ljava/lang/String;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 200 │ + .line 202 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 205 │ + .line 207 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 202 │ + .line 204 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x2 │ │ if-gt v0, v1, :cond_0 │ │ - .line 204 │ + .line 206 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I │ @@ -775,33 +777,33 @@ │ .end method │ │ .method public logw(Ljava/lang/String;)V │ .locals 2 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 207 │ + .line 209 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 212 │ + .line 214 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 209 │ + .line 211 │ :cond_1 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ const/4 v1, 0x5 │ │ if-gt v0, v1, :cond_0 │ │ - .line 211 │ + .line 213 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getLogMessage(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ @@ -810,133 +812,133 @@ │ .end method │ │ .method public onHandshakeException(Lcom/koushikdutta/async/AsyncSSLException;)V │ .locals 0 │ .param p1, "e" # Lcom/koushikdutta/async/AsyncSSLException; │ │ .prologue │ - .line 120 │ + .line 122 │ return-void │ .end method │ │ .method public setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)V │ .locals 0 │ .param p1, "body" # Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ │ .prologue │ - .line 112 │ + .line 114 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mBody:Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ │ - .line 113 │ + .line 115 │ return-void │ .end method │ │ .method public setFollowRedirect(Z)Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .locals 0 │ .param p1, "follow" # Z │ │ .prologue │ - .line 106 │ + .line 108 │ iput-boolean p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mFollowRedirect:Z │ │ - .line 107 │ + .line 109 │ return-object p0 │ .end method │ │ .method public setHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .locals 1 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "value" # Ljava/lang/String; │ │ .prologue │ - .line 134 │ + .line 136 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ invoke-virtual {v0, p1, p2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 135 │ + .line 137 │ return-object p0 │ .end method │ │ .method public setLogging(Ljava/lang/String;I)V │ .locals 0 │ .param p1, "tag" # Ljava/lang/String; │ .param p2, "level" # I │ │ .prologue │ - .line 171 │ + .line 173 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->LOGTAG:Ljava/lang/String; │ │ - .line 172 │ + .line 174 │ iput p2, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logLevel:I │ │ - .line 173 │ + .line 175 │ return-void │ .end method │ │ .method public setMethod(Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .locals 2 │ .param p1, "method" # Ljava/lang/String; │ │ .prologue │ - .line 54 │ + .line 56 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ │ const-class v1, Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ if-eq v0, v1, :cond_0 │ │ - .line 55 │ + .line 57 │ new-instance v0, Ljava/lang/UnsupportedOperationException; │ │ const-string v1, "can\'t change method on a subclass of AsyncHttpRequest" │ │ invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 56 │ + .line 58 │ :cond_0 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mMethod:Ljava/lang/String; │ │ - .line 57 │ + .line 59 │ return-object p0 │ .end method │ │ .method public setTimeout(I)Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .locals 0 │ .param p1, "timeout" # I │ │ .prologue │ - .line 129 │ + .line 131 │ iput p1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mTimeout:I │ │ - .line 130 │ + .line 132 │ return-object p0 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 165 │ + .line 167 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ if-nez v0, :cond_0 │ │ - .line 166 │ + .line 168 │ invoke-super {p0}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 167 │ + .line 169 │ :goto_0 │ return-object v0 │ │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncHttpRequest;->uri:Landroid/net/Uri; ├── smali/com/koushikdutta/async/http/AsyncHttpResponseImpl$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ .prologue │ .line 36 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/AsyncHttpResponseImpl$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ .prologue │ .line 50 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl$2;->this$0:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/AsyncHttpResponseImpl$3.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncHttpResponseImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ .prologue │ .line 81 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncHttpResponseImpl$3;->this$0:Lcom/koushikdutta/async/http/AsyncHttpResponseImpl; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V ├── smali/com/koushikdutta/async/http/AsyncSSLSocketMiddleware$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;Lcom/koushikdutta/async/callback/ConnectCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware; │ │ .prologue │ - .line 72 │ + .line 73 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$1;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -42,15 +43,15 @@ │ # virtual methods │ .method public onHandshakeCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSSLSocket;)V │ .locals 1 │ .param p1, "e" # Ljava/lang/Exception; │ .param p2, "socket" # Lcom/koushikdutta/async/AsyncSSLSocket; │ │ .prologue │ - .line 75 │ + .line 76 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$1;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ invoke-interface {v0, p1, p2}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 76 │ + .line 77 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ .prologue │ - .line 116 │ + .line 117 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -41,63 +42,63 @@ │ .method public onStringAvailable(Ljava/lang/String;)V │ .locals 6 │ .param p1, "s" # Ljava/lang/String; │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 120 │ + .line 121 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 121 │ + .line 122 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->statusLine:Ljava/lang/String; │ │ if-nez v0, :cond_1 │ │ - .line 122 │ + .line 123 │ invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->statusLine:Ljava/lang/String; │ │ - .line 123 │ + .line 124 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->statusLine:Ljava/lang/String; │ │ const-string v1, "HTTP/1.\\d 2\\d\\d .*" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->matches(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 124 │ + .line 125 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, v2}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 125 │ + .line 126 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, v2}, Lcom/koushikdutta/async/AsyncSocket;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 126 │ + .line 127 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ new-instance v1, Ljava/io/IOException; │ @@ -126,46 +127,46 @@ │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, v1, v2}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 134 │ + .line 135 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 129 │ + .line 130 │ :cond_1 │ invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 130 │ + .line 131 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, v2}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 131 │ + .line 132 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, v2}, Lcom/koushikdutta/async/AsyncSocket;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 132 │ + .line 133 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->this$0:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; ├── smali/com/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2.smali │ @@ -20,63 +20,64 @@ │ # instance fields │ .field final synthetic this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ .prologue │ - .line 139 │ + .line 140 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 142 │ + .line 143 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ if-nez p1, :cond_0 │ │ - .line 143 │ + .line 144 │ new-instance p1, Ljava/io/IOException; │ │ .end local p1 # "ex":Ljava/lang/Exception; │ const-string v0, "socket closed before proxy connect response" │ │ invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ - .line 144 │ + .line 145 │ .restart local p1 # "ex":Ljava/lang/Exception; │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2;->this$2:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0, p1, v1}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 145 │ + .line 146 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ .prologue │ - .line 107 │ + .line 108 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,50 +42,50 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 3 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 110 │ + .line 111 │ if-eqz p1, :cond_0 │ │ - .line 111 │ + .line 112 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v1, p1, v2}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 147 │ + .line 148 │ :goto_0 │ return-void │ │ - .line 115 │ + .line 116 │ :cond_0 │ new-instance v0, Lcom/koushikdutta/async/LineEmitter; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/LineEmitter;->()V │ │ - .line 116 │ + .line 117 │ .local v0, "liner":Lcom/koushikdutta/async/LineEmitter; │ new-instance v1, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$1;->(Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;)V │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/LineEmitter;->setLineCallback(Lcom/koushikdutta/async/LineEmitter$StringCallback;)V │ │ - .line 137 │ + .line 138 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v1, v0}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 139 │ + .line 140 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ new-instance v2, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2; │ │ invoke-direct {v2, p0}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1$2;->(Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;)V │ │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/AsyncSocket;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V ├── smali/com/koushikdutta/async/http/AsyncSSLSocketMiddleware$2.smali │ @@ -30,17 +30,18 @@ │ │ .field final synthetic val$uri:Landroid/net/Uri; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;Lcom/koushikdutta/async/callback/ConnectCallback;ZLcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware; │ │ .prologue │ - .line 89 │ + .line 90 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->this$0:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ iput-boolean p3, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$proxied:Z │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ @@ -58,33 +59,33 @@ │ # virtual methods │ .method public onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 7 │ .param p1, "ex" # Ljava/lang/Exception; │ .param p2, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ │ .prologue │ - .line 92 │ + .line 93 │ if-eqz p1, :cond_0 │ │ - .line 93 │ + .line 94 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$callback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ invoke-interface {v0, p1, p2}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 149 │ + .line 150 │ :goto_0 │ return-void │ │ - .line 97 │ + .line 98 │ :cond_0 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$proxied:Z │ │ if-nez v0, :cond_1 │ │ - .line 98 │ + .line 99 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->this$0:Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$uri:Landroid/net/Uri; │ │ iget v4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$port:I │ @@ -93,57 +94,59 @@ │ │ move-object v1, p2 │ │ invoke-virtual/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->tryHandshake(Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;ILcom/koushikdutta/async/callback/ConnectCallback;)V │ │ goto :goto_0 │ │ - .line 105 │ + .line 106 │ :cond_1 │ - const-string v0, "CONNECT %s:%s HTTP/1.1\r\nHost: %s\r\n\r\n" │ + sget-object v0, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v1, 0x3 │ + const-string v1, "CONNECT %s:%s HTTP/1.1\r\nHost: %s\r\n\r\n" │ │ - new-array v1, v1, [Ljava/lang/Object; │ + const/4 v2, 0x3 │ │ - const/4 v2, 0x0 │ + new-array v2, v2, [Ljava/lang/Object; │ │ - iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$uri:Landroid/net/Uri; │ + const/4 v3, 0x0 │ │ - invoke-virtual {v3}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ + iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$uri:Landroid/net/Uri; │ │ - move-result-object v3 │ + invoke-virtual {v4}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ │ - aput-object v3, v1, v2 │ + move-result-object v4 │ │ - const/4 v2, 0x1 │ + aput-object v4, v2, v3 │ │ - iget v3, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$port:I │ + const/4 v3, 0x1 │ │ - invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + iget v4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$port:I │ │ - move-result-object v3 │ + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - aput-object v3, v1, v2 │ + move-result-object v4 │ │ - const/4 v2, 0x2 │ + aput-object v4, v2, v3 │ │ - iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$uri:Landroid/net/Uri; │ + const/4 v3, 0x2 │ + │ + iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$uri:Landroid/net/Uri; │ │ - invoke-virtual {v3}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ + invoke-virtual {v4}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - aput-object v3, v1, v2 │ + aput-object v4, v2, v3 │ │ - invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v0, v1, v2}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 106 │ + .line 107 │ .local v6, "connect":Ljava/lang/String; │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ @@ -161,15 +164,15 @@ │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 107 │ + .line 108 │ invoke-virtual {v6}, Ljava/lang/String;->getBytes()[B │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1; │ │ invoke-direct {v1, p0, p2}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2$1;->(Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2;Lcom/koushikdutta/async/AsyncSocket;)V ├── smali/com/koushikdutta/async/http/AsyncSSLSocketMiddleware.smali │ @@ -24,80 +24,80 @@ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;)V │ .locals 2 │ .param p1, "client" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 25 │ + .line 26 │ const-string v0, "https" │ │ const/16 v1, 0x1bb │ │ invoke-direct {p0, p1, v0, v1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Ljava/lang/String;I)V │ │ - .line 50 │ + .line 51 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->engineConfigurators:Ljava/util/List; │ │ - .line 26 │ + .line 27 │ return-void │ .end method │ │ │ # virtual methods │ .method public addEngineConfigurator(Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator;)V │ .locals 1 │ .param p1, "engineConfigurator" # Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator; │ │ .prologue │ - .line 53 │ + .line 54 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->engineConfigurators:Ljava/util/List; │ │ invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 54 │ + .line 55 │ return-void │ .end method │ │ .method public clearEngineConfigurators()V │ .locals 1 │ │ .prologue │ - .line 57 │ + .line 58 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->engineConfigurators:Ljava/util/List; │ │ invoke-interface {v0}, Ljava/util/List;->clear()V │ │ - .line 58 │ + .line 59 │ return-void │ .end method │ │ .method protected createConfiguredSSLEngine(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine; │ .locals 5 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ .param p2, "host" # Ljava/lang/String; │ .param p3, "port" # I │ │ .prologue │ - .line 61 │ + .line 62 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->getSSLContext()Ljavax/net/ssl/SSLContext; │ │ move-result-object v2 │ │ - .line 62 │ + .line 63 │ .local v2, "sslContext":Ljavax/net/ssl/SSLContext; │ invoke-virtual {v2}, Ljavax/net/ssl/SSLContext;->createSSLEngine()Ljavax/net/ssl/SSLEngine; │ │ move-result-object v3 │ │ - .line 64 │ + .line 65 │ .local v3, "sslEngine":Ljavax/net/ssl/SSLEngine; │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->engineConfigurators:Ljava/util/List; │ │ invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ @@ -111,45 +111,45 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator; │ │ - .line 65 │ + .line 66 │ .local v0, "configurator":Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator; │ invoke-interface {v0, v3, p1, p2, p3}, Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator;->configureEngine(Ljavax/net/ssl/SSLEngine;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Ljava/lang/String;I)V │ │ goto :goto_0 │ │ - .line 68 │ + .line 69 │ .end local v0 # "configurator":Lcom/koushikdutta/async/http/AsyncSSLEngineConfigurator; │ :cond_0 │ return-object v3 │ .end method │ │ .method protected createHandshakeCallback(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ .locals 1 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ .param p2, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 72 │ + .line 73 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$1; │ │ invoke-direct {v0, p0, p2}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$1;->(Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;Lcom/koushikdutta/async/callback/ConnectCallback;)V │ │ return-object v0 │ .end method │ │ .method public getSSLContext()Ljavax/net/ssl/SSLContext; │ .locals 1 │ │ .prologue │ - .line 35 │ + .line 36 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->sslContext:Ljavax/net/ssl/SSLContext; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->sslContext:Ljavax/net/ssl/SSLContext; │ │ :goto_0 │ @@ -164,97 +164,100 @@ │ .end method │ │ .method public setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V │ .locals 0 │ .param p1, "hostnameVerifier" # Ljavax/net/ssl/HostnameVerifier; │ │ .prologue │ - .line 47 │ + .line 48 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier; │ │ - .line 48 │ + .line 49 │ return-void │ .end method │ │ .method public setSSLContext(Ljavax/net/ssl/SSLContext;)V │ .locals 0 │ .param p1, "sslContext" # Ljavax/net/ssl/SSLContext; │ │ .prologue │ - .line 31 │ + .line 32 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->sslContext:Ljavax/net/ssl/SSLContext; │ │ - .line 32 │ + .line 33 │ return-void │ .end method │ │ .method public setTrustManagers([Ljavax/net/ssl/TrustManager;)V │ .locals 0 │ .param p1, "trustManagers" # [Ljavax/net/ssl/TrustManager; │ │ .prologue │ - .line 41 │ + .line 42 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->trustManagers:[Ljavax/net/ssl/TrustManager; │ │ - .line 42 │ + .line 43 │ return-void │ .end method │ │ .method protected tryHandshake(Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;ILcom/koushikdutta/async/callback/ConnectCallback;)V │ .locals 8 │ .param p1, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ .param p2, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ .param p3, "uri" # Landroid/net/Uri; │ .param p4, "port" # I │ .param p5, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 81 │ + .line 82 │ invoke-virtual {p3}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 83 │ invoke-virtual {p3}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {p0, p2, v0, p4}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->createConfiguredSSLEngine(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine; │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->trustManagers:[Ljavax/net/ssl/TrustManager; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->hostnameVerifier:Ljavax/net/ssl/HostnameVerifier; │ │ const/4 v6, 0x1 │ │ + .line 85 │ invoke-virtual {p0, p2, p5}, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware;->createHandshakeCallback(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback; │ │ move-result-object v7 │ │ move-object v0, p1 │ │ move v2, p4 │ │ + .line 82 │ invoke-static/range {v0 .. v7}, Lcom/koushikdutta/async/AsyncSSLSocketWrapper;->handshake(Lcom/koushikdutta/async/AsyncSocket;Ljava/lang/String;ILjavax/net/ssl/SSLEngine;[Ljavax/net/ssl/TrustManager;Ljavax/net/ssl/HostnameVerifier;ZLcom/koushikdutta/async/AsyncSSLSocketWrapper$HandshakeCallback;)V │ │ - .line 85 │ + .line 86 │ return-void │ .end method │ │ .method protected wrapCallback(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;IZLcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/callback/ConnectCallback; │ .locals 7 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ .param p2, "uri" # Landroid/net/Uri; │ .param p3, "port" # I │ .param p4, "proxied" # Z │ .param p5, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 89 │ + .line 90 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSSLSocketMiddleware$2; │ │ move-object v1, p0 │ │ move-object v2, p5 │ │ move v3, p4 ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$next:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ .prologue │ - .line 222 │ + .line 223 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->val$next:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -44,26 +45,26 @@ │ .locals 5 │ .param p1, "ex" # Ljava/lang/Exception; │ .param p2, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ │ .prologue │ const/4 v4, 0x0 │ │ - .line 225 │ + .line 226 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->isDone()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 226 │ + .line 227 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ new-instance v1, Ljava/lang/Exception; │ │ new-instance v2, Ljava/lang/StringBuilder; │ @@ -88,43 +89,43 @@ │ │ move-result-object v2 │ │ invoke-direct {v1, v2}, Ljava/lang/Exception;->(Ljava/lang/String;)V │ │ iput-object v1, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->lastException:Ljava/lang/Exception; │ │ - .line 227 │ + .line 228 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->val$next:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ invoke-interface {v0, v4}, Lcom/koushikdutta/async/callback/CompletedCallback;->onCompleted(Ljava/lang/Exception;)V │ │ - .line 249 │ + .line 250 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 232 │ + .line 233 │ :cond_1 │ if-eqz p1, :cond_2 │ │ - .line 233 │ + .line 234 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iput-object p1, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->lastException:Ljava/lang/Exception; │ │ - .line 234 │ + .line 235 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->val$next:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ invoke-interface {v0, v4}, Lcom/koushikdutta/async/callback/CompletedCallback;->onCompleted(Ljava/lang/Exception;)V │ │ goto :goto_0 │ │ - .line 239 │ + .line 240 │ :cond_2 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->isDone()Z │ │ @@ -138,39 +139,39 @@ │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->isCancelled()Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ - .line 240 │ + .line 241 │ :cond_3 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "Recycling extra socket leftover from cancelled operation" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 241 │ + .line 242 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleSocket(Lcom/koushikdutta/async/AsyncSocket;)V │ invoke-static {v0, p2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->access$000(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 242 │ + .line 243 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ @@ -182,27 +183,27 @@ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->recycleSocket(Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ invoke-static {v0, p2, v1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->access$100(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ goto :goto_0 │ │ - .line 246 │ + .line 247 │ :cond_4 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ invoke-virtual {v0, v4, p2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->setComplete(Ljava/lang/Exception;Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 247 │ + .line 248 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->this$2:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->connectCallback:Lcom/koushikdutta/async/callback/ConnectCallback; ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$1$1.smali │ @@ -20,64 +20,65 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ .prologue │ - .line 203 │ + .line 204 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 6 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 207 │ + .line 208 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->lastException:Ljava/lang/Exception; │ │ if-nez v0, :cond_0 │ │ - .line 208 │ + .line 209 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ new-instance v1, Lcom/koushikdutta/async/http/ConnectionFailedException; │ │ const-string v2, "Unable to connect to remote address" │ │ invoke-direct {v1, v2}, Lcom/koushikdutta/async/http/ConnectionFailedException;->(Ljava/lang/String;)V │ │ iput-object v1, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->lastException:Ljava/lang/Exception; │ │ - .line 209 │ + .line 210 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->lastException:Ljava/lang/Exception; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->setComplete(Ljava/lang/Exception;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 210 │ + .line 211 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ @@ -106,11 +107,11 @@ │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->lastException:Ljava/lang/Exception; │ │ const/4 v2, 0x0 │ │ invoke-interface {v0, v1, v2}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 212 │ + .line 213 │ :cond_1 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$1$2.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$inetSockAddress:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;Ljava/lang/String;Ljava/net/InetAddress;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ .prologue │ - .line 217 │ + .line 218 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->val$inetSockAddress:Ljava/lang/String; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->val$address:Ljava/net/InetAddress; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -51,15 +52,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 220 │ + .line 221 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ new-instance v1, Ljava/lang/StringBuilder; │ @@ -80,15 +81,15 @@ │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 221 │ + .line 222 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->this$1:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->mClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getServer()Lcom/koushikdutta/async/AsyncServer; │ @@ -123,16 +124,18 @@ │ │ const/4 v4, 0x0 │ │ new-instance v5, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1; │ │ invoke-direct {v5, p0, p2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2$1;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ + .line 223 │ invoke-virtual/range {v0 .. v5}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->wrapCallback(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;IZLcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/callback/ConnectCallback; │ │ move-result-object v0 │ │ + .line 222 │ invoke-virtual {v6, v7, v0}, Lcom/koushikdutta/async/AsyncServer;->connectSocket(Ljava/net/InetSocketAddress;Lcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/future/Cancellable; │ │ - .line 251 │ + .line 252 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$1.smali │ @@ -36,17 +36,18 @@ │ │ .field final synthetic val$uri:Landroid/net/Uri; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ .prologue │ - .line 192 │ + .line 193 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$uri:Landroid/net/Uri; │ │ iput p4, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$port:I │ @@ -59,18 +60,18 @@ │ │ # virtual methods │ .method protected error(Ljava/lang/Exception;)V │ .locals 6 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 197 │ + .line 198 │ invoke-super {p0, p1}, Lcom/koushikdutta/async/future/TransformFuture;->error(Ljava/lang/Exception;)V │ │ - .line 198 │ + .line 199 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$uri:Landroid/net/Uri; │ │ iget v3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$port:I │ @@ -85,57 +86,57 @@ │ │ move-result-object v0 │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, p1, v1}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 199 │ + .line 200 │ return-void │ .end method │ │ .method protected bridge synthetic transform(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 192 │ + .line 193 │ check-cast p1, [Ljava/net/InetAddress; │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->transform([Ljava/net/InetAddress;)V │ │ return-void │ .end method │ │ .method protected transform([Ljava/net/InetAddress;)V │ - .locals 10 │ + .locals 11 │ .param p1, "result" # [Ljava/net/InetAddress; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 203 │ + .line 204 │ new-instance v4, Lcom/koushikdutta/async/future/Continuation; │ │ new-instance v6, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1; │ │ invoke-direct {v6, p0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$1;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;)V │ │ invoke-direct {v4, v6}, Lcom/koushikdutta/async/future/Continuation;->(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 215 │ + .line 216 │ .local v4, "keepTrying":Lcom/koushikdutta/async/future/Continuation; │ move-object v1, p1 │ │ .local v1, "arr$":[Ljava/net/InetAddress; │ array-length v5, v1 │ │ .local v5, "len$":I │ @@ -143,55 +144,57 @@ │ │ .local v2, "i$":I │ :goto_0 │ if-ge v2, v5, :cond_0 │ │ aget-object v0, v1, v2 │ │ - .line 216 │ + .line 217 │ .local v0, "address":Ljava/net/InetAddress; │ - const-string v6, "%s:%s" │ + sget-object v6, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v7, "%s:%s" │ │ - const/4 v7, 0x2 │ + const/4 v8, 0x2 │ │ - new-array v7, v7, [Ljava/lang/Object; │ + new-array v8, v8, [Ljava/lang/Object; │ │ - const/4 v8, 0x0 │ + const/4 v9, 0x0 │ │ - aput-object v0, v7, v8 │ + aput-object v0, v8, v9 │ │ - const/4 v8, 0x1 │ + const/4 v9, 0x1 │ │ - iget v9, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$port:I │ + iget v10, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->val$port:I │ │ - invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v9 │ + move-result-object v10 │ │ - aput-object v9, v7, v8 │ + aput-object v10, v8, v9 │ │ - invoke-static {v6, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v6, v7, v8}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ - .line 217 │ + .line 218 │ .local v3, "inetSockAddress":Ljava/lang/String; │ new-instance v6, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2; │ │ invoke-direct {v6, p0, v3, v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1$2;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;Ljava/lang/String;Ljava/net/InetAddress;)V │ │ invoke-virtual {v4, v6}, Lcom/koushikdutta/async/future/Continuation;->add(Lcom/koushikdutta/async/callback/ContinuationCallback;)Lcom/koushikdutta/async/future/Continuation; │ │ - .line 215 │ + .line 216 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ - .line 255 │ + .line 256 │ .end local v0 # "address":Ljava/net/InetAddress; │ .end local v3 # "inetSockAddress":Ljava/lang/String; │ :cond_0 │ invoke-virtual {v4}, Lcom/koushikdutta/async/future/Continuation;->start()Lcom/koushikdutta/async/future/Continuation; │ │ - .line 256 │ + .line 257 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$2.smali │ @@ -26,17 +26,18 @@ │ │ .field final synthetic val$sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/ArrayDeque;Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ .prologue │ - .line 300 │ + .line 301 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->val$sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->val$idleSocketHolder:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->val$lookup:Ljava/lang/String; │ @@ -49,42 +50,42 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 3 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 303 │ + .line 304 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ monitor-enter v1 │ │ - .line 304 │ + .line 305 │ :try_start_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->val$sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->val$idleSocketHolder:Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ │ invoke-virtual {v0, v2}, Lcom/koushikdutta/async/ArrayDeque;->remove(Ljava/lang/Object;)Z │ │ - .line 305 │ + .line 306 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->val$lookup:Ljava/lang/String; │ │ # invokes: Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maybeCleanupConnectionInfo(Ljava/lang/String;)V │ invoke-static {v0, v2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->access$200(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Ljava/lang/String;)V │ │ - .line 306 │ + .line 307 │ monitor-exit v1 │ │ - .line 307 │ + .line 308 │ return-void │ │ - .line 306 │ + .line 307 │ :catchall_0 │ move-exception v0 │ │ monitor-exit v1 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$4.smali │ @@ -19,17 +19,18 @@ │ │ .field final synthetic val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ .prologue │ - .line 323 │ + .line 324 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$4;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$4;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ return-void │ @@ -39,28 +40,28 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 2 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 326 │ + .line 327 │ invoke-super {p0, p1, p2}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 327 │ + .line 328 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 328 │ + .line 329 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$4;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 329 │ + .line 330 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$4;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 330 │ + .line 331 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$3.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ .prologue │ - .line 313 │ + .line 314 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$3;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$3;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,22 +42,22 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 316 │ + .line 317 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$3;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 317 │ + .line 318 │ iget-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$3;->val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 318 │ + .line 319 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder.smali │ @@ -21,28 +21,29 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ .param p2, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ │ .prologue │ - .line 98 │ + .line 99 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->this$0:Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 102 │ + .line 103 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v0 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->idleTime:J │ │ - .line 99 │ + .line 100 │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .line 100 │ + .line 101 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo.smali │ @@ -41,25 +41,25 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 1 │ │ .prologue │ - .line 105 │ + .line 106 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 107 │ + .line 108 │ new-instance v0, Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ArrayDeque;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->queue:Lcom/koushikdutta/async/ArrayDeque; │ │ - .line 108 │ + .line 109 │ new-instance v0, Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ArrayDeque;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ return-void ├── smali/com/koushikdutta/async/http/AsyncSocketMiddleware.smali │ @@ -46,230 +46,230 @@ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;)V │ .locals 2 │ .param p1, "client" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ .prologue │ - .line 50 │ + .line 51 │ const-string v0, "http" │ │ const/16 v1, 0x50 │ │ invoke-direct {p0, p1, v0, v1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Ljava/lang/String;I)V │ │ - .line 51 │ + .line 52 │ return-void │ .end method │ │ .method public constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Ljava/lang/String;I)V │ .locals 1 │ .param p1, "client" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p2, "scheme" # Ljava/lang/String; │ .param p3, "port" # I │ │ .prologue │ - .line 28 │ + .line 29 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/SimpleMiddleware;->()V │ │ - .line 26 │ + .line 27 │ const v0, 0x493e0 │ │ iput v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleTimeoutMs:I │ │ - .line 110 │ + .line 111 │ new-instance v0, Ljava/util/Hashtable; │ │ invoke-direct {v0}, Ljava/util/Hashtable;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectionInfo:Ljava/util/Hashtable; │ │ - .line 112 │ + .line 113 │ const v0, 0x7fffffff │ │ iput v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maxConnectionCount:I │ │ - .line 29 │ + .line 30 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->mClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - .line 30 │ + .line 31 │ iput-object p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->scheme:Ljava/lang/String; │ │ - .line 31 │ + .line 32 │ iput p3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->port:I │ │ - .line 32 │ + .line 33 │ return-void │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ .param p1, "x1" # Lcom/koushikdutta/async/AsyncSocket; │ │ .prologue │ - .line 22 │ + .line 23 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleSocket(Lcom/koushikdutta/async/AsyncSocket;)V │ │ return-void │ .end method │ │ .method static synthetic access$100(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ .param p1, "x1" # Lcom/koushikdutta/async/AsyncSocket; │ .param p2, "x2" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 22 │ + .line 23 │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->recycleSocket(Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ return-void │ .end method │ │ .method static synthetic access$200(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Ljava/lang/String;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/AsyncSocketMiddleware; │ .param p1, "x1" # Ljava/lang/String; │ │ .prologue │ - .line 22 │ + .line 23 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maybeCleanupConnectionInfo(Ljava/lang/String;)V │ │ return-void │ .end method │ │ .method private getOrCreateConnectionInfo(Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ .locals 2 │ .param p1, "lookup" # Ljava/lang/String; │ │ .prologue │ - .line 261 │ + .line 262 │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectionInfo:Ljava/util/Hashtable; │ │ invoke-virtual {v1, p1}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ │ - .line 262 │ + .line 263 │ .local v0, "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ if-nez v0, :cond_0 │ │ - .line 263 │ + .line 264 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ │ .end local v0 # "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ invoke-direct {v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->()V │ │ - .line 264 │ + .line 265 │ .restart local v0 # "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ iget-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectionInfo:Ljava/util/Hashtable; │ │ invoke-virtual {v1, p1, v0}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 266 │ + .line 267 │ :cond_0 │ return-object v0 │ .end method │ │ .method private idleSocket(Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 1 │ .param p1, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ │ .prologue │ - .line 313 │ + .line 314 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$3; │ │ invoke-direct {v0, p0, p1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$3;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/AsyncSocket;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 320 │ + .line 321 │ const/4 v0, 0x0 │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/AsyncSocket;->setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ │ - .line 323 │ + .line 324 │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$4; │ │ invoke-direct {v0, p0, p1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$4;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 332 │ + .line 333 │ return-void │ .end method │ │ .method private maybeCleanupConnectionInfo(Ljava/lang/String;)V │ .locals 8 │ .param p1, "lookup" # Ljava/lang/String; │ │ .prologue │ - .line 270 │ + .line 271 │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectionInfo:Ljava/util/Hashtable; │ │ invoke-virtual {v3, p1}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ │ - .line 271 │ + .line 272 │ .local v1, "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ if-nez v1, :cond_2 │ │ - .line 285 │ + .line 286 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 278 │ + .line 279 │ .local v0, "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ .local v2, "socket":Lcom/koushikdutta/async/AsyncSocket; │ :cond_1 │ iget-object v3, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/ArrayDeque;->pop()Ljava/lang/Object; │ │ - .line 280 │ + .line 281 │ const/4 v3, 0x0 │ │ invoke-interface {v2, v3}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 281 │ + .line 282 │ invoke-interface {v2}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ - .line 273 │ + .line 274 │ .end local v0 # "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ .end local v2 # "socket":Lcom/koushikdutta/async/AsyncSocket; │ :cond_2 │ iget-object v3, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/ArrayDeque;->isEmpty()Z │ │ move-result v3 │ │ if-nez v3, :cond_3 │ │ - .line 274 │ + .line 275 │ iget-object v3, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/ArrayDeque;->peekLast()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ │ - .line 275 │ + .line 276 │ .restart local v0 # "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .line 276 │ + .line 277 │ .restart local v2 # "socket":Lcom/koushikdutta/async/AsyncSocket; │ iget-wide v4, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->idleTime:J │ │ iget v3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleTimeoutMs:I │ │ int-to-long v6, v3 │ │ @@ -279,15 +279,15 @@ │ │ move-result-wide v6 │ │ cmp-long v3, v4, v6 │ │ if-lez v3, :cond_1 │ │ - .line 283 │ + .line 284 │ .end local v0 # "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ .end local v2 # "socket":Lcom/koushikdutta/async/AsyncSocket; │ :cond_3 │ iget v3, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ if-nez v3, :cond_0 │ │ @@ -303,86 +303,86 @@ │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/ArrayDeque;->isEmpty()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - .line 284 │ + .line 285 │ iget-object v3, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectionInfo:Ljava/util/Hashtable; │ │ invoke-virtual {v3, p1}, Ljava/util/Hashtable;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ .end method │ │ .method private nextConnection(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 9 │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 335 │ + .line 336 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v6 │ │ - .line 336 │ + .line 337 │ .local v6, "uri":Landroid/net/Uri; │ invoke-virtual {p0, v6}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->getSchemePort(Landroid/net/Uri;)I │ │ move-result v4 │ │ - .line 337 │ + .line 338 │ .local v4, "port":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyPort()I │ │ move-result v8 │ │ invoke-virtual {p0, v6, v4, v7, v8}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->computeLookup(Landroid/net/Uri;ILjava/lang/String;I)Ljava/lang/String; │ │ move-result-object v3 │ │ - .line 338 │ + .line 339 │ .local v3, "key":Ljava/lang/String; │ monitor-enter p0 │ │ - .line 339 │ + .line 340 │ :try_start_0 │ iget-object v7, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectionInfo:Ljava/util/Hashtable; │ │ invoke-virtual {v7, v3}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ │ - .line 340 │ + .line 341 │ .local v2, "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ if-nez v2, :cond_0 │ │ - .line 341 │ + .line 342 │ monitor-exit p0 │ │ - .line 353 │ + .line 354 │ :goto_0 │ return-void │ │ - .line 342 │ + .line 343 │ :cond_0 │ iget v7, v2, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ add-int/lit8 v7, v7, -0x1 │ │ iput v7, v2, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ - .line 343 │ + .line 344 │ :cond_1 │ :goto_1 │ iget v7, v2, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ iget v8, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maxConnectionCount:I │ │ if-ge v7, v8, :cond_2 │ @@ -391,154 +391,154 @@ │ │ invoke-virtual {v7}, Lcom/koushikdutta/async/ArrayDeque;->size()I │ │ move-result v7 │ │ if-lez v7, :cond_2 │ │ - .line 344 │ + .line 345 │ iget-object v7, v2, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->queue:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v7}, Lcom/koushikdutta/async/ArrayDeque;->remove()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ - .line 345 │ + .line 346 │ .local v1, "gsd":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ iget-object v5, v1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->socketCancellable:Lcom/koushikdutta/async/future/Cancellable; │ │ check-cast v5, Lcom/koushikdutta/async/future/SimpleCancellable; │ │ - .line 346 │ + .line 347 │ .local v5, "socketCancellable":Lcom/koushikdutta/async/future/SimpleCancellable; │ invoke-virtual {v5}, Lcom/koushikdutta/async/future/SimpleCancellable;->isCancelled()Z │ │ move-result v7 │ │ if-nez v7, :cond_1 │ │ - .line 348 │ + .line 349 │ invoke-virtual {p0, v1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->getSocket(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;)Lcom/koushikdutta/async/future/Cancellable; │ │ move-result-object v0 │ │ - .line 349 │ + .line 350 │ .local v0, "connect":Lcom/koushikdutta/async/future/Cancellable; │ invoke-virtual {v5, v0}, Lcom/koushikdutta/async/future/SimpleCancellable;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleCancellable; │ │ goto :goto_1 │ │ - .line 352 │ + .line 353 │ .end local v0 # "connect":Lcom/koushikdutta/async/future/Cancellable; │ .end local v1 # "gsd":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ .end local v2 # "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ .end local v5 # "socketCancellable":Lcom/koushikdutta/async/future/SimpleCancellable; │ :catchall_0 │ move-exception v7 │ │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v7 │ │ - .line 351 │ + .line 352 │ .restart local v2 # "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ :cond_2 │ :try_start_1 │ invoke-direct {p0, v3}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maybeCleanupConnectionInfo(Ljava/lang/String;)V │ │ - .line 352 │ + .line 353 │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_0 │ .end method │ │ .method private recycleSocket(Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 8 │ .param p1, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ .param p2, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 288 │ + .line 289 │ if-nez p1, :cond_0 │ │ - .line 309 │ + .line 310 │ :goto_0 │ return-void │ │ - .line 290 │ + .line 291 │ :cond_0 │ invoke-virtual {p2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v5 │ │ - .line 291 │ + .line 292 │ .local v5, "uri":Landroid/net/Uri; │ invoke-virtual {p0, v5}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->getSchemePort(Landroid/net/Uri;)I │ │ move-result v3 │ │ - .line 292 │ + .line 293 │ .local v3, "port":I │ invoke-virtual {p2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyPort()I │ │ move-result v7 │ │ invoke-virtual {p0, v5, v3, v6, v7}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->computeLookup(Landroid/net/Uri;ILjava/lang/String;I)Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 294 │ + .line 295 │ .local v2, "lookup":Ljava/lang/String; │ new-instance v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ │ invoke-direct {v0, p0, p1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 295 │ + .line 296 │ .local v0, "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ monitor-enter p0 │ │ - .line 296 │ + .line 297 │ :try_start_0 │ invoke-direct {p0, v2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->getOrCreateConnectionInfo(Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ │ move-result-object v1 │ │ - .line 297 │ + .line 298 │ .local v1, "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ iget-object v4, v1, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ - .line 298 │ + .line 299 │ .local v4, "sockets":Lcom/koushikdutta/async/ArrayDeque;, "Lcom/koushikdutta/async/ArrayDeque;" │ invoke-virtual {v4, v0}, Lcom/koushikdutta/async/ArrayDeque;->push(Ljava/lang/Object;)V │ │ - .line 299 │ + .line 300 │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 300 │ + .line 301 │ new-instance v6, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2; │ │ invoke-direct {v6, p0, v4, v0, v2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$2;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/ArrayDeque;Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;Ljava/lang/String;)V │ │ invoke-interface {p1, v6}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ goto :goto_0 │ │ - .line 299 │ + .line 300 │ .end local v1 # "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ .end local v4 # "sockets":Lcom/koushikdutta/async/ArrayDeque;, "Lcom/koushikdutta/async/ArrayDeque;" │ :catchall_0 │ move-exception v6 │ │ :try_start_1 │ monitor-exit p0 │ @@ -554,18 +554,18 @@ │ .locals 3 │ .param p1, "uri" # Landroid/net/Uri; │ .param p2, "port" # I │ .param p3, "proxyHost" # Ljava/lang/String; │ .param p4, "proxyPort" # I │ │ .prologue │ - .line 86 │ + .line 87 │ if-eqz p3, :cond_1 │ │ - .line 87 │ + .line 88 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -580,20 +580,20 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 91 │ + .line 92 │ .local v0, "proxy":Ljava/lang/String; │ :goto_0 │ if-eqz p3, :cond_0 │ │ - .line 92 │ + .line 93 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -608,15 +608,15 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 94 │ + .line 95 │ :cond_0 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; │ │ @@ -662,93 +662,93 @@ │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ return-object v1 │ │ - .line 89 │ + .line 90 │ .end local v0 # "proxy":Ljava/lang/String; │ :cond_1 │ const-string v0, "" │ │ .restart local v0 # "proxy":Ljava/lang/String; │ goto :goto_0 │ .end method │ │ .method public disableProxy()V │ .locals 2 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 73 │ + .line 74 │ const/4 v0, -0x1 │ │ iput v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyPort:I │ │ - .line 74 │ + .line 75 │ iput-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyHost:Ljava/lang/String; │ │ - .line 75 │ + .line 76 │ iput-object v1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyAddress:Ljava/net/InetSocketAddress; │ │ - .line 76 │ + .line 77 │ return-void │ .end method │ │ .method public enableProxy(Ljava/lang/String;I)V │ .locals 1 │ .param p1, "host" # Ljava/lang/String; │ .param p2, "port" # I │ │ .prologue │ - .line 79 │ + .line 80 │ iput-object p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyHost:Ljava/lang/String; │ │ - .line 80 │ + .line 81 │ iput p2, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyPort:I │ │ - .line 81 │ + .line 82 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyAddress:Ljava/net/InetSocketAddress; │ │ - .line 82 │ + .line 83 │ return-void │ .end method │ │ .method public getConnectAllAddresses()Z │ .locals 1 │ │ .prologue │ - .line 61 │ + .line 62 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectAllAddresses:Z │ │ return v0 │ .end method │ │ .method public getMaxConnectionCount()I │ .locals 1 │ │ .prologue │ - .line 115 │ + .line 116 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maxConnectionCount:I │ │ return v0 │ .end method │ │ .method public getSchemePort(Landroid/net/Uri;)I │ .locals 3 │ .param p1, "uri" # Landroid/net/Uri; │ │ .prologue │ const/4 v0, -0x1 │ │ - .line 39 │ + .line 40 │ invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; │ │ move-result-object v1 │ │ if-eqz v1, :cond_0 │ │ invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; │ @@ -759,56 +759,56 @@ │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ - .line 45 │ + .line 46 │ :cond_0 │ :goto_0 │ return v0 │ │ - .line 41 │ + .line 42 │ :cond_1 │ invoke-virtual {p1}, Landroid/net/Uri;->getPort()I │ │ move-result v1 │ │ if-ne v1, v0, :cond_2 │ │ - .line 42 │ + .line 43 │ iget v0, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->port:I │ │ goto :goto_0 │ │ - .line 45 │ + .line 46 │ :cond_2 │ invoke-virtual {p1}, Landroid/net/Uri;->getPort()I │ │ move-result v0 │ │ goto :goto_0 │ .end method │ │ .method public getSocket(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;)Lcom/koushikdutta/async/future/Cancellable; │ .locals 18 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ .prologue │ - .line 124 │ + .line 125 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v4 │ │ - .line 125 │ + .line 126 │ .local v4, "uri":Landroid/net/Uri; │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ @@ -816,40 +816,40 @@ │ │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v2}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->getSchemePort(Landroid/net/Uri;)I │ │ move-result v5 │ │ - .line 126 │ + .line 127 │ .local v5, "port":I │ const/4 v2, -0x1 │ │ if-ne v5, v2, :cond_0 │ │ - .line 127 │ + .line 128 │ const/4 v11, 0x0 │ │ - .line 191 │ + .line 193 │ :goto_0 │ return-object v11 │ │ - .line 130 │ + .line 131 │ :cond_0 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v3, "socket-owner" │ │ move-object/from16 v0, p0 │ │ invoke-virtual {v2, v3, v0}, Lcom/koushikdutta/async/util/UntypedHashtable;->put(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 132 │ + .line 133 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ move-result-object v2 │ @@ -864,99 +864,99 @@ │ │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v4, v5, v2, v3}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->computeLookup(Landroid/net/Uri;ILjava/lang/String;I)Ljava/lang/String; │ │ move-result-object v10 │ │ - .line 133 │ + .line 134 │ .local v10, "lookup":Ljava/lang/String; │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v10}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->getOrCreateConnectionInfo(Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ │ move-result-object v9 │ │ - .line 134 │ + .line 135 │ .local v9, "info":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo; │ monitor-enter p0 │ │ - .line 135 │ + .line 136 │ :try_start_0 │ iget v2, v9, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ move-object/from16 v0, p0 │ │ iget v3, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maxConnectionCount:I │ │ if-lt v2, v3, :cond_1 │ │ - .line 137 │ + .line 138 │ new-instance v11, Lcom/koushikdutta/async/future/SimpleCancellable; │ │ invoke-direct {v11}, Lcom/koushikdutta/async/future/SimpleCancellable;->()V │ │ - .line 138 │ + .line 139 │ .local v11, "queueCancel":Lcom/koushikdutta/async/future/SimpleCancellable; │ iget-object v2, v9, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->queue:Lcom/koushikdutta/async/ArrayDeque; │ │ move-object/from16 v0, p1 │ │ invoke-virtual {v2, v0}, Lcom/koushikdutta/async/ArrayDeque;->add(Ljava/lang/Object;)Z │ │ - .line 139 │ + .line 140 │ monitor-exit p0 │ │ goto :goto_0 │ │ - .line 163 │ + .line 164 │ .end local v11 # "queueCancel":Lcom/koushikdutta/async/future/SimpleCancellable; │ :catchall_0 │ move-exception v2 │ │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v2 │ │ - .line 142 │ + .line 143 │ :cond_1 │ :try_start_1 │ iget v2, v9, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, v9, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->openCount:I │ │ - .line 144 │ + .line 145 │ :cond_2 │ :goto_1 │ iget-object v2, v9, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/ArrayDeque;->isEmpty()Z │ │ move-result v2 │ │ if-nez v2, :cond_4 │ │ - .line 145 │ + .line 146 │ iget-object v2, v9, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$ConnectionInfo;->sockets:Lcom/koushikdutta/async/ArrayDeque; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/ArrayDeque;->pop()Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ │ - .line 146 │ + .line 147 │ .local v8, "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ iget-object v13, v8, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .line 147 │ + .line 148 │ .local v13, "socket":Lcom/koushikdutta/async/AsyncSocket; │ iget-wide v2, v8, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder;->idleTime:J │ │ move-object/from16 v0, p0 │ │ iget v7, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleTimeoutMs:I │ │ @@ -970,76 +970,76 @@ │ │ move-result-wide v16 │ │ cmp-long v2, v2, v16 │ │ if-gez v2, :cond_3 │ │ - .line 148 │ + .line 149 │ const/4 v2, 0x0 │ │ invoke-interface {v13, v2}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 149 │ + .line 150 │ invoke-interface {v13}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ │ goto :goto_1 │ │ - .line 152 │ + .line 153 │ :cond_3 │ invoke-interface {v13}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ - .line 155 │ + .line 156 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "Reusing keep-alive socket" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 156 │ + .line 157 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->connectCallback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ const/4 v3, 0x0 │ │ invoke-interface {v2, v3, v13}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 159 │ + .line 160 │ new-instance v12, Lcom/koushikdutta/async/future/SimpleCancellable; │ │ invoke-direct {v12}, Lcom/koushikdutta/async/future/SimpleCancellable;->()V │ │ - .line 160 │ + .line 161 │ .local v12, "ret":Lcom/koushikdutta/async/future/SimpleCancellable; │ invoke-virtual {v12}, Lcom/koushikdutta/async/future/SimpleCancellable;->setComplete()Z │ │ - .line 161 │ + .line 162 │ monitor-exit p0 │ │ move-object v11, v12 │ │ goto/16 :goto_0 │ │ - .line 163 │ + .line 164 │ .end local v8 # "idleSocketHolder":Lcom/koushikdutta/async/http/AsyncSocketMiddleware$IdleSocketHolder; │ .end local v12 # "ret":Lcom/koushikdutta/async/future/SimpleCancellable; │ .end local v13 # "socket":Lcom/koushikdutta/async/AsyncSocket; │ :cond_4 │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 165 │ + .line 166 │ move-object/from16 v0, p0 │ │ iget-boolean v2, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectAllAddresses:Z │ │ if-eqz v2, :cond_5 │ │ move-object/from16 v0, p0 │ @@ -1054,28 +1054,28 @@ │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ move-result-object v2 │ │ if-eqz v2, :cond_9 │ │ - .line 167 │ + .line 168 │ :cond_5 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "Connecting socket" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 170 │ + .line 171 │ const/4 v6, 0x0 │ │ - .line 171 │ + .line 172 │ .local v6, "proxied":Z │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ @@ -1085,69 +1085,69 @@ │ │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyHost:Ljava/lang/String; │ │ if-eqz v2, :cond_6 │ │ - .line 172 │ + .line 173 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyHost:Ljava/lang/String; │ │ move-object/from16 v0, p0 │ │ iget v7, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->proxyPort:I │ │ invoke-virtual {v2, v3, v7}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->enableProxy(Ljava/lang/String;I)V │ │ - .line 173 │ + .line 174 │ :cond_6 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ move-result-object v2 │ │ if-eqz v2, :cond_8 │ │ - .line 174 │ + .line 175 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyHost()Ljava/lang/String; │ │ move-result-object v14 │ │ - .line 175 │ + .line 176 │ .local v14, "unresolvedHost":Ljava/lang/String; │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getProxyPort()I │ │ move-result v15 │ │ - .line 176 │ + .line 177 │ .local v15, "unresolvedPort":I │ const/4 v6, 0x1 │ │ - .line 182 │ + .line 183 │ :goto_2 │ if-eqz v6, :cond_7 │ │ - .line 183 │ + .line 184 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ @@ -1174,15 +1174,15 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 185 │ + .line 186 │ :cond_7 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->mClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ @@ -1192,55 +1192,57 @@ │ │ iget-object v7, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->connectCallback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ move-object/from16 v2, p0 │ │ move-object/from16 v3, p1 │ │ + .line 187 │ invoke-virtual/range {v2 .. v7}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->wrapCallback(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;IZLcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/callback/ConnectCallback; │ │ move-result-object v2 │ │ + .line 186 │ move-object/from16 v0, v16 │ │ invoke-virtual {v0, v14, v15, v2}, Lcom/koushikdutta/async/AsyncServer;->connectSocket(Ljava/lang/String;ILcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/future/Cancellable; │ │ move-result-object v11 │ │ goto/16 :goto_0 │ │ - .line 179 │ + .line 180 │ .end local v14 # "unresolvedHost":Ljava/lang/String; │ .end local v15 # "unresolvedPort":I │ :cond_8 │ invoke-virtual {v4}, Landroid/net/Uri;->getHost()Ljava/lang/String; │ │ move-result-object v14 │ │ - .line 180 │ + .line 181 │ .restart local v14 # "unresolvedHost":Ljava/lang/String; │ move v15, v5 │ │ .restart local v15 # "unresolvedPort":I │ goto :goto_2 │ │ - .line 190 │ + .line 191 │ .end local v6 # "proxied":Z │ .end local v14 # "unresolvedHost":Ljava/lang/String; │ .end local v15 # "unresolvedPort":I │ :cond_9 │ move-object/from16 v0, p1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "Resolving domain and connecting to all available addresses" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 191 │ + .line 192 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->mClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v2 │ @@ -1257,14 +1259,15 @@ │ │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ invoke-direct {v3, v0, v1, v4, v5}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware$1;->(Lcom/koushikdutta/async/http/AsyncSocketMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;I)V │ │ + .line 193 │ invoke-interface {v2, v3}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/async/future/Cancellable; │ │ move-object v11, v2 │ @@ -1273,79 +1276,79 @@ │ .end method │ │ .method public onResponseComplete(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;)V │ .locals 2 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ .prologue │ - .line 357 │ + .line 358 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v1, "socket-owner" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/util/UntypedHashtable;->get(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ if-eq v0, p0, :cond_0 │ │ - .line 382 │ + .line 383 │ :goto_0 │ return-void │ │ - .line 361 │ + .line 362 │ :cond_0 │ :try_start_0 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleSocket(Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 363 │ + .line 364 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->exception:Ljava/lang/Exception; │ │ if-nez v0, :cond_1 │ │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ │ move-result v0 │ │ if-nez v0, :cond_2 │ │ - .line 364 │ + .line 365 │ :cond_1 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "closing out socket (exception)" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 365 │ + .line 366 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 366 │ + .line 367 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 380 │ + .line 381 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->nextConnection(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ goto :goto_0 │ │ - .line 369 │ + .line 370 │ :cond_2 │ :try_start_1 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->protocol()Ljava/lang/String; │ │ move-result-object v0 │ @@ -1362,72 +1365,73 @@ │ │ if-eqz v0, :cond_3 │ │ sget-object v0, Lcom/koushikdutta/async/http/Protocol;->HTTP_1_1:Lcom/koushikdutta/async/http/Protocol; │ │ iget-object v1, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ + .line 371 │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/HttpUtil;->isKeepAlive(Lcom/koushikdutta/async/http/Protocol;Lcom/koushikdutta/async/http/Headers;)Z │ │ move-result v0 │ │ if-nez v0, :cond_4 │ │ - .line 371 │ + .line 372 │ :cond_3 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "closing out socket (not keep alive)" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ - .line 372 │ + .line 373 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/AsyncSocket;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 373 │ + .line 374 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->close()V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 380 │ + .line 381 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->nextConnection(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ goto :goto_0 │ │ - .line 376 │ + .line 377 │ :cond_4 │ :try_start_2 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v1, "Recycling keep-alive socket" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 377 │ + .line 378 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ iget-object v1, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->recycleSocket(Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ │ - .line 380 │ + .line 381 │ iget-object v0, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->nextConnection(Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ goto :goto_0 │ │ :catchall_0 │ @@ -1441,50 +1445,50 @@ │ .end method │ │ .method public setConnectAllAddresses(Z)V │ .locals 0 │ .param p1, "connectAllAddresses" # Z │ │ .prologue │ - .line 65 │ + .line 66 │ iput-boolean p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->connectAllAddresses:Z │ │ - .line 66 │ + .line 67 │ return-void │ .end method │ │ .method public setIdleTimeoutMs(I)V │ .locals 0 │ .param p1, "idleTimeoutMs" # I │ │ .prologue │ - .line 35 │ + .line 36 │ iput p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->idleTimeoutMs:I │ │ - .line 36 │ + .line 37 │ return-void │ .end method │ │ .method public setMaxConnectionCount(I)V │ .locals 0 │ .param p1, "maxConnectionCount" # I │ │ .prologue │ - .line 119 │ + .line 120 │ iput p1, p0, Lcom/koushikdutta/async/http/AsyncSocketMiddleware;->maxConnectionCount:I │ │ - .line 120 │ + .line 121 │ return-void │ .end method │ │ .method protected wrapCallback(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Landroid/net/Uri;IZLcom/koushikdutta/async/callback/ConnectCallback;)Lcom/koushikdutta/async/callback/ConnectCallback; │ .locals 0 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ .param p2, "uri" # Landroid/net/Uri; │ .param p3, "port" # I │ .param p4, "proxied" # Z │ .param p5, "callback" # Lcom/koushikdutta/async/callback/ConnectCallback; │ │ .prologue │ - .line 56 │ + .line 57 │ return-object p5 │ .end method ├── smali/com/koushikdutta/async/http/BasicNameValuePair.smali │ @@ -113,14 +113,15 @@ │ │ if-eqz v3, :cond_3 │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/BasicNameValuePair;->value:Ljava/lang/String; │ │ iget-object v4, v0, Lcom/koushikdutta/async/http/BasicNameValuePair;->value:Ljava/lang/String; │ │ + .line 158 │ invoke-static {v3, v4}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_3 │ │ :goto_1 ├── smali/com/koushikdutta/async/http/Headers$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/Headers; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/Headers;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/Headers; │ │ .prologue │ .line 23 │ iput-object p1, p0, Lcom/koushikdutta/async/http/Headers$1;->this$0:Lcom/koushikdutta/async/http/Headers; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/http/Multimap;->()V ├── smali/com/koushikdutta/async/http/Headers.smali │ @@ -625,14 +625,15 @@ │ │ .method public toPrefixString(Ljava/lang/String;)Ljava/lang/String; │ .locals 4 │ .param p1, "prefix" # Ljava/lang/String; │ │ .prologue │ .line 132 │ + .line 133 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/Headers;->toStringBuilder()Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ const/4 v1, 0x0 │ │ new-instance v2, Ljava/lang/StringBuilder; │ @@ -649,18 +650,20 @@ │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 134 │ invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ + .line 135 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -756,24 +759,27 @@ │ │ invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ const-string v7, ": " │ │ + .line 117 │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ + .line 118 │ invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ const-string v7, "\r\n" │ │ + .line 119 │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ .line 122 │ .end local v1 # "i$":Ljava/util/Iterator; │ .end local v2 # "key":Ljava/lang/String; ├── smali/com/koushikdutta/async/http/HttpTransportMiddleware$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$sentCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/HttpTransportMiddleware;Lcom/koushikdutta/async/callback/CompletedCallback;Lcom/koushikdutta/async/BufferedDataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ .prologue │ .line 69 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HttpTransportMiddleware$1;->this$0:Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/HttpTransportMiddleware$1;->val$sentCallback:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/HttpTransportMiddleware$2.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/HttpTransportMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)V │ .locals 1 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ .prologue │ .line 81 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HttpTransportMiddleware$2;->this$0:Lcom/koushikdutta/async/http/HttpTransportMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/HttpTransportMiddleware$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData; ├── smali/com/koushikdutta/async/http/HttpTransportMiddleware.smali │ @@ -13,314 +13,351 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method public exchangeHeaders(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)Z │ - .locals 14 │ + .locals 17 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData; │ │ .prologue │ .line 23 │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->protocol:Ljava/lang/String; │ + move-object/from16 v0, p1 │ │ - invoke-static {v11}, Lcom/koushikdutta/async/http/Protocol;->get(Ljava/lang/String;)Lcom/koushikdutta/async/http/Protocol; │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->protocol:Ljava/lang/String; │ │ - move-result-object v4 │ + invoke-static {v14}, Lcom/koushikdutta/async/http/Protocol;->get(Ljava/lang/String;)Lcom/koushikdutta/async/http/Protocol; │ + │ + move-result-object v6 │ │ .line 24 │ - .local v4, "p":Lcom/koushikdutta/async/http/Protocol; │ - if-eqz v4, :cond_0 │ + .local v6, "p":Lcom/koushikdutta/async/http/Protocol; │ + if-eqz v6, :cond_0 │ │ - sget-object v11, Lcom/koushikdutta/async/http/Protocol;->HTTP_1_0:Lcom/koushikdutta/async/http/Protocol; │ + sget-object v14, Lcom/koushikdutta/async/http/Protocol;->HTTP_1_0:Lcom/koushikdutta/async/http/Protocol; │ │ - if-eq v4, v11, :cond_0 │ + if-eq v6, v14, :cond_0 │ │ - sget-object v11, Lcom/koushikdutta/async/http/Protocol;->HTTP_1_1:Lcom/koushikdutta/async/http/Protocol; │ + sget-object v14, Lcom/koushikdutta/async/http/Protocol;->HTTP_1_1:Lcom/koushikdutta/async/http/Protocol; │ │ - if-eq v4, v11, :cond_0 │ + if-eq v6, v14, :cond_0 │ │ .line 25 │ - invoke-super {p0, p1}, Lcom/koushikdutta/async/http/SimpleMiddleware;->exchangeHeaders(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)Z │ + invoke-super/range {p0 .. p1}, Lcom/koushikdutta/async/http/SimpleMiddleware;->exchangeHeaders(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)Z │ │ - move-result v11 │ + move-result v14 │ │ .line 132 │ :goto_0 │ - return v11 │ + return v14 │ │ .line 27 │ :cond_0 │ - iget-object v5, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + move-object/from16 v0, p1 │ + │ + iget-object v7, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .line 28 │ - .local v5, "request":Lcom/koushikdutta/async/http/AsyncHttpRequest; │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + .local v7, "request":Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + move-object/from16 v0, p1 │ │ - invoke-virtual {v11}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getBody()Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - move-result-object v6 │ + invoke-virtual {v14}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getBody()Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ + │ + move-result-object v8 │ │ .line 30 │ - .local v6, "requestBody":Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ - if-eqz v6, :cond_1 │ + .local v8, "requestBody":Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody; │ + if-eqz v8, :cond_1 │ │ .line 31 │ - invoke-interface {v6}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ + invoke-interface {v8}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ │ - move-result v11 │ + move-result v14 │ │ - if-ltz v11, :cond_3 │ + if-ltz v14, :cond_2 │ │ .line 32 │ - invoke-virtual {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ + invoke-virtual {v7}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ - move-result-object v11 │ + move-result-object v14 │ │ - const-string v12, "Content-Length" │ + const-string v15, "Content-Length" │ │ - invoke-interface {v6}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ + invoke-interface {v8}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ │ - move-result v13 │ + move-result v16 │ │ - invoke-static {v13}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ + invoke-static/range {v16 .. v16}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ - move-result-object v13 │ + move-result-object v16 │ │ - invoke-virtual {v11, v12, v13}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ + invoke-virtual/range {v14 .. v16}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ .line 33 │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + move-object/from16 v0, p1 │ │ - iget-object v12, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - invoke-interface {v11, v12}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + move-object/from16 v0, p1 │ │ - .line 46 │ + iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + │ + invoke-interface {v14, v15}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + │ + .line 44 │ :cond_1 │ :goto_1 │ - if-eqz v6, :cond_5 │ + invoke-virtual {v7}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getRequestLine()Lcom/koushikdutta/async/http/RequestLine; │ │ - invoke-interface {v6}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ + move-result-object v14 │ │ - move-result v11 │ + invoke-virtual {v14}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ - if-ltz v11, :cond_5 │ + move-result-object v9 │ │ - invoke-interface {v6}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ + .line 45 │ + .local v9, "rl":Ljava/lang/String; │ + invoke-virtual {v7}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ - move-result v11 │ + move-result-object v14 │ │ - const/16 v12, 0x400 │ + invoke-virtual {v14, v9}, Lcom/koushikdutta/async/http/Headers;->toPrefixString(Ljava/lang/String;)Ljava/lang/String; │ │ - if-ge v11, v12, :cond_5 │ + move-result-object v10 │ │ - const/4 v10, 0x1 │ + .line 47 │ + .local v10, "rs":Ljava/lang/String; │ + invoke-virtual {v10}, Ljava/lang/String;->getBytes()[B │ │ - .line 49 │ - .local v10, "waitForBody":Z │ - :goto_2 │ - if-eqz v10, :cond_6 │ + move-result-object v11 │ │ .line 51 │ - new-instance v0, Lcom/koushikdutta/async/BufferedDataSink; │ + .local v11, "rsBytes":[B │ + if-eqz v8, :cond_4 │ │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + invoke-interface {v8}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ │ - invoke-interface {v11}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink()Lcom/koushikdutta/async/DataSink; │ + move-result v14 │ │ - move-result-object v11 │ + if-ltz v14, :cond_4 │ + │ + invoke-interface {v8}, Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;->length()I │ + │ + move-result v14 │ │ - invoke-direct {v0, v11}, Lcom/koushikdutta/async/BufferedDataSink;->(Lcom/koushikdutta/async/DataSink;)V │ + array-length v15, v11 │ │ - .line 52 │ - .local v0, "bsink":Lcom/koushikdutta/async/BufferedDataSink; │ - const/4 v11, 0x1 │ + add-int/2addr v14, v15 │ │ - invoke-virtual {v0, v11}, Lcom/koushikdutta/async/BufferedDataSink;->forceBuffering(Z)V │ + const/16 v15, 0x400 │ │ - .line 53 │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + if-ge v14, v15, :cond_4 │ │ - invoke-interface {v11, v0}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + const/4 v13, 0x1 │ │ .line 54 │ - move-object v2, v0 │ + .local v13, "waitForBody":Z │ + :goto_2 │ + if-eqz v13, :cond_5 │ │ - .line 61 │ - .local v2, "headerSink":Lcom/koushikdutta/async/DataSink; │ - :goto_3 │ - invoke-virtual {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getRequestLine()Lcom/koushikdutta/async/http/RequestLine; │ + .line 56 │ + new-instance v2, Lcom/koushikdutta/async/BufferedDataSink; │ │ - move-result-object v11 │ + move-object/from16 v0, p1 │ │ - invoke-virtual {v11}, Ljava/lang/Object;->toString()Ljava/lang/String; │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - move-result-object v7 │ + invoke-interface {v14}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink()Lcom/koushikdutta/async/DataSink; │ │ - .line 62 │ - .local v7, "rl":Ljava/lang/String; │ - invoke-virtual {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ + move-result-object v14 │ │ - move-result-object v11 │ + invoke-direct {v2, v14}, Lcom/koushikdutta/async/BufferedDataSink;->(Lcom/koushikdutta/async/DataSink;)V │ │ - invoke-virtual {v11, v7}, Lcom/koushikdutta/async/http/Headers;->toPrefixString(Ljava/lang/String;)Ljava/lang/String; │ + .line 57 │ + .local v2, "bsink":Lcom/koushikdutta/async/BufferedDataSink; │ + const/4 v14, 0x1 │ │ - move-result-object v8 │ + invoke-virtual {v2, v14}, Lcom/koushikdutta/async/BufferedDataSink;->forceBuffering(Z)V │ │ - .line 63 │ - .local v8, "rs":Ljava/lang/String; │ - new-instance v11, Ljava/lang/StringBuilder; │ + .line 58 │ + move-object/from16 v0, p1 │ │ - invoke-direct {v11}, Ljava/lang/StringBuilder;->()V │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - const-string v12, "\n" │ + invoke-interface {v14, v2}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 59 │ + move-object v4, v2 │ │ - move-result-object v11 │ + .line 66 │ + .local v4, "headerSink":Lcom/koushikdutta/async/DataSink; │ + :goto_3 │ + new-instance v14, Ljava/lang/StringBuilder; │ │ - invoke-virtual {v11, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-direct {v14}, Ljava/lang/StringBuilder;->()V │ │ - move-result-object v11 │ + const-string v15, "\n" │ │ - invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v14 │ │ - invoke-virtual {v5, v11}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ + invoke-virtual {v14, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - .line 65 │ - if-eqz v0, :cond_2 │ + move-result-object v14 │ │ - .line 66 │ - const/16 v11, 0x400 │ + invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + │ + move-result-object v14 │ │ - invoke-virtual {v0, v11}, Lcom/koushikdutta/async/BufferedDataSink;->setMaxBuffer(I)V │ + invoke-virtual {v7, v14}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logv(Ljava/lang/String;)V │ │ .line 68 │ - :cond_2 │ - iget-object v9, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->sendHeadersCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ + move-object/from16 v0, p1 │ │ - .line 69 │ - .local v9, "sentCallback":Lcom/koushikdutta/async/callback/CompletedCallback; │ - invoke-virtual {v8}, Ljava/lang/String;->getBytes()[B │ + iget-object v12, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->sendHeadersCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ - move-result-object v11 │ + .line 69 │ + .local v12, "sentCallback":Lcom/koushikdutta/async/callback/CompletedCallback; │ + new-instance v14, Lcom/koushikdutta/async/http/HttpTransportMiddleware$1; │ │ - new-instance v12, Lcom/koushikdutta/async/http/HttpTransportMiddleware$1; │ + move-object/from16 v0, p0 │ │ - invoke-direct {v12, p0, v9, v0}, Lcom/koushikdutta/async/http/HttpTransportMiddleware$1;->(Lcom/koushikdutta/async/http/HttpTransportMiddleware;Lcom/koushikdutta/async/callback/CompletedCallback;Lcom/koushikdutta/async/BufferedDataSink;)V │ + invoke-direct {v14, v0, v12, v2}, Lcom/koushikdutta/async/http/HttpTransportMiddleware$1;->(Lcom/koushikdutta/async/http/HttpTransportMiddleware;Lcom/koushikdutta/async/callback/CompletedCallback;Lcom/koushikdutta/async/BufferedDataSink;)V │ │ - invoke-static {v2, v11, v12}, Lcom/koushikdutta/async/Util;->writeAll(Lcom/koushikdutta/async/DataSink;[BLcom/koushikdutta/async/callback/CompletedCallback;)V │ + invoke-static {v4, v11, v14}, Lcom/koushikdutta/async/Util;->writeAll(Lcom/koushikdutta/async/DataSink;[BLcom/koushikdutta/async/callback/CompletedCallback;)V │ │ .line 81 │ - new-instance v1, Lcom/koushikdutta/async/http/HttpTransportMiddleware$2; │ + new-instance v3, Lcom/koushikdutta/async/http/HttpTransportMiddleware$2; │ + │ + move-object/from16 v0, p0 │ │ - invoke-direct {v1, p0, p1}, Lcom/koushikdutta/async/http/HttpTransportMiddleware$2;->(Lcom/koushikdutta/async/http/HttpTransportMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)V │ + move-object/from16 v1, p1 │ + │ + invoke-direct {v3, v0, v1}, Lcom/koushikdutta/async/http/HttpTransportMiddleware$2;->(Lcom/koushikdutta/async/http/HttpTransportMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)V │ │ .line 129 │ - .local v1, "headerCallback":Lcom/koushikdutta/async/LineEmitter$StringCallback; │ - new-instance v3, Lcom/koushikdutta/async/LineEmitter; │ + .local v3, "headerCallback":Lcom/koushikdutta/async/LineEmitter$StringCallback; │ + new-instance v5, Lcom/koushikdutta/async/LineEmitter; │ │ - invoke-direct {v3}, Lcom/koushikdutta/async/LineEmitter;->()V │ + invoke-direct {v5}, Lcom/koushikdutta/async/LineEmitter;->()V │ │ .line 130 │ - .local v3, "liner":Lcom/koushikdutta/async/LineEmitter; │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + .local v5, "liner":Lcom/koushikdutta/async/LineEmitter; │ + move-object/from16 v0, p1 │ + │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - invoke-interface {v11, v3}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ + invoke-interface {v14, v5}, Lcom/koushikdutta/async/AsyncSocket;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ .line 131 │ - invoke-virtual {v3, v1}, Lcom/koushikdutta/async/LineEmitter;->setLineCallback(Lcom/koushikdutta/async/LineEmitter$StringCallback;)V │ + invoke-virtual {v5, v3}, Lcom/koushikdutta/async/LineEmitter;->setLineCallback(Lcom/koushikdutta/async/LineEmitter$StringCallback;)V │ │ .line 132 │ - const/4 v11, 0x1 │ + const/4 v14, 0x1 │ │ goto/16 :goto_0 │ │ .line 35 │ - .end local v0 # "bsink":Lcom/koushikdutta/async/BufferedDataSink; │ - .end local v1 # "headerCallback":Lcom/koushikdutta/async/LineEmitter$StringCallback; │ - .end local v2 # "headerSink":Lcom/koushikdutta/async/DataSink; │ - .end local v3 # "liner":Lcom/koushikdutta/async/LineEmitter; │ - .end local v7 # "rl":Ljava/lang/String; │ - .end local v8 # "rs":Ljava/lang/String; │ - .end local v9 # "sentCallback":Lcom/koushikdutta/async/callback/CompletedCallback; │ - .end local v10 # "waitForBody":Z │ - :cond_3 │ - const-string v11, "close" │ + .end local v2 # "bsink":Lcom/koushikdutta/async/BufferedDataSink; │ + .end local v3 # "headerCallback":Lcom/koushikdutta/async/LineEmitter$StringCallback; │ + .end local v4 # "headerSink":Lcom/koushikdutta/async/DataSink; │ + .end local v5 # "liner":Lcom/koushikdutta/async/LineEmitter; │ + .end local v9 # "rl":Ljava/lang/String; │ + .end local v10 # "rs":Ljava/lang/String; │ + .end local v11 # "rsBytes":[B │ + .end local v12 # "sentCallback":Lcom/koushikdutta/async/callback/CompletedCallback; │ + .end local v13 # "waitForBody":Z │ + :cond_2 │ + const-string v14, "close" │ │ - invoke-virtual {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ + invoke-virtual {v7}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ - move-result-object v12 │ + move-result-object v15 │ │ - const-string v13, "Connection" │ + const-string v16, "Connection" │ │ - invoke-virtual {v12, v13}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ + invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v12 │ + move-result-object v15 │ │ - invoke-virtual {v11, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v14, v15}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v11 │ + move-result v14 │ │ - if-eqz v11, :cond_4 │ + if-eqz v14, :cond_3 │ │ .line 36 │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + move-object/from16 v0, p1 │ │ - iget-object v12, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - invoke-interface {v11, v12}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + move-object/from16 v0, p1 │ + │ + iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + │ + invoke-interface {v14, v15}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ goto/16 :goto_1 │ │ .line 39 │ - :cond_4 │ - invoke-virtual {v5}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ + :cond_3 │ + invoke-virtual {v7}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ - move-result-object v11 │ + move-result-object v14 │ │ - const-string v12, "Transfer-Encoding" │ + const-string v15, "Transfer-Encoding" │ │ - const-string v13, "Chunked" │ + const-string v16, "Chunked" │ │ - invoke-virtual {v11, v12, v13}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ + invoke-virtual/range {v14 .. v16}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ .line 40 │ - iget-object v11, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + move-object/from16 v0, p1 │ + │ + iget-object v14, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + │ + new-instance v15, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ │ - new-instance v12, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ + move-object/from16 v0, p1 │ │ - iget-object v13, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - invoke-direct {v12, v13}, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter;->(Lcom/koushikdutta/async/DataSink;)V │ + move-object/from16 v16, v0 │ │ - invoke-interface {v11, v12}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ + invoke-direct/range {v15 .. v16}, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter;->(Lcom/koushikdutta/async/DataSink;)V │ + │ + invoke-interface {v14, v15}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->sink(Lcom/koushikdutta/async/DataSink;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ goto/16 :goto_1 │ │ - .line 46 │ - :cond_5 │ - const/4 v10, 0x0 │ + .line 51 │ + .restart local v9 # "rl":Ljava/lang/String; │ + .restart local v10 # "rs":Ljava/lang/String; │ + .restart local v11 # "rsBytes":[B │ + :cond_4 │ + const/4 v13, 0x0 │ │ goto/16 :goto_2 │ │ - .line 57 │ - .restart local v10 # "waitForBody":Z │ - :cond_6 │ - const/4 v0, 0x0 │ + .line 62 │ + .restart local v13 # "waitForBody":Z │ + :cond_5 │ + const/4 v2, 0x0 │ │ - .line 58 │ - .restart local v0 # "bsink":Lcom/koushikdutta/async/BufferedDataSink; │ - iget-object v2, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ + .line 63 │ + .restart local v2 # "bsink":Lcom/koushikdutta/async/BufferedDataSink; │ + move-object/from16 v0, p1 │ + │ + iget-object v4, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .restart local v2 # "headerSink":Lcom/koushikdutta/async/DataSink; │ + .restart local v4 # "headerSink":Lcom/koushikdutta/async/DataSink; │ goto/16 :goto_3 │ .end method │ │ .method public onRequestSent(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestSentData;)V │ .locals 2 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestSentData; ├── smali/com/koushikdutta/async/http/HybiParser$1.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/HybiParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HybiParser; │ │ .prologue │ - .line 142 │ + .line 148 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HybiParser$1;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,44 +39,44 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 3 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 146 │ + .line 152 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$1;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v2 │ │ # invokes: Lcom/koushikdutta/async/http/HybiParser;->parseOpcode(B)V │ invoke-static {v1, v2}, Lcom/koushikdutta/async/http/HybiParser;->access$000(Lcom/koushikdutta/async/http/HybiParser;B)V │ :try_end_0 │ .catch Lcom/koushikdutta/async/http/HybiParser$ProtocolError; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 152 │ + .line 158 │ :goto_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$1;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/HybiParser;->parse()V │ │ - .line 153 │ + .line 159 │ return-void │ │ - .line 148 │ + .line 154 │ :catch_0 │ move-exception v0 │ │ - .line 149 │ + .line 155 │ .local v0, "e":Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$1;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/http/HybiParser;->report(Ljava/lang/Exception;)V │ │ - .line 150 │ + .line 156 │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->printStackTrace()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/HybiParser$2.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/HybiParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HybiParser; │ │ .prologue │ - .line 156 │ + .line 162 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HybiParser$2;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,25 +39,25 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 2 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 159 │ + .line 165 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser$2;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v1 │ │ # invokes: Lcom/koushikdutta/async/http/HybiParser;->parseLength(B)V │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/HybiParser;->access$100(Lcom/koushikdutta/async/http/HybiParser;B)V │ │ - .line 160 │ + .line 166 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser$2;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/HybiParser;->parse()V │ │ - .line 161 │ + .line 167 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/HybiParser$3.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/HybiParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HybiParser; │ │ .prologue │ - .line 164 │ + .line 170 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HybiParser$3;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,54 +39,54 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 3 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 167 │ + .line 173 │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser$3;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # getter for: Lcom/koushikdutta/async/http/HybiParser;->mLengthSize:I │ invoke-static {v2}, Lcom/koushikdutta/async/http/HybiParser;->access$200(Lcom/koushikdutta/async/http/HybiParser;)I │ │ move-result v2 │ │ new-array v0, v2, [B │ │ - .line 168 │ + .line 174 │ .local v0, "bytes":[B │ invoke-virtual {p2, v0}, Lcom/koushikdutta/async/ByteBufferList;->get([B)V │ │ - .line 170 │ + .line 176 │ :try_start_0 │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser$3;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # invokes: Lcom/koushikdutta/async/http/HybiParser;->parseExtendedLength([B)V │ invoke-static {v2, v0}, Lcom/koushikdutta/async/http/HybiParser;->access$300(Lcom/koushikdutta/async/http/HybiParser;[B)V │ :try_end_0 │ .catch Lcom/koushikdutta/async/http/HybiParser$ProtocolError; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 176 │ + .line 182 │ :goto_0 │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser$3;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/HybiParser;->parse()V │ │ - .line 177 │ + .line 183 │ return-void │ │ - .line 172 │ + .line 178 │ :catch_0 │ move-exception v1 │ │ - .line 173 │ + .line 179 │ .local v1, "e":Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser$3;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v2, v1}, Lcom/koushikdutta/async/http/HybiParser;->report(Ljava/lang/Exception;)V │ │ - .line 174 │ + .line 180 │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->printStackTrace()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/HybiParser$5.smali │ @@ -26,15 +26,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 190 │ + .line 196 │ const-class v0, Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -50,17 +50,18 @@ │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method constructor (Lcom/koushikdutta/async/http/HybiParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HybiParser; │ │ .prologue │ - .line 190 │ + .line 196 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -68,15 +69,15 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 3 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 193 │ + .line 199 │ sget-boolean v1, Lcom/koushikdutta/async/http/HybiParser$5;->$assertionsDisabled:Z │ │ if-nez v1, :cond_0 │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v1 │ @@ -92,15 +93,15 @@ │ │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ │ - .line 194 │ + .line 200 │ :cond_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # getter for: Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ invoke-static {v2}, Lcom/koushikdutta/async/http/HybiParser;->access$600(Lcom/koushikdutta/async/http/HybiParser;)I │ @@ -108,58 +109,58 @@ │ move-result v2 │ │ new-array v2, v2, [B │ │ # setter for: Lcom/koushikdutta/async/http/HybiParser;->mPayload:[B │ invoke-static {v1, v2}, Lcom/koushikdutta/async/http/HybiParser;->access$702(Lcom/koushikdutta/async/http/HybiParser;[B)[B │ │ - .line 195 │ + .line 201 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # getter for: Lcom/koushikdutta/async/http/HybiParser;->mPayload:[B │ invoke-static {v1}, Lcom/koushikdutta/async/http/HybiParser;->access$700(Lcom/koushikdutta/async/http/HybiParser;)[B │ │ move-result-object v1 │ │ invoke-virtual {p2, v1}, Lcom/koushikdutta/async/ByteBufferList;->get([B)V │ │ - .line 197 │ + .line 203 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # invokes: Lcom/koushikdutta/async/http/HybiParser;->emitFrame()V │ invoke-static {v1}, Lcom/koushikdutta/async/http/HybiParser;->access$800(Lcom/koushikdutta/async/http/HybiParser;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 203 │ + .line 209 │ :goto_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ const/4 v2, 0x0 │ │ # setter for: Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ invoke-static {v1, v2}, Lcom/koushikdutta/async/http/HybiParser;->access$502(Lcom/koushikdutta/async/http/HybiParser;I)I │ │ - .line 204 │ + .line 210 │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/HybiParser;->parse()V │ │ - .line 205 │ + .line 211 │ return-void │ │ - .line 199 │ + .line 205 │ :catch_0 │ move-exception v0 │ │ - .line 200 │ + .line 206 │ .local v0, "e":Ljava/io/IOException; │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser$5;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/http/HybiParser;->report(Ljava/lang/Exception;)V │ │ - .line 201 │ + .line 207 │ invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/HybiParser$4.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/HybiParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/HybiParser; │ │ .prologue │ - .line 180 │ + .line 186 │ iput-object p1, p0, Lcom/koushikdutta/async/http/HybiParser$4;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -40,39 +41,39 @@ │ .locals 3 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ const/4 v2, 0x4 │ │ - .line 183 │ + .line 189 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser$4;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ new-array v1, v2, [B │ │ # setter for: Lcom/koushikdutta/async/http/HybiParser;->mMask:[B │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/HybiParser;->access$402(Lcom/koushikdutta/async/http/HybiParser;[B)[B │ │ - .line 184 │ + .line 190 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser$4;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # getter for: Lcom/koushikdutta/async/http/HybiParser;->mMask:[B │ invoke-static {v0}, Lcom/koushikdutta/async/http/HybiParser;->access$400(Lcom/koushikdutta/async/http/HybiParser;)[B │ │ move-result-object v0 │ │ invoke-virtual {p2, v0}, Lcom/koushikdutta/async/ByteBufferList;->get([B)V │ │ - .line 185 │ + .line 191 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser$4;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ # setter for: Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ invoke-static {v0, v2}, Lcom/koushikdutta/async/http/HybiParser;->access$502(Lcom/koushikdutta/async/http/HybiParser;I)I │ │ - .line 186 │ + .line 192 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser$4;->this$0:Lcom/koushikdutta/async/http/HybiParser; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/HybiParser;->parse()V │ │ - .line 187 │ + .line 193 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/HybiParser$ProtocolError.smali │ @@ -16,13 +16,13 @@ │ │ # direct methods │ .method public constructor (Ljava/lang/String;)V │ .locals 0 │ .param p1, "detailMessage" # Ljava/lang/String; │ │ .prologue │ - .line 499 │ + .line 509 │ invoke-direct {p0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ - .line 500 │ + .line 510 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/HybiParser.smali │ @@ -82,27 +82,25 @@ │ │ .field private static final _2_TO_56_:J = 0x100000000000000L │ │ .field private static final _2_TO_8_:J = 0x100L │ │ │ # instance fields │ -.field private mBuffer:Ljava/io/ByteArrayOutputStream; │ +.field private final mBuffer:Ljava/io/ByteArrayOutputStream; │ │ .field private mClosed:Z │ │ .field private mDeflate:Z │ │ .field private mDeflated:Z │ │ .field private mFinal:Z │ │ -.field private mInflateBuffer:[B │ - │ -.field private mInflater:Ljava/util/zip/Inflater; │ +.field private final mInflateBuffer:[B │ │ .field private mLength:I │ │ .field private mLengthSize:I │ │ .field private mMask:[B │ │ @@ -140,74 +138,82 @@ │ │ const/4 v5, 0x2 │ │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 90 │ + .line 89 │ const/4 v0, 0x6 │ │ new-array v0, v0, [Ljava/lang/Integer; │ │ + .line 90 │ invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ aput-object v1, v0, v3 │ │ + .line 91 │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ aput-object v1, v0, v4 │ │ + .line 92 │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ aput-object v1, v0, v5 │ │ const/16 v1, 0x8 │ │ + .line 93 │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ aput-object v1, v0, v6 │ │ const/4 v1, 0x4 │ │ const/16 v2, 0x9 │ │ + .line 94 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x5 │ │ const/16 v2, 0xa │ │ + .line 95 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ + .line 89 │ invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/HybiParser;->OPCODES:Ljava/util/List; │ │ - .line 99 │ + .line 98 │ new-array v0, v6, [Ljava/lang/Integer; │ │ + .line 99 │ invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ aput-object v1, v0, v3 │ │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ @@ -218,37 +224,38 @@ │ │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ aput-object v1, v0, v5 │ │ + .line 98 │ invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/HybiParser;->FRAGMENTED_OPCODES:Ljava/util/List; │ │ return-void │ .end method │ │ .method public constructor (Lcom/koushikdutta/async/DataEmitter;)V │ - .locals 3 │ + .locals 2 │ .param p1, "socket" # Lcom/koushikdutta/async/DataEmitter; │ │ .prologue │ - const/4 v2, 0x1 │ - │ const/4 v1, 0x0 │ │ - .line 245 │ + .line 251 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 49 │ - iput-boolean v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mMasking:Z │ + const/4 v0, 0x1 │ + │ + iput-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mMasking:Z │ │ .line 50 │ iput-boolean v1, p0, Lcom/koushikdutta/async/http/HybiParser;->mDeflate:Z │ │ .line 62 │ new-array v0, v1, [B │ │ @@ -266,78 +273,71 @@ │ new-instance v0, Ljava/io/ByteArrayOutputStream; │ │ invoke-direct {v0}, Ljava/io/ByteArrayOutputStream;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mBuffer:Ljava/io/ByteArrayOutputStream; │ │ .line 68 │ - new-instance v0, Ljava/util/zip/Inflater; │ - │ - invoke-direct {v0, v2}, Ljava/util/zip/Inflater;->(Z)V │ - │ - iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ - │ - .line 69 │ const/16 v0, 0x1000 │ │ new-array v0, v0, [B │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ │ - .line 142 │ + .line 148 │ new-instance v0, Lcom/koushikdutta/async/http/HybiParser$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/HybiParser$1;->(Lcom/koushikdutta/async/http/HybiParser;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage0:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 156 │ + .line 162 │ new-instance v0, Lcom/koushikdutta/async/http/HybiParser$2; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/HybiParser$2;->(Lcom/koushikdutta/async/http/HybiParser;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage1:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 164 │ + .line 170 │ new-instance v0, Lcom/koushikdutta/async/http/HybiParser$3; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/HybiParser$3;->(Lcom/koushikdutta/async/http/HybiParser;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage2:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 180 │ + .line 186 │ new-instance v0, Lcom/koushikdutta/async/http/HybiParser$4; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/HybiParser$4;->(Lcom/koushikdutta/async/http/HybiParser;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage3:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 190 │ + .line 196 │ new-instance v0, Lcom/koushikdutta/async/http/HybiParser$5; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/HybiParser$5;->(Lcom/koushikdutta/async/http/HybiParser;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage4:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 228 │ + .line 234 │ new-instance v0, Lcom/koushikdutta/async/DataEmitterReader; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/DataEmitterReader;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ - .line 246 │ + .line 252 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/DataEmitter;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 247 │ + .line 253 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/HybiParser;->parse()V │ │ - .line 248 │ + .line 254 │ return-void │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/HybiParser;B)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/HybiParser; │ .param p1, "x1" # B │ @@ -482,94 +482,94 @@ │ .method private static byteArrayToLong([BII)J │ .locals 6 │ .param p0, "b" # [B │ .param p1, "offset" # I │ .param p2, "length" # I │ │ .prologue │ - .line 504 │ + .line 514 │ array-length v4, p0 │ │ if-ge v4, p2, :cond_0 │ │ - .line 505 │ + .line 515 │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ const-string v5, "length must be less than or equal to b.length" │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 507 │ + .line 517 │ :cond_0 │ const-wide/16 v2, 0x0 │ │ - .line 508 │ + .line 518 │ .local v2, "value":J │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_0 │ if-ge v0, p2, :cond_1 │ │ - .line 509 │ + .line 519 │ add-int/lit8 v4, p2, -0x1 │ │ sub-int/2addr v4, v0 │ │ mul-int/lit8 v1, v4, 0x8 │ │ - .line 510 │ + .line 520 │ .local v1, "shift":I │ add-int v4, v0, p1 │ │ aget-byte v4, p0, v4 │ │ and-int/lit16 v4, v4, 0xff │ │ shl-int/2addr v4, v1 │ │ int-to-long v4, v4 │ │ add-long/2addr v2, v4 │ │ - .line 508 │ + .line 518 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 512 │ + .line 522 │ .end local v1 # "shift":I │ :cond_1 │ return-wide v2 │ .end method │ │ .method private decode(Ljava/lang/String;)[B │ .locals 2 │ .param p1, "string" # Ljava/lang/String; │ │ .prologue │ - .line 477 │ + .line 487 │ :try_start_0 │ const-string v1, "UTF-8" │ │ invoke-virtual {p1, v1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B │ :try_end_0 │ .catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v1 │ │ return-object v1 │ │ - .line 478 │ + .line 488 │ :catch_0 │ move-exception v0 │ │ - .line 479 │ + .line 489 │ .local v0, "e":Ljava/io/UnsupportedEncodingException; │ new-instance v1, Ljava/lang/RuntimeException; │ │ invoke-direct {v1, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ .end method │ @@ -587,189 +587,189 @@ │ │ const/4 v0, 0x0 │ │ const/4 v10, 0x1 │ │ const/4 v9, 0x2 │ │ - .line 392 │ + .line 402 │ iget-object v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mPayload:[B │ │ iget-object v8, p0, Lcom/koushikdutta/async/http/HybiParser;->mMask:[B │ │ invoke-static {v7, v8, v0}, Lcom/koushikdutta/async/http/HybiParser;->mask([B[BI)[B │ │ move-result-object v5 │ │ - .line 393 │ + .line 403 │ .local v5, "payload":[B │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mDeflated:Z │ │ if-eqz v7, :cond_0 │ │ - .line 395 │ + .line 405 │ :try_start_0 │ invoke-direct {p0, v5}, Lcom/koushikdutta/async/http/HybiParser;->inflate([B)[B │ :try_end_0 │ .catch Ljava/util/zip/DataFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v5 │ │ - .line 400 │ + .line 410 │ :cond_0 │ iget v4, p0, Lcom/koushikdutta/async/http/HybiParser;->mOpcode:I │ │ - .line 402 │ + .line 412 │ .local v4, "opcode":I │ if-nez v4, :cond_4 │ │ - .line 403 │ + .line 413 │ iget v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mMode:I │ │ if-nez v7, :cond_1 │ │ - .line 404 │ + .line 414 │ new-instance v7, Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ │ const-string v8, "Mode was not set." │ │ invoke-direct {v7, v8}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->(Ljava/lang/String;)V │ │ throw v7 │ │ - .line 396 │ + .line 406 │ .end local v4 # "opcode":I │ :catch_0 │ move-exception v1 │ │ - .line 397 │ + .line 407 │ .local v1, "e":Ljava/util/zip/DataFormatException; │ new-instance v7, Ljava/io/IOException; │ │ const-string v8, "Invalid deflated data" │ │ invoke-direct {v7, v8}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v7 │ │ - .line 406 │ + .line 416 │ .end local v1 # "e":Ljava/util/zip/DataFormatException; │ .restart local v4 # "opcode":I │ :cond_1 │ iget-object v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mBuffer:Ljava/io/ByteArrayOutputStream; │ │ invoke-virtual {v7, v5}, Ljava/io/ByteArrayOutputStream;->write([B)V │ │ - .line 407 │ + .line 417 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mFinal:Z │ │ if-eqz v7, :cond_2 │ │ - .line 408 │ + .line 418 │ iget-object v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mBuffer:Ljava/io/ByteArrayOutputStream; │ │ invoke-virtual {v7}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B │ │ move-result-object v2 │ │ - .line 409 │ + .line 419 │ .local v2, "message":[B │ iget v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mMode:I │ │ if-ne v7, v10, :cond_3 │ │ - .line 410 │ + .line 420 │ invoke-direct {p0, v2}, Lcom/koushikdutta/async/http/HybiParser;->encode([B)Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {p0, v7}, Lcom/koushikdutta/async/http/HybiParser;->onMessage(Ljava/lang/String;)V │ │ - .line 414 │ + .line 424 │ :goto_0 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/HybiParser;->reset()V │ │ - .line 451 │ + .line 461 │ .end local v2 # "message":[B │ :cond_2 │ :goto_1 │ return-void │ │ - .line 412 │ + .line 422 │ .restart local v2 # "message":[B │ :cond_3 │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/http/HybiParser;->onMessage([B)V │ │ goto :goto_0 │ │ - .line 417 │ + .line 427 │ .end local v2 # "message":[B │ :cond_4 │ if-ne v4, v10, :cond_6 │ │ - .line 418 │ + .line 428 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mFinal:Z │ │ if-eqz v7, :cond_5 │ │ - .line 419 │ + .line 429 │ invoke-direct {p0, v5}, Lcom/koushikdutta/async/http/HybiParser;->encode([B)Ljava/lang/String; │ │ move-result-object v3 │ │ - .line 420 │ + .line 430 │ .local v3, "messageText":Ljava/lang/String; │ invoke-virtual {p0, v3}, Lcom/koushikdutta/async/http/HybiParser;->onMessage(Ljava/lang/String;)V │ │ goto :goto_1 │ │ - .line 422 │ + .line 432 │ .end local v3 # "messageText":Ljava/lang/String; │ :cond_5 │ iput v10, p0, Lcom/koushikdutta/async/http/HybiParser;->mMode:I │ │ - .line 423 │ + .line 433 │ iget-object v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mBuffer:Ljava/io/ByteArrayOutputStream; │ │ invoke-virtual {v7, v5}, Ljava/io/ByteArrayOutputStream;->write([B)V │ │ goto :goto_1 │ │ - .line 426 │ + .line 436 │ :cond_6 │ if-ne v4, v9, :cond_8 │ │ - .line 427 │ + .line 437 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mFinal:Z │ │ if-eqz v7, :cond_7 │ │ - .line 428 │ + .line 438 │ invoke-virtual {p0, v5}, Lcom/koushikdutta/async/http/HybiParser;->onMessage([B)V │ │ goto :goto_1 │ │ - .line 430 │ + .line 440 │ :cond_7 │ iput v9, p0, Lcom/koushikdutta/async/http/HybiParser;->mMode:I │ │ - .line 431 │ + .line 441 │ iget-object v7, p0, Lcom/koushikdutta/async/http/HybiParser;->mBuffer:Ljava/io/ByteArrayOutputStream; │ │ invoke-virtual {v7, v5}, Ljava/io/ByteArrayOutputStream;->write([B)V │ │ goto :goto_1 │ │ - .line 434 │ + .line 444 │ :cond_8 │ const/16 v7, 0x8 │ │ if-ne v4, v7, :cond_b │ │ - .line 435 │ + .line 445 │ array-length v7, v5 │ │ if-lt v7, v9, :cond_9 │ │ aget-byte v7, v5, v0 │ │ and-int/lit16 v7, v7, 0xff │ @@ -778,125 +778,125 @@ │ │ aget-byte v8, v5, v10 │ │ and-int/lit16 v8, v8, 0xff │ │ add-int v0, v7, v8 │ │ - .line 436 │ + .line 446 │ .local v0, "code":I │ :cond_9 │ array-length v7, v5 │ │ if-le v7, v9, :cond_a │ │ invoke-direct {p0, v5, v9}, Lcom/koushikdutta/async/http/HybiParser;->slice([BI)[B │ │ move-result-object v7 │ │ invoke-direct {p0, v7}, Lcom/koushikdutta/async/http/HybiParser;->encode([B)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 438 │ + .line 448 │ .local v6, "reason":Ljava/lang/String; │ :goto_2 │ invoke-virtual {p0, v0, v6}, Lcom/koushikdutta/async/http/HybiParser;->onDisconnect(ILjava/lang/String;)V │ │ goto :goto_1 │ │ - .line 436 │ + .line 446 │ .end local v6 # "reason":Ljava/lang/String; │ :cond_a │ const/4 v6, 0x0 │ │ goto :goto_2 │ │ - .line 440 │ + .line 450 │ .end local v0 # "code":I │ :cond_b │ const/16 v7, 0x9 │ │ if-ne v4, v7, :cond_d │ │ - .line 441 │ + .line 451 │ array-length v7, v5 │ │ const/16 v8, 0x7d │ │ if-le v7, v8, :cond_c │ │ new-instance v7, Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ │ const-string v8, "Ping payload too large" │ │ invoke-direct {v7, v8}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->(Ljava/lang/String;)V │ │ throw v7 │ │ - .line 443 │ + .line 453 │ :cond_c │ invoke-direct {p0, v5}, Lcom/koushikdutta/async/http/HybiParser;->encode([B)Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 444 │ + .line 454 │ .local v2, "message":Ljava/lang/String; │ const/4 v7, -0x1 │ │ invoke-direct {p0, v11, v5, v7}, Lcom/koushikdutta/async/http/HybiParser;->frame(I[BI)[B │ │ move-result-object v7 │ │ invoke-virtual {p0, v7}, Lcom/koushikdutta/async/http/HybiParser;->sendFrame([B)V │ │ - .line 445 │ + .line 455 │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/http/HybiParser;->onPing(Ljava/lang/String;)V │ │ goto :goto_1 │ │ - .line 446 │ + .line 456 │ .end local v2 # "message":Ljava/lang/String; │ :cond_d │ if-ne v4, v11, :cond_2 │ │ - .line 447 │ + .line 457 │ invoke-direct {p0, v5}, Lcom/koushikdutta/async/http/HybiParser;->encode([B)Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 448 │ + .line 458 │ .restart local v2 # "message":Ljava/lang/String; │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/http/HybiParser;->onPong(Ljava/lang/String;)V │ │ goto :goto_1 │ .end method │ │ .method private encode([B)Ljava/lang/String; │ .locals 3 │ .param p1, "buffer" # [B │ │ .prologue │ - .line 469 │ + .line 479 │ :try_start_0 │ new-instance v1, Ljava/lang/String; │ │ const-string v2, "UTF-8" │ │ invoke-direct {v1, p1, v2}, Ljava/lang/String;->([BLjava/lang/String;)V │ :try_end_0 │ .catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0 │ │ return-object v1 │ │ - .line 470 │ + .line 480 │ :catch_0 │ move-exception v0 │ │ - .line 471 │ + .line 481 │ .local v0, "e":Ljava/io/UnsupportedEncodingException; │ new-instance v1, Ljava/lang/RuntimeException; │ │ invoke-direct {v1, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ throw v1 │ .end method │ @@ -904,15 +904,15 @@ │ .method private frame(ILjava/lang/String;I)[B │ .locals 1 │ .param p1, "opcode" # I │ .param p2, "data" # Ljava/lang/String; │ .param p3, "errorCode" # I │ │ .prologue │ - .line 330 │ + .line 340 │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/http/HybiParser;->decode(Ljava/lang/String;)[B │ │ move-result-object v0 │ │ invoke-direct {p0, p1, v0, p3}, Lcom/koushikdutta/async/http/HybiParser;->frame(I[BI)[B │ │ move-result-object v0 │ @@ -923,15 +923,15 @@ │ .method private frame(I[BI)[B │ .locals 6 │ .param p1, "opcode" # I │ .param p2, "data" # [B │ .param p3, "errorCode" # I │ │ .prologue │ - .line 318 │ + .line 328 │ const/4 v4, 0x0 │ │ array-length v5, p2 │ │ move-object v0, p0 │ │ move v1, p1 │ @@ -952,162 +952,163 @@ │ .param p1, "opcode" # I │ .param p2, "data" # [B │ .param p3, "errorCode" # I │ .param p4, "dataOffset" # I │ .param p5, "dataLength" # I │ │ .prologue │ - .line 334 │ + .line 344 │ move-object/from16 v0, p0 │ │ iget-boolean v10, v0, Lcom/koushikdutta/async/http/HybiParser;->mClosed:Z │ │ if-eqz v10, :cond_1 │ │ const/4 v3, 0x0 │ │ - .line 382 │ + .line 392 │ :cond_0 │ :goto_0 │ return-object v3 │ │ - .line 337 │ + .line 347 │ :cond_1 │ move-object/from16 v2, p2 │ │ - .line 338 │ + .line 348 │ .local v2, "buffer":[B │ if-lez p3, :cond_3 │ │ const/4 v5, 0x2 │ │ - .line 339 │ + .line 349 │ .local v5, "insert":I │ :goto_1 │ add-int v10, p5, v5 │ │ sub-int v6, v10, p4 │ │ - .line 340 │ + .line 350 │ .local v6, "length":I │ const/16 v10, 0x7d │ │ if-gt v6, v10, :cond_4 │ │ const/4 v4, 0x2 │ │ - .line 341 │ + .line 351 │ .local v4, "header":I │ :goto_2 │ move-object/from16 v0, p0 │ │ iget-boolean v10, v0, Lcom/koushikdutta/async/http/HybiParser;->mMasking:Z │ │ if-eqz v10, :cond_6 │ │ const/4 v10, 0x4 │ │ :goto_3 │ add-int v9, v4, v10 │ │ - .line 342 │ + .line 352 │ .local v9, "offset":I │ move-object/from16 v0, p0 │ │ iget-boolean v10, v0, Lcom/koushikdutta/async/http/HybiParser;->mMasking:Z │ │ if-eqz v10, :cond_7 │ │ const/16 v8, 0x80 │ │ - .line 343 │ + .line 353 │ .local v8, "masked":I │ :goto_4 │ add-int v10, v6, v9 │ │ new-array v3, v10, [B │ │ - .line 345 │ + .line 355 │ .local v3, "frame":[B │ const/4 v10, 0x0 │ │ move/from16 v0, p1 │ │ int-to-byte v11, v0 │ │ or-int/lit8 v11, v11, -0x80 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 347 │ + .line 357 │ const/16 v10, 0x7d │ │ if-gt v6, v10, :cond_8 │ │ - .line 348 │ + .line 358 │ const/4 v10, 0x1 │ │ or-int v11, v8, v6 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 366 │ + .line 376 │ :goto_5 │ if-lez p3, :cond_2 │ │ - .line 367 │ + .line 377 │ move/from16 v0, p3 │ │ div-int/lit16 v10, v0, 0x100 │ │ and-int/lit16 v10, v10, 0xff │ │ int-to-byte v10, v10 │ │ aput-byte v10, v3, v9 │ │ - .line 368 │ + .line 378 │ add-int/lit8 v10, v9, 0x1 │ │ move/from16 v0, p3 │ │ and-int/lit16 v11, v0, 0xff │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 371 │ + .line 381 │ :cond_2 │ add-int v10, v9, v5 │ │ sub-int v11, p5, p4 │ │ move/from16 v0, p4 │ │ invoke-static {v2, v0, v3, v10, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 373 │ + .line 383 │ move-object/from16 v0, p0 │ │ iget-boolean v10, v0, Lcom/koushikdutta/async/http/HybiParser;->mMasking:Z │ │ if-eqz v10, :cond_0 │ │ - .line 374 │ + .line 384 │ const/4 v10, 0x4 │ │ new-array v7, v10, [B │ │ const/4 v10, 0x0 │ │ + .line 385 │ invoke-static {}, Ljava/lang/Math;->random()D │ │ move-result-wide v12 │ │ const-wide/high16 v14, 0x4070000000000000L # 256.0 │ │ mul-double/2addr v12, v14 │ @@ -1140,14 +1141,15 @@ │ │ int-to-byte v11, v11 │ │ aput-byte v11, v7, v10 │ │ const/4 v10, 0x2 │ │ + .line 386 │ invoke-static {}, Ljava/lang/Math;->random()D │ │ move-result-wide v12 │ │ const-wide/high16 v14, 0x4070000000000000L # 256.0 │ │ mul-double/2addr v12, v14 │ @@ -1178,41 +1180,41 @@ │ │ double-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v7, v10 │ │ - .line 378 │ + .line 388 │ .local v7, "mask":[B │ const/4 v10, 0x0 │ │ array-length v11, v7 │ │ invoke-static {v7, v10, v3, v4, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 379 │ + .line 389 │ invoke-static {v3, v7, v9}, Lcom/koushikdutta/async/http/HybiParser;->mask([B[BI)[B │ │ goto/16 :goto_0 │ │ - .line 338 │ + .line 348 │ .end local v3 # "frame":[B │ .end local v4 # "header":I │ .end local v5 # "insert":I │ .end local v6 # "length":I │ .end local v7 # "mask":[B │ .end local v8 # "masked":I │ .end local v9 # "offset":I │ :cond_3 │ const/4 v5, 0x0 │ │ goto/16 :goto_1 │ │ - .line 340 │ + .line 350 │ .restart local v5 # "insert":I │ .restart local v6 # "length":I │ :cond_4 │ const v10, 0xffff │ │ if-gt v6, v10, :cond_5 │ │ @@ -1221,76 +1223,76 @@ │ goto/16 :goto_2 │ │ :cond_5 │ const/16 v4, 0xa │ │ goto/16 :goto_2 │ │ - .line 341 │ + .line 351 │ .restart local v4 # "header":I │ :cond_6 │ const/4 v10, 0x0 │ │ goto/16 :goto_3 │ │ - .line 342 │ + .line 352 │ .restart local v9 # "offset":I │ :cond_7 │ const/4 v8, 0x0 │ │ goto/16 :goto_4 │ │ - .line 349 │ + .line 359 │ .restart local v3 # "frame":[B │ .restart local v8 # "masked":I │ :cond_8 │ const v10, 0xffff │ │ if-gt v6, v10, :cond_9 │ │ - .line 350 │ + .line 360 │ const/4 v10, 0x1 │ │ or-int/lit8 v11, v8, 0x7e │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 351 │ + .line 361 │ const/4 v10, 0x2 │ │ div-int/lit16 v11, v6, 0x100 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 352 │ + .line 362 │ const/4 v10, 0x3 │ │ and-int/lit16 v11, v6, 0xff │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ goto/16 :goto_5 │ │ - .line 355 │ + .line 365 │ :cond_9 │ const/4 v10, 0x1 │ │ or-int/lit8 v11, v8, 0x7f │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 356 │ + .line 366 │ const/4 v10, 0x2 │ │ int-to-long v12, v6 │ │ const-wide/high16 v14, 0x100000000000000L │ │ div-long/2addr v12, v14 │ @@ -1301,15 +1303,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 357 │ + .line 367 │ const/4 v10, 0x3 │ │ int-to-long v12, v6 │ │ const-wide/high16 v14, 0x1000000000000L │ │ div-long/2addr v12, v14 │ @@ -1320,15 +1322,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 358 │ + .line 368 │ const/4 v10, 0x4 │ │ int-to-long v12, v6 │ │ const-wide v14, 0x10000000000L │ │ div-long/2addr v12, v14 │ @@ -1339,15 +1341,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 359 │ + .line 369 │ const/4 v10, 0x5 │ │ int-to-long v12, v6 │ │ const-wide v14, 0x100000000L │ │ div-long/2addr v12, v14 │ @@ -1358,15 +1360,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 360 │ + .line 370 │ const/4 v10, 0x6 │ │ int-to-long v12, v6 │ │ const-wide/32 v14, 0x1000000 │ │ div-long/2addr v12, v14 │ @@ -1377,15 +1379,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 361 │ + .line 371 │ const/4 v10, 0x7 │ │ int-to-long v12, v6 │ │ const-wide/32 v14, 0x10000 │ │ div-long/2addr v12, v14 │ @@ -1396,15 +1398,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 362 │ + .line 372 │ const/16 v10, 0x8 │ │ int-to-long v12, v6 │ │ const-wide/16 v14, 0x100 │ │ div-long/2addr v12, v14 │ @@ -1415,15 +1417,15 @@ │ │ long-to-int v11, v12 │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ │ - .line 363 │ + .line 373 │ const/16 v10, 0x9 │ │ and-int/lit16 v11, v6, 0xff │ │ int-to-byte v11, v11 │ │ aput-byte v11, v3, v10 │ @@ -1437,38 +1439,38 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ } │ .end annotation │ │ .prologue │ - .line 484 │ + .line 494 │ const/4 v2, 0x0 │ │ array-length v3, p1 │ │ invoke-static {p1, v2, v3}, Lcom/koushikdutta/async/http/HybiParser;->byteArrayToLong([BII)J │ │ move-result-wide v0 │ │ - .line 485 │ + .line 495 │ .local v0, "i":J │ const-wide/16 v2, 0x0 │ │ cmp-long v2, v0, v2 │ │ if-ltz v2, :cond_0 │ │ const-wide/32 v2, 0x7fffffff │ │ cmp-long v2, v0, v2 │ │ if-lez v2, :cond_1 │ │ - .line 486 │ + .line 496 │ :cond_0 │ new-instance v2, Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ @@ -1486,15 +1488,15 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 488 │ + .line 498 │ :cond_1 │ long-to-int v2, v0 │ │ return v2 │ .end method │ │ .method private inflate([B)[B │ @@ -1505,102 +1507,111 @@ │ Ljava/util/zip/DataFormatException; │ } │ .end annotation │ │ .prologue │ const/4 v4, 0x0 │ │ - .line 117 │ + .line 116 │ new-instance v1, Ljava/io/ByteArrayOutputStream; │ │ invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;->()V │ │ - .line 119 │ + .line 118 │ .local v1, "inflated":Ljava/io/ByteArrayOutputStream; │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ + new-instance v2, Ljava/util/zip/Inflater; │ + │ + const/4 v3, 0x1 │ + │ + invoke-direct {v2, v3}, Ljava/util/zip/Inflater;->(Z)V │ │ + .line 119 │ + .local v2, "inflater":Ljava/util/zip/Inflater; │ invoke-virtual {v2, p1}, Ljava/util/zip/Inflater;->setInput([B)V │ │ - .line 120 │ + .line 121 │ :goto_0 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ - │ invoke-virtual {v2}, Ljava/util/zip/Inflater;->needsInput()Z │ │ - move-result v2 │ + move-result v3 │ │ - if-nez v2, :cond_0 │ - │ - .line 121 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ + if-nez v3, :cond_0 │ │ + .line 122 │ iget-object v3, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ │ invoke-virtual {v2, v3}, Ljava/util/zip/Inflater;->inflate([B)I │ │ move-result v0 │ │ - .line 122 │ + .line 123 │ .local v0, "chunkSize":I │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ + iget-object v3, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ │ - invoke-virtual {v1, v2, v4, v0}, Ljava/io/ByteArrayOutputStream;->write([BII)V │ + invoke-virtual {v1, v3, v4, v0}, Ljava/io/ByteArrayOutputStream;->write([BII)V │ │ goto :goto_0 │ │ - .line 125 │ + .line 126 │ .end local v0 # "chunkSize":I │ :cond_0 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ - │ const/4 v3, 0x4 │ │ new-array v3, v3, [B │ │ fill-array-data v3, :array_0 │ │ invoke-virtual {v2, v3}, Ljava/util/zip/Inflater;->setInput([B)V │ │ - .line 126 │ + .line 128 │ :goto_1 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ - │ invoke-virtual {v2}, Ljava/util/zip/Inflater;->needsInput()Z │ │ - move-result v2 │ - │ - if-nez v2, :cond_1 │ + move-result v3 │ │ - .line 127 │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflater:Ljava/util/zip/Inflater; │ + if-nez v3, :cond_1 │ │ + .line 129 │ iget-object v3, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ │ invoke-virtual {v2, v3}, Ljava/util/zip/Inflater;->inflate([B)I │ │ move-result v0 │ │ - .line 128 │ + .line 130 │ .restart local v0 # "chunkSize":I │ - iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ + iget-object v3, p0, Lcom/koushikdutta/async/http/HybiParser;->mInflateBuffer:[B │ │ - invoke-virtual {v1, v2, v4, v0}, Ljava/io/ByteArrayOutputStream;->write([BII)V │ + invoke-virtual {v1, v3, v4, v0}, Ljava/io/ByteArrayOutputStream;->write([BII)V │ │ goto :goto_1 │ │ - .line 131 │ + .line 134 │ .end local v0 # "chunkSize":I │ :cond_1 │ + :try_start_0 │ invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B │ + :try_end_0 │ + .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - move-result-object v2 │ + move-result-object v3 │ + │ + .line 136 │ + invoke-virtual {v2}, Ljava/util/zip/Inflater;->end()V │ + │ + return-object v3 │ + │ + :catchall_0 │ + move-exception v3 │ │ - return-object v2 │ + invoke-virtual {v2}, Ljava/util/zip/Inflater;->end()V │ │ - .line 125 │ + throw v3 │ + │ + .line 126 │ nop │ │ :array_0 │ .array-data 1 │ 0x0t │ 0x0t │ -0x1t │ @@ -1611,36 +1622,36 @@ │ .method private static mask([B[BI)[B │ .locals 4 │ .param p0, "payload" # [B │ .param p1, "mask" # [B │ .param p2, "offset" # I │ │ .prologue │ - .line 108 │ + .line 107 │ array-length v1, p1 │ │ if-nez v1, :cond_1 │ │ - .line 113 │ + .line 112 │ :cond_0 │ return-object p0 │ │ - .line 110 │ + .line 109 │ :cond_1 │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_0 │ array-length v1, p0 │ │ sub-int/2addr v1, p2 │ │ if-ge v0, v1, :cond_0 │ │ - .line 111 │ + .line 110 │ add-int v1, p2, v0 │ │ add-int v2, p2, v0 │ │ aget-byte v2, p0, v2 │ │ rem-int/lit8 v3, v0, 0x4 │ @@ -1649,15 +1660,15 @@ │ │ xor-int/2addr v2, v3 │ │ int-to-byte v2, v2 │ │ aput-byte v2, p0, v1 │ │ - .line 110 │ + .line 109 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ .end method │ │ .method private parseExtendedLength([B)V │ .locals 1 │ @@ -1665,121 +1676,121 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ } │ .end annotation │ │ .prologue │ - .line 289 │ + .line 295 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/HybiParser;->getInteger([B)I │ │ move-result v0 │ │ iput v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ │ - .line 290 │ + .line 296 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mMasked:Z │ │ if-eqz v0, :cond_0 │ │ const/4 v0, 0x3 │ │ :goto_0 │ iput v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ │ - .line 291 │ + .line 297 │ return-void │ │ - .line 290 │ + .line 296 │ :cond_0 │ const/4 v0, 0x4 │ │ goto :goto_0 │ .end method │ │ .method private parseLength(B)V │ .locals 3 │ .param p1, "data" # B │ │ .prologue │ const/4 v1, 0x2 │ │ - .line 277 │ + .line 283 │ and-int/lit16 v0, p1, 0x80 │ │ const/16 v2, 0x80 │ │ if-ne v0, v2, :cond_0 │ │ const/4 v0, 0x1 │ │ :goto_0 │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mMasked:Z │ │ - .line 278 │ + .line 284 │ and-int/lit8 v0, p1, 0x7f │ │ iput v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ │ - .line 280 │ + .line 286 │ iget v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ │ if-ltz v0, :cond_2 │ │ iget v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ │ const/16 v2, 0x7d │ │ if-gt v0, v2, :cond_2 │ │ - .line 281 │ + .line 287 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mMasked:Z │ │ if-eqz v0, :cond_1 │ │ const/4 v0, 0x3 │ │ :goto_1 │ iput v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ │ - .line 286 │ + .line 292 │ :goto_2 │ return-void │ │ - .line 277 │ + .line 283 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 281 │ + .line 287 │ :cond_1 │ const/4 v0, 0x4 │ │ goto :goto_1 │ │ - .line 283 │ + .line 289 │ :cond_2 │ iget v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ │ const/16 v2, 0x7e │ │ if-ne v0, v2, :cond_3 │ │ move v0, v1 │ │ :goto_3 │ iput v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mLengthSize:I │ │ - .line 284 │ + .line 290 │ iput v1, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ │ goto :goto_2 │ │ - .line 283 │ + .line 289 │ :cond_3 │ const/16 v0, 0x8 │ │ goto :goto_3 │ .end method │ │ .method private parseOpcode(B)V │ @@ -1792,60 +1803,60 @@ │ .end annotation │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 251 │ + .line 257 │ and-int/lit8 v5, p1, 0x40 │ │ const/16 v6, 0x40 │ │ if-ne v5, v6, :cond_2 │ │ move v0, v3 │ │ - .line 252 │ + .line 258 │ .local v0, "rsv1":Z │ :goto_0 │ and-int/lit8 v5, p1, 0x20 │ │ const/16 v6, 0x20 │ │ if-ne v5, v6, :cond_3 │ │ move v1, v3 │ │ - .line 253 │ + .line 259 │ .local v1, "rsv2":Z │ :goto_1 │ and-int/lit8 v5, p1, 0x10 │ │ const/16 v6, 0x10 │ │ if-ne v5, v6, :cond_4 │ │ move v2, v3 │ │ - .line 255 │ + .line 261 │ .local v2, "rsv3":Z │ :goto_2 │ iget-boolean v5, p0, Lcom/koushikdutta/async/http/HybiParser;->mDeflate:Z │ │ if-nez v5, :cond_0 │ │ if-nez v0, :cond_1 │ │ :cond_0 │ if-nez v1, :cond_1 │ │ if-eqz v2, :cond_5 │ │ - .line 256 │ + .line 262 │ :cond_1 │ new-instance v3, Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ │ const-string v4, "RSV not zero" │ │ invoke-direct {v3, v4}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->(Ljava/lang/String;)V │ │ @@ -1853,94 +1864,94 @@ │ │ .end local v0 # "rsv1":Z │ .end local v1 # "rsv2":Z │ .end local v2 # "rsv3":Z │ :cond_2 │ move v0, v4 │ │ - .line 251 │ + .line 257 │ goto :goto_0 │ │ .restart local v0 # "rsv1":Z │ :cond_3 │ move v1, v4 │ │ - .line 252 │ + .line 258 │ goto :goto_1 │ │ .restart local v1 # "rsv2":Z │ :cond_4 │ move v2, v4 │ │ - .line 253 │ + .line 259 │ goto :goto_2 │ │ - .line 259 │ + .line 265 │ .restart local v2 # "rsv3":Z │ :cond_5 │ and-int/lit16 v5, p1, 0x80 │ │ const/16 v6, 0x80 │ │ if-ne v5, v6, :cond_6 │ │ move v5, v3 │ │ :goto_3 │ iput-boolean v5, p0, Lcom/koushikdutta/async/http/HybiParser;->mFinal:Z │ │ - .line 260 │ + .line 266 │ and-int/lit8 v5, p1, 0xf │ │ iput v5, p0, Lcom/koushikdutta/async/http/HybiParser;->mOpcode:I │ │ - .line 261 │ + .line 267 │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mDeflated:Z │ │ - .line 262 │ + .line 268 │ new-array v5, v4, [B │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/HybiParser;->mMask:[B │ │ - .line 263 │ + .line 269 │ new-array v4, v4, [B │ │ iput-object v4, p0, Lcom/koushikdutta/async/http/HybiParser;->mPayload:[B │ │ - .line 265 │ + .line 271 │ sget-object v4, Lcom/koushikdutta/async/http/HybiParser;->OPCODES:Ljava/util/List; │ │ iget v5, p0, Lcom/koushikdutta/async/http/HybiParser;->mOpcode:I │ │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ │ invoke-interface {v4, v5}, Ljava/util/List;->contains(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_7 │ │ - .line 266 │ + .line 272 │ new-instance v3, Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ │ const-string v4, "Bad opcode" │ │ invoke-direct {v3, v4}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->(Ljava/lang/String;)V │ │ throw v3 │ │ :cond_6 │ move v5, v4 │ │ - .line 259 │ + .line 265 │ goto :goto_3 │ │ - .line 269 │ + .line 275 │ :cond_7 │ sget-object v4, Lcom/koushikdutta/async/http/HybiParser;->FRAGMENTED_OPCODES:Ljava/util/List; │ │ iget v5, p0, Lcom/koushikdutta/async/http/HybiParser;->mOpcode:I │ │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ @@ -1952,117 +1963,117 @@ │ │ if-nez v4, :cond_8 │ │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/HybiParser;->mFinal:Z │ │ if-nez v4, :cond_8 │ │ - .line 270 │ + .line 276 │ new-instance v3, Lcom/koushikdutta/async/http/HybiParser$ProtocolError; │ │ const-string v4, "Expected non-final packet" │ │ invoke-direct {v3, v4}, Lcom/koushikdutta/async/http/HybiParser$ProtocolError;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 273 │ + .line 279 │ :cond_8 │ iput v3, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ │ - .line 274 │ + .line 280 │ return-void │ .end method │ │ .method private reset()V │ .locals 1 │ │ .prologue │ - .line 463 │ + .line 473 │ const/4 v0, 0x0 │ │ iput v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mMode:I │ │ - .line 464 │ + .line 474 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mBuffer:Ljava/io/ByteArrayOutputStream; │ │ invoke-virtual {v0}, Ljava/io/ByteArrayOutputStream;->reset()V │ │ - .line 465 │ + .line 475 │ return-void │ .end method │ │ .method private slice([BI)[B │ .locals 3 │ .param p1, "array" # [B │ .param p2, "start" # I │ │ .prologue │ - .line 492 │ + .line 502 │ array-length v1, p1 │ │ sub-int/2addr v1, p2 │ │ new-array v0, v1, [B │ │ - .line 493 │ + .line 503 │ .local v0, "copy":[B │ const/4 v1, 0x0 │ │ array-length v2, p1 │ │ sub-int/2addr v2, p2 │ │ invoke-static {p1, p2, v0, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 494 │ + .line 504 │ return-object v0 │ .end method │ │ │ # virtual methods │ .method public close(ILjava/lang/String;)V │ .locals 1 │ .param p1, "code" # I │ .param p2, "reason" # Ljava/lang/String; │ │ .prologue │ - .line 386 │ + .line 396 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mClosed:Z │ │ if-eqz v0, :cond_0 │ │ - .line 389 │ + .line 399 │ :goto_0 │ return-void │ │ - .line 387 │ + .line 397 │ :cond_0 │ const/16 v0, 0x8 │ │ invoke-direct {p0, v0, p2, p1}, Lcom/koushikdutta/async/http/HybiParser;->frame(ILjava/lang/String;I)[B │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/HybiParser;->sendFrame([B)V │ │ - .line 388 │ + .line 398 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mClosed:Z │ │ goto :goto_0 │ .end method │ │ .method public frame(Ljava/lang/String;)[B │ .locals 2 │ .param p1, "data" # Ljava/lang/String; │ │ .prologue │ - .line 294 │ + .line 300 │ const/4 v0, 0x1 │ │ const/4 v1, -0x1 │ │ invoke-direct {p0, v0, p1, v1}, Lcom/koushikdutta/async/http/HybiParser;->frame(ILjava/lang/String;I)[B │ │ move-result-object v0 │ @@ -2071,15 +2082,15 @@ │ .end method │ │ .method public frame([B)[B │ .locals 2 │ .param p1, "data" # [B │ │ .prologue │ - .line 298 │ + .line 304 │ const/4 v0, 0x2 │ │ const/4 v1, -0x1 │ │ invoke-direct {p0, v0, p1, v1}, Lcom/koushikdutta/async/http/HybiParser;->frame(I[BI)[B │ │ move-result-object v0 │ @@ -2090,15 +2101,15 @@ │ .method public frame([BII)[B │ .locals 6 │ .param p1, "data" # [B │ .param p2, "offset" # I │ .param p3, "length" # I │ │ .prologue │ - .line 302 │ + .line 308 │ const/4 v1, 0x2 │ │ const/4 v3, -0x1 │ │ move-object v0, p0 │ │ move-object v2, p1 │ @@ -2131,80 +2142,80 @@ │ │ .method parse()V │ .locals 3 │ │ .prologue │ const/4 v2, 0x1 │ │ - .line 209 │ + .line 215 │ iget v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage:I │ │ packed-switch v0, :pswitch_data_0 │ │ - .line 226 │ + .line 232 │ :goto_0 │ return-void │ │ - .line 211 │ + .line 217 │ :pswitch_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage0:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v2, v1}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ goto :goto_0 │ │ - .line 214 │ + .line 220 │ :pswitch_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage1:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v2, v1}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ goto :goto_0 │ │ - .line 217 │ + .line 223 │ :pswitch_2 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ iget v1, p0, Lcom/koushikdutta/async/http/HybiParser;->mLengthSize:I │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage2:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ goto :goto_0 │ │ - .line 220 │ + .line 226 │ :pswitch_3 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ const/4 v1, 0x4 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage3:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ goto :goto_0 │ │ - .line 223 │ + .line 229 │ :pswitch_4 │ iget-object v0, p0, Lcom/koushikdutta/async/http/HybiParser;->mReader:Lcom/koushikdutta/async/DataEmitterReader; │ │ iget v1, p0, Lcom/koushikdutta/async/http/HybiParser;->mLength:I │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/HybiParser;->mStage4:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ goto :goto_0 │ │ - .line 209 │ + .line 215 │ :pswitch_data_0 │ .packed-switch 0x0 │ :pswitch_0 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 │ :pswitch_4 │ @@ -2212,48 +2223,65 @@ │ .end method │ │ .method public pingFrame(Ljava/lang/String;)[B │ .locals 2 │ .param p1, "data" # Ljava/lang/String; │ │ .prologue │ - .line 306 │ + .line 312 │ const/16 v0, 0x9 │ │ const/4 v1, -0x1 │ │ invoke-direct {p0, v0, p1, v1}, Lcom/koushikdutta/async/http/HybiParser;->frame(ILjava/lang/String;I)[B │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ +.method public pongFrame(Ljava/lang/String;)[B │ + .locals 2 │ + .param p1, "data" # Ljava/lang/String; │ + │ + .prologue │ + .line 316 │ + const/16 v0, 0xa │ + │ + const/4 v1, -0x1 │ + │ + invoke-direct {p0, v0, p1, v1}, Lcom/koushikdutta/async/http/HybiParser;->frame(ILjava/lang/String;I)[B │ + │ + move-result-object v0 │ + │ + return-object v0 │ +.end method │ + │ .method protected abstract report(Ljava/lang/Exception;)V │ .end method │ │ .method protected abstract sendFrame([B)V │ .end method │ │ .method public setDeflate(Z)V │ .locals 0 │ .param p1, "deflate" # Z │ │ .prologue │ - .line 139 │ + .line 145 │ iput-boolean p1, p0, Lcom/koushikdutta/async/http/HybiParser;->mDeflate:Z │ │ - .line 140 │ + .line 146 │ return-void │ .end method │ │ .method public setMasking(Z)V │ .locals 0 │ .param p1, "masking" # Z │ │ .prologue │ - .line 135 │ + .line 141 │ iput-boolean p1, p0, Lcom/koushikdutta/async/http/HybiParser;->mMasking:Z │ │ - .line 136 │ + .line 142 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/WebSocket.smali │ @@ -28,14 +28,17 @@ │ │ .method public abstract isBuffering()Z │ .end method │ │ .method public abstract ping(Ljava/lang/String;)V │ .end method │ │ +.method public abstract pong(Ljava/lang/String;)V │ +.end method │ + │ .method public abstract send(Ljava/lang/String;)V │ .end method │ │ .method public abstract send([B)V │ .end method │ │ .method public abstract send([BII)V ├── smali/com/koushikdutta/async/http/WebSocketImpl$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/WebSocketImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/WebSocketImpl;Lcom/koushikdutta/async/DataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/WebSocketImpl; │ .param p2, "x0" # Lcom/koushikdutta/async/DataEmitter; │ │ .prologue │ .line 74 │ iput-object p1, p0, Lcom/koushikdutta/async/http/WebSocketImpl$1;->this$0:Lcom/koushikdutta/async/http/WebSocketImpl; │ │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/http/HybiParser;->(Lcom/koushikdutta/async/DataEmitter;)V ├── smali/com/koushikdutta/async/http/WebSocketImpl.smali │ @@ -782,15 +782,15 @@ │ │ │ # virtual methods │ .method public charset()Ljava/lang/String; │ .locals 1 │ │ .prologue │ - .line 344 │ + .line 349 │ const/4 v0, 0x0 │ │ return-object v0 │ .end method │ │ .method public close()V │ .locals 1 │ @@ -832,15 +832,15 @@ │ return-object v0 │ .end method │ │ .method public getDataCallback()Lcom/koushikdutta/async/callback/DataCallback; │ .locals 1 │ │ .prologue │ - .line 283 │ + .line 288 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mDataCallback:Lcom/koushikdutta/async/callback/DataCallback; │ │ return-object v0 │ .end method │ │ .method public getEndCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ .locals 1 │ @@ -852,73 +852,73 @@ │ return-object v0 │ .end method │ │ .method public getPongCallback()Lcom/koushikdutta/async/http/WebSocket$PongCallback; │ .locals 1 │ │ .prologue │ - .line 278 │ + .line 283 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mPongCallback:Lcom/koushikdutta/async/http/WebSocket$PongCallback; │ │ return-object v0 │ .end method │ │ .method public getServer()Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ │ .prologue │ - .line 319 │ + .line 324 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getSocket()Lcom/koushikdutta/async/AsyncSocket; │ .locals 1 │ │ .prologue │ - .line 314 │ + .line 319 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ return-object v0 │ .end method │ │ .method public getStringCallback()Lcom/koushikdutta/async/http/WebSocket$StringCallback; │ .locals 1 │ │ .prologue │ - .line 261 │ + .line 266 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mStringCallback:Lcom/koushikdutta/async/http/WebSocket$StringCallback; │ │ return-object v0 │ .end method │ │ .method public getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ .locals 1 │ │ .prologue │ - .line 309 │ + .line 314 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSink:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/BufferedDataSink;->getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public isBuffering()Z │ .locals 1 │ │ .prologue │ - .line 293 │ + .line 298 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSink:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/BufferedDataSink;->remaining()I │ │ move-result v0 │ │ if-lez v0, :cond_0 │ @@ -934,58 +934,58 @@ │ goto :goto_0 │ .end method │ │ .method public isChunked()Z │ .locals 1 │ │ .prologue │ - .line 324 │ + .line 329 │ const/4 v0, 0x0 │ │ return v0 │ .end method │ │ .method public isOpen()Z │ .locals 1 │ │ .prologue │ - .line 288 │ + .line 293 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public isPaused()Z │ .locals 1 │ │ .prologue │ - .line 339 │ + .line 344 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isPaused()Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public pause()V │ .locals 1 │ │ .prologue │ - .line 329 │ + .line 334 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->pause()V │ │ - .line 330 │ + .line 335 │ return-void │ .end method │ │ .method public ping(Ljava/lang/String;)V │ .locals 5 │ .param p1, "string" # Ljava/lang/String; │ │ @@ -1017,24 +1017,60 @@ │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ .line 245 │ return-void │ .end method │ │ +.method public pong(Ljava/lang/String;)V │ + .locals 5 │ + .param p1, "string" # Ljava/lang/String; │ + │ + .prologue │ + .line 249 │ + iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSink:Lcom/koushikdutta/async/BufferedDataSink; │ + │ + new-instance v1, Lcom/koushikdutta/async/ByteBufferList; │ + │ + const/4 v2, 0x1 │ + │ + new-array v2, v2, [Ljava/nio/ByteBuffer; │ + │ + const/4 v3, 0x0 │ + │ + iget-object v4, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mParser:Lcom/koushikdutta/async/http/HybiParser; │ + │ + invoke-virtual {v4, p1}, Lcom/koushikdutta/async/http/HybiParser;->pongFrame(Ljava/lang/String;)[B │ + │ + move-result-object v4 │ + │ + invoke-static {v4}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer; │ + │ + move-result-object v4 │ + │ + aput-object v4, v2, v3 │ + │ + invoke-direct {v1, v2}, Lcom/koushikdutta/async/ByteBufferList;->([Ljava/nio/ByteBuffer;)V │ + │ + invoke-virtual {v0, v1}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ + │ + .line 250 │ + return-void │ +.end method │ + │ .method public resume()V │ .locals 1 │ │ .prologue │ - .line 334 │ + .line 339 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->resume()V │ │ - .line 335 │ + .line 340 │ return-void │ .end method │ │ .method public send(Ljava/lang/String;)V │ .locals 3 │ .param p1, "string" # Ljava/lang/String; │ │ @@ -1123,18 +1159,18 @@ │ .end method │ │ .method public setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/callback/DataCallback; │ │ .prologue │ - .line 256 │ + .line 261 │ iput-object p1, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mDataCallback:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 257 │ + .line 262 │ return-void │ .end method │ │ .method public setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ @@ -1147,69 +1183,69 @@ │ .end method │ │ .method public setPingCallback(Lcom/koushikdutta/async/http/WebSocket$PingCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/http/WebSocket$PingCallback; │ │ .prologue │ - .line 267 │ + .line 272 │ iput-object p1, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mPingCallback:Lcom/koushikdutta/async/http/WebSocket$PingCallback; │ │ - .line 268 │ + .line 273 │ return-void │ .end method │ │ .method public setPongCallback(Lcom/koushikdutta/async/http/WebSocket$PongCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/http/WebSocket$PongCallback; │ │ .prologue │ - .line 273 │ + .line 278 │ iput-object p1, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mPongCallback:Lcom/koushikdutta/async/http/WebSocket$PongCallback; │ │ - .line 274 │ + .line 279 │ return-void │ .end method │ │ .method public setStringCallback(Lcom/koushikdutta/async/http/WebSocket$StringCallback;)V │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/async/http/WebSocket$StringCallback; │ │ .prologue │ - .line 250 │ + .line 255 │ iput-object p1, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mStringCallback:Lcom/koushikdutta/async/http/WebSocket$StringCallback; │ │ - .line 251 │ + .line 256 │ return-void │ .end method │ │ .method public setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ .locals 1 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/WritableCallback; │ │ .prologue │ - .line 304 │ + .line 309 │ iget-object v0, p0, Lcom/koushikdutta/async/http/WebSocketImpl;->mSink:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/BufferedDataSink;->setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ │ - .line 305 │ + .line 310 │ return-void │ .end method │ │ .method public write(Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 1 │ .param p1, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 298 │ + .line 303 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getAllByteArray()[B │ │ move-result-object v0 │ │ - .line 299 │ + .line 304 │ .local v0, "buf":[B │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/WebSocketImpl;->send([B)V │ │ - .line 300 │ + .line 305 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/body/DocumentBody$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/DocumentBody;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/DocumentBody; │ │ .prologue │ .line 62 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/DocumentBody$1;->this$0:Lcom/koushikdutta/async/http/body/DocumentBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/DocumentBody$1;->val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/body/JSONArrayBody$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/JSONArrayBody;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/JSONArrayBody; │ │ .prologue │ .line 26 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/JSONArrayBody$1;->this$0:Lcom/koushikdutta/async/http/body/JSONArrayBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/JSONArrayBody$1;->val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/body/JSONObjectBody$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/JSONObjectBody;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/JSONObjectBody; │ │ .prologue │ .line 26 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/JSONObjectBody$1;->this$0:Lcom/koushikdutta/async/http/body/JSONObjectBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/JSONObjectBody$1;->val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$1$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1; │ │ .prologue │ .line 88 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1$1;->this$1:Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$headers:Lcom/koushikdutta/async/http/Headers; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/http/Headers;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ .prologue │ .line 66 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1;->this$0:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$1;->val$headers:Lcom/koushikdutta/async/http/Headers; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ .prologue │ .line 131 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$2;->this$0:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$2;->val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$3.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$sink:Lcom/koushikdutta/async/DataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/DataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ .prologue │ .line 160 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$3;->this$0:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$3;->val$sink:Lcom/koushikdutta/async/DataSink; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$4.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$sink:Lcom/koushikdutta/async/DataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/http/body/Part;Lcom/koushikdutta/async/DataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ .prologue │ .line 151 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$4;->this$0:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$4;->val$part:Lcom/koushikdutta/async/http/body/Part; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$5.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$sink:Lcom/koushikdutta/async/DataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/http/body/Part;Lcom/koushikdutta/async/DataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ .prologue │ .line 143 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$5;->this$0:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$5;->val$part:Lcom/koushikdutta/async/http/body/Part; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody$6.smali │ @@ -52,14 +52,15 @@ │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method constructor (Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/DataSink;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ .prologue │ .line 169 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$6;->this$0:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$6;->val$sink:Lcom/koushikdutta/async/DataSink; ├── smali/com/koushikdutta/async/http/body/MultipartFormDataBody.smali │ @@ -753,22 +753,24 @@ │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$4; │ │ invoke-direct {v4, p0, v2, p2}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$4;->(Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/http/body/Part;Lcom/koushikdutta/async/DataSink;)V │ │ + .line 151 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/future/Continuation;->add(Lcom/koushikdutta/async/callback/ContinuationCallback;)Lcom/koushikdutta/async/future/Continuation; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$3; │ │ invoke-direct {v4, p0, p2}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody$3;->(Lcom/koushikdutta/async/http/body/MultipartFormDataBody;Lcom/koushikdutta/async/DataSink;)V │ │ + .line 160 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/future/Continuation;->add(Lcom/koushikdutta/async/callback/ContinuationCallback;)Lcom/koushikdutta/async/future/Continuation; │ │ goto :goto_1 │ │ .line 169 │ .end local v2 # "part":Lcom/koushikdutta/async/http/body/Part; │ :cond_1 ├── smali/com/koushikdutta/async/http/body/Part.smali │ @@ -18,15 +18,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 12 │ + .line 13 │ const-class v0, Lcom/koushikdutta/async/http/body/Part; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -45,46 +45,46 @@ │ .end method │ │ .method public constructor (Lcom/koushikdutta/async/http/Headers;)V │ .locals 2 │ .param p1, "headers" # Lcom/koushikdutta/async/http/Headers; │ │ .prologue │ - .line 17 │ + .line 18 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 26 │ + .line 27 │ const-wide/16 v0, -0x1 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/body/Part;->length:J │ │ - .line 18 │ + .line 19 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ - .line 19 │ + .line 20 │ iget-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Content-Disposition" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/Multimap;->parseSemicolonDelimited(Ljava/lang/String;)Lcom/koushikdutta/async/http/Multimap; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mContentDisposition:Lcom/koushikdutta/async/http/Multimap; │ │ - .line 20 │ + .line 21 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;JLjava/util/List;)V │ - .locals 8 │ + .locals 10 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "length" # J │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/String;", │ "J", │ @@ -93,56 +93,58 @@ │ "Lcom/koushikdutta/async/http/NameValuePair;", │ ">;)V" │ } │ .end annotation │ │ .prologue │ .local p4, "contentDisposition":Ljava/util/List;, "Ljava/util/List;" │ - const/4 v7, 0x1 │ + const/4 v8, 0x1 │ │ - const/4 v6, 0x0 │ + const/4 v7, 0x0 │ │ - .line 27 │ + .line 28 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 26 │ + .line 27 │ const-wide/16 v4, -0x1 │ │ iput-wide v4, p0, Lcom/koushikdutta/async/http/body/Part;->length:J │ │ - .line 28 │ + .line 29 │ iput-wide p2, p0, Lcom/koushikdutta/async/http/body/Part;->length:J │ │ - .line 29 │ + .line 30 │ new-instance v3, Lcom/koushikdutta/async/http/Headers; │ │ invoke-direct {v3}, Lcom/koushikdutta/async/http/Headers;->()V │ │ iput-object v3, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ - .line 30 │ + .line 31 │ new-instance v0, Ljava/lang/StringBuilder; │ │ - const-string v3, "form-data; name=\"%s\"" │ + sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v4, "form-data; name=\"%s\"" │ │ - new-array v4, v7, [Ljava/lang/Object; │ + new-array v5, v8, [Ljava/lang/Object; │ │ - aput-object p1, v4, v6 │ + aput-object p1, v5, v7 │ │ - invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v3, v4, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-direct {v0, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ │ - .line 31 │ + .line 32 │ .local v0, "builder":Ljava/lang/StringBuilder; │ if-eqz p4, :cond_0 │ │ - .line 32 │ + .line 33 │ invoke-interface {p4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ @@ -153,82 +155,84 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/async/http/NameValuePair; │ │ - .line 33 │ + .line 34 │ .local v2, "pair":Lcom/koushikdutta/async/http/NameValuePair; │ - const-string v3, "; %s=\"%s\"" │ + sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v4, "; %s=\"%s\"" │ │ - const/4 v4, 0x2 │ + const/4 v5, 0x2 │ │ - new-array v4, v4, [Ljava/lang/Object; │ + new-array v5, v5, [Ljava/lang/Object; │ │ invoke-interface {v2}, Lcom/koushikdutta/async/http/NameValuePair;->getName()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v4, v6 │ + aput-object v6, v5, v7 │ │ invoke-interface {v2}, Lcom/koushikdutta/async/http/NameValuePair;->getValue()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v4, v7 │ + aput-object v6, v5, v8 │ │ - invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v3, v4, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 36 │ + .line 37 │ .end local v1 # "i$":Ljava/util/Iterator; │ .end local v2 # "pair":Lcom/koushikdutta/async/http/NameValuePair; │ :cond_0 │ iget-object v3, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v4, "Content-Disposition" │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v3, v4, v5}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 37 │ + .line 38 │ iget-object v3, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v4, "Content-Disposition" │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-static {v3}, Lcom/koushikdutta/async/http/Multimap;->parseSemicolonDelimited(Ljava/lang/String;)Lcom/koushikdutta/async/http/Multimap; │ │ move-result-object v3 │ │ iput-object v3, p0, Lcom/koushikdutta/async/http/body/Part;->mContentDisposition:Lcom/koushikdutta/async/http/Multimap; │ │ - .line 38 │ + .line 39 │ return-void │ .end method │ │ │ # virtual methods │ .method public getContentType()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 45 │ + .line 46 │ iget-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Content-Type" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ @@ -236,31 +240,31 @@ │ return-object v0 │ .end method │ │ .method public getFilename()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 53 │ + .line 54 │ iget-object v1, p0, Lcom/koushikdutta/async/http/body/Part;->mContentDisposition:Lcom/koushikdutta/async/http/Multimap; │ │ const-string v2, "filename" │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/http/Multimap;->getString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 54 │ + .line 55 │ .local v0, "file":Ljava/lang/String; │ if-nez v0, :cond_0 │ │ - .line 55 │ + .line 56 │ const/4 v1, 0x0 │ │ - .line 56 │ + .line 57 │ :goto_0 │ return-object v1 │ │ :cond_0 │ new-instance v1, Ljava/io/File; │ │ invoke-direct {v1, v0}, Ljava/io/File;->(Ljava/lang/String;)V │ @@ -272,15 +276,15 @@ │ goto :goto_0 │ .end method │ │ .method public getName()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 23 │ + .line 24 │ iget-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mContentDisposition:Lcom/koushikdutta/async/http/Multimap; │ │ const-string v1, "name" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Multimap;->getString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ @@ -288,25 +292,25 @@ │ return-object v0 │ .end method │ │ .method public getRawHeaders()Lcom/koushikdutta/async/http/Headers; │ .locals 1 │ │ .prologue │ - .line 41 │ + .line 42 │ iget-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ return-object v0 │ .end method │ │ .method public isFile()Z │ .locals 2 │ │ .prologue │ - .line 60 │ + .line 61 │ iget-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mContentDisposition:Lcom/koushikdutta/async/http/Multimap; │ │ const-string v1, "filename" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Multimap;->containsKey(Ljava/lang/Object;)Z │ │ move-result v0 │ @@ -314,50 +318,50 @@ │ return v0 │ .end method │ │ .method public length()J │ .locals 2 │ │ .prologue │ - .line 64 │ + .line 65 │ iget-wide v0, p0, Lcom/koushikdutta/async/http/body/Part;->length:J │ │ return-wide v0 │ .end method │ │ .method public setContentType(Ljava/lang/String;)V │ .locals 2 │ .param p1, "contentType" # Ljava/lang/String; │ │ .prologue │ - .line 49 │ + .line 50 │ iget-object v0, p0, Lcom/koushikdutta/async/http/body/Part;->mHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Content-Type" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 50 │ + .line 51 │ return-void │ .end method │ │ .method public write(Lcom/koushikdutta/async/DataSink;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 1 │ .param p1, "sink" # Lcom/koushikdutta/async/DataSink; │ .param p2, "callback" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 68 │ + .line 69 │ sget-boolean v0, Lcom/koushikdutta/async/http/body/Part;->$assertionsDisabled:Z │ │ if-nez v0, :cond_0 │ │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ │ - .line 69 │ + .line 70 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/body/StringBody$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/StringBody;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/StringBody; │ │ .prologue │ .line 24 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/StringBody$1;->this$0:Lcom/koushikdutta/async/http/body/StringBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/StringBody$1;->val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/body/UrlEncodedFormBody$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$data:Lcom/koushikdutta/async/ByteBufferList; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/UrlEncodedFormBody;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/UrlEncodedFormBody; │ │ .prologue │ .line 68 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody$1;->this$0:Lcom/koushikdutta/async/http/body/UrlEncodedFormBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody$1;->val$data:Lcom/koushikdutta/async/ByteBufferList; ├── smali/com/koushikdutta/async/http/body/UrlEncodedFormBody$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$data:Lcom/koushikdutta/async/ByteBufferList; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/body/UrlEncodedFormBody;Lcom/koushikdutta/async/callback/CompletedCallback;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/body/UrlEncodedFormBody; │ │ .prologue │ .line 74 │ iput-object p1, p0, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody$2;->this$0:Lcom/koushikdutta/async/http/body/UrlEncodedFormBody; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody$2;->val$completed:Lcom/koushikdutta/async/callback/CompletedCallback; ├── smali/com/koushikdutta/async/http/cache/RawHeaders.smali │ @@ -1030,14 +1030,15 @@ │ │ move-result-object v3 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/cache/RawHeaders;->namesAndValues:Ljava/util/List; │ │ add-int/lit8 v4, v0, 0x1 │ │ + .line 254 │ invoke-interface {v2, v4}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/String; │ │ invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; ├── smali/com/koushikdutta/async/http/cache/RequestHeaders$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/cache/RequestHeaders; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/cache/RequestHeaders;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/RequestHeaders; │ │ .prologue │ .line 71 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/RequestHeaders$1;->this$0:Lcom/koushikdutta/async/http/cache/RequestHeaders; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$1.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$socket:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ .prologue │ - .line 168 │ + .line 174 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->val$socket:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -44,26 +45,26 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 171 │ + .line 177 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->connectCallback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ const/4 v1, 0x0 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->val$socket:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ invoke-interface {v0, v1, v2}, Lcom/koushikdutta/async/callback/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/AsyncSocket;)V │ │ - .line 172 │ + .line 178 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->val$socket:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->sendCachedDataOnNetworkThread()V │ │ - .line 173 │ + .line 179 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher.smali │ @@ -21,296 +21,296 @@ │ │ │ # direct methods │ .method private constructor ()V │ .locals 0 │ │ .prologue │ - .line 329 │ + .line 335 │ invoke-direct {p0}, Lcom/koushikdutta/async/FilteredDataEmitter;->()V │ │ return-void │ .end method │ │ .method synthetic constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1; │ │ .prologue │ - .line 329 │ + .line 335 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public abort()V │ .locals 1 │ │ .prologue │ - .line 394 │ + .line 400 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ if-eqz v0, :cond_0 │ │ - .line 395 │ + .line 401 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->abort()V │ │ - .line 396 │ + .line 402 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ - .line 398 │ + .line 404 │ :cond_0 │ return-void │ .end method │ │ .method public close()V │ .locals 0 │ │ .prologue │ - .line 389 │ + .line 395 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->abort()V │ │ - .line 390 │ + .line 396 │ invoke-super {p0}, Lcom/koushikdutta/async/FilteredDataEmitter;->close()V │ │ - .line 391 │ + .line 397 │ return-void │ .end method │ │ .method public commit()V │ .locals 1 │ │ .prologue │ - .line 401 │ + .line 407 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ if-eqz v0, :cond_0 │ │ - .line 402 │ + .line 408 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->commit()V │ │ - .line 403 │ + .line 409 │ const/4 v0, 0x0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ - .line 405 │ + .line 411 │ :cond_0 │ return-void │ .end method │ │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 6 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 342 │ + .line 348 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->cached:Lcom/koushikdutta/async/ByteBufferList; │ │ if-eqz v4, :cond_2 │ │ - .line 343 │ + .line 349 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->cached:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-super {p0, p1, v4}, Lcom/koushikdutta/async/FilteredDataEmitter;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 345 │ + .line 351 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->cached:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v4 │ │ if-lez v4, :cond_1 │ │ - .line 385 │ + .line 391 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 347 │ + .line 353 │ :cond_1 │ const/4 v4, 0x0 │ │ iput-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->cached:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 351 │ + .line 357 │ :cond_2 │ new-instance v1, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ - .line 353 │ + .line 359 │ .local v1, "copy":Lcom/koushikdutta/async/ByteBufferList; │ :try_start_0 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ if-eqz v4, :cond_4 │ │ - .line 354 │ + .line 360 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ const/4 v5, 0x1 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->newOutputStream(I)Ljava/io/FileOutputStream; │ │ move-result-object v3 │ │ - .line 355 │ + .line 361 │ .local v3, "outputStream":Ljava/io/OutputStream; │ if-eqz v3, :cond_3 │ │ - .line 356 │ + .line 362 │ :goto_1 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->isEmpty()Z │ │ move-result v4 │ │ if-nez v4, :cond_4 │ │ - .line 357 │ + .line 363 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remove()Ljava/nio/ByteBuffer; │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_1 │ │ move-result-object v0 │ │ - .line 359 │ + .line 365 │ .local v0, "b":Ljava/nio/ByteBuffer; │ :try_start_1 │ invoke-static {v3, v0}, Lcom/koushikdutta/async/ByteBufferList;->writeOutputStream(Ljava/io/OutputStream;Ljava/nio/ByteBuffer;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 362 │ + .line 368 │ :try_start_2 │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ :try_end_2 │ .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 │ .catchall {:try_start_2 .. :try_end_2} :catchall_1 │ │ goto :goto_1 │ │ - .line 371 │ + .line 377 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ .end local v3 # "outputStream":Ljava/io/OutputStream; │ :catch_0 │ move-exception v2 │ │ - .line 372 │ + .line 378 │ .local v2, "e":Ljava/lang/Exception; │ :try_start_3 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->abort()V │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_1 │ │ - .line 375 │ + .line 381 │ invoke-virtual {p2, v1}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 376 │ + .line 382 │ invoke-virtual {v1, p2}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 379 │ + .line 385 │ .end local v2 # "e":Ljava/lang/Exception; │ :goto_2 │ invoke-super {p0, p1, p2}, Lcom/koushikdutta/async/FilteredDataEmitter;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 381 │ + .line 387 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ if-eqz v4, :cond_0 │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v4 │ │ if-lez v4, :cond_0 │ │ - .line 382 │ + .line 388 │ new-instance v4, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v4}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->cached:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 383 │ + .line 389 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->cached:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {p2, v4}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ goto :goto_0 │ │ - .line 362 │ + .line 368 │ .restart local v0 # "b":Ljava/nio/ByteBuffer; │ .restart local v3 # "outputStream":Ljava/io/OutputStream; │ :catchall_0 │ move-exception v4 │ │ :try_start_4 │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ throw v4 │ :try_end_4 │ .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_4} :catch_0 │ .catchall {:try_start_4 .. :try_end_4} :catchall_1 │ │ - .line 375 │ + .line 381 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ .end local v3 # "outputStream":Ljava/io/OutputStream; │ :catchall_1 │ move-exception v4 │ │ invoke-virtual {p2, v1}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 376 │ + .line 382 │ invoke-virtual {v1, p2}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ throw v4 │ │ - .line 367 │ + .line 373 │ .restart local v3 # "outputStream":Ljava/io/OutputStream; │ :cond_3 │ :try_start_5 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->abort()V │ :try_end_5 │ .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_0 │ .catchall {:try_start_5 .. :try_end_5} :catchall_1 │ │ - .line 375 │ + .line 381 │ .end local v3 # "outputStream":Ljava/io/OutputStream; │ :cond_4 │ invoke-virtual {p2, v1}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 376 │ + .line 382 │ invoke-virtual {v1, p2}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;)V │ │ goto :goto_2 │ .end method │ │ .method protected report(Ljava/lang/Exception;)V │ .locals 0 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 335 │ + .line 341 │ invoke-super {p0, p1}, Lcom/koushikdutta/async/FilteredDataEmitter;->report(Ljava/lang/Exception;)V │ │ - .line 336 │ + .line 342 │ if-eqz p1, :cond_0 │ │ - .line 337 │ + .line 343 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->abort()V │ │ - .line 338 │ + .line 344 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData.smali │ @@ -25,12 +25,12 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue │ - .line 322 │ + .line 328 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$1.smali │ @@ -20,31 +20,32 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ .prologue │ - .line 419 │ + .line 425 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$1;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 1 │ │ .prologue │ - .line 422 │ + .line 428 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$1;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->sendCachedDataOnNetworkThread()V │ │ - .line 423 │ + .line 429 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$2.smali │ @@ -20,31 +20,32 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ .prologue │ - .line 480 │ + .line 486 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$2;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 1 │ │ .prologue │ - .line 483 │ + .line 489 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$2;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->close()V │ │ - .line 484 │ + .line 490 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter.smali │ @@ -33,15 +33,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 408 │ + .line 414 │ const-class v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -61,95 +61,95 @@ │ │ .method public constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ .locals 2 │ .param p1, "cacheResponse" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ .param p2, "contentLength" # J │ │ .prologue │ - .line 414 │ + .line 420 │ invoke-direct {p0}, Lcom/koushikdutta/async/FilteredDataEmitter;->()V │ │ - .line 410 │ + .line 416 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 412 │ + .line 418 │ new-instance v0, Lcom/koushikdutta/async/util/Allocator; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/util/Allocator;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allocator:Lcom/koushikdutta/async/util/Allocator; │ │ - .line 419 │ + .line 425 │ new-instance v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$1;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->sendCachedDataRunnable:Ljava/lang/Runnable; │ │ - .line 415 │ + .line 421 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->cacheResponse:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ │ - .line 416 │ + .line 422 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allocator:Lcom/koushikdutta/async/util/Allocator; │ │ long-to-int v1, p2 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/util/Allocator;->setCurrentAlloc(I)V │ │ - .line 417 │ + .line 423 │ return-void │ .end method │ │ │ # virtual methods │ .method public close()V │ .locals 3 │ │ .prologue │ - .line 479 │ + .line 485 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/AsyncServer;->getAffinity()Ljava/lang/Thread; │ │ move-result-object v0 │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v1 │ │ if-eq v0, v1, :cond_0 │ │ - .line 480 │ + .line 486 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$2; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter$2;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;)V │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 492 │ + .line 498 │ :goto_0 │ return-void │ │ - .line 489 │ + .line 495 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 490 │ + .line 496 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/io/Closeable; │ │ const/4 v1, 0x0 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->cacheResponse:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ @@ -158,45 +158,45 @@ │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 491 │ + .line 497 │ invoke-super {p0}, Lcom/koushikdutta/async/FilteredDataEmitter;->close()V │ │ goto :goto_0 │ .end method │ │ .method public isPaused()Z │ .locals 1 │ │ .prologue │ - .line 474 │ + .line 480 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->paused:Z │ │ return v0 │ .end method │ │ .method protected report(Ljava/lang/Exception;)V │ .locals 3 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 498 │ + .line 504 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allowEnd:Z │ │ if-nez v0, :cond_0 │ │ - .line 502 │ + .line 508 │ :goto_0 │ return-void │ │ - .line 500 │ + .line 506 │ :cond_0 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/io/Closeable; │ │ const/4 v1, 0x0 │ │ @@ -206,97 +206,97 @@ │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 501 │ + .line 507 │ invoke-super {p0, p1}, Lcom/koushikdutta/async/FilteredDataEmitter;->report(Ljava/lang/Exception;)V │ │ goto :goto_0 │ .end method │ │ .method public resume()V │ .locals 1 │ │ .prologue │ - .line 468 │ + .line 474 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->paused:Z │ │ - .line 469 │ + .line 475 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->sendCachedData()V │ │ - .line 470 │ + .line 476 │ return-void │ .end method │ │ .method sendCachedData()V │ .locals 2 │ │ .prologue │ - .line 463 │ + .line 469 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->sendCachedDataRunnable:Ljava/lang/Runnable; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 464 │ + .line 470 │ return-void │ .end method │ │ .method sendCachedDataOnNetworkThread()V │ .locals 9 │ │ .prologue │ const/4 v8, 0x1 │ │ - .line 427 │ + .line 433 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v4 │ │ if-lez v4, :cond_1 │ │ - .line 428 │ + .line 434 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-super {p0, p0, v4}, Lcom/koushikdutta/async/FilteredDataEmitter;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 429 │ + .line 435 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v4 │ │ if-lez v4, :cond_1 │ │ - .line 460 │ + .line 466 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 435 │ + .line 441 │ :cond_1 │ :try_start_0 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allocator:Lcom/koushikdutta/async/util/Allocator; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/util/Allocator;->allocate()Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ - .line 436 │ + .line 442 │ .local v0, "buffer":Ljava/nio/ByteBuffer; │ sget-boolean v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->$assertionsDisabled:Z │ │ if-nez v4, :cond_2 │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I │ │ @@ -308,40 +308,40 @@ │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 449 │ + .line 455 │ .end local v0 # "buffer":Ljava/nio/ByteBuffer; │ :catch_0 │ move-exception v2 │ │ - .line 450 │ + .line 456 │ .local v2, "e":Ljava/io/IOException; │ iput-boolean v8, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allowEnd:Z │ │ - .line 451 │ + .line 457 │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->report(Ljava/lang/Exception;)V │ │ goto :goto_0 │ │ - .line 437 │ + .line 443 │ .end local v2 # "e":Ljava/io/IOException; │ .restart local v0 # "buffer":Ljava/nio/ByteBuffer; │ :cond_2 │ :try_start_1 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->cacheResponse:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->getBody()Ljava/io/FileInputStream; │ │ move-result-object v1 │ │ - .line 438 │ + .line 444 │ .local v1, "din":Ljava/io/FileInputStream; │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v4 │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->arrayOffset()I │ │ @@ -351,68 +351,68 @@ │ │ move-result v6 │ │ invoke-virtual {v1, v4, v5, v6}, Ljava/io/FileInputStream;->read([BII)I │ │ move-result v3 │ │ - .line 439 │ + .line 445 │ .local v3, "read":I │ const/4 v4, -0x1 │ │ if-ne v3, v4, :cond_3 │ │ - .line 440 │ + .line 446 │ invoke-static {v0}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 441 │ + .line 447 │ const/4 v4, 0x1 │ │ iput-boolean v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allowEnd:Z │ │ - .line 442 │ + .line 448 │ const/4 v4, 0x0 │ │ invoke-virtual {p0, v4}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->report(Ljava/lang/Exception;)V │ │ goto :goto_0 │ │ - .line 445 │ + .line 451 │ :cond_3 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->allocator:Lcom/koushikdutta/async/util/Allocator; │ │ int-to-long v6, v3 │ │ invoke-virtual {v4, v6, v7}, Lcom/koushikdutta/async/util/Allocator;->track(J)V │ │ - .line 446 │ + .line 452 │ invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 447 │ + .line 453 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v4, v0}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0 │ │ - .line 454 │ + .line 460 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-super {p0, p0, v4}, Lcom/koushikdutta/async/FilteredDataEmitter;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 455 │ + .line 461 │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v4 │ │ if-gtz v4, :cond_0 │ │ - .line 459 │ + .line 465 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v4 │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->sendCachedDataRunnable:Ljava/lang/Runnable; │ │ const-wide/16 v6, 0xa ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSSLSocket.smali │ @@ -24,38 +24,38 @@ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ .locals 1 │ .param p2, "cacheResponse" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ .param p3, "contentLength" # J │ │ .prologue │ - .line 717 │ + .line 723 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSSLSocket;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ - .line 718 │ + .line 724 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ │ - .line 719 │ + .line 725 │ return-void │ .end method │ │ │ # virtual methods │ .method public getPeerCertificates()[Ljava/security/cert/X509Certificate; │ .locals 1 │ │ .prologue │ - .line 728 │ + .line 734 │ const/4 v0, 0x0 │ │ return-object v0 │ .end method │ │ .method public getSSLEngine()Ljavax/net/ssl/SSLEngine; │ .locals 1 │ │ .prologue │ - .line 723 │ + .line 729 │ const/4 v0, 0x0 │ │ return-object v0 │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket.smali │ @@ -30,159 +30,159 @@ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ .locals 1 │ .param p2, "cacheResponse" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ .param p3, "contentLength" # J │ │ .prologue │ - .line 736 │ + .line 742 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ - .line 737 │ + .line 743 │ invoke-direct {p0, p2, p3, p4}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ │ - .line 738 │ + .line 744 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->allowEnd:Z │ │ - .line 739 │ + .line 745 │ return-void │ .end method │ │ │ # virtual methods │ .method public close()V │ .locals 1 │ │ .prologue │ - .line 777 │ + .line 783 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->open:Z │ │ - .line 778 │ + .line 784 │ return-void │ .end method │ │ .method public end()V │ .locals 0 │ │ .prologue │ - .line 743 │ + .line 749 │ return-void │ .end method │ │ .method public getClosedCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ .locals 1 │ │ .prologue │ - .line 782 │ + .line 788 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ return-object v0 │ .end method │ │ .method public getServer()Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ │ .prologue │ - .line 792 │ + .line 798 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ # getter for: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->server:Lcom/koushikdutta/async/AsyncServer; │ invoke-static {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->access$300(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ .locals 1 │ │ .prologue │ - .line 763 │ + .line 769 │ const/4 v0, 0x0 │ │ return-object v0 │ .end method │ │ .method public isOpen()Z │ .locals 1 │ │ .prologue │ - .line 772 │ + .line 778 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->open:Z │ │ return v0 │ .end method │ │ .method protected report(Ljava/lang/Exception;)V │ .locals 1 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 747 │ + .line 753 │ invoke-super {p0, p1}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->report(Ljava/lang/Exception;)V │ │ - .line 748 │ + .line 754 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->closed:Z │ │ if-eqz v0, :cond_1 │ │ - .line 753 │ + .line 759 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 750 │ + .line 756 │ :cond_1 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->closed:Z │ │ - .line 751 │ + .line 757 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ if-eqz v0, :cond_0 │ │ - .line 752 │ + .line 758 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ invoke-interface {v0, p1}, Lcom/koushikdutta/async/callback/CompletedCallback;->onCompleted(Ljava/lang/Exception;)V │ │ goto :goto_0 │ .end method │ │ .method public setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 787 │ + .line 793 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ - .line 788 │ + .line 794 │ return-void │ .end method │ │ .method public setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ .locals 0 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/WritableCallback; │ │ .prologue │ - .line 768 │ + .line 774 │ return-void │ .end method │ │ .method public write(Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 0 │ .param p1, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 758 │ + .line 764 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 759 │ + .line 765 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse.smali │ @@ -23,49 +23,49 @@ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;Ljava/io/FileInputStream;)V │ .locals 0 │ .param p1, "entry" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ .param p2, "snapshot" # Ljava/io/FileInputStream; │ │ .prologue │ - .line 702 │ + .line 708 │ invoke-direct {p0}, Ljava/net/CacheResponse;->()V │ │ - .line 703 │ + .line 709 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->entry:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ │ - .line 704 │ + .line 710 │ iput-object p2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->snapshot:Ljava/io/FileInputStream; │ │ - .line 705 │ + .line 711 │ return-void │ .end method │ │ │ # virtual methods │ .method public getBody()Ljava/io/FileInputStream; │ .locals 1 │ │ .prologue │ - .line 712 │ + .line 718 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->snapshot:Ljava/io/FileInputStream; │ │ return-object v0 │ .end method │ │ .method public bridge synthetic getBody()Ljava/io/InputStream; │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 698 │ + .line 704 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->getBody()Ljava/io/FileInputStream; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -81,15 +81,15 @@ │ "<", │ "Ljava/lang/String;", │ ">;>;" │ } │ .end annotation │ │ .prologue │ - .line 708 │ + .line 714 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->entry:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ │ # getter for: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ invoke-static {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->access$200(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;)Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v0 ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry.smali │ @@ -37,47 +37,47 @@ │ .param p2, "varyHeaders" # Lcom/koushikdutta/async/http/cache/RawHeaders; │ .param p3, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .param p4, "responseHeaders" # Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 597 │ + .line 603 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 598 │ + .line 604 │ invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->uri:Ljava/lang/String; │ │ - .line 599 │ + .line 605 │ iput-object p2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ - .line 600 │ + .line 606 │ invoke-virtual {p3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getMethod()Ljava/lang/String; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->requestMethod:Ljava/lang/String; │ │ - .line 601 │ + .line 607 │ iput-object p4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ - .line 614 │ + .line 620 │ iput-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->cipherSuite:Ljava/lang/String; │ │ - .line 615 │ + .line 621 │ iput-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->peerCertificates:[Ljava/security/cert/Certificate; │ │ - .line 616 │ + .line 622 │ iput-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->localCertificates:[Ljava/security/cert/Certificate; │ │ - .line 618 │ + .line 624 │ return-void │ .end method │ │ .method public constructor (Ljava/io/InputStream;)V │ .locals 10 │ .param p1, "in" # Ljava/io/InputStream; │ .annotation system Ldalvik/annotation/Throws; │ @@ -89,156 +89,156 @@ │ .prologue │ const/4 v9, 0x2 │ │ const/4 v8, 0x1 │ │ const/4 v7, 0x0 │ │ - .line 560 │ + .line 566 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 561 │ + .line 567 │ const/4 v1, 0x0 │ │ - .line 563 │ + .line 569 │ .local v1, "reader":Lcom/koushikdutta/async/http/cache/StrictLineReader; │ :try_start_0 │ new-instance v2, Lcom/koushikdutta/async/http/cache/StrictLineReader; │ │ sget-object v5, Lcom/koushikdutta/async/util/Charsets;->US_ASCII:Ljava/nio/charset/Charset; │ │ invoke-direct {v2, p1, v5}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 564 │ + .line 570 │ .end local v1 # "reader":Lcom/koushikdutta/async/http/cache/StrictLineReader; │ .local v2, "reader":Lcom/koushikdutta/async/http/cache/StrictLineReader; │ :try_start_1 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readLine()Ljava/lang/String; │ │ move-result-object v5 │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->uri:Ljava/lang/String; │ │ - .line 565 │ + .line 571 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readLine()Ljava/lang/String; │ │ move-result-object v5 │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->requestMethod:Ljava/lang/String; │ │ - .line 566 │ + .line 572 │ new-instance v5, Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-direct {v5}, Lcom/koushikdutta/async/http/cache/RawHeaders;->()V │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ - .line 567 │ + .line 573 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readInt()I │ │ move-result v4 │ │ - .line 568 │ + .line 574 │ .local v4, "varyRequestHeaderLineCount":I │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_0 │ if-ge v0, v4, :cond_0 │ │ - .line 569 │ + .line 575 │ iget-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readLine()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/http/cache/RawHeaders;->addLine(Ljava/lang/String;)V │ │ - .line 568 │ + .line 574 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 572 │ + .line 578 │ :cond_0 │ new-instance v5, Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-direct {v5}, Lcom/koushikdutta/async/http/cache/RawHeaders;->()V │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ - .line 573 │ + .line 579 │ iget-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readLine()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/http/cache/RawHeaders;->setStatusLine(Ljava/lang/String;)V │ │ - .line 574 │ + .line 580 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readInt()I │ │ move-result v3 │ │ - .line 575 │ + .line 581 │ .local v3, "responseHeaderLineCount":I │ const/4 v0, 0x0 │ │ :goto_1 │ if-ge v0, v3, :cond_1 │ │ - .line 576 │ + .line 582 │ iget-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readLine()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/http/cache/RawHeaders;->addLine(Ljava/lang/String;)V │ │ - .line 575 │ + .line 581 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 588 │ + .line 594 │ :cond_1 │ const/4 v5, 0x0 │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->cipherSuite:Ljava/lang/String; │ │ - .line 589 │ + .line 595 │ const/4 v5, 0x0 │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->peerCertificates:[Ljava/security/cert/Certificate; │ │ - .line 590 │ + .line 596 │ const/4 v5, 0x0 │ │ iput-object v5, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->localCertificates:[Ljava/security/cert/Certificate; │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_1 │ │ - .line 593 │ + .line 599 │ new-array v5, v9, [Ljava/io/Closeable; │ │ aput-object v2, v5, v7 │ │ aput-object p1, v5, v8 │ │ invoke-static {v5}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 595 │ + .line 601 │ return-void │ │ - .line 593 │ + .line 599 │ .end local v0 # "i":I │ .end local v2 # "reader":Lcom/koushikdutta/async/http/cache/StrictLineReader; │ .end local v3 # "responseHeaderLineCount":I │ .end local v4 # "varyRequestHeaderLineCount":I │ .restart local v1 # "reader":Lcom/koushikdutta/async/http/cache/StrictLineReader; │ :catchall_0 │ move-exception v5 │ @@ -267,38 +267,38 @@ │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;)Z │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ │ .prologue │ - .line 505 │ + .line 511 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->isHttps()Z │ │ move-result v0 │ │ return v0 │ .end method │ │ .method static synthetic access$200(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;)Lcom/koushikdutta/async/http/cache/RawHeaders; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ │ .prologue │ - .line 505 │ + .line 511 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ return-object v0 │ .end method │ │ .method private isHttps()Z │ .locals 2 │ │ .prologue │ - .line 649 │ + .line 655 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->uri:Ljava/lang/String; │ │ const-string v1, "https://" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z │ │ move-result v0 │ @@ -312,97 +312,97 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 653 │ + .line 659 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readInt()I │ │ move-result v4 │ │ - .line 654 │ + .line 660 │ .local v4, "length":I │ const/4 v7, -0x1 │ │ if-ne v4, v7, :cond_1 │ │ - .line 655 │ + .line 661 │ const/4 v6, 0x0 │ │ - .line 666 │ + .line 672 │ :cond_0 │ return-object v6 │ │ - .line 658 │ + .line 664 │ :cond_1 │ :try_start_0 │ const-string v7, "X.509" │ │ invoke-static {v7}, Ljava/security/cert/CertificateFactory;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory; │ │ move-result-object v1 │ │ - .line 659 │ + .line 665 │ .local v1, "certificateFactory":Ljava/security/cert/CertificateFactory; │ new-array v6, v4, [Ljava/security/cert/Certificate; │ │ - .line 660 │ + .line 666 │ .local v6, "result":[Ljava/security/cert/Certificate; │ const/4 v3, 0x0 │ │ .local v3, "i":I │ :goto_0 │ array-length v7, v6 │ │ if-ge v3, v7, :cond_0 │ │ - .line 661 │ + .line 667 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/cache/StrictLineReader;->readLine()Ljava/lang/String; │ │ move-result-object v5 │ │ - .line 662 │ + .line 668 │ .local v5, "line":Ljava/lang/String; │ const/4 v7, 0x0 │ │ invoke-static {v5, v7}, Landroid/util/Base64;->decode(Ljava/lang/String;I)[B │ │ move-result-object v0 │ │ - .line 663 │ + .line 669 │ .local v0, "bytes":[B │ new-instance v7, Ljava/io/ByteArrayInputStream; │ │ invoke-direct {v7, v0}, Ljava/io/ByteArrayInputStream;->([B)V │ │ invoke-virtual {v1, v7}, Ljava/security/cert/CertificateFactory;->generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate; │ │ move-result-object v7 │ │ aput-object v7, v6, v3 │ :try_end_0 │ .catch Ljava/security/cert/CertificateException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 660 │ + .line 666 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ - .line 667 │ + .line 673 │ .end local v0 # "bytes":[B │ .end local v1 # "certificateFactory":Ljava/security/cert/CertificateFactory; │ .end local v3 # "i":I │ .end local v5 # "line":Ljava/lang/String; │ .end local v6 # "result":[Ljava/security/cert/Certificate; │ :catch_0 │ move-exception v2 │ │ - .line 668 │ + .line 674 │ .local v2, "e":Ljava/security/cert/CertificateException; │ new-instance v7, Ljava/io/IOException; │ │ invoke-virtual {v2}, Ljava/security/cert/CertificateException;->getMessage()Ljava/lang/String; │ │ move-result-object v8 │ │ @@ -418,27 +418,27 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 673 │ + .line 679 │ if-nez p2, :cond_1 │ │ - .line 674 │ + .line 680 │ const-string v7, "-1\n" │ │ invoke-virtual {p1, v7}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 687 │ + .line 693 │ :cond_0 │ return-void │ │ - .line 678 │ + .line 684 │ :cond_1 │ :try_start_0 │ new-instance v7, Ljava/lang/StringBuilder; │ │ invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ │ array-length v8, p2 │ @@ -459,44 +459,44 @@ │ │ invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {p1, v7}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 679 │ + .line 685 │ move-object v0, p2 │ │ .local v0, "arr$":[Ljava/security/cert/Certificate; │ array-length v5, v0 │ │ .local v5, "len$":I │ const/4 v4, 0x0 │ │ .local v4, "i$":I │ :goto_0 │ if-ge v4, v5, :cond_0 │ │ aget-object v2, v0, v4 │ │ - .line 680 │ + .line 686 │ .local v2, "certificate":Ljava/security/cert/Certificate; │ invoke-virtual {v2}, Ljava/security/cert/Certificate;->getEncoded()[B │ │ move-result-object v1 │ │ - .line 681 │ + .line 687 │ .local v1, "bytes":[B │ const/4 v7, 0x0 │ │ invoke-static {v1, v7}, Landroid/util/Base64;->encodeToString([BI)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 682 │ + .line 688 │ .local v6, "line":Ljava/lang/String; │ new-instance v7, Ljava/lang/StringBuilder; │ │ invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -512,30 +512,30 @@ │ │ move-result-object v7 │ │ invoke-virtual {p1, v7}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ :try_end_0 │ .catch Ljava/security/cert/CertificateEncodingException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 679 │ + .line 685 │ add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ - .line 684 │ + .line 690 │ .end local v0 # "arr$":[Ljava/security/cert/Certificate; │ .end local v1 # "bytes":[B │ .end local v2 # "certificate":Ljava/security/cert/Certificate; │ .end local v4 # "i$":I │ .end local v5 # "len$":I │ .end local v6 # "line":Ljava/lang/String; │ :catch_0 │ move-exception v3 │ │ - .line 685 │ + .line 691 │ .local v3, "e":Ljava/security/cert/CertificateEncodingException; │ new-instance v7, Ljava/io/IOException; │ │ invoke-virtual {v3}, Ljava/security/cert/CertificateEncodingException;->getMessage()Ljava/lang/String; │ │ move-result-object v8 │ │ @@ -562,15 +562,15 @@ │ "<", │ "Ljava/lang/String;", │ ">;>;)Z" │ } │ .end annotation │ │ .prologue │ - .line 691 │ + .line 697 │ .local p3, "requestHeaders":Ljava/util/Map;, "Ljava/util/Map;>;" │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->uri:Ljava/lang/String; │ │ invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ @@ -578,28 +578,30 @@ │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->requestMethod:Ljava/lang/String; │ │ + .line 698 │ invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ new-instance v0, Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-direct {v0, p1, v1}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->(Landroid/net/Uri;Lcom/koushikdutta/async/http/cache/RawHeaders;)V │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ + .line 700 │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/cache/RawHeaders;->toMultimap()Ljava/util/Map; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1, p3}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->varyMatches(Ljava/util/Map;Ljava/util/Map;)Z │ │ move-result v0 │ @@ -625,34 +627,34 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/16 v5, 0xa │ │ - .line 621 │ + .line 627 │ const/4 v3, 0x0 │ │ invoke-virtual {p1, v3}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->newOutputStream(I)Ljava/io/FileOutputStream; │ │ move-result-object v1 │ │ - .line 622 │ + .line 628 │ .local v1, "out":Ljava/io/OutputStream; │ new-instance v2, Ljava/io/BufferedWriter; │ │ new-instance v3, Ljava/io/OutputStreamWriter; │ │ sget-object v4, Lcom/koushikdutta/async/util/Charsets;->UTF_8:Ljava/nio/charset/Charset; │ │ invoke-direct {v3, v1, v4}, Ljava/io/OutputStreamWriter;->(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V │ │ invoke-direct {v2, v3}, Ljava/io/BufferedWriter;->(Ljava/io/Writer;)V │ │ - .line 624 │ + .line 630 │ .local v2, "writer":Ljava/io/Writer; │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->uri:Ljava/lang/String; │ │ @@ -666,15 +668,15 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 625 │ + .line 631 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->requestMethod:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -687,15 +689,15 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 626 │ + .line 632 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/http/cache/RawHeaders;->length()I │ @@ -716,28 +718,28 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 627 │ + .line 633 │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_0 │ iget-object v3, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/cache/RawHeaders;->length()I │ │ move-result v3 │ │ if-ge v0, v3, :cond_0 │ │ - .line 628 │ + .line 634 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v4, v0}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getFieldName(I)Ljava/lang/String; │ @@ -752,14 +754,15 @@ │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->varyHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ + .line 635 │ invoke-virtual {v4, v0}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getValue(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ @@ -768,22 +771,23 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 634 │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 627 │ + .line 633 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ - .line 632 │ + .line 638 │ :cond_0 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ @@ -801,15 +805,15 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 633 │ + .line 639 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/http/cache/RawHeaders;->length()I │ @@ -830,27 +834,27 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 634 │ + .line 640 │ const/4 v0, 0x0 │ │ :goto_1 │ iget-object v3, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/cache/RawHeaders;->length()I │ │ move-result v3 │ │ if-ge v0, v3, :cond_1 │ │ - .line 635 │ + .line 641 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ invoke-virtual {v4, v0}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getFieldName(I)Ljava/lang/String; │ @@ -865,14 +869,15 @@ │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->responseHeaders:Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ + .line 642 │ invoke-virtual {v4, v0}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getValue(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ @@ -881,33 +886,34 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 641 │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 634 │ + .line 640 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 639 │ + .line 645 │ :cond_1 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->isHttps()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - .line 640 │ + .line 646 │ invoke-virtual {v2, v5}, Ljava/io/Writer;->write(I)V │ │ - .line 641 │ + .line 647 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->cipherSuite:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -920,24 +926,24 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/io/Writer;->write(Ljava/lang/String;)V │ │ - .line 642 │ + .line 648 │ iget-object v3, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->peerCertificates:[Ljava/security/cert/Certificate; │ │ invoke-direct {p0, v2, v3}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->writeCertArray(Ljava/io/Writer;[Ljava/security/cert/Certificate;)V │ │ - .line 643 │ + .line 649 │ iget-object v3, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->localCertificates:[Ljava/security/cert/Certificate; │ │ invoke-direct {p0, v2, v3}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->writeCertArray(Ljava/io/Writer;[Ljava/security/cert/Certificate;)V │ │ - .line 645 │ + .line 651 │ :cond_2 │ invoke-virtual {v2}, Ljava/io/Writer;->close()V │ │ - .line 646 │ + .line 652 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseHeaders$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/cache/ResponseHeaders;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ .prologue │ .line 120 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseHeaders$1;->this$0:Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor.smali │ @@ -25,128 +25,129 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Ljava/lang/String;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ .param p2, "key" # Ljava/lang/String; │ │ .prologue │ const/4 v1, 0x2 │ │ - .line 801 │ + .line 807 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 802 │ + .line 808 │ iput-object p2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->key:Ljava/lang/String; │ │ - .line 803 │ + .line 809 │ # getter for: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ invoke-static {p1}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->access$400(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)Lcom/koushikdutta/async/util/FileCache; │ │ move-result-object v0 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/util/FileCache;->getTempFiles(I)[Ljava/io/File; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->temps:[Ljava/io/File; │ │ - .line 804 │ + .line 810 │ new-array v0, v1, [Ljava/io/FileOutputStream; │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->outs:[Ljava/io/FileOutputStream; │ │ - .line 805 │ + .line 811 │ return-void │ .end method │ │ │ # virtual methods │ .method abort()V │ .locals 1 │ │ .prologue │ - .line 823 │ + .line 829 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->outs:[Ljava/io/FileOutputStream; │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 824 │ + .line 830 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->temps:[Ljava/io/File; │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/FileCache;->removeFiles([Ljava/io/File;)V │ │ - .line 825 │ + .line 831 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->done:Z │ │ if-eqz v0, :cond_0 │ │ - .line 829 │ + .line 835 │ :goto_0 │ return-void │ │ - .line 827 │ + .line 833 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ # operator++ for: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->writeAbortCount:I │ invoke-static {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->access$608(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)I │ │ - .line 828 │ + .line 834 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->done:Z │ │ goto :goto_0 │ .end method │ │ .method commit()V │ .locals 3 │ │ .prologue │ - .line 808 │ + .line 814 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->outs:[Ljava/io/FileOutputStream; │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 809 │ + .line 815 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->done:Z │ │ if-eqz v0, :cond_0 │ │ - .line 814 │ + .line 820 │ :goto_0 │ return-void │ │ - .line 811 │ + .line 817 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ # getter for: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ invoke-static {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->access$400(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)Lcom/koushikdutta/async/util/FileCache; │ │ move-result-object v0 │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->key:Ljava/lang/String; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->temps:[Ljava/io/File; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/util/FileCache;->commitTempFiles(Ljava/lang/String;[Ljava/io/File;)V │ │ - .line 812 │ + .line 818 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->this$0:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ # operator++ for: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->writeSuccessCount:I │ invoke-static {v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->access$508(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)I │ │ - .line 813 │ + .line 819 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->done:Z │ │ goto :goto_0 │ .end method │ │ @@ -156,35 +157,35 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 817 │ + .line 823 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->outs:[Ljava/io/FileOutputStream; │ │ aget-object v0, v0, p1 │ │ if-nez v0, :cond_0 │ │ - .line 818 │ + .line 824 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->outs:[Ljava/io/FileOutputStream; │ │ new-instance v1, Ljava/io/FileOutputStream; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->temps:[Ljava/io/File; │ │ aget-object v2, v2, p1 │ │ invoke-direct {v1, v2}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V │ │ aput-object v1, v0, p1 │ │ - .line 819 │ + .line 825 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->outs:[Ljava/io/FileOutputStream; │ │ aget-object v0, v0, p1 │ │ return-object v0 │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseCacheMiddleware.smali │ @@ -55,69 +55,69 @@ │ │ │ # direct methods │ .method private constructor ()V │ .locals 1 │ │ .prologue │ - .line 68 │ + .line 69 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/SimpleMiddleware;->()V │ │ - .line 58 │ + .line 59 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->caching:Z │ │ - .line 69 │ + .line 70 │ return-void │ .end method │ │ .method static synthetic access$300(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ .prologue │ - .line 50 │ + .line 51 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->server:Lcom/koushikdutta/async/AsyncServer; │ │ return-object v0 │ .end method │ │ .method static synthetic access$400(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)Lcom/koushikdutta/async/util/FileCache; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ .prologue │ - .line 50 │ + .line 51 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ return-object v0 │ .end method │ │ .method static synthetic access$508(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)I │ .locals 2 │ .param p0, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ .prologue │ - .line 50 │ + .line 51 │ iget v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->writeSuccessCount:I │ │ add-int/lit8 v1, v0, 0x1 │ │ iput v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->writeSuccessCount:I │ │ return v0 │ .end method │ │ .method static synthetic access$608(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;)I │ .locals 2 │ .param p0, "x0" # Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ .prologue │ - .line 50 │ + .line 51 │ iget v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->writeAbortCount:I │ │ add-int/lit8 v1, v0, 0x1 │ │ iput v1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->writeAbortCount:I │ │ return v0 │ @@ -131,20 +131,20 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 72 │ - invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getMiddleware()Ljava/util/ArrayList; │ + .line 73 │ + invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getMiddleware()Ljava/util/Collection; │ │ move-result-object v3 │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ │ .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ │ @@ -154,147 +154,147 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ │ - .line 73 │ + .line 74 │ .local v1, "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ instance-of v3, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ if-eqz v3, :cond_0 │ │ - .line 74 │ + .line 75 │ new-instance v3, Ljava/io/IOException; │ │ const-string v4, "Response cache already added to http client" │ │ invoke-direct {v3, v4}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 76 │ + .line 77 │ .end local v1 # "middleware":Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware; │ :cond_1 │ new-instance v2, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ invoke-direct {v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->()V │ │ - .line 77 │ + .line 78 │ .local v2, "ret":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v3 │ │ iput-object v3, v2, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->server:Lcom/koushikdutta/async/AsyncServer; │ │ - .line 78 │ + .line 79 │ new-instance v3, Lcom/koushikdutta/async/util/FileCache; │ │ const/4 v4, 0x0 │ │ invoke-direct {v3, p1, p2, p3, v4}, Lcom/koushikdutta/async/util/FileCache;->(Ljava/io/File;JZ)V │ │ iput-object v3, v2, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ - .line 79 │ + .line 80 │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->insertMiddleware(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware;)V │ │ - .line 80 │ + .line 81 │ return-object v2 │ .end method │ │ │ # virtual methods │ .method public clear()V │ .locals 1 │ │ .prologue │ - .line 317 │ + .line 323 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ if-eqz v0, :cond_0 │ │ - .line 318 │ + .line 324 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/util/FileCache;->clear()V │ │ - .line 320 │ + .line 326 │ :cond_0 │ return-void │ .end method │ │ .method public getCacheHitCount()I │ .locals 1 │ │ .prologue │ - .line 205 │ + .line 211 │ iget v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cacheHitCount:I │ │ return v0 │ .end method │ │ .method public getCacheStoreCount()I │ .locals 1 │ │ .prologue │ - .line 213 │ + .line 219 │ iget v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cacheStoreCount:I │ │ return v0 │ .end method │ │ .method public getCaching()Z │ .locals 1 │ │ .prologue │ - .line 88 │ + .line 89 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->caching:Z │ │ return v0 │ .end method │ │ .method public getConditionalCacheHitCount()I │ .locals 1 │ │ .prologue │ - .line 201 │ + .line 207 │ iget v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->conditionalCacheHitCount:I │ │ return v0 │ .end method │ │ .method public getFileCache()Lcom/koushikdutta/async/util/FileCache; │ .locals 1 │ │ .prologue │ - .line 84 │ + .line 85 │ iget-object v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ return-object v0 │ .end method │ │ .method public getNetworkCount()I │ .locals 1 │ │ .prologue │ - .line 209 │ + .line 215 │ iget v0, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ return v0 │ .end method │ │ .method public getSocket(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;)Lcom/koushikdutta/async/future/Cancellable; │ .locals 26 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; │ │ .prologue │ - .line 99 │ + .line 105 │ new-instance v16, Lcom/koushikdutta/async/http/cache/RequestHeaders; │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v22, v0 │ @@ -325,15 +325,15 @@ │ │ move-object/from16 v1, v22 │ │ move-object/from16 v2, v23 │ │ invoke-direct {v0, v1, v2}, Lcom/koushikdutta/async/http/cache/RequestHeaders;->(Landroid/net/Uri;Lcom/koushikdutta/async/http/cache/RawHeaders;)V │ │ - .line 100 │ + .line 106 │ .local v16, "requestHeaders":Lcom/koushikdutta/async/http/cache/RequestHeaders; │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ move-object/from16 v22, v0 │ │ @@ -343,15 +343,15 @@ │ │ move-object/from16 v1, v23 │ │ move-object/from16 v2, v16 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/util/UntypedHashtable;->put(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 102 │ + .line 108 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ move-object/from16 v22, v0 │ │ if-eqz v22, :cond_0 │ @@ -366,15 +366,15 @@ │ │ invoke-virtual/range {v16 .. v16}, Lcom/koushikdutta/async/http/cache/RequestHeaders;->isNoCache()Z │ │ move-result v22 │ │ if-eqz v22, :cond_1 │ │ - .line 103 │ + .line 109 │ :cond_0 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ @@ -382,22 +382,22 @@ │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 104 │ + .line 110 │ const/16 v19, 0x0 │ │ - .line 196 │ + .line 202 │ :goto_0 │ return-object v19 │ │ - .line 107 │ + .line 113 │ :cond_1 │ const/16 v22, 0x1 │ │ move/from16 v0, v22 │ │ new-array v0, v0, [Ljava/lang/Object; │ │ @@ -417,19 +417,19 @@ │ │ aput-object v24, v22, v23 │ │ invoke-static/range {v22 .. v22}, Lcom/koushikdutta/async/util/FileCache;->toKeyString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v12 │ │ - .line 108 │ + .line 114 │ .local v12, "key":Ljava/lang/String; │ const/16 v20, 0x0 │ │ - .line 112 │ + .line 118 │ .local v20, "snapshot":[Ljava/io/FileInputStream; │ :try_start_0 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cache:Lcom/koushikdutta/async/util/FileCache; │ │ move-object/from16 v22, v0 │ @@ -440,66 +440,66 @@ │ │ move/from16 v1, v23 │ │ invoke-virtual {v0, v12, v1}, Lcom/koushikdutta/async/util/FileCache;->get(Ljava/lang/String;I)[Ljava/io/FileInputStream; │ │ move-result-object v20 │ │ - .line 113 │ + .line 119 │ if-nez v20, :cond_2 │ │ - .line 114 │ + .line 120 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ add-int/lit8 v22, v22, 0x1 │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 115 │ + .line 121 │ const/16 v19, 0x0 │ │ goto :goto_0 │ │ - .line 117 │ + .line 123 │ :cond_2 │ const/16 v22, 0x1 │ │ aget-object v22, v20, v22 │ │ invoke-virtual/range {v22 .. v22}, Ljava/io/FileInputStream;->available()I │ │ move-result v22 │ │ move/from16 v0, v22 │ │ int-to-long v8, v0 │ │ - .line 118 │ + .line 124 │ .local v8, "contentLength":J │ new-instance v11, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ │ const/16 v22, 0x0 │ │ aget-object v22, v20, v22 │ │ move-object/from16 v0, v22 │ │ invoke-direct {v11, v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->(Ljava/io/InputStream;)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 128 │ + .line 134 │ .local v11, "entry":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v22, v0 │ │ @@ -539,44 +539,44 @@ │ │ invoke-virtual {v11, v0, v1, v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->matches(Landroid/net/Uri;Ljava/lang/String;Ljava/util/Map;)Z │ │ move-result v22 │ │ if-nez v22, :cond_3 │ │ - .line 129 │ + .line 135 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ add-int/lit8 v22, v22, 0x1 │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 130 │ + .line 136 │ invoke-static/range {v20 .. v20}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 131 │ + .line 137 │ const/16 v19, 0x0 │ │ goto/16 :goto_0 │ │ - .line 120 │ + .line 126 │ .end local v8 # "contentLength":J │ .end local v11 # "entry":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ :catch_0 │ move-exception v10 │ │ - .line 122 │ + .line 128 │ .local v10, "e":Ljava/io/IOException; │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ @@ -584,59 +584,59 @@ │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 123 │ + .line 129 │ invoke-static/range {v20 .. v20}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 124 │ + .line 130 │ const/16 v19, 0x0 │ │ goto/16 :goto_0 │ │ - .line 134 │ + .line 140 │ .end local v10 # "e":Ljava/io/IOException; │ .restart local v8 # "contentLength":J │ .restart local v11 # "entry":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ :cond_3 │ new-instance v7, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ │ const/16 v22, 0x1 │ │ aget-object v22, v20, v22 │ │ move-object/from16 v0, v22 │ │ invoke-direct {v7, v11, v0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;Ljava/io/FileInputStream;)V │ │ - .line 139 │ + .line 145 │ .local v7, "candidate":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ :try_start_1 │ invoke-virtual {v7}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->getHeaders()Ljava/util/Map; │ │ move-result-object v17 │ │ - .line 140 │ + .line 146 │ .local v17, "responseHeadersMap":Ljava/util/Map;, "Ljava/util/Map;>;" │ invoke-virtual {v7}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;->getBody()Ljava/io/FileInputStream; │ :try_end_1 │ .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 │ │ move-result-object v5 │ │ - .line 147 │ + .line 153 │ .local v5, "cachedResponseBody":Ljava/io/FileInputStream; │ if-eqz v17, :cond_4 │ │ if-nez v5, :cond_5 │ │ - .line 148 │ + .line 154 │ :cond_4 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ @@ -644,29 +644,29 @@ │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 149 │ + .line 155 │ invoke-static/range {v20 .. v20}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 150 │ + .line 156 │ const/16 v19, 0x0 │ │ goto/16 :goto_0 │ │ - .line 142 │ + .line 148 │ .end local v5 # "cachedResponseBody":Ljava/io/FileInputStream; │ .end local v17 # "responseHeadersMap":Ljava/util/Map;, "Ljava/util/Map;>;" │ :catch_1 │ move-exception v10 │ │ - .line 143 │ + .line 149 │ .local v10, "e":Ljava/lang/Exception; │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ @@ -674,32 +674,32 @@ │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 144 │ + .line 150 │ invoke-static/range {v20 .. v20}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 145 │ + .line 151 │ const/16 v19, 0x0 │ │ goto/16 :goto_0 │ │ - .line 153 │ + .line 159 │ .end local v10 # "e":Ljava/lang/Exception; │ .restart local v5 # "cachedResponseBody":Ljava/io/FileInputStream; │ .restart local v17 # "responseHeadersMap":Ljava/util/Map;, "Ljava/util/Map;>;" │ :cond_5 │ invoke-static/range {v17 .. v17}, Lcom/koushikdutta/async/http/cache/RawHeaders;->fromMultimap(Ljava/util/Map;)Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v13 │ │ - .line 154 │ + .line 160 │ .local v13, "rawResponseHeaders":Lcom/koushikdutta/async/http/cache/RawHeaders; │ new-instance v6, Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ @@ -709,92 +709,92 @@ │ │ move-result-object v22 │ │ move-object/from16 v0, v22 │ │ invoke-direct {v6, v0, v13}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->(Landroid/net/Uri;Lcom/koushikdutta/async/http/cache/RawHeaders;)V │ │ - .line 155 │ + .line 161 │ .local v6, "cachedResponseHeaders":Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ const-string v22, "Content-Length" │ │ invoke-static {v8, v9}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; │ │ move-result-object v23 │ │ move-object/from16 v0, v22 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v13, v0, v1}, Lcom/koushikdutta/async/http/cache/RawHeaders;->set(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 156 │ + .line 162 │ const-string v22, "Content-Encoding" │ │ move-object/from16 v0, v22 │ │ invoke-virtual {v13, v0}, Lcom/koushikdutta/async/http/cache/RawHeaders;->removeAll(Ljava/lang/String;)V │ │ - .line 157 │ + .line 163 │ const-string v22, "Transfer-Encoding" │ │ move-object/from16 v0, v22 │ │ invoke-virtual {v13, v0}, Lcom/koushikdutta/async/http/cache/RawHeaders;->removeAll(Ljava/lang/String;)V │ │ - .line 158 │ + .line 164 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v22 │ │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v24 │ │ move-wide/from16 v0, v22 │ │ move-wide/from16 v2, v24 │ │ invoke-virtual {v6, v0, v1, v2, v3}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->setLocalTimestamps(JJ)V │ │ - .line 160 │ + .line 166 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v14 │ │ - .line 161 │ + .line 167 │ .local v14, "now":J │ move-object/from16 v0, v16 │ │ invoke-virtual {v6, v14, v15, v0}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->chooseResponseSource(JLcom/koushikdutta/async/http/cache/RequestHeaders;)Lcom/koushikdutta/async/http/cache/ResponseSource; │ │ move-result-object v18 │ │ - .line 163 │ + .line 169 │ .local v18, "responseSource":Lcom/koushikdutta/async/http/cache/ResponseSource; │ sget-object v22, Lcom/koushikdutta/async/http/cache/ResponseSource;->CACHE:Lcom/koushikdutta/async/http/cache/ResponseSource; │ │ move-object/from16 v0, v18 │ │ move-object/from16 v1, v22 │ │ if-ne v0, v1, :cond_7 │ │ - .line 164 │ + .line 170 │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v22, v0 │ │ const-string v23, "Response retrieved from cache" │ │ invoke-virtual/range {v22 .. v23}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logi(Ljava/lang/String;)V │ │ - .line 165 │ + .line 171 │ # invokes: Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->isHttps()Z │ invoke-static {v11}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->access$000(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;)Z │ │ move-result v22 │ │ if-eqz v22, :cond_6 │ │ @@ -802,15 +802,15 @@ │ │ move-object/from16 v0, v21 │ │ move-object/from16 v1, p0 │ │ invoke-direct {v0, v1, v7, v8, v9}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSSLSocket;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ │ - .line 166 │ + .line 172 │ .local v21, "socket":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ :goto_1 │ move-object/from16 v0, v21 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->pending:Lcom/koushikdutta/async/ByteBufferList; │ │ move-object/from16 v22, v0 │ @@ -825,15 +825,15 @@ │ │ invoke-static/range {v23 .. v23}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer; │ │ move-result-object v23 │ │ invoke-virtual/range {v22 .. v23}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 168 │ + .line 174 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->server:Lcom/koushikdutta/async/AsyncServer; │ │ move-object/from16 v22, v0 │ │ new-instance v23, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1; │ @@ -846,30 +846,30 @@ │ │ move-object/from16 v3, v21 │ │ invoke-direct {v0, v1, v2, v3}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;)V │ │ invoke-virtual/range {v22 .. v23}, Lcom/koushikdutta/async/AsyncServer;->post(Ljava/lang/Runnable;)Ljava/lang/Object; │ │ - .line 175 │ + .line 181 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cacheHitCount:I │ │ move/from16 v22, v0 │ │ add-int/lit8 v22, v22, 0x1 │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cacheHitCount:I │ │ - .line 176 │ + .line 182 │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ move-object/from16 v22, v0 │ │ const-string v23, "socket-owner" │ @@ -878,194 +878,194 @@ │ │ move-object/from16 v1, v23 │ │ move-object/from16 v2, p0 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/util/UntypedHashtable;->put(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 177 │ + .line 183 │ new-instance v19, Lcom/koushikdutta/async/future/SimpleCancellable; │ │ invoke-direct/range {v19 .. v19}, Lcom/koushikdutta/async/future/SimpleCancellable;->()V │ │ - .line 178 │ + .line 184 │ .local v19, "ret":Lcom/koushikdutta/async/future/SimpleCancellable; │ invoke-virtual/range {v19 .. v19}, Lcom/koushikdutta/async/future/SimpleCancellable;->setComplete()Z │ │ goto/16 :goto_0 │ │ - .line 165 │ + .line 171 │ .end local v19 # "ret":Lcom/koushikdutta/async/future/SimpleCancellable; │ .end local v21 # "socket":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ :cond_6 │ new-instance v21, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ move-object/from16 v0, v21 │ │ move-object/from16 v1, p0 │ │ invoke-direct {v0, v1, v7, v8, v9}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ │ goto :goto_1 │ │ - .line 181 │ + .line 187 │ :cond_7 │ sget-object v22, Lcom/koushikdutta/async/http/cache/ResponseSource;->CONDITIONAL_CACHE:Lcom/koushikdutta/async/http/cache/ResponseSource; │ │ move-object/from16 v0, v18 │ │ move-object/from16 v1, v22 │ │ if-ne v0, v1, :cond_8 │ │ - .line 182 │ + .line 188 │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v22, v0 │ │ const-string v23, "Response may be served from conditional cache" │ │ invoke-virtual/range {v22 .. v23}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logi(Ljava/lang/String;)V │ │ - .line 183 │ + .line 189 │ new-instance v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ │ invoke-direct {v4}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->()V │ │ - .line 184 │ + .line 190 │ .local v4, "cacheData":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ move-object/from16 v0, v20 │ │ iput-object v0, v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->snapshot:[Ljava/io/FileInputStream; │ │ - .line 185 │ + .line 191 │ iput-wide v8, v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->contentLength:J │ │ - .line 186 │ + .line 192 │ iput-object v6, v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->cachedResponseHeaders:Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ - .line 187 │ + .line 193 │ iput-object v7, v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->candidate:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ │ - .line 188 │ + .line 194 │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ move-object/from16 v22, v0 │ │ const-string v23, "cache-data" │ │ move-object/from16 v0, v22 │ │ move-object/from16 v1, v23 │ │ invoke-virtual {v0, v1, v4}, Lcom/koushikdutta/async/util/UntypedHashtable;->put(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 189 │ + .line 195 │ const/16 v19, 0x0 │ │ goto/16 :goto_0 │ │ - .line 192 │ + .line 198 │ .end local v4 # "cacheData":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ :cond_8 │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-object/from16 v22, v0 │ │ const-string v23, "Response can not be served from cache" │ │ invoke-virtual/range {v22 .. v23}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 194 │ + .line 200 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ move/from16 v22, v0 │ │ add-int/lit8 v22, v22, 0x1 │ │ move/from16 v0, v22 │ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 195 │ + .line 201 │ invoke-static/range {v20 .. v20}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 196 │ + .line 202 │ const/16 v19, 0x0 │ │ goto/16 :goto_0 │ .end method │ │ .method public onBodyDecoder(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;)V │ - .locals 19 │ + .locals 20 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData; │ │ .prologue │ - .line 220 │ + .line 226 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ const-class v16, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ invoke-static/range {v15 .. v16}, Lcom/koushikdutta/async/Util;->getWrappedSocket(Lcom/koushikdutta/async/AsyncSocket;Ljava/lang/Class;)Lcom/koushikdutta/async/AsyncSocket; │ │ move-result-object v4 │ │ check-cast v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ - .line 221 │ + .line 227 │ .local v4, "cached":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ if-eqz v4, :cond_1 │ │ - .line 222 │ + .line 228 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ invoke-interface {v15}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v15 │ │ const-string v16, "X-Served-From" │ │ const-string v17, "cache" │ │ invoke-virtual/range {v15 .. v17}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 294 │ + .line 300 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 226 │ + .line 232 │ :cond_1 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v16, "cache-data" │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/util/UntypedHashtable;->get(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ │ - .line 227 │ + .line 233 │ .local v3, "cacheData":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ invoke-interface {v15}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->headers()Lcom/koushikdutta/async/http/Headers; │ │ @@ -1075,137 +1075,139 @@ │ │ move-result-object v15 │ │ invoke-static {v15}, Lcom/koushikdutta/async/http/cache/RawHeaders;->fromMultimap(Ljava/util/Map;)Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v13 │ │ - .line 228 │ + .line 234 │ .local v13, "rh":Lcom/koushikdutta/async/http/cache/RawHeaders; │ const-string v15, "Content-Length" │ │ invoke-virtual {v13, v15}, Lcom/koushikdutta/async/http/cache/RawHeaders;->removeAll(Ljava/lang/String;)V │ │ - .line 229 │ - const-string v15, "%s %s %s" │ + .line 235 │ + sget-object v15, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v16, "%s %s %s" │ │ - const/16 v16, 0x3 │ + const/16 v17, 0x3 │ │ - move/from16 v0, v16 │ + move/from16 v0, v17 │ │ new-array v0, v0, [Ljava/lang/Object; │ │ - move-object/from16 v16, v0 │ + move-object/from16 v17, v0 │ │ - const/16 v17, 0x0 │ + const/16 v18, 0x0 │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - move-object/from16 v18, v0 │ + move-object/from16 v19, v0 │ │ - invoke-interface/range {v18 .. v18}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->protocol()Ljava/lang/String; │ + invoke-interface/range {v19 .. v19}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->protocol()Ljava/lang/String; │ │ - move-result-object v18 │ + move-result-object v19 │ │ - aput-object v18, v16, v17 │ + aput-object v19, v17, v18 │ │ - const/16 v17, 0x1 │ + const/16 v18, 0x1 │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - move-object/from16 v18, v0 │ + move-object/from16 v19, v0 │ │ - invoke-interface/range {v18 .. v18}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->code()I │ + invoke-interface/range {v19 .. v19}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->code()I │ │ - move-result v18 │ + move-result v19 │ │ - invoke-static/range {v18 .. v18}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static/range {v19 .. v19}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v18 │ + move-result-object v19 │ │ - aput-object v18, v16, v17 │ + aput-object v19, v17, v18 │ │ - const/16 v17, 0x2 │ + const/16 v18, 0x2 │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - move-object/from16 v18, v0 │ + move-object/from16 v19, v0 │ │ - invoke-interface/range {v18 .. v18}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->message()Ljava/lang/String; │ + invoke-interface/range {v19 .. v19}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->message()Ljava/lang/String; │ │ - move-result-object v18 │ + move-result-object v19 │ │ - aput-object v18, v16, v17 │ + aput-object v19, v17, v18 │ │ - invoke-static/range {v15 .. v16}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static/range {v15 .. v17}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v15 │ │ invoke-virtual {v13, v15}, Lcom/koushikdutta/async/http/cache/RawHeaders;->setStatusLine(Ljava/lang/String;)V │ │ - .line 230 │ + .line 236 │ new-instance v11, Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-virtual {v15}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v15 │ │ invoke-direct {v11, v15, v13}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->(Landroid/net/Uri;Lcom/koushikdutta/async/http/cache/RawHeaders;)V │ │ - .line 231 │ + .line 237 │ .local v11, "networkResponse":Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v16, "response-headers" │ │ move-object/from16 v0, v16 │ │ invoke-virtual {v15, v0, v11}, Lcom/koushikdutta/async/util/UntypedHashtable;->put(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 232 │ + .line 238 │ if-eqz v3, :cond_3 │ │ - .line 233 │ + .line 239 │ iget-object v15, v3, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->cachedResponseHeaders:Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ invoke-virtual {v15, v11}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->validate(Lcom/koushikdutta/async/http/cache/ResponseHeaders;)Z │ │ move-result v15 │ │ if-eqz v15, :cond_2 │ │ - .line 234 │ + .line 240 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v16, "Serving response from conditional cache" │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logi(Ljava/lang/String;)V │ │ - .line 235 │ + .line 241 │ iget-object v15, v3, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->cachedResponseHeaders:Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ invoke-virtual {v15, v11}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->combine(Lcom/koushikdutta/async/http/cache/ResponseHeaders;)Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ │ move-result-object v6 │ │ - .line 236 │ + .line 242 │ .local v6, "combined":Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ new-instance v16, Lcom/koushikdutta/async/http/Headers; │ │ @@ -1217,140 +1219,140 @@ │ │ move-result-object v17 │ │ invoke-direct/range {v16 .. v17}, Lcom/koushikdutta/async/http/Headers;->(Ljava/util/Map;)V │ │ invoke-interface/range {v15 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->headers(Lcom/koushikdutta/async/http/Headers;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - .line 237 │ + .line 243 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->getHeaders()Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v16 │ │ invoke-virtual/range {v16 .. v16}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getResponseCode()I │ │ move-result v16 │ │ invoke-interface/range {v15 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->code(I)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - .line 238 │ + .line 244 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ invoke-virtual {v6}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->getHeaders()Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v16 │ │ invoke-virtual/range {v16 .. v16}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getResponseMessage()Ljava/lang/String; │ │ move-result-object v16 │ │ invoke-interface/range {v15 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->message(Ljava/lang/String;)Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ - .line 240 │ + .line 246 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->response:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead; │ │ invoke-interface {v15}, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$ResponseHead;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v15 │ │ const-string v16, "X-Served-From" │ │ const-string v17, "conditional-cache" │ │ invoke-virtual/range {v15 .. v17}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 241 │ + .line 247 │ move-object/from16 v0, p0 │ │ iget v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->conditionalCacheHitCount:I │ │ add-int/lit8 v15, v15, 0x1 │ │ move-object/from16 v0, p0 │ │ iput v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->conditionalCacheHitCount:I │ │ - .line 243 │ + .line 249 │ new-instance v2, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ │ iget-object v15, v3, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->candidate:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ │ iget-wide v0, v3, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->contentLength:J │ │ move-wide/from16 v16, v0 │ │ move-wide/from16 v0, v16 │ │ invoke-direct {v2, v15, v0, v1}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse;J)V │ │ - .line 244 │ + .line 250 │ .local v2, "bodySpewer":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->bodyEmitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-virtual {v2, v15}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->setDataEmitter(Lcom/koushikdutta/async/DataEmitter;)V │ │ - .line 245 │ + .line 251 │ move-object/from16 v0, p1 │ │ iput-object v2, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->bodyEmitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 246 │ + .line 252 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter;->sendCachedData()V │ │ goto/16 :goto_0 │ │ - .line 251 │ + .line 257 │ .end local v2 # "bodySpewer":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedBodyEmitter; │ .end local v6 # "combined":Lcom/koushikdutta/async/http/cache/ResponseHeaders; │ :cond_2 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v16, "cache-data" │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/util/UntypedHashtable;->remove(Ljava/lang/String;)V │ │ - .line 252 │ + .line 258 │ iget-object v15, v3, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->snapshot:[Ljava/io/FileInputStream; │ │ invoke-static {v15}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 255 │ + .line 261 │ :cond_3 │ move-object/from16 v0, p0 │ │ iget-boolean v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->caching:Z │ │ if-eqz v15, :cond_0 │ │ - .line 258 │ + .line 264 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v16, "request-headers" │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/util/UntypedHashtable;->get(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v12 │ │ check-cast v12, Lcom/koushikdutta/async/http/cache/RequestHeaders; │ │ - .line 259 │ + .line 265 │ .local v12, "requestHeaders":Lcom/koushikdutta/async/http/cache/RequestHeaders; │ if-eqz v12, :cond_4 │ │ invoke-virtual {v11, v12}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->isCacheable(Lcom/koushikdutta/async/http/cache/RequestHeaders;)Z │ │ move-result v15 │ │ @@ -1368,38 +1370,38 @@ │ │ invoke-virtual/range {v15 .. v16}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v15 │ │ if-nez v15, :cond_5 │ │ - .line 265 │ + .line 271 │ :cond_4 │ move-object/from16 v0, p0 │ │ iget v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ add-int/lit8 v15, v15, 0x1 │ │ move-object/from16 v0, p0 │ │ iput v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ - .line 266 │ + .line 272 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v16, "Response is not cacheable" │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 270 │ + .line 276 │ :cond_5 │ const/4 v15, 0x1 │ │ new-array v15, v15, [Ljava/lang/Object; │ │ const/16 v16, 0x0 │ │ @@ -1415,29 +1417,29 @@ │ │ aput-object v17, v15, v16 │ │ invoke-static {v15}, Lcom/koushikdutta/async/util/FileCache;->toKeyString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v10 │ │ - .line 271 │ + .line 277 │ .local v10, "key":Ljava/lang/String; │ invoke-virtual {v12}, Lcom/koushikdutta/async/http/cache/RequestHeaders;->getHeaders()Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v15 │ │ invoke-virtual {v11}, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->getVaryFields()Ljava/util/Set; │ │ move-result-object v16 │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/http/cache/RawHeaders;->getAll(Ljava/util/Set;)Lcom/koushikdutta/async/http/cache/RawHeaders; │ │ move-result-object v14 │ │ - .line 272 │ + .line 278 │ .local v14, "varyHeaders":Lcom/koushikdutta/async/http/cache/RawHeaders; │ new-instance v9, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ @@ -1457,99 +1459,99 @@ │ │ move-object/from16 v0, v16 │ │ move-object/from16 v1, v17 │ │ invoke-direct {v9, v15, v14, v0, v1}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->(Landroid/net/Uri;Lcom/koushikdutta/async/http/cache/RawHeaders;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/cache/RawHeaders;)V │ │ - .line 273 │ + .line 279 │ .local v9, "entry":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry; │ new-instance v5, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher; │ │ const/4 v15, 0x0 │ │ invoke-direct {v5, v15}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$1;)V │ │ - .line 274 │ + .line 280 │ .local v5, "cacher":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher; │ new-instance v8, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ move-object/from16 v0, p0 │ │ invoke-direct {v8, v0, v10}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;Ljava/lang/String;)V │ │ - .line 276 │ + .line 282 │ .local v8, "editor":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ :try_start_0 │ invoke-virtual {v9, v8}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$Entry;->writeTo(Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;)V │ │ - .line 278 │ + .line 284 │ const/4 v15, 0x1 │ │ invoke-virtual {v8, v15}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->newOutputStream(I)Ljava/io/FileOutputStream; │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 286 │ + .line 292 │ iput-object v8, v5, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->editor:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor; │ │ - .line 288 │ + .line 294 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->bodyEmitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-virtual {v5, v15}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->setDataEmitter(Lcom/koushikdutta/async/DataEmitter;)V │ │ - .line 289 │ + .line 295 │ move-object/from16 v0, p1 │ │ iput-object v5, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->bodyEmitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 291 │ + .line 297 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v16, "body-cacher" │ │ move-object/from16 v0, v16 │ │ invoke-virtual {v15, v0, v5}, Lcom/koushikdutta/async/util/UntypedHashtable;->put(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 292 │ + .line 298 │ move-object/from16 v0, p1 │ │ iget-object v15, v0, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnBodyDataOnRequestSentData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v16, "Caching response" │ │ invoke-virtual/range {v15 .. v16}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 293 │ + .line 299 │ move-object/from16 v0, p0 │ │ iget v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cacheStoreCount:I │ │ add-int/lit8 v15, v15, 0x1 │ │ move-object/from16 v0, p0 │ │ iput v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->cacheStoreCount:I │ │ goto/16 :goto_0 │ │ - .line 280 │ + .line 286 │ :catch_0 │ move-exception v7 │ │ - .line 282 │ + .line 288 │ .local v7, "e":Ljava/lang/Exception; │ invoke-virtual {v8}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryEditor;->abort()V │ │ - .line 283 │ + .line 289 │ move-object/from16 v0, p0 │ │ iget v15, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->networkCount:I │ │ add-int/lit8 v15, v15, 0x1 │ │ move-object/from16 v0, p0 │ @@ -1560,55 +1562,55 @@ │ .end method │ │ .method public onResponseComplete(Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;)V │ .locals 6 │ .param p1, "data" # Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData; │ │ .prologue │ - .line 299 │ + .line 305 │ iget-object v3, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v4, "cache-data" │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/util/UntypedHashtable;->get(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ │ - .line 300 │ + .line 306 │ .local v0, "cacheData":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData; │ if-eqz v0, :cond_0 │ │ iget-object v3, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->snapshot:[Ljava/io/FileInputStream; │ │ if-eqz v3, :cond_0 │ │ - .line 301 │ + .line 307 │ iget-object v3, v0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CacheData;->snapshot:[Ljava/io/FileInputStream; │ │ invoke-static {v3}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 303 │ + .line 309 │ :cond_0 │ iget-object v3, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->socket:Lcom/koushikdutta/async/AsyncSocket; │ │ const-class v4, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/Util;->getWrappedSocket(Lcom/koushikdutta/async/AsyncSocket;Ljava/lang/Class;)Lcom/koushikdutta/async/AsyncSocket; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ │ - .line 304 │ + .line 310 │ .local v1, "cachedSocket":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket; │ if-eqz v1, :cond_1 │ │ - .line 305 │ + .line 311 │ const/4 v3, 0x1 │ │ new-array v3, v3, [Ljava/io/Closeable; │ │ const/4 v4, 0x0 │ │ iget-object v5, v1, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$CachedSocket;->cacheResponse:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$EntryCacheResponse; │ @@ -1617,54 +1619,84 @@ │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ invoke-static {v3}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 307 │ + .line 313 │ :cond_1 │ iget-object v3, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->state:Lcom/koushikdutta/async/util/UntypedHashtable; │ │ const-string v4, "body-cacher" │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/util/UntypedHashtable;->get(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher; │ │ - .line 308 │ + .line 314 │ .local v2, "cacher":Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher; │ if-eqz v2, :cond_2 │ │ - .line 309 │ + .line 315 │ iget-object v3, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnResponseCompleteDataOnRequestSentData;->exception:Ljava/lang/Exception; │ │ if-eqz v3, :cond_3 │ │ - .line 310 │ + .line 316 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->abort()V │ │ - .line 314 │ + .line 320 │ :cond_2 │ :goto_0 │ return-void │ │ - .line 312 │ + .line 318 │ :cond_3 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware$BodyCacher;->commit()V │ │ goto :goto_0 │ .end method │ │ +.method public removeFromCache(Landroid/net/Uri;)V │ + .locals 3 │ + .param p1, "uri" # Landroid/net/Uri; │ + │ + .prologue │ + .line 97 │ + const/4 v1, 0x1 │ + │ + new-array v1, v1, [Ljava/lang/Object; │ + │ + const/4 v2, 0x0 │ + │ + aput-object p1, v1, v2 │ + │ + invoke-static {v1}, Lcom/koushikdutta/async/util/FileCache;->toKeyString([Ljava/lang/Object;)Ljava/lang/String; │ + │ + move-result-object v0 │ + │ + .line 98 │ + .local v0, "key":Ljava/lang/String; │ + invoke-virtual {p0}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->getFileCache()Lcom/koushikdutta/async/util/FileCache; │ + │ + move-result-object v1 │ + │ + invoke-virtual {v1, v0}, Lcom/koushikdutta/async/util/FileCache;->remove(Ljava/lang/String;)V │ + │ + .line 99 │ + return-void │ +.end method │ + │ .method public setCaching(Z)V │ .locals 0 │ .param p1, "caching" # Z │ │ .prologue │ - .line 92 │ + .line 93 │ iput-boolean p1, p0, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->caching:Z │ │ - .line 93 │ + .line 94 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/cache/ResponseHeaders.smali │ @@ -571,14 +571,15 @@ │ │ if-eqz v8, :cond_0 │ │ iget-wide v8, p0, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->receivedResponseMillis:J │ │ iget-object v10, p0, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->servedDate:Ljava/util/Date; │ │ + .line 290 │ invoke-virtual {v10}, Ljava/util/Date;->getTime()J │ │ move-result-wide v10 │ │ sub-long/2addr v8, v10 │ │ invoke-static {v0, v1, v8, v9}, Ljava/lang/Math;->max(JJ)J │ @@ -596,14 +597,15 @@ │ │ sget-object v8, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; │ │ iget v9, p0, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->ageSeconds:I │ │ int-to-long v10, v9 │ │ + .line 293 │ invoke-virtual {v8, v10, v11}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J │ │ move-result-wide v8 │ │ invoke-static {v0, v1, v8, v9}, Ljava/lang/Math;->max(JJ)J │ │ move-result-wide v2 │ @@ -633,15 +635,15 @@ │ │ .end local v2 # "receivedAge":J │ .end local v4 # "residentDuration":J │ .end local v6 # "responseDuration":J │ :cond_1 │ move-wide v2, v0 │ │ - .line 292 │ + .line 293 │ goto :goto_0 │ .end method │ │ .method private computeFreshnessLifetime()J │ .locals 8 │ │ .prologue │ @@ -796,62 +798,69 @@ │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "Keep-Alive" │ │ + .line 513 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "Proxy-Authenticate" │ │ + .line 514 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "Proxy-Authorization" │ │ + .line 515 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "TE" │ │ + .line 516 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "Trailers" │ │ + .line 517 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "Transfer-Encoding" │ │ + .line 518 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "Upgrade" │ │ + .line 519 │ invoke-virtual {p0, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const/4 v0, 0x1 │ @@ -956,24 +965,26 @@ │ const/4 v11, -0x1 │ │ if-eq v10, v11, :cond_3 │ │ .line 413 │ sget-object v10, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; │ │ + .line 414 │ invoke-virtual/range {p3 .. p3}, Lcom/koushikdutta/async/http/cache/RequestHeaders;->getMaxAgeSeconds()I │ │ move-result v11 │ │ int-to-long v12, v11 │ │ invoke-virtual {v10, v12, v13}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J │ │ move-result-wide v10 │ │ + .line 413 │ invoke-static {v4, v5, v10, v11}, Ljava/lang/Math;->min(JJ)J │ │ move-result-wide v4 │ │ .line 417 │ :cond_3 │ const-wide/16 v8, 0x0 │ @@ -1714,14 +1725,15 @@ │ │ iget-object v1, p1, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->lastModified:Ljava/util/Date; │ │ if-eqz v1, :cond_2 │ │ iget-object v1, p1, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->lastModified:Ljava/util/Date; │ │ + .line 472 │ invoke-virtual {v1}, Ljava/util/Date;->getTime()J │ │ move-result-wide v2 │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/cache/ResponseHeaders;->lastModified:Ljava/util/Date; │ │ invoke-virtual {v1}, Ljava/util/Date;->getTime()J ├── smali/com/koushikdutta/async/http/cache/StrictLineReader$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/cache/StrictLineReader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/cache/StrictLineReader;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/cache/StrictLineReader; │ .param p2, "x0" # I │ │ .prologue │ .line 172 │ iput-object p1, p0, Lcom/koushikdutta/async/http/cache/StrictLineReader$1;->this$0:Lcom/koushikdutta/async/http/cache/StrictLineReader; │ │ invoke-direct {p0, p2}, Ljava/io/ByteArrayOutputStream;->(I)V ├── smali/com/koushikdutta/async/http/filter/GZIPInputFilter$1$1.smali │ @@ -28,32 +28,33 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ .prologue │ - .line 68 │ + .line 69 │ iput-object p1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic parsed(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ │ .prologue │ - .line 68 │ + .line 69 │ check-cast p1, [B │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->parsed([B)V │ │ return-void │ .end method │ @@ -61,52 +62,52 @@ │ .method public parsed([B)V │ .locals 4 │ .param p1, "header" # [B │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 70 │ + .line 71 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-boolean v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->hcrc:Z │ │ if-eqz v1, :cond_0 │ │ - .line 71 │ + .line 72 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ const/4 v2, 0x2 │ │ invoke-virtual {v1, p1, v3, v2}, Ljava/util/zip/CRC32;->update([BII)V │ │ - .line 73 │ + .line 74 │ :cond_0 │ sget-object v1, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-static {p1, v3, v1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->peekShort([BILjava/nio/ByteOrder;)S │ │ move-result v1 │ │ const v2, 0xffff │ │ and-int v0, v1, v2 │ │ - .line 74 │ + .line 75 │ .local v0, "length":I │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$parser:Lcom/koushikdutta/async/PushParser; │ │ new-instance v2, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1; │ │ invoke-direct {v2, p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1;->(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;)V │ │ invoke-virtual {v1, v0, v2}, Lcom/koushikdutta/async/PushParser;->readByteArray(ILcom/koushikdutta/async/PushParser$ParseCallback;)Lcom/koushikdutta/async/PushParser; │ │ - .line 82 │ + .line 83 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/filter/GZIPInputFilter$1$2.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ .prologue │ - .line 91 │ + .line 92 │ iput-object p1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$2;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,35 +39,35 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 5 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 94 │ + .line 95 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$2;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-boolean v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->hcrc:Z │ │ if-eqz v1, :cond_0 │ │ - .line 95 │ + .line 96 │ :goto_0 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->size()I │ │ move-result v1 │ │ if-lez v1, :cond_0 │ │ - .line 96 │ + .line 97 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remove()Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ - .line 97 │ + .line 98 │ .local v0, "b":Ljava/nio/ByteBuffer; │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$2;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ @@ -86,26 +87,26 @@ │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v4 │ │ invoke-virtual {v1, v2, v3, v4}, Ljava/util/zip/CRC32;->update([BII)V │ │ - .line 98 │ + .line 99 │ invoke-static {v0}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ goto :goto_0 │ │ - .line 101 │ + .line 102 │ .end local v0 # "b":Ljava/nio/ByteBuffer; │ :cond_0 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 102 │ + .line 103 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$2;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ # invokes: Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->done()V │ invoke-static {v1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->access$100(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ │ - .line 103 │ + .line 104 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/filter/GZIPInputFilter$1$3.smali │ @@ -28,32 +28,33 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ .prologue │ - .line 119 │ + .line 120 │ iput-object p1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic parsed(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ │ .prologue │ - .line 119 │ + .line 120 │ check-cast p1, [B │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->parsed([B)V │ │ return-void │ .end method │ @@ -61,22 +62,22 @@ │ .method public parsed([B)V │ .locals 5 │ .param p1, "header" # [B │ │ .prologue │ const/4 v4, 0x0 │ │ - .line 121 │ + .line 122 │ sget-object v1, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-static {p1, v4, v1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->peekShort([BILjava/nio/ByteOrder;)S │ │ move-result v0 │ │ - .line 122 │ + .line 123 │ .local v0, "crc16":S │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ @@ -86,49 +87,49 @@ │ │ long-to-int v1, v2 │ │ int-to-short v1, v1 │ │ if-eq v1, v0, :cond_0 │ │ - .line 123 │ + .line 124 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ new-instance v2, Ljava/io/IOException; │ │ const-string v3, "CRC mismatch" │ │ invoke-direct {v2, v3}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->report(Ljava/lang/Exception;)V │ │ - .line 130 │ + .line 131 │ :goto_0 │ return-void │ │ - .line 126 │ + .line 127 │ :cond_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ invoke-virtual {v1}, Ljava/util/zip/CRC32;->reset()V │ │ - .line 127 │ + .line 128 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iput-boolean v4, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->mNeedsHeader:Z │ │ - .line 128 │ + .line 129 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$emitter:Lcom/koushikdutta/async/DataEmitter; ├── smali/com/koushikdutta/async/http/filter/GZIPInputFilter$1.smali │ @@ -36,17 +36,18 @@ │ │ .field final synthetic val$parser:Lcom/koushikdutta/async/PushParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/filter/GZIPInputFilter;Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/PushParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ .prologue │ - .line 51 │ + .line 52 │ iput-object p1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$emitter:Lcom/koushikdutta/async/DataEmitter; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$parser:Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -55,64 +56,64 @@ │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ .prologue │ - .line 51 │ + .line 52 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->next()V │ │ return-void │ .end method │ │ .method static synthetic access$100(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ .prologue │ - .line 51 │ + .line 52 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->done()V │ │ return-void │ .end method │ │ .method private done()V │ .locals 3 │ │ .prologue │ - .line 118 │ + .line 119 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->hcrc:Z │ │ if-eqz v0, :cond_0 │ │ - .line 119 │ + .line 120 │ iget-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$parser:Lcom/koushikdutta/async/PushParser; │ │ const/4 v1, 0x2 │ │ new-instance v2, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3; │ │ invoke-direct {v2, p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$3;->(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/PushParser;->readByteArray(ILcom/koushikdutta/async/PushParser$ParseCallback;)Lcom/koushikdutta/async/PushParser; │ │ - .line 136 │ + .line 137 │ :goto_0 │ return-void │ │ - .line 133 │ + .line 134 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ const/4 v1, 0x0 │ │ iput-boolean v1, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->mNeedsHeader:Z │ │ - .line 134 │ + .line 135 │ iget-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$emitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->setDataEmitter(Lcom/koushikdutta/async/DataEmitter;)V │ │ goto :goto_0 │ @@ -120,177 +121,179 @@ │ │ .method private next()V │ .locals 4 │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 90 │ + .line 91 │ new-instance v0, Lcom/koushikdutta/async/PushParser; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$emitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-direct {v0, v2}, Lcom/koushikdutta/async/PushParser;->(Lcom/koushikdutta/async/DataEmitter;)V │ │ - .line 91 │ + .line 92 │ .local v0, "parser":Lcom/koushikdutta/async/PushParser; │ new-instance v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$2; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$2;->(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ │ - .line 105 │ + .line 106 │ .local v1, "summer":Lcom/koushikdutta/async/callback/DataCallback; │ iget v2, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->flags:I │ │ and-int/lit8 v2, v2, 0x8 │ │ if-eqz v2, :cond_0 │ │ - .line 106 │ + .line 107 │ invoke-virtual {v0, v3, v1}, Lcom/koushikdutta/async/PushParser;->until(BLcom/koushikdutta/async/callback/DataCallback;)Lcom/koushikdutta/async/PushParser; │ │ - .line 115 │ + .line 116 │ :goto_0 │ return-void │ │ - .line 109 │ + .line 110 │ :cond_0 │ iget v2, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->flags:I │ │ and-int/lit8 v2, v2, 0x10 │ │ if-eqz v2, :cond_1 │ │ - .line 110 │ + .line 111 │ invoke-virtual {v0, v3, v1}, Lcom/koushikdutta/async/PushParser;->until(BLcom/koushikdutta/async/callback/DataCallback;)Lcom/koushikdutta/async/PushParser; │ │ goto :goto_0 │ │ - .line 114 │ + .line 115 │ :cond_1 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->done()V │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method public bridge synthetic parsed(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ │ .prologue │ - .line 51 │ + .line 52 │ check-cast p1, [B │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->parsed([B)V │ │ return-void │ .end method │ │ .method public parsed([B)V │ - .locals 7 │ + .locals 8 │ .param p1, "header" # [B │ │ .prologue │ const/4 v1, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 56 │ + .line 57 │ sget-object v3, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-static {p1, v2, v3}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->peekShort([BILjava/nio/ByteOrder;)S │ │ move-result v0 │ │ - .line 57 │ + .line 58 │ .local v0, "magic":S │ const/16 v3, -0x74e1 │ │ if-eq v0, v3, :cond_0 │ │ - .line 58 │ + .line 59 │ iget-object v3, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ new-instance v4, Ljava/io/IOException; │ │ - const-string v5, "unknown format (magic number %x)" │ + sget-object v5, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v6, "unknown format (magic number %x)" │ │ new-array v1, v1, [Ljava/lang/Object; │ │ invoke-static {v0}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - aput-object v6, v1, v2 │ + aput-object v7, v1, v2 │ │ - invoke-static {v5, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v5, v6, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v4, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->report(Ljava/lang/Exception;)V │ │ - .line 59 │ + .line 60 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$emitter:Lcom/koushikdutta/async/DataEmitter; │ │ new-instance v2, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v2}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/DataEmitter;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 87 │ + .line 88 │ :goto_0 │ return-void │ │ - .line 62 │ + .line 63 │ :cond_0 │ const/4 v3, 0x3 │ │ aget-byte v3, p1, v3 │ │ iput v3, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->flags:I │ │ - .line 63 │ + .line 64 │ iget v3, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->flags:I │ │ and-int/lit8 v3, v3, 0x2 │ │ if-eqz v3, :cond_2 │ │ :goto_1 │ iput-boolean v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->hcrc:Z │ │ - .line 64 │ + .line 65 │ iget-boolean v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->hcrc:Z │ │ if-eqz v1, :cond_1 │ │ - .line 65 │ + .line 66 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ array-length v3, p1 │ │ invoke-virtual {v1, p1, v2, v3}, Ljava/util/zip/CRC32;->update([BII)V │ │ - .line 67 │ + .line 68 │ :cond_1 │ iget v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->flags:I │ │ and-int/lit8 v1, v1, 0x4 │ │ if-eqz v1, :cond_3 │ │ - .line 68 │ + .line 69 │ iget-object v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->val$parser:Lcom/koushikdutta/async/PushParser; │ │ const/4 v2, 0x2 │ │ new-instance v3, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ invoke-direct {v3, p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ @@ -298,16 +301,16 @@ │ invoke-virtual {v1, v2, v3}, Lcom/koushikdutta/async/PushParser;->readByteArray(ILcom/koushikdutta/async/PushParser$ParseCallback;)Lcom/koushikdutta/async/PushParser; │ │ goto :goto_0 │ │ :cond_2 │ move v1, v2 │ │ - .line 63 │ + .line 64 │ goto :goto_1 │ │ - .line 85 │ + .line 86 │ :cond_3 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->next()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/filter/GZIPInputFilter.smali │ @@ -22,63 +22,63 @@ │ # direct methods │ .method public constructor ()V │ .locals 2 │ │ .prologue │ const/4 v1, 0x1 │ │ - .line 36 │ + .line 37 │ new-instance v0, Ljava/util/zip/Inflater; │ │ invoke-direct {v0, v1}, Ljava/util/zip/Inflater;->(Z)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/async/http/filter/InflaterInputFilter;->(Ljava/util/zip/Inflater;)V │ │ - .line 39 │ + .line 40 │ iput-boolean v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->mNeedsHeader:Z │ │ - .line 40 │ + .line 41 │ new-instance v0, Ljava/util/zip/CRC32; │ │ invoke-direct {v0}, Ljava/util/zip/CRC32;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ - .line 37 │ + .line 38 │ return-void │ .end method │ │ .method static peekShort([BILjava/nio/ByteOrder;)S │ .locals 2 │ .param p0, "src" # [B │ .param p1, "offset" # I │ .param p2, "order" # Ljava/nio/ByteOrder; │ │ .prologue │ - .line 18 │ + .line 19 │ sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ if-ne p2, v0, :cond_0 │ │ - .line 19 │ + .line 20 │ aget-byte v0, p0, p1 │ │ shl-int/lit8 v0, v0, 0x8 │ │ add-int/lit8 v1, p1, 0x1 │ │ aget-byte v1, p0, v1 │ │ and-int/lit16 v1, v1, 0xff │ │ or-int/2addr v0, v1 │ │ int-to-short v0, v0 │ │ - .line 21 │ + .line 22 │ :goto_0 │ return v0 │ │ :cond_0 │ add-int/lit8 v0, p1, 0x1 │ │ aget-byte v0, p0, v0 │ @@ -97,52 +97,52 @@ │ .end method │ │ .method public static unsignedToBytes(B)I │ .locals 1 │ .param p0, "b" # B │ │ .prologue │ - .line 43 │ + .line 44 │ and-int/lit16 v0, p0, 0xff │ │ return v0 │ .end method │ │ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 3 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 49 │ + .line 50 │ iget-boolean v1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->mNeedsHeader:Z │ │ if-eqz v1, :cond_0 │ │ - .line 50 │ + .line 51 │ new-instance v0, Lcom/koushikdutta/async/PushParser; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/async/PushParser;->(Lcom/koushikdutta/async/DataEmitter;)V │ │ - .line 51 │ + .line 52 │ .local v0, "parser":Lcom/koushikdutta/async/PushParser; │ const/16 v1, 0xa │ │ new-instance v2, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ invoke-direct {v2, p0, p1, v0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->(Lcom/koushikdutta/async/http/filter/GZIPInputFilter;Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/PushParser;)V │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/PushParser;->readByteArray(ILcom/koushikdutta/async/PushParser$ParseCallback;)Lcom/koushikdutta/async/PushParser; │ │ - .line 142 │ + .line 143 │ .end local v0 # "parser":Lcom/koushikdutta/async/PushParser; │ :goto_0 │ return-void │ │ - .line 140 │ + .line 141 │ :cond_0 │ invoke-super {p0, p1, p2}, Lcom/koushikdutta/async/http/filter/InflaterInputFilter;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1.smali │ @@ -28,74 +28,75 @@ │ # instance fields │ .field final synthetic this$2:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ .prologue │ - .line 74 │ + .line 75 │ iput-object p1, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1;->this$2:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public bridge synthetic parsed(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ │ .prologue │ - .line 74 │ + .line 75 │ check-cast p1, [B │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1;->parsed([B)V │ │ return-void │ .end method │ │ .method public parsed([B)V │ .locals 3 │ .param p1, "buf" # [B │ │ .prologue │ - .line 76 │ + .line 77 │ iget-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1;->this$2:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-boolean v0, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->hcrc:Z │ │ if-eqz v0, :cond_0 │ │ - .line 77 │ + .line 78 │ iget-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1;->this$2:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->this$0:Lcom/koushikdutta/async/http/filter/GZIPInputFilter; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter;->crc:Ljava/util/zip/CRC32; │ │ const/4 v1, 0x0 │ │ array-length v2, p1 │ │ invoke-virtual {v0, p1, v1, v2}, Ljava/util/zip/CRC32;->update([BII)V │ │ - .line 79 │ + .line 80 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1$1;->this$2:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1$1;->this$1:Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1; │ │ # invokes: Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->next()V │ invoke-static {v0}, Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;->access$000(Lcom/koushikdutta/async/http/filter/GZIPInputFilter$1;)V │ │ - .line 80 │ + .line 81 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$1$1$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$2:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ .prologue │ .line 95 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1$1;->this$2:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$1$1$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$2:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1;Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ .param p2, "x0" # Lcom/koushikdutta/async/AsyncSocket; │ .param p3, "x1" # Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ .prologue │ .line 129 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1$2;->this$2:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$1$1$3.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$2:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1;)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ .prologue │ .line 175 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1$3;->this$2:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$1$1.smali │ @@ -33,14 +33,15 @@ │ │ .field final synthetic val$socket:Lcom/koushikdutta/async/AsyncSocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$1;Lcom/koushikdutta/async/AsyncSocket;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$1; │ │ .prologue │ .line 72 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$1; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$1$1;->val$socket:Lcom/koushikdutta/async/AsyncSocket; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ .prologue │ .line 69 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$2$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$2; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$2;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$2; │ │ .prologue │ .line 246 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$2$1;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$2; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$sslContext:Ljavax/net/ssl/SSLContext; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer;ILjavax/net/ssl/SSLContext;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ .prologue │ .line 242 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$2;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ iput p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$2;->val$port:I ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$3.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$protocol:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer;Ljava/lang/String;Lcom/koushikdutta/async/http/server/AsyncHttpServer$WebSocketRequestCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ .prologue │ .line 326 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$3;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$3;->val$protocol:Ljava/lang/String; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$4$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$response:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$4;Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse;Ljava/io/InputStream;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$4; │ │ .prologue │ .line 422 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$4$1;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$4; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$4$1;->val$response:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$4.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$assetPath:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer;Landroid/content/Context;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ .prologue │ .line 408 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$4;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$4;->val$_context:Landroid/content/Context; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$5.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$assetPath:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer;Landroid/content/Context;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ .prologue │ .line 431 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$5;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$5;->val$_context:Landroid/content/Context; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$6$1.smali │ @@ -30,14 +30,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$6; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$6;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$6; │ │ .prologue │ .line 474 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$6$1;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$6; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$6$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$response:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer$6;Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/server/AsyncHttpServer$6; │ │ .prologue │ .line 496 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$6$2;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServer$6; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$6$2;->val$response:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer$6.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$list:Z │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServer;Ljava/io/File;Z)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ .prologue │ .line 458 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$6;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServer$6;->val$directory:Ljava/io/File; ├── smali/com/koushikdutta/async/http/server/AsyncHttpServer.smali │ @@ -120,77 +120,90 @@ │ const-string v2, "OK" │ │ invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 514 │ sget-object v0, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ │ + const/16 v1, 0xca │ + │ + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + │ + move-result-object v1 │ + │ + const-string v2, "Accepted" │ + │ + invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + │ + .line 515 │ + sget-object v0, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ + │ const/16 v1, 0xce │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ const-string v2, "Partial Content" │ │ invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 515 │ + .line 516 │ sget-object v0, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ │ const/16 v1, 0x65 │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ const-string v2, "Switching Protocols" │ │ invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 516 │ + .line 517 │ sget-object v0, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ │ const/16 v1, 0x12d │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ const-string v2, "Moved Permanently" │ │ invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 517 │ + .line 518 │ sget-object v0, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ │ const/16 v1, 0x12e │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ const-string v2, "Found" │ │ invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 518 │ + .line 519 │ sget-object v0, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ │ const/16 v1, 0x194 │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v1 │ │ const-string v2, "Not Found" │ │ invoke-virtual {v0, v1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 519 │ + .line 520 │ return-void │ │ .line 45 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ @@ -411,35 +424,35 @@ │ .end method │ │ .method public static getResponseCodeDescription(I)Ljava/lang/String; │ .locals 3 │ .param p0, "code" # I │ │ .prologue │ - .line 522 │ + .line 523 │ sget-object v1, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->mCodes:Ljava/util/Hashtable; │ │ invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/String; │ │ - .line 523 │ + .line 524 │ .local v0, "d":Ljava/lang/String; │ if-nez v0, :cond_0 │ │ - .line 524 │ + .line 525 │ const-string v0, "Unknown" │ │ - .line 525 │ + .line 526 │ .end local v0 # "d":Ljava/lang/String; │ :cond_0 │ return-object v0 │ .end method │ │ .method private report(Ljava/lang/Exception;)V │ .locals 1 ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerRequestImpl$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ .prologue │ .line 51 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl$2;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerRequestImpl$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ .prologue │ .line 27 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1$1.smali │ @@ -20,43 +20,44 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1; │ │ .prologue │ - .line 127 │ + .line 128 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1$1;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 2 │ │ .prologue │ - .line 130 │ + .line 131 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1$1;->this$1:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ │ move-result-object v0 │ │ - .line 131 │ + .line 132 │ .local v0, "wb":Lcom/koushikdutta/async/callback/WritableCallback; │ if-eqz v0, :cond_0 │ │ - .line 132 │ + .line 133 │ invoke-interface {v0}, Lcom/koushikdutta/async/callback/WritableCallback;->onWriteable()V │ │ - .line 133 │ + .line 134 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$isChunked:Z │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;Z)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ .prologue │ - .line 102 │ + .line 103 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iput-boolean p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->val$isChunked:Z │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -43,113 +44,113 @@ │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 4 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 105 │ + .line 106 │ if-eqz p1, :cond_0 │ │ - .line 106 │ + .line 107 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v1, p1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->report(Ljava/lang/Exception;)V │ │ - .line 135 │ + .line 136 │ :goto_0 │ return-void │ │ - .line 109 │ + .line 110 │ :cond_0 │ iget-boolean v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->val$isChunked:Z │ │ if-eqz v1, :cond_1 │ │ - .line 110 │ + .line 111 │ new-instance v0, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter;->(Lcom/koushikdutta/async/DataSink;)V │ │ - .line 111 │ + .line 112 │ .local v0, "chunked":Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ const/4 v1, 0x0 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter;->setMaxBuffer(I)V │ │ - .line 112 │ + .line 113 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iput-object v0, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ - .line 118 │ + .line 119 │ .end local v0 # "chunked":Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ :goto_1 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/DataSink;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 119 │ + .line 120 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iput-object v3, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ - .line 120 │ + .line 121 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->writable:Lcom/koushikdutta/async/callback/WritableCallback; │ │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/DataSink;->setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ │ - .line 121 │ + .line 122 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iput-object v3, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->writable:Lcom/koushikdutta/async/callback/WritableCallback; │ │ - .line 122 │ + .line 123 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-boolean v1, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->ended:Z │ │ if-eqz v1, :cond_2 │ │ - .line 124 │ + .line 125 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ goto :goto_0 │ │ - .line 115 │ + .line 116 │ :cond_1 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iget-object v2, v2, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ iput-object v2, v1, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ goto :goto_1 │ │ - .line 127 │ + .line 128 │ :cond_2 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v1 ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$inputStream:Ljava/io/InputStream; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;Ljava/io/InputStream;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ .prologue │ - .line 292 │ + .line 293 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3;->val$inputStream:Ljava/io/InputStream; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,28 +42,28 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 3 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 295 │ + .line 296 │ const/4 v0, 0x1 │ │ new-array v0, v0, [Ljava/io/Closeable; │ │ const/4 v1, 0x0 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3;->val$inputStream:Ljava/io/InputStream; │ │ aput-object v2, v0, v1 │ │ invoke-static {v0}, Lcom/koushikdutta/async/util/StreamUtility;->closeQuietly([Ljava/io/Closeable;)V │ │ - .line 296 │ + .line 297 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->onEnd()V │ │ - .line 297 │ + .line 298 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$remoteResponse:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ .prologue │ - .line 329 │ + .line 330 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4;->val$remoteResponse:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,33 +42,33 @@ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 332 │ + .line 333 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4;->val$remoteResponse:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ new-instance v1, Lcom/koushikdutta/async/callback/CompletedCallback$NullCompletedCallback; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/callback/CompletedCallback$NullCompletedCallback;->()V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 333 │ + .line 334 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4;->val$remoteResponse:Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ new-instance v1, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/callback/DataCallback$NullDataCallback;->()V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 334 │ + .line 335 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ - .line 335 │ + .line 336 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$2.smali │ @@ -20,32 +20,33 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ .prologue │ - .line 206 │ + .line 207 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$2;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 1 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 209 │ + .line 210 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$2;->this$0:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->onEnd()V │ │ - .line 210 │ + .line 211 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/server/AsyncHttpServerResponseImpl.smali │ @@ -35,15 +35,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 30 │ + .line 31 │ const-class v0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -63,292 +63,292 @@ │ │ .method constructor (Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;)V │ .locals 3 │ .param p1, "socket" # Lcom/koushikdutta/async/AsyncSocket; │ .param p2, "req" # Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ .prologue │ - .line 45 │ + .line 46 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 31 │ + .line 32 │ new-instance v0, Lcom/koushikdutta/async/http/Headers; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/Headers;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ - .line 32 │ + .line 33 │ const-wide/16 v0, -0x1 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ - .line 72 │ + .line 73 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ - .line 339 │ + .line 340 │ const/16 v0, 0xc8 │ │ iput v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ - .line 46 │ + .line 47 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ - .line 47 │ + .line 48 │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRequest:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ - .line 48 │ + .line 49 │ sget-object v0, Lcom/koushikdutta/async/http/Protocol;->HTTP_1_1:Lcom/koushikdutta/async/http/Protocol; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/HttpUtil;->isKeepAlive(Lcom/koushikdutta/async/http/Protocol;Lcom/koushikdutta/async/http/Headers;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 49 │ + .line 50 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Connection" │ │ const-string v2, "Keep-Alive" │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 50 │ + .line 51 │ :cond_0 │ return-void │ .end method │ │ │ # virtual methods │ .method public code()I │ .locals 1 │ │ .prologue │ - .line 348 │ + .line 349 │ iget v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ return v0 │ .end method │ │ .method public code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ .locals 0 │ .param p1, "code" # I │ │ .prologue │ - .line 342 │ + .line 343 │ iput p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ - .line 343 │ + .line 344 │ return-object p0 │ .end method │ │ .method public end()V │ .locals 2 │ │ .prologue │ - .line 158 │ + .line 159 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->ended:Z │ │ if-eqz v0, :cond_1 │ │ - .line 187 │ + .line 188 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 160 │ + .line 161 │ :cond_1 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->ended:Z │ │ - .line 161 │ + .line 162 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ if-eqz v0, :cond_2 │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_0 │ │ - .line 166 │ + .line 167 │ :cond_2 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ if-nez v0, :cond_3 │ │ - .line 169 │ + .line 170 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Transfer-Encoding" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->remove(Ljava/lang/String;)Ljava/lang/String; │ │ - .line 171 │ + .line 172 │ :cond_3 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ instance-of v0, v0, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ │ if-eqz v0, :cond_4 │ │ - .line 172 │ + .line 173 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ check-cast v0, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter; │ │ const v1, 0x7fffffff │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/filter/ChunkedOutputFilter;->setMaxBuffer(I)V │ │ - .line 173 │ + .line 174 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ new-instance v1, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/DataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 174 │ + .line 175 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->onEnd()V │ │ goto :goto_0 │ │ - .line 176 │ + .line 177 │ :cond_4 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ if-nez v0, :cond_6 │ │ - .line 177 │ + .line 178 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRequest:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;->getMethod()Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "HEAD" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-nez v0, :cond_5 │ │ - .line 178 │ + .line 179 │ const-string v0, "text/html" │ │ const-string v1, "" │ │ invoke-virtual {p0, v0, v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->send(Ljava/lang/String;Ljava/lang/String;)V │ │ goto :goto_0 │ │ - .line 180 │ + .line 181 │ :cond_5 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->writeHead()V │ │ - .line 181 │ + .line 182 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->onEnd()V │ │ goto :goto_0 │ │ - .line 185 │ + .line 186 │ :cond_6 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->onEnd()V │ │ goto :goto_0 │ .end method │ │ .method public getClosedCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ .locals 1 │ │ .prologue │ - .line 381 │ + .line 382 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_0 │ │ - .line 382 │ + .line 383 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/DataSink;->getClosedCallback()Lcom/koushikdutta/async/callback/CompletedCallback; │ │ move-result-object v0 │ │ - .line 383 │ + .line 384 │ :goto_0 │ return-object v0 │ │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ goto :goto_0 │ .end method │ │ .method public getHeaders()Lcom/koushikdutta/async/http/Headers; │ .locals 1 │ │ .prologue │ - .line 36 │ + .line 37 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ return-object v0 │ .end method │ │ .method public getServer()Lcom/koushikdutta/async/AsyncServer; │ .locals 1 │ │ .prologue │ - .line 388 │ + .line 389 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getSocket()Lcom/koushikdutta/async/AsyncSocket; │ .locals 1 │ │ .prologue │ - .line 40 │ + .line 41 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ return-object v0 │ .end method │ │ .method public getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ .locals 1 │ │ .prologue │ - .line 150 │ + .line 151 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_0 │ │ - .line 151 │ + .line 152 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/DataSink;->getWriteableCallback()Lcom/koushikdutta/async/callback/WritableCallback; │ │ move-result-object v0 │ │ - .line 152 │ + .line 153 │ :goto_0 │ return-object v0 │ │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->writable:Lcom/koushikdutta/async/callback/WritableCallback; │ │ goto :goto_0 │ @@ -360,54 +360,54 @@ │ .prologue │ const-wide/16 v12, 0x0 │ │ const/4 v7, 0x0 │ │ const/4 v6, 0x1 │ │ - .line 75 │ + .line 76 │ iget-boolean v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ if-eqz v8, :cond_0 │ │ - .line 137 │ + .line 138 │ :goto_0 │ return-void │ │ - .line 78 │ + .line 79 │ :cond_0 │ iput-boolean v6, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ - .line 81 │ + .line 82 │ iget-object v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v9, "Transfer-Encoding" │ │ invoke-virtual {v8, v9}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 82 │ + .line 83 │ .local v2, "currentEncoding":Ljava/lang/String; │ const-string v8, "" │ │ invoke-virtual {v8, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_1 │ │ - .line 83 │ + .line 84 │ iget-object v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v9, "Transfer-Encoding" │ │ invoke-virtual {v8, v9}, Lcom/koushikdutta/async/http/Headers;->removeAll(Ljava/lang/String;)Ljava/util/List; │ │ - .line 84 │ + .line 85 │ :cond_1 │ const-string v8, "Chunked" │ │ invoke-virtual {v8, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v8 │ │ @@ -418,124 +418,127 @@ │ :cond_2 │ const-string v8, "close" │ │ iget-object v9, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v10, "Connection" │ │ + .line 86 │ invoke-virtual {v9, v10}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-virtual {v8, v9}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z │ │ move-result v8 │ │ if-nez v8, :cond_4 │ │ move v0, v6 │ │ - .line 86 │ + .line 87 │ .local v0, "canUseChunked":Z │ :goto_1 │ iget-wide v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ cmp-long v8, v8, v12 │ │ if-gez v8, :cond_3 │ │ - .line 87 │ + .line 88 │ iget-object v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v9, "Content-Length" │ │ invoke-virtual {v8, v9}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 88 │ + .line 89 │ .local v1, "contentLength":Ljava/lang/String; │ invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v8 │ │ if-nez v8, :cond_3 │ │ - .line 89 │ + .line 90 │ invoke-static {v1}, Ljava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v8 │ │ iput-wide v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ - .line 91 │ + .line 92 │ .end local v1 # "contentLength":Ljava/lang/String; │ :cond_3 │ iget-wide v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ cmp-long v8, v8, v12 │ │ if-gez v8, :cond_5 │ │ if-eqz v0, :cond_5 │ │ - .line 92 │ + .line 93 │ iget-object v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v9, "Transfer-Encoding" │ │ const-string v10, "Chunked" │ │ invoke-virtual {v8, v9, v10}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 93 │ + .line 94 │ const/4 v3, 0x1 │ │ - .line 99 │ + .line 100 │ .local v3, "isChunked":Z │ :goto_2 │ - const-string v8, "HTTP/1.1 %s %s" │ + sget-object v8, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v9, 0x2 │ + const-string v9, "HTTP/1.1 %s %s" │ │ - new-array v9, v9, [Ljava/lang/Object; │ + const/4 v10, 0x2 │ │ - iget v10, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ + new-array v10, v10, [Ljava/lang/Object; │ + │ + iget v11, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ - invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v11}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v10 │ + move-result-object v11 │ │ - aput-object v10, v9, v7 │ + aput-object v11, v10, v7 │ │ iget v7, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ invoke-static {v7}, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->getResponseCodeDescription(I)Ljava/lang/String; │ │ move-result-object v7 │ │ - aput-object v7, v9, v6 │ + aput-object v7, v10, v6 │ │ - invoke-static {v8, v9}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v8, v9, v10}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v5 │ │ - .line 100 │ + .line 101 │ .local v5, "statusLine":Ljava/lang/String; │ iget-object v6, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ invoke-virtual {v6, v5}, Lcom/koushikdutta/async/http/Headers;->toPrefixString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ - .line 102 │ + .line 103 │ .local v4, "rh":Ljava/lang/String; │ iget-object v6, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-virtual {v4}, Ljava/lang/String;->getBytes()[B │ │ move-result-object v7 │ │ @@ -550,43 +553,43 @@ │ .end local v0 # "canUseChunked":Z │ .end local v3 # "isChunked":Z │ .end local v4 # "rh":Ljava/lang/String; │ .end local v5 # "statusLine":Ljava/lang/String; │ :cond_4 │ move v0, v7 │ │ - .line 84 │ + .line 86 │ goto :goto_1 │ │ - .line 96 │ + .line 97 │ .restart local v0 # "canUseChunked":Z │ :cond_5 │ const/4 v3, 0x0 │ │ .restart local v3 # "isChunked":Z │ goto :goto_2 │ .end method │ │ .method public isOpen()Z │ .locals 1 │ │ .prologue │ - .line 365 │ + .line 366 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_0 │ │ - .line 366 │ + .line 367 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/DataSink;->isOpen()Z │ │ move-result v0 │ │ - .line 367 │ + .line 368 │ :goto_0 │ return v0 │ │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSocket:Lcom/koushikdutta/async/AsyncSocket; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/AsyncSocket;->isOpen()Z │ @@ -597,209 +600,209 @@ │ .end method │ │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 0 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 360 │ + .line 361 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ - .line 361 │ + .line 362 │ return-void │ .end method │ │ .method protected onEnd()V │ .locals 1 │ │ .prologue │ - .line 226 │ + .line 227 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mEnded:Z │ │ - .line 227 │ + .line 228 │ return-void │ .end method │ │ .method public proxy(Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ .locals 3 │ .param p1, "remoteResponse" # Lcom/koushikdutta/async/http/AsyncHttpResponse; │ │ .prologue │ - .line 322 │ + .line 323 │ invoke-interface {p1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->code()I │ │ move-result v0 │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 323 │ + .line 324 │ invoke-interface {p1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ const-string v1, "Transfer-Encoding" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->removeAll(Ljava/lang/String;)Ljava/util/List; │ │ - .line 324 │ + .line 325 │ invoke-interface {p1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ const-string v1, "Content-Encoding" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->removeAll(Ljava/lang/String;)Ljava/util/List; │ │ - .line 325 │ + .line 326 │ invoke-interface {p1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ const-string v1, "Connection" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->removeAll(Ljava/lang/String;)Ljava/util/List; │ │ - .line 326 │ + .line 327 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ invoke-interface {p1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/Headers;->addAll(Lcom/koushikdutta/async/http/Headers;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 328 │ + .line 329 │ invoke-interface {p1}, Lcom/koushikdutta/async/http/AsyncHttpResponse;->headers()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v0 │ │ const-string v1, "Connection" │ │ const-string v2, "close" │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 329 │ + .line 330 │ new-instance v0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4; │ │ invoke-direct {v0, p0, p1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$4;->(Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;Lcom/koushikdutta/async/http/AsyncHttpResponse;)V │ │ invoke-static {p1, p0, v0}, Lcom/koushikdutta/async/Util;->pump(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/DataSink;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 337 │ + .line 338 │ return-void │ .end method │ │ .method public redirect(Ljava/lang/String;)V │ .locals 2 │ .param p1, "location" # Ljava/lang/String; │ │ .prologue │ - .line 353 │ + .line 354 │ const/16 v0, 0x12e │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 354 │ + .line 355 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Location" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 355 │ + .line 356 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ - .line 356 │ + .line 357 │ return-void │ .end method │ │ .method protected report(Ljava/lang/Exception;)V │ .locals 0 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 230 │ + .line 231 │ return-void │ .end method │ │ .method public send(Ljava/lang/String;)V │ .locals 3 │ .param p1, "string" # Ljava/lang/String; │ │ .prologue │ - .line 235 │ + .line 236 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v2, "Content-Type" │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 236 │ + .line 237 │ .local v0, "contentType":Ljava/lang/String; │ if-nez v0, :cond_0 │ │ - .line 237 │ + .line 238 │ const-string v0, "text/html; charset=utf-8" │ │ - .line 238 │ + .line 239 │ :cond_0 │ invoke-virtual {p0, v0, p1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->send(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 239 │ + .line 240 │ return-void │ .end method │ │ .method public send(Ljava/lang/String;Ljava/lang/String;)V │ .locals 2 │ .param p1, "contentType" # Ljava/lang/String; │ .param p2, "string" # Ljava/lang/String; │ │ .prologue │ - .line 217 │ + .line 218 │ :try_start_0 │ const-string v1, "UTF-8" │ │ invoke-virtual {p2, v1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B │ │ move-result-object v1 │ │ invoke-virtual {p0, p1, v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->send(Ljava/lang/String;[B)V │ :try_end_0 │ .catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 222 │ + .line 223 │ return-void │ │ - .line 219 │ + .line 220 │ :catch_0 │ move-exception v0 │ │ - .line 220 │ + .line 221 │ .local v0, "e":Ljava/io/UnsupportedEncodingException; │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1, v0}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v1 │ .end method │ │ .method public send(Ljava/lang/String;[B)V │ .locals 4 │ .param p1, "contentType" # Ljava/lang/String; │ .param p2, "bytes" # [B │ │ .prologue │ - .line 201 │ + .line 202 │ sget-boolean v0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->$assertionsDisabled:Z │ │ if-nez v0, :cond_0 │ │ iget-wide v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ const-wide/16 v2, 0x0 │ @@ -810,110 +813,110 @@ │ │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ │ - .line 202 │ + .line 203 │ :cond_0 │ array-length v0, p2 │ │ int-to-long v0, v0 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ - .line 203 │ + .line 204 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Content-Length" │ │ array-length v2, p2 │ │ invoke-static {v2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 204 │ + .line 205 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Content-Type" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 206 │ + .line 207 │ new-instance v0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$2; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$2;->(Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;)V │ │ invoke-static {p0, p2, v0}, Lcom/koushikdutta/async/Util;->writeAll(Lcom/koushikdutta/async/DataSink;[BLcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 212 │ + .line 213 │ return-void │ .end method │ │ .method public send(Lorg/json/JSONObject;)V │ .locals 2 │ .param p1, "json" # Lorg/json/JSONObject; │ │ .prologue │ - .line 243 │ + .line 244 │ const-string v0, "application/json; charset=utf-8" │ │ invoke-virtual {p1}, Lorg/json/JSONObject;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {p0, v0, v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->send(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 244 │ + .line 245 │ return-void │ .end method │ │ .method public sendFile(Ljava/io/File;)V │ .locals 6 │ .param p1, "file" # Ljava/io/File; │ │ .prologue │ - .line 309 │ + .line 310 │ :try_start_0 │ iget-object v2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v3, "Content-Type" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ if-nez v2, :cond_0 │ │ - .line 310 │ + .line 311 │ iget-object v2, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v3, "Content-Type" │ │ invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-static {v4}, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->getContentType(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v2, v3, v4}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 311 │ + .line 312 │ :cond_0 │ new-instance v1, Ljava/io/FileInputStream; │ │ invoke-direct {v1, p1}, Ljava/io/FileInputStream;->(Ljava/io/File;)V │ │ - .line 312 │ + .line 313 │ .local v1, "fin":Ljava/io/FileInputStream; │ new-instance v2, Ljava/io/BufferedInputStream; │ │ const v3, 0xfa00 │ │ invoke-direct {v2, v1, v3}, Ljava/io/BufferedInputStream;->(Ljava/io/InputStream;I)V │ │ @@ -921,76 +924,76 @@ │ │ move-result-wide v4 │ │ invoke-virtual {p0, v2, v4, v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->sendStream(Ljava/io/InputStream;J)V │ :try_end_0 │ .catch Ljava/io/FileNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 318 │ + .line 319 │ .end local v1 # "fin":Ljava/io/FileInputStream; │ :goto_0 │ return-void │ │ - .line 314 │ + .line 315 │ :catch_0 │ move-exception v0 │ │ - .line 315 │ + .line 316 │ .local v0, "e":Ljava/io/FileNotFoundException; │ const/16 v2, 0x194 │ │ invoke-virtual {p0, v2}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 316 │ + .line 317 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ goto :goto_0 │ .end method │ │ .method public sendStream(Ljava/io/InputStream;J)V │ .locals 14 │ .param p1, "inputStream" # Ljava/io/InputStream; │ .param p2, "totalLength" # J │ │ .prologue │ - .line 248 │ + .line 249 │ const-wide/16 v6, 0x0 │ │ - .line 249 │ + .line 250 │ .local v6, "start":J │ const-wide/16 v8, 0x1 │ │ sub-long v2, p2, v8 │ │ - .line 251 │ + .line 252 │ .local v2, "end":J │ iget-object v5, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRequest:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ invoke-virtual {v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v5 │ │ const-string v8, "Range" │ │ invoke-virtual {v5, v8}, Lcom/koushikdutta/async/http/Headers;->get(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ - .line 252 │ + .line 253 │ .local v4, "range":Ljava/lang/String; │ if-eqz v4, :cond_4 │ │ - .line 253 │ + .line 254 │ const-string v5, "=" │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 254 │ + .line 255 │ .local v1, "parts":[Ljava/lang/String; │ array-length v5, v1 │ │ const/4 v8, 0x2 │ │ if-ne v5, v8, :cond_0 │ │ @@ -1002,97 +1005,97 @@ │ │ invoke-virtual {v5, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-nez v5, :cond_1 │ │ - .line 256 │ + .line 257 │ :cond_0 │ const/16 v5, 0x1a0 │ │ invoke-virtual {p0, v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 257 │ + .line 258 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ - .line 304 │ + .line 305 │ .end local v1 # "parts":[Ljava/lang/String; │ :goto_0 │ return-void │ │ - .line 261 │ + .line 262 │ .restart local v1 # "parts":[Ljava/lang/String; │ :cond_1 │ const/4 v5, 0x1 │ │ aget-object v5, v1, v5 │ │ const-string v8, "-" │ │ invoke-virtual {v5, v8}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 263 │ + .line 264 │ :try_start_0 │ array-length v5, v1 │ │ const/4 v8, 0x2 │ │ if-le v5, v8, :cond_2 │ │ - .line 264 │ + .line 265 │ new-instance v5, Lcom/koushikdutta/async/http/server/MalformedRangeException; │ │ invoke-direct {v5}, Lcom/koushikdutta/async/http/server/MalformedRangeException;->()V │ │ throw v5 │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 275 │ + .line 276 │ :catch_0 │ move-exception v0 │ │ - .line 276 │ + .line 277 │ .local v0, "e":Ljava/lang/Exception; │ const/16 v5, 0x1a0 │ │ invoke-virtual {p0, v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 277 │ + .line 278 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ goto :goto_0 │ │ - .line 265 │ + .line 266 │ .end local v0 # "e":Ljava/lang/Exception; │ :cond_2 │ const/4 v5, 0x0 │ │ :try_start_1 │ aget-object v5, v1, v5 │ │ invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v5 │ │ if-nez v5, :cond_3 │ │ - .line 266 │ + .line 267 │ const/4 v5, 0x0 │ │ aget-object v5, v1, v5 │ │ invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ │ move-result-wide v6 │ │ - .line 267 │ + .line 268 │ :cond_3 │ array-length v5, v1 │ │ const/4 v8, 0x2 │ │ if-ne v5, v8, :cond_5 │ │ @@ -1102,180 +1105,182 @@ │ │ invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v5 │ │ if-nez v5, :cond_5 │ │ - .line 268 │ + .line 269 │ const/4 v5, 0x1 │ │ aget-object v5, v1, v5 │ │ invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ │ move-result-wide v2 │ │ - .line 272 │ + .line 273 │ :goto_1 │ const/16 v5, 0xce │ │ invoke-virtual {p0, v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 273 │ + .line 274 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v5 │ │ const-string v8, "Content-Range" │ │ - const-string v9, "bytes %d-%d/%d" │ + sget-object v9, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v10, 0x3 │ + const-string v10, "bytes %d-%d/%d" │ │ - new-array v10, v10, [Ljava/lang/Object; │ + const/4 v11, 0x3 │ │ - const/4 v11, 0x0 │ + new-array v11, v11, [Ljava/lang/Object; │ + │ + const/4 v12, 0x0 │ │ invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ - move-result-object v12 │ + move-result-object v13 │ │ - aput-object v12, v10, v11 │ + aput-object v13, v11, v12 │ │ - const/4 v11, 0x1 │ + const/4 v12, 0x1 │ │ invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ - move-result-object v12 │ + move-result-object v13 │ │ - aput-object v12, v10, v11 │ + aput-object v13, v11, v12 │ │ - const/4 v11, 0x2 │ + const/4 v12, 0x2 │ │ invoke-static/range {p2 .. p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ - move-result-object v12 │ + move-result-object v13 │ │ - aput-object v12, v10, v11 │ + aput-object v13, v11, v12 │ │ - invoke-static {v9, v10}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v9, v10, v11}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-virtual {v5, v8, v9}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ :try_end_1 │ .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 │ │ - .line 282 │ + .line 283 │ .end local v1 # "parts":[Ljava/lang/String; │ :cond_4 │ :try_start_2 │ invoke-virtual {p1, v6, v7}, Ljava/io/InputStream;->skip(J)J │ │ move-result-wide v8 │ │ cmp-long v5, v6, v8 │ │ if-eqz v5, :cond_6 │ │ - .line 283 │ + .line 284 │ new-instance v5, Lcom/koushikdutta/async/http/server/StreamSkipException; │ │ const-string v8, "skip failed to skip requested amount" │ │ invoke-direct {v5, v8}, Lcom/koushikdutta/async/http/server/StreamSkipException;->(Ljava/lang/String;)V │ │ throw v5 │ :try_end_2 │ .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_1 │ │ - .line 300 │ + .line 301 │ :catch_1 │ move-exception v0 │ │ - .line 301 │ + .line 302 │ .restart local v0 # "e":Ljava/lang/Exception; │ const/16 v5, 0x1f4 │ │ invoke-virtual {p0, v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code(I)Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ - .line 302 │ + .line 303 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->end()V │ │ goto/16 :goto_0 │ │ - .line 270 │ + .line 271 │ .end local v0 # "e":Ljava/lang/Exception; │ .restart local v1 # "parts":[Ljava/lang/String; │ :cond_5 │ const-wide/16 v8, 0x1 │ │ sub-long v2, p2, v8 │ │ goto :goto_1 │ │ - .line 284 │ + .line 285 │ .end local v1 # "parts":[Ljava/lang/String; │ :cond_6 │ sub-long v8, v2, v6 │ │ const-wide/16 v10, 0x1 │ │ add-long/2addr v8, v10 │ │ :try_start_3 │ iput-wide v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ - .line 285 │ + .line 286 │ iget-object v5, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v8, "Content-Length" │ │ iget-wide v10, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ invoke-static {v10, v11}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-virtual {v5, v8, v9}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 286 │ + .line 287 │ iget-object v5, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v8, "Accept-Ranges" │ │ const-string v9, "bytes" │ │ invoke-virtual {v5, v8, v9}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 287 │ + .line 288 │ iget-object v5, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRequest:Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl; │ │ invoke-virtual {v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServerRequestImpl;->getMethod()Ljava/lang/String; │ │ move-result-object v5 │ │ const-string v8, "HEAD" │ │ invoke-virtual {v5, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_7 │ │ - .line 288 │ + .line 289 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->writeHead()V │ │ - .line 289 │ + .line 290 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->onEnd()V │ │ goto/16 :goto_0 │ │ - .line 292 │ + .line 293 │ :cond_7 │ iget-wide v8, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mContentLength:J │ │ new-instance v5, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3; │ │ invoke-direct {v5, p0, p1}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl$3;->(Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;Ljava/io/InputStream;)V │ │ @@ -1287,128 +1292,130 @@ │ .end method │ │ .method public setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 1 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 373 │ + .line 374 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_0 │ │ - .line 374 │ + .line 375 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0, p1}, Lcom/koushikdutta/async/DataSink;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 377 │ + .line 378 │ :goto_0 │ return-void │ │ - .line 376 │ + .line 377 │ :cond_0 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->closedCallback:Lcom/koushikdutta/async/callback/CompletedCallback; │ │ goto :goto_0 │ .end method │ │ .method public setContentType(Ljava/lang/String;)V │ .locals 2 │ .param p1, "contentType" # Ljava/lang/String; │ │ .prologue │ - .line 196 │ + .line 197 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ const-string v1, "Content-Type" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 197 │ + .line 198 │ return-void │ .end method │ │ .method public setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ .locals 1 │ .param p1, "handler" # Lcom/koushikdutta/async/callback/WritableCallback; │ │ .prologue │ - .line 142 │ + .line 143 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_0 │ │ - .line 143 │ + .line 144 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0, p1}, Lcom/koushikdutta/async/DataSink;->setWriteableCallback(Lcom/koushikdutta/async/callback/WritableCallback;)V │ │ - .line 146 │ + .line 147 │ :goto_0 │ return-void │ │ - .line 145 │ + .line 146 │ :cond_0 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->writable:Lcom/koushikdutta/async/callback/WritableCallback; │ │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ - .locals 5 │ + .locals 6 │ │ .prologue │ - .line 393 │ + .line 394 │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ if-nez v1, :cond_0 │ │ - .line 394 │ + .line 395 │ invoke-super {p0}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 396 │ + .line 397 │ :goto_0 │ return-object v1 │ │ - .line 395 │ + .line 396 │ :cond_0 │ - const-string v1, "HTTP/1.1 %s %s" │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v2, 0x2 │ + const-string v2, "HTTP/1.1 %s %s" │ │ - new-array v2, v2, [Ljava/lang/Object; │ + const/4 v3, 0x2 │ │ - const/4 v3, 0x0 │ + new-array v3, v3, [Ljava/lang/Object; │ │ - iget v4, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ + const/4 v4, 0x0 │ │ - invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + iget v5, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ - move-result-object v4 │ + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - aput-object v4, v2, v3 │ + move-result-object v5 │ │ - const/4 v3, 0x1 │ + aput-object v5, v3, v4 │ │ - iget v4, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ + const/4 v4, 0x1 │ │ - invoke-static {v4}, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->getResponseCodeDescription(I)Ljava/lang/String; │ + iget v5, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->code:I │ │ - move-result-object v4 │ + invoke-static {v5}, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->getResponseCodeDescription(I)Ljava/lang/String; │ + │ + move-result-object v5 │ │ - aput-object v4, v2, v3 │ + aput-object v5, v3, v4 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 396 │ + .line 397 │ .local v0, "statusLine":Ljava/lang/String; │ iget-object v1, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mRawHeaders:Lcom/koushikdutta/async/http/Headers; │ │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/http/Headers;->toPrefixString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ @@ -1416,68 +1423,68 @@ │ .end method │ │ .method public write(Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 1 │ .param p1, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 55 │ + .line 56 │ sget-boolean v0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->$assertionsDisabled:Z │ │ if-nez v0, :cond_0 │ │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mEnded:Z │ │ if-eqz v0, :cond_0 │ │ new-instance v0, Ljava/lang/AssertionError; │ │ invoke-direct {v0}, Ljava/lang/AssertionError;->()V │ │ throw v0 │ │ - .line 57 │ + .line 58 │ :cond_0 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->headWritten:Z │ │ if-nez v0, :cond_1 │ │ - .line 58 │ + .line 59 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->initFirstWrite()V │ │ - .line 61 │ + .line 62 │ :cond_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v0 │ │ if-nez v0, :cond_3 │ │ - .line 70 │ + .line 71 │ :cond_2 │ :goto_0 │ return-void │ │ - .line 65 │ + .line 66 │ :cond_3 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ if-eqz v0, :cond_2 │ │ - .line 69 │ + .line 70 │ iget-object v0, p0, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->mSink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0, p1}, Lcom/koushikdutta/async/DataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ goto :goto_0 │ .end method │ │ .method public writeHead()V │ .locals 0 │ │ .prologue │ - .line 191 │ + .line 192 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/server/AsyncHttpServerResponseImpl;->initFirstWrite()V │ │ - .line 192 │ + .line 193 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/server/AsyncProxyServer$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$response:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/server/AsyncProxyServer;Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/server/AsyncProxyServer; │ │ .prologue │ .line 50 │ iput-object p1, p0, Lcom/koushikdutta/async/http/server/AsyncProxyServer$1;->this$0:Lcom/koushikdutta/async/http/server/AsyncProxyServer; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/server/AsyncProxyServer$1;->val$response:Lcom/koushikdutta/async/http/server/AsyncHttpServerResponse; ├── smali/com/koushikdutta/async/http/socketio/EventEmitter$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$callback:Lcom/koushikdutta/async/http/socketio/EventCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/EventEmitter;Lcom/koushikdutta/async/http/socketio/EventCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/EventEmitter; │ │ .prologue │ .line 36 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/EventEmitter$1;->this$0:Lcom/koushikdutta/async/http/socketio/EventEmitter; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/EventEmitter$1;->val$callback:Lcom/koushikdutta/async/http/socketio/EventCallback; ├── smali/com/koushikdutta/async/http/socketio/SocketIOClient$1$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOClient$1; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOClient$1;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOClient$1; │ │ .prologue │ .line 91 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOClient$1$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOClient$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$10.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$error:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 328 │ + .line 331 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$10;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$10;->val$error:Ljava/lang/String; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,23 +42,23 @@ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 2 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 331 │ + .line 334 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->errorCallback:Lcom/koushikdutta/async/http/socketio/ErrorCallback; │ │ - .line 332 │ + .line 335 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/ErrorCallback; │ if-eqz v0, :cond_0 │ │ - .line 333 │ + .line 336 │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$10;->val$error:Ljava/lang/String; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/socketio/ErrorCallback;->onError(Ljava/lang/String;)V │ │ - .line 334 │ + .line 337 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$11$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$e:Ljava/lang/Exception; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;Ljava/lang/Exception;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11; │ │ .prologue │ - .line 353 │ + .line 356 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11$1;->this$1:Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11$1;->val$e:Ljava/lang/Exception; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,23 +42,23 @@ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 2 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 356 │ + .line 359 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->exceptionCallback:Lcom/koushikdutta/async/http/socketio/ExceptionCallback; │ │ - .line 357 │ + .line 360 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/ExceptionCallback; │ if-eqz v0, :cond_0 │ │ - .line 358 │ + .line 361 │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11$1;->val$e:Ljava/lang/Exception; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/socketio/ExceptionCallback;->onException(Ljava/lang/Exception;)V │ │ - .line 359 │ + .line 362 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$11.smali │ @@ -24,43 +24,44 @@ │ │ .field final synthetic val$messageId:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 344 │ + .line 347 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->val$endpoint:Ljava/lang/String; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->val$messageId:Ljava/lang/String; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public acknowledge(Lorg/json/JSONArray;)V │ - .locals 7 │ + .locals 8 │ .param p1, "arguments" # Lorg/json/JSONArray; │ │ .prologue │ - .line 347 │ + .line 350 │ const-string v0, "" │ │ - .line 348 │ + .line 351 │ .local v0, "data":Ljava/lang/String; │ if-eqz p1, :cond_0 │ │ - .line 349 │ + .line 352 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ @@ -79,68 +80,70 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 350 │ + .line 353 │ :cond_0 │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v2, v3, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ - .line 351 │ + .line 354 │ .local v2, "transport":Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ if-nez v2, :cond_1 │ │ - .line 352 │ + .line 355 │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOException; │ │ const-string v3, "not connected to server" │ │ invoke-direct {v1, v3}, Lcom/koushikdutta/async/http/socketio/SocketIOException;->(Ljava/lang/String;)V │ │ - .line 353 │ + .line 356 │ .local v1, "e":Ljava/lang/Exception; │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->val$endpoint:Ljava/lang/String; │ │ new-instance v5, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11$1; │ │ invoke-direct {v5, p0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11$1;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;Ljava/lang/Exception;)V │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ invoke-static {v3, v4, v5}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$200(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 364 │ + .line 367 │ .end local v1 # "e":Ljava/lang/Exception; │ :goto_0 │ return-void │ │ - .line 363 │ + .line 366 │ :cond_1 │ - const-string v3, "6:::%s%s" │ + sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v4, "6:::%s%s" │ │ - const/4 v4, 0x2 │ + const/4 v5, 0x2 │ │ - new-array v4, v4, [Ljava/lang/Object; │ + new-array v5, v5, [Ljava/lang/Object; │ │ - const/4 v5, 0x0 │ + const/4 v6, 0x0 │ │ - iget-object v6, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->val$messageId:Ljava/lang/String; │ + iget-object v7, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->val$messageId:Ljava/lang/String; │ │ - aput-object v6, v4, v5 │ + aput-object v7, v5, v6 │ │ - const/4 v5, 0x1 │ + const/4 v6, 0x1 │ │ - aput-object v0, v4, v5 │ + aput-object v0, v5, v6 │ │ - invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v3, v4, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-interface {v2, v3}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->send(Ljava/lang/String;)V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$12.smali │ @@ -20,40 +20,41 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 372 │ + .line 375 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$12;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 375 │ + .line 378 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$12;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v1, 0x0 │ │ iput-object v1, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ - .line 376 │ + .line 379 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$12;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportDisconnect(Ljava/lang/Exception;)V │ invoke-static {v0, p1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$000(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ │ - .line 377 │ + .line 380 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$13.smali │ @@ -20,174 +20,175 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 380 │ + .line 383 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onStringAvailable(Ljava/lang/String;)V │ .locals 18 │ .param p1, "message" # Ljava/lang/String; │ │ .prologue │ - .line 385 │ + .line 388 │ :try_start_0 │ const-string v12, ":" │ │ const/4 v13, 0x4 │ │ move-object/from16 v0, p1 │ │ invoke-virtual {v0, v12, v13}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; │ │ move-result-object v11 │ │ - .line 386 │ + .line 389 │ .local v11, "parts":[Ljava/lang/String; │ const/4 v12, 0x0 │ │ aget-object v12, v11, v12 │ │ invoke-static {v12}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v5 │ │ - .line 387 │ + .line 390 │ .local v5, "code":I │ packed-switch v5, :pswitch_data_0 │ │ - .line 440 │ + .line 443 │ new-instance v12, Lcom/koushikdutta/async/http/socketio/SocketIOException; │ │ const-string v13, "unknown code" │ │ invoke-direct {v12, v13}, Lcom/koushikdutta/async/http/socketio/SocketIOException;->(Ljava/lang/String;)V │ │ throw v12 │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 443 │ + .line 446 │ .end local v5 # "code":I │ .end local v11 # "parts":[Ljava/lang/String; │ :catch_0 │ move-exception v9 │ │ - .line 444 │ + .line 447 │ .local v9, "ex":Ljava/lang/Exception; │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v12, v12, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ const/4 v13, 0x0 │ │ invoke-interface {v12, v13}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 445 │ + .line 448 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v12, v12, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ invoke-interface {v12}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->disconnect()V │ │ - .line 446 │ + .line 449 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v13, 0x0 │ │ iput-object v13, v12, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ - .line 447 │ + .line 450 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportDisconnect(Ljava/lang/Exception;)V │ invoke-static {v12, v9}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$000(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ │ - .line 449 │ + .line 452 │ .end local v9 # "ex":Ljava/lang/Exception; │ :cond_0 │ :goto_0 │ :pswitch_0 │ return-void │ │ - .line 390 │ + .line 393 │ .restart local v5 # "code":I │ .restart local v11 # "parts":[Ljava/lang/String; │ :pswitch_1 │ :try_start_1 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v12, v12, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ invoke-interface {v12}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->disconnect()V │ │ - .line 391 │ + .line 394 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v13, 0x0 │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportDisconnect(Ljava/lang/Exception;)V │ invoke-static {v12, v13}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$000(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ │ goto :goto_0 │ │ - .line 395 │ + .line 398 │ :pswitch_2 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v13, 0x2 │ │ aget-object v13, v11, v13 │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportConnect(Ljava/lang/String;)V │ invoke-static {v12, v13}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$300(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;)V │ │ goto :goto_0 │ │ - .line 399 │ + .line 402 │ :pswitch_3 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v12, v12, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ const-string v13, "2::" │ │ invoke-interface {v12, v13}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->send(Ljava/lang/String;)V │ │ goto :goto_0 │ │ - .line 403 │ + .line 406 │ :pswitch_4 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v13, 0x2 │ │ @@ -215,27 +216,27 @@ │ move-result-object v15 │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportString(Ljava/lang/String;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ invoke-static {v12, v13, v14, v15}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$500(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ goto :goto_0 │ │ - .line 408 │ + .line 411 │ :pswitch_5 │ const/4 v12, 0x3 │ │ aget-object v7, v11, v12 │ │ - .line 409 │ + .line 412 │ .local v7, "dataString":Ljava/lang/String; │ new-instance v10, Lorg/json/JSONObject; │ │ invoke-direct {v10, v7}, Lorg/json/JSONObject;->(Ljava/lang/String;)V │ │ - .line 410 │ + .line 413 │ .local v10, "jsonMessage":Lorg/json/JSONObject; │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v13, 0x2 │ │ @@ -259,45 +260,45 @@ │ move-result-object v14 │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportJson(Ljava/lang/String;Lorg/json/JSONObject;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ invoke-static {v12, v13, v10, v14}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$600(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Lorg/json/JSONObject;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ goto :goto_0 │ │ - .line 414 │ + .line 417 │ .end local v7 # "dataString":Ljava/lang/String; │ .end local v10 # "jsonMessage":Lorg/json/JSONObject; │ :pswitch_6 │ const/4 v12, 0x3 │ │ aget-object v7, v11, v12 │ │ - .line 415 │ + .line 418 │ .restart local v7 # "dataString":Ljava/lang/String; │ new-instance v6, Lorg/json/JSONObject; │ │ invoke-direct {v6, v7}, Lorg/json/JSONObject;->(Ljava/lang/String;)V │ │ - .line 416 │ + .line 419 │ .local v6, "data":Lorg/json/JSONObject; │ const-string v12, "name" │ │ invoke-virtual {v6, v12}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v8 │ │ - .line 417 │ + .line 420 │ .local v8, "event":Ljava/lang/String; │ const-string v12, "args" │ │ invoke-virtual {v6, v12}, Lorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray; │ │ move-result-object v3 │ │ - .line 418 │ + .line 421 │ .local v3, "args":Lorg/json/JSONArray; │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v13, 0x2 │ │ @@ -321,15 +322,15 @@ │ move-result-object v14 │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportEvent(Ljava/lang/String;Ljava/lang/String;Lorg/json/JSONArray;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ invoke-static {v12, v13, v8, v3, v14}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$700(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Ljava/lang/String;Lorg/json/JSONArray;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ goto/16 :goto_0 │ │ - .line 423 │ + .line 426 │ .end local v3 # "args":Lorg/json/JSONArray; │ .end local v6 # "data":Lorg/json/JSONObject; │ .end local v7 # "dataString":Ljava/lang/String; │ .end local v8 # "event":Ljava/lang/String; │ :pswitch_7 │ const/4 v12, 0x3 │ │ @@ -339,15 +340,15 @@ │ │ const/4 v14, 0x2 │ │ invoke-virtual {v12, v13, v14}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 424 │ + .line 427 │ .local v2, "ackParts":[Ljava/lang/String; │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v12, v12, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->acknowledges:Ljava/util/Hashtable; │ │ @@ -357,47 +358,47 @@ │ │ invoke-virtual {v12, v13}, Ljava/util/Hashtable;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ - .line 425 │ + .line 428 │ .local v1, "ack":Lcom/koushikdutta/async/http/socketio/Acknowledge; │ if-eqz v1, :cond_0 │ │ - .line 427 │ + .line 430 │ const/4 v4, 0x0 │ │ - .line 428 │ + .line 431 │ .local v4, "arguments":Lorg/json/JSONArray; │ array-length v12, v2 │ │ const/4 v13, 0x2 │ │ if-ne v12, v13, :cond_1 │ │ - .line 429 │ + .line 432 │ new-instance v4, Lorg/json/JSONArray; │ │ .end local v4 # "arguments":Lorg/json/JSONArray; │ const/4 v12, 0x1 │ │ aget-object v12, v2, v12 │ │ invoke-direct {v4, v12}, Lorg/json/JSONArray;->(Ljava/lang/String;)V │ │ - .line 430 │ + .line 433 │ .restart local v4 # "arguments":Lorg/json/JSONArray; │ :cond_1 │ invoke-interface {v1, v4}, Lcom/koushikdutta/async/http/socketio/Acknowledge;->acknowledge(Lorg/json/JSONArray;)V │ │ goto/16 :goto_0 │ │ - .line 434 │ + .line 437 │ .end local v1 # "ack":Lcom/koushikdutta/async/http/socketio/Acknowledge; │ .end local v2 # "ackParts":[Ljava/lang/String; │ .end local v4 # "arguments":Lorg/json/JSONArray; │ :pswitch_8 │ move-object/from16 v0, p0 │ │ iget-object v12, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ @@ -413,15 +414,15 @@ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportError(Ljava/lang/String;Ljava/lang/String;)V │ invoke-static {v12, v13, v14}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$800(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Ljava/lang/String;)V │ :try_end_1 │ .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 │ │ goto/16 :goto_0 │ │ - .line 387 │ + .line 390 │ :pswitch_data_0 │ .packed-switch 0x0 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 │ :pswitch_4 │ :pswitch_5 ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$14.smali │ @@ -20,45 +20,46 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 453 │ + .line 456 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$14;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 1 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 456 │ + .line 459 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 460 │ + .line 463 │ :goto_0 │ return-void │ │ - .line 459 │ + .line 462 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$14;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->connect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$1.smali │ @@ -30,17 +30,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 154 │ + .line 157 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -48,62 +49,62 @@ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;)V │ .locals 4 │ .param p1, "e" # Ljava/lang/Exception; │ .param p2, "result" # Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ .prologue │ - .line 157 │ + .line 160 │ if-eqz p1, :cond_0 │ │ - .line 158 │ + .line 161 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reportDisconnect(Ljava/lang/Exception;)V │ invoke-static {v0, p1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$000(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ │ - .line 165 │ + .line 168 │ :goto_0 │ return-void │ │ - .line 162 │ + .line 165 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->config:Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config; │ │ iget-wide v2, v1, Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config;->reconnectDelay:J │ │ iput-wide v2, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnectDelay:J │ │ - .line 163 │ + .line 166 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ - .line 164 │ + .line 167 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ # invokes: Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->attach()V │ invoke-static {v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->access$100(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Exception; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 154 │ + .line 157 │ check-cast p2, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;)V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$2$1.smali │ @@ -34,17 +34,18 @@ │ │ .field final synthetic val$transport:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;Lcom/koushikdutta/async/future/SimpleFuture;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2; │ │ .prologue │ - .line 131 │ + .line 134 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->this$1:Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->val$transport:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->val$sessionId:Ljava/lang/String; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -56,27 +57,27 @@ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/WebSocket;)V │ .locals 3 │ .param p1, "e" # Ljava/lang/Exception; │ .param p2, "result" # Lcom/koushikdutta/async/http/WebSocket; │ │ .prologue │ - .line 134 │ + .line 137 │ if-eqz p1, :cond_0 │ │ - .line 135 │ + .line 138 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->val$transport:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;)Z │ │ - .line 139 │ + .line 142 │ :goto_0 │ return-void │ │ - .line 138 │ + .line 141 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->val$transport:Lcom/koushikdutta/async/future/SimpleFuture; │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/transport/WebSocketTransport; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->val$sessionId:Ljava/lang/String; │ │ @@ -89,15 +90,15 @@ │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Exception; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 131 │ + .line 134 │ check-cast p2, Lcom/koushikdutta/async/http/WebSocket; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/WebSocket;)V │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$2.smali │ @@ -27,17 +27,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 110 │ + .line 113 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V │ │ return-void │ .end method │ │ @@ -49,15 +50,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 110 │ + .line 113 │ check-cast p1, Ljava/lang/String; │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->transform(Ljava/lang/String;)V │ │ return-void │ .end method │ @@ -74,93 +75,93 @@ │ .prologue │ const/4 v12, 0x0 │ │ const/4 v11, 0x1 │ │ const/4 v10, 0x0 │ │ - .line 113 │ + .line 116 │ const-string v8, ":" │ │ invoke-virtual {p1, v8}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 114 │ + .line 117 │ .local v0, "parts":[Ljava/lang/String; │ aget-object v1, v0, v10 │ │ - .line 115 │ + .line 118 │ .local v1, "sessionId":Ljava/lang/String; │ const-string v8, "" │ │ aget-object v9, v0, v11 │ │ invoke-virtual {v8, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v8 │ │ if-nez v8, :cond_0 │ │ - .line 116 │ + .line 119 │ iget-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ aget-object v9, v0, v11 │ │ invoke-static {v9}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v9 │ │ div-int/lit8 v9, v9, 0x2 │ │ mul-int/lit16 v9, v9, 0x3e8 │ │ iput v9, v8, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->heartbeat:I │ │ - .line 120 │ + .line 123 │ :goto_0 │ const/4 v8, 0x3 │ │ aget-object v6, v0, v8 │ │ - .line 121 │ + .line 124 │ .local v6, "transportsLine":Ljava/lang/String; │ const-string v8, "," │ │ invoke-virtual {v6, v8}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v5 │ │ - .line 122 │ + .line 125 │ .local v5, "transports":[Ljava/lang/String; │ new-instance v3, Ljava/util/HashSet; │ │ invoke-static {v5}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; │ │ move-result-object v8 │ │ invoke-direct {v3, v8}, Ljava/util/HashSet;->(Ljava/util/Collection;)V │ │ - .line 123 │ + .line 126 │ .local v3, "set":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ new-instance v4, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v4}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 125 │ + .line 128 │ .local v4, "transport":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ const-string v8, "websocket" │ │ invoke-virtual {v3, v8}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_1 │ │ - .line 126 │ + .line 129 │ iget-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v8, v8, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ invoke-virtual {v8}, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->getUri()Landroid/net/Uri; │ │ move-result-object v8 │ @@ -175,81 +176,84 @@ │ │ invoke-virtual {v8}, Landroid/net/Uri;->buildUpon()Landroid/net/Uri$Builder; │ │ move-result-object v8 │ │ const-string v9, "websocket" │ │ + .line 130 │ invoke-virtual {v8, v9}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v8 │ │ invoke-virtual {v8, v1}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v8 │ │ + .line 131 │ invoke-virtual {v8}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 130 │ + .line 133 │ .local v2, "sessionUrl":Ljava/lang/String; │ iget-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v8, v8, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->httpClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-virtual {v8, v2, v12, v12}, Lcom/koushikdutta/async/http/AsyncHttpClient;->websocket(Ljava/lang/String;Ljava/lang/String;Lcom/koushikdutta/async/http/AsyncHttpClient$WebSocketConnectCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v8 │ │ new-instance v9, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1; │ │ invoke-direct {v9, p0, v4, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2$1;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;Lcom/koushikdutta/async/future/SimpleFuture;Ljava/lang/String;)V │ │ + .line 134 │ invoke-interface {v8, v9}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ - .line 151 │ + .line 154 │ :goto_1 │ invoke-virtual {p0, v4}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->setComplete(Lcom/koushikdutta/async/future/Future;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 152 │ + .line 155 │ return-void │ │ - .line 118 │ + .line 121 │ .end local v2 # "sessionUrl":Ljava/lang/String; │ .end local v3 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ .end local v4 # "transport":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ .end local v5 # "transports":[Ljava/lang/String; │ .end local v6 # "transportsLine":Ljava/lang/String; │ :cond_0 │ iget-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput v10, v8, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->heartbeat:I │ │ goto :goto_0 │ │ - .line 141 │ + .line 144 │ .restart local v3 # "set":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ .restart local v4 # "transport":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ .restart local v5 # "transports":[Ljava/lang/String; │ .restart local v6 # "transportsLine":Ljava/lang/String; │ :cond_1 │ const-string v8, "xhr-polling" │ │ invoke-virtual {v3, v8}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_2 │ │ - .line 142 │ + .line 145 │ iget-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v8, v8, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ invoke-virtual {v8}, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->getUri()Landroid/net/Uri; │ │ move-result-object v8 │ @@ -264,47 +268,49 @@ │ │ invoke-virtual {v8}, Landroid/net/Uri;->buildUpon()Landroid/net/Uri$Builder; │ │ move-result-object v8 │ │ const-string v9, "xhr-polling" │ │ + .line 146 │ invoke-virtual {v8, v9}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v8 │ │ invoke-virtual {v8, v1}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v8 │ │ + .line 147 │ invoke-virtual {v8}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 145 │ + .line 148 │ .restart local v2 # "sessionUrl":Ljava/lang/String; │ new-instance v7, Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ iget-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iget-object v8, v8, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->httpClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-direct {v7, v8, v2, v1}, Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport;->(Lcom/koushikdutta/async/http/AsyncHttpClient;Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 146 │ + .line 149 │ .local v7, "xhrPolling":Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ invoke-virtual {v4, v7}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ - .line 148 │ + .line 151 │ .end local v2 # "sessionUrl":Ljava/lang/String; │ .end local v7 # "xhrPolling":Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ :cond_2 │ new-instance v8, Lcom/koushikdutta/async/http/socketio/SocketIOException; │ │ const-string v9, "transport not supported" ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$3.smali │ @@ -16,99 +16,75 @@ │ name = null │ .end annotation │ │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ -.field final synthetic val$ts:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;)V │ +.method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 174 │ + .line 176 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ - iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->val$ts:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 4 │ │ .prologue │ - .line 177 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ - │ - iget v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->heartbeat:I │ - │ - if-lez v0, :cond_0 │ + .line 179 │ + iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->val$ts:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + iget-object v0, v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ + .line 181 │ + .local v0, "ts":Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ - iget-object v1, v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ - if-ne v0, v1, :cond_0 │ + iget v1, v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->heartbeat:I │ │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->val$ts:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + if-lez v1, :cond_0 │ │ if-eqz v0, :cond_0 │ │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->val$ts:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ invoke-interface {v0}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->isConnected()Z │ │ - move-result v0 │ + move-result v1 │ │ - if-nez v0, :cond_1 │ + if-nez v1, :cond_1 │ │ - .line 184 │ + .line 186 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 180 │ + .line 184 │ :cond_1 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ - │ - iget-object v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ const-string v1, "2:::" │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->send(Ljava/lang/String;)V │ │ - .line 182 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ - │ - iget-object v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ - if-eqz v0, :cond_0 │ - │ - .line 183 │ - iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ - │ - iget-object v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ + .line 185 │ invoke-interface {v0}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ + iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ - iget v1, v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->heartbeat:I │ + iget v2, v2, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->heartbeat:I │ │ - int-to-long v2, v1 │ + int-to-long v2, v2 │ │ - invoke-virtual {v0, p0, v2, v3}, Lcom/koushikdutta/async/AsyncServer;->postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ + invoke-virtual {v1, p0, v2, v3}, Lcom/koushikdutta/async/AsyncServer;->postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$4.smali │ @@ -20,33 +20,34 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 218 │ + .line 221 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$4;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 2 │ │ .prologue │ - .line 221 │ + .line 224 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$4;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ const/4 v1, 0x0 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnect(Lcom/koushikdutta/async/future/DependentCancellable;)V │ │ - .line 222 │ + .line 225 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$6.smali │ @@ -20,85 +20,86 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 269 │ + .line 272 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$6;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 2 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 272 │ + .line 275 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->isConnected()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ - .line 292 │ + .line 295 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 274 │ + .line 277 │ :cond_1 │ iget-boolean v1, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->connected:Z │ │ if-nez v1, :cond_2 │ │ - .line 276 │ + .line 279 │ const/4 v1, 0x1 │ │ iput-boolean v1, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->connected:Z │ │ - .line 277 │ + .line 280 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->connectCallback:Lcom/koushikdutta/async/http/socketio/ConnectCallback; │ │ - .line 278 │ + .line 281 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/ConnectCallback; │ if-eqz v0, :cond_0 │ │ - .line 279 │ + .line 282 │ const/4 v1, 0x0 │ │ invoke-interface {v0, v1, p1}, Lcom/koushikdutta/async/http/socketio/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ │ goto :goto_0 │ │ - .line 281 │ + .line 284 │ .end local v0 # "callback":Lcom/koushikdutta/async/http/socketio/ConnectCallback; │ :cond_2 │ iget-boolean v1, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->disconnected:Z │ │ if-eqz v1, :cond_0 │ │ - .line 283 │ + .line 286 │ const/4 v1, 0x0 │ │ iput-boolean v1, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->disconnected:Z │ │ - .line 284 │ + .line 287 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->reconnectCallback:Lcom/koushikdutta/async/http/socketio/ReconnectCallback; │ │ - .line 285 │ + .line 288 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/ReconnectCallback; │ if-eqz v0, :cond_0 │ │ - .line 286 │ + .line 289 │ invoke-interface {v0}, Lcom/koushikdutta/async/http/socketio/ReconnectCallback;->onReconnect()V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$5.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$ex:Ljava/lang/Exception; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 247 │ + .line 250 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$5;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$5;->val$ex:Ljava/lang/Exception; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -41,52 +42,52 @@ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 3 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 250 │ + .line 253 │ iget-boolean v2, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->connected:Z │ │ if-eqz v2, :cond_1 │ │ - .line 251 │ + .line 254 │ const/4 v2, 0x1 │ │ iput-boolean v2, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->disconnected:Z │ │ - .line 252 │ + .line 255 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->getDisconnectCallback()Lcom/koushikdutta/async/http/socketio/DisconnectCallback; │ │ move-result-object v1 │ │ - .line 253 │ + .line 256 │ .local v1, "closed":Lcom/koushikdutta/async/http/socketio/DisconnectCallback; │ if-eqz v1, :cond_0 │ │ - .line 254 │ + .line 257 │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$5;->val$ex:Ljava/lang/Exception; │ │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/http/socketio/DisconnectCallback;->onDisconnect(Ljava/lang/Exception;)V │ │ - .line 262 │ + .line 265 │ .end local v1 # "closed":Lcom/koushikdutta/async/http/socketio/DisconnectCallback; │ :cond_0 │ :goto_0 │ return-void │ │ - .line 258 │ + .line 261 │ :cond_1 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->connectCallback:Lcom/koushikdutta/async/http/socketio/ConnectCallback; │ │ - .line 259 │ + .line 262 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/ConnectCallback; │ if-eqz v0, :cond_0 │ │ - .line 260 │ + .line 263 │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$5;->val$ex:Ljava/lang/Exception; │ │ invoke-interface {v0, v2, p1}, Lcom/koushikdutta/async/http/socketio/ConnectCallback;->onConnectCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$7.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$jsonMessage:Lorg/json/JSONObject; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Lorg/json/JSONObject;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 297 │ + .line 300 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7;->val$jsonMessage:Lorg/json/JSONObject; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7;->val$acknowledge:Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -45,25 +46,25 @@ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 3 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 300 │ + .line 303 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->jsonCallback:Lcom/koushikdutta/async/http/socketio/JSONCallback; │ │ - .line 301 │ + .line 304 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/JSONCallback; │ if-eqz v0, :cond_0 │ │ - .line 302 │ + .line 305 │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7;->val$jsonMessage:Lorg/json/JSONObject; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7;->val$acknowledge:Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ invoke-interface {v0, v1, v2}, Lcom/koushikdutta/async/http/socketio/JSONCallback;->onJSON(Lorg/json/JSONObject;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ - .line 303 │ + .line 306 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$9.smali │ @@ -26,17 +26,18 @@ │ │ .field final synthetic val$event:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Lorg/json/JSONArray;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 319 │ + .line 322 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->val$event:Ljava/lang/String; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->val$arguments:Lorg/json/JSONArray; │ │ iput-object p4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->val$acknowledge:Lcom/koushikdutta/async/http/socketio/Acknowledge; │ @@ -49,19 +50,19 @@ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 3 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 322 │ + .line 325 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->val$event:Ljava/lang/String; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->val$arguments:Lorg/json/JSONArray; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->val$acknowledge:Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ invoke-virtual {p1, v0, v1, v2}, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->onEvent(Ljava/lang/String;Lorg/json/JSONArray;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ - .line 323 │ + .line 326 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection$8.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$string:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ .prologue │ - .line 308 │ + .line 311 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8;->this$0:Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8;->val$string:Ljava/lang/String; │ │ iput-object p3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8;->val$acknowledge:Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -45,25 +46,25 @@ │ │ # virtual methods │ .method public onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ .locals 3 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 311 │ + .line 314 │ iget-object v0, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->stringCallback:Lcom/koushikdutta/async/http/socketio/StringCallback; │ │ - .line 312 │ + .line 315 │ .local v0, "callback":Lcom/koushikdutta/async/http/socketio/StringCallback; │ if-eqz v0, :cond_0 │ │ - .line 313 │ + .line 316 │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8;->val$string:Ljava/lang/String; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8;->val$acknowledge:Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ invoke-interface {v0, v1, v2}, Lcom/koushikdutta/async/http/socketio/StringCallback;->onString(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ - .line 314 │ + .line 317 │ :cond_0 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/SocketIOConnection.smali │ @@ -53,47 +53,47 @@ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/AsyncHttpClient;Lcom/koushikdutta/async/http/socketio/SocketIORequest;)V │ .locals 2 │ .param p1, "httpClient" # Lcom/koushikdutta/async/http/AsyncHttpClient; │ .param p2, "request" # Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ .prologue │ - .line 38 │ + .line 39 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 34 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ - .line 48 │ + .line 49 │ new-instance v0, Ljava/util/Hashtable; │ │ invoke-direct {v0}, Ljava/util/Hashtable;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->acknowledges:Ljava/util/Hashtable; │ │ - .line 39 │ + .line 40 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->httpClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ - .line 40 │ + .line 41 │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ - .line 41 │ + .line 42 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->config:Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config; │ │ iget-wide v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config;->reconnectDelay:J │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnectDelay:J │ │ - .line 42 │ + .line 43 │ return-void │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection; │ .param p1, "x1" # Ljava/lang/Exception; │ @@ -214,122 +214,122 @@ │ │ .method private acknowledge(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/socketio/Acknowledge; │ .locals 3 │ .param p1, "_messageId" # Ljava/lang/String; │ .param p2, "endpoint" # Ljava/lang/String; │ │ .prologue │ - .line 339 │ + .line 342 │ invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 340 │ + .line 343 │ const/4 v1, 0x0 │ │ - .line 344 │ + .line 347 │ :goto_0 │ return-object v1 │ │ - .line 342 │ + .line 345 │ :cond_0 │ const-string v1, "\\+$" │ │ const-string v2, "" │ │ invoke-virtual {p1, v1, v2}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 344 │ + .line 347 │ .local v0, "messageId":Ljava/lang/String; │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11; │ │ invoke-direct {v1, p0, p2, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$11;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ .method private attach()V │ .locals 2 │ │ .prologue │ - .line 369 │ + .line 372 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->heartbeats()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 370 │ + .line 373 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->setupHeartbeat()V │ │ - .line 372 │ + .line 375 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$12; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$12;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 380 │ + .line 383 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$13;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setStringCallback(Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport$StringCallback;)V │ │ - .line 453 │ + .line 456 │ const/4 v0, 0x0 │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$14; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$14;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 462 │ + .line 465 │ return-void │ .end method │ │ .method private delayReconnect()V │ .locals 8 │ │ .prologue │ - .line 202 │ + .line 205 │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ if-nez v3, :cond_0 │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ invoke-virtual {v3}, Ljava/util/ArrayList;->size()I │ │ move-result v3 │ │ if-nez v3, :cond_1 │ │ - .line 229 │ + .line 232 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 207 │ + .line 210 │ :cond_1 │ const/4 v1, 0x0 │ │ - .line 208 │ + .line 211 │ .local v1, "disconnected":Z │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v2 │ │ @@ -343,70 +343,72 @@ │ │ invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ - .line 209 │ + .line 212 │ .local v0, "client":Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ iget-boolean v3, v0, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->disconnected:Z │ │ if-eqz v3, :cond_2 │ │ - .line 210 │ + .line 213 │ const/4 v1, 0x1 │ │ - .line 215 │ + .line 218 │ .end local v0 # "client":Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ :cond_3 │ if-eqz v1, :cond_0 │ │ - .line 218 │ + .line 221 │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->httpClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/AsyncHttpClient;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$4; │ │ invoke-direct {v4, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$4;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ iget-wide v6, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnectDelay:J │ │ + .line 226 │ invoke-direct {p0, v6, v7}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->nextReconnectDelay(J)J │ │ move-result-wide v6 │ │ + .line 221 │ invoke-virtual {v3, v4, v6, v7}, Lcom/koushikdutta/async/AsyncServer;->postDelayed(Ljava/lang/Runnable;J)Ljava/lang/Object; │ │ - .line 225 │ + .line 228 │ iget-wide v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnectDelay:J │ │ const-wide/16 v6, 0x2 │ │ mul-long/2addr v4, v6 │ │ iput-wide v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnectDelay:J │ │ - .line 226 │ + .line 229 │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ iget-object v3, v3, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->config:Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config; │ │ iget-wide v4, v3, Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config;->reconnectDelayMax:J │ │ const-wide/16 v6, 0x0 │ │ cmp-long v3, v4, v6 │ │ if-lez v3, :cond_0 │ │ - .line 227 │ + .line 230 │ iget-wide v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->reconnectDelay:J │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ iget-object v3, v3, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->config:Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config; │ │ iget-wide v6, v3, Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config;->reconnectDelayMax:J │ @@ -421,15 +423,15 @@ │ .end method │ │ .method private nextReconnectDelay(J)J │ .locals 7 │ .param p1, "targetDelay" # J │ │ .prologue │ - .line 232 │ + .line 235 │ const-wide/16 v0, 0x2 │ │ cmp-long v0, p1, v0 │ │ if-ltz v0, :cond_0 │ │ const-wide v0, 0x3fffffffffffffffL # 1.9999999999999998 │ @@ -442,15 +444,15 @@ │ │ iget-object v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->config:Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config; │ │ iget-boolean v0, v0, Lcom/koushikdutta/async/http/socketio/SocketIORequest$Config;->randomizeReconnectDelay:Z │ │ if-nez v0, :cond_1 │ │ - .line 237 │ + .line 240 │ .end local p1 # "targetDelay":J │ :cond_0 │ :goto_0 │ return-wide p1 │ │ .restart local p1 # "targetDelay":J │ :cond_1 │ @@ -474,57 +476,57 @@ │ .end method │ │ .method private reportConnect(Ljava/lang/String;)V │ .locals 1 │ .param p1, "endpoint" # Ljava/lang/String; │ │ .prologue │ - .line 269 │ + .line 272 │ new-instance v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$6; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$6;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 294 │ + .line 297 │ return-void │ .end method │ │ .method private reportDisconnect(Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 241 │ + .line 244 │ if-eqz p1, :cond_0 │ │ - .line 242 │ + .line 245 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ const-string v1, "socket.io disconnected" │ │ invoke-virtual {v0, v1, p1}, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->loge(Ljava/lang/String;Ljava/lang/Exception;)V │ │ - .line 247 │ + .line 250 │ :goto_0 │ const/4 v0, 0x0 │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$5; │ │ invoke-direct {v1, p0, p1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$5;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/Exception;)V │ │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 265 │ + .line 268 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->delayReconnect()V │ │ - .line 266 │ + .line 269 │ return-void │ │ - .line 245 │ + .line 248 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ const-string v1, "socket.io disconnected" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->logi(Ljava/lang/String;)V │ │ @@ -533,87 +535,87 @@ │ │ .method private reportError(Ljava/lang/String;Ljava/lang/String;)V │ .locals 1 │ .param p1, "endpoint" # Ljava/lang/String; │ .param p2, "error" # Ljava/lang/String; │ │ .prologue │ - .line 328 │ + .line 331 │ new-instance v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$10; │ │ invoke-direct {v0, p0, p2}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$10;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;)V │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 336 │ + .line 339 │ return-void │ .end method │ │ .method private reportEvent(Ljava/lang/String;Ljava/lang/String;Lorg/json/JSONArray;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ .locals 1 │ .param p1, "endpoint" # Ljava/lang/String; │ .param p2, "event" # Ljava/lang/String; │ .param p3, "arguments" # Lorg/json/JSONArray; │ .param p4, "acknowledge" # Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ .prologue │ - .line 319 │ + .line 322 │ new-instance v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9; │ │ invoke-direct {v0, p0, p2, p3, p4}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$9;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Lorg/json/JSONArray;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 325 │ + .line 328 │ return-void │ .end method │ │ .method private reportJson(Ljava/lang/String;Lorg/json/JSONObject;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ .locals 1 │ .param p1, "endpoint" # Ljava/lang/String; │ .param p2, "jsonMessage" # Lorg/json/JSONObject; │ .param p3, "acknowledge" # Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ .prologue │ - .line 297 │ + .line 300 │ new-instance v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7; │ │ invoke-direct {v0, p0, p2, p3}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$7;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Lorg/json/JSONObject;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 305 │ + .line 308 │ return-void │ .end method │ │ .method private reportString(Ljava/lang/String;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ .locals 1 │ .param p1, "endpoint" # Ljava/lang/String; │ .param p2, "string" # Ljava/lang/String; │ .param p3, "acknowledge" # Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ .prologue │ - .line 308 │ + .line 311 │ new-instance v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8; │ │ invoke-direct {v0, p0, p2, p3}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$8;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ │ - .line 316 │ + .line 319 │ return-void │ .end method │ │ .method private select(Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;)V │ .locals 3 │ .param p1, "endpoint" # Ljava/lang/String; │ .param p2, "callback" # Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback; │ │ .prologue │ - .line 194 │ + .line 197 │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ .local v1, "i$":Ljava/util/Iterator; │ @@ -627,233 +629,229 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ - .line 195 │ + .line 198 │ .local v0, "client":Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ if-eqz p1, :cond_1 │ │ iget-object v2, v0, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ invoke-static {v2, p1}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - .line 196 │ + .line 199 │ :cond_1 │ invoke-interface {p2, v0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$SelectCallback;->onSelect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ │ goto :goto_0 │ │ - .line 199 │ + .line 202 │ .end local v0 # "client":Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ :cond_2 │ return-void │ .end method │ │ │ # virtual methods │ .method public connect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ - .locals 5 │ + .locals 6 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - .line 61 │ + .line 62 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ - .line 62 │ + .line 63 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 63 │ + .line 64 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ - const-string v1, "1::%s" │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v2, 0x1 │ + const-string v2, "1::%s" │ │ - new-array v2, v2, [Ljava/lang/Object; │ + const/4 v3, 0x1 │ │ - const/4 v3, 0x0 │ + new-array v3, v3, [Ljava/lang/Object; │ │ - iget-object v4, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ + const/4 v4, 0x0 │ + │ + iget-object v5, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ - aput-object v4, v2, v3 │ + aput-object v5, v3, v4 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->send(Ljava/lang/String;)V │ │ - .line 64 │ + .line 65 │ return-void │ .end method │ │ .method public disconnect(Lcom/koushikdutta/async/http/socketio/SocketIOClient;)V │ - .locals 9 │ + .locals 10 │ .param p1, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ .prologue │ - const/4 v8, 0x0 │ + const/4 v9, 0x0 │ │ - .line 67 │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ + .line 68 │ + iget-object v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ - invoke-virtual {v3, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z │ + invoke-virtual {v4, p1}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z │ │ - .line 70 │ + .line 71 │ const/4 v1, 0x1 │ │ - .line 71 │ + .line 72 │ .local v1, "needsEndpointDisconnect":Z │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ + iget-object v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v4}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ │ .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v3 │ + move-result v4 │ │ - if-eqz v3, :cond_2 │ + if-eqz v4, :cond_2 │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ │ - .line 75 │ + .line 76 │ .local v2, "other":Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ - iget-object v3, v2, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ + iget-object v4, v2, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ - iget-object v4, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ + iget-object v5, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ - invoke-static {v3, v4}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ + invoke-static {v4, v5}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ - move-result v3 │ + move-result v4 │ │ - if-nez v3, :cond_1 │ + if-nez v4, :cond_1 │ │ - iget-object v3, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ + iget-object v4, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ - invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ + invoke-static {v4}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v3 │ + move-result v4 │ │ - if-eqz v3, :cond_0 │ + if-eqz v4, :cond_0 │ │ - .line 76 │ + .line 77 │ :cond_1 │ const/4 v1, 0x0 │ │ - .line 81 │ + .line 82 │ .end local v2 # "other":Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ :cond_2 │ - if-eqz v1, :cond_3 │ - │ iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ + .line 84 │ + .local v3, "ts":Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + if-eqz v1, :cond_3 │ + │ if-eqz v3, :cond_3 │ │ - .line 82 │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + .line 85 │ + sget-object v4, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const-string v4, "0::%s" │ + const-string v5, "0::%s" │ │ - const/4 v5, 0x1 │ + const/4 v6, 0x1 │ │ - new-array v5, v5, [Ljava/lang/Object; │ + new-array v6, v6, [Ljava/lang/Object; │ │ - const/4 v6, 0x0 │ + const/4 v7, 0x0 │ │ - iget-object v7, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ + iget-object v8, p1, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ - aput-object v7, v5, v6 │ + aput-object v8, v6, v7 │ │ - invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v4, v5, v6}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-interface {v3, v4}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->send(Ljava/lang/String;)V │ │ - .line 85 │ + .line 88 │ :cond_3 │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ - │ - invoke-virtual {v3}, Ljava/util/ArrayList;->size()I │ + iget-object v4, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->clients:Ljava/util/ArrayList; │ │ - move-result v3 │ + invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ - if-gtz v3, :cond_4 │ + move-result v4 │ │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + if-gtz v4, :cond_4 │ │ if-nez v3, :cond_5 │ │ - .line 92 │ + .line 95 │ :cond_4 │ :goto_0 │ return-void │ │ - .line 88 │ + .line 91 │ :cond_5 │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ - invoke-interface {v3, v8}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setStringCallback(Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport$StringCallback;)V │ + invoke-interface {v3, v9}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setStringCallback(Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport$StringCallback;)V │ │ - .line 89 │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ - invoke-interface {v3, v8}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ - │ - .line 90 │ - iget-object v3, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + .line 92 │ + invoke-interface {v3, v9}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->setClosedCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ + .line 93 │ invoke-interface {v3}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->disconnect()V │ │ - .line 91 │ - iput-object v8, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + .line 94 │ + iput-object v9, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ goto :goto_0 │ .end method │ │ .method public emitRaw(ILcom/koushikdutta/async/http/socketio/SocketIOClient;Ljava/lang/String;Lcom/koushikdutta/async/http/socketio/Acknowledge;)V │ - .locals 7 │ + .locals 8 │ .param p1, "type" # I │ .param p2, "client" # Lcom/koushikdutta/async/http/socketio/SocketIOClient; │ .param p3, "message" # Ljava/lang/String; │ .param p4, "acknowledge" # Lcom/koushikdutta/async/http/socketio/Acknowledge; │ │ .prologue │ - .line 51 │ + .line 52 │ const-string v0, "" │ │ - .line 52 │ + .line 53 │ .local v0, "ack":Ljava/lang/String; │ if-eqz p4, :cond_0 │ │ - .line 53 │ + .line 54 │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ const-string v3, "" │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -870,15 +868,15 @@ │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 54 │ + .line 55 │ .local v1, "id":Ljava/lang/String; │ new-instance v2, Ljava/lang/StringBuilder; │ │ invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -890,67 +888,69 @@ │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 55 │ + .line 56 │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->acknowledges:Ljava/util/Hashtable; │ │ invoke-virtual {v2, v1, p4}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 57 │ + .line 58 │ .end local v1 # "id":Ljava/lang/String; │ :cond_0 │ iget-object v2, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ - const-string v3, "%d:%s:%s:%s" │ + sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v4, 0x4 │ + const-string v4, "%d:%s:%s:%s" │ │ - new-array v4, v4, [Ljava/lang/Object; │ + const/4 v5, 0x4 │ │ - const/4 v5, 0x0 │ + new-array v5, v5, [Ljava/lang/Object; │ + │ + const/4 v6, 0x0 │ │ invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - aput-object v6, v4, v5 │ + aput-object v7, v5, v6 │ │ - const/4 v5, 0x1 │ + const/4 v6, 0x1 │ │ - aput-object v0, v4, v5 │ + aput-object v0, v5, v6 │ │ - const/4 v5, 0x2 │ + const/4 v6, 0x2 │ │ - iget-object v6, p2, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ + iget-object v7, p2, Lcom/koushikdutta/async/http/socketio/SocketIOClient;->endpoint:Ljava/lang/String; │ │ - aput-object v6, v4, v5 │ + aput-object v7, v5, v6 │ │ - const/4 v5, 0x3 │ + const/4 v6, 0x3 │ │ - aput-object p3, v4, v5 │ + aput-object p3, v5, v6 │ │ - invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v3, v4, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-interface {v2, v3}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->send(Ljava/lang/String;)V │ │ - .line 58 │ + .line 59 │ return-void │ .end method │ │ .method public isConnected()Z │ .locals 1 │ │ .prologue │ - .line 45 │ + .line 46 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;->isConnected()Z │ @@ -971,27 +971,27 @@ │ .end method │ │ .method reconnect(Lcom/koushikdutta/async/future/DependentCancellable;)V │ .locals 3 │ .param p1, "child" # Lcom/koushikdutta/async/future/DependentCancellable; │ │ .prologue │ - .line 96 │ + .line 99 │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->isConnected()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 170 │ + .line 173 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 101 │ + .line 104 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->connecting:Lcom/koushikdutta/async/future/Cancellable; │ │ if-eqz v0, :cond_2 │ │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->connecting:Lcom/koushikdutta/async/future/Cancellable; │ │ @@ -1005,87 +1005,85 @@ │ │ invoke-interface {v0}, Lcom/koushikdutta/async/future/Cancellable;->isCancelled()Z │ │ move-result v0 │ │ if-nez v0, :cond_2 │ │ - .line 102 │ + .line 105 │ if-eqz p1, :cond_0 │ │ - .line 103 │ + .line 106 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->connecting:Lcom/koushikdutta/async/future/Cancellable; │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/future/DependentCancellable;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/DependentCancellable; │ │ goto :goto_0 │ │ - .line 107 │ + .line 110 │ :cond_2 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ const-string v1, "Reconnecting socket.io" │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIORequest;->logi(Ljava/lang/String;)V │ │ - .line 109 │ + .line 112 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->httpClient:Lcom/koushikdutta/async/http/AsyncHttpClient; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->request:Lcom/koushikdutta/async/http/socketio/SocketIORequest; │ │ const/4 v2, 0x0 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/http/AsyncHttpClient;->executeString(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/http/AsyncHttpClient$StringCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ + .line 113 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2; │ │ new-instance v1, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$1;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ + .line 157 │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$2;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->connecting:Lcom/koushikdutta/async/future/Cancellable; │ │ - .line 168 │ + .line 171 │ if-eqz p1, :cond_0 │ │ - .line 169 │ + .line 172 │ iget-object v0, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->connecting:Lcom/koushikdutta/async/future/Cancellable; │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/future/DependentCancellable;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/DependentCancellable; │ │ goto :goto_0 │ .end method │ │ .method setupHeartbeat()V │ - .locals 2 │ + .locals 1 │ │ .prologue │ - .line 173 │ - iget-object v1, p0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection;->transport:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ - │ - .line 174 │ - .local v1, "ts":Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport; │ + .line 176 │ new-instance v0, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3; │ │ - invoke-direct {v0, p0, v1}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport;)V │ + invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/socketio/SocketIOConnection$3;->(Lcom/koushikdutta/async/http/socketio/SocketIOConnection;)V │ │ - .line 186 │ + .line 189 │ .local v0, "heartbeatRunner":Ljava/lang/Runnable; │ invoke-interface {v0}, Ljava/lang/Runnable;->run()V │ │ - .line 187 │ + .line 190 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/socketio/transport/WebSocketTransport$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$callback:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport$StringCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/transport/WebSocketTransport;Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport$StringCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/transport/WebSocketTransport; │ │ .prologue │ .line 52 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/transport/WebSocketTransport$1;->this$0:Lcom/koushikdutta/async/http/socketio/transport/WebSocketTransport; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/socketio/transport/WebSocketTransport$1;->val$callback:Lcom/koushikdutta/async/http/socketio/transport/SocketIOTransport$StringCallback; ├── smali/com/koushikdutta/async/http/socketio/transport/XHRPollingTransport$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ .prologue │ .line 70 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport$1;->this$0:Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$StringCallback;->()V ├── smali/com/koushikdutta/async/http/socketio/transport/XHRPollingTransport$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ .prologue │ .line 93 │ iput-object p1, p0, Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport$2;->this$0:Lcom/koushikdutta/async/http/socketio/transport/XHRPollingTransport; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/http/AsyncHttpClient$StringCallback;->()V ├── smali/com/koushikdutta/async/http/socketio/transport/XHRPollingTransport.smali │ @@ -138,14 +138,15 @@ │ │ const-string v2, "t" │ │ invoke-virtual {v1, v2, v0}, Landroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v1 │ │ + .line 128 │ invoke-virtual {v1}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v1 ├── smali/com/koushikdutta/async/http/spdy/AsyncSpdyConnection$SpdySocket.smali │ @@ -55,14 +55,15 @@ │ │ .field writing:Lcom/koushikdutta/async/ByteBufferList; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/http/spdy/AsyncSpdyConnection;IZZLjava/util/List;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/AsyncSpdyConnection; │ .param p2, "id" # I │ .param p3, "outFinished" # Z │ .param p4, "inFinished" # Z │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(IZZ", │ "Ljava/util/List", ├── smali/com/koushikdutta/async/http/spdy/BitArray$FixedCapacity.smali │ @@ -22,91 +22,93 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 2 │ │ .prologue │ - .line 38 │ + .line 39 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 39 │ + .line 40 │ const-wide/16 v0, 0x0 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ return-void │ .end method │ │ .method private static checkInput(I)I │ - .locals 5 │ + .locals 6 │ .param p0, "index" # I │ │ .prologue │ - .line 70 │ + .line 71 │ if-ltz p0, :cond_0 │ │ const/16 v0, 0x3f │ │ if-le p0, v0, :cond_1 │ │ - .line 71 │ + .line 72 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ - const-string v1, "input must be between 0 and 63: %s" │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v2, 0x1 │ + const-string v2, "input must be between 0 and 63: %s" │ │ - new-array v2, v2, [Ljava/lang/Object; │ + const/4 v3, 0x1 │ │ - const/4 v3, 0x0 │ + new-array v3, v3, [Ljava/lang/Object; │ + │ + const/4 v4, 0x0 │ │ invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v2, v3 │ + aput-object v5, v3, v4 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 73 │ + .line 74 │ :cond_1 │ return p0 │ .end method │ │ │ # virtual methods │ .method public clear()V │ .locals 2 │ │ .prologue │ - .line 42 │ + .line 43 │ const-wide/16 v0, 0x0 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ - .line 43 │ + .line 44 │ return-void │ .end method │ │ .method public get(I)Z │ .locals 6 │ .param p1, "index" # I │ │ .prologue │ const-wide/16 v4, 0x1 │ │ - .line 54 │ + .line 55 │ iget-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->checkInput(I)I │ │ move-result v2 │ │ shr-long/2addr v0, v2 │ @@ -129,97 +131,97 @@ │ .end method │ │ .method public set(I)V │ .locals 5 │ .param p1, "index" # I │ │ .prologue │ - .line 46 │ + .line 47 │ iget-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ const-wide/16 v2, 0x1 │ │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->checkInput(I)I │ │ move-result v4 │ │ shl-long/2addr v2, v4 │ │ or-long/2addr v0, v2 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ - .line 47 │ + .line 48 │ return-void │ .end method │ │ .method public shiftLeft(I)V │ .locals 3 │ .param p1, "count" # I │ │ .prologue │ - .line 58 │ + .line 59 │ iget-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->checkInput(I)I │ │ move-result v2 │ │ shl-long/2addr v0, v2 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ - .line 59 │ + .line 60 │ return-void │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 62 │ + .line 63 │ iget-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ invoke-static {v0, v1}, Ljava/lang/Long;->toBinaryString(J)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public toVariableCapacity()Lcom/koushikdutta/async/http/spdy/BitArray; │ .locals 2 │ │ .prologue │ - .line 66 │ + .line 67 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity; │ │ const/4 v1, 0x0 │ │ invoke-direct {v0, p0, v1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->(Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;Lcom/koushikdutta/async/http/spdy/BitArray$1;)V │ │ return-object v0 │ .end method │ │ .method public toggle(I)V │ .locals 5 │ .param p1, "index" # I │ │ .prologue │ - .line 50 │ + .line 51 │ iget-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ const-wide/16 v2, 0x1 │ │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->checkInput(I)I │ │ move-result v4 │ │ shl-long/2addr v2, v4 │ │ xor-long/2addr v0, v2 │ │ iput-wide v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ │ - .line 51 │ + .line 52 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/BitArray$VariableCapacity.smali │ @@ -24,37 +24,37 @@ │ │ │ # direct methods │ .method public constructor ()V │ .locals 1 │ │ .prologue │ - .line 86 │ + .line 87 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 87 │ + .line 88 │ const/4 v0, 0x1 │ │ new-array v0, v0, [J │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ - .line 88 │ + .line 89 │ return-void │ .end method │ │ .method private constructor (Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;)V │ .locals 4 │ .param p1, "small" # Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity; │ │ .prologue │ - .line 90 │ + .line 91 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 91 │ + .line 92 │ const/4 v0, 0x2 │ │ new-array v0, v0, [J │ │ const/4 v1, 0x0 │ │ iget-wide v2, p1, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->data:J │ @@ -65,140 +65,142 @@ │ │ const-wide/16 v2, 0x0 │ │ aput-wide v2, v0, v1 │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ - .line 92 │ + .line 93 │ return-void │ .end method │ │ .method synthetic constructor (Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;Lcom/koushikdutta/async/http/spdy/BitArray$1;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity; │ .param p2, "x1" # Lcom/koushikdutta/async/http/spdy/BitArray$1; │ │ .prologue │ - .line 78 │ + .line 79 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->(Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;)V │ │ return-void │ .end method │ │ .method private static checkInput(I)I │ - .locals 5 │ + .locals 6 │ .param p0, "index" # I │ │ .prologue │ - .line 171 │ + .line 172 │ if-gez p0, :cond_0 │ │ - .line 172 │ + .line 173 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ - const-string v1, "input must be a positive number: %s" │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v2, 0x1 │ + const-string v2, "input must be a positive number: %s" │ │ - new-array v2, v2, [Ljava/lang/Object; │ + const/4 v3, 0x1 │ │ - const/4 v3, 0x0 │ + new-array v3, v3, [Ljava/lang/Object; │ + │ + const/4 v4, 0x0 │ │ invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v2, v3 │ + aput-object v5, v3, v4 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 174 │ + .line 175 │ :cond_0 │ return p0 │ .end method │ │ .method private growToSize(I)V │ .locals 4 │ .param p1, "size" # I │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 95 │ + .line 96 │ new-array v0, p1, [J │ │ - .line 96 │ + .line 97 │ .local v0, "newData":[J │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ if-eqz v1, :cond_0 │ │ - .line 97 │ + .line 98 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ array-length v2, v2 │ │ invoke-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 99 │ + .line 100 │ :cond_0 │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ - .line 100 │ + .line 101 │ return-void │ .end method │ │ .method private offsetOf(I)I │ .locals 2 │ .param p1, "index" # I │ │ .prologue │ - .line 103 │ + .line 104 │ iget v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ add-int/2addr p1, v1 │ │ - .line 104 │ + .line 105 │ div-int/lit8 v0, p1, 0x40 │ │ - .line 105 │ + .line 106 │ .local v0, "offset":I │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ array-length v1, v1 │ │ add-int/lit8 v1, v1, -0x1 │ │ if-le v0, v1, :cond_0 │ │ - .line 106 │ + .line 107 │ add-int/lit8 v1, v0, 0x1 │ │ invoke-direct {p0, v1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->growToSize(I)V │ │ - .line 108 │ + .line 109 │ :cond_0 │ return v0 │ .end method │ │ .method private shiftOf(I)I │ .locals 1 │ .param p1, "index" # I │ │ .prologue │ - .line 112 │ + .line 113 │ iget v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ add-int/2addr v0, p1 │ │ rem-int/lit8 v0, v0, 0x40 │ │ return v0 │ @@ -206,39 +208,39 @@ │ │ │ # virtual methods │ .method public clear()V │ .locals 4 │ │ .prologue │ - .line 116 │ + .line 117 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ const-wide/16 v2, 0x0 │ │ invoke-static {v0, v2, v3}, Ljava/util/Arrays;->fill([JJ)V │ │ - .line 117 │ + .line 118 │ return-void │ .end method │ │ .method public get(I)Z │ .locals 6 │ .param p1, "index" # I │ │ .prologue │ - .line 132 │ + .line 133 │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->checkInput(I)I │ │ - .line 133 │ + .line 134 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->offsetOf(I)I │ │ move-result v0 │ │ - .line 134 │ + .line 135 │ .local v0, "offset":I │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ aget-wide v2, v1, v0 │ │ const-wide/16 v4, 0x1 │ │ @@ -268,23 +270,23 @@ │ .end method │ │ .method public set(I)V │ .locals 7 │ .param p1, "index" # I │ │ .prologue │ - .line 120 │ + .line 121 │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->checkInput(I)I │ │ - .line 121 │ + .line 122 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->offsetOf(I)I │ │ move-result v0 │ │ - .line 122 │ + .line 123 │ .local v0, "offset":I │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ aget-wide v2, v1, v0 │ │ const-wide/16 v4, 0x1 │ │ @@ -294,81 +296,81 @@ │ │ shl-long/2addr v4, v6 │ │ or-long/2addr v2, v4 │ │ aput-wide v2, v1, v0 │ │ - .line 123 │ + .line 124 │ return-void │ .end method │ │ .method public shiftLeft(I)V │ .locals 5 │ .param p1, "count" # I │ │ .prologue │ - .line 138 │ + .line 139 │ iget v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->checkInput(I)I │ │ move-result v3 │ │ sub-int/2addr v2, v3 │ │ iput v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ - .line 139 │ + .line 140 │ iget v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ if-gez v2, :cond_0 │ │ - .line 140 │ + .line 141 │ iget v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ div-int/lit8 v2, v2, -0x40 │ │ add-int/lit8 v0, v2, 0x1 │ │ - .line 141 │ + .line 142 │ .local v0, "arrayShift":I │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ array-length v2, v2 │ │ add-int/2addr v2, v0 │ │ new-array v1, v2, [J │ │ - .line 142 │ + .line 143 │ .local v1, "newData":[J │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ const/4 v3, 0x0 │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ array-length v4, v4 │ │ invoke-static {v2, v3, v1, v0, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 143 │ + .line 144 │ iput-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ - .line 144 │ + .line 145 │ iget v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ rem-int/lit8 v2, v2, 0x40 │ │ add-int/lit8 v2, v2, 0x40 │ │ iput v2, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->start:I │ │ - .line 146 │ + .line 147 │ .end local v0 # "arrayShift":I │ .end local v1 # "newData":[J │ :cond_0 │ return-void │ .end method │ │ .method toIntegerList()Ljava/util/List; │ @@ -380,20 +382,20 @@ │ "<", │ "Ljava/lang/Integer;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 161 │ + .line 162 │ new-instance v2, Ljava/util/ArrayList; │ │ invoke-direct {v2}, Ljava/util/ArrayList;->()V │ │ - .line 162 │ + .line 163 │ .local v2, "ints":Ljava/util/List;, "Ljava/util/List;" │ const/4 v1, 0x0 │ │ .local v1, "i":I │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ array-length v3, v3 │ @@ -404,91 +406,91 @@ │ │ sub-int v0, v3, v4 │ │ .local v0, "count":I │ :goto_0 │ if-ge v1, v0, :cond_1 │ │ - .line 163 │ + .line 164 │ invoke-virtual {p0, v1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->get(I)Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - .line 164 │ + .line 165 │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ │ invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ - .line 162 │ + .line 163 │ :cond_0 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 167 │ + .line 168 │ :cond_1 │ return-object v2 │ .end method │ │ .method public toString()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 149 │ + .line 150 │ new-instance v0, Ljava/lang/StringBuilder; │ │ const-string v4, "{" │ │ invoke-direct {v0, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ │ - .line 150 │ + .line 151 │ .local v0, "builder":Ljava/lang/StringBuilder; │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->toIntegerList()Ljava/util/List; │ │ move-result-object v3 │ │ - .line 151 │ + .line 152 │ .local v3, "ints":Ljava/util/List;, "Ljava/util/List;" │ const/4 v2, 0x0 │ │ .local v2, "i":I │ invoke-interface {v3}, Ljava/util/List;->size()I │ │ move-result v1 │ │ .local v1, "count":I │ :goto_0 │ if-ge v2, v1, :cond_1 │ │ - .line 152 │ + .line 153 │ if-lez v2, :cond_0 │ │ - .line 153 │ + .line 154 │ const/16 v4, 0x2c │ │ invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ - .line 155 │ + .line 156 │ :cond_0 │ invoke-interface {v3, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v4 │ │ invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - .line 151 │ + .line 152 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ - .line 157 │ + .line 158 │ :cond_1 │ const/16 v4, 0x7d │ │ invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ @@ -500,23 +502,23 @@ │ .end method │ │ .method public toggle(I)V │ .locals 7 │ .param p1, "index" # I │ │ .prologue │ - .line 126 │ + .line 127 │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->checkInput(I)I │ │ - .line 127 │ + .line 128 │ invoke-direct {p0, p1}, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->offsetOf(I)I │ │ move-result v0 │ │ - .line 128 │ + .line 129 │ .local v0, "offset":I │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/BitArray$VariableCapacity;->data:[J │ │ aget-wide v2, v1, v0 │ │ const-wide/16 v4, 0x1 │ │ @@ -526,10 +528,10 @@ │ │ shl-long/2addr v4, v6 │ │ xor-long/2addr v2, v4 │ │ aput-wide v2, v1, v0 │ │ - .line 129 │ + .line 130 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/ByteString.smali │ @@ -23,37 +23,37 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 46 │ + .line 47 │ const/16 v0, 0x10 │ │ new-array v0, v0, [C │ │ fill-array-data v0, :array_0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/ByteString;->HEX_DIGITS:[C │ │ - .line 51 │ + .line 52 │ const/4 v0, 0x0 │ │ new-array v0, v0, [B │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->of([B)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/ByteString;->EMPTY:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ return-void │ │ - .line 46 │ + .line 47 │ nop │ │ :array_0 │ .array-data 2 │ 0x30s │ 0x31s │ 0x32s │ @@ -74,49 +74,49 @@ │ .end method │ │ .method constructor ([B)V │ .locals 0 │ .param p1, "data" # [B │ │ .prologue │ - .line 57 │ + .line 58 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 58 │ + .line 59 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ - .line 59 │ + .line 60 │ return-void │ .end method │ │ .method public static decodeBase64(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 3 │ .param p0, "base64" # Ljava/lang/String; │ │ .prologue │ - .line 111 │ + .line 112 │ if-nez p0, :cond_0 │ │ new-instance v1, Ljava/lang/IllegalArgumentException; │ │ const-string v2, "base64 == null" │ │ invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 112 │ + .line 113 │ :cond_0 │ const/4 v1, 0x0 │ │ invoke-static {p0, v1}, Landroid/util/Base64;->decode(Ljava/lang/String;I)[B │ │ move-result-object v0 │ │ - .line 113 │ + .line 114 │ .local v0, "decoded":[B │ if-eqz v0, :cond_1 │ │ new-instance v1, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-direct {v1, v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->([B)V │ │ @@ -130,26 +130,26 @@ │ .end method │ │ .method public static decodeHex(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 7 │ .param p0, "hex" # Ljava/lang/String; │ │ .prologue │ - .line 129 │ + .line 130 │ if-nez p0, :cond_0 │ │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ const-string v5, "hex == null" │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 130 │ + .line 131 │ :cond_0 │ invoke-virtual {p0}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ rem-int/lit8 v4, v4, 0x2 │ │ @@ -175,75 +175,75 @@ │ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 132 │ + .line 133 │ :cond_1 │ invoke-virtual {p0}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ div-int/lit8 v4, v4, 0x2 │ │ new-array v3, v4, [B │ │ - .line 133 │ + .line 134 │ .local v3, "result":[B │ const/4 v2, 0x0 │ │ .local v2, "i":I │ :goto_0 │ array-length v4, v3 │ │ if-ge v2, v4, :cond_2 │ │ - .line 134 │ + .line 135 │ mul-int/lit8 v4, v2, 0x2 │ │ invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C │ │ move-result v4 │ │ invoke-static {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->decodeHexDigit(C)I │ │ move-result v4 │ │ shl-int/lit8 v0, v4, 0x4 │ │ - .line 135 │ + .line 136 │ .local v0, "d1":I │ mul-int/lit8 v4, v2, 0x2 │ │ add-int/lit8 v4, v4, 0x1 │ │ invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C │ │ move-result v4 │ │ invoke-static {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->decodeHexDigit(C)I │ │ move-result v1 │ │ - .line 136 │ + .line 137 │ .local v1, "d2":I │ add-int v4, v0, v1 │ │ int-to-byte v4, v4 │ │ aput-byte v4, v3, v2 │ │ - .line 133 │ + .line 134 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ - .line 138 │ + .line 139 │ .end local v0 # "d1":I │ .end local v1 # "d2":I │ :cond_2 │ invoke-static {v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->of([B)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v4 │ │ @@ -251,30 +251,30 @@ │ .end method │ │ .method private static decodeHexDigit(C)I │ .locals 3 │ .param p0, "c" # C │ │ .prologue │ - .line 142 │ + .line 143 │ const/16 v0, 0x30 │ │ if-lt p0, v0, :cond_0 │ │ const/16 v0, 0x39 │ │ if-gt p0, v0, :cond_0 │ │ add-int/lit8 v0, p0, -0x30 │ │ - .line 144 │ + .line 145 │ :goto_0 │ return v0 │ │ - .line 143 │ + .line 144 │ :cond_0 │ const/16 v0, 0x61 │ │ if-lt p0, v0, :cond_1 │ │ const/16 v0, 0x66 │ │ @@ -282,15 +282,15 @@ │ │ add-int/lit8 v0, p0, -0x61 │ │ add-int/lit8 v0, v0, 0xa │ │ goto :goto_0 │ │ - .line 144 │ + .line 145 │ :cond_1 │ const/16 v0, 0x41 │ │ if-lt p0, v0, :cond_2 │ │ const/16 v0, 0x46 │ │ @@ -298,15 +298,15 @@ │ │ add-int/lit8 v0, p0, -0x41 │ │ add-int/lit8 v0, v0, 0xa │ │ goto :goto_0 │ │ - .line 145 │ + .line 146 │ :cond_2 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ @@ -330,62 +330,62 @@ │ .end method │ │ .method public static encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 3 │ .param p0, "s" # Ljava/lang/String; │ │ .prologue │ - .line 84 │ + .line 85 │ if-nez p0, :cond_0 │ │ new-instance v1, Ljava/lang/IllegalArgumentException; │ │ const-string v2, "s == null" │ │ invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 85 │ + .line 86 │ :cond_0 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ sget-object v1, Lcom/koushikdutta/async/util/Charsets;->UTF_8:Ljava/nio/charset/Charset; │ │ invoke-virtual {p0, v1}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/async/http/spdy/ByteString;->([B)V │ │ - .line 86 │ + .line 87 │ .local v0, "byteString":Lcom/koushikdutta/async/http/spdy/ByteString; │ iput-object p0, v0, Lcom/koushikdutta/async/http/spdy/ByteString;->utf8:Ljava/lang/String; │ │ - .line 87 │ + .line 88 │ return-object v0 │ .end method │ │ .method public static varargs of([B)Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 2 │ .param p0, "data" # [B │ │ .prologue │ - .line 65 │ + .line 66 │ if-nez p0, :cond_0 │ │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ const-string v1, "data == null" │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 66 │ + .line 67 │ :cond_0 │ new-instance v1, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-virtual {p0}, [B->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ @@ -399,47 +399,47 @@ │ .method public static of([BII)Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 7 │ .param p0, "data" # [B │ .param p1, "offset" # I │ .param p2, "byteCount" # I │ │ .prologue │ - .line 74 │ + .line 75 │ if-nez p0, :cond_0 │ │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ const-string v1, "data == null" │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 75 │ + .line 76 │ :cond_0 │ array-length v0, p0 │ │ int-to-long v0, v0 │ │ int-to-long v2, p1 │ │ int-to-long v4, p2 │ │ invoke-static/range {v0 .. v5}, Lcom/koushikdutta/async/http/spdy/Util;->checkOffsetAndCount(JJJ)V │ │ - .line 77 │ + .line 78 │ new-array v6, p2, [B │ │ - .line 78 │ + .line 79 │ .local v6, "copy":[B │ const/4 v0, 0x0 │ │ invoke-static {p0, p1, v6, v0, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ - .line 79 │ + .line 80 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-direct {v0, v6}, Lcom/koushikdutta/async/http/spdy/ByteString;->([B)V │ │ return-object v0 │ .end method │ │ @@ -450,26 +450,26 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 155 │ + .line 156 │ if-nez p0, :cond_0 │ │ new-instance v3, Ljava/lang/IllegalArgumentException; │ │ const-string v4, "in == null" │ │ invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 156 │ + .line 157 │ :cond_0 │ if-gez p1, :cond_1 │ │ new-instance v3, Ljava/lang/IllegalArgumentException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ @@ -489,52 +489,52 @@ │ │ move-result-object v4 │ │ invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 158 │ + .line 159 │ :cond_1 │ new-array v2, p1, [B │ │ - .line 159 │ + .line 160 │ .local v2, "result":[B │ const/4 v0, 0x0 │ │ .local v0, "offset":I │ :goto_0 │ if-ge v0, p1, :cond_3 │ │ - .line 160 │ + .line 161 │ sub-int v3, p1, v0 │ │ invoke-virtual {p0, v2, v0, v3}, Ljava/io/InputStream;->read([BII)I │ │ move-result v1 │ │ - .line 161 │ + .line 162 │ .local v1, "read":I │ const/4 v3, -0x1 │ │ if-ne v1, v3, :cond_2 │ │ new-instance v3, Ljava/io/EOFException; │ │ invoke-direct {v3}, Ljava/io/EOFException;->()V │ │ throw v3 │ │ - .line 159 │ + .line 160 │ :cond_2 │ add-int/2addr v0, v1 │ │ goto :goto_0 │ │ - .line 163 │ + .line 164 │ .end local v1 # "read":I │ :cond_3 │ new-instance v3, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-direct {v3, v2}, Lcom/koushikdutta/async/http/spdy/ByteString;->([B)V │ │ return-object v3 │ @@ -546,72 +546,72 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 268 │ + .line 269 │ invoke-virtual {p1}, Ljava/io/ObjectInputStream;->readInt()I │ │ move-result v1 │ │ - .line 269 │ + .line 270 │ .local v1, "dataLength":I │ invoke-static {p1, v1}, Lcom/koushikdutta/async/http/spdy/ByteString;->read(Ljava/io/InputStream;I)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ - .line 271 │ + .line 272 │ .local v0, "byteString":Lcom/koushikdutta/async/http/spdy/ByteString; │ :try_start_0 │ const-class v4, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ const-string v5, "data" │ │ invoke-virtual {v4, v5}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v3 │ │ - .line 272 │ + .line 273 │ .local v3, "field":Ljava/lang/reflect/Field; │ const/4 v4, 0x1 │ │ invoke-virtual {v3, v4}, Ljava/lang/reflect/Field;->setAccessible(Z)V │ │ - .line 273 │ + .line 274 │ iget-object v4, v0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ invoke-virtual {v3, p0, v4}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V │ :try_end_0 │ .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 │ │ - .line 279 │ + .line 280 │ return-void │ │ - .line 274 │ + .line 275 │ .end local v3 # "field":Ljava/lang/reflect/Field; │ :catch_0 │ move-exception v2 │ │ - .line 275 │ + .line 276 │ .local v2, "e":Ljava/lang/NoSuchFieldException; │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ │ - .line 276 │ + .line 277 │ .end local v2 # "e":Ljava/lang/NoSuchFieldException; │ :catch_1 │ move-exception v2 │ │ - .line 277 │ + .line 278 │ .local v2, "e":Ljava/lang/IllegalAccessException; │ new-instance v4, Ljava/lang/AssertionError; │ │ invoke-direct {v4}, Ljava/lang/AssertionError;->()V │ │ throw v4 │ .end method │ @@ -622,37 +622,37 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 282 │ + .line 283 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v0, v0 │ │ invoke-virtual {p1, v0}, Ljava/io/ObjectOutputStream;->writeInt(I)V │ │ - .line 283 │ + .line 284 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ invoke-virtual {p1, v0}, Ljava/io/ObjectOutputStream;->write([B)V │ │ - .line 284 │ + .line 285 │ return-void │ .end method │ │ │ # virtual methods │ .method public base64()Ljava/lang/String; │ .locals 2 │ │ .prologue │ - .line 103 │ + .line 104 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ const/4 v1, 0x0 │ │ invoke-static {v0, v1}, Landroid/util/Base64;->encodeToString([BI)Ljava/lang/String; │ │ move-result-object v0 │ @@ -661,15 +661,15 @@ │ .end method │ │ .method public equals(Ljava/lang/Object;)Z │ .locals 2 │ .param p1, "o" # Ljava/lang/Object; │ │ .prologue │ - .line 242 │ + .line 243 │ if-eq p1, p0, :cond_0 │ │ instance-of v0, p1, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ if-eqz v0, :cond_1 │ │ check-cast p1, Lcom/koushikdutta/async/http/spdy/ByteString; │ @@ -698,30 +698,30 @@ │ .end method │ │ .method public getByte(I)B │ .locals 1 │ .param p1, "pos" # I │ │ .prologue │ - .line 218 │ + .line 219 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ aget-byte v0, v0, p1 │ │ return v0 │ .end method │ │ .method public hashCode()I │ .locals 2 │ │ .prologue │ - .line 246 │ + .line 247 │ iget v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->hashCode:I │ │ - .line 247 │ + .line 248 │ .local v0, "result":I │ if-eqz v0, :cond_0 │ │ .end local v0 # "result":I │ :goto_0 │ return v0 │ │ @@ -739,28 +739,28 @@ │ goto :goto_0 │ .end method │ │ .method public hex()Ljava/lang/String; │ .locals 9 │ │ .prologue │ - .line 118 │ + .line 119 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v7, v7 │ │ mul-int/lit8 v7, v7, 0x2 │ │ new-array v6, v7, [C │ │ - .line 119 │ + .line 120 │ .local v6, "result":[C │ const/4 v2, 0x0 │ │ - .line 120 │ + .line 121 │ .local v2, "c":I │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ .local v0, "arr$":[B │ array-length v5, v0 │ │ .local v5, "len$":I │ @@ -772,15 +772,15 @@ │ .end local v2 # "c":I │ .local v3, "c":I │ :goto_0 │ if-ge v4, v5, :cond_0 │ │ aget-byte v1, v0, v4 │ │ - .line 121 │ + .line 122 │ .local v1, "b":B │ add-int/lit8 v2, v3, 0x1 │ │ .end local v3 # "c":I │ .restart local v2 # "c":I │ sget-object v7, Lcom/koushikdutta/async/http/spdy/ByteString;->HEX_DIGITS:[C │ │ @@ -788,47 +788,47 @@ │ │ and-int/lit8 v8, v8, 0xf │ │ aget-char v7, v7, v8 │ │ aput-char v7, v6, v3 │ │ - .line 122 │ + .line 123 │ add-int/lit8 v3, v2, 0x1 │ │ .end local v2 # "c":I │ .restart local v3 # "c":I │ sget-object v7, Lcom/koushikdutta/async/http/spdy/ByteString;->HEX_DIGITS:[C │ │ and-int/lit8 v8, v1, 0xf │ │ aget-char v7, v7, v8 │ │ aput-char v7, v6, v2 │ │ - .line 120 │ + .line 121 │ add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ - .line 124 │ + .line 125 │ .end local v1 # "b":B │ :cond_0 │ new-instance v7, Ljava/lang/String; │ │ invoke-direct {v7, v6}, Ljava/lang/String;->([C)V │ │ return-object v7 │ .end method │ │ .method public size()I │ .locals 1 │ │ .prologue │ - .line 225 │ + .line 226 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v0, v0 │ │ return v0 │ .end method │ │ @@ -836,371 +836,377 @@ │ .locals 7 │ │ .prologue │ const/16 v6, 0x5a │ │ const/16 v5, 0x41 │ │ - .line 173 │ + .line 174 │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v4, v4 │ │ if-ge v1, v4, :cond_5 │ │ - .line 174 │ + .line 175 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ aget-byte v0, v4, v1 │ │ - .line 175 │ + .line 176 │ .local v0, "c":B │ if-lt v0, v5, :cond_0 │ │ if-le v0, v6, :cond_1 │ │ - .line 173 │ + .line 174 │ :cond_0 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 179 │ + .line 180 │ :cond_1 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ invoke-virtual {v4}, [B->clone()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, [B │ │ - .line 180 │ + .line 181 │ .local v3, "lowercase":[B │ add-int/lit8 v2, v1, 0x1 │ │ .end local v1 # "i":I │ .local v2, "i":I │ add-int/lit8 v4, v0, 0x20 │ │ int-to-byte v4, v4 │ │ aput-byte v4, v3, v1 │ │ move v1, v2 │ │ - .line 181 │ + .line 182 │ .end local v2 # "i":I │ .restart local v1 # "i":I │ :goto_1 │ array-length v4, v3 │ │ if-ge v1, v4, :cond_4 │ │ - .line 182 │ + .line 183 │ aget-byte v0, v3, v1 │ │ - .line 183 │ + .line 184 │ if-lt v0, v5, :cond_2 │ │ if-le v0, v6, :cond_3 │ │ - .line 181 │ + .line 182 │ :cond_2 │ :goto_2 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_1 │ │ - .line 184 │ + .line 185 │ :cond_3 │ add-int/lit8 v4, v0, 0x20 │ │ int-to-byte v4, v4 │ │ aput-byte v4, v3, v1 │ │ goto :goto_2 │ │ - .line 186 │ + .line 187 │ :cond_4 │ new-instance p0, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ .end local p0 # "this":Lcom/koushikdutta/async/http/spdy/ByteString; │ invoke-direct {p0, v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->([B)V │ │ - .line 188 │ + .line 189 │ .end local v0 # "c":B │ .end local v3 # "lowercase":[B │ :cond_5 │ return-object p0 │ .end method │ │ .method public toAsciiUppercase()Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 7 │ │ .prologue │ const/16 v6, 0x7a │ │ const/16 v5, 0x61 │ │ - .line 198 │ + .line 199 │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v4, v4 │ │ if-ge v1, v4, :cond_5 │ │ - .line 199 │ + .line 200 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ aget-byte v0, v4, v1 │ │ - .line 200 │ + .line 201 │ .local v0, "c":B │ if-lt v0, v5, :cond_0 │ │ if-le v0, v6, :cond_1 │ │ - .line 198 │ + .line 199 │ :cond_0 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 204 │ + .line 205 │ :cond_1 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ invoke-virtual {v4}, [B->clone()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, [B │ │ - .line 205 │ + .line 206 │ .local v3, "lowercase":[B │ add-int/lit8 v2, v1, 0x1 │ │ .end local v1 # "i":I │ .local v2, "i":I │ add-int/lit8 v4, v0, -0x20 │ │ int-to-byte v4, v4 │ │ aput-byte v4, v3, v1 │ │ move v1, v2 │ │ - .line 206 │ + .line 207 │ .end local v2 # "i":I │ .restart local v1 # "i":I │ :goto_1 │ array-length v4, v3 │ │ if-ge v1, v4, :cond_4 │ │ - .line 207 │ + .line 208 │ aget-byte v0, v3, v1 │ │ - .line 208 │ + .line 209 │ if-lt v0, v5, :cond_2 │ │ if-le v0, v6, :cond_3 │ │ - .line 206 │ + .line 207 │ :cond_2 │ :goto_2 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_1 │ │ - .line 209 │ + .line 210 │ :cond_3 │ add-int/lit8 v4, v0, -0x20 │ │ int-to-byte v4, v4 │ │ aput-byte v4, v3, v1 │ │ goto :goto_2 │ │ - .line 211 │ + .line 212 │ :cond_4 │ new-instance p0, Lcom/koushikdutta/async/http/spdy/ByteString; │ │ .end local p0 # "this":Lcom/koushikdutta/async/http/spdy/ByteString; │ invoke-direct {p0, v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->([B)V │ │ - .line 213 │ + .line 214 │ .end local v0 # "c":B │ .end local v3 # "lowercase":[B │ :cond_5 │ return-object p0 │ .end method │ │ .method public toByteArray()[B │ .locals 1 │ │ .prologue │ - .line 232 │ + .line 233 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ invoke-virtual {v0}, [B->clone()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [B │ │ return-object v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ - .locals 6 │ + .locals 7 │ │ .prologue │ const/4 v3, 0x2 │ │ - const/4 v5, 0x1 │ + const/4 v6, 0x1 │ │ - const/4 v4, 0x0 │ + const/4 v5, 0x0 │ │ - .line 251 │ + .line 252 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v1, v1 │ │ if-nez v1, :cond_0 │ │ - .line 252 │ + .line 253 │ const-string v1, "ByteString[size=0]" │ │ - .line 260 │ + .line 261 │ :goto_0 │ return-object v1 │ │ - .line 255 │ + .line 256 │ :cond_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ array-length v1, v1 │ │ const/16 v2, 0x10 │ │ if-gt v1, v2, :cond_1 │ │ - .line 256 │ - const-string v1, "ByteString[size=%s data=%s]" │ + .line 257 │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v2, "ByteString[size=%s data=%s]" │ │ - new-array v2, v3, [Ljava/lang/Object; │ + new-array v3, v3, [Ljava/lang/Object; │ │ - iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ + iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ - array-length v3, v3 │ + array-length v4, v4 │ │ - invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - aput-object v3, v2, v4 │ + aput-object v4, v3, v5 │ │ invoke-virtual {p0}, Lcom/koushikdutta/async/http/spdy/ByteString;->hex()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - aput-object v3, v2, v5 │ + aput-object v4, v3, v6 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 260 │ + .line 261 │ :cond_1 │ :try_start_0 │ - const-string v1, "ByteString[size=%s md5=%s]" │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v2, 0x2 │ + const-string v2, "ByteString[size=%s md5=%s]" │ │ - new-array v2, v2, [Ljava/lang/Object; │ + const/4 v3, 0x2 │ │ - const/4 v3, 0x0 │ + new-array v3, v3, [Ljava/lang/Object; │ │ - iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ + const/4 v4, 0x0 │ │ - array-length v4, v4 │ + iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ - invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + array-length v5, v5 │ │ - move-result-object v4 │ + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - aput-object v4, v2, v3 │ + move-result-object v5 │ │ - const/4 v3, 0x1 │ + aput-object v5, v3, v4 │ │ - const-string v4, "MD5" │ + const/4 v4, 0x1 │ │ - invoke-static {v4}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; │ + const-string v5, "MD5" │ │ - move-result-object v4 │ + .line 262 │ + invoke-static {v5}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; │ │ - iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ + move-result-object v5 │ │ - invoke-virtual {v4, v5}, Ljava/security/MessageDigest;->digest([B)[B │ + iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ - move-result-object v4 │ + invoke-virtual {v5, v6}, Ljava/security/MessageDigest;->digest([B)[B │ │ - invoke-static {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->of([B)Lcom/koushikdutta/async/http/spdy/ByteString; │ + move-result-object v5 │ │ - move-result-object v4 │ + invoke-static {v5}, Lcom/koushikdutta/async/http/spdy/ByteString;->of([B)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - invoke-virtual {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->hex()Ljava/lang/String; │ + move-result-object v5 │ │ - move-result-object v4 │ + invoke-virtual {v5}, Lcom/koushikdutta/async/http/spdy/ByteString;->hex()Ljava/lang/String; │ │ - aput-object v4, v2, v3 │ + move-result-object v5 │ + │ + aput-object v5, v3, v4 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + .line 261 │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ :try_end_0 │ .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 262 │ + .line 263 │ :catch_0 │ move-exception v0 │ │ - .line 263 │ + .line 264 │ .local v0, "e":Ljava/security/NoSuchAlgorithmException; │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ .end method │ │ .method public utf8()Ljava/lang/String; │ .locals 3 │ │ .prologue │ - .line 92 │ + .line 93 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->utf8:Ljava/lang/String; │ │ - .line 94 │ + .line 95 │ .local v0, "result":Ljava/lang/String; │ if-eqz v0, :cond_0 │ │ .end local v0 # "result":Ljava/lang/String; │ :goto_0 │ return-object v0 │ │ @@ -1226,27 +1232,27 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 237 │ + .line 238 │ if-nez p1, :cond_0 │ │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ const-string v1, "out == null" │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 238 │ + .line 239 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/ByteString;->data:[B │ │ invoke-virtual {p1, v0}, Ljava/io/OutputStream;->write([B)V │ │ - .line 239 │ + .line 240 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Header.smali │ @@ -28,69 +28,69 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 7 │ + .line 9 │ const-string v0, ":status" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->RESPONSE_STATUS:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 8 │ + .line 10 │ const-string v0, ":method" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->TARGET_METHOD:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 9 │ + .line 11 │ const-string v0, ":path" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->TARGET_PATH:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 10 │ + .line 12 │ const-string v0, ":scheme" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->TARGET_SCHEME:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 11 │ + .line 13 │ const-string v0, ":authority" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->TARGET_AUTHORITY:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 12 │ + .line 14 │ const-string v0, ":host" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->TARGET_HOST:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 13 │ + .line 15 │ const-string v0, ":version" │ │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Header;->VERSION:Lcom/koushikdutta/async/http/spdy/ByteString; │ @@ -100,100 +100,100 @@ │ │ .method public constructor (Lcom/koushikdutta/async/http/spdy/ByteString;Lcom/koushikdutta/async/http/spdy/ByteString;)V │ .locals 2 │ .param p1, "name" # Lcom/koushikdutta/async/http/spdy/ByteString; │ .param p2, "value" # Lcom/koushikdutta/async/http/spdy/ByteString; │ │ .prologue │ - .line 30 │ + .line 32 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 31 │ + .line 33 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 32 │ + .line 34 │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 33 │ + .line 35 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/spdy/ByteString;->size()I │ │ move-result v0 │ │ add-int/lit8 v0, v0, 0x20 │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/http/spdy/ByteString;->size()I │ │ move-result v1 │ │ add-int/2addr v0, v1 │ │ iput v0, p0, Lcom/koushikdutta/async/http/spdy/Header;->hpackSize:I │ │ - .line 34 │ + .line 36 │ return-void │ .end method │ │ .method public constructor (Lcom/koushikdutta/async/http/spdy/ByteString;Ljava/lang/String;)V │ .locals 1 │ .param p1, "name" # Lcom/koushikdutta/async/http/spdy/ByteString; │ .param p2, "value" # Ljava/lang/String; │ │ .prologue │ - .line 27 │ + .line 29 │ invoke-static {p2}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/http/spdy/Header;->(Lcom/koushikdutta/async/http/spdy/ByteString;Lcom/koushikdutta/async/http/spdy/ByteString;)V │ │ - .line 28 │ + .line 30 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;Ljava/lang/String;)V │ .locals 2 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "value" # Ljava/lang/String; │ │ .prologue │ - .line 23 │ + .line 25 │ invoke-static {p1}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ invoke-static {p2}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v1 │ │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/async/http/spdy/Header;->(Lcom/koushikdutta/async/http/spdy/ByteString;Lcom/koushikdutta/async/http/spdy/ByteString;)V │ │ - .line 24 │ + .line 26 │ return-void │ .end method │ │ │ # virtual methods │ .method public equals(Ljava/lang/Object;)Z │ .locals 4 │ .param p1, "other" # Ljava/lang/Object; │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 37 │ + .line 39 │ instance-of v2, p1, Lcom/koushikdutta/async/http/spdy/Header; │ │ if-eqz v2, :cond_0 │ │ move-object v0, p1 │ │ - .line 38 │ + .line 40 │ check-cast v0, Lcom/koushikdutta/async/http/spdy/Header; │ │ - .line 39 │ + .line 41 │ .local v0, "that":Lcom/koushikdutta/async/http/spdy/Header; │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ iget-object v3, v0, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->equals(Ljava/lang/Object;)Z │ │ @@ -201,90 +201,93 @@ │ │ if-eqz v2, :cond_0 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ iget-object v3, v0, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ + .line 42 │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ const/4 v1, 0x1 │ │ - .line 42 │ + .line 44 │ .end local v0 # "that":Lcom/koushikdutta/async/http/spdy/Header; │ :cond_0 │ return v1 │ .end method │ │ .method public hashCode()I │ .locals 3 │ │ .prologue │ - .line 46 │ + .line 48 │ const/16 v0, 0x11 │ │ - .line 47 │ + .line 49 │ .local v0, "result":I │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-virtual {v1}, Lcom/koushikdutta/async/http/spdy/ByteString;->hashCode()I │ │ move-result v1 │ │ add-int/lit16 v0, v1, 0x20f │ │ - .line 48 │ + .line 50 │ mul-int/lit8 v1, v0, 0x1f │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/spdy/ByteString;->hashCode()I │ │ move-result v2 │ │ add-int v0, v1, v2 │ │ - .line 49 │ + .line 51 │ return v0 │ .end method │ │ .method public toString()Ljava/lang/String; │ - .locals 4 │ + .locals 5 │ │ .prologue │ - .line 53 │ - const-string v0, "%s: %s" │ + .line 55 │ + sget-object v0, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v1, "%s: %s" │ │ - const/4 v1, 0x2 │ + const/4 v2, 0x2 │ │ - new-array v1, v1, [Ljava/lang/Object; │ + new-array v2, v2, [Ljava/lang/Object; │ │ - const/4 v2, 0x0 │ + const/4 v3, 0x0 │ │ - iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ + iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - invoke-virtual {v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->utf8()Ljava/lang/String; │ + invoke-virtual {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->utf8()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - aput-object v3, v1, v2 │ + aput-object v4, v2, v3 │ │ - const/4 v2, 0x1 │ + const/4 v3, 0x1 │ │ - iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ + iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - invoke-virtual {v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->utf8()Ljava/lang/String; │ + invoke-virtual {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->utf8()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - aput-object v3, v1, v2 │ + aput-object v4, v2, v3 │ │ - invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v0, v1, v2}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/koushikdutta/async/http/spdy/HeaderReader$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/HeaderReader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ .prologue │ .line 19 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/HeaderReader$1;->this$0:Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ invoke-direct {p0}, Ljava/util/zip/Inflater;->()V ├── smali/com/koushikdutta/async/http/spdy/HpackDraft08$Reader.smali │ @@ -493,14 +493,15 @@ │ iput-object v4, p0, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->referencedHeaders:Lcom/koushikdutta/async/http/spdy/BitArray; │ │ .line 357 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->emittedReferencedHeaders:Lcom/koushikdutta/async/http/spdy/BitArray; │ │ check-cast v4, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity; │ │ + .line 358 │ invoke-virtual {v4}, Lcom/koushikdutta/async/http/spdy/BitArray$FixedCapacity;->toVariableCapacity()Lcom/koushikdutta/async/http/spdy/BitArray; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->emittedReferencedHeaders:Lcom/koushikdutta/async/http/spdy/BitArray; │ │ .line 360 ├── smali/com/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger.smali │ @@ -20,18 +20,18 @@ │ .field private static final FLAGS:[Ljava/lang/String; │ │ .field private static final TYPES:[Ljava/lang/String; │ │ │ # direct methods │ .method static constructor ()V │ - .locals 16 │ + .locals 17 │ │ .prologue │ - .line 708 │ + .line 709 │ const/16 v11, 0xa │ │ new-array v11, v11, [Ljava/lang/String; │ │ const/4 v12, 0x0 │ │ const-string v13, "DATA" │ @@ -90,145 +90,147 @@ │ │ const-string v13, "CONTINUATION" │ │ aput-object v13, v11, v12 │ │ sput-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->TYPES:[Ljava/lang/String; │ │ - .line 725 │ + .line 726 │ const/16 v11, 0x40 │ │ new-array v11, v11, [Ljava/lang/String; │ │ sput-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ - .line 726 │ + .line 727 │ const/16 v11, 0x100 │ │ new-array v11, v11, [Ljava/lang/String; │ │ sput-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ - .line 729 │ + .line 730 │ const/4 v4, 0x0 │ │ .local v4, "i":I │ :goto_0 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ array-length v11, v11 │ │ if-ge v4, v11, :cond_0 │ │ - .line 730 │ + .line 731 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ - const-string v12, "%8s" │ + sget-object v12, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v13, 0x1 │ + const-string v13, "%8s" │ │ - new-array v13, v13, [Ljava/lang/Object; │ + const/4 v14, 0x1 │ │ - const/4 v14, 0x0 │ + new-array v14, v14, [Ljava/lang/Object; │ + │ + const/4 v15, 0x0 │ │ invoke-static {v4}, Ljava/lang/Integer;->toBinaryString(I)Ljava/lang/String; │ │ - move-result-object v15 │ + move-result-object v16 │ │ - aput-object v15, v13, v14 │ + aput-object v16, v14, v15 │ │ - invoke-static {v12, v13}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v12, v13, v14}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v12 │ │ const/16 v13, 0x20 │ │ const/16 v14, 0x30 │ │ invoke-virtual {v12, v13, v14}, Ljava/lang/String;->replace(CC)Ljava/lang/String; │ │ move-result-object v12 │ │ aput-object v12, v11, v4 │ │ - .line 729 │ + .line 730 │ add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ - .line 733 │ + .line 734 │ :cond_0 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/4 v12, 0x0 │ │ const-string v13, "" │ │ aput-object v13, v11, v12 │ │ - .line 734 │ + .line 735 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/4 v12, 0x1 │ │ const-string v13, "END_STREAM" │ │ aput-object v13, v11, v12 │ │ - .line 735 │ + .line 736 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/4 v12, 0x2 │ │ const-string v13, "END_SEGMENT" │ │ aput-object v13, v11, v12 │ │ - .line 736 │ + .line 737 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/4 v12, 0x3 │ │ const-string v13, "END_STREAM|END_SEGMENT" │ │ aput-object v13, v11, v12 │ │ - .line 737 │ + .line 738 │ const/4 v11, 0x3 │ │ new-array v10, v11, [I │ │ fill-array-data v10, :array_0 │ │ - .line 740 │ + .line 741 │ .local v10, "prefixFlags":[I │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/16 v12, 0x8 │ │ const-string v13, "PADDED" │ │ aput-object v13, v11, v12 │ │ - .line 741 │ + .line 742 │ move-object v0, v10 │ │ .local v0, "arr$":[I │ array-length v7, v0 │ │ .local v7, "len$":I │ const/4 v5, 0x0 │ │ .local v5, "i$":I │ :goto_1 │ if-ge v5, v7, :cond_1 │ │ aget v9, v0, v5 │ │ - .line 742 │ + .line 743 │ .local v9, "prefixFlag":I │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ or-int/lit8 v12, v9, 0x8 │ │ new-instance v13, Ljava/lang/StringBuilder; │ │ @@ -250,56 +252,56 @@ │ │ invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v13 │ │ aput-object v13, v11, v12 │ │ - .line 741 │ + .line 742 │ add-int/lit8 v5, v5, 0x1 │ │ goto :goto_1 │ │ - .line 745 │ + .line 746 │ .end local v9 # "prefixFlag":I │ :cond_1 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/4 v12, 0x4 │ │ const-string v13, "END_HEADERS" │ │ aput-object v13, v11, v12 │ │ - .line 746 │ + .line 747 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/16 v12, 0x20 │ │ const-string v13, "PRIORITY" │ │ aput-object v13, v11, v12 │ │ - .line 747 │ + .line 748 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ const/16 v12, 0x24 │ │ const-string v13, "END_HEADERS|PRIORITY" │ │ aput-object v13, v11, v12 │ │ - .line 748 │ + .line 749 │ const/4 v11, 0x3 │ │ new-array v3, v11, [I │ │ fill-array-data v3, :array_1 │ │ - .line 751 │ + .line 752 │ .local v3, "frameFlags":[I │ move-object v0, v3 │ │ array-length v7, v0 │ │ const/4 v5, 0x0 │ │ @@ -310,15 +312,15 @@ │ .end local v7 # "len$":I │ .local v6, "i$":I │ :goto_2 │ if-ge v6, v7, :cond_3 │ │ aget v2, v0, v6 │ │ - .line 752 │ + .line 753 │ .local v2, "frameFlag":I │ move-object v1, v10 │ │ .local v1, "arr$":[I │ array-length v8, v1 │ │ .local v8, "len$":I │ @@ -327,15 +329,15 @@ │ .end local v6 # "i$":I │ .restart local v5 # "i$":I │ :goto_3 │ if-ge v5, v8, :cond_2 │ │ aget v9, v1, v5 │ │ - .line 753 │ + .line 754 │ .restart local v9 # "prefixFlag":I │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ or-int v12, v9, v2 │ │ new-instance v13, Ljava/lang/StringBuilder; │ │ @@ -365,15 +367,15 @@ │ │ invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v13 │ │ aput-object v13, v11, v12 │ │ - .line 754 │ + .line 755 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ or-int v12, v9, v2 │ │ or-int/lit8 v12, v12, 0x8 │ │ new-instance v13, Ljava/lang/StringBuilder; │ @@ -410,152 +412,152 @@ │ │ invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v13 │ │ aput-object v13, v11, v12 │ │ - .line 752 │ + .line 753 │ add-int/lit8 v5, v5, 0x1 │ │ goto :goto_3 │ │ - .line 751 │ + .line 752 │ .end local v9 # "prefixFlag":I │ :cond_2 │ add-int/lit8 v5, v6, 0x1 │ │ move v6, v5 │ │ .end local v5 # "i$":I │ .restart local v6 # "i$":I │ goto :goto_2 │ │ - .line 759 │ + .line 760 │ .end local v1 # "arr$":[I │ .end local v2 # "frameFlag":I │ .end local v8 # "len$":I │ :cond_3 │ const/4 v4, 0x0 │ │ :goto_4 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ array-length v11, v11 │ │ if-ge v4, v11, :cond_5 │ │ - .line 760 │ + .line 761 │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ aget-object v11, v11, v4 │ │ if-nez v11, :cond_4 │ │ sget-object v11, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ sget-object v12, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ aget-object v12, v12, v4 │ │ aput-object v12, v11, v4 │ │ - .line 759 │ + .line 760 │ :cond_4 │ add-int/lit8 v4, v4, 0x1 │ │ goto :goto_4 │ │ - .line 762 │ + .line 763 │ :cond_5 │ return-void │ │ - .line 737 │ + .line 738 │ nop │ │ :array_0 │ .array-data 4 │ 0x1 │ 0x2 │ 0x3 │ .end array-data │ │ - .line 748 │ + .line 749 │ :array_1 │ .array-data 4 │ 0x4 │ 0x20 │ 0x24 │ .end array-data │ .end method │ │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 669 │ + .line 670 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method static formatFlags(BB)Ljava/lang/String; │ .locals 3 │ .param p0, "type" # B │ .param p1, "flags" # B │ │ .prologue │ - .line 684 │ + .line 685 │ if-nez p1, :cond_0 │ │ const-string v1, "" │ │ - .line 702 │ + .line 703 │ :goto_0 │ return-object v1 │ │ - .line 685 │ + .line 686 │ :cond_0 │ packed-switch p0, :pswitch_data_0 │ │ - .line 695 │ + .line 696 │ :pswitch_0 │ sget-object v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ array-length v1, v1 │ │ if-ge p1, v1, :cond_2 │ │ sget-object v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->FLAGS:[Ljava/lang/String; │ │ aget-object v0, v1, p1 │ │ - .line 697 │ + .line 698 │ .local v0, "result":Ljava/lang/String; │ :goto_1 │ const/4 v1, 0x5 │ │ if-ne p0, v1, :cond_3 │ │ and-int/lit8 v1, p1, 0x4 │ │ if-eqz v1, :cond_3 │ │ - .line 698 │ + .line 699 │ const-string v1, "HEADERS" │ │ const-string v2, "PUSH_PROMISE" │ │ invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 688 │ + .line 689 │ .end local v0 # "result":Ljava/lang/String; │ :pswitch_1 │ const/4 v1, 0x1 │ │ if-ne p1, v1, :cond_1 │ │ const-string v1, "ACK" │ @@ -565,57 +567,57 @@ │ :cond_1 │ sget-object v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ aget-object v1, v1, p1 │ │ goto :goto_0 │ │ - .line 693 │ + .line 694 │ :pswitch_2 │ sget-object v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ aget-object v1, v1, p1 │ │ goto :goto_0 │ │ - .line 695 │ + .line 696 │ :cond_2 │ sget-object v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->BINARY:[Ljava/lang/String; │ │ aget-object v0, v1, p1 │ │ goto :goto_1 │ │ - .line 699 │ + .line 700 │ .restart local v0 # "result":Ljava/lang/String; │ :cond_3 │ if-nez p0, :cond_4 │ │ and-int/lit8 v1, p1, 0x20 │ │ if-eqz v1, :cond_4 │ │ - .line 700 │ + .line 701 │ const-string v1, "PRIORITY" │ │ const-string v2, "COMPRESSED" │ │ invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; │ │ move-result-object v1 │ │ goto :goto_0 │ │ :cond_4 │ move-object v1, v0 │ │ - .line 702 │ + .line 703 │ goto :goto_0 │ │ - .line 685 │ + .line 686 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x2 │ :pswitch_2 │ :pswitch_2 │ :pswitch_1 │ @@ -623,108 +625,112 @@ │ :pswitch_1 │ :pswitch_2 │ :pswitch_2 │ .end packed-switch │ .end method │ │ .method static formatHeader(ZIIBB)Ljava/lang/String; │ - .locals 7 │ + .locals 8 │ .param p0, "inbound" # Z │ .param p1, "streamId" # I │ .param p2, "length" # I │ .param p3, "type" # B │ .param p4, "flags" # B │ │ .prologue │ - const/4 v6, 0x1 │ + const/4 v7, 0x1 │ │ - const/4 v5, 0x0 │ + const/4 v6, 0x0 │ │ - .line 672 │ + .line 673 │ sget-object v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->TYPES:[Ljava/lang/String; │ │ array-length v2, v2 │ │ if-ge p3, v2, :cond_0 │ │ sget-object v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->TYPES:[Ljava/lang/String; │ │ aget-object v1, v2, p3 │ │ - .line 673 │ + .line 674 │ .local v1, "formattedType":Ljava/lang/String; │ :goto_0 │ invoke-static {p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->formatFlags(BB)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 674 │ + .line 675 │ .local v0, "formattedFlags":Ljava/lang/String; │ - const-string v3, "%s 0x%08x %5d %-13s %s" │ + sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + const-string v4, "%s 0x%08x %5d %-13s %s" │ │ const/4 v2, 0x5 │ │ - new-array v4, v2, [Ljava/lang/Object; │ + new-array v5, v2, [Ljava/lang/Object; │ │ if-eqz p0, :cond_1 │ │ const-string v2, "<<" │ │ :goto_1 │ - aput-object v2, v4, v5 │ + aput-object v2, v5, v6 │ │ invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ - aput-object v2, v4, v6 │ + aput-object v2, v5, v7 │ │ const/4 v2, 0x2 │ │ invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v4, v2 │ + aput-object v6, v5, v2 │ │ const/4 v2, 0x3 │ │ - aput-object v1, v4, v2 │ + aput-object v1, v5, v2 │ │ const/4 v2, 0x4 │ │ - aput-object v0, v4, v2 │ + aput-object v0, v5, v2 │ │ - invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v3, v4, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ return-object v2 │ │ - .line 672 │ + .line 673 │ .end local v0 # "formattedFlags":Ljava/lang/String; │ .end local v1 # "formattedType":Ljava/lang/String; │ :cond_0 │ - const-string v2, "0x%02x" │ + sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - new-array v3, v6, [Ljava/lang/Object; │ + const-string v3, "0x%02x" │ + │ + new-array v4, v7, [Ljava/lang/Object; │ │ invoke-static {p3}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v3, v5 │ + aput-object v5, v4, v6 │ │ - invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v2, v3, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 674 │ + .line 675 │ .restart local v0 # "formattedFlags":Ljava/lang/String; │ .restart local v1 # "formattedType":Ljava/lang/String; │ :cond_1 │ const-string v2, ">>" │ │ goto :goto_1 │ .end method ├── smali/com/koushikdutta/async/http/spdy/Http20Draft13$Reader$1.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ .prologue │ - .line 123 │ + .line 124 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,38 +39,38 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 6 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 126 │ + .line 127 │ sget-object v0, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {p2, v0}, Lcom/koushikdutta/async/ByteBufferList;->order(Ljava/nio/ByteOrder;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 127 │ + .line 128 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ iput v1, v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->w1:I │ │ - .line 128 │ + .line 129 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ iput v1, v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->w2:I │ │ - .line 131 │ + .line 132 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget v1, v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->w1:I │ │ const/high16 v2, 0x3fff0000 # 1.9921875f │ @@ -78,15 +79,15 @@ │ │ shr-int/lit8 v1, v1, 0x10 │ │ int-to-short v1, v1 │ │ iput-short v1, v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ - .line 132 │ + .line 133 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget v1, v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->w1:I │ │ const v2, 0xff00 │ @@ -95,55 +96,55 @@ │ │ shr-int/lit8 v1, v1, 0x8 │ │ int-to-byte v1, v1 │ │ iput-byte v1, v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->type:B │ │ - .line 133 │ + .line 134 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget v1, v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->w1:I │ │ and-int/lit16 v1, v1, 0xff │ │ int-to-byte v1, v1 │ │ iput-byte v1, v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->flags:B │ │ - .line 135 │ + .line 136 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget v1, v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->w2:I │ │ const v2, 0x7fffffff │ │ and-int/2addr v1, v2 │ │ iput v1, v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ - .line 136 │ + .line 137 │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$000()Ljava/util/logging/Logger; │ │ move-result-object v0 │ │ sget-object v1, Ljava/util/logging/Level;->FINE:Ljava/util/logging/Level; │ │ invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->isLoggable(Ljava/util/logging/Level;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 137 │ + .line 138 │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$000()Ljava/util/logging/Logger; │ │ move-result-object v0 │ │ const/4 v1, 0x1 │ │ @@ -165,15 +166,15 @@ │ │ invoke-static {v1, v2, v3, v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->formatHeader(ZIIBB)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V │ │ - .line 139 │ + .line 140 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$200(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)Lcom/koushikdutta/async/DataEmitterReader; │ │ move-result-object v0 │ @@ -187,10 +188,10 @@ │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->onFullFrame:Lcom/koushikdutta/async/callback/DataCallback; │ invoke-static {v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$100(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)Lcom/koushikdutta/async/callback/DataCallback; │ │ move-result-object v2 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 140 │ + .line 141 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Http20Draft13$Reader$2.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ .prologue │ - .line 143 │ + .line 144 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,37 +39,37 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 5 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 147 │ + .line 148 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-byte v1, v1, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->type:B │ │ packed-switch v1, :pswitch_data_0 │ │ - .line 190 │ + .line 191 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 192 │ + .line 193 │ :goto_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->parseFrameHeader()V │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$1300(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)V │ │ - .line 197 │ + .line 198 │ :goto_1 │ return-void │ │ - .line 149 │ + .line 150 │ :pswitch_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -83,32 +84,32 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readData(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$300(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ goto :goto_0 │ │ - .line 194 │ + .line 195 │ :catch_0 │ move-exception v0 │ │ - .line 195 │ + .line 196 │ .local v0, "e":Ljava/io/IOException; │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$1400(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ move-result-object v1 │ │ invoke-interface {v1, v0}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->error(Ljava/lang/Exception;)V │ │ goto :goto_1 │ │ - .line 153 │ + .line 154 │ .end local v0 # "e":Ljava/io/IOException; │ :pswitch_1 │ :try_start_1 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ @@ -123,15 +124,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readHeaders(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$400(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto :goto_0 │ │ - .line 157 │ + .line 158 │ :pswitch_2 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -144,15 +145,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPriority(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$500(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto :goto_0 │ │ - .line 161 │ + .line 162 │ :pswitch_3 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -165,15 +166,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readRstStream(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$600(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto :goto_0 │ │ - .line 165 │ + .line 166 │ :pswitch_4 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -186,15 +187,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readSettings(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$700(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto :goto_0 │ │ - .line 169 │ + .line 170 │ :pswitch_5 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -207,15 +208,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPushPromise(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$800(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto :goto_0 │ │ - .line 173 │ + .line 174 │ :pswitch_6 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -228,15 +229,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPing(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$900(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto/16 :goto_0 │ │ - .line 177 │ + .line 178 │ :pswitch_7 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -249,15 +250,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readGoAway(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$1000(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto/16 :goto_0 │ │ - .line 181 │ + .line 182 │ :pswitch_8 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -270,15 +271,15 @@ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->streamId:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readWindowUpdate(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$1100(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ goto/16 :goto_0 │ │ - .line 185 │ + .line 186 │ :pswitch_9 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ iget-short v2, v2, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->length:S │ │ @@ -293,15 +294,15 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readContinuation(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ invoke-static {v1, p2, v2, v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->access$1200(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0 │ │ goto/16 :goto_0 │ │ - .line 147 │ + .line 148 │ nop │ │ :pswitch_data_0 │ .packed-switch 0x0 │ :pswitch_0 │ :pswitch_1 │ :pswitch_2 ├── smali/com/koushikdutta/async/http/spdy/Http20Draft13$Reader.smali │ @@ -56,67 +56,67 @@ │ .locals 1 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "handler" # Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ .param p3, "headerTableSize" # I │ .param p4, "client" # Z │ │ .prologue │ - .line 102 │ + .line 103 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 123 │ + .line 124 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$1;->(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->onFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 143 │ + .line 144 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader$2;->(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->onFullFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 103 │ + .line 104 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 104 │ + .line 105 │ iput-boolean p4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->client:Z │ │ - .line 105 │ + .line 106 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ invoke-direct {v0, p3}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->(I)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ - .line 106 │ + .line 107 │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ - .line 107 │ + .line 108 │ new-instance v0, Lcom/koushikdutta/async/DataEmitterReader; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/DataEmitterReader;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ - .line 109 │ + .line 110 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->parseFrameHeader()V │ │ - .line 110 │ + .line 111 │ return-void │ .end method │ │ .method static synthetic access$100(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)Lcom/koushikdutta/async/callback/DataCallback; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ .prologue │ - .line 93 │ + .line 94 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->onFullFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1000(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -128,15 +128,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readGoAway(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$1100(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -148,15 +148,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readWindowUpdate(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$1200(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -168,48 +168,48 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readContinuation(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$1300(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->parseFrameHeader()V │ │ return-void │ .end method │ │ .method static synthetic access$1400(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ .prologue │ - .line 93 │ + .line 94 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ return-object v0 │ .end method │ │ .method static synthetic access$200(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;)Lcom/koushikdutta/async/DataEmitterReader; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ .prologue │ - .line 93 │ + .line 94 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ return-object v0 │ .end method │ │ .method static synthetic access$300(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -221,15 +221,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readData(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$400(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -241,15 +241,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readHeaders(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$500(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -261,15 +261,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPriority(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$600(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -281,15 +281,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readRstStream(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$700(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -301,15 +301,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readSettings(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$800(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -321,15 +321,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPushPromise(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method static synthetic access$900(Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 0 │ @@ -341,41 +341,41 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 93 │ + .line 94 │ invoke-direct {p0, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPing(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ │ return-void │ .end method │ │ .method private parseFrameHeader()V │ .locals 3 │ │ .prologue │ - .line 113 │ + .line 114 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/DataEmitter;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 114 │ + .line 115 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ const/16 v1, 0x8 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->onFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 115 │ + .line 116 │ return-void │ .end method │ │ .method private readContinuation(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 6 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -384,29 +384,29 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 236 │ + .line 237 │ iget v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->continuingStreamId:I │ │ if-eq p4, v0, :cond_0 │ │ - .line 237 │ + .line 238 │ new-instance v0, Ljava/io/IOException; │ │ const-string v1, "continuation stream id mismatch" │ │ invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 238 │ + .line 239 │ :cond_0 │ const/4 v3, 0x0 │ │ move-object v0, p0 │ │ move-object v1, p1 │ │ @@ -414,15 +414,15 @@ │ │ move v4, p3 │ │ move v5, p4 │ │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readHeaderBlock(Lcom/koushikdutta/async/ByteBufferList;SSBI)V │ │ - .line 239 │ + .line 240 │ return-void │ .end method │ │ .method private readData(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 5 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -435,34 +435,34 @@ │ .end annotation │ │ .prologue │ const/4 v0, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 270 │ + .line 271 │ and-int/lit8 v3, p3, 0x1 │ │ if-eqz v3, :cond_0 │ │ move v1, v0 │ │ - .line 271 │ + .line 272 │ .local v1, "inFinished":Z │ :goto_0 │ and-int/lit8 v3, p3, 0x20 │ │ if-eqz v3, :cond_1 │ │ - .line 272 │ + .line 273 │ .local v0, "gzipped":Z │ :goto_1 │ if-eqz v0, :cond_2 │ │ - .line 273 │ + .line 274 │ const-string v3, "PROTOCOL_ERROR: FLAG_COMPRESSED without SETTINGS_COMPRESS_DATA" │ │ new-array v4, v2, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v3, v4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ @@ -471,56 +471,56 @@ │ throw v3 │ │ .end local v0 # "gzipped":Z │ .end local v1 # "inFinished":Z │ :cond_0 │ move v1, v2 │ │ - .line 270 │ + .line 271 │ goto :goto_0 │ │ .restart local v1 # "inFinished":Z │ :cond_1 │ move v0, v2 │ │ - .line 271 │ + .line 272 │ goto :goto_1 │ │ - .line 276 │ + .line 277 │ .restart local v0 # "gzipped":Z │ :cond_2 │ and-int/lit8 v3, p3, 0x8 │ │ if-eqz v3, :cond_3 │ │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v3 │ │ and-int/lit16 v3, v3, 0xff │ │ int-to-short v2, v3 │ │ - .line 277 │ + .line 278 │ .local v2, "padding":S │ :cond_3 │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->lengthWithoutPadding(SBS)S │ invoke-static {p2, p3, v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1600(SBS)S │ │ move-result p2 │ │ - .line 279 │ + .line 280 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v3, v1, p4, p1}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->data(ZILcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 280 │ + .line 281 │ invoke-virtual {p1, v2}, Lcom/koushikdutta/async/ByteBufferList;->skip(I)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 281 │ + .line 282 │ return-void │ .end method │ │ .method private readGoAway(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 9 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -533,15 +533,15 @@ │ .end annotation │ │ .prologue │ const/4 v6, 0x1 │ │ const/4 v8, 0x0 │ │ - .line 381 │ + .line 382 │ const/16 v5, 0x8 │ │ if-ge p2, v5, :cond_0 │ │ const-string v5, "TYPE_GOAWAY length < 8: %s" │ │ new-array v6, v6, [Ljava/lang/Object; │ @@ -555,56 +555,56 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v5, v6}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 382 │ + .line 383 │ :cond_0 │ if-eqz p4, :cond_1 │ │ const-string v5, "TYPE_GOAWAY streamId != 0" │ │ new-array v6, v8, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v5, v6}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 383 │ + .line 384 │ :cond_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v3 │ │ - .line 384 │ + .line 385 │ .local v3, "lastStreamId":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v2 │ │ - .line 385 │ + .line 386 │ .local v2, "errorCodeInt":I │ add-int/lit8 v4, p2, -0x8 │ │ - .line 386 │ + .line 387 │ .local v4, "opaqueDataLength":I │ invoke-static {v2}, Lcom/koushikdutta/async/http/spdy/ErrorCode;->fromHttp2(I)Lcom/koushikdutta/async/http/spdy/ErrorCode; │ │ move-result-object v1 │ │ - .line 387 │ + .line 388 │ .local v1, "errorCode":Lcom/koushikdutta/async/http/spdy/ErrorCode; │ if-nez v1, :cond_2 │ │ - .line 388 │ + .line 389 │ const-string v5, "TYPE_GOAWAY unexpected error code: %d" │ │ new-array v6, v6, [Ljava/lang/Object; │ │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v7 │ @@ -614,38 +614,38 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v5, v6}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 390 │ + .line 391 │ :cond_2 │ sget-object v0, Lcom/koushikdutta/async/http/spdy/ByteString;->EMPTY:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 391 │ + .line 392 │ .local v0, "debugData":Lcom/koushikdutta/async/http/spdy/ByteString; │ if-lez v4, :cond_3 │ │ - .line 392 │ + .line 393 │ invoke-virtual {p1, v4}, Lcom/koushikdutta/async/ByteBufferList;->getBytes(I)[B │ │ move-result-object v5 │ │ invoke-static {v5}, Lcom/koushikdutta/async/http/spdy/ByteString;->of([B)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ - .line 394 │ + .line 395 │ :cond_3 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v5, v3, v1, v0}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->goAway(ILcom/koushikdutta/async/http/spdy/ErrorCode;Lcom/koushikdutta/async/http/spdy/ByteString;)V │ │ - .line 395 │ + .line 396 │ return-void │ .end method │ │ .method private readHeaderBlock(Lcom/koushikdutta/async/ByteBufferList;SSBI)V │ .locals 7 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -659,48 +659,48 @@ │ .end annotation │ │ .prologue │ const/4 v2, 0x1 │ │ const/4 v1, 0x0 │ │ - .line 244 │ + .line 245 │ invoke-virtual {p1, p3}, Lcom/koushikdutta/async/ByteBufferList;->skip(I)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 245 │ + .line 246 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->refill(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 246 │ + .line 247 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->readHeaders()V │ │ - .line 247 │ + .line 248 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ invoke-virtual {v0}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->emitReferenceSet()V │ │ - .line 250 │ + .line 251 │ and-int/lit8 v0, p4, 0x4 │ │ if-eqz v0, :cond_3 │ │ - .line 251 │ + .line 252 │ iget-byte v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->pendingHeaderType:B │ │ if-ne v0, v2, :cond_1 │ │ - .line 252 │ + .line 253 │ and-int/lit8 v0, p4, 0x1 │ │ if-eqz v0, :cond_0 │ │ - .line 253 │ + .line 254 │ .local v2, "endStream":Z │ :goto_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ const/4 v4, -0x1 │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ @@ -711,59 +711,59 @@ │ │ sget-object v6, Lcom/koushikdutta/async/http/spdy/HeadersMode;->HTTP_20_HEADERS:Lcom/koushikdutta/async/http/spdy/HeadersMode; │ │ move v3, p5 │ │ invoke-interface/range {v0 .. v6}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->headers(ZZIILjava/util/List;Lcom/koushikdutta/async/http/spdy/HeadersMode;)V │ │ - .line 265 │ + .line 266 │ .end local v2 # "endStream":Z │ :goto_1 │ return-void │ │ :cond_0 │ move v2, v1 │ │ - .line 252 │ + .line 253 │ goto :goto_0 │ │ - .line 255 │ + .line 256 │ :cond_1 │ iget-byte v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->pendingHeaderType:B │ │ const/4 v1, 0x5 │ │ if-ne v0, v1, :cond_2 │ │ - .line 256 │ + .line 257 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ iget v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->promisedStreamId:I │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->getAndReset()Ljava/util/List; │ │ move-result-object v3 │ │ invoke-interface {v0, p5, v1, v3}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->pushPromise(IILjava/util/List;)V │ │ goto :goto_1 │ │ - .line 259 │ + .line 260 │ :cond_2 │ new-instance v0, Ljava/lang/AssertionError; │ │ const-string v1, "unknown header type" │ │ invoke-direct {v0, v1}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v0 │ │ - .line 263 │ + .line 264 │ :cond_3 │ iput p5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->continuingStreamId:I │ │ goto :goto_1 │ .end method │ │ .method private readHeaders(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ @@ -777,83 +777,83 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 216 │ + .line 217 │ if-nez p4, :cond_0 │ │ const-string v0, "PROTOCOL_ERROR: TYPE_HEADERS streamId == 0" │ │ new-array v1, v3, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v0 │ │ throw v0 │ │ - .line 219 │ + .line 220 │ :cond_0 │ and-int/lit8 v0, p3, 0x8 │ │ if-eqz v0, :cond_1 │ │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v0 │ │ and-int/lit16 v0, v0, 0xff │ │ int-to-short v3, v0 │ │ - .line 221 │ + .line 222 │ .local v3, "padding":S │ :cond_1 │ and-int/lit8 v0, p3, 0x20 │ │ if-eqz v0, :cond_2 │ │ - .line 222 │ + .line 223 │ invoke-direct {p0, p1, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPriority(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 223 │ + .line 224 │ add-int/lit8 v0, p2, -0x5 │ │ int-to-short p2, v0 │ │ - .line 226 │ + .line 227 │ :cond_2 │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->lengthWithoutPadding(SBS)S │ invoke-static {p2, p3, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1600(SBS)S │ │ move-result p2 │ │ - .line 228 │ + .line 229 │ iget-byte v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->type:B │ │ iput-byte v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->pendingHeaderType:B │ │ move-object v0, p0 │ │ move-object v1, p1 │ │ move v2, p2 │ │ move v4, p3 │ │ move v5, p4 │ │ - .line 229 │ + .line 230 │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readHeaderBlock(Lcom/koushikdutta/async/ByteBufferList;SSBI)V │ │ - .line 232 │ + .line 233 │ return-void │ .end method │ │ .method private readPing(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 7 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -866,15 +866,15 @@ │ .end annotation │ │ .prologue │ const/4 v0, 0x1 │ │ const/4 v3, 0x0 │ │ - .line 371 │ + .line 372 │ const/16 v4, 0x8 │ │ if-eq p2, v4, :cond_0 │ │ const-string v4, "TYPE_PING length != 8: %s" │ │ new-array v5, v0, [Ljava/lang/Object; │ @@ -888,118 +888,118 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v3 │ │ throw v3 │ │ - .line 372 │ + .line 373 │ :cond_0 │ if-eqz p4, :cond_1 │ │ const-string v4, "TYPE_PING streamId != 0" │ │ new-array v3, v3, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v3 │ │ throw v3 │ │ - .line 373 │ + .line 374 │ :cond_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ - .line 374 │ + .line 375 │ .local v1, "payload1":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v2 │ │ - .line 375 │ + .line 376 │ .local v2, "payload2":I │ and-int/lit8 v4, p3, 0x1 │ │ if-eqz v4, :cond_2 │ │ - .line 376 │ + .line 377 │ .local v0, "ack":Z │ :goto_0 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v3, v0, v1, v2}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->ping(ZII)V │ │ - .line 377 │ + .line 378 │ return-void │ │ .end local v0 # "ack":Z │ :cond_2 │ move v0, v3 │ │ - .line 375 │ + .line 376 │ goto :goto_0 │ .end method │ │ .method private readPriority(Lcom/koushikdutta/async/ByteBufferList;I)V │ .locals 5 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "streamId" # I │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 291 │ + .line 292 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v2 │ │ - .line 292 │ + .line 293 │ .local v2, "w1":I │ const/high16 v4, -0x80000000 │ │ and-int/2addr v4, v2 │ │ if-eqz v4, :cond_0 │ │ const/4 v0, 0x1 │ │ - .line 293 │ + .line 294 │ .local v0, "exclusive":Z │ :goto_0 │ const v4, 0x7fffffff │ │ and-int v1, v2, v4 │ │ - .line 294 │ + .line 295 │ .local v1, "streamDependency":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v4 │ │ and-int/lit16 v4, v4, 0xff │ │ add-int/lit8 v3, v4, 0x1 │ │ - .line 295 │ + .line 296 │ .local v3, "weight":I │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v4, p2, v1, v3, v0}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->priority(IIIZ)V │ │ - .line 296 │ + .line 297 │ return-void │ │ - .line 292 │ + .line 293 │ .end local v0 # "exclusive":Z │ .end local v1 # "streamDependency":I │ .end local v3 # "weight":I │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ @@ -1016,15 +1016,15 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 285 │ + .line 286 │ const/4 v0, 0x5 │ │ if-eq p2, v0, :cond_0 │ │ const-string v0, "TYPE_PRIORITY length: %d != 5" │ │ const/4 v1, 0x1 │ @@ -1040,34 +1040,34 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v0 │ │ throw v0 │ │ - .line 286 │ + .line 287 │ :cond_0 │ if-nez p4, :cond_1 │ │ const-string v0, "TYPE_PRIORITY streamId == 0" │ │ new-array v1, v3, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v0 │ │ throw v0 │ │ - .line 287 │ + .line 288 │ :cond_1 │ invoke-direct {p0, p1, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readPriority(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 288 │ + .line 289 │ return-void │ .end method │ │ .method private readPushPromise(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 6 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -1078,86 +1078,86 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v3, 0x0 │ │ - .line 358 │ + .line 359 │ if-nez p4, :cond_0 │ │ - .line 359 │ + .line 360 │ const-string v0, "PROTOCOL_ERROR: TYPE_PUSH_PROMISE streamId == 0" │ │ new-array v1, v3, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v0 │ │ throw v0 │ │ - .line 361 │ + .line 362 │ :cond_0 │ and-int/lit8 v0, p3, 0x8 │ │ if-eqz v0, :cond_1 │ │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->get()B │ │ move-result v0 │ │ and-int/lit16 v0, v0, 0xff │ │ int-to-short v3, v0 │ │ - .line 362 │ + .line 363 │ .local v3, "padding":S │ :cond_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v0 │ │ const v1, 0x7fffffff │ │ and-int/2addr v0, v1 │ │ iput v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->promisedStreamId:I │ │ - .line 363 │ + .line 364 │ add-int/lit8 v0, p2, -0x4 │ │ int-to-short p2, v0 │ │ - .line 364 │ + .line 365 │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->lengthWithoutPadding(SBS)S │ invoke-static {p2, p3, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1600(SBS)S │ │ move-result p2 │ │ - .line 365 │ + .line 366 │ const/4 v0, 0x5 │ │ iput-byte v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->pendingHeaderType:B │ │ move-object v0, p0 │ │ move-object v1, p1 │ │ move v2, p2 │ │ move v4, p3 │ │ move v5, p4 │ │ - .line 366 │ + .line 367 │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->readHeaderBlock(Lcom/koushikdutta/async/ByteBufferList;SSBI)V │ │ - .line 367 │ + .line 368 │ return-void │ .end method │ │ .method private readRstStream(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 6 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -1170,15 +1170,15 @@ │ .end annotation │ │ .prologue │ const/4 v3, 0x1 │ │ const/4 v5, 0x0 │ │ - .line 300 │ + .line 301 │ const/4 v2, 0x4 │ │ if-eq p2, v2, :cond_0 │ │ const-string v2, "TYPE_RST_STREAM length: %d != 4" │ │ new-array v3, v3, [Ljava/lang/Object; │ @@ -1192,46 +1192,46 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v2, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v2 │ │ throw v2 │ │ - .line 301 │ + .line 302 │ :cond_0 │ if-nez p4, :cond_1 │ │ const-string v2, "TYPE_RST_STREAM streamId == 0" │ │ new-array v3, v5, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v2, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v2 │ │ throw v2 │ │ - .line 302 │ + .line 303 │ :cond_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ - .line 303 │ + .line 304 │ .local v1, "errorCodeInt":I │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/ErrorCode;->fromHttp2(I)Lcom/koushikdutta/async/http/spdy/ErrorCode; │ │ move-result-object v0 │ │ - .line 304 │ + .line 305 │ .local v0, "errorCode":Lcom/koushikdutta/async/http/spdy/ErrorCode; │ if-nez v0, :cond_2 │ │ - .line 305 │ + .line 306 │ const-string v2, "TYPE_RST_STREAM unexpected error code: %d" │ │ new-array v3, v3, [Ljava/lang/Object; │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ @@ -1241,21 +1241,21 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v2, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v2 │ │ throw v2 │ │ - .line 307 │ + .line 308 │ :cond_2 │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v2, p4, v0}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->rstStream(ILcom/koushikdutta/async/http/spdy/ErrorCode;)V │ │ - .line 308 │ + .line 309 │ return-void │ .end method │ │ .method private readSettings(Lcom/koushikdutta/async/ByteBufferList;SBI)V │ .locals 8 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "length" # S │ @@ -1268,60 +1268,60 @@ │ .end annotation │ │ .prologue │ const/4 v5, 0x1 │ │ const/4 v7, 0x0 │ │ - .line 312 │ + .line 313 │ if-eqz p4, :cond_0 │ │ const-string v4, "TYPE_SETTINGS streamId != 0" │ │ new-array v5, v7, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 313 │ + .line 314 │ :cond_0 │ and-int/lit8 v4, p3, 0x1 │ │ if-eqz v4, :cond_3 │ │ - .line 314 │ + .line 315 │ if-eqz p2, :cond_1 │ │ const-string v4, "FRAME_SIZE_ERROR ack frame should be empty!" │ │ new-array v5, v7, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 315 │ + .line 316 │ :cond_1 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v4}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->ackSettings()V │ │ - .line 353 │ + .line 354 │ :cond_2 │ :goto_0 │ return-void │ │ - .line 319 │ + .line 320 │ :cond_3 │ rem-int/lit8 v4, p2, 0x6 │ │ if-eqz v4, :cond_4 │ │ const-string v4, "TYPE_SETTINGS length %% 6 != 0: %s" │ │ @@ -1336,44 +1336,44 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 320 │ + .line 321 │ :cond_4 │ new-instance v2, Lcom/koushikdutta/async/http/spdy/Settings; │ │ invoke-direct {v2}, Lcom/koushikdutta/async/http/spdy/Settings;->()V │ │ - .line 321 │ + .line 322 │ .local v2, "settings":Lcom/koushikdutta/async/http/spdy/Settings; │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_1 │ if-ge v0, p2, :cond_6 │ │ - .line 322 │ + .line 323 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getShort()S │ │ move-result v1 │ │ - .line 323 │ + .line 324 │ .local v1, "id":S │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v3 │ │ - .line 325 │ + .line 326 │ .local v3, "value":I │ packed-switch v1, :pswitch_data_0 │ │ - .line 345 │ + .line 346 │ const-string v4, "PROTOCOL_ERROR invalid settings id: %s" │ │ new-array v5, v5, [Ljava/lang/Object; │ │ invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short; │ │ move-result-object v6 │ @@ -1383,92 +1383,92 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 329 │ + .line 330 │ :pswitch_0 │ if-eqz v3, :cond_5 │ │ if-eq v3, v5, :cond_5 │ │ - .line 330 │ + .line 331 │ const-string v4, "PROTOCOL_ERROR SETTINGS_ENABLE_PUSH != 0 or 1" │ │ new-array v5, v7, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 334 │ + .line 335 │ :pswitch_1 │ const/4 v1, 0x4 │ │ - .line 347 │ + .line 348 │ :cond_5 │ :pswitch_2 │ invoke-virtual {v2, v1, v7, v3}, Lcom/koushikdutta/async/http/spdy/Settings;->set(III)Lcom/koushikdutta/async/http/spdy/Settings; │ │ - .line 321 │ + .line 322 │ add-int/lit8 v0, v0, 0x6 │ │ goto :goto_1 │ │ - .line 337 │ + .line 338 │ :pswitch_3 │ const/4 v1, 0x7 │ │ - .line 338 │ + .line 339 │ if-gez v3, :cond_5 │ │ - .line 339 │ + .line 340 │ const-string v4, "PROTOCOL_ERROR SETTINGS_INITIAL_WINDOW_SIZE > 2^31 - 1" │ │ new-array v5, v7, [Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 349 │ + .line 350 │ .end local v1 # "id":S │ .end local v3 # "value":I │ :cond_6 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v4, v7, v2}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->settings(ZLcom/koushikdutta/async/http/spdy/Settings;)V │ │ - .line 350 │ + .line 351 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/spdy/Settings;->getHeaderTableSize()I │ │ move-result v4 │ │ if-ltz v4, :cond_2 │ │ - .line 351 │ + .line 352 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->hpackReader:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader; │ │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/spdy/Settings;->getHeaderTableSize()I │ │ move-result v5 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Reader;->maxHeaderTableByteCountSetting(I)V │ │ goto :goto_0 │ │ - .line 325 │ + .line 326 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_2 │ :pswitch_0 │ :pswitch_1 │ :pswitch_3 │ :pswitch_2 │ @@ -1488,15 +1488,15 @@ │ .end annotation │ │ .prologue │ const/4 v7, 0x1 │ │ const/4 v6, 0x0 │ │ - .line 399 │ + .line 400 │ const/4 v2, 0x4 │ │ if-eq p2, v2, :cond_0 │ │ const-string v2, "TYPE_WINDOW_UPDATE length !=4: %s" │ │ new-array v3, v7, [Ljava/lang/Object; │ @@ -1510,27 +1510,27 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v2, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v2 │ │ throw v2 │ │ - .line 400 │ + .line 401 │ :cond_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v2 │ │ int-to-long v2, v2 │ │ const-wide/32 v4, 0x7fffffff │ │ and-long v0, v2, v4 │ │ - .line 401 │ + .line 402 │ .local v0, "increment":J │ const-wide/16 v2, 0x0 │ │ cmp-long v2, v0, v2 │ │ if-nez v2, :cond_1 │ │ @@ -1547,16 +1547,16 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ invoke-static {v2, v3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v2 │ │ throw v2 │ │ - .line 402 │ + .line 403 │ :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v2, p4, v0, v1}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->windowUpdate(IJ)V │ │ - .line 403 │ + .line 404 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Http20Draft13$Writer.smali │ @@ -32,111 +32,111 @@ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataSink;Z)V │ .locals 1 │ .param p1, "sink" # Lcom/koushikdutta/async/BufferedDataSink; │ .param p2, "client" # Z │ │ .prologue │ - .line 413 │ + .line 414 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 411 │ + .line 412 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 414 │ + .line 415 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ - .line 415 │ + .line 416 │ iput-boolean p2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->client:Z │ │ - .line 416 │ + .line 417 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->hpackWriter:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer; │ │ - .line 417 │ + .line 418 │ return-void │ .end method │ │ .method private writeContinuationFrames(Lcom/koushikdutta/async/ByteBufferList;I)V │ .locals 4 │ .param p1, "hpackBuffer" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "streamId" # I │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 500 │ + .line 501 │ :goto_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->hasRemaining()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - .line 501 │ + .line 502 │ const/16 v2, 0x3fff │ │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v3 │ │ invoke-static {v2, v3}, Ljava/lang/Math;->min(II)I │ │ move-result v0 │ │ - .line 502 │ + .line 503 │ .local v0, "length":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v2 │ │ sub-int v1, v2, v0 │ │ - .line 503 │ + .line 504 │ .local v1, "newRemaining":I │ const/16 v3, 0x9 │ │ if-nez v1, :cond_0 │ │ const/4 v2, 0x4 │ │ :goto_1 │ invoke-virtual {p0, p2, v0, v3, v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 504 │ + .line 505 │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {p1, v2, v0}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 505 │ + .line 506 │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ goto :goto_0 │ │ - .line 503 │ + .line 504 │ :cond_0 │ const/4 v2, 0x0 │ │ goto :goto_1 │ │ - .line 507 │ + .line 508 │ .end local v0 # "length":I │ .end local v1 # "newRemaining":I │ :cond_1 │ return-void │ .end method │ │ │ @@ -146,15 +146,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 421 │ + .line 422 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v4, :cond_0 │ │ @@ -171,86 +171,86 @@ │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ │ throw v4 │ │ - .line 422 │ + .line 423 │ :cond_0 │ const/4 v1, 0x0 │ │ - .line 423 │ + .line 424 │ .local v1, "length":I │ const/4 v3, 0x4 │ │ - .line 424 │ + .line 425 │ .local v3, "type":B │ const/4 v0, 0x1 │ │ - .line 425 │ + .line 426 │ .local v0, "flags":B │ const/4 v2, 0x0 │ │ - .line 426 │ + .line 427 │ .local v2, "streamId":I │ :try_start_1 │ invoke-virtual {p0, v2, v1, v3, v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 427 │ + .line 428 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized close()V │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 615 │ + .line 616 │ monitor-enter p0 │ │ const/4 v0, 0x1 │ │ :try_start_0 │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 616 │ + .line 617 │ monitor-exit p0 │ │ return-void │ │ - .line 615 │ + .line 616 │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ .end method │ │ .method public declared-synchronized connectionPreface()V │ - .locals 5 │ + .locals 6 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 431 │ + .line 432 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v0, :cond_0 │ │ @@ -267,24 +267,24 @@ │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ │ - .line 432 │ + .line 433 │ :cond_0 │ :try_start_1 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->client:Z │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ if-nez v0, :cond_1 │ │ - .line 437 │ + .line 438 │ :goto_0 │ monitor-exit p0 │ │ return-void │ │ .line 433 │ :cond_1 │ @@ -292,52 +292,55 @@ │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$000()Ljava/util/logging/Logger; │ │ move-result-object v0 │ │ sget-object v1, Ljava/util/logging/Level;->FINE:Ljava/util/logging/Level; │ │ + .line 434 │ invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->isLoggable(Ljava/util/logging/Level;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 434 │ + .line 435 │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$000()Ljava/util/logging/Logger; │ │ move-result-object v0 │ │ - const-string v1, ">> CONNECTION %s" │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v2, 0x1 │ + const-string v2, ">> CONNECTION %s" │ │ - new-array v2, v2, [Ljava/lang/Object; │ + const/4 v3, 0x1 │ │ - const/4 v3, 0x0 │ + new-array v3, v3, [Ljava/lang/Object; │ + │ + const/4 v4, 0x0 │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->CONNECTION_PREFACE:Lcom/koushikdutta/async/http/spdy/ByteString; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1700()Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - invoke-virtual {v4}, Lcom/koushikdutta/async/http/spdy/ByteString;->hex()Ljava/lang/String; │ + invoke-virtual {v5}, Lcom/koushikdutta/async/http/spdy/ByteString;->hex()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v5 │ │ - aput-object v4, v2, v3 │ + aput-object v5, v3, v4 │ │ - invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + invoke-static {v1, v2, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V │ │ - .line 436 │ + .line 437 │ :cond_2 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ new-instance v1, Lcom/koushikdutta/async/ByteBufferList; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->CONNECTION_PREFACE:Lcom/koushikdutta/async/http/spdy/ByteString; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1700()Lcom/koushikdutta/async/http/spdy/ByteString; │ @@ -365,15 +368,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 528 │ + .line 529 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v1, :cond_0 │ │ @@ -390,34 +393,34 @@ │ :catchall_0 │ move-exception v1 │ │ monitor-exit p0 │ │ throw v1 │ │ - .line 529 │ + .line 530 │ :cond_0 │ const/4 v0, 0x0 │ │ - .line 530 │ + .line 531 │ .local v0, "flags":B │ if-eqz p1, :cond_1 │ │ const/4 v1, 0x1 │ │ int-to-byte v0, v1 │ │ - .line 531 │ + .line 532 │ :cond_1 │ :try_start_1 │ invoke-virtual {p0, p2, v0, p3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->dataFrame(IBLcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 532 │ + .line 533 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method dataFrame(IBLcom/koushikdutta/async/ByteBufferList;)V │ .locals 2 │ @@ -427,31 +430,31 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 535 │ + .line 536 │ const/4 v0, 0x0 │ │ - .line 536 │ + .line 537 │ .local v0, "type":B │ invoke-virtual {p3}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v1 │ │ invoke-virtual {p0, p1, v1, v0, p2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 537 │ + .line 538 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ invoke-virtual {v1, p3}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 538 │ + .line 539 │ return-void │ .end method │ │ .method frameHeader(IIBB)V │ .locals 6 │ .param p1, "streamId" # I │ .param p2, "length" # I │ @@ -466,45 +469,45 @@ │ .prologue │ const/16 v3, 0x3fff │ │ const/4 v5, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 619 │ + .line 620 │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$000()Ljava/util/logging/Logger; │ │ move-result-object v1 │ │ sget-object v2, Ljava/util/logging/Level;->FINE:Ljava/util/logging/Level; │ │ invoke-virtual {v1, v2}, Ljava/util/logging/Logger;->isLoggable(Ljava/util/logging/Level;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - .line 620 │ + .line 621 │ # getter for: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ invoke-static {}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$000()Ljava/util/logging/Logger; │ │ move-result-object v1 │ │ invoke-static {v4, p1, p2, p3, p4}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$FrameLogger;->formatHeader(ZIIBB)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V │ │ - .line 621 │ + .line 622 │ :cond_0 │ if-le p2, v3, :cond_1 │ │ - .line 622 │ + .line 623 │ const-string v1, "FRAME_SIZE_ERROR length > %d: %d" │ │ const/4 v2, 0x2 │ │ new-array v2, v2, [Ljava/lang/Object; │ │ invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ @@ -522,23 +525,23 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ invoke-static {v1, v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1800(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ │ move-result-object v1 │ │ throw v1 │ │ - .line 624 │ + .line 625 │ :cond_1 │ const/high16 v1, -0x80000000 │ │ and-int/2addr v1, p1 │ │ if-eqz v1, :cond_2 │ │ - .line 625 │ + .line 626 │ const-string v1, "reserved bit set: %s" │ │ new-array v2, v5, [Ljava/lang/Object; │ │ invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ @@ -548,29 +551,29 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ invoke-static {v1, v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1800(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ │ move-result-object v1 │ │ throw v1 │ │ - .line 626 │ + .line 627 │ :cond_2 │ const/16 v1, 0x100 │ │ invoke-static {v1}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v1 │ │ sget-object v2, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ - .line 627 │ + .line 628 │ .local v0, "sink":Ljava/nio/ByteBuffer; │ and-int/lit16 v1, p2, 0x3fff │ │ shl-int/lit8 v1, v1, 0x10 │ │ and-int/lit16 v2, p3, 0xff │ │ @@ -580,36 +583,36 @@ │ │ and-int/lit16 v2, p4, 0xff │ │ or-int/2addr v1, v2 │ │ invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 628 │ + .line 629 │ const v1, 0x7fffffff │ │ and-int/2addr v1, p1 │ │ invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 629 │ + .line 630 │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 630 │ + .line 631 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v2, v0}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 631 │ + .line 632 │ return-void │ .end method │ │ .method public declared-synchronized goAway(ILcom/koushikdutta/async/http/spdy/ErrorCode;[B)V │ .locals 7 │ .param p1, "lastGoodStreamId" # I │ .param p2, "errorCode" # Lcom/koushikdutta/async/http/spdy/ErrorCode; │ @@ -617,15 +620,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 580 │ + .line 581 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v5, :cond_0 │ │ @@ -642,15 +645,15 @@ │ :catchall_0 │ move-exception v5 │ │ monitor-exit p0 │ │ throw v5 │ │ - .line 581 │ + .line 582 │ :cond_0 │ :try_start_1 │ iget v5, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->httpCode:I │ │ const/4 v6, -0x1 │ │ if-ne v5, v6, :cond_1 │ @@ -664,78 +667,78 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ invoke-static {v5, v6}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1800(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 582 │ + .line 583 │ :cond_1 │ array-length v5, p3 │ │ add-int/lit8 v1, v5, 0x8 │ │ - .line 583 │ + .line 584 │ .local v1, "length":I │ const/4 v4, 0x7 │ │ - .line 584 │ + .line 585 │ .local v4, "type":B │ const/4 v0, 0x0 │ │ - .line 585 │ + .line 586 │ .local v0, "flags":B │ const/4 v3, 0x0 │ │ - .line 586 │ + .line 587 │ .local v3, "streamId":I │ invoke-virtual {p0, v3, v1, v4, v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 587 │ + .line 588 │ const/16 v5, 0x100 │ │ invoke-static {v5}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ sget-object v6, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 588 │ + .line 589 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ invoke-virtual {v2, p1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 589 │ + .line 590 │ iget v5, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->httpCode:I │ │ invoke-virtual {v2, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 590 │ + .line 591 │ invoke-virtual {v2, p3}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer; │ │ - .line 591 │ + .line 592 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 592 │ + .line 593 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v2}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 593 │ + .line 594 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized headers(ILjava/util/List;)V │ .locals 2 │ @@ -753,15 +756,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 458 │ + .line 459 │ .local p2, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v0, :cond_0 │ @@ -779,24 +782,24 @@ │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ │ - .line 459 │ + .line 460 │ :cond_0 │ const/4 v0, 0x0 │ │ :try_start_1 │ invoke-virtual {p0, v0, p1, p2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->headers(ZILjava/util/List;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 460 │ + .line 461 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method headers(ZILjava/util/List;)V │ .locals 8 │ @@ -815,107 +818,107 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 484 │ + .line 485 │ .local p3, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ iget-boolean v6, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v6, :cond_0 │ │ new-instance v6, Ljava/io/IOException; │ │ const-string v7, "closed" │ │ invoke-direct {v6, v7}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v6 │ │ - .line 485 │ + .line 486 │ :cond_0 │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->hpackWriter:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer; │ │ invoke-virtual {v6, p3}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer;->writeHeaders(Ljava/util/List;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v3 │ │ - .line 487 │ + .line 488 │ .local v3, "hpackBuffer":Lcom/koushikdutta/async/ByteBufferList; │ invoke-virtual {v3}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ int-to-long v0, v6 │ │ - .line 488 │ + .line 489 │ .local v0, "byteCount":J │ const-wide/16 v6, 0x3fff │ │ invoke-static {v6, v7, v0, v1}, Ljava/lang/Math;->min(JJ)J │ │ move-result-wide v6 │ │ long-to-int v4, v6 │ │ - .line 489 │ + .line 490 │ .local v4, "length":I │ const/4 v5, 0x1 │ │ - .line 490 │ + .line 491 │ .local v5, "type":B │ int-to-long v6, v4 │ │ cmp-long v6, v0, v6 │ │ if-nez v6, :cond_3 │ │ const/4 v2, 0x4 │ │ - .line 491 │ + .line 492 │ .local v2, "flags":B │ :goto_0 │ if-eqz p1, :cond_1 │ │ or-int/lit8 v6, v2, 0x1 │ │ int-to-byte v2, v6 │ │ - .line 492 │ + .line 493 │ :cond_1 │ invoke-virtual {p0, p2, v4, v5, v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 493 │ + .line 494 │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v3, v6, v4}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 494 │ + .line 495 │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v7}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 496 │ + .line 497 │ int-to-long v6, v4 │ │ cmp-long v6, v0, v6 │ │ if-lez v6, :cond_2 │ │ invoke-direct {p0, v3, p2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->writeContinuationFrames(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 497 │ + .line 498 │ :cond_2 │ return-void │ │ - .line 490 │ + .line 491 │ .end local v2 # "flags":B │ :cond_3 │ const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ │ @@ -927,15 +930,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 564 │ + .line 565 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v5, :cond_0 │ │ @@ -952,80 +955,80 @@ │ :catchall_0 │ move-exception v5 │ │ monitor-exit p0 │ │ throw v5 │ │ - .line 565 │ + .line 566 │ :cond_0 │ const/16 v1, 0x8 │ │ - .line 566 │ + .line 567 │ .local v1, "length":I │ const/4 v4, 0x6 │ │ - .line 567 │ + .line 568 │ .local v4, "type":B │ if-eqz p1, :cond_1 │ │ const/4 v0, 0x1 │ │ - .line 568 │ + .line 569 │ .local v0, "flags":B │ :goto_0 │ const/4 v3, 0x0 │ │ - .line 569 │ + .line 570 │ .local v3, "streamId":I │ :try_start_1 │ invoke-virtual {p0, v3, v1, v4, v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 570 │ + .line 571 │ const/16 v5, 0x100 │ │ invoke-static {v5}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ sget-object v6, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 571 │ + .line 572 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ invoke-virtual {v2, p2}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 572 │ + .line 573 │ invoke-virtual {v2, p3}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 573 │ + .line 574 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 574 │ + .line 575 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v2}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 575 │ + .line 576 │ monitor-exit p0 │ │ return-void │ │ - .line 567 │ + .line 568 │ .end local v0 # "flags":B │ .end local v2 # "sink":Ljava/nio/ByteBuffer; │ .end local v3 # "streamId":I │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ @@ -1048,15 +1051,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 465 │ + .line 466 │ .local p3, "requestHeaders":Ljava/util/List;, "Ljava/util/List;" │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v7, :cond_0 │ @@ -1074,121 +1077,121 @@ │ :catchall_0 │ move-exception v7 │ │ monitor-exit p0 │ │ throw v7 │ │ - .line 466 │ + .line 467 │ :cond_0 │ :try_start_1 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->hpackWriter:Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer; │ │ invoke-virtual {v7, p3}, Lcom/koushikdutta/async/http/spdy/HpackDraft08$Writer;->writeHeaders(Ljava/util/List;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v3 │ │ - .line 468 │ + .line 469 │ .local v3, "hpackBuffer":Lcom/koushikdutta/async/ByteBufferList; │ invoke-virtual {v3}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v7 │ │ int-to-long v0, v7 │ │ - .line 469 │ + .line 470 │ .local v0, "byteCount":J │ const-wide/16 v8, 0x3ffb │ │ invoke-static {v8, v9, v0, v1}, Ljava/lang/Math;->min(JJ)J │ │ move-result-wide v8 │ │ long-to-int v4, v8 │ │ - .line 470 │ + .line 471 │ .local v4, "length":I │ const/4 v6, 0x5 │ │ - .line 471 │ + .line 472 │ .local v6, "type":B │ int-to-long v8, v4 │ │ cmp-long v7, v0, v8 │ │ if-nez v7, :cond_2 │ │ const/4 v2, 0x4 │ │ - .line 472 │ + .line 473 │ .local v2, "flags":B │ :goto_0 │ add-int/lit8 v7, v4, 0x4 │ │ invoke-virtual {p0, p1, v7, v6, v2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 473 │ + .line 474 │ const/16 v7, 0x2000 │ │ invoke-static {v7}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v7 │ │ sget-object v8, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v7, v8}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ - .line 474 │ + .line 475 │ .local v5, "sink":Ljava/nio/ByteBuffer; │ const v7, 0x7fffffff │ │ and-int/2addr v7, p2 │ │ invoke-virtual {v5, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 475 │ + .line 476 │ invoke-virtual {v5}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 476 │ + .line 477 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v7, v5}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 477 │ + .line 478 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v3, v7, v4}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 478 │ + .line 479 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v7, v8}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 480 │ + .line 481 │ int-to-long v8, v4 │ │ cmp-long v7, v0, v8 │ │ if-lez v7, :cond_1 │ │ invoke-direct {p0, v3, p1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->writeContinuationFrames(Lcom/koushikdutta/async/ByteBufferList;I)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 481 │ + .line 482 │ :cond_1 │ monitor-exit p0 │ │ return-void │ │ - .line 471 │ + .line 472 │ .end local v2 # "flags":B │ .end local v5 # "sink":Ljava/nio/ByteBuffer; │ :cond_2 │ const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ @@ -1200,15 +1203,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 512 │ + .line 513 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v4, :cond_0 │ │ @@ -1225,81 +1228,81 @@ │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ │ throw v4 │ │ - .line 513 │ + .line 514 │ :cond_0 │ :try_start_1 │ iget v4, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->spdyRstCode:I │ │ const/4 v5, -0x1 │ │ if-ne v4, v5, :cond_1 │ │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ invoke-direct {v4}, Ljava/lang/IllegalArgumentException;->()V │ │ throw v4 │ │ - .line 515 │ + .line 516 │ :cond_1 │ const/4 v1, 0x4 │ │ - .line 516 │ + .line 517 │ .local v1, "length":I │ const/4 v3, 0x3 │ │ - .line 517 │ + .line 518 │ .local v3, "type":B │ const/4 v0, 0x0 │ │ - .line 518 │ + .line 519 │ .local v0, "flags":B │ invoke-virtual {p0, p1, v1, v3, v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 519 │ + .line 520 │ const/16 v4, 0x2000 │ │ invoke-static {v4}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ sget-object v5, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v4, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 520 │ + .line 521 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ iget v4, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->httpCode:I │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 521 │ + .line 522 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 522 │ + .line 523 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v5, v2}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 523 │ + .line 524 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized settings(Lcom/koushikdutta/async/http/spdy/Settings;)V │ .locals 9 │ @@ -1307,15 +1310,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 542 │ + .line 543 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v7, :cond_0 │ │ @@ -1332,132 +1335,132 @@ │ :catchall_0 │ move-exception v7 │ │ monitor-exit p0 │ │ throw v7 │ │ - .line 543 │ + .line 544 │ :cond_0 │ :try_start_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/spdy/Settings;->size()I │ │ move-result v7 │ │ mul-int/lit8 v3, v7, 0x6 │ │ - .line 544 │ + .line 545 │ .local v3, "length":I │ const/4 v6, 0x4 │ │ - .line 545 │ + .line 546 │ .local v6, "type":B │ const/4 v0, 0x0 │ │ - .line 546 │ + .line 547 │ .local v0, "flags":B │ const/4 v5, 0x0 │ │ - .line 547 │ + .line 548 │ .local v5, "streamId":I │ invoke-virtual {p0, v5, v3, v6, v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 548 │ + .line 549 │ const/16 v7, 0x2000 │ │ invoke-static {v7}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v7 │ │ sget-object v8, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v7, v8}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ - .line 549 │ + .line 550 │ .local v4, "sink":Ljava/nio/ByteBuffer; │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ const/16 v7, 0xa │ │ if-ge v1, v7, :cond_4 │ │ - .line 550 │ + .line 551 │ invoke-virtual {p1, v1}, Lcom/koushikdutta/async/http/spdy/Settings;->isSet(I)Z │ │ move-result v7 │ │ if-nez v7, :cond_1 │ │ - .line 549 │ + .line 550 │ :goto_1 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 551 │ + .line 552 │ :cond_1 │ move v2, v1 │ │ - .line 552 │ + .line 553 │ .local v2, "id":I │ const/4 v7, 0x4 │ │ if-ne v2, v7, :cond_3 │ │ const/4 v2, 0x3 │ │ - .line 554 │ + .line 555 │ :cond_2 │ :goto_2 │ int-to-short v7, v2 │ │ invoke-virtual {v4, v7}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer; │ │ - .line 555 │ + .line 556 │ invoke-virtual {p1, v1}, Lcom/koushikdutta/async/http/spdy/Settings;->get(I)I │ │ move-result v7 │ │ invoke-virtual {v4, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ goto :goto_1 │ │ - .line 553 │ + .line 554 │ :cond_3 │ const/4 v7, 0x7 │ │ if-ne v2, v7, :cond_2 │ │ const/4 v2, 0x4 │ │ goto :goto_2 │ │ - .line 557 │ + .line 558 │ .end local v2 # "id":I │ :cond_4 │ invoke-virtual {v4}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 558 │ + .line 559 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v8, v4}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v8 │ │ invoke-virtual {v7, v8}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 559 │ + .line 560 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized synReply(ZILjava/util/List;)V │ .locals 2 │ @@ -1476,15 +1479,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 451 │ + .line 452 │ .local p3, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v0, :cond_0 │ @@ -1502,22 +1505,22 @@ │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ │ - .line 452 │ + .line 453 │ :cond_0 │ :try_start_1 │ invoke-virtual {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->headers(ZILjava/util/List;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 453 │ + .line 454 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized synStream(ZZIILjava/util/List;)V │ .locals 2 │ @@ -1538,15 +1541,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 443 │ + .line 444 │ .local p5, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ monitor-enter p0 │ │ if-eqz p2, :cond_0 │ │ :try_start_0 │ new-instance v0, Ljava/lang/UnsupportedOperationException; │ @@ -1560,36 +1563,36 @@ │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ │ - .line 444 │ + .line 445 │ :cond_0 │ :try_start_1 │ iget-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v0, :cond_1 │ │ new-instance v0, Ljava/io/IOException; │ │ const-string v1, "closed" │ │ invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 445 │ + .line 446 │ :cond_1 │ invoke-virtual {p0, p1, p3, p5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->headers(ZILjava/util/List;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 446 │ + .line 447 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized windowUpdate(IJ)V │ .locals 8 │ @@ -1598,15 +1601,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 598 │ + .line 599 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->closed:Z │ │ if-eqz v4, :cond_0 │ │ @@ -1623,101 +1626,103 @@ │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ │ throw v4 │ │ - .line 599 │ + .line 600 │ :cond_0 │ const-wide/16 v4, 0x0 │ │ cmp-long v4, p2, v4 │ │ if-eqz v4, :cond_1 │ │ const-wide/32 v4, 0x7fffffff │ │ cmp-long v4, p2, v4 │ │ if-lez v4, :cond_2 │ │ - .line 600 │ + .line 601 │ :cond_1 │ :try_start_1 │ const-string v4, "windowSizeIncrement == 0 || windowSizeIncrement > 0x7fffffffL: %s" │ │ const/4 v5, 0x1 │ │ new-array v5, v5, [Ljava/lang/Object; │ │ const/4 v6, 0x0 │ │ + .line 602 │ invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v7 │ │ aput-object v7, v5, v6 │ │ + .line 601 │ # invokes: Lcom/koushikdutta/async/http/spdy/Http20Draft13;->illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ invoke-static {v4, v5}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->access$1800(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ │ move-result-object v4 │ │ throw v4 │ │ - .line 603 │ + .line 604 │ :cond_2 │ const/4 v1, 0x4 │ │ - .line 604 │ + .line 605 │ .local v1, "length":I │ const/16 v3, 0x8 │ │ - .line 605 │ + .line 606 │ .local v3, "type":B │ const/4 v0, 0x0 │ │ - .line 606 │ + .line 607 │ .local v0, "flags":B │ invoke-virtual {p0, p1, v1, v3, v0}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader(IIBB)V │ │ - .line 607 │ + .line 608 │ const/16 v4, 0x100 │ │ invoke-static {v4}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ sget-object v5, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v4, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 608 │ + .line 609 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ long-to-int v4, p2 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 609 │ + .line 610 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 610 │ + .line 611 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v5, v2}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 611 │ + .line 612 │ monitor-exit p0 │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Http20Draft13.smali │ @@ -63,55 +63,57 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 41 │ + .line 42 │ const-class v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13; │ │ invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ │ - .line 48 │ + .line 49 │ const-string v0, "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" │ │ + .line 50 │ invoke-static {v0}, Lcom/koushikdutta/async/http/spdy/ByteString;->encodeUtf8(Ljava/lang/String;)Lcom/koushikdutta/async/http/spdy/ByteString; │ │ move-result-object v0 │ │ sput-object v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->CONNECTION_PREFACE:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ + .line 49 │ return-void │ .end method │ │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 40 │ + .line 41 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 669 │ + .line 670 │ return-void │ .end method │ │ .method static synthetic access$000()Ljava/util/logging/Logger; │ .locals 1 │ │ .prologue │ - .line 40 │ + .line 41 │ sget-object v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->logger:Ljava/util/logging/Logger; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1500(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ .locals 1 │ @@ -120,15 +122,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 40 │ + .line 41 │ invoke-static {p0, p1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -140,56 +142,58 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 40 │ + .line 41 │ invoke-static {p0, p1, p2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->lengthWithoutPadding(SBS)S │ │ move-result v0 │ │ return v0 │ .end method │ │ .method static synthetic access$1700()Lcom/koushikdutta/async/http/spdy/ByteString; │ .locals 1 │ │ .prologue │ - .line 40 │ + .line 41 │ sget-object v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->CONNECTION_PREFACE:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1800(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ .locals 1 │ .param p0, "x0" # Ljava/lang/String; │ .param p1, "x1" # [Ljava/lang/Object; │ │ .prologue │ - .line 40 │ + .line 41 │ invoke-static {p0, p1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method private static varargs illegalArgument(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException; │ .locals 2 │ .param p0, "message" # Ljava/lang/String; │ .param p1, "args" # [Ljava/lang/Object; │ │ .prologue │ - .line 635 │ + .line 636 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ - invoke-static {p0, p1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + invoke-static {v1, p0, p1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ .end method │ @@ -201,18 +205,20 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 639 │ + .line 640 │ new-instance v0, Ljava/io/IOException; │ │ - invoke-static {p0, p1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + invoke-static {v1, p0, p1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v0 │ .end method │ @@ -225,28 +231,28 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 644 │ + .line 645 │ and-int/lit8 v0, p1, 0x8 │ │ if-eqz v0, :cond_0 │ │ add-int/lit8 v0, p0, -0x1 │ │ int-to-short p0, v0 │ │ - .line 645 │ + .line 646 │ :cond_0 │ if-le p2, p0, :cond_1 │ │ - .line 646 │ + .line 647 │ const-string v0, "PROTOCOL_ERROR padding %s > remaining length %s" │ │ const/4 v1, 0x2 │ │ new-array v1, v1, [Ljava/lang/Object; │ │ const/4 v2, 0x0 │ @@ -267,53 +273,53 @@ │ │ invoke-static {v0, v1}, Lcom/koushikdutta/async/http/spdy/Http20Draft13;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v0 │ │ throw v0 │ │ - .line 648 │ + .line 649 │ :cond_1 │ sub-int v0, p0, p2 │ │ int-to-short v0, v0 │ │ return v0 │ .end method │ │ │ # virtual methods │ .method public getProtocol()Lcom/koushikdutta/async/http/Protocol; │ .locals 1 │ │ .prologue │ - .line 45 │ + .line 46 │ sget-object v0, Lcom/koushikdutta/async/http/Protocol;->HTTP_2:Lcom/koushikdutta/async/http/Protocol; │ │ return-object v0 │ .end method │ │ .method public maxFrameSize()I │ .locals 1 │ │ .prologue │ - .line 90 │ + .line 91 │ const/16 v0, 0x3fff │ │ return v0 │ .end method │ │ .method public newReader(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;Z)Lcom/koushikdutta/async/http/spdy/FrameReader; │ .locals 2 │ .param p1, "source" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "handler" # Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ .param p3, "client" # Z │ │ .prologue │ - .line 80 │ + .line 81 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader; │ │ const/16 v1, 0x1000 │ │ invoke-direct {v0, p1, p2, v1, p3}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Reader;->(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;IZ)V │ │ return-object v0 │ @@ -321,14 +327,14 @@ │ │ .method public newWriter(Lcom/koushikdutta/async/BufferedDataSink;Z)Lcom/koushikdutta/async/http/spdy/FrameWriter; │ .locals 1 │ .param p1, "sink" # Lcom/koushikdutta/async/BufferedDataSink; │ .param p2, "client" # Z │ │ .prologue │ - .line 85 │ + .line 86 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer; │ │ invoke-direct {v0, p1, p2}, Lcom/koushikdutta/async/http/spdy/Http20Draft13$Writer;->(Lcom/koushikdutta/async/BufferedDataSink;Z)V │ │ return-object v0 │ .end method ├── smali/com/koushikdutta/async/http/spdy/Spdy3$Reader$1.smali │ @@ -20,27 +20,28 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 134 │ + .line 135 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$1;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 0 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 138 │ + .line 139 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Spdy3$Reader$2.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 157 │ + .line 158 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -42,51 +43,51 @@ │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ const/4 v1, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 160 │ + .line 161 │ sget-object v3, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {p2, v3}, Lcom/koushikdutta/async/ByteBufferList;->order(Ljava/nio/ByteOrder;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 161 │ + .line 162 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v4 │ │ iput v4, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w1:I │ │ - .line 162 │ + .line 163 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v4 │ │ iput v4, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w2:I │ │ - .line 164 │ + .line 165 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v3, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w1:I │ │ const/high16 v4, -0x80000000 │ │ and-int/2addr v3, v4 │ │ if-eqz v3, :cond_1 │ │ move v0, v1 │ │ - .line 165 │ + .line 166 │ .local v0, "control":Z │ :goto_0 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w2:I │ @@ -95,75 +96,75 @@ │ │ and-int/2addr v4, v5 │ │ ushr-int/lit8 v4, v4, 0x18 │ │ iput v4, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ - .line 166 │ + .line 167 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w2:I │ │ const v5, 0xffffff │ │ and-int/2addr v4, v5 │ │ iput v4, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ - .line 168 │ + .line 169 │ if-nez v0, :cond_3 │ │ - .line 169 │ + .line 170 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w1:I │ │ const v5, 0x7fffffff │ │ and-int/2addr v4, v5 │ │ iput v4, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->streamId:I │ │ - .line 170 │ + .line 171 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ and-int/lit8 v4, v4, 0x1 │ │ if-eqz v4, :cond_2 │ │ :goto_1 │ iput-boolean v1, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->inFinished:Z │ │ - .line 171 │ + .line 172 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onDataFrame:Lcom/koushikdutta/async/callback/DataCallback; │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$000(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/callback/DataCallback; │ │ move-result-object v1 │ │ invoke-interface {p1, v1}, Lcom/koushikdutta/async/DataEmitter;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 173 │ + .line 174 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v1, v1, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ if-nez v1, :cond_0 │ │ - .line 176 │ + .line 177 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onDataFrame:Lcom/koushikdutta/async/callback/DataCallback; │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$000(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/callback/DataCallback; │ │ move-result-object v1 │ │ @@ -172,34 +173,34 @@ │ # getter for: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->emptyList:Lcom/koushikdutta/async/ByteBufferList; │ invoke-static {v2}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$100(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v2 │ │ invoke-interface {v1, p1, v2}, Lcom/koushikdutta/async/callback/DataCallback;->onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 182 │ + .line 183 │ :cond_0 │ :goto_2 │ return-void │ │ .end local v0 # "control":Z │ :cond_1 │ move v0, v2 │ │ - .line 164 │ + .line 165 │ goto :goto_0 │ │ .restart local v0 # "control":Z │ :cond_2 │ move v1, v2 │ │ - .line 170 │ + .line 171 │ goto :goto_1 │ │ - .line 180 │ + .line 181 │ :cond_3 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$300(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/DataEmitterReader; │ │ move-result-object v1 ├── smali/com/koushikdutta/async/http/spdy/Spdy3$Reader$3.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 186 │ + .line 187 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,58 +39,58 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 4 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 189 │ + .line 190 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v1 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v2, v2, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I │ │ move-result v0 │ │ - .line 190 │ + .line 191 │ .local v0, "toRead":I │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v1 │ │ if-ge v0, v1, :cond_0 │ │ - .line 191 │ + .line 192 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v1, v1, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->partial:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {p2, v1, v0}, Lcom/koushikdutta/async/ByteBufferList;->get(Lcom/koushikdutta/async/ByteBufferList;I)V │ │ - .line 192 │ + .line 193 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object p2, v1, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->partial:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 195 │ + .line 196 │ :cond_0 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v2, v1, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ sub-int/2addr v2, v0 │ │ iput v2, v1, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ - .line 196 │ + .line 197 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$400(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ move-result-object v2 │ │ @@ -110,30 +111,30 @@ │ :goto_0 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v3, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->streamId:I │ │ invoke-interface {v2, v1, v3, p2}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->data(ZILcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 198 │ + .line 199 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v1, v1, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ if-nez v1, :cond_1 │ │ - .line 199 │ + .line 200 │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->parseFrameHeader()V │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$500(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ │ - .line 200 │ + .line 201 │ :cond_1 │ return-void │ │ - .line 196 │ + .line 197 │ :cond_2 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/http/spdy/Spdy3$Reader$4.smali │ @@ -20,17 +20,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 203 │ + .line 204 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -38,47 +39,47 @@ │ # virtual methods │ .method public onDataAvailable(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 6 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "bb" # Lcom/koushikdutta/async/ByteBufferList; │ │ .prologue │ - .line 207 │ + .line 208 │ sget-object v3, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {p2, v3}, Lcom/koushikdutta/async/ByteBufferList;->order(Ljava/nio/ByteOrder;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 209 │ + .line 210 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v3, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w1:I │ │ const/high16 v4, 0x7fff0000 │ │ and-int/2addr v3, v4 │ │ ushr-int/lit8 v2, v3, 0x10 │ │ - .line 210 │ + .line 211 │ .local v2, "version":I │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v3, v3, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->w1:I │ │ const v4, 0xffff │ │ and-int v1, v3, v4 │ │ - .line 213 │ + .line 214 │ .local v1, "type":I │ const/4 v3, 0x3 │ │ if-eq v2, v3, :cond_0 │ │ - .line 214 │ + .line 215 │ :try_start_0 │ new-instance v3, Ljava/net/ProtocolException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ @@ -98,53 +99,53 @@ │ │ invoke-direct {v3, v4}, Ljava/net/ProtocolException;->(Ljava/lang/String;)V │ │ throw v3 │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 256 │ + .line 257 │ :catch_0 │ move-exception v0 │ │ - .line 257 │ + .line 258 │ .local v0, "e":Ljava/io/IOException; │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # getter for: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ invoke-static {v3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$400(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ move-result-object v3 │ │ invoke-interface {v3, v0}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->error(Ljava/lang/Exception;)V │ │ - .line 259 │ + .line 260 │ .end local v0 # "e":Ljava/io/IOException; │ :goto_0 │ return-void │ │ - .line 217 │ + .line 218 │ :cond_0 │ packed-switch v1, :pswitch_data_0 │ │ - .line 251 │ + .line 252 │ :pswitch_0 │ :try_start_1 │ invoke-virtual {p2}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ - .line 254 │ + .line 255 │ :goto_1 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->parseFrameHeader()V │ invoke-static {v3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$500(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ │ goto :goto_0 │ │ - .line 219 │ + .line 220 │ :pswitch_1 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -153,15 +154,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readSynStream(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$600(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 223 │ + .line 224 │ :pswitch_2 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -170,15 +171,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readSynReply(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$700(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 227 │ + .line 228 │ :pswitch_3 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -187,15 +188,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readRstStream(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$800(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 231 │ + .line 232 │ :pswitch_4 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -204,15 +205,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readSettings(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$900(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 235 │ + .line 236 │ :pswitch_5 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -221,15 +222,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readPing(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$1000(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 239 │ + .line 240 │ :pswitch_6 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -238,15 +239,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readGoAway(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$1100(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 243 │ + .line 244 │ :pswitch_7 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -255,15 +256,15 @@ │ iget v5, v5, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->length:I │ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readHeaders(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$1200(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ │ goto :goto_1 │ │ - .line 247 │ + .line 248 │ :pswitch_8 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->this$0:Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ iget v4, v4, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->flags:I │ │ @@ -274,15 +275,15 @@ │ # invokes: Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readWindowUpdate(Lcom/koushikdutta/async/ByteBufferList;II)V │ invoke-static {v3, p2, v4, v5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->access$1300(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0 │ │ goto :goto_1 │ │ - .line 217 │ + .line 218 │ :pswitch_data_0 │ .packed-switch 0x1 │ :pswitch_1 │ :pswitch_2 │ :pswitch_3 │ :pswitch_4 │ :pswitch_0 ├── smali/com/koushikdutta/async/http/spdy/Spdy3$Reader.smali │ @@ -55,106 +55,106 @@ │ .method constructor (Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;Z)V │ .locals 1 │ .param p1, "emitter" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "handler" # Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ .param p3, "client" # Z │ │ .prologue │ - .line 129 │ + .line 130 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 123 │ + .line 124 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/spdy/HeaderReader;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->headerReader:Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ - .line 156 │ + .line 157 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->emptyList:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 157 │ + .line 158 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$2;->(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 185 │ + .line 186 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->partial:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 186 │ + .line 187 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$3;->(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onDataFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 203 │ + .line 204 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$4;->(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onFullFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ - .line 130 │ + .line 131 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 131 │ + .line 132 │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ - .line 132 │ + .line 133 │ iput-boolean p3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->client:Z │ │ - .line 134 │ + .line 135 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader$1;->(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ │ invoke-interface {p1, v0}, Lcom/koushikdutta/async/DataEmitter;->setEndCallback(Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 141 │ + .line 142 │ new-instance v0, Lcom/koushikdutta/async/DataEmitterReader; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/DataEmitterReader;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ - .line 142 │ + .line 143 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->parseFrameHeader()V │ │ - .line 143 │ + .line 144 │ return-void │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/callback/DataCallback; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 122 │ + .line 123 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onDataFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ return-object v0 │ .end method │ │ .method static synthetic access$100(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/ByteBufferList; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 122 │ + .line 123 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->emptyList:Lcom/koushikdutta/async/ByteBufferList; │ │ return-object v0 │ .end method │ │ .method static synthetic access$1000(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -165,15 +165,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readPing(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$1100(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -184,15 +184,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readGoAway(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$1200(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -203,15 +203,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readHeaders(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$1300(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -222,59 +222,59 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readWindowUpdate(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$200(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/callback/DataCallback; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 122 │ + .line 123 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onFullFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ return-object v0 │ .end method │ │ .method static synthetic access$300(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/DataEmitterReader; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 122 │ + .line 123 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ return-object v0 │ .end method │ │ .method static synthetic access$400(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 122 │ + .line 123 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ return-object v0 │ .end method │ │ .method static synthetic access$500(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;)V │ .locals 0 │ .param p0, "x0" # Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->parseFrameHeader()V │ │ return-void │ .end method │ │ .method static synthetic access$600(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -285,15 +285,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readSynStream(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$700(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -304,15 +304,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readSynReply(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$800(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -323,15 +323,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readRstStream(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method static synthetic access$900(Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 0 │ @@ -342,15 +342,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 122 │ + .line 123 │ invoke-direct {p0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->readSettings(Lcom/koushikdutta/async/ByteBufferList;II)V │ │ return-void │ .end method │ │ .method private static varargs ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ .locals 2 │ @@ -359,47 +359,49 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 354 │ + .line 355 │ new-instance v0, Ljava/io/IOException; │ │ - invoke-static {p0, p1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ + │ + invoke-static {v1, p0, p1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v0 │ .end method │ │ .method private parseFrameHeader()V │ .locals 3 │ │ .prologue │ - .line 146 │ + .line 147 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ iget-object v1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/DataEmitter;->setDataCallback(Lcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 147 │ + .line 148 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->reader:Lcom/koushikdutta/async/DataEmitterReader; │ │ const/16 v1, 0x8 │ │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->onFrame:Lcom/koushikdutta/async/callback/DataCallback; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/DataEmitterReader;->read(ILcom/koushikdutta/async/callback/DataCallback;)V │ │ - .line 148 │ + .line 149 │ return-void │ .end method │ │ .method private readGoAway(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 7 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -411,15 +413,15 @@ │ .end annotation │ │ .prologue │ const/4 v5, 0x1 │ │ const/4 v6, 0x0 │ │ - .line 326 │ + .line 327 │ const/16 v3, 0x8 │ │ if-eq p3, v3, :cond_0 │ │ const-string v3, "TYPE_GOAWAY length: %d != 8" │ │ new-array v4, v5, [Ljava/lang/Object; │ @@ -432,41 +434,41 @@ │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v3 │ │ throw v3 │ │ - .line 327 │ + .line 328 │ :cond_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v3 │ │ const v4, 0x7fffffff │ │ and-int v2, v3, v4 │ │ - .line 328 │ + .line 329 │ .local v2, "lastGoodStreamId":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ - .line 329 │ + .line 330 │ .local v1, "errorCodeInt":I │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/ErrorCode;->fromSpdyGoAway(I)Lcom/koushikdutta/async/http/spdy/ErrorCode; │ │ move-result-object v0 │ │ - .line 330 │ + .line 331 │ .local v0, "errorCode":Lcom/koushikdutta/async/http/spdy/ErrorCode; │ if-nez v0, :cond_1 │ │ - .line 331 │ + .line 332 │ const-string v3, "TYPE_GOAWAY unexpected error code: %d" │ │ new-array v4, v5, [Ljava/lang/Object; │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ @@ -475,23 +477,23 @@ │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v3 │ │ throw v3 │ │ - .line 333 │ + .line 334 │ :cond_1 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ sget-object v4, Lcom/koushikdutta/async/http/spdy/ByteString;->EMPTY:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ invoke-interface {v3, v2, v0, v4}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->goAway(ILcom/koushikdutta/async/http/spdy/ErrorCode;Lcom/koushikdutta/async/http/spdy/ByteString;)V │ │ - .line 334 │ + .line 335 │ return-void │ .end method │ │ .method private readHeaders(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 8 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -501,48 +503,48 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 302 │ + .line 303 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v7 │ │ - .line 303 │ + .line 304 │ .local v7, "w1":I │ const v0, 0x7fffffff │ │ and-int v3, v7, v0 │ │ - .line 304 │ + .line 305 │ .local v3, "streamId":I │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->headerReader:Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ add-int/lit8 v2, p3, -0x4 │ │ invoke-virtual {v0, p1, v2}, Lcom/koushikdutta/async/http/spdy/HeaderReader;->readHeader(Lcom/koushikdutta/async/ByteBufferList;I)Ljava/util/List; │ │ move-result-object v5 │ │ - .line 305 │ + .line 306 │ .local v5, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ const/4 v4, -0x1 │ │ sget-object v6, Lcom/koushikdutta/async/http/spdy/HeadersMode;->SPDY_HEADERS:Lcom/koushikdutta/async/http/spdy/HeadersMode; │ │ move v2, v1 │ │ invoke-interface/range {v0 .. v6}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->headers(ZZIILjava/util/List;Lcom/koushikdutta/async/http/spdy/HeadersMode;)V │ │ - .line 306 │ + .line 307 │ return-void │ .end method │ │ .method private readPing(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 6 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -554,15 +556,15 @@ │ .end annotation │ │ .prologue │ const/4 v0, 0x1 │ │ const/4 v2, 0x0 │ │ - .line 319 │ + .line 320 │ const/4 v3, 0x4 │ │ if-eq p3, v3, :cond_0 │ │ const-string v3, "TYPE_PING length: %d != 4" │ │ new-array v4, v0, [Ljava/lang/Object; │ @@ -575,48 +577,48 @@ │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v2 │ │ throw v2 │ │ - .line 320 │ + .line 321 │ :cond_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ - .line 321 │ + .line 322 │ .local v1, "id":I │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->client:Z │ │ and-int/lit8 v3, v1, 0x1 │ │ if-ne v3, v0, :cond_1 │ │ move v3, v0 │ │ :goto_0 │ if-ne v4, v3, :cond_2 │ │ - .line 322 │ + .line 323 │ .local v0, "ack":Z │ :goto_1 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v3, v0, v1, v2}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->ping(ZII)V │ │ - .line 323 │ + .line 324 │ return-void │ │ .end local v0 # "ack":Z │ :cond_1 │ move v3, v2 │ │ - .line 321 │ + .line 322 │ goto :goto_0 │ │ :cond_2 │ move v0, v2 │ │ goto :goto_1 │ .end method │ @@ -633,15 +635,15 @@ │ .end annotation │ │ .prologue │ const/4 v5, 0x1 │ │ const/4 v6, 0x0 │ │ - .line 291 │ + .line 292 │ const/16 v3, 0x8 │ │ if-eq p3, v3, :cond_0 │ │ const-string v3, "TYPE_RST_STREAM length: %d != 8" │ │ new-array v4, v5, [Ljava/lang/Object; │ @@ -654,41 +656,41 @@ │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v3 │ │ throw v3 │ │ - .line 292 │ + .line 293 │ :cond_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v3 │ │ const v4, 0x7fffffff │ │ and-int v2, v3, v4 │ │ - .line 293 │ + .line 294 │ .local v2, "streamId":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v1 │ │ - .line 294 │ + .line 295 │ .local v1, "errorCodeInt":I │ invoke-static {v1}, Lcom/koushikdutta/async/http/spdy/ErrorCode;->fromSpdy3Rst(I)Lcom/koushikdutta/async/http/spdy/ErrorCode; │ │ move-result-object v0 │ │ - .line 295 │ + .line 296 │ .local v0, "errorCode":Lcom/koushikdutta/async/http/spdy/ErrorCode; │ if-nez v0, :cond_1 │ │ - .line 296 │ + .line 297 │ const-string v3, "TYPE_RST_STREAM unexpected error code: %d" │ │ new-array v4, v5, [Ljava/lang/Object; │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ @@ -697,21 +699,21 @@ │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v3 │ │ throw v3 │ │ - .line 298 │ + .line 299 │ :cond_1 │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v3, v2, v0}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->rstStream(ILcom/koushikdutta/async/http/spdy/ErrorCode;)V │ │ - .line 299 │ + .line 300 │ return-void │ .end method │ │ .method private readSettings(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 12 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -723,28 +725,28 @@ │ .end annotation │ │ .prologue │ const/4 v0, 0x1 │ │ const/4 v8, 0x0 │ │ - .line 337 │ + .line 338 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v4 │ │ - .line 338 │ + .line 339 │ .local v4, "numberOfEntries":I │ mul-int/lit8 v9, v4, 0x8 │ │ add-int/lit8 v9, v9, 0x4 │ │ if-eq p3, v9, :cond_0 │ │ - .line 339 │ + .line 340 │ const-string v9, "TYPE_SETTINGS length: %d != 4 + 8 * %d" │ │ const/4 v10, 0x2 │ │ new-array v10, v10, [Ljava/lang/Object; │ │ invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ @@ -761,87 +763,87 @@ │ │ invoke-static {v9, v10}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v8 │ │ throw v8 │ │ - .line 341 │ + .line 342 │ :cond_0 │ new-instance v5, Lcom/koushikdutta/async/http/spdy/Settings; │ │ invoke-direct {v5}, Lcom/koushikdutta/async/http/spdy/Settings;->()V │ │ - .line 342 │ + .line 343 │ .local v5, "settings":Lcom/koushikdutta/async/http/spdy/Settings; │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ if-ge v1, v4, :cond_1 │ │ - .line 343 │ + .line 344 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v7 │ │ - .line 344 │ + .line 345 │ .local v7, "w1":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v6 │ │ - .line 345 │ + .line 346 │ .local v6, "value":I │ const/high16 v9, -0x1000000 │ │ and-int/2addr v9, v7 │ │ ushr-int/lit8 v3, v9, 0x18 │ │ - .line 346 │ + .line 347 │ .local v3, "idFlags":I │ const v9, 0xffffff │ │ and-int v2, v7, v9 │ │ - .line 347 │ + .line 348 │ .local v2, "id":I │ invoke-virtual {v5, v2, v3, v6}, Lcom/koushikdutta/async/http/spdy/Settings;->set(III)Lcom/koushikdutta/async/http/spdy/Settings; │ │ - .line 342 │ + .line 343 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 349 │ + .line 350 │ .end local v2 # "id":I │ .end local v3 # "idFlags":I │ .end local v6 # "value":I │ .end local v7 # "w1":I │ :cond_1 │ and-int/lit8 v9, p2, 0x1 │ │ if-eqz v9, :cond_2 │ │ - .line 350 │ + .line 351 │ .local v0, "clearPrevious":Z │ :goto_1 │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v8, v0, v5}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->settings(ZLcom/koushikdutta/async/http/spdy/Settings;)V │ │ - .line 351 │ + .line 352 │ return-void │ │ .end local v0 # "clearPrevious":Z │ :cond_2 │ move v0, v8 │ │ - .line 349 │ + .line 350 │ goto :goto_1 │ .end method │ │ .method private readSynReply(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 8 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -851,62 +853,62 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 283 │ + .line 284 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v7 │ │ - .line 284 │ + .line 285 │ .local v7, "w1":I │ const v0, 0x7fffffff │ │ and-int v3, v7, v0 │ │ - .line 285 │ + .line 286 │ .local v3, "streamId":I │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->headerReader:Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ add-int/lit8 v4, p3, -0x4 │ │ invoke-virtual {v0, p1, v4}, Lcom/koushikdutta/async/http/spdy/HeaderReader;->readHeader(Lcom/koushikdutta/async/ByteBufferList;I)Ljava/util/List; │ │ move-result-object v5 │ │ - .line 286 │ + .line 287 │ .local v5, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ and-int/lit8 v0, p2, 0x1 │ │ if-eqz v0, :cond_0 │ │ const/4 v2, 0x1 │ │ - .line 287 │ + .line 288 │ .local v2, "inFinished":Z │ :goto_0 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ const/4 v4, -0x1 │ │ sget-object v6, Lcom/koushikdutta/async/http/spdy/HeadersMode;->SPDY_REPLY:Lcom/koushikdutta/async/http/spdy/HeadersMode; │ │ invoke-interface/range {v0 .. v6}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->headers(ZZIILjava/util/List;Lcom/koushikdutta/async/http/spdy/HeadersMode;)V │ │ - .line 288 │ + .line 289 │ return-void │ │ .end local v2 # "inFinished":Z │ :cond_0 │ move v2, v1 │ │ - .line 286 │ + .line 287 │ goto :goto_0 │ .end method │ │ .method private readSynStream(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 10 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -920,86 +922,86 @@ │ .prologue │ const v6, 0x7fffffff │ │ const/4 v1, 0x1 │ │ const/4 v0, 0x0 │ │ - .line 269 │ + .line 270 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v7 │ │ - .line 270 │ + .line 271 │ .local v7, "w1":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v8 │ │ - .line 271 │ + .line 272 │ .local v8, "w2":I │ and-int v3, v7, v6 │ │ - .line 272 │ + .line 273 │ .local v3, "streamId":I │ and-int v4, v8, v6 │ │ - .line 273 │ + .line 274 │ .local v4, "associatedStreamId":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getShort()S │ │ - .line 274 │ + .line 275 │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->headerReader:Lcom/koushikdutta/async/http/spdy/HeaderReader; │ │ add-int/lit8 v9, p3, -0xa │ │ invoke-virtual {v6, p1, v9}, Lcom/koushikdutta/async/http/spdy/HeaderReader;->readHeader(Lcom/koushikdutta/async/ByteBufferList;I)Ljava/util/List; │ │ move-result-object v5 │ │ - .line 276 │ + .line 277 │ .local v5, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ and-int/lit8 v6, p2, 0x1 │ │ if-eqz v6, :cond_0 │ │ move v2, v1 │ │ - .line 277 │ + .line 278 │ .local v2, "inFinished":Z │ :goto_0 │ and-int/lit8 v6, p2, 0x2 │ │ if-eqz v6, :cond_1 │ │ - .line 278 │ + .line 279 │ .local v1, "outFinished":Z │ :goto_1 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ sget-object v6, Lcom/koushikdutta/async/http/spdy/HeadersMode;->SPDY_SYN_STREAM:Lcom/koushikdutta/async/http/spdy/HeadersMode; │ │ invoke-interface/range {v0 .. v6}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->headers(ZZIILjava/util/List;Lcom/koushikdutta/async/http/spdy/HeadersMode;)V │ │ - .line 280 │ + .line 281 │ return-void │ │ .end local v1 # "outFinished":Z │ .end local v2 # "inFinished":Z │ :cond_0 │ move v2, v0 │ │ - .line 276 │ + .line 277 │ goto :goto_0 │ │ .restart local v2 # "inFinished":Z │ :cond_1 │ move v1, v0 │ │ - .line 277 │ + .line 278 │ goto :goto_1 │ .end method │ │ .method private readWindowUpdate(Lcom/koushikdutta/async/ByteBufferList;II)V │ .locals 10 │ .param p1, "source" # Lcom/koushikdutta/async/ByteBufferList; │ .param p2, "flags" # I │ @@ -1013,15 +1015,15 @@ │ .prologue │ const v6, 0x7fffffff │ │ const/4 v9, 0x1 │ │ const/4 v8, 0x0 │ │ - .line 309 │ + .line 310 │ const/16 v5, 0x8 │ │ if-eq p3, v5, :cond_0 │ │ const-string v5, "TYPE_WINDOW_UPDATE length: %d != 8" │ │ new-array v6, v9, [Ljava/lang/Object; │ @@ -1034,37 +1036,37 @@ │ │ invoke-static {v5, v6}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 310 │ + .line 311 │ :cond_0 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v3 │ │ - .line 311 │ + .line 312 │ .local v3, "w1":I │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getInt()I │ │ move-result v4 │ │ - .line 312 │ + .line 313 │ .local v4, "w2":I │ and-int v2, v3, v6 │ │ - .line 313 │ + .line 314 │ .local v2, "streamId":I │ and-int v5, v4, v6 │ │ int-to-long v0, v5 │ │ - .line 314 │ + .line 315 │ .local v0, "increment":J │ const-wide/16 v6, 0x0 │ │ cmp-long v5, v0, v6 │ │ if-nez v5, :cond_1 │ │ @@ -1080,16 +1082,16 @@ │ │ invoke-static {v5, v6}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->ioException(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/IOException; │ │ move-result-object v5 │ │ throw v5 │ │ - .line 315 │ + .line 316 │ :cond_1 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->handler:Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ │ invoke-interface {v5, v2, v0, v1}, Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;->windowUpdate(IJ)V │ │ - .line 316 │ + .line 317 │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Spdy3$Writer.smali │ @@ -36,59 +36,59 @@ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/BufferedDataSink;Z)V │ .locals 2 │ .param p1, "sink" # Lcom/koushikdutta/async/BufferedDataSink; │ .param p2, "client" # Z │ │ .prologue │ - .line 368 │ + .line 369 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 365 │ + .line 366 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 366 │ + .line 367 │ new-instance v0, Ljava/util/zip/Deflater; │ │ invoke-direct {v0}, Ljava/util/zip/Deflater;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->deflater:Ljava/util/zip/Deflater; │ │ - .line 469 │ + .line 470 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->dataList:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 485 │ + .line 486 │ new-instance v0, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/ByteBufferList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->headerBlockList:Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 369 │ + .line 370 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ - .line 370 │ + .line 371 │ iput-boolean p2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->client:Z │ │ - .line 372 │ + .line 373 │ iget-object v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->deflater:Ljava/util/zip/Deflater; │ │ sget-object v1, Lcom/koushikdutta/async/http/spdy/Spdy3;->DICTIONARY:[B │ │ invoke-virtual {v0, v1}, Ljava/util/zip/Deflater;->setDictionary([B)V │ │ - .line 373 │ + .line 374 │ return-void │ .end method │ │ .method private writeNameValueBlockToBuffer(Ljava/util/List;)Lcom/koushikdutta/async/ByteBufferList; │ .locals 13 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -107,125 +107,125 @@ │ } │ .end annotation │ │ .prologue │ .local p1, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ const/4 v12, 0x0 │ │ - .line 487 │ + .line 488 │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->headerBlockList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v8}, Lcom/koushikdutta/async/ByteBufferList;->hasRemaining()Z │ │ move-result v8 │ │ if-eqz v8, :cond_0 │ │ new-instance v8, Ljava/lang/IllegalStateException; │ │ invoke-direct {v8}, Ljava/lang/IllegalStateException;->()V │ │ throw v8 │ │ - .line 488 │ + .line 489 │ :cond_0 │ const/16 v8, 0x2000 │ │ invoke-static {v8}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v8 │ │ sget-object v9, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v8, v9}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v1 │ │ - .line 489 │ + .line 490 │ .local v1, "headerBlockOut":Ljava/nio/ByteBuffer; │ invoke-interface {p1}, Ljava/util/List;->size()I │ │ move-result v8 │ │ invoke-virtual {v1, v8}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 490 │ + .line 491 │ const/4 v2, 0x0 │ │ .local v2, "i":I │ invoke-interface {p1}, Ljava/util/List;->size()I │ │ move-result v6 │ │ .local v6, "size":I │ :goto_0 │ if-ge v2, v6, :cond_2 │ │ - .line 491 │ + .line 492 │ invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Lcom/koushikdutta/async/http/spdy/Header; │ │ iget-object v3, v8, Lcom/koushikdutta/async/http/spdy/Header;->name:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 492 │ + .line 493 │ .local v3, "name":Lcom/koushikdutta/async/http/spdy/ByteString; │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->size()I │ │ move-result v8 │ │ invoke-virtual {v1, v8}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 493 │ + .line 494 │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/spdy/ByteString;->toByteArray()[B │ │ move-result-object v8 │ │ invoke-virtual {v1, v8}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer; │ │ - .line 494 │ + .line 495 │ invoke-interface {p1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Lcom/koushikdutta/async/http/spdy/Header; │ │ iget-object v7, v8, Lcom/koushikdutta/async/http/spdy/Header;->value:Lcom/koushikdutta/async/http/spdy/ByteString; │ │ - .line 495 │ + .line 496 │ .local v7, "value":Lcom/koushikdutta/async/http/spdy/ByteString; │ invoke-virtual {v7}, Lcom/koushikdutta/async/http/spdy/ByteString;->size()I │ │ move-result v8 │ │ invoke-virtual {v1, v8}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 496 │ + .line 497 │ invoke-virtual {v7}, Lcom/koushikdutta/async/http/spdy/ByteString;->toByteArray()[B │ │ move-result-object v8 │ │ invoke-virtual {v1, v8}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer; │ │ - .line 497 │ + .line 498 │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v8 │ │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v9 │ │ div-int/lit8 v9, v9, 0x2 │ │ if-ge v8, v9, :cond_1 │ │ - .line 498 │ + .line 499 │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v8 │ │ mul-int/lit8 v8, v8, 0x2 │ │ invoke-static {v8}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ @@ -234,79 +234,79 @@ │ │ sget-object v9, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v8, v9}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ - .line 499 │ + .line 500 │ .local v4, "newOut":Ljava/nio/ByteBuffer; │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 500 │ + .line 501 │ invoke-virtual {v4, v1}, Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; │ │ - .line 501 │ + .line 502 │ invoke-static {v1}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 502 │ + .line 503 │ move-object v1, v4 │ │ - .line 490 │ + .line 491 │ .end local v4 # "newOut":Ljava/nio/ByteBuffer; │ :cond_1 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ - .line 506 │ + .line 507 │ .end local v3 # "name":Lcom/koushikdutta/async/http/spdy/ByteString; │ .end local v7 # "value":Lcom/koushikdutta/async/http/spdy/ByteString; │ :cond_2 │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 507 │ + .line 508 │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->deflater:Ljava/util/zip/Deflater; │ │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v9 │ │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->remaining()I │ │ move-result v10 │ │ invoke-virtual {v8, v9, v12, v10}, Ljava/util/zip/Deflater;->setInput([BII)V │ │ - .line 508 │ + .line 509 │ :goto_1 │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->deflater:Ljava/util/zip/Deflater; │ │ invoke-virtual {v8}, Ljava/util/zip/Deflater;->needsInput()Z │ │ move-result v8 │ │ if-nez v8, :cond_3 │ │ - .line 509 │ + .line 510 │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->capacity()I │ │ move-result v8 │ │ invoke-static {v8}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v8 │ │ sget-object v9, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v8, v9}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v0 │ │ - .line 510 │ + .line 511 │ .local v0, "deflated":Ljava/nio/ByteBuffer; │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->deflater:Ljava/util/zip/Deflater; │ │ invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B │ │ move-result-object v9 │ │ @@ -316,85 +316,85 @@ │ │ const/4 v11, 0x2 │ │ invoke-virtual {v8, v9, v12, v10, v11}, Ljava/util/zip/Deflater;->deflate([BIII)I │ │ move-result v5 │ │ - .line 511 │ + .line 512 │ .local v5, "read":I │ invoke-virtual {v0, v5}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; │ │ - .line 512 │ + .line 513 │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->headerBlockList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v8, v0}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ goto :goto_1 │ │ - .line 514 │ + .line 515 │ .end local v0 # "deflated":Ljava/nio/ByteBuffer; │ .end local v5 # "read":I │ :cond_3 │ invoke-static {v1}, Lcom/koushikdutta/async/ByteBufferList;->reclaim(Ljava/nio/ByteBuffer;)V │ │ - .line 516 │ + .line 517 │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->headerBlockList:Lcom/koushikdutta/async/ByteBufferList; │ │ return-object v8 │ .end method │ │ │ # virtual methods │ .method public ackSettings()V │ .locals 0 │ │ .prologue │ - .line 378 │ + .line 379 │ return-void │ .end method │ │ .method public declared-synchronized close()V │ .locals 1 │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 598 │ + .line 599 │ monitor-enter p0 │ │ const/4 v0, 0x1 │ │ :try_start_0 │ iput-boolean v0, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 599 │ + .line 600 │ monitor-exit p0 │ │ return-void │ │ - .line 598 │ + .line 599 │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ .end method │ │ .method public declared-synchronized connectionPreface()V │ .locals 0 │ │ .prologue │ - .line 389 │ + .line 390 │ monitor-enter p0 │ │ monitor-exit p0 │ │ return-void │ .end method │ │ @@ -406,35 +406,35 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 465 │ + .line 466 │ monitor-enter p0 │ │ if-eqz p1, :cond_0 │ │ const/4 v0, 0x1 │ │ - .line 466 │ + .line 467 │ .local v0, "flags":I │ :goto_0 │ :try_start_0 │ invoke-virtual {p0, p2, v0, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sendDataFrame(IILcom/koushikdutta/async/ByteBufferList;)V │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 467 │ + .line 468 │ monitor-exit p0 │ │ return-void │ │ - .line 465 │ + .line 466 │ .end local v0 # "flags":I │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ .restart local v0 # "flags":I │ @@ -454,15 +454,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 560 │ + .line 561 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v4, :cond_0 │ │ @@ -479,81 +479,81 @@ │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ │ throw v4 │ │ - .line 561 │ + .line 562 │ :cond_0 │ :try_start_1 │ iget v4, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->spdyGoAwayCode:I │ │ const/4 v5, -0x1 │ │ if-ne v4, v5, :cond_1 │ │ - .line 562 │ + .line 563 │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ const-string v5, "errorCode.spdyGoAwayCode == -1" │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 564 │ + .line 565 │ :cond_1 │ const/4 v3, 0x7 │ │ - .line 565 │ + .line 566 │ .local v3, "type":I │ const/4 v0, 0x0 │ │ - .line 566 │ + .line 567 │ .local v0, "flags":I │ const/16 v1, 0x8 │ │ - .line 567 │ + .line 568 │ .local v1, "length":I │ const/16 v4, 0x100 │ │ invoke-static {v4}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ sget-object v5, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v4, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 568 │ + .line 569 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ const v4, -0x7ffcfff9 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 569 │ + .line 570 │ const/16 v4, 0x8 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 570 │ + .line 571 │ invoke-virtual {v2, p1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 571 │ + .line 572 │ iget v4, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->spdyGoAwayCode:I │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 572 │ + .line 573 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 573 │ + .line 574 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ const/4 v6, 0x1 │ │ new-array v6, v6, [Ljava/nio/ByteBuffer; │ @@ -566,15 +566,15 @@ │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 574 │ + .line 575 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized headers(ILjava/util/List;)V │ .locals 7 │ @@ -592,15 +592,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 432 │ + .line 433 │ .local p2, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v5, :cond_0 │ @@ -618,77 +618,77 @@ │ :catchall_0 │ move-exception v5 │ │ monitor-exit p0 │ │ throw v5 │ │ - .line 433 │ + .line 434 │ :cond_0 │ :try_start_1 │ invoke-direct {p0, p2}, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->writeNameValueBlockToBuffer(Ljava/util/List;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v1 │ │ - .line 434 │ + .line 435 │ .local v1, "headerBlockBuffer":Lcom/koushikdutta/async/ByteBufferList; │ const/4 v0, 0x0 │ │ - .line 435 │ + .line 436 │ .local v0, "flags":I │ const/16 v4, 0x8 │ │ - .line 436 │ + .line 437 │ .local v4, "type":I │ invoke-virtual {v1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v5 │ │ add-int/lit8 v2, v5, 0x4 │ │ - .line 438 │ + .line 439 │ .local v2, "length":I │ const/16 v5, 0x100 │ │ invoke-static {v5}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ sget-object v6, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v3 │ │ - .line 439 │ + .line 440 │ .local v3, "sink":Ljava/nio/ByteBuffer; │ const v5, -0x7ffcfff8 │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 440 │ + .line 441 │ const v5, 0xffffff │ │ and-int/2addr v5, v2 │ │ or-int/lit8 v5, v5, 0x0 │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 441 │ + .line 442 │ const v5, 0x7fffffff │ │ and-int/2addr v5, p1 │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 442 │ + .line 443 │ invoke-virtual {v3}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 443 │ + .line 444 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v3}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v6 │ @@ -697,15 +697,15 @@ │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 444 │ + .line 445 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized ping(ZII)V │ .locals 9 │ @@ -719,15 +719,15 @@ │ .end annotation │ │ .prologue │ const/4 v5, 0x0 │ │ const/4 v2, 0x1 │ │ - .line 543 │ + .line 544 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v6, :cond_0 │ │ @@ -744,29 +744,29 @@ │ :catchall_0 │ move-exception v5 │ │ monitor-exit p0 │ │ throw v5 │ │ - .line 544 │ + .line 545 │ :cond_0 │ :try_start_1 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->client:Z │ │ and-int/lit8 v6, p2, 0x1 │ │ if-ne v6, v2, :cond_1 │ │ move v6, v2 │ │ :goto_0 │ if-eq v7, v6, :cond_2 │ │ - .line 545 │ + .line 546 │ .local v2, "payloadIsReply":Z │ :goto_1 │ if-eq p1, v2, :cond_3 │ │ new-instance v5, Ljava/lang/IllegalArgumentException; │ │ const-string v6, "payload != reply" │ @@ -775,67 +775,67 @@ │ │ throw v5 │ │ .end local v2 # "payloadIsReply":Z │ :cond_1 │ move v6, v5 │ │ - .line 544 │ + .line 545 │ goto :goto_0 │ │ :cond_2 │ move v2, v5 │ │ goto :goto_1 │ │ - .line 546 │ + .line 547 │ .restart local v2 # "payloadIsReply":Z │ :cond_3 │ const/4 v4, 0x6 │ │ - .line 547 │ + .line 548 │ .local v4, "type":I │ const/4 v0, 0x0 │ │ - .line 548 │ + .line 549 │ .local v0, "flags":I │ const/4 v1, 0x4 │ │ - .line 549 │ + .line 550 │ .local v1, "length":I │ const/16 v5, 0x100 │ │ invoke-static {v5}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ sget-object v6, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v3 │ │ - .line 550 │ + .line 551 │ .local v3, "sink":Ljava/nio/ByteBuffer; │ const v5, -0x7ffcfffa │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 551 │ + .line 552 │ const/4 v5, 0x4 │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 552 │ + .line 553 │ invoke-virtual {v3, p2}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 553 │ + .line 554 │ invoke-virtual {v3}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 554 │ + .line 555 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ const/4 v7, 0x1 │ │ new-array v7, v7, [Ljava/nio/ByteBuffer; │ @@ -848,15 +848,15 @@ │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 555 │ + .line 556 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public pushPromise(IILjava/util/List;)V │ .locals 0 │ @@ -875,15 +875,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 384 │ + .line 385 │ .local p3, "requestHeaders":Ljava/util/List;, "Ljava/util/List;" │ return-void │ .end method │ │ .method public declared-synchronized rstStream(ILcom/koushikdutta/async/http/spdy/ErrorCode;)V │ .locals 8 │ .param p1, "streamId" # I │ @@ -891,15 +891,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 449 │ + .line 450 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v4, :cond_0 │ │ @@ -916,82 +916,82 @@ │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ │ throw v4 │ │ - .line 450 │ + .line 451 │ :cond_0 │ :try_start_1 │ iget v4, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->spdyRstCode:I │ │ const/4 v5, -0x1 │ │ if-ne v4, v5, :cond_1 │ │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ invoke-direct {v4}, Ljava/lang/IllegalArgumentException;->()V │ │ throw v4 │ │ - .line 451 │ + .line 452 │ :cond_1 │ const/4 v0, 0x0 │ │ - .line 452 │ + .line 453 │ .local v0, "flags":I │ const/4 v3, 0x3 │ │ - .line 453 │ + .line 454 │ .local v3, "type":I │ const/16 v1, 0x8 │ │ - .line 454 │ + .line 455 │ .local v1, "length":I │ const/16 v4, 0x100 │ │ invoke-static {v4}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ sget-object v5, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v4, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 455 │ + .line 456 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ const v4, -0x7ffcfffd │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 456 │ + .line 457 │ const/16 v4, 0x8 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 457 │ + .line 458 │ const v4, 0x7fffffff │ │ and-int/2addr v4, p1 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 458 │ + .line 459 │ iget v4, p2, Lcom/koushikdutta/async/http/spdy/ErrorCode;->spdyRstCode:I │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 459 │ + .line 460 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 460 │ + .line 461 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ const/4 v6, 0x1 │ │ new-array v6, v6, [Ljava/nio/ByteBuffer; │ @@ -1004,15 +1004,15 @@ │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 461 │ + .line 462 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method sendDataFrame(IILcom/koushikdutta/async/ByteBufferList;)V │ .locals 6 │ @@ -1022,44 +1022,44 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 472 │ + .line 473 │ iget-boolean v2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v2, :cond_0 │ │ new-instance v2, Ljava/io/IOException; │ │ const-string v3, "closed" │ │ invoke-direct {v2, v3}, Ljava/io/IOException;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 473 │ + .line 474 │ :cond_0 │ invoke-virtual {p3}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v0 │ │ - .line 474 │ + .line 475 │ .local v0, "byteCount":I │ int-to-long v2, v0 │ │ const-wide/32 v4, 0xffffff │ │ cmp-long v2, v2, v4 │ │ if-lez v2, :cond_1 │ │ - .line 475 │ + .line 476 │ new-instance v2, Ljava/lang/IllegalArgumentException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "FRAME_TOO_LARGE max size is 16Mib: " │ @@ -1076,69 +1076,69 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 477 │ + .line 478 │ :cond_1 │ const/16 v2, 0x100 │ │ invoke-static {v2}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ sget-object v3, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v2, v3}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v1 │ │ - .line 478 │ + .line 479 │ .local v1, "sink":Ljava/nio/ByteBuffer; │ const v2, 0x7fffffff │ │ and-int/2addr v2, p1 │ │ invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 479 │ + .line 480 │ and-int/lit16 v2, p2, 0xff │ │ shl-int/lit8 v2, v2, 0x18 │ │ const v3, 0xffffff │ │ and-int/2addr v3, v0 │ │ or-int/2addr v2, v3 │ │ invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 480 │ + .line 481 │ invoke-virtual {v1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 481 │ + .line 482 │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->dataList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v2, v1}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v2 │ │ invoke-virtual {v2, p3}, Lcom/koushikdutta/async/ByteBufferList;->add(Lcom/koushikdutta/async/ByteBufferList;)Lcom/koushikdutta/async/ByteBufferList; │ │ - .line 482 │ + .line 483 │ iget-object v2, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v3, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->dataList:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ │ - .line 483 │ + .line 484 │ return-void │ .end method │ │ .method public declared-synchronized settings(Lcom/koushikdutta/async/http/spdy/Settings;)V │ .locals 11 │ .param p1, "settings" # Lcom/koushikdutta/async/http/spdy/Settings; │ .annotation system Ldalvik/annotation/Throws; │ @@ -1146,15 +1146,15 @@ │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ const v9, 0xffffff │ │ - .line 521 │ + .line 522 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v7, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v7, :cond_0 │ │ @@ -1171,120 +1171,120 @@ │ :catchall_0 │ move-exception v7 │ │ monitor-exit p0 │ │ throw v7 │ │ - .line 522 │ + .line 523 │ :cond_0 │ const/4 v6, 0x4 │ │ - .line 523 │ + .line 524 │ .local v6, "type":I │ const/4 v0, 0x0 │ │ - .line 524 │ + .line 525 │ .local v0, "flags":I │ :try_start_1 │ invoke-virtual {p1}, Lcom/koushikdutta/async/http/spdy/Settings;->size()I │ │ move-result v5 │ │ - .line 525 │ + .line 526 │ .local v5, "size":I │ mul-int/lit8 v7, v5, 0x8 │ │ add-int/lit8 v2, v7, 0x4 │ │ - .line 526 │ + .line 527 │ .local v2, "length":I │ const/16 v7, 0x100 │ │ invoke-static {v7}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v7 │ │ sget-object v8, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v7, v8}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ - .line 527 │ + .line 528 │ .local v4, "sink":Ljava/nio/ByteBuffer; │ const v7, -0x7ffcfffc │ │ invoke-virtual {v4, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 528 │ + .line 529 │ and-int v7, v2, v9 │ │ or-int/lit8 v7, v7, 0x0 │ │ invoke-virtual {v4, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 529 │ + .line 530 │ invoke-virtual {v4, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 530 │ + .line 531 │ const/4 v1, 0x0 │ │ .local v1, "i":I │ :goto_0 │ const/16 v7, 0xa │ │ if-gt v1, v7, :cond_2 │ │ - .line 531 │ + .line 532 │ invoke-virtual {p1, v1}, Lcom/koushikdutta/async/http/spdy/Settings;->isSet(I)Z │ │ move-result v7 │ │ if-nez v7, :cond_1 │ │ - .line 530 │ + .line 531 │ :goto_1 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 532 │ + .line 533 │ :cond_1 │ invoke-virtual {p1, v1}, Lcom/koushikdutta/async/http/spdy/Settings;->flags(I)I │ │ move-result v3 │ │ - .line 533 │ + .line 534 │ .local v3, "settingsFlags":I │ and-int/lit16 v7, v3, 0xff │ │ shl-int/lit8 v7, v7, 0x18 │ │ and-int v8, v1, v9 │ │ or-int/2addr v7, v8 │ │ invoke-virtual {v4, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 534 │ + .line 535 │ invoke-virtual {p1, v1}, Lcom/koushikdutta/async/http/spdy/Settings;->get(I)I │ │ move-result v7 │ │ invoke-virtual {v4, v7}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ goto :goto_1 │ │ - .line 536 │ + .line 537 │ .end local v3 # "settingsFlags":I │ :cond_2 │ invoke-virtual {v4}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 537 │ + .line 538 │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v8, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ const/4 v9, 0x1 │ │ new-array v9, v9, [Ljava/nio/ByteBuffer; │ @@ -1297,15 +1297,15 @@ │ │ move-result-object v8 │ │ invoke-virtual {v7, v8}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 538 │ + .line 539 │ monitor-exit p0 │ │ return-void │ .end method │ │ .method public declared-synchronized synReply(ZILjava/util/List;)V │ .locals 7 │ @@ -1324,15 +1324,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 415 │ + .line 416 │ .local p3, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v5, :cond_0 │ @@ -1350,84 +1350,84 @@ │ :catchall_0 │ move-exception v5 │ │ monitor-exit p0 │ │ throw v5 │ │ - .line 416 │ + .line 417 │ :cond_0 │ :try_start_1 │ invoke-direct {p0, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->writeNameValueBlockToBuffer(Ljava/util/List;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v1 │ │ - .line 417 │ + .line 418 │ .local v1, "headerBlockBuffer":Lcom/koushikdutta/async/ByteBufferList; │ const/4 v4, 0x2 │ │ - .line 418 │ + .line 419 │ .local v4, "type":I │ if-eqz p1, :cond_1 │ │ const/4 v0, 0x1 │ │ - .line 419 │ + .line 420 │ .local v0, "flags":I │ :goto_0 │ invoke-virtual {v1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v5 │ │ add-int/lit8 v2, v5, 0x4 │ │ - .line 421 │ + .line 422 │ .local v2, "length":I │ const/16 v5, 0x100 │ │ invoke-static {v5}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v5 │ │ sget-object v6, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v3 │ │ - .line 422 │ + .line 423 │ .local v3, "sink":Ljava/nio/ByteBuffer; │ const v5, -0x7ffcfffe │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 423 │ + .line 424 │ and-int/lit16 v5, v0, 0xff │ │ shl-int/lit8 v5, v5, 0x18 │ │ const v6, 0xffffff │ │ and-int/2addr v6, v2 │ │ or-int/2addr v5, v6 │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 424 │ + .line 425 │ const v5, 0x7fffffff │ │ and-int/2addr v5, p2 │ │ invoke-virtual {v3, v5}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 425 │ + .line 426 │ invoke-virtual {v3}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 426 │ + .line 427 │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v6, v3}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v6 │ @@ -1436,20 +1436,20 @@ │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 427 │ + .line 428 │ monitor-exit p0 │ │ return-void │ │ - .line 418 │ + .line 419 │ .end local v0 # "flags":I │ .end local v2 # "length":I │ .end local v3 # "sink":Ljava/nio/ByteBuffer; │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ @@ -1479,15 +1479,15 @@ │ │ .prologue │ .local p5, "headerBlock":Ljava/util/List;, "Ljava/util/List;" │ const v9, 0x7fffffff │ │ const/4 v7, 0x0 │ │ - .line 395 │ + .line 396 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v6, :cond_0 │ │ @@ -1504,34 +1504,34 @@ │ :catchall_0 │ move-exception v6 │ │ monitor-exit p0 │ │ throw v6 │ │ - .line 396 │ + .line 397 │ :cond_0 │ :try_start_1 │ invoke-direct {p0, p5}, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->writeNameValueBlockToBuffer(Ljava/util/List;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v1 │ │ - .line 397 │ + .line 398 │ .local v1, "headerBlockBuffer":Lcom/koushikdutta/async/ByteBufferList; │ invoke-virtual {v1}, Lcom/koushikdutta/async/ByteBufferList;->remaining()I │ │ move-result v6 │ │ add-int/lit8 v2, v6, 0xa │ │ - .line 398 │ + .line 399 │ .local v2, "length":I │ const/4 v4, 0x1 │ │ - .line 399 │ + .line 400 │ .local v4, "type":I │ if-eqz p1, :cond_1 │ │ const/4 v6, 0x1 │ │ move v8, v6 │ │ @@ -1539,70 +1539,70 @@ │ if-eqz p2, :cond_2 │ │ const/4 v6, 0x2 │ │ :goto_1 │ or-int v0, v8, v6 │ │ - .line 401 │ + .line 402 │ .local v0, "flags":I │ const/4 v5, 0x0 │ │ - .line 402 │ + .line 403 │ .local v5, "unused":I │ const/16 v6, 0x100 │ │ invoke-static {v6}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v6 │ │ sget-object v8, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v6, v8}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v3 │ │ - .line 403 │ + .line 404 │ .local v3, "sink":Ljava/nio/ByteBuffer; │ const v6, -0x7ffcffff │ │ invoke-virtual {v3, v6}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 404 │ + .line 405 │ and-int/lit16 v6, v0, 0xff │ │ shl-int/lit8 v6, v6, 0x18 │ │ const v8, 0xffffff │ │ and-int/2addr v8, v2 │ │ or-int/2addr v6, v8 │ │ invoke-virtual {v3, v6}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 405 │ + .line 406 │ and-int v6, p3, v9 │ │ invoke-virtual {v3, v6}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 406 │ + .line 407 │ and-int v6, p4, v9 │ │ invoke-virtual {v3, v6}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 407 │ + .line 408 │ int-to-short v6, v7 │ │ invoke-virtual {v3, v6}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer; │ │ - .line 408 │ + .line 409 │ invoke-virtual {v3}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 409 │ + .line 410 │ iget-object v6, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v7, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-virtual {v7, v3}, Lcom/koushikdutta/async/ByteBufferList;->add(Ljava/nio/ByteBuffer;)Lcom/koushikdutta/async/ByteBufferList; │ │ move-result-object v7 │ @@ -1611,26 +1611,26 @@ │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 410 │ + .line 411 │ monitor-exit p0 │ │ return-void │ │ .end local v0 # "flags":I │ .end local v3 # "sink":Ljava/nio/ByteBuffer; │ .end local v5 # "unused":I │ :cond_1 │ move v8, v7 │ │ - .line 399 │ + .line 400 │ goto :goto_0 │ │ :cond_2 │ move v6, v7 │ │ goto :goto_1 │ .end method │ @@ -1642,15 +1642,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ - .line 579 │ + .line 580 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->closed:Z │ │ if-eqz v4, :cond_0 │ │ @@ -1667,29 +1667,29 @@ │ :catchall_0 │ move-exception v4 │ │ monitor-exit p0 │ │ throw v4 │ │ - .line 580 │ + .line 581 │ :cond_0 │ const-wide/16 v4, 0x0 │ │ cmp-long v4, p2, v4 │ │ if-eqz v4, :cond_1 │ │ const-wide/32 v4, 0x7fffffff │ │ cmp-long v4, p2, v4 │ │ if-lez v4, :cond_2 │ │ - .line 581 │ + .line 582 │ :cond_1 │ :try_start_1 │ new-instance v4, Ljava/lang/IllegalArgumentException; │ │ new-instance v5, Ljava/lang/StringBuilder; │ │ invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ @@ -1708,63 +1708,63 @@ │ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v4 │ │ - .line 584 │ + .line 585 │ :cond_2 │ const/16 v3, 0x9 │ │ - .line 585 │ + .line 586 │ .local v3, "type":I │ const/4 v0, 0x0 │ │ - .line 586 │ + .line 587 │ .local v0, "flags":I │ const/16 v1, 0x8 │ │ - .line 587 │ + .line 588 │ .local v1, "length":I │ const/16 v4, 0x100 │ │ invoke-static {v4}, Lcom/koushikdutta/async/ByteBufferList;->obtain(I)Ljava/nio/ByteBuffer; │ │ move-result-object v4 │ │ sget-object v5, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder; │ │ invoke-virtual {v4, v5}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; │ │ move-result-object v2 │ │ - .line 588 │ + .line 589 │ .local v2, "sink":Ljava/nio/ByteBuffer; │ const v4, -0x7ffcfff7 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 589 │ + .line 590 │ const/16 v4, 0x8 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 590 │ + .line 591 │ invoke-virtual {v2, p1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 591 │ + .line 592 │ long-to-int v4, p2 │ │ invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; │ │ - .line 592 │ + .line 593 │ invoke-virtual {v2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; │ │ - .line 593 │ + .line 594 │ iget-object v4, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->sink:Lcom/koushikdutta/async/BufferedDataSink; │ │ iget-object v5, p0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->frameHeader:Lcom/koushikdutta/async/ByteBufferList; │ │ const/4 v6, 0x1 │ │ new-array v6, v6, [Ljava/nio/ByteBuffer; │ @@ -1777,12 +1777,12 @@ │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/async/BufferedDataSink;->write(Lcom/koushikdutta/async/ByteBufferList;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 594 │ + .line 595 │ monitor-exit p0 │ │ return-void │ .end method ├── smali/com/koushikdutta/async/http/spdy/Spdy3.smali │ @@ -44,102 +44,103 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 3 │ │ .prologue │ - .line 66 │ + .line 67 │ :try_start_0 │ const-string v1, "\u0000\u0000\u0000\u0007options\u0000\u0000\u0000\u0004head\u0000\u0000\u0000\u0004post\u0000\u0000\u0000\u0003put\u0000\u0000\u0000\u0006delete\u0000\u0000\u0000\u0005trace\u0000\u0000\u0000\u0006accept\u0000\u0000\u0000\u000eaccept-charset\u0000\u0000\u0000\u000faccept-encoding\u0000\u0000\u0000\u000faccept-language\u0000\u0000\u0000\raccept-ranges\u0000\u0000\u0000\u0003age\u0000\u0000\u0000\u0005allow\u0000\u0000\u0000\rauthorization\u0000\u0000\u0000\rcache-control\u0000\u0000\u0000\nconnection\u0000\u0000\u0000\u000ccontent-base\u0000\u0000\u0000\u0010content-encoding\u0000\u0000\u0000\u0010content-language\u0000\u0000\u0000\u000econtent-length\u0000\u0000\u0000\u0010content-location\u0000\u0000\u0000\u000bcontent-md5\u0000\u0000\u0000\rcontent-range\u0000\u0000\u0000\u000ccontent-type\u0000\u0000\u0000\u0004date\u0000\u0000\u0000\u0004etag\u0000\u0000\u0000\u0006expect\u0000\u0000\u0000\u0007expires\u0000\u0000\u0000\u0004from\u0000\u0000\u0000\u0004host\u0000\u0000\u0000\u0008if-match\u0000\u0000\u0000\u0011if-modified-since\u0000\u0000\u0000\rif-none-match\u0000\u0000\u0000\u0008if-range\u0000\u0000\u0000\u0013if-unmodified-since\u0000\u0000\u0000\rlast-modified\u0000\u0000\u0000\u0008location\u0000\u0000\u0000\u000cmax-forwards\u0000\u0000\u0000\u0006pragma\u0000\u0000\u0000\u0012proxy-authenticate\u0000\u0000\u0000\u0013proxy-authorization\u0000\u0000\u0000\u0005range\u0000\u0000\u0000\u0007referer\u0000\u0000\u0000\u000bretry-after\u0000\u0000\u0000\u0006server\u0000\u0000\u0000\u0002te\u0000\u0000\u0000\u0007trailer\u0000\u0000\u0000\u0011transfer-encoding\u0000\u0000\u0000\u0007upgrade\u0000\u0000\u0000\nuser-agent\u0000\u0000\u0000\u0004vary\u0000\u0000\u0000\u0003via\u0000\u0000\u0000\u0007warning\u0000\u0000\u0000\u0010www-authenticate\u0000\u0000\u0000\u0006method\u0000\u0000\u0000\u0003get\u0000\u0000\u0000\u0006status\u0000\u0000\u0000\u0006200 OK\u0000\u0000\u0000\u0007version\u0000\u0000\u0000\u0008HTTP/1.1\u0000\u0000\u0000\u0003url\u0000\u0000\u0000\u0006public\u0000\u0000\u0000\nset-cookie\u0000\u0000\u0000\nkeep-alive\u0000\u0000\u0000\u0006origin100101201202205206300302303304305306307402405406407408409410411412413414415416417502504505203 Non-Authoritative Information204 No Content301 Moved Permanently400 Bad Request401 Unauthorized403 Forbidden404 Not Found500 Internal Server Error501 Not Implemented503 Service UnavailableJan Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec 00:00:00 Mon, Tue, Wed, Thu, Fri, Sat, Sun, GMTchunked,text/html,image/png,image/jpg,image/gif,application/xml,application/xhtml+xml,text/plain,text/javascript,publicprivatemax-age=gzip,deflate,sdchcharset=utf-8charset=iso-8859-1,utf-,*,enq=0." │ │ sget-object v2, Lcom/koushikdutta/async/util/Charsets;->UTF_8:Ljava/nio/charset/Charset; │ │ + .line 99 │ invoke-virtual {v2}, Ljava/nio/charset/Charset;->name()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B │ │ move-result-object v1 │ │ sput-object v1, Lcom/koushikdutta/async/http/spdy/Spdy3;->DICTIONARY:[B │ :try_end_0 │ .catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - .line 102 │ + .line 103 │ return-void │ │ - .line 99 │ + .line 100 │ :catch_0 │ move-exception v0 │ │ - .line 100 │ + .line 101 │ .local v0, "e":Ljava/io/UnsupportedEncodingException; │ new-instance v1, Ljava/lang/AssertionError; │ │ invoke-direct {v1}, Ljava/lang/AssertionError;->()V │ │ throw v1 │ .end method │ │ .method constructor ()V │ .locals 0 │ │ .prologue │ - .line 40 │ + .line 41 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 361 │ + .line 362 │ return-void │ .end method │ │ │ # virtual methods │ .method public getProtocol()Lcom/koushikdutta/async/http/Protocol; │ .locals 1 │ │ .prologue │ - .line 44 │ + .line 45 │ sget-object v0, Lcom/koushikdutta/async/http/Protocol;->SPDY_3:Lcom/koushikdutta/async/http/Protocol; │ │ return-object v0 │ .end method │ │ .method public maxFrameSize()I │ .locals 1 │ │ .prologue │ - .line 116 │ + .line 117 │ const/16 v0, 0x3fff │ │ return v0 │ .end method │ │ .method public newReader(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;Z)Lcom/koushikdutta/async/http/spdy/FrameReader; │ .locals 1 │ .param p1, "source" # Lcom/koushikdutta/async/DataEmitter; │ .param p2, "handler" # Lcom/koushikdutta/async/http/spdy/FrameReader$Handler; │ .param p3, "client" # Z │ │ .prologue │ - .line 106 │ + .line 107 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader; │ │ invoke-direct {v0, p1, p2, p3}, Lcom/koushikdutta/async/http/spdy/Spdy3$Reader;->(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/http/spdy/FrameReader$Handler;Z)V │ │ return-object v0 │ .end method │ │ .method public newWriter(Lcom/koushikdutta/async/BufferedDataSink;Z)Lcom/koushikdutta/async/http/spdy/FrameWriter; │ .locals 1 │ .param p1, "sink" # Lcom/koushikdutta/async/BufferedDataSink; │ .param p2, "client" # Z │ │ .prologue │ - .line 111 │ + .line 112 │ new-instance v0, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer; │ │ invoke-direct {v0, p1, p2}, Lcom/koushikdutta/async/http/spdy/Spdy3$Writer;->(Lcom/koushikdutta/async/BufferedDataSink;Z)V │ │ return-object v0 │ .end method ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ .prologue │ .line 42 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$1;->this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$2$1.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic this$1:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2;Lcom/koushikdutta/async/AsyncSocket;Lcom/koushikdutta/async/http/Protocol;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2; │ .param p2, "x0" # Lcom/koushikdutta/async/AsyncSocket; │ .param p3, "x1" # Lcom/koushikdutta/async/http/Protocol; │ │ .prologue │ .line 219 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2$1;->this$1:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2; ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$2.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$key:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Ljava/lang/String;Lcom/koushikdutta/async/callback/ConnectCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ .prologue │ .line 189 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2;->this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$2;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$3.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$superCallback:Lcom/koushikdutta/async/callback/ConnectCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Ljava/lang/String;Lcom/koushikdutta/async/callback/ConnectCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ .prologue │ .line 306 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$3;->this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$3;->val$key:Ljava/lang/String; ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$4.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleCancellable; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData;Lcom/koushikdutta/async/future/SimpleCancellable;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ .prologue │ .line 367 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$4;->this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$4;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$GetSocketData; ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$5.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$spdySocket:Lcom/koushikdutta/async/http/spdy/AsyncSpdyConnection$SpdySocket; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;Lcom/koushikdutta/async/http/spdy/AsyncSpdyConnection$SpdySocket;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ .prologue │ .line 423 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$5;->this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$5;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData; ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware$6.smali │ @@ -31,14 +31,15 @@ │ │ .field final synthetic val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ .prologue │ .line 404 │ iput-object p1, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$6;->this$0:Lcom/koushikdutta/async/http/spdy/SpdyMiddleware; │ │ iput-object p2, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$6;->val$data:Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData; ├── smali/com/koushikdutta/async/http/spdy/SpdyMiddleware.smali │ @@ -475,14 +475,15 @@ │ │ const/4 v7, 0x0 │ │ sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class; │ │ aput-object v8, v6, v7 │ │ + .line 63 │ invoke-virtual {v4, v5, v6}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;->nativeGetNpnNegotiatedProtocol:Ljava/lang/reflect/Method; │ │ .line 64 │ @@ -510,14 +511,15 @@ │ │ const/4 v7, 0x0 │ │ sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class; │ │ aput-object v8, v6, v7 │ │ + .line 65 │ invoke-virtual {v4, v5, v6}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;->nativeGetAlpnNegotiatedProtocol:Ljava/lang/reflect/Method; │ │ .line 67 │ @@ -1262,24 +1264,26 @@ │ │ move-result-object v2 │ │ new-instance v3, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$6; │ │ invoke-direct {v3, p0, p1}, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$6;->(Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;)V │ │ + .line 404 │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/future/SimpleFuture;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$6; │ │ new-instance v3, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$5; │ │ invoke-direct {v3, p0, p1, v1}, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$5;->(Lcom/koushikdutta/async/http/spdy/SpdyMiddleware;Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnExchangeHeaderData;Lcom/koushikdutta/async/http/spdy/AsyncSpdyConnection$SpdySocket;)V │ │ + .line 423 │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/spdy/SpdyMiddleware$6;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ .line 431 │ const/4 v2, 0x1 │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/async/parser/ByteBufferListParser$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$emitter:Lcom/koushikdutta/async/DataEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/ByteBufferListParser;Lcom/koushikdutta/async/DataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ .prologue │ .line 21 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/ByteBufferListParser$1;->this$0:Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ iput-object p2, p0, Lcom/koushikdutta/async/parser/ByteBufferListParser$1;->val$emitter:Lcom/koushikdutta/async/DataEmitter; ├── smali/com/koushikdutta/async/parser/ByteBufferListParser$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$bb:Lcom/koushikdutta/async/ByteBufferList; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/ByteBufferListParser;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ .prologue │ .line 27 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/ByteBufferListParser$2;->this$0:Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ iput-object p2, p0, Lcom/koushikdutta/async/parser/ByteBufferListParser$2;->val$bb:Lcom/koushikdutta/async/ByteBufferList; ├── smali/com/koushikdutta/async/parser/ByteBufferListParser$3.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/ByteBufferListParser;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/ByteBufferList;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ .prologue │ .line 34 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/ByteBufferListParser$3;->this$0:Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ iput-object p2, p0, Lcom/koushikdutta/async/parser/ByteBufferListParser$3;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; ├── smali/com/koushikdutta/async/parser/DocumentParser$1.smali │ @@ -27,14 +27,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/parser/DocumentParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/DocumentParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/DocumentParser; │ │ .prologue │ .line 26 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/DocumentParser$1;->this$0:Lcom/koushikdutta/async/parser/DocumentParser; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V ├── smali/com/koushikdutta/async/parser/DocumentParser.smali │ @@ -66,14 +66,15 @@ │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/parser/DocumentParser$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/parser/DocumentParser$1;->(Lcom/koushikdutta/async/parser/DocumentParser;)V │ │ + .line 26 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 ├── smali/com/koushikdutta/async/parser/JSONArrayParser$1.smali │ @@ -27,14 +27,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/parser/JSONArrayParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/JSONArrayParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/JSONArrayParser; │ │ .prologue │ .line 21 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/JSONArrayParser$1;->this$0:Lcom/koushikdutta/async/parser/JSONArrayParser; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V ├── smali/com/koushikdutta/async/parser/JSONArrayParser.smali │ @@ -66,14 +66,15 @@ │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/parser/JSONArrayParser$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/parser/JSONArrayParser$1;->(Lcom/koushikdutta/async/parser/JSONArrayParser;)V │ │ + .line 21 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 ├── smali/com/koushikdutta/async/parser/JSONObjectParser$1.smali │ @@ -27,14 +27,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/parser/JSONObjectParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/JSONObjectParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/JSONObjectParser; │ │ .prologue │ .line 19 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/JSONObjectParser$1;->this$0:Lcom/koushikdutta/async/parser/JSONObjectParser; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V ├── smali/com/koushikdutta/async/parser/JSONObjectParser.smali │ @@ -66,14 +66,15 @@ │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/async/parser/JSONObjectParser$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/async/parser/JSONObjectParser$1;->(Lcom/koushikdutta/async/parser/JSONObjectParser;)V │ │ + .line 19 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 ├── smali/com/koushikdutta/async/parser/StringParser$1.smali │ @@ -29,14 +29,15 @@ │ │ .field final synthetic val$charset:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/parser/StringParser;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/parser/StringParser; │ │ .prologue │ .line 30 │ iput-object p1, p0, Lcom/koushikdutta/async/parser/StringParser$1;->this$0:Lcom/koushikdutta/async/parser/StringParser; │ │ iput-object p2, p0, Lcom/koushikdutta/async/parser/StringParser$1;->val$charset:Ljava/lang/String; ├── smali/com/koushikdutta/async/parser/StringParser.smali │ @@ -92,14 +92,15 @@ │ │ move-result-object v1 │ │ new-instance v2, Lcom/koushikdutta/async/parser/StringParser$1; │ │ invoke-direct {v2, p0, v0}, Lcom/koushikdutta/async/parser/StringParser$1;->(Lcom/koushikdutta/async/parser/StringParser;Ljava/lang/String;)V │ │ + .line 30 │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/future/Future; │ │ return-object v1 ├── smali/com/koushikdutta/async/stream/InputStreamDataEmitter$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$e:Ljava/lang/Exception; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/stream/InputStreamDataEmitter;Ljava/lang/Exception;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/stream/InputStreamDataEmitter; │ │ .prologue │ .line 57 │ iput-object p1, p0, Lcom/koushikdutta/async/stream/InputStreamDataEmitter$1;->this$0:Lcom/koushikdutta/async/stream/InputStreamDataEmitter; │ │ iput-object p2, p0, Lcom/koushikdutta/async/stream/InputStreamDataEmitter$1;->val$e:Ljava/lang/Exception; ├── smali/com/koushikdutta/async/stream/InputStreamDataEmitter$2$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2; │ │ .prologue │ .line 80 │ iput-object p1, p0, Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2$1;->this$1:Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/stream/InputStreamDataEmitter$2$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2; │ │ .prologue │ .line 100 │ iput-object p1, p0, Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2$2;->this$1:Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/stream/InputStreamDataEmitter$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/stream/InputStreamDataEmitter; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/stream/InputStreamDataEmitter;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/stream/InputStreamDataEmitter; │ │ .prologue │ .line 75 │ iput-object p1, p0, Lcom/koushikdutta/async/stream/InputStreamDataEmitter$2;->this$0:Lcom/koushikdutta/async/stream/InputStreamDataEmitter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/util/FileCache$1.smali │ @@ -30,14 +30,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/util/FileCache; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/util/FileCache;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/util/FileCache; │ │ .prologue │ .line 228 │ iput-object p1, p0, Lcom/koushikdutta/async/util/FileCache$1;->this$0:Lcom/koushikdutta/async/util/FileCache; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/util/FileCache$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/util/FileCache; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/async/util/FileCache;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/async/util/FileCache; │ │ .prologue │ .line 266 │ iput-object p1, p0, Lcom/koushikdutta/async/util/FileCache$2;->this$0:Lcom/koushikdutta/async/util/FileCache; │ │ invoke-direct {p0}, Ljava/lang/Thread;->()V ├── smali/com/koushikdutta/async/util/FileCache$CacheEntry.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/async/util/FileCache; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/util/FileCache;Ljava/io/File;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/util/FileCache; │ .param p2, "file" # Ljava/io/File; │ │ .prologue │ .line 24 │ iput-object p1, p0, Lcom/koushikdutta/async/util/FileCache$CacheEntry;->this$0:Lcom/koushikdutta/async/util/FileCache; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/async/util/FileCache$InternalCache.smali │ @@ -27,14 +27,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/async/util/FileCache; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/async/util/FileCache;)V │ .locals 2 │ + .param p1, "this$0" # Lcom/koushikdutta/async/util/FileCache; │ │ .prologue │ .line 204 │ iput-object p1, p0, Lcom/koushikdutta/async/util/FileCache$InternalCache;->this$0:Lcom/koushikdutta/async/util/FileCache; │ │ .line 205 │ iget-wide v0, p1, Lcom/koushikdutta/async/util/FileCache;->size:J ├── smali/com/koushikdutta/async/util/FileCache.smali │ @@ -185,14 +185,15 @@ │ if-eqz v0, :cond_0 │ │ .line 266 │ new-instance v0, Lcom/koushikdutta/async/util/FileCache$2; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/async/util/FileCache$2;->(Lcom/koushikdutta/async/util/FileCache;)V │ │ + .line 271 │ invoke-virtual {v0}, Lcom/koushikdutta/async/util/FileCache$2;->start()V │ │ .line 276 │ :goto_0 │ return-void │ │ .line 274 ├── smali/com/koushikdutta/async/util/LruCache.smali │ @@ -43,81 +43,81 @@ │ │ # direct methods │ .method public constructor (J)V │ .locals 5 │ .param p1, "maxSize" # J │ │ .prologue │ - .line 47 │ + .line 48 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 48 │ + .line 49 │ const-wide/16 v0, 0x0 │ │ cmp-long v0, p1, v0 │ │ if-gtz v0, :cond_0 │ │ - .line 49 │ + .line 50 │ new-instance v0, Ljava/lang/IllegalArgumentException; │ │ const-string v1, "maxSize <= 0" │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 51 │ + .line 52 │ :cond_0 │ iput-wide p1, p0, Lcom/koushikdutta/async/util/LruCache;->maxSize:J │ │ - .line 52 │ + .line 53 │ new-instance v0, Ljava/util/LinkedHashMap; │ │ const/4 v1, 0x0 │ │ const/high16 v2, 0x3f400000 # 0.75f │ │ const/4 v3, 0x1 │ │ invoke-direct {v0, v1, v2, v3}, Ljava/util/LinkedHashMap;->(IFZ)V │ │ iput-object v0, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ - .line 53 │ + .line 54 │ return-void │ .end method │ │ .method private safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ .locals 5 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TK;TV;)J" │ } │ .end annotation │ │ .prologue │ - .line 230 │ + .line 231 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p1, "key":Ljava/lang/Object;, "TK;" │ .local p2, "value":Ljava/lang/Object;, "TV;" │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/async/util/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ │ move-result-wide v0 │ │ - .line 231 │ + .line 232 │ .local v0, "result":J │ const-wide/16 v2, 0x0 │ │ cmp-long v2, v0, v2 │ │ if-gez v2, :cond_0 │ │ - .line 232 │ + .line 233 │ new-instance v2, Ljava/lang/IllegalStateException; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "Negative size: " │ @@ -144,32 +144,32 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 234 │ + .line 235 │ :cond_0 │ return-wide v0 │ .end method │ │ .method private trimToSize(J)V │ .locals 11 │ .param p1, "maxSize" # J │ │ .prologue │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ const-wide/16 v8, 0x0 │ │ - .line 146 │ + .line 147 │ :goto_0 │ monitor-enter p0 │ │ - .line 147 │ + .line 148 │ :try_start_0 │ iget-wide v4, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ cmp-long v3, v4, v8 │ │ if-ltz v3, :cond_0 │ │ @@ -183,15 +183,15 @@ │ │ iget-wide v4, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ cmp-long v3, v4, v8 │ │ if-eqz v3, :cond_1 │ │ - .line 148 │ + .line 149 │ :cond_0 │ new-instance v3, Ljava/lang/IllegalStateException; │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ @@ -217,25 +217,25 @@ │ │ move-result-object v4 │ │ invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v3 │ │ - .line 162 │ + .line 163 │ :catchall_0 │ move-exception v3 │ │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v3 │ │ - .line 152 │ + .line 153 │ :cond_1 │ :try_start_1 │ iget-wide v4, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ cmp-long v3, v4, p1 │ │ if-lez v3, :cond_2 │ @@ -244,22 +244,22 @@ │ │ invoke-virtual {v3}, Ljava/util/LinkedHashMap;->isEmpty()Z │ │ move-result v3 │ │ if-eqz v3, :cond_3 │ │ - .line 153 │ + .line 154 │ :cond_2 │ monitor-exit p0 │ │ - .line 166 │ + .line 167 │ return-void │ │ - .line 156 │ + .line 157 │ :cond_3 │ iget-object v3, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v3}, Ljava/util/LinkedHashMap;->entrySet()Ljava/util/Set; │ │ move-result-object v3 │ │ @@ -269,56 +269,56 @@ │ │ invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/util/Map$Entry; │ │ - .line 157 │ + .line 158 │ .local v1, "toEvict":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 158 │ + .line 159 │ .local v0, "key":Ljava/lang/Object;, "TK;" │ invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ move-result-object v2 │ │ - .line 159 │ + .line 160 │ .local v2, "value":Ljava/lang/Object;, "TV;" │ iget-object v3, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v3, v0}, Ljava/util/LinkedHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 160 │ + .line 161 │ iget-wide v4, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ invoke-direct {p0, v0, v2}, Lcom/koushikdutta/async/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ │ move-result-wide v6 │ │ sub-long/2addr v4, v6 │ │ iput-wide v4, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ - .line 161 │ + .line 162 │ iget v3, p0, Lcom/koushikdutta/async/util/LruCache;->evictionCount:I │ │ add-int/lit8 v3, v3, 0x1 │ │ iput v3, p0, Lcom/koushikdutta/async/util/LruCache;->evictionCount:I │ │ - .line 162 │ + .line 163 │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - .line 164 │ + .line 165 │ const/4 v3, 0x1 │ │ const/4 v4, 0x0 │ │ invoke-virtual {p0, v3, v0, v2, v4}, Lcom/koushikdutta/async/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V │ │ goto :goto_0 │ @@ -331,27 +331,27 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TK;)TV;" │ } │ .end annotation │ │ .prologue │ - .line 226 │ + .line 227 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p1, "key":Ljava/lang/Object;, "TK;" │ const/4 v0, 0x0 │ │ return-object v0 │ .end method │ │ .method public final declared-synchronized createCount()I │ .locals 1 │ │ .prologue │ - .line 296 │ + .line 297 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget v0, p0, Lcom/koushikdutta/async/util/LruCache;->createCount:I │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -374,41 +374,41 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(ZTK;TV;TV;)V" │ } │ .end annotation │ │ .prologue │ - .line 208 │ + .line 209 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p2, "key":Ljava/lang/Object;, "TK;" │ .local p3, "oldValue":Ljava/lang/Object;, "TV;" │ .local p4, "newValue":Ljava/lang/Object;, "TV;" │ return-void │ .end method │ │ .method public final evictAll()V │ .locals 2 │ │ .prologue │ - .line 252 │ + .line 253 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ const-wide/16 v0, -0x1 │ │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/async/util/LruCache;->trimToSize(J)V │ │ - .line 253 │ + .line 254 │ return-void │ .end method │ │ .method public final declared-synchronized evictionCount()I │ .locals 1 │ │ .prologue │ - .line 310 │ + .line 311 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget v0, p0, Lcom/koushikdutta/async/util/LruCache;->evictionCount:I │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -430,187 +430,187 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TK;)TV;" │ } │ .end annotation │ │ .prologue │ - .line 62 │ + .line 63 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p1, "key":Ljava/lang/Object;, "TK;" │ if-nez p1, :cond_0 │ │ - .line 63 │ + .line 64 │ new-instance v2, Ljava/lang/NullPointerException; │ │ const-string v3, "key == null" │ │ invoke-direct {v2, v3}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V │ │ throw v2 │ │ - .line 67 │ + .line 68 │ :cond_0 │ monitor-enter p0 │ │ - .line 68 │ + .line 69 │ :try_start_0 │ iget-object v2, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v2, p1}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 69 │ + .line 70 │ .local v1, "mapValue":Ljava/lang/Object;, "TV;" │ if-eqz v1, :cond_1 │ │ - .line 70 │ + .line 71 │ iget v2, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ │ - .line 71 │ + .line 72 │ monitor-exit p0 │ │ move-object v0, v1 │ │ - .line 105 │ + .line 106 │ :goto_0 │ return-object v0 │ │ - .line 73 │ + .line 74 │ :cond_1 │ iget v2, p0, Lcom/koushikdutta/async/util/LruCache;->missCount:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lcom/koushikdutta/async/util/LruCache;->missCount:I │ │ - .line 74 │ + .line 75 │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 83 │ + .line 84 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/async/util/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 84 │ + .line 85 │ .local v0, "createdValue":Ljava/lang/Object;, "TV;" │ if-nez v0, :cond_2 │ │ - .line 85 │ + .line 86 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 74 │ + .line 75 │ .end local v0 # "createdValue":Ljava/lang/Object;, "TV;" │ .end local v1 # "mapValue":Ljava/lang/Object;, "TV;" │ :catchall_0 │ move-exception v2 │ │ :try_start_1 │ monitor-exit p0 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ throw v2 │ │ - .line 88 │ + .line 89 │ .restart local v0 # "createdValue":Ljava/lang/Object;, "TV;" │ .restart local v1 # "mapValue":Ljava/lang/Object;, "TV;" │ :cond_2 │ monitor-enter p0 │ │ - .line 89 │ + .line 90 │ :try_start_2 │ iget v2, p0, Lcom/koushikdutta/async/util/LruCache;->createCount:I │ │ add-int/lit8 v2, v2, 0x1 │ │ iput v2, p0, Lcom/koushikdutta/async/util/LruCache;->createCount:I │ │ - .line 90 │ + .line 91 │ iget-object v2, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v2, p1, v0}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ - .line 92 │ + .line 93 │ if-eqz v1, :cond_3 │ │ - .line 94 │ + .line 95 │ iget-object v2, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v2, p1, v1}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ - .line 98 │ + .line 99 │ :goto_1 │ monitor-exit p0 │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_1 │ │ - .line 100 │ + .line 101 │ if-eqz v1, :cond_4 │ │ - .line 101 │ + .line 102 │ const/4 v2, 0x0 │ │ invoke-virtual {p0, v2, p1, v0, v1}, Lcom/koushikdutta/async/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V │ │ move-object v0, v1 │ │ - .line 102 │ + .line 103 │ goto :goto_0 │ │ - .line 96 │ + .line 97 │ :cond_3 │ :try_start_3 │ iget-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ │ move-result-wide v4 │ │ add-long/2addr v2, v4 │ │ iput-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ goto :goto_1 │ │ - .line 98 │ + .line 99 │ :catchall_1 │ move-exception v2 │ │ monitor-exit p0 │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_1 │ │ throw v2 │ │ - .line 104 │ + .line 105 │ :cond_4 │ iget-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->maxSize:J │ │ invoke-direct {p0, v2, v3}, Lcom/koushikdutta/async/util/LruCache;->trimToSize(J)V │ │ goto :goto_0 │ .end method │ │ .method public final declared-synchronized hitCount()I │ .locals 1 │ │ .prologue │ - .line 281 │ + .line 282 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget v0, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -627,15 +627,15 @@ │ throw v0 │ .end method │ │ .method public final declared-synchronized maxSize()J │ .locals 2 │ │ .prologue │ - .line 274 │ + .line 275 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget-wide v0, p0, Lcom/koushikdutta/async/util/LruCache;->maxSize:J │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -652,15 +652,15 @@ │ throw v0 │ .end method │ │ .method public final declared-synchronized missCount()I │ .locals 1 │ │ .prologue │ - .line 289 │ + .line 290 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget v0, p0, Lcom/koushikdutta/async/util/LruCache;->missCount:I │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -682,101 +682,101 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TK;TV;)TV;" │ } │ .end annotation │ │ .prologue │ - .line 116 │ + .line 117 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p1, "key":Ljava/lang/Object;, "TK;" │ .local p2, "value":Ljava/lang/Object;, "TV;" │ if-eqz p1, :cond_0 │ │ if-nez p2, :cond_1 │ │ - .line 117 │ + .line 118 │ :cond_0 │ new-instance v1, Ljava/lang/NullPointerException; │ │ const-string v2, "key == null || value == null" │ │ invoke-direct {v1, v2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 121 │ + .line 122 │ :cond_1 │ monitor-enter p0 │ │ - .line 122 │ + .line 123 │ :try_start_0 │ iget v1, p0, Lcom/koushikdutta/async/util/LruCache;->putCount:I │ │ add-int/lit8 v1, v1, 0x1 │ │ iput v1, p0, Lcom/koushikdutta/async/util/LruCache;->putCount:I │ │ - .line 123 │ + .line 124 │ iget-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/async/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ │ move-result-wide v4 │ │ add-long/2addr v2, v4 │ │ iput-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ - .line 124 │ + .line 125 │ iget-object v1, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v1, p1, p2}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 125 │ + .line 126 │ .local v0, "previous":Ljava/lang/Object;, "TV;" │ if-eqz v0, :cond_2 │ │ - .line 126 │ + .line 127 │ iget-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ │ move-result-wide v4 │ │ sub-long/2addr v2, v4 │ │ iput-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ - .line 128 │ + .line 129 │ :cond_2 │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 130 │ + .line 131 │ if-eqz v0, :cond_3 │ │ - .line 131 │ + .line 132 │ const/4 v1, 0x0 │ │ invoke-virtual {p0, v1, p1, v0, p2}, Lcom/koushikdutta/async/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V │ │ - .line 134 │ + .line 135 │ :cond_3 │ iget-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->maxSize:J │ │ invoke-direct {p0, v2, v3}, Lcom/koushikdutta/async/util/LruCache;->trimToSize(J)V │ │ - .line 135 │ + .line 136 │ return-object v0 │ │ - .line 128 │ + .line 129 │ .end local v0 # "previous":Ljava/lang/Object;, "TV;" │ :catchall_0 │ move-exception v1 │ │ :try_start_1 │ monitor-exit p0 │ :try_end_1 │ @@ -785,15 +785,15 @@ │ throw v1 │ .end method │ │ .method public final declared-synchronized putCount()I │ .locals 1 │ │ .prologue │ - .line 303 │ + .line 304 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget v0, p0, Lcom/koushikdutta/async/util/LruCache;->putCount:I │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -815,76 +815,76 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TK;)TV;" │ } │ .end annotation │ │ .prologue │ - .line 174 │ + .line 175 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p1, "key":Ljava/lang/Object;, "TK;" │ if-nez p1, :cond_0 │ │ - .line 175 │ + .line 176 │ new-instance v1, Ljava/lang/NullPointerException; │ │ const-string v2, "key == null" │ │ invoke-direct {v1, v2}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 179 │ + .line 180 │ :cond_0 │ monitor-enter p0 │ │ - .line 180 │ + .line 181 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ │ invoke-virtual {v1, p1}, Ljava/util/LinkedHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 181 │ + .line 182 │ .local v0, "previous":Ljava/lang/Object;, "TV;" │ if-eqz v0, :cond_1 │ │ - .line 182 │ + .line 183 │ iget-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ invoke-direct {p0, p1, v0}, Lcom/koushikdutta/async/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)J │ │ move-result-wide v4 │ │ sub-long/2addr v2, v4 │ │ iput-wide v2, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ │ - .line 184 │ + .line 185 │ :cond_1 │ monitor-exit p0 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - .line 186 │ + .line 187 │ if-eqz v0, :cond_2 │ │ - .line 187 │ + .line 188 │ const/4 v1, 0x0 │ │ const/4 v2, 0x0 │ │ invoke-virtual {p0, v1, p1, v0, v2}, Lcom/koushikdutta/async/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V │ │ - .line 190 │ + .line 191 │ :cond_2 │ return-object v0 │ │ - .line 184 │ + .line 185 │ .end local v0 # "previous":Ljava/lang/Object;, "TV;" │ :catchall_0 │ move-exception v1 │ │ :try_start_1 │ monitor-exit p0 │ :try_end_1 │ @@ -894,27 +894,27 @@ │ .end method │ │ .method public setMaxSize(J)V │ .locals 1 │ .param p1, "maxSize" # J │ │ .prologue │ - .line 265 │ + .line 266 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ iput-wide p1, p0, Lcom/koushikdutta/async/util/LruCache;->maxSize:J │ │ - .line 266 │ + .line 267 │ return-void │ .end method │ │ .method public final declared-synchronized size()J │ .locals 2 │ │ .prologue │ - .line 261 │ + .line 262 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ iget-wide v0, p0, Lcom/koushikdutta/async/util/LruCache;->size:J │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -936,15 +936,15 @@ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(TK;TV;)J" │ } │ .end annotation │ │ .prologue │ - .line 245 │ + .line 246 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ .local p1, "key":Ljava/lang/Object;, "TK;" │ .local p2, "value":Ljava/lang/Object;, "TV;" │ const-wide/16 v0, 0x1 │ │ return-wide v0 │ .end method │ @@ -956,15 +956,15 @@ │ "()", │ "Ljava/util/Map", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 318 │ + .line 319 │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ monitor-enter p0 │ │ :try_start_0 │ new-instance v0, Ljava/util/LinkedHashMap; │ │ iget-object v1, p0, Lcom/koushikdutta/async/util/LruCache;->map:Ljava/util/LinkedHashMap; │ @@ -988,92 +988,96 @@ │ .method public final declared-synchronized toString()Ljava/lang/String; │ .locals 8 │ │ .prologue │ .local p0, "this":Lcom/koushikdutta/async/util/LruCache;, "Lcom/koushikdutta/async/util/LruCache;" │ const/4 v1, 0x0 │ │ - .line 322 │ + .line 323 │ monitor-enter p0 │ │ :try_start_0 │ iget v2, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ │ iget v3, p0, Lcom/koushikdutta/async/util/LruCache;->missCount:I │ │ add-int v0, v2, v3 │ │ - .line 323 │ + .line 324 │ .local v0, "accesses":I │ if-eqz v0, :cond_0 │ │ iget v2, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ │ mul-int/lit8 v2, v2, 0x64 │ │ div-int v1, v2, v0 │ │ - .line 324 │ + .line 325 │ .local v1, "hitPercent":I │ :cond_0 │ - const-string v2, "LruCache[maxSize=%d,hits=%d,misses=%d,hitRate=%d%%]" │ + sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; │ │ - const/4 v3, 0x4 │ + const-string v3, "LruCache[maxSize=%d,hits=%d,misses=%d,hitRate=%d%%]" │ │ - new-array v3, v3, [Ljava/lang/Object; │ + const/4 v4, 0x4 │ │ - const/4 v4, 0x0 │ + new-array v4, v4, [Ljava/lang/Object; │ + │ + const/4 v5, 0x0 │ │ iget-wide v6, p0, Lcom/koushikdutta/async/util/LruCache;->maxSize:J │ │ + .line 326 │ invoke-static {v6, v7}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v3, v4 │ + aput-object v6, v4, v5 │ │ - const/4 v4, 0x1 │ + const/4 v5, 0x1 │ │ - iget v5, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ + iget v6, p0, Lcom/koushikdutta/async/util/LruCache;->hitCount:I │ │ - invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v3, v4 │ + aput-object v6, v4, v5 │ │ - const/4 v4, 0x2 │ + const/4 v5, 0x2 │ │ - iget v5, p0, Lcom/koushikdutta/async/util/LruCache;->missCount:I │ + iget v6, p0, Lcom/koushikdutta/async/util/LruCache;->missCount:I │ │ - invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v3, v4 │ + aput-object v6, v4, v5 │ │ - const/4 v4, 0x3 │ + const/4 v5, 0x3 │ │ invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v6 │ │ - aput-object v5, v3, v4 │ + aput-object v6, v4, v5 │ │ - invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + .line 325 │ + invoke-static {v2, v3, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v2 │ │ monitor-exit p0 │ │ return-object v2 │ │ - .line 322 │ + .line 323 │ .end local v0 # "accesses":I │ .end local v1 # "hitPercent":I │ :catchall_0 │ move-exception v2 │ │ monitor-exit p0 ├── smali/com/koushikdutta/ion/BitmapCallback$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/BitmapCallback;Lcom/koushikdutta/ion/bitmap/BitmapInfo;Ljava/lang/Exception;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/BitmapCallback; │ │ .prologue │ .line 105 │ iput-object p1, p0, Lcom/koushikdutta/ion/BitmapCallback$2;->this$0:Lcom/koushikdutta/ion/BitmapCallback; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/BitmapCallback$2;->val$info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; ├── smali/com/koushikdutta/ion/BitmapFetcher$2$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/BitmapFetcher$2; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/BitmapFetcher$2;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/BitmapFetcher$2; │ │ .prologue │ .line 137 │ iput-object p1, p0, Lcom/koushikdutta/ion/BitmapFetcher$2$1;->this$1:Lcom/koushikdutta/ion/BitmapFetcher$2; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/ion/BitmapFetcher$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$ion:Lcom/koushikdutta/ion/Ion; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/BitmapFetcher;Lcom/koushikdutta/ion/Ion;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/BitmapFetcher; │ │ .prologue │ .line 134 │ iput-object p1, p0, Lcom/koushikdutta/ion/BitmapFetcher$2;->this$0:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/BitmapFetcher$2;->val$ion:Lcom/koushikdutta/ion/Ion; ├── smali/com/koushikdutta/ion/BitmapFetcher.smali │ @@ -583,14 +583,15 @@ │ │ invoke-direct {v3, p0, v1}, Lcom/koushikdutta/ion/BitmapFetcher$2;->(Lcom/koushikdutta/ion/BitmapFetcher;Lcom/koushikdutta/ion/Ion;)V │ │ invoke-virtual {v0, v2, v3}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;Ljava/lang/Runnable;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ │ + .line 145 │ invoke-interface {v0}, Lcom/koushikdutta/ion/future/ResponseFuture;->withResponse()Lcom/koushikdutta/async/future/Future; │ │ move-result-object v7 │ │ .line 146 │ .local v7, "emitterTransform":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;>;" │ new-instance v0, Lcom/koushikdutta/ion/LoadBitmap; ├── smali/com/koushikdutta/ion/BitmapFetcher$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$callback:Lcom/koushikdutta/ion/BitmapCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/BitmapFetcher;Lcom/koushikdutta/ion/BitmapCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/BitmapFetcher; │ │ .prologue │ .line 62 │ iput-object p1, p0, Lcom/koushikdutta/ion/BitmapFetcher$1;->this$0:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/BitmapFetcher$1;->val$callback:Lcom/koushikdutta/ion/BitmapCallback; ├── smali/com/koushikdutta/ion/BitmapCallback.smali │ @@ -267,14 +267,15 @@ │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-nez v0, :cond_0 │ │ + .line 144 │ invoke-virtual {p2}, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->sizeOf()I │ │ move-result v0 │ │ const/high16 v1, 0x100000 │ │ if-le v0, v1, :cond_1 ├── smali/com/koushikdutta/ion/BuildConfig.smali │ @@ -8,17 +8,17 @@ │ │ .field public static final BUILD_TYPE:Ljava/lang/String; = "release" │ │ .field public static final DEBUG:Z = false │ │ .field public static final FLAVOR:Ljava/lang/String; = "" │ │ -.field public static final VERSION_CODE:I = 0xd9 │ +.field public static final VERSION_CODE:I = 0xdb │ │ -.field public static final VERSION_NAME:Ljava/lang/String; = "2.1.7" │ +.field public static final VERSION_NAME:Ljava/lang/String; = "2.1.9" │ │ │ # direct methods │ .method public constructor ()V │ .locals 0 │ │ .prologue ├── smali/com/koushikdutta/ion/FileCacheStore$1$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$sink:Lcom/koushikdutta/async/stream/FileDataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/FileCacheStore$1;Lcom/koushikdutta/async/stream/FileDataSink;Ljava/io/File;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/FileCacheStore$1; │ │ .prologue │ .line 43 │ iput-object p1, p0, Lcom/koushikdutta/ion/FileCacheStore$1$1;->this$1:Lcom/koushikdutta/ion/FileCacheStore$1; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/FileCacheStore$1$1;->val$sink:Lcom/koushikdutta/async/stream/FileDataSink; ├── smali/com/koushikdutta/ion/FileCacheStore$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$value:Ljava/lang/Object; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/FileCacheStore;Lcom/koushikdutta/async/parser/AsyncParser;Ljava/lang/Object;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/FileCacheStore; │ │ .prologue │ .line 37 │ iput-object p1, p0, Lcom/koushikdutta/ion/FileCacheStore$1;->this$0:Lcom/koushikdutta/ion/FileCacheStore; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/FileCacheStore$1;->val$parser:Lcom/koushikdutta/async/parser/AsyncParser; ├── smali/com/koushikdutta/ion/FileCacheStore$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/FileCacheStore;Lcom/koushikdutta/async/future/SimpleFuture;Lcom/koushikdutta/async/parser/AsyncParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/FileCacheStore; │ │ .prologue │ .line 98 │ iput-object p1, p0, Lcom/koushikdutta/ion/FileCacheStore$2;->this$0:Lcom/koushikdutta/ion/FileCacheStore; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/FileCacheStore$2;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ @@ -114,20 +115,22 @@ │ │ move-result-object v3 │ │ check-cast v3, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ iget-object v4, p0, Lcom/koushikdutta/ion/FileCacheStore$2;->val$parser:Lcom/koushikdutta/async/parser/AsyncParser; │ │ + .line 109 │ invoke-interface {v3, v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->as(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/koushikdutta/ion/FileCacheStore$2;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ + .line 110 │ invoke-virtual {v4}, Lcom/koushikdutta/async/future/SimpleFuture;->getCompletionCallback()Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v4 │ │ invoke-interface {v3, v4}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 ├── smali/com/koushikdutta/ion/FileCacheStore.smali │ @@ -147,18 +147,20 @@ │ │ invoke-interface {v3, v1}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/io/File;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 126 │ invoke-interface {v3, p1}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->as(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v3 │ │ + .line 127 │ invoke-interface {v3}, Lcom/koushikdutta/ion/future/ResponseFuture;->get()Ljava/lang/Object; │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v3 │ │ .line 130 ├── smali/com/koushikdutta/ion/ImageViewFutureImpl$2.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/ImageViewFutureImpl;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/ImageViewFutureImpl; │ │ .prologue │ .line 72 │ iput-object p1, p0, Lcom/koushikdutta/ion/ImageViewFutureImpl$2;->this$0:Lcom/koushikdutta/ion/ImageViewFutureImpl; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/ImageViewFutureImpl$2;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; ├── smali/com/koushikdutta/ion/InputStreamParser$1.smali │ @@ -27,14 +27,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/ion/InputStreamParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/InputStreamParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/InputStreamParser; │ │ .prologue │ .line 23 │ iput-object p1, p0, Lcom/koushikdutta/ion/InputStreamParser$1;->this$0:Lcom/koushikdutta/ion/InputStreamParser; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V ├── smali/com/koushikdutta/ion/InputStreamParser.smali │ @@ -66,14 +66,15 @@ │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/ion/InputStreamParser$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/ion/InputStreamParser$1;->(Lcom/koushikdutta/ion/InputStreamParser;)V │ │ + .line 23 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 ├── smali/com/koushikdutta/ion/Ion$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/ion/Ion; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/Ion;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/Ion; │ │ .prologue │ .line 268 │ iput-object p1, p0, Lcom/koushikdutta/ion/Ion$2;->this$0:Lcom/koushikdutta/ion/Ion; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/ion/Ion$Config.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/ion/Ion; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/ion/Ion;)V │ .locals 1 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/Ion; │ │ .prologue │ .line 458 │ iput-object p1, p0, Lcom/koushikdutta/ion/Ion$Config;->this$0:Lcom/koushikdutta/ion/Ion; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/ion/Ion$Config$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/Ion$Config; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/Ion$Config;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/Ion$Config; │ │ .prologue │ .line 556 │ iput-object p1, p0, Lcom/koushikdutta/ion/Ion$Config$1;->this$1:Lcom/koushikdutta/ion/Ion$Config; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/koushikdutta/ion/IonBitmapRequestBuilder$1.smali │ @@ -24,22 +24,22 @@ │ │ │ # direct methods │ .method constructor ()V │ .locals 2 │ │ .prologue │ - .line 28 │ + .line 29 │ invoke-direct {p0}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 30 │ + .line 31 │ new-instance v0, Ljava/lang/NullPointerException; │ │ const-string v1, "uri" │ │ invoke-direct {v0, v1}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$1;->setComplete(Ljava/lang/Exception;)Z │ │ - .line 31 │ + .line 32 │ return-void │ .end method ├── smali/com/koushikdutta/ion/Ion.smali │ @@ -426,74 +426,81 @@ │ │ new-instance v4, Lcom/koushikdutta/ion/loader/VideoLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/VideoLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->videoLoader:Lcom/koushikdutta/ion/loader/VideoLoader; │ │ + .line 187 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/ion/loader/PackageIconLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/PackageIconLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->packageIconLoader:Lcom/koushikdutta/ion/loader/PackageIconLoader; │ │ + .line 188 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/ion/loader/HttpLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/HttpLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->httpLoader:Lcom/koushikdutta/ion/loader/HttpLoader; │ │ + .line 189 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/ion/loader/ContentLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/ContentLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->contentLoader:Lcom/koushikdutta/ion/loader/ContentLoader; │ │ + .line 190 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/ion/loader/ResourceLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/ResourceLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->resourceLoader:Lcom/koushikdutta/ion/loader/ResourceLoader; │ │ + .line 191 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/ion/loader/AssetLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/AssetLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->assetLoader:Lcom/koushikdutta/ion/loader/AssetLoader; │ │ + .line 192 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v3 │ │ new-instance v4, Lcom/koushikdutta/ion/loader/FileLoader; │ │ invoke-direct {v4}, Lcom/koushikdutta/ion/loader/FileLoader;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/Ion;->fileLoader:Lcom/koushikdutta/ion/loader/FileLoader; │ │ + .line 193 │ invoke-virtual {v3, v4}, Lcom/koushikdutta/ion/Ion$Config;->addLoader(Lcom/koushikdutta/ion/Loader;)Lcom/koushikdutta/ion/Ion$Config; │ │ .line 194 │ return-void │ │ .line 164 │ :catch_0 ├── smali/com/koushikdutta/ion/IonBitmapRequestBuilder$2.smali │ @@ -24,17 +24,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/ion/BitmapInfoToBitmap; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonBitmapRequestBuilder;Lcom/koushikdutta/ion/BitmapFetcher;Lcom/koushikdutta/ion/BitmapInfoToBitmap;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ .prologue │ - .line 226 │ + .line 239 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->this$0:Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->val$bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iput-object p3, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->val$ret:Lcom/koushikdutta/ion/BitmapInfoToBitmap; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ @@ -44,30 +45,30 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 229 │ + .line 242 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->val$bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/BitmapFetcher;->execute()V │ │ - .line 231 │ + .line 244 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->this$0:Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->val$bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/BitmapFetcher;->bitmapKey:Ljava/lang/String; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->val$ret:Lcom/koushikdutta/ion/BitmapInfoToBitmap; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/util/HashList;->add(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 232 │ + .line 245 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonDrawable$1.smali │ @@ -30,17 +30,18 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/ion/IonDrawable; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonDrawable;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonDrawable; │ │ .prologue │ - .line 434 │ + .line 435 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable$1;->this$0:Lcom/koushikdutta/ion/IonDrawable; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -48,30 +49,30 @@ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ .locals 1 │ .param p1, "e" # Ljava/lang/Exception; │ .param p2, "result" # Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ .prologue │ - .line 437 │ + .line 438 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$1;->this$0:Lcom/koushikdutta/ion/IonDrawable; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonDrawable;->invalidateSelf()V │ │ - .line 438 │ + .line 439 │ return-void │ .end method │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Exception; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 434 │ + .line 435 │ check-cast p2, Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonDrawable$1;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonBitmapRequestBuilder.smali │ @@ -61,102 +61,102 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 27 │ + .line 28 │ const-class v0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const/4 v0, 0x1 │ │ :goto_0 │ sput-boolean v0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->$assertionsDisabled:Z │ │ - .line 28 │ + .line 29 │ new-instance v0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$1; │ │ invoke-direct {v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$1;->()V │ │ sput-object v0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->FUTURE_BITMAP_NULL_URI:Lcom/koushikdutta/async/future/SimpleFuture; │ │ return-void │ │ - .line 27 │ + .line 28 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public constructor (Lcom/koushikdutta/ion/Ion;)V │ .locals 1 │ .param p1, "ion" # Lcom/koushikdutta/ion/Ion; │ │ .prologue │ - .line 61 │ + .line 62 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 40 │ + .line 41 │ sget-object v0, Lcom/koushikdutta/ion/builder/AnimateGifMode;->ANIMATE:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ - .line 62 │ + .line 63 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ - .line 63 │ + .line 64 │ return-void │ .end method │ │ .method public constructor (Lcom/koushikdutta/ion/IonRequestBuilder;)V │ .locals 1 │ .param p1, "builder" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ - .line 56 │ + .line 57 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 40 │ + .line 41 │ sget-object v0, Lcom/koushikdutta/ion/builder/AnimateGifMode;->ANIMATE:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ - .line 57 │ + .line 58 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 58 │ + .line 59 │ iget-object v0, p1, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ - .line 59 │ + .line 60 │ return-void │ .end method │ │ .method private checkNoTransforms(Ljava/lang/String;)V │ .locals 3 │ .param p1, "name" # Ljava/lang/String; │ │ .prologue │ - .line 238 │ + .line 251 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->hasTransforms()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 239 │ + .line 252 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ const-string v2, "Can\'t apply " │ @@ -189,15 +189,15 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 242 │ + .line 255 │ :cond_0 │ return-void │ .end method │ │ .method public static computeBitmapKey(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String; │ .locals 5 │ .param p0, "decodeKey" # Ljava/lang/String; │ @@ -210,43 +210,43 @@ │ "Lcom/koushikdutta/ion/bitmap/Transform;", │ ">;)", │ "Ljava/lang/String;" │ } │ .end annotation │ │ .prologue │ - .line 136 │ + .line 137 │ .local p1, "transforms":Ljava/util/List;, "Ljava/util/List;" │ sget-boolean v3, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->$assertionsDisabled:Z │ │ if-nez v3, :cond_0 │ │ if-nez p0, :cond_0 │ │ new-instance v3, Ljava/lang/AssertionError; │ │ invoke-direct {v3}, Ljava/lang/AssertionError;->()V │ │ throw v3 │ │ - .line 139 │ + .line 140 │ :cond_0 │ move-object v0, p0 │ │ - .line 140 │ + .line 141 │ .local v0, "bitmapKey":Ljava/lang/String; │ if-eqz p1, :cond_2 │ │ invoke-interface {p1}, Ljava/util/List;->size()I │ │ move-result v3 │ │ if-lez v3, :cond_2 │ │ - .line 141 │ + .line 142 │ invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ @@ -257,15 +257,15 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/ion/bitmap/Transform; │ │ - .line 142 │ + .line 143 │ .local v2, "transform":Lcom/koushikdutta/ion/bitmap/Transform; │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -279,42 +279,43 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 144 │ goto :goto_0 │ │ - .line 144 │ + .line 145 │ .end local v2 # "transform":Lcom/koushikdutta/ion/bitmap/Transform; │ :cond_1 │ const/4 v3, 0x1 │ │ new-array v3, v3, [Ljava/lang/Object; │ │ const/4 v4, 0x0 │ │ aput-object v0, v3, v4 │ │ invoke-static {v3}, Lcom/koushikdutta/async/util/FileCache;->toKeyString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 147 │ + .line 148 │ .end local v1 # "i$":Ljava/util/Iterator; │ :cond_2 │ return-object v0 │ .end method │ │ .method private computeDecodeKey()Ljava/lang/String; │ .locals 5 │ │ .prologue │ - .line 102 │ + .line 103 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ iget v3, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ @@ -345,18 +346,18 @@ │ .param p0, "builder" # Lcom/koushikdutta/ion/IonRequestBuilder; │ .param p1, "resizeWidth" # I │ .param p2, "resizeHeight" # I │ .param p3, "animateGif" # Z │ .param p4, "deepZoom" # Z │ │ .prologue │ - .line 111 │ + .line 112 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->uri:Ljava/lang/String; │ │ - .line 112 │ + .line 113 │ .local v0, "decodeKey":Ljava/lang/String; │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -382,18 +383,18 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 113 │ + .line 114 │ if-nez p3, :cond_0 │ │ - .line 114 │ + .line 115 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -404,19 +405,19 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 115 │ + .line 116 │ :cond_0 │ if-eqz p4, :cond_1 │ │ - .line 116 │ + .line 117 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -427,15 +428,15 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 117 │ + .line 118 │ :cond_1 │ const/4 v1, 0x1 │ │ new-array v1, v1, [Ljava/lang/Object; │ │ const/4 v2, 0x0 │ │ @@ -451,83 +452,83 @@ │ .method static doAnimation(Landroid/widget/ImageView;Landroid/view/animation/Animation;I)V │ .locals 1 │ .param p0, "imageView" # Landroid/widget/ImageView; │ .param p1, "animation" # Landroid/view/animation/Animation; │ .param p2, "animationResource" # I │ │ .prologue │ - .line 66 │ + .line 67 │ if-nez p0, :cond_0 │ │ - .line 76 │ + .line 77 │ :goto_0 │ return-void │ │ - .line 68 │ + .line 69 │ :cond_0 │ if-nez p1, :cond_1 │ │ if-eqz p2, :cond_1 │ │ - .line 69 │ + .line 70 │ invoke-virtual {p0}, Landroid/widget/ImageView;->getContext()Landroid/content/Context; │ │ move-result-object v0 │ │ invoke-static {v0, p2}, Landroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation; │ │ move-result-object p1 │ │ - .line 70 │ + .line 71 │ :cond_1 │ if-nez p1, :cond_2 │ │ - .line 71 │ + .line 72 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, v0}, Landroid/widget/ImageView;->setAnimation(Landroid/view/animation/Animation;)V │ │ goto :goto_0 │ │ - .line 75 │ + .line 76 │ :cond_2 │ invoke-virtual {p0, p1}, Landroid/widget/ImageView;->startAnimation(Landroid/view/animation/Animation;)V │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method public addDefaultTransform()V │ .locals 6 │ │ .prologue │ - .line 121 │ + .line 122 │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ if-gtz v0, :cond_0 │ │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ if-lez v0, :cond_3 │ │ - .line 122 │ + .line 123 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ if-nez v0, :cond_1 │ │ - .line 123 │ + .line 124 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ - .line 124 │ + .line 125 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ const/4 v1, 0x0 │ │ new-instance v2, Lcom/koushikdutta/ion/DefaultTransform; │ │ @@ -537,25 +538,25 @@ │ │ iget-object v5, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ invoke-direct {v2, v3, v4, v5}, Lcom/koushikdutta/ion/DefaultTransform;->(IILcom/koushikdutta/ion/ScaleMode;)V │ │ invoke-virtual {v0, v1, v2}, Ljava/util/ArrayList;->add(ILjava/lang/Object;)V │ │ - .line 129 │ + .line 130 │ :cond_2 │ return-void │ │ - .line 126 │ + .line 127 │ :cond_3 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ if-eqz v0, :cond_2 │ │ - .line 127 │ + .line 128 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ const-string v2, "Must call resize when using " │ @@ -580,27 +581,27 @@ │ .end method │ │ .method public animateGif(Lcom/koushikdutta/ion/builder/AnimateGifMode;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 0 │ .param p1, "mode" # Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ .prologue │ - .line 317 │ + .line 330 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ - .line 318 │ + .line 331 │ return-object p0 │ .end method │ │ .method public bridge synthetic animateGif(Lcom/koushikdutta/ion/builder/AnimateGifMode;)Lcom/koushikdutta/ion/builder/ImageViewBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGif(Lcom/koushikdutta/ion/builder/AnimateGifMode;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -613,108 +614,108 @@ │ "<", │ "Landroid/graphics/Bitmap;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 212 │ + .line 225 │ iget-object v3, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v3, v3, Lcom/koushikdutta/ion/IonRequestBuilder;->uri:Ljava/lang/String; │ │ if-nez v3, :cond_0 │ │ - .line 213 │ + .line 226 │ sget-object v2, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->FUTURE_BITMAP_NULL_URI:Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 234 │ + .line 247 │ :goto_0 │ return-object v2 │ │ - .line 217 │ + .line 230 │ :cond_0 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->addDefaultTransform()V │ │ - .line 218 │ + .line 231 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->executeCache()Lcom/koushikdutta/ion/BitmapFetcher; │ │ move-result-object v0 │ │ - .line 219 │ + .line 232 │ .local v0, "bitmapFetcher":Lcom/koushikdutta/ion/BitmapFetcher; │ iget-object v3, v0, Lcom/koushikdutta/ion/BitmapFetcher;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v3, :cond_1 │ │ - .line 220 │ + .line 233 │ new-instance v2, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v2}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 221 │ + .line 234 │ .local v2, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ iget-object v3, v0, Lcom/koushikdutta/ion/BitmapFetcher;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v3, v3, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->exception:Ljava/lang/Exception; │ │ iget-object v4, v0, Lcom/koushikdutta/ion/BitmapFetcher;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ invoke-virtual {v2, v3, v4}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;Ljava/lang/Object;)Z │ │ goto :goto_0 │ │ - .line 225 │ + .line 238 │ .end local v2 # "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ :cond_1 │ new-instance v1, Lcom/koushikdutta/ion/BitmapInfoToBitmap; │ │ iget-object v3, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v3, v3, Lcom/koushikdutta/ion/IonRequestBuilder;->contextReference:Lcom/koushikdutta/ion/ContextReference; │ │ invoke-direct {v1, v3}, Lcom/koushikdutta/ion/BitmapInfoToBitmap;->(Lcom/koushikdutta/ion/ContextReference;)V │ │ - .line 226 │ + .line 239 │ .local v1, "ret":Lcom/koushikdutta/ion/BitmapInfoToBitmap; │ sget-object v3, Lcom/koushikdutta/ion/Ion;->mainHandler:Landroid/os/Handler; │ │ new-instance v4, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2; │ │ invoke-direct {v4, p0, v0, v1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder$2;->(Lcom/koushikdutta/ion/IonBitmapRequestBuilder;Lcom/koushikdutta/ion/BitmapFetcher;Lcom/koushikdutta/ion/BitmapInfoToBitmap;)V │ │ invoke-static {v3, v4}, Lcom/koushikdutta/async/AsyncServer;->post(Landroid/os/Handler;Ljava/lang/Runnable;)V │ │ move-object v2, v1 │ │ - .line 234 │ + .line 247 │ goto :goto_0 │ .end method │ │ .method public asCachedBitmap()Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ .locals 3 │ │ .prologue │ - .line 171 │ + .line 184 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeDecodeKey()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 172 │ + .line 185 │ .local v1, "decodeKey":Ljava/lang/String; │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->addDefaultTransform()V │ │ - .line 173 │ + .line 186 │ invoke-virtual {p0, v1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeBitmapKey(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 174 │ + .line 187 │ .local v0, "bitmapKey":Ljava/lang/String; │ iget-object v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ │ @@ -725,76 +726,76 @@ │ return-object v2 │ .end method │ │ .method public centerCrop()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ │ .prologue │ - .line 246 │ + .line 259 │ const-string v0, "centerCrop" │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->checkNoTransforms(Ljava/lang/String;)V │ │ - .line 247 │ + .line 260 │ sget-object v0, Lcom/koushikdutta/ion/ScaleMode;->CenterCrop:Lcom/koushikdutta/ion/ScaleMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ - .line 248 │ + .line 261 │ return-object p0 │ .end method │ │ .method public bridge synthetic centerCrop()Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->centerCrop()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public centerInside()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ │ .prologue │ - .line 267 │ + .line 280 │ const-string v0, "centerInside" │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->checkNoTransforms(Ljava/lang/String;)V │ │ - .line 268 │ + .line 281 │ sget-object v0, Lcom/koushikdutta/ion/ScaleMode;->CenterInside:Lcom/koushikdutta/ion/ScaleMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ - .line 269 │ + .line 282 │ return-object p0 │ .end method │ │ .method public bridge synthetic centerInside()Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->centerInside()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public computeBitmapKey(Ljava/lang/String;)Ljava/lang/String; │ .locals 1 │ .param p1, "decodeKey" # Ljava/lang/String; │ │ .prologue │ - .line 132 │ + .line 133 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ invoke-static {p1, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeBitmapKey(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ @@ -802,104 +803,104 @@ │ │ .method public deepZoom()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 3 │ │ .prologue │ const/4 v2, 0x0 │ │ - .line 323 │ + .line 336 │ sget v0, Landroid/os/Build$VERSION;->SDK_INT:I │ │ const/16 v1, 0xa │ │ if-ge v0, v1, :cond_0 │ │ - .line 332 │ + .line 345 │ :goto_0 │ return-object p0 │ │ - .line 325 │ + .line 338 │ :cond_0 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom:Z │ │ - .line 326 │ + .line 339 │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ if-gtz v0, :cond_1 │ │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ if-lez v0, :cond_2 │ │ - .line 327 │ + .line 340 │ :cond_1 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Can\'t deepZoom with resize." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 328 │ + .line 341 │ :cond_2 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->hasTransforms()Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ - .line 329 │ + .line 342 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Can\'t deepZoom with transforms." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 330 │ + .line 343 │ :cond_3 │ iput v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ - .line 331 │ + .line 344 │ iput v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic deepZoom()Lcom/koushikdutta/ion/builder/ImageViewBuilder; │ .locals 1 │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method protected ensureBuilder()Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ │ .prologue │ - .line 79 │ + .line 80 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ return-object v0 │ .end method │ │ .method executeCache()Lcom/koushikdutta/ion/BitmapFetcher; │ .locals 2 │ │ .prologue │ - .line 178 │ + .line 191 │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ iget v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ invoke-virtual {p0, v0, v1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->executeCache(II)Lcom/koushikdutta/ion/BitmapFetcher; │ │ move-result-object v0 │ @@ -909,185 +910,185 @@ │ │ .method executeCache(II)Lcom/koushikdutta/ion/BitmapFetcher; │ .locals 6 │ .param p1, "sampleWidth" # I │ .param p2, "sampleHeight" # I │ │ .prologue │ - .line 182 │ + .line 195 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeDecodeKey()Ljava/lang/String; │ │ move-result-object v2 │ │ - .line 183 │ + .line 196 │ .local v2, "decodeKey":Ljava/lang/String; │ invoke-virtual {p0, v2}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeBitmapKey(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 186 │ + .line 199 │ .local v1, "bitmapKey":Ljava/lang/String; │ new-instance v3, Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-direct {v3}, Lcom/koushikdutta/ion/BitmapFetcher;->()V │ │ - .line 187 │ + .line 200 │ .local v3, "ret":Lcom/koushikdutta/ion/BitmapFetcher; │ iput-object v1, v3, Lcom/koushikdutta/ion/BitmapFetcher;->bitmapKey:Ljava/lang/String; │ │ - .line 188 │ + .line 201 │ iput-object v2, v3, Lcom/koushikdutta/ion/BitmapFetcher;->decodeKey:Ljava/lang/String; │ │ - .line 189 │ + .line 202 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->hasTransforms()Z │ │ move-result v4 │ │ iput-boolean v4, v3, Lcom/koushikdutta/ion/BitmapFetcher;->hasTransforms:Z │ │ - .line 190 │ + .line 203 │ iput p1, v3, Lcom/koushikdutta/ion/BitmapFetcher;->sampleWidth:I │ │ - .line 191 │ + .line 204 │ iput p2, v3, Lcom/koushikdutta/ion/BitmapFetcher;->sampleHeight:I │ │ - .line 192 │ + .line 205 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iput-object v4, v3, Lcom/koushikdutta/ion/BitmapFetcher;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 193 │ + .line 206 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ iput-object v4, v3, Lcom/koushikdutta/ion/BitmapFetcher;->transforms:Ljava/util/ArrayList; │ │ - .line 194 │ + .line 207 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ sget-object v5, Lcom/koushikdutta/ion/builder/AnimateGifMode;->NO_ANIMATE:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ if-eq v4, v5, :cond_1 │ │ const/4 v4, 0x1 │ │ :goto_0 │ iput-boolean v4, v3, Lcom/koushikdutta/ion/BitmapFetcher;->animateGif:Z │ │ - .line 195 │ + .line 208 │ iget-boolean v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom:Z │ │ iput-boolean v4, v3, Lcom/koushikdutta/ion/BitmapFetcher;->deepZoom:Z │ │ - .line 196 │ + .line 209 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess:Ljava/util/ArrayList; │ │ iput-object v4, v3, Lcom/koushikdutta/ion/BitmapFetcher;->postProcess:Ljava/util/ArrayList; │ │ - .line 199 │ + .line 212 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-boolean v4, v4, Lcom/koushikdutta/ion/IonRequestBuilder;->noCache:Z │ │ if-nez v4, :cond_0 │ │ - .line 200 │ + .line 213 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ │ invoke-virtual {v4, v1}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->get(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ move-result-object v0 │ │ - .line 201 │ + .line 214 │ .local v0, "bitmap":Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ if-eqz v0, :cond_0 │ │ - .line 202 │ + .line 215 │ iput-object v0, v3, Lcom/koushikdutta/ion/BitmapFetcher;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ - .line 207 │ + .line 220 │ .end local v0 # "bitmap":Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ :cond_0 │ return-object v3 │ │ - .line 194 │ + .line 207 │ :cond_1 │ const/4 v4, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public fitCenter()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ │ .prologue │ - .line 260 │ + .line 273 │ const-string v0, "fitCenter" │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->checkNoTransforms(Ljava/lang/String;)V │ │ - .line 261 │ + .line 274 │ sget-object v0, Lcom/koushikdutta/ion/ScaleMode;->FitCenter:Lcom/koushikdutta/ion/ScaleMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ - .line 262 │ + .line 275 │ return-object p0 │ .end method │ │ .method public bridge synthetic fitCenter()Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->fitCenter()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public fitXY()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ │ .prologue │ - .line 253 │ + .line 266 │ const-string v0, "fitXY" │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->checkNoTransforms(Ljava/lang/String;)V │ │ - .line 254 │ + .line 267 │ sget-object v0, Lcom/koushikdutta/ion/ScaleMode;->FitXY:Lcom/koushikdutta/ion/ScaleMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ - .line 255 │ + .line 268 │ return-object p0 │ .end method │ │ .method public bridge synthetic fitXY()Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->fitXY()Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method hasTransforms()Z │ .locals 1 │ │ .prologue │ - .line 336 │ + .line 349 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ invoke-virtual {v0}, Ljava/util/ArrayList;->size()I │ @@ -1107,146 +1108,146 @@ │ goto :goto_0 │ .end method │ │ .method public isLocallyCached()Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ .locals 5 │ │ .prologue │ - .line 152 │ + .line 153 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-boolean v4, v4, Lcom/koushikdutta/ion/IonRequestBuilder;->noCache:Z │ │ if-nez v4, :cond_0 │ │ iget-boolean v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom:Z │ │ if-eqz v4, :cond_1 │ │ - .line 153 │ + .line 154 │ :cond_0 │ sget-object v4, Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus;->NOT_CACHED:Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ │ - .line 166 │ + .line 167 │ :goto_0 │ return-object v4 │ │ - .line 154 │ + .line 155 │ :cond_1 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeDecodeKey()Ljava/lang/String; │ │ move-result-object v1 │ │ - .line 155 │ + .line 156 │ .local v1, "decodeKey":Ljava/lang/String; │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->addDefaultTransform()V │ │ - .line 156 │ + .line 157 │ invoke-virtual {p0, v1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeBitmapKey(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 157 │ + .line 158 │ .local v0, "bitmapKey":Ljava/lang/String; │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ │ invoke-virtual {v4, v0}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->get(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ move-result-object v3 │ │ - .line 159 │ + .line 160 │ .local v3, "info":Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ if-eqz v3, :cond_2 │ │ iget-object v4, v3, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->exception:Ljava/lang/Exception; │ │ if-nez v4, :cond_2 │ │ - .line 160 │ + .line 161 │ sget-object v4, Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus;->CACHED:Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ │ goto :goto_0 │ │ - .line 161 │ + .line 162 │ :cond_2 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->responseCache:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ │ invoke-virtual {v4}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->getFileCache()Lcom/koushikdutta/async/util/FileCache; │ │ move-result-object v2 │ │ - .line 162 │ + .line 163 │ .local v2, "fileCache":Lcom/koushikdutta/async/util/FileCache; │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->hasTransforms()Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ invoke-virtual {v2, v0}, Lcom/koushikdutta/async/util/FileCache;->exists(Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ - .line 163 │ + .line 164 │ sget-object v4, Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus;->CACHED:Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ │ goto :goto_0 │ │ - .line 164 │ + .line 165 │ :cond_3 │ invoke-virtual {v2, v1}, Lcom/koushikdutta/async/util/FileCache;->exists(Ljava/lang/String;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - .line 165 │ + .line 166 │ sget-object v4, Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus;->MAYBE_CACHED:Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ │ goto :goto_0 │ │ - .line 166 │ + .line 167 │ :cond_4 │ sget-object v4, Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus;->NOT_CACHED:Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ │ goto :goto_0 │ .end method │ │ .method public postProcess(Lcom/koushikdutta/ion/bitmap/PostProcess;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 2 │ .param p1, "postProcess" # Lcom/koushikdutta/ion/bitmap/PostProcess; │ │ .prologue │ - .line 94 │ + .line 95 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess:Ljava/util/ArrayList; │ │ if-nez v0, :cond_0 │ │ - .line 95 │ + .line 96 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess:Ljava/util/ArrayList; │ │ - .line 96 │ + .line 97 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess:Ljava/util/ArrayList; │ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 97 │ + .line 98 │ new-instance v0, Lcom/koushikdutta/ion/TransformBitmap$PostProcessNullTransform; │ │ invoke-interface {p1}, Lcom/koushikdutta/ion/bitmap/PostProcess;->key()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/ion/TransformBitmap$PostProcessNullTransform;->(Ljava/lang/String;)V │ @@ -1259,174 +1260,237 @@ │ .end method │ │ .method public bridge synthetic postProcess(Lcom/koushikdutta/ion/bitmap/PostProcess;)Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/bitmap/PostProcess; │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess(Lcom/koushikdutta/ion/bitmap/PostProcess;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ +.method public removeCachedBitmap()V │ + .locals 3 │ + │ + .prologue │ + .line 173 │ + invoke-direct {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeDecodeKey()Ljava/lang/String; │ + │ + move-result-object v1 │ + │ + .line 174 │ + .local v1, "decodeKey":Ljava/lang/String; │ + invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->addDefaultTransform()V │ + │ + .line 175 │ + invoke-virtual {p0, v1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->computeBitmapKey(Ljava/lang/String;)Ljava/lang/String; │ + │ + move-result-object v0 │ + │ + .line 176 │ + .local v0, "bitmapKey":Ljava/lang/String; │ + iget-object v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ + │ + iget-object v2, v2, Lcom/koushikdutta/ion/Ion;->responseCache:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ + │ + invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->getFileCache()Lcom/koushikdutta/async/util/FileCache; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2, v1}, Lcom/koushikdutta/async/util/FileCache;->remove(Ljava/lang/String;)V │ + │ + .line 177 │ + iget-object v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ + │ + iget-object v2, v2, Lcom/koushikdutta/ion/Ion;->responseCache:Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware; │ + │ + invoke-virtual {v2}, Lcom/koushikdutta/async/http/cache/ResponseCacheMiddleware;->getFileCache()Lcom/koushikdutta/async/util/FileCache; │ + │ + move-result-object v2 │ + │ + invoke-virtual {v2, v0}, Lcom/koushikdutta/async/util/FileCache;->remove(Ljava/lang/String;)V │ + │ + .line 178 │ + iget-object v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ + │ + iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ + │ + iget-object v2, v2, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ + │ + invoke-virtual {v2, v0}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->remove(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ + │ + .line 179 │ + iget-object v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ + │ + iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ + │ + iget-object v2, v2, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ + │ + invoke-virtual {v2, v1}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->remove(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ + │ + .line 180 │ + return-void │ +.end method │ + │ .method reset()V │ .locals 3 │ │ .prologue │ const/4 v2, 0x0 │ │ const/4 v1, 0x0 │ │ - .line 45 │ + .line 46 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ - .line 46 │ + .line 47 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ - .line 47 │ + .line 48 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ - .line 48 │ + .line 49 │ iput v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ - .line 49 │ + .line 50 │ iput v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ - .line 50 │ + .line 51 │ sget-object v0, Lcom/koushikdutta/ion/builder/AnimateGifMode;->ANIMATE:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ - .line 51 │ + .line 52 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->builder:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 52 │ + .line 53 │ iput-boolean v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom:Z │ │ - .line 53 │ + .line 54 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess:Ljava/util/ArrayList; │ │ - .line 54 │ + .line 55 │ return-void │ .end method │ │ .method public resize(II)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 2 │ .param p1, "width" # I │ .param p2, "height" # I │ │ .prologue │ - .line 275 │ + .line 288 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->hasTransforms()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 276 │ + .line 289 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Can\'t apply resize after transform has been called.resize is applied to the original bitmap." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 279 │ + .line 292 │ :cond_0 │ iget-boolean v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom:Z │ │ if-eqz v0, :cond_1 │ │ - .line 280 │ + .line 293 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Can not resize with deepZoom." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 281 │ + .line 294 │ :cond_1 │ iput p1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ - .line 282 │ + .line 295 │ iput p2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ - .line 283 │ + .line 296 │ return-object p0 │ .end method │ │ .method public bridge synthetic resize(II)Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ .param p1, "x0" # I │ .param p2, "x1" # I │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resize(II)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public resizeHeight(I)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ .param p1, "height" # I │ │ .prologue │ - .line 293 │ + .line 306 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, v0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resize(II)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public bridge synthetic resizeHeight(I)Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ .param p1, "x0" # I │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight(I)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public resizeWidth(I)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ .param p1, "width" # I │ │ .prologue │ - .line 288 │ + .line 301 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, p1, v0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resize(II)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public bridge synthetic resizeWidth(I)Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ .param p1, "x0" # I │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth(I)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -1435,124 +1499,124 @@ │ .param p1, "smartSize" # Z │ │ .prologue │ const/4 v2, 0x0 │ │ const/4 v1, -0x1 │ │ - .line 298 │ + .line 311 │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ if-gtz v0, :cond_0 │ │ iget v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ if-lez v0, :cond_1 │ │ - .line 299 │ + .line 312 │ :cond_0 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Can\'t set smart size after resize has been called." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 301 │ + .line 314 │ :cond_1 │ iget-boolean v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->deepZoom:Z │ │ if-eqz v0, :cond_2 │ │ - .line 302 │ + .line 315 │ new-instance v0, Ljava/lang/IllegalStateException; │ │ const-string v1, "Can not smartSize with deepZoom." │ │ invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V │ │ throw v0 │ │ - .line 304 │ + .line 317 │ :cond_2 │ if-nez p1, :cond_3 │ │ - .line 305 │ + .line 318 │ iput v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ - .line 306 │ + .line 319 │ iput v1, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ - .line 312 │ + .line 325 │ :goto_0 │ return-object p0 │ │ - .line 309 │ + .line 322 │ :cond_3 │ iput v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeWidth:I │ │ - .line 310 │ + .line 323 │ iput v2, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->resizeHeight:I │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic smartSize(Z)Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ .param p1, "x0" # Z │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->smartSize(Z)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public transform(Lcom/koushikdutta/ion/bitmap/Transform;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ .locals 1 │ .param p1, "transform" # Lcom/koushikdutta/ion/bitmap/Transform; │ │ .prologue │ - .line 84 │ + .line 85 │ if-nez p1, :cond_0 │ │ - .line 89 │ + .line 90 │ :goto_0 │ return-object p0 │ │ - .line 86 │ + .line 87 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ if-nez v0, :cond_1 │ │ - .line 87 │ + .line 88 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ - .line 88 │ + .line 89 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transforms:Ljava/util/ArrayList; │ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic transform(Lcom/koushikdutta/ion/bitmap/Transform;)Lcom/koushikdutta/ion/builder/BitmapBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/bitmap/Transform; │ │ .prologue │ - .line 27 │ + .line 28 │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->transform(Lcom/koushikdutta/ion/bitmap/Transform;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method ├── smali/com/koushikdutta/ion/IonDrawable$IonDrawableCallback.smali │ @@ -49,15 +49,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 106 │ + .line 107 │ const-class v0, Lcom/koushikdutta/ion/IonDrawable; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -76,118 +76,118 @@ │ .end method │ │ .method public constructor (Lcom/koushikdutta/ion/IonDrawable;)V │ .locals 1 │ .param p1, "drawable" # Lcom/koushikdutta/ion/IonDrawable; │ │ .prologue │ - .line 110 │ + .line 111 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 111 │ + .line 112 │ new-instance v0, Ljava/lang/ref/WeakReference; │ │ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->ionDrawableRef:Ljava/lang/ref/WeakReference; │ │ - .line 113 │ + .line 114 │ return-void │ .end method │ │ .method private unregister(Lcom/koushikdutta/ion/Ion;Ljava/lang/String;)V │ .locals 5 │ .param p1, "ion" # Lcom/koushikdutta/ion/Ion; │ .param p2, "key" # Ljava/lang/String; │ │ .prologue │ - .line 128 │ + .line 129 │ if-nez p2, :cond_0 │ │ - .line 157 │ + .line 158 │ :goto_0 │ return-void │ │ - .line 136 │ + .line 137 │ :cond_0 │ iget-object v3, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ invoke-virtual {v3, p2, p0}, Lcom/koushikdutta/async/util/HashList;->removeItem(Ljava/lang/String;Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - .line 138 │ + .line 139 │ iget-object v3, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ invoke-virtual {v3, p2}, Lcom/koushikdutta/async/util/HashList;->tag(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ - .line 139 │ + .line 140 │ .local v2, "owner":Ljava/lang/Object; │ instance-of v3, v2, Lcom/koushikdutta/ion/TransformBitmap; │ │ if-eqz v3, :cond_1 │ │ move-object v1, v2 │ │ - .line 140 │ + .line 141 │ check-cast v1, Lcom/koushikdutta/ion/TransformBitmap; │ │ - .line 141 │ + .line 142 │ .local v1, "info":Lcom/koushikdutta/ion/TransformBitmap; │ iget-object v3, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ iget-object v4, v1, Lcom/koushikdutta/ion/TransformBitmap;->key:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/util/HashList;->remove(Ljava/lang/String;)Ljava/util/ArrayList; │ │ - .line 144 │ + .line 145 │ iget-object v3, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ iget-object v4, v1, Lcom/koushikdutta/ion/TransformBitmap;->downloadKey:Ljava/lang/String; │ │ invoke-virtual {v3, v4, v1}, Lcom/koushikdutta/async/util/HashList;->removeItem(Ljava/lang/String;Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - .line 145 │ + .line 146 │ iget-object v3, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ iget-object v4, v1, Lcom/koushikdutta/ion/TransformBitmap;->downloadKey:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/util/HashList;->tag(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ - .line 150 │ + .line 151 │ .end local v1 # "info":Lcom/koushikdutta/ion/TransformBitmap; │ :cond_1 │ instance-of v3, v2, Lcom/koushikdutta/ion/DeferredLoadBitmap; │ │ if-eqz v3, :cond_2 │ │ move-object v0, v2 │ │ - .line 151 │ + .line 152 │ check-cast v0, Lcom/koushikdutta/ion/DeferredLoadBitmap; │ │ - .line 152 │ + .line 153 │ .local v0, "defer":Lcom/koushikdutta/ion/DeferredLoadBitmap; │ iget-object v3, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ iget-object v4, v0, Lcom/koushikdutta/ion/DeferredLoadBitmap;->key:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Lcom/koushikdutta/async/util/HashList;->remove(Ljava/lang/String;)Ljava/util/ArrayList; │ │ - .line 156 │ + .line 157 │ .end local v0 # "defer":Lcom/koushikdutta/ion/DeferredLoadBitmap; │ .end local v2 # "owner":Ljava/lang/Object; │ :cond_2 │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Ion;->processDeferred()V │ │ goto :goto_0 │ .end method │ @@ -196,15 +196,15 @@ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ .locals 4 │ .param p1, "e" # Ljava/lang/Exception; │ .param p2, "result" # Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ .prologue │ - .line 161 │ + .line 162 │ sget-boolean v2, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->$assertionsDisabled:Z │ │ if-nez v2, :cond_0 │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ move-result-object v2 │ @@ -221,131 +221,133 @@ │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 162 │ + .line 163 │ :cond_0 │ sget-boolean v2, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->$assertionsDisabled:Z │ │ if-nez v2, :cond_1 │ │ if-nez p2, :cond_1 │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 164 │ + .line 165 │ :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->ionDrawableRef:Ljava/lang/ref/WeakReference; │ │ invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/IonDrawable; │ │ - .line 165 │ + .line 166 │ .local v1, "drawable":Lcom/koushikdutta/ion/IonDrawable; │ if-nez v1, :cond_3 │ │ - .line 173 │ + .line 174 │ :cond_2 │ :goto_0 │ return-void │ │ - .line 167 │ + .line 168 │ :cond_3 │ iget-object v2, p2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->servedFrom:Lcom/koushikdutta/ion/ResponseServedFrom; │ │ + .line 169 │ invoke-virtual {v1, p2, v2}, Lcom/koushikdutta/ion/IonDrawable;->setBitmap(Lcom/koushikdutta/ion/bitmap/BitmapInfo;Lcom/koushikdutta/ion/ResponseServedFrom;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ + .line 170 │ invoke-virtual {v2}, Lcom/koushikdutta/ion/IonDrawable;->updateLayers()Lcom/koushikdutta/ion/IonDrawable; │ │ - .line 170 │ + .line 171 │ # getter for: Lcom/koushikdutta/ion/IonDrawable;->loadCallback:Lcom/koushikdutta/async/future/FutureCallback; │ invoke-static {v1}, Lcom/koushikdutta/ion/IonDrawable;->access$000(Lcom/koushikdutta/ion/IonDrawable;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ - .line 171 │ + .line 172 │ .local v0, "callback":Lcom/koushikdutta/async/future/FutureCallback;, "Lcom/koushikdutta/async/future/FutureCallback;" │ if-eqz v0, :cond_2 │ │ - .line 172 │ + .line 173 │ invoke-interface {v0, p1, v1}, Lcom/koushikdutta/async/future/FutureCallback;->onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Exception; │ .param p2, "x1" # Ljava/lang/Object; │ │ .prologue │ - .line 106 │ + .line 107 │ check-cast p2, Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ │ return-void │ .end method │ │ .method public register(Lcom/koushikdutta/ion/Ion;Ljava/lang/String;)V │ .locals 3 │ .param p1, "ion" # Lcom/koushikdutta/ion/Ion; │ .param p2, "bitmapKey" # Ljava/lang/String; │ │ .prologue │ - .line 116 │ + .line 117 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->bitmapKey:Ljava/lang/String; │ │ - .line 117 │ + .line 118 │ .local v1, "previousKey":Ljava/lang/String; │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->ion:Lcom/koushikdutta/ion/Ion; │ │ - .line 118 │ + .line 119 │ .local v0, "previousIon":Lcom/koushikdutta/ion/Ion; │ invoke-static {v1, p2}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->ion:Lcom/koushikdutta/ion/Ion; │ │ if-ne v2, p1, :cond_0 │ │ - .line 125 │ + .line 126 │ :goto_0 │ return-void │ │ - .line 120 │ + .line 121 │ :cond_0 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->ion:Lcom/koushikdutta/ion/Ion; │ │ - .line 121 │ + .line 122 │ iput-object p2, p0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->bitmapKey:Ljava/lang/String; │ │ - .line 122 │ + .line 123 │ if-eqz p1, :cond_1 │ │ - .line 123 │ + .line 124 │ iget-object v2, p1, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ invoke-virtual {v2, p2, p0}, Lcom/koushikdutta/async/util/HashList;->add(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 124 │ + .line 125 │ :cond_1 │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->unregister(Lcom/koushikdutta/ion/Ion;Ljava/lang/String;)V │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/ion/IonDrawable$IonGifDecoder$1.smali │ @@ -20,76 +20,77 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ .prologue │ - .line 186 │ + .line 187 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 190 │ + .line 191 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/gif/GifDecoder;->nextFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ :try_end_0 │ .catch Ljava/lang/OutOfMemoryError; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 │ │ - .line 198 │ + .line 199 │ :goto_0 │ sget-object v1, Lcom/koushikdutta/ion/Ion;->mainHandler:Landroid/os/Handler; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->postLoad:Ljava/lang/Runnable; │ │ invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z │ │ - .line 199 │ + .line 200 │ return-void │ │ - .line 192 │ + .line 193 │ :catch_0 │ move-exception v0 │ │ - .line 193 │ + .line 194 │ .local v0, "e":Ljava/lang/OutOfMemoryError; │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ new-instance v2, Ljava/lang/Exception; │ │ invoke-direct {v2, v0}, Ljava/lang/Exception;->(Ljava/lang/Throwable;)V │ │ iput-object v2, v1, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->exception:Ljava/lang/Exception; │ │ goto :goto_0 │ │ - .line 195 │ + .line 196 │ .end local v0 # "e":Ljava/lang/OutOfMemoryError; │ :catch_1 │ move-exception v0 │ │ - .line 196 │ + .line 197 │ .local v0, "e":Ljava/lang/Exception; │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ iput-object v0, v1, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->exception:Ljava/lang/Exception; │ │ goto :goto_0 │ .end method ├── smali/com/koushikdutta/ion/IonDrawable$IonGifDecoder$2.smali │ @@ -20,40 +20,41 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ .prologue │ - .line 202 │ + .line 203 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$2;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 2 │ │ .prologue │ - .line 205 │ + .line 206 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$2;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ const/4 v1, 0x0 │ │ iput-boolean v1, v0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->isLoading:Z │ │ - .line 206 │ + .line 207 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$2;->this$1:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->this$0:Lcom/koushikdutta/ion/IonDrawable; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonDrawable;->invalidateSelf()V │ │ - .line 207 │ + .line 208 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonDrawable$IonGifDecoder.smali │ @@ -31,153 +31,154 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/ion/IonDrawable; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/ion/IonDrawable;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ .locals 1 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonDrawable; │ .param p2, "info" # Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ .prologue │ - .line 181 │ + .line 182 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->this$0:Lcom/koushikdutta/ion/IonDrawable; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 186 │ + .line 187 │ new-instance v0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$1;->(Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->loader:Ljava/lang/Runnable; │ │ - .line 202 │ + .line 203 │ new-instance v0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$2; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder$2;->(Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->postLoad:Ljava/lang/Runnable; │ │ - .line 182 │ + .line 183 │ iget-object v0, p2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/gif/GifDecoder;->mutate()Lcom/koushikdutta/ion/gif/GifDecoder; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ - .line 183 │ + .line 184 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/gif/GifDecoder;->getLastFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->currentFrame:Lcom/koushikdutta/ion/gif/GifFrame; │ │ - .line 184 │ + .line 185 │ return-void │ .end method │ │ │ # virtual methods │ .method public getCurrentFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ .locals 6 │ │ .prologue │ - .line 221 │ + .line 222 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v0 │ │ - .line 222 │ + .line 223 │ .local v0, "now":J │ iget-wide v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->nextFrameRender:J │ │ const-wide/16 v4, 0x0 │ │ cmp-long v2, v2, v4 │ │ if-nez v2, :cond_0 │ │ - .line 223 │ + .line 224 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->getDelay()J │ │ move-result-wide v2 │ │ add-long/2addr v2, v0 │ │ iput-wide v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->nextFrameRender:J │ │ - .line 224 │ + .line 225 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->scheduleNextFrame()V │ │ - .line 227 │ + .line 228 │ :cond_0 │ iget-wide v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->nextFrameRender:J │ │ cmp-long v2, v0, v2 │ │ if-ltz v2, :cond_2 │ │ - .line 229 │ + .line 230 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/gif/GifDecoder;->getLastFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->currentFrame:Lcom/koushikdutta/ion/gif/GifFrame; │ │ if-eq v2, v3, :cond_1 │ │ - .line 231 │ + .line 232 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/gif/GifDecoder;->getLastFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ │ move-result-object v2 │ │ iput-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->currentFrame:Lcom/koushikdutta/ion/gif/GifFrame; │ │ - .line 233 │ + .line 234 │ iget-wide v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->nextFrameRender:J │ │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->getDelay()J │ │ move-result-wide v4 │ │ add-long/2addr v2, v4 │ │ cmp-long v2, v0, v2 │ │ if-lez v2, :cond_3 │ │ - .line 234 │ + .line 235 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->getDelay()J │ │ move-result-wide v2 │ │ add-long/2addr v2, v0 │ │ iput-wide v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->nextFrameRender:J │ │ - .line 238 │ + .line 239 │ :cond_1 │ :goto_0 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->scheduleNextFrame()V │ │ - .line 241 │ + .line 242 │ :cond_2 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->currentFrame:Lcom/koushikdutta/ion/gif/GifFrame; │ │ return-object v2 │ │ - .line 236 │ + .line 237 │ :cond_3 │ iget-wide v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->nextFrameRender:J │ │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->getDelay()J │ │ move-result-wide v4 │ │ @@ -188,78 +189,78 @@ │ goto :goto_0 │ .end method │ │ .method getDelay()J │ .locals 4 │ │ .prologue │ - .line 212 │ + .line 213 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->currentFrame:Lcom/koushikdutta/ion/gif/GifFrame; │ │ if-nez v2, :cond_1 │ │ - .line 213 │ + .line 214 │ const-wide/16 v0, 0x64 │ │ - .line 217 │ + .line 218 │ :cond_0 │ :goto_0 │ return-wide v0 │ │ - .line 214 │ + .line 215 │ :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->currentFrame:Lcom/koushikdutta/ion/gif/GifFrame; │ │ iget v2, v2, Lcom/koushikdutta/ion/gif/GifFrame;->delay:I │ │ int-to-long v0, v2 │ │ - .line 215 │ + .line 216 │ .local v0, "delay":J │ const-wide/16 v2, 0x0 │ │ cmp-long v2, v0, v2 │ │ if-nez v2, :cond_0 │ │ - .line 216 │ + .line 217 │ const-wide/16 v0, 0x64 │ │ goto :goto_0 │ .end method │ │ .method public declared-synchronized scheduleNextFrame()V │ .locals 2 │ │ .prologue │ - .line 246 │ + .line 247 │ monitor-enter p0 │ │ :try_start_0 │ iget-boolean v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->isLoading:Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ if-eqz v0, :cond_1 │ │ - .line 254 │ + .line 255 │ :cond_0 │ :goto_0 │ monitor-exit p0 │ │ return-void │ │ - .line 248 │ + .line 249 │ :cond_1 │ :try_start_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->exception:Ljava/lang/Exception; │ │ if-nez v0, :cond_0 │ │ - .line 250 │ + .line 251 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/gif/GifDecoder;->getStatus()I │ │ move-result v0 │ │ const/4 v1, -0x1 │ @@ -271,39 +272,39 @@ │ # getter for: Lcom/koushikdutta/ion/IonDrawable;->repeatAnimation:Z │ invoke-static {v0}, Lcom/koushikdutta/ion/IonDrawable;->access$100(Lcom/koushikdutta/ion/IonDrawable;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ - .line 251 │ + .line 252 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/gif/GifDecoder;->restart()V │ │ - .line 252 │ + .line 253 │ :cond_2 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->isLoading:Z │ │ - .line 253 │ + .line 254 │ invoke-static {}, Lcom/koushikdutta/ion/Ion;->getBitmapLoadExecutorService()Ljava/util/concurrent/ExecutorService; │ │ move-result-object v0 │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->loader:Ljava/lang/Runnable; │ │ invoke-interface {v0, v1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_0 │ │ - .line 246 │ + .line 247 │ :catchall_0 │ move-exception v0 │ │ monitor-exit p0 │ │ throw v0 │ .end method ├── smali/com/koushikdutta/ion/IonDrawable.smali │ @@ -25,14 +25,16 @@ │ # instance fields │ .field private final NULL_BITMAPINFO:Landroid/graphics/drawable/Drawable; │ │ .field private final NULL_ERROR:Landroid/graphics/drawable/Drawable; │ │ .field private final NULL_PLACEHOLDER:Landroid/graphics/drawable/Drawable; │ │ +.field private alpha:I │ + │ .field private bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ .field private bitmapDrawableFactory:Lcom/koushikdutta/ion/BitmapDrawableFactory; │ │ .field private bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ .field private callback:Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback; │ @@ -118,15 +120,15 @@ │ │ const/4 v6, 0x2 │ │ const/4 v5, 0x1 │ │ const/4 v4, 0x0 │ │ - .line 280 │ + .line 281 │ const/4 v0, 0x3 │ │ new-array v2, v0, [Landroid/graphics/drawable/Drawable; │ │ new-instance v3, Landroid/graphics/drawable/BitmapDrawable; │ │ move-object v0, v1 │ @@ -153,71 +155,76 @@ │ │ invoke-direct {v0, v1}, Landroid/graphics/drawable/BitmapDrawable;->(Landroid/graphics/Bitmap;)V │ │ aput-object v0, v2, v6 │ │ invoke-direct {p0, v2}, Landroid/graphics/drawable/LayerDrawable;->([Landroid/graphics/drawable/Drawable;)V │ │ - .line 434 │ + .line 37 │ + const/16 v0, 0xff │ + │ + iput v0, p0, Lcom/koushikdutta/ion/IonDrawable;->alpha:I │ + │ + .line 435 │ new-instance v0, Lcom/koushikdutta/ion/IonDrawable$1; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonDrawable$1;->(Lcom/koushikdutta/ion/IonDrawable;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->tileCallback:Lcom/koushikdutta/async/future/FutureCallback; │ │ - .line 282 │ + .line 283 │ invoke-virtual {p0, v4, v4}, Lcom/koushikdutta/ion/IonDrawable;->setId(II)V │ │ - .line 283 │ + .line 284 │ invoke-virtual {p0, v5, v5}, Lcom/koushikdutta/ion/IonDrawable;->setId(II)V │ │ - .line 284 │ + .line 285 │ invoke-virtual {p0, v6, v6}, Lcom/koushikdutta/ion/IonDrawable;->setId(II)V │ │ - .line 286 │ + .line 287 │ invoke-virtual {p0, v4}, Lcom/koushikdutta/ion/IonDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_PLACEHOLDER:Landroid/graphics/drawable/Drawable; │ │ - .line 287 │ + .line 288 │ invoke-virtual {p0, v5}, Lcom/koushikdutta/ion/IonDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_BITMAPINFO:Landroid/graphics/drawable/Drawable; │ │ - .line 288 │ + .line 289 │ invoke-virtual {p0, v6}, Lcom/koushikdutta/ion/IonDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_ERROR:Landroid/graphics/drawable/Drawable; │ │ - .line 290 │ + .line 291 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ - .line 291 │ + .line 292 │ new-instance v0, Landroid/graphics/Paint; │ │ const/4 v1, 0x6 │ │ invoke-direct {v0, v1}, Landroid/graphics/Paint;->(I)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ - .line 292 │ + .line 293 │ new-instance v0, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->(Lcom/koushikdutta/ion/IonDrawable;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->callback:Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback; │ │ - .line 293 │ + .line 294 │ return-void │ .end method │ │ .method static synthetic access$000(Lcom/koushikdutta/ion/IonDrawable;)Lcom/koushikdutta/async/future/FutureCallback; │ .locals 1 │ .param p0, "x0" # Lcom/koushikdutta/ion/IonDrawable; │ │ @@ -240,26 +247,26 @@ │ .end method │ │ .method private drawDeepZoom(Landroid/graphics/Canvas;)V │ .locals 52 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ │ .prologue │ - .line 625 │ + .line 626 │ invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->getClipBounds()Landroid/graphics/Rect; │ │ move-result-object v13 │ │ - .line 626 │ + .line 627 │ .local v13, "clip":Landroid/graphics/Rect; │ invoke-virtual/range {p0 .. p0}, Lcom/koushikdutta/ion/IonDrawable;->getBounds()Landroid/graphics/Rect; │ │ move-result-object v12 │ │ - .line 628 │ + .line 629 │ .local v12, "bounds":Landroid/graphics/Rect; │ invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->getWidth()I │ │ move-result v4 │ │ int-to-float v4, v4 │ │ @@ -267,35 +274,35 @@ │ │ move-result v5 │ │ int-to-float v5, v5 │ │ div-float v46, v4, v5 │ │ - .line 630 │ + .line 631 │ .local v46, "zoom":F │ invoke-virtual {v12}, Landroid/graphics/Rect;->width()I │ │ move-result v4 │ │ int-to-float v4, v4 │ │ mul-float v48, v46, v4 │ │ - .line 631 │ + .line 632 │ .local v48, "zoomWidth":F │ invoke-virtual {v12}, Landroid/graphics/Rect;->height()I │ │ move-result v4 │ │ int-to-float v4, v4 │ │ mul-float v47, v46, v4 │ │ - .line 633 │ + .line 634 │ .local v47, "zoomHeight":F │ const/high16 v4, 0x43800000 # 256.0f │ │ div-float v4, v48, v4 │ │ float-to-double v4, v4 │ │ @@ -303,15 +310,15 @@ │ │ move-result-wide v4 │ │ sget-wide v50, Lcom/koushikdutta/ion/IonDrawable;->LOG_2:D │ │ div-double v42, v4, v50 │ │ - .line 634 │ + .line 635 │ .local v42, "wlevel":D │ const/high16 v4, 0x43800000 # 256.0f │ │ div-float v4, v47, v4 │ │ float-to-double v4, v4 │ │ @@ -319,125 +326,125 @@ │ │ move-result-wide v4 │ │ sget-wide v50, Lcom/koushikdutta/ion/IonDrawable;->LOG_2:D │ │ div-double v14, v4, v50 │ │ - .line 635 │ + .line 636 │ .local v14, "hlevel":D │ move-wide/from16 v0, v42 │ │ invoke-static {v0, v1, v14, v15}, Ljava/lang/Math;->max(DD)D │ │ move-result-wide v20 │ │ - .line 637 │ + .line 638 │ .local v20, "maxLevel":D │ const/4 v4, 0x0 │ │ iget v5, v13, Landroid/graphics/Rect;->left:I │ │ invoke-static {v4, v5}, Ljava/lang/Math;->max(II)I │ │ move-result v39 │ │ - .line 638 │ + .line 639 │ .local v39, "visibleLeft":I │ invoke-virtual {v12}, Landroid/graphics/Rect;->width()I │ │ move-result v4 │ │ iget v5, v13, Landroid/graphics/Rect;->right:I │ │ invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I │ │ move-result v40 │ │ - .line 639 │ + .line 640 │ .local v40, "visibleRight":I │ const/4 v4, 0x0 │ │ iget v5, v13, Landroid/graphics/Rect;->top:I │ │ invoke-static {v4, v5}, Ljava/lang/Math;->max(II)I │ │ move-result v41 │ │ - .line 640 │ + .line 641 │ .local v41, "visibleTop":I │ invoke-virtual {v12}, Landroid/graphics/Rect;->height()I │ │ move-result v4 │ │ iget v5, v13, Landroid/graphics/Rect;->bottom:I │ │ invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I │ │ move-result v38 │ │ - .line 641 │ + .line 642 │ .local v38, "visibleBottom":I │ invoke-static/range {v20 .. v21}, Ljava/lang/Math;->floor(D)D │ │ move-result-wide v4 │ │ double-to-int v0, v4 │ │ move/from16 v17, v0 │ │ - .line 642 │ + .line 643 │ .local v17, "level":I │ move-object/from16 v0, p0 │ │ iget v4, v0, Lcom/koushikdutta/ion/IonDrawable;->maxLevel:I │ │ move/from16 v0, v17 │ │ invoke-static {v4, v0}, Ljava/lang/Math;->min(II)I │ │ move-result v17 │ │ - .line 643 │ + .line 644 │ const/4 v4, 0x0 │ │ move/from16 v0, v17 │ │ invoke-static {v0, v4}, Ljava/lang/Math;->max(II)I │ │ move-result v17 │ │ - .line 644 │ + .line 645 │ const/4 v4, 0x1 │ │ shl-int v18, v4, v17 │ │ - .line 645 │ + .line 646 │ .local v18, "levelTiles":I │ move-object/from16 v0, p0 │ │ iget v4, v0, Lcom/koushikdutta/ion/IonDrawable;->textureDim:I │ │ div-int v35, v4, v18 │ │ - .line 650 │ + .line 651 │ .local v35, "textureTileDim":I │ const/4 v10, 0x0 │ │ - .line 651 │ + .line 652 │ .local v10, "DEBUG_ZOOM":Z │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v4, :cond_0 │ │ - .line 652 │ + .line 653 │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ const/4 v5, 0x0 │ @@ -454,180 +461,180 @@ │ │ move-object/from16 v0, p1 │ │ move-object/from16 v1, v49 │ │ invoke-virtual {v0, v4, v5, v7, v1}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V │ │ - .line 665 │ + .line 666 │ :goto_0 │ const/4 v9, 0x1 │ │ - .line 666 │ + .line 667 │ .local v9, "sampleSize":I │ :goto_1 │ div-int v4, v35, v9 │ │ const/16 v5, 0x100 │ │ if-le v4, v5, :cond_1 │ │ - .line 667 │ + .line 668 │ shl-int/lit8 v9, v9, 0x1 │ │ goto :goto_1 │ │ - .line 661 │ + .line 662 │ .end local v9 # "sampleSize":I │ :cond_0 │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ const/high16 v5, -0x1000000 │ │ invoke-virtual {v4, v5}, Landroid/graphics/Paint;->setColor(I)V │ │ - .line 662 │ + .line 663 │ invoke-virtual/range {p0 .. p0}, Lcom/koushikdutta/ion/IonDrawable;->getBounds()Landroid/graphics/Rect; │ │ move-result-object v4 │ │ move-object/from16 v0, p0 │ │ iget-object v5, v0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ move-object/from16 v0, p1 │ │ invoke-virtual {v0, v4, v5}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V │ │ goto :goto_0 │ │ - .line 669 │ + .line 670 │ .restart local v9 # "sampleSize":I │ :cond_1 │ const/16 v45, 0x0 │ │ .local v45, "y":I │ :goto_2 │ move/from16 v0, v45 │ │ move/from16 v1, v18 │ │ if-ge v0, v1, :cond_4 │ │ - .line 670 │ + .line 671 │ mul-int v37, v35, v45 │ │ - .line 671 │ + .line 672 │ .local v37, "top":I │ add-int/lit8 v4, v45, 0x1 │ │ mul-int v11, v35, v4 │ │ - .line 672 │ + .line 673 │ .local v11, "bottom":I │ iget v4, v12, Landroid/graphics/Rect;->bottom:I │ │ invoke-static {v11, v4}, Ljava/lang/Math;->min(II)I │ │ move-result v11 │ │ - .line 674 │ + .line 675 │ move/from16 v0, v41 │ │ if-ge v11, v0, :cond_3 │ │ - .line 669 │ + .line 670 │ :cond_2 │ add-int/lit8 v45, v45, 0x1 │ │ goto :goto_2 │ │ - .line 676 │ + .line 677 │ :cond_3 │ move/from16 v0, v37 │ │ move/from16 v1, v38 │ │ if-le v0, v1, :cond_5 │ │ - .line 763 │ + .line 764 │ .end local v11 # "bottom":I │ .end local v37 # "top":I │ :cond_4 │ return-void │ │ - .line 678 │ + .line 679 │ .restart local v11 # "bottom":I │ .restart local v37 # "top":I │ :cond_5 │ const/16 v44, 0x0 │ │ .local v44, "x":I │ :goto_3 │ move/from16 v0, v44 │ │ move/from16 v1, v18 │ │ if-ge v0, v1, :cond_2 │ │ - .line 679 │ + .line 680 │ mul-int v16, v35, v44 │ │ - .line 680 │ + .line 681 │ .local v16, "left":I │ add-int/lit8 v4, v44, 0x1 │ │ mul-int v27, v35, v4 │ │ - .line 681 │ + .line 682 │ .local v27, "right":I │ iget v4, v12, Landroid/graphics/Rect;->right:I │ │ move/from16 v0, v27 │ │ invoke-static {v0, v4}, Ljava/lang/Math;->min(II)I │ │ move-result v27 │ │ - .line 683 │ + .line 684 │ move/from16 v0, v27 │ │ move/from16 v1, v39 │ │ if-ge v0, v1, :cond_7 │ │ - .line 678 │ + .line 679 │ :cond_6 │ :goto_4 │ add-int/lit8 v44, v44, 0x1 │ │ goto :goto_3 │ │ - .line 685 │ + .line 686 │ :cond_7 │ move/from16 v0, v16 │ │ move/from16 v1, v40 │ │ if-gt v0, v1, :cond_2 │ │ - .line 688 │ + .line 689 │ new-instance v8, Landroid/graphics/Rect; │ │ move/from16 v0, v16 │ │ move/from16 v1, v37 │ │ move/from16 v2, v27 │ │ invoke-direct {v8, v0, v1, v2, v11}, Landroid/graphics/Rect;->(IIII)V │ │ - .line 692 │ + .line 693 │ .local v8, "texRect":Landroid/graphics/Rect; │ const/4 v4, 0x7 │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ @@ -681,37 +688,37 @@ │ │ aput-object v7, v4, v5 │ │ invoke-static {v4}, Lcom/koushikdutta/async/util/FileCache;->toKeyString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 693 │ + .line 694 │ .local v6, "tileKey":Ljava/lang/String; │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ │ invoke-virtual {v4, v6}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->get(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ move-result-object v36 │ │ - .line 694 │ + .line 695 │ .local v36, "tile":Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ if-eqz v36, :cond_8 │ │ move-object/from16 v0, v36 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v4, :cond_8 │ │ - .line 697 │ + .line 698 │ move-object/from16 v0, v36 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ const/4 v5, 0x0 │ │ move-object/from16 v0, p0 │ @@ -720,108 +727,108 @@ │ │ move-object/from16 v0, p1 │ │ invoke-virtual {v0, v4, v5, v8, v7}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V │ │ goto :goto_4 │ │ - .line 702 │ + .line 703 │ :cond_8 │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ invoke-virtual {v4, v6}, Lcom/koushikdutta/async/util/HashList;->tag(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v4 │ │ if-nez v4, :cond_9 │ │ - .line 705 │ + .line 706 │ new-instance v4, Lcom/koushikdutta/ion/LoadBitmapRegion; │ │ move-object/from16 v0, p0 │ │ iget-object v5, v0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ move-object/from16 v0, p0 │ │ iget-object v7, v0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v7, v7, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ invoke-direct/range {v4 .. v9}, Lcom/koushikdutta/ion/LoadBitmapRegion;->(Lcom/koushikdutta/ion/Ion;Ljava/lang/String;Landroid/graphics/BitmapRegionDecoder;Landroid/graphics/Rect;I)V │ │ - .line 707 │ + .line 708 │ :cond_9 │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapsPending:Lcom/koushikdutta/async/util/HashList; │ │ move-object/from16 v0, p0 │ │ iget-object v5, v0, Lcom/koushikdutta/ion/IonDrawable;->tileCallback:Lcom/koushikdutta/async/future/FutureCallback; │ │ invoke-virtual {v4, v6, v5}, Lcom/koushikdutta/async/util/HashList;->add(Ljava/lang/String;Ljava/lang/Object;)V │ │ - .line 709 │ + .line 710 │ const/16 v19, 0x0 │ │ - .line 710 │ + .line 711 │ .local v19, "parentLeft":I │ const/16 v23, 0x0 │ │ - .line 711 │ + .line 712 │ .local v23, "parentTop":I │ const/16 v24, 0x1 │ │ - .line 712 │ + .line 713 │ .local v24, "parentUp":I │ sub-int v22, v17, v24 │ │ - .line 713 │ + .line 714 │ .local v22, "parentLevel":I │ rem-int/lit8 v4, v44, 0x2 │ │ const/4 v5, 0x1 │ │ if-ne v4, v5, :cond_a │ │ - .line 714 │ + .line 715 │ add-int/lit8 v19, v19, 0x1 │ │ - .line 715 │ + .line 716 │ :cond_a │ rem-int/lit8 v4, v45, 0x2 │ │ const/4 v5, 0x1 │ │ if-ne v4, v5, :cond_b │ │ - .line 716 │ + .line 717 │ add-int/lit8 v23, v23, 0x1 │ │ - .line 717 │ + .line 718 │ :cond_b │ shr-int/lit8 v25, v44, 0x1 │ │ - .line 718 │ + .line 719 │ .local v25, "parentX":I │ shr-int/lit8 v26, v45, 0x1 │ │ - .line 720 │ + .line 721 │ .local v26, "parentY":I │ :goto_5 │ if-ltz v22, :cond_c │ │ - .line 721 │ + .line 722 │ const/4 v4, 0x7 │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ move-object/from16 v0, p0 │ @@ -874,142 +881,142 @@ │ │ aput-object v7, v4, v5 │ │ invoke-static {v4}, Lcom/koushikdutta/async/util/FileCache;->toKeyString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 722 │ + .line 723 │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ │ invoke-virtual {v4, v6}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->get(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ move-result-object v36 │ │ - .line 723 │ + .line 724 │ if-eqz v36, :cond_d │ │ move-object/from16 v0, v36 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v4, :cond_d │ │ - .line 738 │ + .line 739 │ :cond_c │ if-eqz v36, :cond_6 │ │ move-object/from16 v0, v36 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v4, :cond_6 │ │ - .line 742 │ + .line 743 │ const/4 v4, 0x1 │ │ shl-int v31, v4, v22 │ │ - .line 743 │ + .line 744 │ .local v31, "subLevelTiles":I │ move-object/from16 v0, p0 │ │ iget v4, v0, Lcom/koushikdutta/ion/IonDrawable;->textureDim:I │ │ div-int v34, v4, v31 │ │ - .line 744 │ + .line 745 │ .local v34, "subtileDim":I │ const/16 v32, 0x1 │ │ - .line 745 │ + .line 746 │ .local v32, "subSampleSize":I │ :goto_6 │ div-int v4, v34, v32 │ │ const/16 v5, 0x100 │ │ if-le v4, v5, :cond_10 │ │ - .line 746 │ + .line 747 │ shl-int/lit8 v32, v32, 0x1 │ │ goto :goto_6 │ │ - .line 725 │ + .line 726 │ .end local v31 # "subLevelTiles":I │ .end local v32 # "subSampleSize":I │ .end local v34 # "subtileDim":I │ :cond_d │ rem-int/lit8 v4, v25, 0x2 │ │ const/4 v5, 0x1 │ │ if-ne v4, v5, :cond_e │ │ - .line 726 │ + .line 727 │ const/4 v4, 0x1 │ │ shl-int v4, v4, v24 │ │ add-int v19, v19, v4 │ │ - .line 728 │ + .line 729 │ :cond_e │ rem-int/lit8 v4, v26, 0x2 │ │ const/4 v5, 0x1 │ │ if-ne v4, v5, :cond_f │ │ - .line 729 │ + .line 730 │ const/4 v4, 0x1 │ │ shl-int v4, v4, v24 │ │ add-int v23, v23, v4 │ │ - .line 731 │ + .line 732 │ :cond_f │ add-int/lit8 v22, v22, -0x1 │ │ - .line 732 │ + .line 733 │ add-int/lit8 v24, v24, 0x1 │ │ - .line 733 │ + .line 734 │ shr-int/lit8 v25, v25, 0x1 │ │ - .line 734 │ + .line 735 │ shr-int/lit8 v26, v26, 0x1 │ │ goto :goto_5 │ │ - .line 747 │ + .line 748 │ .restart local v31 # "subLevelTiles":I │ .restart local v32 # "subSampleSize":I │ .restart local v34 # "subtileDim":I │ :cond_10 │ div-int v33, v34, v32 │ │ - .line 749 │ + .line 750 │ .local v33, "subTextureDim":I │ shr-int v33, v33, v24 │ │ - .line 750 │ + .line 751 │ mul-int v28, v33, v19 │ │ - .line 751 │ + .line 752 │ .local v28, "sourceLeft":I │ mul-int v30, v33, v23 │ │ - .line 752 │ + .line 753 │ .local v30, "sourceTop":I │ new-instance v29, Landroid/graphics/Rect; │ │ add-int v4, v28, v33 │ │ add-int v5, v30, v33 │ │ @@ -1017,15 +1024,15 @@ │ │ move/from16 v1, v28 │ │ move/from16 v2, v30 │ │ invoke-direct {v0, v1, v2, v4, v5}, Landroid/graphics/Rect;->(IIII)V │ │ - .line 753 │ + .line 754 │ .local v29, "sourceRect":Landroid/graphics/Rect; │ move-object/from16 v0, v36 │ │ iget-object v4, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ move-object/from16 v0, p0 │ │ @@ -1041,427 +1048,427 @@ │ .end method │ │ .method static getOrCreateIonDrawable(Landroid/widget/ImageView;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 3 │ .param p0, "imageView" # Landroid/widget/ImageView; │ │ .prologue │ - .line 784 │ + .line 786 │ invoke-virtual {p0}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ - .line 786 │ + .line 788 │ .local v0, "current":Landroid/graphics/drawable/Drawable; │ if-eqz v0, :cond_0 │ │ instance-of v2, v0, Lcom/koushikdutta/ion/IonDrawable; │ │ if-nez v2, :cond_1 │ │ - .line 787 │ + .line 789 │ :cond_0 │ new-instance v1, Lcom/koushikdutta/ion/IonDrawable; │ │ invoke-virtual {p0}, Landroid/widget/ImageView;->getResources()Landroid/content/res/Resources; │ │ move-result-object v2 │ │ invoke-direct {v1, v2}, Lcom/koushikdutta/ion/IonDrawable;->(Landroid/content/res/Resources;)V │ │ - .line 792 │ + .line 794 │ .local v1, "ret":Lcom/koushikdutta/ion/IonDrawable; │ :goto_0 │ const/4 v2, 0x0 │ │ invoke-virtual {p0, v2}, Landroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V │ │ - .line 793 │ + .line 795 │ return-object v1 │ │ .end local v1 # "ret":Lcom/koushikdutta/ion/IonDrawable; │ :cond_1 │ move-object v1, v0 │ │ - .line 789 │ + .line 791 │ check-cast v1, Lcom/koushikdutta/ion/IonDrawable; │ │ .restart local v1 # "ret":Lcom/koushikdutta/ion/IonDrawable; │ goto :goto_0 │ .end method │ │ .method private tryGetBitmapResource()Landroid/graphics/drawable/Drawable; │ .locals 3 │ │ .prologue │ const/4 v0, 0x0 │ │ - .line 411 │ + .line 412 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ if-eqz v1, :cond_1 │ │ - .line 412 │ + .line 413 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ - .line 422 │ + .line 423 │ :cond_0 │ :goto_0 │ return-object v0 │ │ - .line 413 │ + .line 414 │ :cond_1 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v1, :cond_0 │ │ - .line 415 │ + .line 416 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-nez v1, :cond_0 │ │ - .line 417 │ + .line 418 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ if-nez v1, :cond_0 │ │ - .line 419 │ + .line 420 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v1, :cond_0 │ │ - .line 421 │ + .line 422 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawableFactory:Lcom/koushikdutta/ion/BitmapDrawableFactory; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ invoke-interface {v0, v1, v2}, Lcom/koushikdutta/ion/BitmapDrawableFactory;->fromBitmap(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ - .line 422 │ + .line 423 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ goto :goto_0 │ .end method │ │ .method private tryGetErrorResource()Landroid/graphics/drawable/Drawable; │ .locals 2 │ │ .prologue │ - .line 402 │ + .line 403 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ if-eqz v0, :cond_0 │ │ - .line 403 │ + .line 404 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ - .line 407 │ + .line 408 │ :goto_0 │ return-object v0 │ │ - .line 404 │ + .line 405 │ :cond_0 │ iget v0, p0, Lcom/koushikdutta/ion/IonDrawable;->errorResource:I │ │ if-nez v0, :cond_1 │ │ - .line 405 │ + .line 406 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 406 │ + .line 407 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget v1, p0, Lcom/koushikdutta/ion/IonDrawable;->errorResource:I │ │ invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ - .line 407 │ + .line 408 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ goto :goto_0 │ .end method │ │ .method private tryGetPlaceholderResource()Landroid/graphics/drawable/Drawable; │ .locals 2 │ │ .prologue │ - .line 426 │ + .line 427 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ if-eqz v0, :cond_0 │ │ - .line 427 │ + .line 428 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ - .line 431 │ + .line 432 │ :goto_0 │ return-object v0 │ │ - .line 428 │ + .line 429 │ :cond_0 │ iget v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ if-nez v0, :cond_1 │ │ - .line 429 │ + .line 430 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 430 │ + .line 431 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget v1, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ - .line 431 │ + .line 432 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method public cancel()V │ .locals 2 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 275 │ + .line 276 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->callback:Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback; │ │ invoke-virtual {v0, v1, v1}, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->register(Lcom/koushikdutta/ion/Ion;Ljava/lang/String;)V │ │ - .line 276 │ + .line 277 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ - .line 277 │ + .line 278 │ return-void │ .end method │ │ .method public draw(Landroid/graphics/Canvas;)V │ - .locals 12 │ + .locals 9 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ │ .prologue │ - const-wide/16 v10, 0xff │ - │ const/4 v6, 0x1 │ │ const/4 v8, 0x0 │ │ - .line 494 │ + .line 495 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-nez v4, :cond_5 │ │ - .line 496 │ + .line 497 │ invoke-super {p0, p1}, Landroid/graphics/drawable/LayerDrawable;->draw(Landroid/graphics/Canvas;)V │ │ - .line 499 │ + .line 500 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ if-eqz v4, :cond_2 │ │ - .line 500 │ + .line 501 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iget v4, v4, Lcom/koushikdutta/ion/BitmapFetcher;->sampleWidth:I │ │ if-nez v4, :cond_3 │ │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iget v4, v4, Lcom/koushikdutta/ion/BitmapFetcher;->sampleHeight:I │ │ if-nez v4, :cond_3 │ │ - .line 501 │ + .line 502 │ invoke-virtual {p1}, Landroid/graphics/Canvas;->getWidth()I │ │ move-result v4 │ │ if-eq v4, v6, :cond_0 │ │ - .line 502 │ + .line 503 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-virtual {p1}, Landroid/graphics/Canvas;->getWidth()I │ │ move-result v5 │ │ iput v5, v4, Lcom/koushikdutta/ion/BitmapFetcher;->sampleWidth:I │ │ - .line 503 │ + .line 504 │ :cond_0 │ invoke-virtual {p1}, Landroid/graphics/Canvas;->getHeight()I │ │ move-result v4 │ │ if-eq v4, v6, :cond_1 │ │ - .line 504 │ + .line 505 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-virtual {p1}, Landroid/graphics/Canvas;->getHeight()I │ │ move-result v5 │ │ iput v5, v4, Lcom/koushikdutta/ion/BitmapFetcher;->sampleHeight:I │ │ - .line 507 │ + .line 508 │ :cond_1 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-virtual {v4}, Lcom/koushikdutta/ion/BitmapFetcher;->recomputeDecodeKey()V │ │ - .line 508 │ + .line 509 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/Ion;->bitmapCache:Lcom/koushikdutta/ion/bitmap/IonBitmapCache; │ │ iget-object v5, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iget-object v5, v5, Lcom/koushikdutta/ion/BitmapFetcher;->bitmapKey:Ljava/lang/String; │ │ invoke-virtual {v4, v5}, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->get(Ljava/lang/String;)Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ move-result-object v2 │ │ - .line 509 │ + .line 510 │ .local v2, "found":Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ if-eqz v2, :cond_3 │ │ - .line 511 │ + .line 512 │ iput-object v8, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ - .line 514 │ + .line 515 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->callback:Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback; │ │ invoke-virtual {v4, v8, v2}, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ │ - .line 588 │ + .line 589 │ .end local v2 # "found":Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ :cond_2 │ :goto_0 │ return-void │ │ - .line 520 │ + .line 521 │ :cond_3 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->callback:Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback; │ │ iget-object v5, p0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v6, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ iget-object v6, v6, Lcom/koushikdutta/ion/BitmapFetcher;->bitmapKey:Ljava/lang/String; │ │ invoke-virtual {v4, v5, v6}, Lcom/koushikdutta/ion/IonDrawable$IonDrawableCallback;->register(Lcom/koushikdutta/ion/Ion;Ljava/lang/String;)V │ │ - .line 524 │ + .line 525 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-static {v4}, Lcom/koushikdutta/ion/BitmapFetcher;->shouldDeferImageView(Lcom/koushikdutta/ion/Ion;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - .line 525 │ + .line 526 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-virtual {v4}, Lcom/koushikdutta/ion/BitmapFetcher;->defer()Lcom/koushikdutta/ion/DeferredLoadBitmap; │ │ - .line 530 │ + .line 531 │ :goto_1 │ iput-object v8, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ goto :goto_0 │ │ - .line 527 │ + .line 528 │ :cond_4 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ invoke-virtual {v4}, Lcom/koushikdutta/ion/BitmapFetcher;->execute()V │ │ goto :goto_1 │ │ - .line 537 │ + .line 538 │ :cond_5 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ if-eqz v4, :cond_6 │ │ - .line 538 │ + .line 539 │ invoke-direct {p0, p1}, Lcom/koushikdutta/ion/IonDrawable;->drawDeepZoom(Landroid/graphics/Canvas;)V │ │ goto :goto_0 │ │ - .line 542 │ + .line 543 │ :cond_6 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-wide v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->drawTime:J │ │ const-wide/16 v6, 0x0 │ │ cmp-long v4, v4, v6 │ │ if-nez v4, :cond_7 │ │ - .line 543 │ + .line 544 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J │ │ move-result-wide v6 │ │ iput-wide v6, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->drawTime:J │ │ - .line 545 │ + .line 546 │ :cond_7 │ - const-wide/16 v0, 0xff │ + iget v4, p0, Lcom/koushikdutta/ion/IonDrawable;->alpha:I │ │ - .line 547 │ + int-to-long v0, v4 │ + │ + .line 548 │ .local v0, "destAlpha":J │ iget-boolean v4, p0, Lcom/koushikdutta/ion/IonDrawable;->fadeIn:Z │ │ if-eqz v4, :cond_8 │ │ - .line 548 │ + .line 549 │ invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J │ │ move-result-wide v4 │ │ iget-object v6, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-wide v6, v6, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->drawTime:J │ @@ -1472,271 +1479,279 @@ │ │ shl-long/2addr v4, v6 │ │ const-wide/16 v6, 0xc8 │ │ div-long v0, v4, v6 │ │ - .line 549 │ - invoke-static {v0, v1, v10, v11}, Ljava/lang/Math;->min(JJ)J │ + .line 550 │ + iget v4, p0, Lcom/koushikdutta/ion/IonDrawable;->alpha:I │ + │ + int-to-long v4, v4 │ + │ + invoke-static {v0, v1, v4, v5}, Ljava/lang/Math;->min(JJ)J │ │ move-result-wide v0 │ │ - .line 553 │ + .line 554 │ :cond_8 │ - cmp-long v4, v0, v10 │ + iget v4, p0, Lcom/koushikdutta/ion/IonDrawable;->alpha:I │ + │ + int-to-long v4, v4 │ + │ + cmp-long v4, v0, v4 │ │ if-nez v4, :cond_a │ │ - .line 554 │ + .line 555 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ if-eqz v4, :cond_9 │ │ - .line 555 │ + .line 556 │ iput-object v8, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ - .line 556 │ + .line 557 │ const/4 v4, 0x0 │ │ iget-object v5, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_PLACEHOLDER:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v4, v5}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ - .line 564 │ + .line 565 │ :cond_9 │ :goto_2 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-eqz v4, :cond_b │ │ - .line 565 │ + .line 566 │ invoke-super {p0, p1}, Landroid/graphics/drawable/LayerDrawable;->draw(Landroid/graphics/Canvas;)V │ │ - .line 567 │ + .line 568 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ invoke-virtual {v4}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->getCurrentFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ │ move-result-object v3 │ │ - .line 568 │ + .line 569 │ .local v3, "frame":Lcom/koushikdutta/ion/gif/GifFrame; │ if-eqz v3, :cond_2 │ │ - .line 569 │ + .line 570 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ long-to-int v5, v0 │ │ invoke-virtual {v4, v5}, Landroid/graphics/Paint;->setAlpha(I)V │ │ - .line 570 │ + .line 571 │ iget-object v4, v3, Lcom/koushikdutta/ion/gif/GifFrame;->image:Landroid/graphics/Bitmap; │ │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable;->getBounds()Landroid/graphics/Rect; │ │ move-result-object v5 │ │ iget-object v6, p0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ invoke-virtual {p1, v4, v8, v5, v6}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V │ │ - .line 571 │ + .line 572 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ - const/16 v5, 0xff │ + iget v5, p0, Lcom/koushikdutta/ion/IonDrawable;->alpha:I │ │ invoke-virtual {v4, v5}, Landroid/graphics/Paint;->setAlpha(I)V │ │ - .line 572 │ + .line 573 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable;->invalidateSelf()V │ │ goto/16 :goto_0 │ │ - .line 560 │ + .line 561 │ .end local v3 # "frame":Lcom/koushikdutta/ion/gif/GifFrame; │ :cond_a │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ if-eqz v4, :cond_9 │ │ - .line 561 │ + .line 562 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable;->invalidateSelf()V │ │ goto :goto_2 │ │ - .line 577 │ + .line 578 │ :cond_b │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v4, :cond_d │ │ - .line 578 │ + .line 579 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ if-eqz v4, :cond_c │ │ - .line 579 │ + .line 580 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ long-to-int v5, v0 │ │ invoke-virtual {v4, v5}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V │ │ - .line 585 │ + .line 586 │ :cond_c │ :goto_3 │ invoke-super {p0, p1}, Landroid/graphics/drawable/LayerDrawable;->draw(Landroid/graphics/Canvas;)V │ │ goto/16 :goto_0 │ │ - .line 581 │ + .line 582 │ :cond_d │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ if-eqz v4, :cond_c │ │ - .line 582 │ + .line 583 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ long-to-int v5, v0 │ │ invoke-virtual {v4, v5}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V │ │ goto :goto_3 │ .end method │ │ .method public getBitmapInfo()Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ .locals 1 │ │ .prologue │ - .line 101 │ + .line 102 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ return-object v0 │ .end method │ │ .method public getCurrentDrawable()Landroid/graphics/drawable/Drawable; │ .locals 4 │ │ .prologue │ const/4 v1, 0x0 │ │ - .line 79 │ + .line 80 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-nez v2, :cond_1 │ │ - .line 80 │ + .line 81 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ if-eqz v2, :cond_1 │ │ - .line 81 │ + .line 82 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v1 │ │ - .line 97 │ + .line 98 │ :cond_0 │ :goto_0 │ return-object v1 │ │ - .line 83 │ + .line 84 │ :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v2, :cond_4 │ │ - .line 84 │ + .line 85 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v2, :cond_2 │ │ - .line 85 │ + .line 86 │ new-instance v1, Landroid/graphics/drawable/BitmapDrawable; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget-object v3, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v3, v3, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ invoke-direct {v1, v2, v3}, Landroid/graphics/drawable/BitmapDrawable;->(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V │ │ goto :goto_0 │ │ - .line 86 │ + .line 87 │ :cond_2 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-eqz v2, :cond_4 │ │ - .line 87 │ + .line 88 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/gif/GifDecoder;->getLastFrame()Lcom/koushikdutta/ion/gif/GifFrame; │ │ move-result-object v0 │ │ - .line 88 │ + .line 89 │ .local v0, "last":Lcom/koushikdutta/ion/gif/GifFrame; │ if-eqz v0, :cond_3 │ │ - .line 89 │ + .line 90 │ new-instance v1, Landroid/graphics/drawable/BitmapDrawable; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget-object v3, v0, Lcom/koushikdutta/ion/gif/GifFrame;->image:Landroid/graphics/Bitmap; │ │ invoke-direct {v1, v2, v3}, Landroid/graphics/drawable/BitmapDrawable;->(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V │ │ goto :goto_0 │ │ - .line 90 │ + .line 91 │ :cond_3 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ if-eqz v2, :cond_0 │ │ - .line 91 │ + .line 92 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 95 │ + .line 96 │ .end local v0 # "last":Lcom/koushikdutta/ion/gif/GifFrame; │ :cond_4 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->errorResource:I │ │ if-eqz v2, :cond_0 │ │ - .line 96 │ + .line 97 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->errorResource:I │ │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v1 │ @@ -1744,46 +1759,46 @@ │ goto :goto_0 │ .end method │ │ .method public getIntrinsicHeight()I │ .locals 4 │ │ .prologue │ - .line 471 │ + .line 472 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v2, :cond_1 │ │ - .line 472 │ + .line 473 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ if-eqz v2, :cond_0 │ │ - .line 473 │ + .line 474 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->originalSize:Landroid/graphics/Point; │ │ iget v2, v2, Landroid/graphics/Point;->y:I │ │ - .line 489 │ + .line 490 │ :goto_0 │ return v2 │ │ - .line 474 │ + .line 475 │ :cond_0 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v2, :cond_1 │ │ - .line 475 │ + .line 476 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ iget-object v3, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ invoke-virtual {v3}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; │ @@ -1794,125 +1809,125 @@ │ │ invoke-virtual {v2, v3}, Landroid/graphics/Bitmap;->getScaledHeight(I)I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 477 │ + .line 478 │ :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ if-eqz v2, :cond_2 │ │ - .line 478 │ + .line 479 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/gif/GifDecoder;->getHeight()I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 479 │ + .line 480 │ :cond_2 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeHeight:I │ │ if-lez v2, :cond_3 │ │ - .line 480 │ + .line 481 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeHeight:I │ │ goto :goto_0 │ │ - .line 481 │ + .line 482 │ :cond_3 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v2, :cond_4 │ │ - .line 482 │ + .line 483 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetErrorResource()Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ - .line 483 │ + .line 484 │ .local v0, "error":Landroid/graphics/drawable/Drawable; │ if-eqz v0, :cond_4 │ │ - .line 484 │ + .line 485 │ invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 486 │ + .line 487 │ .end local v0 # "error":Landroid/graphics/drawable/Drawable; │ :cond_4 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetPlaceholderResource()Landroid/graphics/drawable/Drawable; │ │ move-result-object v1 │ │ - .line 487 │ + .line 488 │ .local v1, "placeholder":Landroid/graphics/drawable/Drawable; │ if-eqz v1, :cond_5 │ │ - .line 488 │ + .line 489 │ invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 489 │ + .line 490 │ :cond_5 │ const/4 v2, -0x1 │ │ goto :goto_0 │ .end method │ │ .method public getIntrinsicWidth()I │ .locals 4 │ │ .prologue │ - .line 444 │ + .line 445 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v2, :cond_1 │ │ - .line 445 │ + .line 446 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ if-eqz v2, :cond_0 │ │ - .line 446 │ + .line 447 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->originalSize:Landroid/graphics/Point; │ │ iget v2, v2, Landroid/graphics/Point;->x:I │ │ - .line 466 │ + .line 467 │ :goto_0 │ return v2 │ │ - .line 447 │ + .line 448 │ :cond_0 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-eqz v2, :cond_1 │ │ - .line 448 │ + .line 449 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ iget-object v3, p0, Lcom/koushikdutta/ion/IonDrawable;->resources:Landroid/content/res/Resources; │ │ invoke-virtual {v3}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; │ @@ -1923,83 +1938,83 @@ │ │ invoke-virtual {v2, v3}, Landroid/graphics/Bitmap;->getScaledWidth(I)I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 450 │ + .line 451 │ :cond_1 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ if-eqz v2, :cond_2 │ │ - .line 451 │ + .line 452 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/gif/GifDecoder;->getWidth()I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 453 │ + .line 454 │ :cond_2 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeWidth:I │ │ if-lez v2, :cond_3 │ │ - .line 454 │ + .line 455 │ iget v2, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeWidth:I │ │ goto :goto_0 │ │ - .line 456 │ + .line 457 │ :cond_3 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v2, :cond_4 │ │ - .line 457 │ + .line 458 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetErrorResource()Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ - .line 458 │ + .line 459 │ .local v0, "error":Landroid/graphics/drawable/Drawable; │ if-eqz v0, :cond_4 │ │ - .line 459 │ + .line 460 │ invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 462 │ + .line 463 │ .end local v0 # "error":Landroid/graphics/drawable/Drawable; │ :cond_4 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetPlaceholderResource()Landroid/graphics/drawable/Drawable; │ │ move-result-object v1 │ │ - .line 463 │ + .line 464 │ .local v1, "placeholder":Landroid/graphics/drawable/Drawable; │ if-eqz v1, :cond_5 │ │ - .line 464 │ + .line 465 │ invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I │ │ move-result v2 │ │ goto :goto_0 │ │ - .line 466 │ + .line 467 │ :cond_5 │ const/4 v2, -0x1 │ │ goto :goto_0 │ .end method │ │ .method public getLoadCallback()Lcom/koushikdutta/async/future/FutureCallback; │ @@ -2011,25 +2026,25 @@ │ "<", │ "Lcom/koushikdutta/ion/IonDrawable;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 63 │ + .line 64 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->loadCallback:Lcom/koushikdutta/async/future/FutureCallback; │ │ return-object v0 │ .end method │ │ .method public getOpacity()I │ .locals 2 │ │ .prologue │ - .line 779 │ + .line 781 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ @@ -2055,14 +2070,15 @@ │ const/16 v1, 0xff │ │ if-ge v0, v1, :cond_1 │ │ :cond_0 │ const/4 v0, -0x3 │ │ + .line 782 │ :goto_0 │ return v0 │ │ :cond_1 │ invoke-super {p0}, Landroid/graphics/drawable/LayerDrawable;->getOpacity()I │ │ move-result v0 │ @@ -2071,272 +2087,275 @@ │ .end method │ │ .method public ion(Lcom/koushikdutta/ion/Ion;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 2 │ .param p1, "ion" # Lcom/koushikdutta/ion/Ion; │ │ .prologue │ - .line 72 │ + .line 73 │ if-nez p1, :cond_0 │ │ - .line 73 │ + .line 74 │ new-instance v0, Ljava/lang/AssertionError; │ │ const-string v1, "null ion" │ │ invoke-direct {v0, v1}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v0 │ │ - .line 74 │ + .line 75 │ :cond_0 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ - .line 75 │ + .line 76 │ return-object p0 │ .end method │ │ .method public setAlpha(I)V │ .locals 1 │ .param p1, "alpha" # I │ │ .prologue │ - .line 767 │ + .line 768 │ invoke-super {p0, p1}, Landroid/graphics/drawable/LayerDrawable;->setAlpha(I)V │ │ - .line 768 │ + .line 769 │ + iput p1, p0, Lcom/koushikdutta/ion/IonDrawable;->alpha:I │ + │ + .line 770 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setAlpha(I)V │ │ - .line 769 │ + .line 771 │ return-void │ .end method │ │ .method public setBitmap(Lcom/koushikdutta/ion/bitmap/BitmapInfo;Lcom/koushikdutta/ion/ResponseServedFrom;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 10 │ .param p1, "info" # Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ .param p2, "servedFrom" # Lcom/koushikdutta/ion/ResponseServedFrom; │ │ .prologue │ const/4 v7, 0x0 │ │ const-wide/high16 v8, 0x4070000000000000L # 256.0 │ │ - .line 334 │ + .line 335 │ iget-object v6, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-ne v6, p1, :cond_1 │ │ - .line 366 │ + .line 367 │ :cond_0 │ :goto_0 │ return-object p0 │ │ - .line 337 │ + .line 338 │ :cond_1 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable;->cancel()V │ │ - .line 338 │ + .line 339 │ iput-object p2, p0, Lcom/koushikdutta/ion/IonDrawable;->servedFrom:Lcom/koushikdutta/ion/ResponseServedFrom; │ │ - .line 339 │ + .line 340 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ - .line 340 │ + .line 341 │ iput-object v7, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ - .line 341 │ + .line 342 │ iput-object v7, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ - .line 342 │ + .line 343 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable;->invalidateSelf()V │ │ - .line 343 │ + .line 344 │ if-eqz p1, :cond_0 │ │ - .line 346 │ + .line 347 │ iget-object v6, p1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ if-eqz v6, :cond_2 │ │ - .line 348 │ + .line 349 │ iget-object v6, p1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->originalSize:Landroid/graphics/Point; │ │ iget v6, v6, Landroid/graphics/Point;->x:I │ │ int-to-double v6, v6 │ │ div-double v4, v6, v8 │ │ - .line 349 │ + .line 350 │ .local v4, "wlevel":D │ iget-object v6, p1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->originalSize:Landroid/graphics/Point; │ │ iget v6, v6, Landroid/graphics/Point;->y:I │ │ int-to-double v6, v6 │ │ div-double v0, v6, v8 │ │ - .line 353 │ + .line 354 │ .local v0, "hlevel":D │ invoke-static {v4, v5, v0, v1}, Ljava/lang/Math;->max(DD)D │ │ move-result-wide v2 │ │ - .line 354 │ + .line 355 │ .local v2, "level":D │ invoke-static {v2, v3}, Ljava/lang/Math;->log(D)D │ │ move-result-wide v6 │ │ sget-wide v8, Lcom/koushikdutta/ion/IonDrawable;->LOG_2:D │ │ div-double v2, v6, v8 │ │ - .line 356 │ + .line 357 │ invoke-static {v2, v3}, Ljava/lang/Math;->ceil(D)D │ │ move-result-wide v6 │ │ double-to-int v6, v6 │ │ iput v6, p0, Lcom/koushikdutta/ion/IonDrawable;->maxLevel:I │ │ - .line 360 │ + .line 361 │ const/16 v6, 0x100 │ │ iget v7, p0, Lcom/koushikdutta/ion/IonDrawable;->maxLevel:I │ │ shl-int/2addr v6, v7 │ │ iput v6, p0, Lcom/koushikdutta/ion/IonDrawable;->textureDim:I │ │ goto :goto_0 │ │ - .line 362 │ + .line 363 │ .end local v0 # "hlevel":D │ .end local v2 # "level":D │ .end local v4 # "wlevel":D │ :cond_2 │ iget-object v6, p1, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-eqz v6, :cond_0 │ │ - .line 363 │ + .line 364 │ new-instance v6, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ invoke-direct {v6, p0, p1}, Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder;->(Lcom/koushikdutta/ion/IonDrawable;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ │ iput-object v6, p0, Lcom/koushikdutta/ion/IonDrawable;->gifDecoder:Lcom/koushikdutta/ion/IonDrawable$IonGifDecoder; │ │ goto :goto_0 │ .end method │ │ .method public setBitmapDrawableFactory(Lcom/koushikdutta/ion/BitmapDrawableFactory;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 0 │ .param p1, "factory" # Lcom/koushikdutta/ion/BitmapDrawableFactory; │ │ .prologue │ - .line 270 │ + .line 271 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawableFactory:Lcom/koushikdutta/ion/BitmapDrawableFactory; │ │ - .line 271 │ + .line 272 │ return-object p0 │ .end method │ │ .method public setBitmapFetcher(Lcom/koushikdutta/ion/BitmapFetcher;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 2 │ .param p1, "bitmapFetcher" # Lcom/koushikdutta/ion/BitmapFetcher; │ │ .prologue │ - .line 263 │ + .line 264 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapFetcher:Lcom/koushikdutta/ion/BitmapFetcher; │ │ - .line 264 │ + .line 265 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->ion:Lcom/koushikdutta/ion/Ion; │ │ if-nez v0, :cond_0 │ │ - .line 265 │ + .line 266 │ new-instance v0, Ljava/lang/AssertionError; │ │ const-string v1, "null ion" │ │ invoke-direct {v0, v1}, Ljava/lang/AssertionError;->(Ljava/lang/Object;)V │ │ throw v0 │ │ - .line 266 │ + .line 267 │ :cond_0 │ return-object p0 │ .end method │ │ .method public setColorFilter(Landroid/graphics/ColorFilter;)V │ .locals 1 │ .param p1, "cf" # Landroid/graphics/ColorFilter; │ │ .prologue │ - .line 773 │ + .line 775 │ invoke-super {p0, p1}, Landroid/graphics/drawable/LayerDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V │ │ - .line 774 │ + .line 776 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->paint:Landroid/graphics/Paint; │ │ invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter; │ │ - .line 775 │ + .line 777 │ return-void │ .end method │ │ .method public setError(ILandroid/graphics/drawable/Drawable;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 1 │ .param p1, "resource" # I │ .param p2, "drawable" # Landroid/graphics/drawable/Drawable; │ │ .prologue │ - .line 384 │ + .line 385 │ if-eqz p2, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ if-eq p2, v0, :cond_1 │ │ :cond_0 │ if-eqz p1, :cond_2 │ │ iget v0, p0, Lcom/koushikdutta/ion/IonDrawable;->errorResource:I │ │ if-ne p1, v0, :cond_2 │ │ - .line 389 │ + .line 390 │ :cond_1 │ :goto_0 │ return-object p0 │ │ - .line 387 │ + .line 388 │ :cond_2 │ iput p1, p0, Lcom/koushikdutta/ion/IonDrawable;->errorResource:I │ │ - .line 388 │ + .line 389 │ iput-object p2, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ goto :goto_0 │ .end method │ │ .method public setFadeIn(Z)Lcom/koushikdutta/ion/IonDrawable; │ .locals 0 │ .param p1, "fadeIn" # Z │ │ .prologue │ - .line 258 │ + .line 259 │ iput-boolean p1, p0, Lcom/koushikdutta/ion/IonDrawable;->fadeIn:Z │ │ - .line 259 │ + .line 260 │ return-object p0 │ .end method │ │ .method public setLoadCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 0 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -2346,96 +2365,96 @@ │ "Lcom/koushikdutta/ion/IonDrawable;", │ ">;)", │ "Lcom/koushikdutta/ion/IonDrawable;" │ } │ .end annotation │ │ .prologue │ - .line 67 │ + .line 68 │ .local p1, "loadCallback":Lcom/koushikdutta/async/future/FutureCallback;, "Lcom/koushikdutta/async/future/FutureCallback;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonDrawable;->loadCallback:Lcom/koushikdutta/async/future/FutureCallback; │ │ - .line 68 │ + .line 69 │ return-object p0 │ .end method │ │ .method public setPlaceholder(ILandroid/graphics/drawable/Drawable;)Lcom/koushikdutta/ion/IonDrawable; │ .locals 1 │ .param p1, "resource" # I │ .param p2, "drawable" # Landroid/graphics/drawable/Drawable; │ │ .prologue │ - .line 393 │ + .line 394 │ if-eqz p2, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ if-eq p2, v0, :cond_1 │ │ :cond_0 │ if-eqz p1, :cond_2 │ │ iget v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ if-ne p1, v0, :cond_2 │ │ - .line 398 │ + .line 399 │ :cond_1 │ :goto_0 │ return-object p0 │ │ - .line 396 │ + .line 397 │ :cond_2 │ iput p1, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholderResource:I │ │ - .line 397 │ + .line 398 │ iput-object p2, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ goto :goto_0 │ .end method │ │ .method public setRepeatAnimation(Z)Lcom/koushikdutta/ion/IonDrawable; │ .locals 0 │ .param p1, "repeatAnimation" # Z │ │ .prologue │ - .line 370 │ + .line 371 │ iput-boolean p1, p0, Lcom/koushikdutta/ion/IonDrawable;->repeatAnimation:Z │ │ - .line 371 │ + .line 372 │ return-object p0 │ .end method │ │ .method public setSize(II)Lcom/koushikdutta/ion/IonDrawable; │ .locals 1 │ .param p1, "resizeWidth" # I │ .param p2, "resizeHeight" # I │ │ .prologue │ - .line 375 │ + .line 376 │ iget v0, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeWidth:I │ │ if-ne v0, p1, :cond_0 │ │ iget v0, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeHeight:I │ │ if-ne v0, p2, :cond_0 │ │ - .line 380 │ + .line 381 │ :goto_0 │ return-object p0 │ │ - .line 377 │ + .line 378 │ :cond_0 │ iput p1, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeWidth:I │ │ - .line 378 │ + .line 379 │ iput p2, p0, Lcom/koushikdutta/ion/IonDrawable;->resizeHeight:I │ │ - .line 379 │ + .line 380 │ invoke-virtual {p0}, Lcom/koushikdutta/ion/IonDrawable;->invalidateSelf()V │ │ goto :goto_0 │ .end method │ │ .method public updateLayers()Lcom/koushikdutta/ion/IonDrawable; │ .locals 4 │ @@ -2443,56 +2462,56 @@ │ .prologue │ const/4 v3, 0x0 │ │ const/4 v2, 0x2 │ │ const/4 v1, 0x1 │ │ - .line 297 │ + .line 298 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetPlaceholderResource()Landroid/graphics/drawable/Drawable; │ │ - .line 298 │ + .line 299 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ if-nez v0, :cond_0 │ │ - .line 299 │ + .line 300 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_PLACEHOLDER:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v3, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ - .line 303 │ + .line 304 │ :goto_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ if-nez v0, :cond_1 │ │ - .line 304 │ + .line 305 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_BITMAPINFO:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v1, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ - .line 305 │ + .line 306 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_ERROR:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v2, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ - .line 330 │ + .line 331 │ :goto_1 │ return-object p0 │ │ - .line 301 │ + .line 302 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->placeholder:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v3, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ goto :goto_0 │ │ - .line 310 │ + .line 311 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->bitmap:Landroid/graphics/Bitmap; │ │ if-nez v0, :cond_3 │ │ @@ -2504,73 +2523,73 @@ │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-nez v0, :cond_3 │ │ - .line 311 │ + .line 312 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_BITMAPINFO:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v1, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ - .line 312 │ + .line 313 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetErrorResource()Landroid/graphics/drawable/Drawable; │ │ - .line 313 │ + .line 314 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ if-nez v0, :cond_2 │ │ - .line 314 │ + .line 315 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_ERROR:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v2, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ goto :goto_1 │ │ - .line 316 │ + .line 317 │ :cond_2 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->error:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v2, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ goto :goto_1 │ │ - .line 320 │ + .line 321 │ :cond_3 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->decoder:Landroid/graphics/BitmapRegionDecoder; │ │ if-nez v0, :cond_4 │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->info:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/bitmap/BitmapInfo;->gifDecoder:Lcom/koushikdutta/ion/gif/GifDecoder; │ │ if-nez v0, :cond_4 │ │ - .line 322 │ + .line 323 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonDrawable;->tryGetBitmapResource()Landroid/graphics/drawable/Drawable; │ │ - .line 323 │ + .line 324 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->bitmapDrawable:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v1, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ - .line 329 │ + .line 330 │ :goto_2 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_ERROR:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v2, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ goto :goto_1 │ │ - .line 327 │ + .line 328 │ :cond_4 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonDrawable;->NULL_BITMAPINFO:Landroid/graphics/drawable/Drawable; │ │ invoke-virtual {p0, v1, v0}, Lcom/koushikdutta/ion/IonDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z │ │ goto :goto_2 │ .end method ├── smali/com/koushikdutta/ion/IonImageViewRequestBuilder.smali │ @@ -217,59 +217,66 @@ │ :cond_1 │ invoke-static {p1}, Lcom/koushikdutta/ion/IonDrawable;->getOrCreateIonDrawable(Landroid/widget/ImageView;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ iget-object v5, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ + .line 96 │ invoke-virtual {v2, v5}, Lcom/koushikdutta/ion/IonDrawable;->ion(Lcom/koushikdutta/ion/Ion;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ + .line 97 │ invoke-virtual {v2, v0, p3}, Lcom/koushikdutta/ion/IonDrawable;->setBitmap(Lcom/koushikdutta/ion/bitmap/BitmapInfo;Lcom/koushikdutta/ion/ResponseServedFrom;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ + .line 98 │ invoke-virtual {v2, p2}, Lcom/koushikdutta/ion/IonDrawable;->setBitmapFetcher(Lcom/koushikdutta/ion/BitmapFetcher;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v5 │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->animateGifMode:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ sget-object v6, Lcom/koushikdutta/ion/builder/AnimateGifMode;->ANIMATE:Lcom/koushikdutta/ion/builder/AnimateGifMode; │ │ if-ne v2, v6, :cond_4 │ │ move v2, v3 │ │ + .line 99 │ :goto_0 │ invoke-virtual {v5, v2}, Lcom/koushikdutta/ion/IonDrawable;->setRepeatAnimation(Z)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ iget v5, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->resizeWidth:I │ │ iget v6, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->resizeHeight:I │ │ + .line 100 │ invoke-virtual {v2, v5, v6}, Lcom/koushikdutta/ion/IonDrawable;->setSize(II)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ iget v5, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->errorResource:I │ │ iget-object v6, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->errorDrawable:Landroid/graphics/drawable/Drawable; │ │ + .line 101 │ invoke-virtual {v2, v5, v6}, Lcom/koushikdutta/ion/IonDrawable;->setError(ILandroid/graphics/drawable/Drawable;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ iget v5, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->placeholderResource:I │ │ iget-object v6, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->placeholderDrawable:Landroid/graphics/drawable/Drawable; │ │ + .line 102 │ invoke-virtual {v2, v5, v6}, Lcom/koushikdutta/ion/IonDrawable;->setPlaceholder(ILandroid/graphics/drawable/Drawable;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ iget-boolean v5, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->fadeIn:Z │ │ if-nez v5, :cond_2 │ @@ -277,25 +284,28 @@ │ iget-boolean v5, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->crossfade:Z │ │ if-eqz v5, :cond_3 │ │ :cond_2 │ move v4, v3 │ │ + .line 103 │ :cond_3 │ invoke-virtual {v2, v4}, Lcom/koushikdutta/ion/IonDrawable;->setFadeIn(Z)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->bitmapDrawableFactory:Lcom/koushikdutta/ion/BitmapDrawableFactory; │ │ + .line 104 │ invoke-virtual {v2, v3}, Lcom/koushikdutta/ion/IonDrawable;->setBitmapDrawableFactory(Lcom/koushikdutta/ion/BitmapDrawableFactory;)Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v2 │ │ + .line 105 │ invoke-virtual {v2}, Lcom/koushikdutta/ion/IonDrawable;->updateLayers()Lcom/koushikdutta/ion/IonDrawable; │ │ move-result-object v1 │ │ .line 106 │ .local v1, "ret":Lcom/koushikdutta/ion/IonDrawable; │ invoke-virtual {p1, v1}, Landroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V │ @@ -303,15 +313,15 @@ │ .line 107 │ return-object v1 │ │ .end local v1 # "ret":Lcom/koushikdutta/ion/IonDrawable; │ :cond_4 │ move v2, v4 │ │ - .line 95 │ + .line 98 │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method public bridge synthetic addDefaultTransform()V │ .locals 0 │ @@ -983,20 +993,22 @@ │ │ move-result-object v6 │ │ iget-object v7, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->inAnimation:Landroid/view/animation/Animation; │ │ iget v8, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->inAnimationResource:I │ │ + .line 172 │ invoke-virtual {v6, v7, v8}, Lcom/koushikdutta/ion/ImageViewFutureImpl;->setInAnimation(Landroid/view/animation/Animation;I)Lcom/koushikdutta/ion/ImageViewFutureImpl; │ │ move-result-object v6 │ │ iget-object v7, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ + .line 173 │ invoke-virtual {v6, v7}, Lcom/koushikdutta/ion/ImageViewFutureImpl;->setScaleMode(Lcom/koushikdutta/ion/ScaleMode;)Lcom/koushikdutta/ion/ImageViewFutureImpl; │ │ move-result-object v2 │ │ .line 174 │ .local v2, "imageViewFuture":Lcom/koushikdutta/ion/ImageViewFutureImpl; │ iget-object v6, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ @@ -1048,20 +1060,22 @@ │ │ move-result-object v6 │ │ iget-object v7, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->inAnimation:Landroid/view/animation/Animation; │ │ iget v8, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->inAnimationResource:I │ │ + .line 183 │ invoke-virtual {v6, v7, v8}, Lcom/koushikdutta/ion/ImageViewFutureImpl;->setInAnimation(Landroid/view/animation/Animation;I)Lcom/koushikdutta/ion/ImageViewFutureImpl; │ │ move-result-object v6 │ │ iget-object v7, p0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->scaleMode:Lcom/koushikdutta/ion/ScaleMode; │ │ + .line 184 │ invoke-virtual {v6, v7}, Lcom/koushikdutta/ion/ImageViewFutureImpl;->setScaleMode(Lcom/koushikdutta/ion/ScaleMode;)Lcom/koushikdutta/ion/ImageViewFutureImpl; │ │ move-result-object v2 │ │ .line 185 │ .restart local v2 # "imageViewFuture":Lcom/koushikdutta/ion/ImageViewFutureImpl; │ invoke-virtual {v2}, Lcom/koushikdutta/ion/ImageViewFutureImpl;->reset()Lcom/koushikdutta/async/future/SimpleFuture; │ @@ -1211,14 +1225,24 @@ │ invoke-super {p0, p1}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->postProcess(Lcom/koushikdutta/ion/bitmap/PostProcess;)Lcom/koushikdutta/ion/IonBitmapRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ +.method public bridge synthetic removeCachedBitmap()V │ + .locals 0 │ + │ + .prologue │ + .line 22 │ + invoke-super {p0}, Lcom/koushikdutta/ion/IonBitmapRequestBuilder;->removeCachedBitmap()V │ + │ + return-void │ +.end method │ + │ .method reset()V │ .locals 3 │ │ .prologue │ const/4 v2, 0x0 │ │ const/4 v1, 0x0 ├── smali/com/koushikdutta/ion/IonRequestBuilder$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$value:Ljava/lang/Object; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ .line 230 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$1;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$1;->val$future:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; ├── smali/com/koushikdutta/ion/IonRequestBuilder$2$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$total:J │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$2;JJ)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$2; │ │ .prologue │ .line 332 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$2$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$2; │ │ iput-wide p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$2$1;->val$downloaded:J ├── smali/com/koushikdutta/ion/IonRequestBuilder$2.smali │ @@ -52,14 +52,15 @@ │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ .line 315 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$2;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$2;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; ├── smali/com/koushikdutta/ion/IonRequestBuilder$3.smali │ @@ -1,100 +1,97 @@ │ .class Lcom/koushikdutta/ion/IonRequestBuilder$3; │ .super Ljava/lang/Object; │ .source "IonRequestBuilder.java" │ │ # interfaces │ -.implements Lcom/koushikdutta/async/future/FutureCallback; │ +.implements Ljava/lang/Runnable; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/ion/IonRequestBuilder;->resolveAndLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ + value = Lcom/koushikdutta/ion/IonRequestBuilder;->recursiveResolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Lcom/koushikdutta/async/future/Future; │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ -.annotation system Ldalvik/annotation/Signature; │ - value = { │ - "Ljava/lang/Object;", │ - "Lcom/koushikdutta/async/future/FutureCallback", │ - "<", │ - "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ - ">;" │ - } │ -.end annotation │ - │ │ # instance fields │ +.field inRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ +.field runner:Ljava/lang/Runnable; │ + │ .field final synthetic this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ -.field final synthetic val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ +.field final synthetic val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ +.field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ - .locals 0 │ +.method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/future/SimpleFuture;)V │ + .locals 1 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ .line 353 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ + iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ + iput-object p3, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ + .line 354 │ + iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ + iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->inRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ + .line 355 │ + iput-object p0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->runner:Ljava/lang/Runnable; │ + │ return-void │ .end method │ │ │ # virtual methods │ -.method public onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ - .locals 2 │ - .param p1, "e" # Ljava/lang/Exception; │ - .param p2, "result" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ +.method public run()V │ + .locals 3 │ │ .prologue │ - .line 356 │ - if-eqz p1, :cond_0 │ + .line 359 │ + iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 357 │ - iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ + iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->inRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - invoke-virtual {v0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->setComplete(Ljava/lang/Exception;)Z │ + invoke-virtual {v1, v2}, Lcom/koushikdutta/ion/IonRequestBuilder;->resolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Lcom/koushikdutta/async/future/Future; │ │ - .line 362 │ - :goto_0 │ - return-void │ + move-result-object v0 │ │ .line 360 │ - :cond_0 │ - iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ - │ - iput-object p2, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->finalRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + .local v0, "resolved":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ + if-nez v0, :cond_0 │ │ .line 361 │ - iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ + iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ - iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ + iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$3;->inRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - invoke-virtual {v0, p2, v1}, Lcom/koushikdutta/ion/IonRequestBuilder;->resolveAndLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ + invoke-virtual {v1, v2}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Object;)Z │ │ - goto :goto_0 │ -.end method │ + .line 375 │ + :goto_0 │ + return-void │ │ -.method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ - .locals 0 │ - .param p1, "x0" # Ljava/lang/Exception; │ - .param p2, "x1" # Ljava/lang/Object; │ + .line 364 │ + :cond_0 │ + new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$3$1; │ │ - .prologue │ - .line 353 │ - check-cast p2, Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + invoke-direct {v1, p0}, Lcom/koushikdutta/ion/IonRequestBuilder$3$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$3;)V │ │ - .end local p2 # "x1":Ljava/lang/Object; │ - invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$3;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ + invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ - return-void │ + goto :goto_0 │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$4.smali │ @@ -1,62 +1,134 @@ │ .class Lcom/koushikdutta/ion/IonRequestBuilder$4; │ .super Ljava/lang/Object; │ .source "IonRequestBuilder.java" │ │ # interfaces │ -.implements Ljava/lang/Runnable; │ +.implements Lcom/koushikdutta/async/future/FutureCallback; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ value = Lcom/koushikdutta/ion/IonRequestBuilder;->resolveAndLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ +.annotation system Ldalvik/annotation/Signature; │ + value = { │ + "Ljava/lang/Object;", │ + "Lcom/koushikdutta/async/future/FutureCallback", │ + "<", │ + "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ + ">;" │ + } │ +.end annotation │ + │ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .field final synthetic val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .field final synthetic val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ +.method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ - .line 367 │ + .line 383 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ - iput-object p3, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ + iput-object p3, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public run()V │ +.method public onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ .locals 3 │ + .param p1, "e" # Ljava/lang/Exception; │ + .param p2, "result" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ .prologue │ - .line 370 │ + .line 386 │ + if-eqz p1, :cond_0 │ + │ + .line 387 │ + iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ + │ + invoke-virtual {v0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->setComplete(Ljava/lang/Exception;)Z │ + │ + .line 402 │ + :goto_0 │ + return-void │ + │ + .line 390 │ + :cond_0 │ + iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ + │ + iput-object p2, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->finalRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ + .line 392 │ + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; │ + │ + move-result-object v0 │ + │ + invoke-virtual {v0}, Landroid/os/Looper;->getThread()Ljava/lang/Thread; │ + │ + move-result-object v0 │ + │ + invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ + │ + move-result-object v1 │ + │ + if-eq v0, v1, :cond_1 │ + │ + .line 393 │ + sget-object v0, Lcom/koushikdutta/ion/Ion;->mainHandler:Landroid/os/Handler; │ + │ + new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$4$1; │ + │ + invoke-direct {v1, p0}, Lcom/koushikdutta/ion/IonRequestBuilder$4$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$4;)V │ + │ + invoke-static {v0, v1}, Lcom/koushikdutta/async/AsyncServer;->post(Landroid/os/Handler;Ljava/lang/Runnable;)V │ + │ + goto :goto_0 │ + │ + .line 401 │ + :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$4;->val$ret:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/ion/IonRequestBuilder;->invokeLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ │ - .line 371 │ + goto :goto_0 │ +.end method │ + │ +.method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ + .locals 0 │ + .param p1, "x0" # Ljava/lang/Exception; │ + .param p2, "x1" # Ljava/lang/Object; │ + │ + .prologue │ + .line 383 │ + check-cast p2, Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + │ + .end local p2 # "x1":Ljava/lang/Object; │ + invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$4;->onCompleted(Ljava/lang/Exception;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ + │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$5$1.smali │ @@ -20,32 +20,33 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$5;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ .prologue │ - .line 593 │ + .line 621 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onCompleted(Ljava/lang/Exception;)V │ .locals 3 │ .param p1, "ex" # Ljava/lang/Exception; │ │ .prologue │ - .line 596 │ + .line 624 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/IonRequestBuilder$5;->self:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ @@ -53,10 +54,10 @@ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$result:Ljava/lang/Object; │ │ # invokes: Lcom/koushikdutta/ion/IonRequestBuilder;->postExecute(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static {v0, v1, p1, v2}, Lcom/koushikdutta/ion/IonRequestBuilder;->access$000(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 597 │ + .line 625 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$5.smali │ @@ -39,97 +39,98 @@ │ │ .field final synthetic val$sink:Lcom/koushikdutta/async/DataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;ZLcom/koushikdutta/async/DataSink;Ljava/lang/Object;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ .param p2, "x0" # Ljava/lang/Runnable; │ │ .prologue │ - .line 581 │ + .line 609 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iput-boolean p3, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$close:Z │ │ iput-object p4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$sink:Lcom/koushikdutta/async/DataSink; │ │ iput-object p5, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$result:Ljava/lang/Object; │ │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->(Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;)V │ │ - .line 589 │ + .line 617 │ iput-object p0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->self:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ return-void │ .end method │ │ │ # virtual methods │ .method protected cleanup()V │ .locals 1 │ │ .prologue │ - .line 584 │ + .line 612 │ invoke-super {p0}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->cleanup()V │ │ - .line 585 │ + .line 613 │ iget-boolean v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$close:Z │ │ if-eqz v0, :cond_0 │ │ - .line 586 │ + .line 614 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$sink:Lcom/koushikdutta/async/DataSink; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/DataSink;->end()V │ │ - .line 587 │ + .line 615 │ :cond_0 │ return-void │ .end method │ │ .method protected transform(Lcom/koushikdutta/ion/Loader$LoaderEmitter;)V │ .locals 3 │ .param p1, "emitter" # Lcom/koushikdutta/ion/Loader$LoaderEmitter; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 592 │ + .line 620 │ invoke-super {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->transform(Lcom/koushikdutta/ion/Loader$LoaderEmitter;)V │ │ - .line 593 │ + .line 621 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$5;->val$sink:Lcom/koushikdutta/async/DataSink; │ │ new-instance v2, Lcom/koushikdutta/ion/IonRequestBuilder$5$1; │ │ invoke-direct {v2, p0}, Lcom/koushikdutta/ion/IonRequestBuilder$5$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$5;)V │ │ invoke-static {v0, v1, v2}, Lcom/koushikdutta/async/Util;->pump(Lcom/koushikdutta/async/DataEmitter;Lcom/koushikdutta/async/DataSink;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 599 │ + .line 627 │ return-void │ .end method │ │ .method protected bridge synthetic transform(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 581 │ + .line 609 │ check-cast p1, Lcom/koushikdutta/ion/Loader$LoaderEmitter; │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$5;->transform(Lcom/koushikdutta/ion/Loader$LoaderEmitter;)V │ │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$6$1.smali │ @@ -28,17 +28,18 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/IonRequestBuilder$6; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$6;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$6; │ │ .prologue │ - .line 630 │ + .line 658 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$6; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ @@ -52,23 +53,23 @@ │ "(", │ "Ljava/lang/Exception;", │ "TT;)V" │ } │ .end annotation │ │ .prologue │ - .line 633 │ + .line 661 │ .local p2, "result":Ljava/lang/Object;, "TT;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$6; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$6;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$6; │ │ iget-object v1, v1, Lcom/koushikdutta/ion/IonRequestBuilder$6;->self:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ # invokes: Lcom/koushikdutta/ion/IonRequestBuilder;->postExecute(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static {v0, v1, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder;->access$000(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 634 │ + .line 662 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$6.smali │ @@ -35,25 +35,26 @@ │ │ .field final synthetic val$parser:Lcom/koushikdutta/async/parser/AsyncParser; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;Lcom/koushikdutta/async/parser/AsyncParser;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ .param p2, "x0" # Ljava/lang/Runnable; │ │ .prologue │ - .line 625 │ + .line 653 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iput-object p3, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6;->val$parser:Lcom/koushikdutta/async/parser/AsyncParser; │ │ invoke-direct {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->(Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;)V │ │ - .line 626 │ + .line 654 │ iput-object p0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6;->self:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ return-void │ .end method │ │ │ # virtual methods │ @@ -63,47 +64,47 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 629 │ + .line 657 │ invoke-super {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->transform(Lcom/koushikdutta/ion/Loader$LoaderEmitter;)V │ │ - .line 630 │ + .line 658 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6;->val$parser:Lcom/koushikdutta/async/parser/AsyncParser; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$6;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/parser/AsyncParser;->parse(Lcom/koushikdutta/async/DataEmitter;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$6$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/ion/IonRequestBuilder$6$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$6;)V │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ - .line 636 │ + .line 664 │ return-void │ .end method │ │ .method protected bridge synthetic transform(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 625 │ + .line 653 │ check-cast p1, Lcom/koushikdutta/ion/Loader$LoaderEmitter; │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$6;->transform(Lcom/koushikdutta/ion/Loader$LoaderEmitter;)V │ │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$7$1.smali │ @@ -26,17 +26,18 @@ │ # instance fields │ .field final synthetic this$1:Lcom/koushikdutta/ion/IonRequestBuilder$7; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$7;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$7; │ │ .prologue │ - .line 685 │ + .line 713 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$7$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$7; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V │ │ return-void │ .end method │ │ @@ -48,36 +49,36 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 688 │ + .line 716 │ invoke-virtual {p1}, Lcom/koushikdutta/async/ByteBufferList;->getAllByteArray()[B │ │ move-result-object v0 │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder$7$1;->setComplete(Ljava/lang/Object;)Z │ │ - .line 689 │ + .line 717 │ return-void │ .end method │ │ .method protected bridge synthetic transform(Ljava/lang/Object;)V │ .locals 0 │ .param p1, "x0" # Ljava/lang/Object; │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 685 │ + .line 713 │ check-cast p1, Lcom/koushikdutta/async/ByteBufferList; │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$7$1;->transform(Lcom/koushikdutta/async/ByteBufferList;)V │ │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$7.smali │ @@ -28,31 +28,32 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ - .line 681 │ + .line 709 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$7;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public getType()Ljava/lang/reflect/Type; │ .locals 1 │ │ .prologue │ - .line 700 │ + .line 728 │ const-class v0, [B │ │ return-object v0 │ .end method │ │ .method public parse(Lcom/koushikdutta/async/DataEmitter;)Lcom/koushikdutta/async/future/Future; │ .locals 2 │ @@ -64,27 +65,28 @@ │ ")", │ "Lcom/koushikdutta/async/future/Future", │ "<[B>;" │ } │ .end annotation │ │ .prologue │ - .line 684 │ + .line 712 │ new-instance v0, Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/ByteBufferListParser;->()V │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/parser/ByteBufferListParser;->parse(Lcom/koushikdutta/async/DataEmitter;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$7$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/ion/IonRequestBuilder$7$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$7;)V │ │ + .line 713 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 │ @@ -93,15 +95,15 @@ │ .method public bridge synthetic write(Lcom/koushikdutta/async/DataSink;Ljava/lang/Object;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 0 │ .param p1, "x0" # Lcom/koushikdutta/async/DataSink; │ .param p2, "x1" # Ljava/lang/Object; │ .param p3, "x2" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 681 │ + .line 709 │ check-cast p2, [B │ │ .end local p2 # "x1":Ljava/lang/Object; │ invoke-virtual {p0, p1, p2, p3}, Lcom/koushikdutta/ion/IonRequestBuilder$7;->write(Lcom/koushikdutta/async/DataSink;[BLcom/koushikdutta/async/callback/CompletedCallback;)V │ │ return-void │ .end method │ @@ -109,21 +111,21 @@ │ .method public write(Lcom/koushikdutta/async/DataSink;[BLcom/koushikdutta/async/callback/CompletedCallback;)V │ .locals 2 │ .param p1, "sink" # Lcom/koushikdutta/async/DataSink; │ .param p2, "value" # [B │ .param p3, "completed" # Lcom/koushikdutta/async/callback/CompletedCallback; │ │ .prologue │ - .line 695 │ + .line 723 │ new-instance v0, Lcom/koushikdutta/async/parser/ByteBufferListParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/ByteBufferListParser;->()V │ │ new-instance v1, Lcom/koushikdutta/async/ByteBufferList; │ │ invoke-direct {v1, p2}, Lcom/koushikdutta/async/ByteBufferList;->([B)V │ │ invoke-virtual {v0, p1, v1, p3}, Lcom/koushikdutta/async/parser/ByteBufferListParser;->write(Lcom/koushikdutta/async/DataSink;Lcom/koushikdutta/async/ByteBufferList;Lcom/koushikdutta/async/callback/CompletedCallback;)V │ │ - .line 696 │ + .line 724 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$8.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$file:Ljava/io/File; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/io/File;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ │ .prologue │ - .line 732 │ + .line 760 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$8;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$8;->val$file:Ljava/io/File; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ @@ -40,15 +41,15 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 1 │ │ .prologue │ - .line 735 │ + .line 763 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$8;->val$file:Ljava/io/File; │ │ invoke-virtual {v0}, Ljava/io/File;->delete()Z │ │ - .line 736 │ + .line 764 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1.smali │ @@ -30,17 +30,18 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ .prologue │ - .line 424 │ + .line 452 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform.1;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -57,39 +58,39 @@ │ "(", │ "Ljava/lang/Exception;", │ "TT;)V" │ } │ .end annotation │ │ .prologue │ - .line 427 │ + .line 455 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform.1;" │ .local p2, "result":Ljava/lang/Object;, "TT;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ if-eqz v0, :cond_0 │ │ - .line 428 │ + .line 456 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ invoke-virtual {v1, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->getResponse(Ljava/lang/Exception;Ljava/lang/Object;)Lcom/koushikdutta/ion/Response; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Object;)Z │ │ - .line 432 │ + .line 460 │ :goto_0 │ return-void │ │ - .line 431 │ + .line 459 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ const/4 v1, 0x0 │ │ invoke-virtual {v0, p1, v1}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;Ljava/lang/Object;)Z ├── smali/com/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$headers:Lcom/koushikdutta/ion/HeadersResponse; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Lcom/koushikdutta/ion/HeadersResponse;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ .prologue │ - .line 475 │ + .line 503 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform.2;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;->val$headers:Lcom/koushikdutta/ion/HeadersResponse; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -41,22 +42,22 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 2 │ │ .prologue │ - .line 478 │ + .line 506 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform.2;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder;->headersCallback:Lcom/koushikdutta/ion/HeadersCallback; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;->val$headers:Lcom/koushikdutta/ion/HeadersResponse; │ │ invoke-interface {v0, v1}, Lcom/koushikdutta/ion/HeadersCallback;->onHeaders(Lcom/koushikdutta/ion/HeadersResponse;)V │ │ - .line 479 │ + .line 507 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$percent:I │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;I)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ .prologue │ - .line 510 │ + .line 538 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3.1;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iput p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->val$percent:I │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -41,85 +42,85 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 513 │ + .line 541 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3.1;" │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progressBar:Ljava/lang/ref/WeakReference; │ │ if-eqz v2, :cond_0 │ │ - .line 514 │ + .line 542 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progressBar:Ljava/lang/ref/WeakReference; │ │ invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/widget/ProgressBar; │ │ - .line 515 │ + .line 543 │ .local v0, "bar":Landroid/widget/ProgressBar; │ if-eqz v0, :cond_0 │ │ - .line 516 │ + .line 544 │ iget v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->val$percent:I │ │ invoke-virtual {v0, v2}, Landroid/widget/ProgressBar;->setProgress(I)V │ │ - .line 518 │ + .line 546 │ .end local v0 # "bar":Landroid/widget/ProgressBar; │ :cond_0 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progressDialog:Ljava/lang/ref/WeakReference; │ │ if-eqz v2, :cond_1 │ │ - .line 519 │ + .line 547 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progressDialog:Ljava/lang/ref/WeakReference; │ │ invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/app/ProgressDialog; │ │ - .line 520 │ + .line 548 │ .local v1, "dlg":Landroid/app/ProgressDialog; │ if-eqz v1, :cond_1 │ │ - .line 521 │ + .line 549 │ iget v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->val$percent:I │ │ invoke-virtual {v1, v2}, Landroid/app/ProgressDialog;->setProgress(I)V │ │ - .line 523 │ + .line 551 │ .end local v1 # "dlg":Landroid/app/ProgressDialog; │ :cond_1 │ return-void │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3.smali │ @@ -30,15 +30,15 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 1 │ │ .prologue │ - .line 494 │ + .line 522 │ const-class v0, Lcom/koushikdutta/ion/IonRequestBuilder; │ │ invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -54,17 +54,18 @@ │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;J)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ .prologue │ - .line 494 │ + .line 522 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform.3;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iput-wide p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->val$total:J │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -74,15 +75,15 @@ │ │ # virtual methods │ .method public onData(I)V │ .locals 8 │ .param p1, "totalBytesRead" # I │ │ .prologue │ - .line 498 │ + .line 526 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform.3;" │ sget-boolean v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->$assertionsDisabled:Z │ │ if-nez v2, :cond_0 │ │ invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ │ @@ -100,50 +101,50 @@ │ │ new-instance v2, Ljava/lang/AssertionError; │ │ invoke-direct {v2}, Ljava/lang/AssertionError;->()V │ │ throw v2 │ │ - .line 500 │ + .line 528 │ :cond_0 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->contextReference:Lcom/koushikdutta/ion/ContextReference; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/ContextReference;->isAlive()Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 501 │ + .line 529 │ .local v0, "deadReason":Ljava/lang/String; │ if-eqz v0, :cond_2 │ │ - .line 502 │ + .line 530 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->initialRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ const-string v3, "context has died, cancelling" │ │ invoke-virtual {v2, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logd(Ljava/lang/String;)V │ │ - .line 503 │ + .line 531 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ invoke-virtual {v2}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->cancelSilently()Z │ │ - .line 541 │ + .line 569 │ :cond_1 │ :goto_0 │ return-void │ │ - .line 507 │ + .line 535 │ :cond_2 │ int-to-float v2, p1 │ │ iget-wide v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->val$total:J │ │ long-to-float v3, v4 │ │ @@ -151,15 +152,15 @@ │ │ const/high16 v3, 0x42c80000 # 100.0f │ │ mul-float/2addr v2, v3 │ │ float-to-int v1, v2 │ │ - .line 509 │ + .line 537 │ .local v1, "percent":I │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progressBar:Ljava/lang/ref/WeakReference; │ │ @@ -174,60 +175,60 @@ │ if-eqz v2, :cond_4 │ │ :cond_3 │ iget v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->lastPercent:I │ │ if-eq v1, v2, :cond_4 │ │ - .line 510 │ + .line 538 │ sget-object v2, Lcom/koushikdutta/ion/Ion;->mainHandler:Landroid/os/Handler; │ │ new-instance v3, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1; │ │ invoke-direct {v3, p0, v1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;I)V │ │ invoke-static {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->post(Landroid/os/Handler;Ljava/lang/Runnable;)V │ │ - .line 526 │ + .line 554 │ :cond_4 │ iput v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->lastPercent:I │ │ - .line 528 │ + .line 556 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progress:Lcom/koushikdutta/ion/ProgressCallback; │ │ if-eqz v2, :cond_5 │ │ - .line 529 │ + .line 557 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progress:Lcom/koushikdutta/ion/ProgressCallback; │ │ int-to-long v4, p1 │ │ iget-wide v6, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->val$total:J │ │ invoke-interface {v2, v4, v5, v6, v7}, Lcom/koushikdutta/ion/ProgressCallback;->onProgress(JJ)V │ │ - .line 531 │ + .line 559 │ :cond_5 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v2, v2, Lcom/koushikdutta/ion/IonRequestBuilder;->progressHandler:Lcom/koushikdutta/ion/ProgressCallback; │ │ if-eqz v2, :cond_1 │ │ - .line 532 │ + .line 560 │ sget-object v2, Lcom/koushikdutta/ion/Ion;->mainHandler:Landroid/os/Handler; │ │ new-instance v3, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2; │ │ invoke-direct {v3, p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;->(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;I)V │ │ invoke-static {v2, v3}, Lcom/koushikdutta/async/AsyncServer;->post(Landroid/os/Handler;Ljava/lang/Runnable;)V ├── smali/com/koushikdutta/ion/IonRequestBuilder$EmitterTransform.smali │ @@ -46,47 +46,48 @@ │ │ .field final synthetic this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ │ # direct methods │ .method public constructor (Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;)V │ .locals 5 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/IonRequestBuilder; │ .param p2, "cancelCallback" # Ljava/lang/Runnable; │ │ .prologue │ - .line 438 │ + .line 466 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V │ │ - .line 439 │ + .line 467 │ iput-object p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->cancelCallback:Ljava/lang/Runnable; │ │ - .line 440 │ + .line 468 │ iget-object v3, p1, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v4, p1, Lcom/koushikdutta/ion/IonRequestBuilder;->contextReference:Lcom/koushikdutta/ion/ContextReference; │ │ invoke-virtual {v4}, Lcom/koushikdutta/ion/ContextReference;->getContext()Landroid/content/Context; │ │ move-result-object v4 │ │ invoke-virtual {v3, p0, v4}, Lcom/koushikdutta/ion/Ion;->addFutureInFlight(Lcom/koushikdutta/async/future/Future;Ljava/lang/Object;)V │ │ - .line 441 │ + .line 469 │ iget-object v3, p1, Lcom/koushikdutta/ion/IonRequestBuilder;->groups:Ljava/util/ArrayList; │ │ if-nez v3, :cond_1 │ │ - .line 448 │ + .line 476 │ :cond_0 │ return-void │ │ - .line 443 │ + .line 471 │ :cond_1 │ iget-object v3, p1, Lcom/koushikdutta/ion/IonRequestBuilder;->groups:Ljava/util/ArrayList; │ │ invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ @@ -101,83 +102,83 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/ref/WeakReference; │ │ - .line 444 │ + .line 472 │ .local v2, "ref":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference;" │ invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; │ │ move-result-object v0 │ │ - .line 445 │ + .line 473 │ .local v0, "group":Ljava/lang/Object; │ if-eqz v0, :cond_2 │ │ - .line 446 │ + .line 474 │ iget-object v3, p1, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v3, p0, v0}, Lcom/koushikdutta/ion/Ion;->addFutureInFlight(Lcom/koushikdutta/async/future/Future;Ljava/lang/Object;)V │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ .method protected cancelCleanup()V │ .locals 1 │ │ .prologue │ - .line 452 │ + .line 480 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ invoke-super {p0}, Lcom/koushikdutta/async/future/TransformFuture;->cancelCleanup()V │ │ - .line 453 │ + .line 481 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ if-eqz v0, :cond_0 │ │ - .line 454 │ + .line 482 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-interface {v0}, Lcom/koushikdutta/async/DataEmitter;->close()V │ │ - .line 455 │ + .line 483 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->cancelCallback:Ljava/lang/Runnable; │ │ if-eqz v0, :cond_1 │ │ - .line 456 │ + .line 484 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->cancelCallback:Ljava/lang/Runnable; │ │ invoke-interface {v0}, Ljava/lang/Runnable;->run()V │ │ - .line 457 │ + .line 485 │ :cond_1 │ return-void │ .end method │ │ .method protected error(Ljava/lang/Exception;)V │ .locals 2 │ .param p1, "e" # Ljava/lang/Exception; │ │ .prologue │ - .line 462 │ + .line 490 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ const/4 v1, 0x0 │ │ # invokes: Lcom/koushikdutta/ion/IonRequestBuilder;->postExecute(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ invoke-static {v0, p0, p1, v1}, Lcom/koushikdutta/ion/IonRequestBuilder;->access$000(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Ljava/lang/Exception;Ljava/lang/Object;)V │ │ - .line 463 │ + .line 491 │ return-void │ .end method │ │ .method public getResponse(Ljava/lang/Exception;Ljava/lang/Object;)Lcom/koushikdutta/ion/Response; │ .locals 6 │ .param p1, "e" # Ljava/lang/Exception; │ .annotation system Ldalvik/annotation/Signature; │ @@ -187,15 +188,15 @@ │ "TT;)", │ "Lcom/koushikdutta/ion/Response", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 418 │ + .line 446 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ .local p2, "result":Ljava/lang/Object;, "TT;" │ new-instance v0, Lcom/koushikdutta/ion/Response; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->finalRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->servedFrom:Lcom/koushikdutta/ion/ResponseServedFrom; │ @@ -217,108 +218,108 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 467 │ + .line 495 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Loader$LoaderEmitter;->getDataEmitter()Lcom/koushikdutta/async/DataEmitter; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 468 │ + .line 496 │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Loader$LoaderEmitter;->getServedFrom()Lcom/koushikdutta/ion/ResponseServedFrom; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->servedFrom:Lcom/koushikdutta/ion/ResponseServedFrom; │ │ - .line 469 │ + .line 497 │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Loader$LoaderEmitter;->getHeaders()Lcom/koushikdutta/ion/HeadersResponse; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->headers:Lcom/koushikdutta/ion/HeadersResponse; │ │ - .line 470 │ + .line 498 │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Loader$LoaderEmitter;->getRequest()Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->finalRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - .line 472 │ + .line 500 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/IonRequestBuilder;->headersCallback:Lcom/koushikdutta/ion/HeadersCallback; │ │ if-eqz v4, :cond_0 │ │ - .line 473 │ + .line 501 │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Loader$LoaderEmitter;->getHeaders()Lcom/koushikdutta/ion/HeadersResponse; │ │ move-result-object v0 │ │ - .line 475 │ + .line 503 │ .local v0, "headers":Lcom/koushikdutta/ion/HeadersResponse; │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; │ │ iget-object v4, v4, Lcom/koushikdutta/ion/IonRequestBuilder;->handler:Landroid/os/Handler; │ │ new-instance v5, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2; │ │ invoke-direct {v5, p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$2;->(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Lcom/koushikdutta/ion/HeadersResponse;)V │ │ invoke-static {v4, v5}, Lcom/koushikdutta/async/AsyncServer;->post(Landroid/os/Handler;Ljava/lang/Runnable;)V │ │ - .line 484 │ + .line 512 │ .end local v0 # "headers":Lcom/koushikdutta/ion/HeadersResponse; │ :cond_0 │ invoke-virtual {p1}, Lcom/koushikdutta/ion/Loader$LoaderEmitter;->length()J │ │ move-result-wide v2 │ │ - .line 486 │ + .line 514 │ .local v2, "total":J │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ instance-of v4, v4, Lcom/koushikdutta/async/DataTrackingEmitter; │ │ if-nez v4, :cond_1 │ │ - .line 487 │ + .line 515 │ new-instance v1, Lcom/koushikdutta/async/FilteredDataEmitter; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/FilteredDataEmitter;->()V │ │ - .line 488 │ + .line 516 │ .local v1, "tracker":Lcom/koushikdutta/async/DataTrackingEmitter; │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ invoke-interface {v1, v4}, Lcom/koushikdutta/async/DataTrackingEmitter;->setDataEmitter(Lcom/koushikdutta/async/DataEmitter;)V │ │ - .line 493 │ + .line 521 │ :goto_0 │ iput-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ - .line 494 │ + .line 522 │ new-instance v4, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ invoke-direct {v4, p0, v2, v3}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;J)V │ │ invoke-interface {v1, v4}, Lcom/koushikdutta/async/DataTrackingEmitter;->setDataTracker(Lcom/koushikdutta/async/DataTrackingEmitter$DataTracker;)V │ │ - .line 543 │ + .line 571 │ return-void │ │ - .line 491 │ + .line 519 │ .end local v1 # "tracker":Lcom/koushikdutta/async/DataTrackingEmitter; │ :cond_1 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->emitter:Lcom/koushikdutta/async/DataEmitter; │ │ check-cast v1, Lcom/koushikdutta/async/DataTrackingEmitter; │ │ .restart local v1 # "tracker":Lcom/koushikdutta/async/DataTrackingEmitter; │ @@ -331,15 +332,15 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Ljava/lang/Exception; │ } │ .end annotation │ │ .prologue │ - .line 409 │ + .line 437 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ check-cast p1, Lcom/koushikdutta/ion/Loader$LoaderEmitter; │ │ .end local p1 # "x0":Ljava/lang/Object; │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->transform(Lcom/koushikdutta/ion/Loader$LoaderEmitter;)V │ │ return-void │ @@ -354,27 +355,27 @@ │ "<", │ "Lcom/koushikdutta/ion/Response", │ ";>;" │ } │ .end annotation │ │ .prologue │ - .line 423 │ + .line 451 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ new-instance v0, Lcom/koushikdutta/async/future/SimpleFuture; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ - .line 424 │ + .line 452 │ .local v0, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;>;" │ new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1; │ │ invoke-direct {v1, p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$1;->(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Lcom/koushikdutta/async/future/SimpleFuture;)V │ │ invoke-virtual {p0, v1}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 434 │ + .line 462 │ invoke-virtual {v0, p0}, Lcom/koushikdutta/async/future/SimpleFuture;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 435 │ + .line 463 │ return-object v0 │ .end method ├── smali/com/koushikdutta/ion/IonRequestBuilder.smali │ @@ -653,14 +653,15 @@ │ │ .line 263 │ .local v6, "value":Ljava/lang/String; │ invoke-virtual {v0, v4, v6}, Landroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v0 │ │ + .line 264 │ goto :goto_0 │ │ .line 266 │ .end local v3 # "i$":Ljava/util/Iterator; │ .end local v4 # "key":Ljava/lang/String; │ .end local v6 # "value":Ljava/lang/String; │ :cond_1 │ @@ -885,33 +886,33 @@ │ "Lcom/koushikdutta/async/http/body/Part;", │ ">;)", │ "Lcom/koushikdutta/ion/IonRequestBuilder;" │ } │ .end annotation │ │ .prologue │ - .line 810 │ + .line 838 │ .local p1, "parameters":Ljava/lang/Iterable;, "Ljava/lang/Iterable;" │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ if-nez v2, :cond_0 │ │ - .line 811 │ + .line 839 │ new-instance v2, Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {v2}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->()V │ │ iput-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ - .line 812 │ + .line 840 │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {p0, v2}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 815 │ + .line 843 │ :cond_0 │ invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ │ .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ @@ -923,51 +924,51 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/http/body/Part; │ │ - .line 816 │ + .line 844 │ .local v1, "part":Lcom/koushikdutta/async/http/body/Part; │ iget-object v2, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-virtual {v2, v1}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->addPart(Lcom/koushikdutta/async/http/body/Part;)V │ │ goto :goto_0 │ │ - .line 818 │ + .line 846 │ .end local v1 # "part":Lcom/koushikdutta/async/http/body/Part; │ :cond_1 │ return-object p0 │ .end method │ │ .method public varargs addMultipartParts([Lcom/koushikdutta/async/http/body/Part;)Lcom/koushikdutta/ion/builder/Builders$Any$M; │ .locals 5 │ .param p1, "parameters" # [Lcom/koushikdutta/async/http/body/Part; │ │ .prologue │ - .line 823 │ + .line 851 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ if-nez v4, :cond_0 │ │ - .line 824 │ + .line 852 │ new-instance v4, Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {v4}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->()V │ │ iput-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ - .line 825 │ + .line 853 │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {p0, v4}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 828 │ + .line 856 │ :cond_0 │ move-object v0, p1 │ │ .local v0, "arr$":[Lcom/koushikdutta/async/http/body/Part; │ array-length v2, v0 │ │ .local v2, "len$":I │ @@ -975,26 +976,26 @@ │ │ .local v1, "i$":I │ :goto_0 │ if-ge v1, v2, :cond_1 │ │ aget-object v3, v0, v1 │ │ - .line 829 │ + .line 857 │ .local v3, "part":Lcom/koushikdutta/async/http/body/Part; │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-virtual {v4, v3}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->addPart(Lcom/koushikdutta/async/http/body/Part;)V │ │ - .line 828 │ + .line 856 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ - .line 831 │ + .line 859 │ .end local v3 # "part":Lcom/koushikdutta/async/http/body/Part; │ :cond_1 │ return-object p0 │ .end method │ │ .method public bridge synthetic addMultipartParts(Ljava/lang/Iterable;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ .locals 1 │ @@ -1135,15 +1136,15 @@ │ ";)", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 891 │ + .line 924 │ .local p1, "token":Lcom/google/gson/reflect/TypeToken;, "Lcom/google/gson/reflect/TypeToken;" │ new-instance v0, Lcom/koushikdutta/ion/gson/GsonSerializer; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->configure()Lcom/koushikdutta/ion/Ion$Config; │ │ @@ -1173,15 +1174,15 @@ │ ";)", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 717 │ + .line 745 │ .local p1, "parser":Lcom/koushikdutta/async/parser/AsyncParser;, "Lcom/koushikdutta/async/parser/AsyncParser;" │ invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ @@ -1197,15 +1198,15 @@ │ ";)", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 886 │ + .line 919 │ .local p1, "clazz":Ljava/lang/Class;, "Ljava/lang/Class;" │ new-instance v0, Lcom/koushikdutta/ion/gson/GsonSerializer; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->configure()Lcom/koushikdutta/ion/Ion$Config; │ │ @@ -1233,15 +1234,15 @@ │ "<", │ "Landroid/graphics/Bitmap;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 872 │ + .line 905 │ new-instance v0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->asBitmap()Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ @@ -1256,15 +1257,15 @@ │ "()", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ "<[B>;" │ } │ .end annotation │ │ .prologue │ - .line 681 │ + .line 709 │ new-instance v0, Lcom/koushikdutta/ion/IonRequestBuilder$7; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonRequestBuilder$7;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1272,15 +1273,15 @@ │ return-object v0 │ .end method │ │ .method public asCachedBitmap()Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ .locals 1 │ │ .prologue │ - .line 862 │ + .line 890 │ new-instance v0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->asCachedBitmap()Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ move-result-object v0 │ @@ -1297,15 +1298,15 @@ │ "<", │ "Lcom/koushikdutta/async/DataEmitter;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 712 │ + .line 740 │ new-instance v0, Lcom/koushikdutta/ion/DataEmitterParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/ion/DataEmitterParser;->()V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1322,15 +1323,15 @@ │ "<", │ "Lorg/w3c/dom/Document;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 972 │ + .line 1005 │ new-instance v0, Lcom/koushikdutta/async/parser/DocumentParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/DocumentParser;->()V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1347,15 +1348,15 @@ │ "<", │ "Ljava/io/InputStream;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 707 │ + .line 735 │ new-instance v0, Lcom/koushikdutta/ion/InputStreamParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/ion/InputStreamParser;->()V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1372,15 +1373,15 @@ │ "<", │ "Lcom/google/gson/JsonArray;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 656 │ + .line 684 │ new-instance v0, Lcom/koushikdutta/ion/gson/GsonArrayParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/ion/gson/GsonArrayParser;->()V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1400,15 +1401,15 @@ │ "<", │ "Lcom/google/gson/JsonArray;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 666 │ + .line 694 │ new-instance v0, Lcom/koushikdutta/ion/gson/GsonArrayParser; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/ion/gson/GsonArrayParser;->(Ljava/nio/charset/Charset;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1425,15 +1426,15 @@ │ "<", │ "Lcom/google/gson/JsonObject;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 651 │ + .line 679 │ new-instance v0, Lcom/koushikdutta/ion/gson/GsonObjectParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/ion/gson/GsonObjectParser;->()V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1453,15 +1454,15 @@ │ "<", │ "Lcom/google/gson/JsonObject;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 661 │ + .line 689 │ new-instance v0, Lcom/koushikdutta/ion/gson/GsonObjectParser; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/ion/gson/GsonObjectParser;->(Ljava/nio/charset/Charset;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1478,15 +1479,15 @@ │ "<", │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 671 │ + .line 699 │ new-instance v0, Lcom/koushikdutta/async/parser/StringParser; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/parser/StringParser;->()V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1506,15 +1507,15 @@ │ "<", │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 676 │ + .line 704 │ new-instance v0, Lcom/koushikdutta/async/parser/StringParser; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/async/parser/StringParser;->(Ljava/nio/charset/Charset;)V │ │ invoke-virtual {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ @@ -1526,15 +1527,15 @@ │ .locals 6 │ .param p1, "username" # Ljava/lang/String; │ .param p2, "password" # Ljava/lang/String; │ │ .prologue │ const/4 v5, 0x2 │ │ - .line 926 │ + .line 959 │ const-string v0, "Authorization" │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ const-string v2, "Basic " │ @@ -1609,15 +1610,15 @@ │ "ZTT;)", │ "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 576 │ + .line 604 │ .local p3, "result":Ljava/lang/Object;, "TT;" │ const/4 v0, 0x0 │ │ invoke-virtual {p0, p1, p2, p3, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/DataSink;ZLjava/lang/Object;Ljava/lang/Runnable;)Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ move-result-object v0 │ │ @@ -1640,15 +1641,15 @@ │ ")", │ "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 581 │ + .line 609 │ .local p3, "result":Ljava/lang/Object;, "TT;" │ new-instance v0, Lcom/koushikdutta/ion/IonRequestBuilder$5; │ │ move-object v1, p0 │ │ move-object v2, p4 │ │ @@ -1656,19 +1657,19 @@ │ │ move-object v4, p1 │ │ move-object v5, p3 │ │ invoke-direct/range {v0 .. v5}, Lcom/koushikdutta/ion/IonRequestBuilder$5;->(Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;ZLcom/koushikdutta/async/DataSink;Ljava/lang/Object;)V │ │ - .line 601 │ + .line 629 │ .local v0, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->getLoaderEmitter(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ │ - .line 602 │ + .line 630 │ return-object v0 │ .end method │ │ .method execute(Lcom/koushikdutta/async/parser/AsyncParser;)Lcom/koushikdutta/ion/future/ResponseFuture; │ .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -1679,15 +1680,15 @@ │ ";)", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 606 │ + .line 634 │ .local p1, "parser":Lcom/koushikdutta/async/parser/AsyncParser;, "Lcom/koushikdutta/async/parser/AsyncParser;" │ const/4 v0, 0x0 │ │ invoke-virtual {p0, p1, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->execute(Lcom/koushikdutta/async/parser/AsyncParser;Ljava/lang/Runnable;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v0 │ │ @@ -1708,53 +1709,53 @@ │ ")", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 610 │ + .line 638 │ .local p1, "parser":Lcom/koushikdutta/async/parser/AsyncParser;, "Lcom/koushikdutta/async/parser/AsyncParser;" │ sget-boolean v7, Lcom/koushikdutta/ion/IonRequestBuilder;->$assertionsDisabled:Z │ │ if-nez v7, :cond_0 │ │ if-nez p1, :cond_0 │ │ new-instance v7, Ljava/lang/AssertionError; │ │ invoke-direct {v7}, Ljava/lang/AssertionError;->()V │ │ throw v7 │ │ - .line 612 │ + .line 640 │ :cond_0 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonRequestBuilder;->prepareURI()Landroid/net/Uri; │ │ move-result-object v6 │ │ - .line 613 │ + .line 641 │ .local v6, "uri":Landroid/net/Uri; │ const/4 v3, 0x0 │ │ - .line 615 │ + .line 643 │ .local v3, "request":Lcom/koushikdutta/async/http/AsyncHttpRequest; │ if-eqz v6, :cond_2 │ │ - .line 616 │ + .line 644 │ invoke-direct {p0, v6}, Lcom/koushikdutta/ion/IonRequestBuilder;->prepareRequest(Landroid/net/Uri;)Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ move-result-object v3 │ │ - .line 617 │ + .line 645 │ invoke-interface {p1}, Lcom/koushikdutta/async/parser/AsyncParser;->getType()Ljava/lang/reflect/Type; │ │ move-result-object v5 │ │ - .line 618 │ + .line 646 │ .local v5, "type":Ljava/lang/reflect/Type; │ iget-object v7, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v7, v7, Lcom/koushikdutta/ion/Ion;->loaders:Ljava/util/ArrayList; │ │ invoke-virtual {v7}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ @@ -1770,62 +1771,62 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/Loader; │ │ - .line 619 │ + .line 647 │ .local v1, "loader":Lcom/koushikdutta/ion/Loader; │ iget-object v7, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-interface {v1, v7, v3, v5}, Lcom/koushikdutta/ion/Loader;->load(Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/async/http/AsyncHttpRequest;Ljava/lang/reflect/Type;)Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v2 │ │ - .line 620 │ + .line 648 │ .local v2, "quickLoad":Lcom/koushikdutta/ion/future/ResponseFuture;, "Lcom/koushikdutta/ion/future/ResponseFuture;" │ if-eqz v2, :cond_1 │ │ move-object v4, v2 │ │ - .line 646 │ + .line 674 │ .end local v0 # "i$":Ljava/util/Iterator; │ .end local v1 # "loader":Lcom/koushikdutta/ion/Loader; │ .end local v2 # "quickLoad":Lcom/koushikdutta/ion/future/ResponseFuture;, "Lcom/koushikdutta/ion/future/ResponseFuture;" │ .end local v5 # "type":Ljava/lang/reflect/Type; │ :goto_0 │ return-object v4 │ │ - .line 625 │ + .line 653 │ :cond_2 │ new-instance v4, Lcom/koushikdutta/ion/IonRequestBuilder$6; │ │ invoke-direct {v4, p0, p2, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$6;->(Lcom/koushikdutta/ion/IonRequestBuilder;Ljava/lang/Runnable;Lcom/koushikdutta/async/parser/AsyncParser;)V │ │ - .line 639 │ + .line 667 │ .local v4, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ if-nez v6, :cond_3 │ │ - .line 640 │ + .line 668 │ new-instance v7, Ljava/lang/Exception; │ │ const-string v8, "Invalid URI" │ │ invoke-direct {v7, v8}, Ljava/lang/Exception;->(Ljava/lang/String;)V │ │ invoke-virtual {v4, v7}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->setComplete(Ljava/lang/Exception;)Z │ │ goto :goto_0 │ │ - .line 644 │ + .line 672 │ :cond_3 │ iput-object v3, v4, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->initialRequest:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ - .line 645 │ + .line 673 │ invoke-direct {p0, v4}, Lcom/koushikdutta/ion/IonRequestBuilder;->getLoaderEmitter(Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ │ goto :goto_0 │ .end method │ │ .method public followRedirect(Z)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 0 │ @@ -1853,46 +1854,46 @@ │ .end method │ │ .method public group(Ljava/lang/Object;)Lcom/koushikdutta/ion/builder/FutureBuilder; │ .locals 2 │ .param p1, "groupKey" # Ljava/lang/Object; │ │ .prologue │ - .line 897 │ + .line 930 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->groups:Ljava/util/ArrayList; │ │ if-nez v0, :cond_0 │ │ - .line 898 │ + .line 931 │ new-instance v0, Ljava/util/ArrayList; │ │ invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->groups:Ljava/util/ArrayList; │ │ - .line 899 │ + .line 932 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->groups:Ljava/util/ArrayList; │ │ new-instance v1, Ljava/lang/ref/WeakReference; │ │ invoke-direct {v1, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 900 │ + .line 933 │ return-object p0 │ .end method │ │ .method public intoImageView(Landroid/widget/ImageView;)Lcom/koushikdutta/ion/future/ImageViewFuture; │ .locals 1 │ .param p1, "imageView" # Landroid/widget/ImageView; │ │ .prologue │ - .line 851 │ + .line 879 │ new-instance v0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->withImageView(Landroid/widget/ImageView;)Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ move-result-object v0 │ @@ -1915,42 +1916,42 @@ │ "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ ";)V" │ } │ .end annotation │ │ .prologue │ - .line 379 │ + .line 407 │ .local p2, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->loadRequestCallback:Lcom/koushikdutta/ion/IonRequestBuilder$LoadRequestCallback; │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->loadRequestCallback:Lcom/koushikdutta/ion/IonRequestBuilder$LoadRequestCallback; │ │ invoke-interface {v0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$LoadRequestCallback;->loadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 380 │ + .line 408 │ :cond_0 │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder;->loadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ │ - .line 381 │ + .line 409 │ :cond_1 │ return-void │ .end method │ │ .method public isLocallyCached()Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ .locals 1 │ │ .prologue │ - .line 867 │ + .line 900 │ new-instance v0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->isLocallyCached()Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ │ move-result-object v0 │ @@ -1959,28 +1960,28 @@ │ .end method │ │ .method public load(Ljava/io/File;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 2 │ .param p1, "file" # Ljava/io/File; │ │ .prologue │ - .line 856 │ + .line 884 │ const/4 v0, 0x0 │ │ invoke-virtual {p1}, Ljava/io/File;->toURI()Ljava/net/URI; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/net/URI;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {p0, v0, v1}, Lcom/koushikdutta/ion/IonRequestBuilder;->loadInternal(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 857 │ + .line 885 │ return-object p0 │ .end method │ │ .method public load(Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "url" # Ljava/lang/String; │ │ @@ -2065,15 +2066,15 @@ │ "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ ";)V" │ } │ .end annotation │ │ .prologue │ - .line 385 │ + .line 413 │ .local p2, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ iget-object v3, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v3, v3, Lcom/koushikdutta/ion/Ion;->loaders:Ljava/util/ArrayList; │ │ invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ @@ -2089,27 +2090,27 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/ion/Loader; │ │ - .line 386 │ + .line 414 │ .local v2, "loader":Lcom/koushikdutta/ion/Loader; │ iget-object v3, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-interface {v2, v3, p1, p2}, Lcom/koushikdutta/ion/Loader;->load(Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v0 │ │ - .line 387 │ + .line 415 │ .local v0, "emitter":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ if-eqz v0, :cond_0 │ │ - .line 388 │ + .line 416 │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ const-string v4, "Using loader: " │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -2122,24 +2123,24 @@ │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {p1, v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->logi(Ljava/lang/String;)V │ │ - .line 389 │ + .line 417 │ invoke-virtual {p2, v0}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->setParent(Lcom/koushikdutta/async/future/Cancellable;)Lcom/koushikdutta/async/future/SimpleFuture; │ │ - .line 394 │ + .line 422 │ .end local v0 # "emitter":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ .end local v2 # "loader":Lcom/koushikdutta/ion/Loader; │ :goto_0 │ return-void │ │ - .line 393 │ + .line 421 │ :cond_1 │ new-instance v3, Ljava/lang/Exception; │ │ const-string v4, "Unknown uri scheme" │ │ invoke-direct {v3, v4}, Ljava/lang/Exception;->(Ljava/lang/String;)V │ │ @@ -2182,18 +2183,18 @@ │ .end method │ │ .method public onHeaders(Lcom/koushikdutta/ion/HeadersCallback;)Lcom/koushikdutta/ion/builder/Builders$Any$B; │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/ion/HeadersCallback; │ │ .prologue │ - .line 960 │ + .line 993 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->headersCallback:Lcom/koushikdutta/ion/HeadersCallback; │ │ - .line 961 │ + .line 994 │ return-object p0 │ .end method │ │ .method public bridge synthetic onHeaders(Lcom/koushikdutta/ion/HeadersCallback;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/HeadersCallback; │ │ @@ -2207,18 +2208,18 @@ │ .end method │ │ .method public progress(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/ion/ProgressCallback; │ │ .prologue │ - .line 564 │ + .line 592 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->progress:Lcom/koushikdutta/ion/ProgressCallback; │ │ - .line 565 │ + .line 593 │ return-object p0 │ .end method │ │ .method public bridge synthetic progress(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/ProgressCallback; │ │ @@ -2232,22 +2233,22 @@ │ .end method │ │ .method public progressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "progressBar" # Landroid/widget/ProgressBar; │ │ .prologue │ - .line 548 │ + .line 576 │ new-instance v0, Ljava/lang/ref/WeakReference; │ │ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->progressBar:Ljava/lang/ref/WeakReference; │ │ - .line 549 │ + .line 577 │ return-object p0 │ .end method │ │ .method public bridge synthetic progressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Landroid/widget/ProgressBar; │ │ @@ -2261,22 +2262,22 @@ │ .end method │ │ .method public progressDialog(Landroid/app/ProgressDialog;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "progressDialog" # Landroid/app/ProgressDialog; │ │ .prologue │ - .line 554 │ + .line 582 │ new-instance v0, Ljava/lang/ref/WeakReference; │ │ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->progressDialog:Ljava/lang/ref/WeakReference; │ │ - .line 555 │ + .line 583 │ return-object p0 │ .end method │ │ .method public bridge synthetic progressDialog(Landroid/app/ProgressDialog;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Landroid/app/ProgressDialog; │ │ @@ -2290,18 +2291,18 @@ │ .end method │ │ .method public progressHandler(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/ion/ProgressCallback; │ │ .prologue │ - .line 571 │ + .line 599 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->progressHandler:Lcom/koushikdutta/ion/ProgressCallback; │ │ - .line 572 │ + .line 600 │ return-object p0 │ .end method │ │ .method public bridge synthetic progressHandler(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/ProgressCallback; │ │ @@ -2316,21 +2317,21 @@ │ │ .method public proxy(Ljava/lang/String;I)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 0 │ .param p1, "host" # Ljava/lang/String; │ .param p2, "port" # I │ │ .prologue │ - .line 907 │ + .line 940 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->proxyHost:Ljava/lang/String; │ │ - .line 908 │ + .line 941 │ iput p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->proxyPort:I │ │ - .line 909 │ + .line 942 │ return-object p0 │ .end method │ │ .method public bridge synthetic proxy(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/lang/String; │ .param p2, "x1" # I │ @@ -2340,105 +2341,115 @@ │ invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder;->proxy(Ljava/lang/String;I)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ -.method resolveAndLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ - .locals 3 │ +.method recursiveResolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Lcom/koushikdutta/async/future/Future; │ + .locals 2 │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ - "(", │ + "(", │ "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ - "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ - ";)V" │ + ")", │ + "Lcom/koushikdutta/async/future/Future", │ + "<", │ + "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ + ">;" │ } │ .end annotation │ │ .prologue │ .line 351 │ - .local p2, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ - invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder;->resolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)Lcom/koushikdutta/async/future/Future; │ + new-instance v1, Lcom/koushikdutta/async/future/SimpleFuture; │ │ - move-result-object v0 │ - │ - .line 352 │ - .local v0, "resolved":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ - if-eqz v0, :cond_0 │ + invoke-direct {v1}, Lcom/koushikdutta/async/future/SimpleFuture;->()V │ │ .line 353 │ - new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$3; │ + .local v1, "ret":Lcom/koushikdutta/async/future/SimpleFuture;, "Lcom/koushikdutta/async/future/SimpleFuture;" │ + new-instance v0, Lcom/koushikdutta/ion/IonRequestBuilder$3; │ │ - invoke-direct {v1, p0, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$3;->(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ + invoke-direct {v0, p0, p1, v1}, Lcom/koushikdutta/ion/IonRequestBuilder$3;->(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/async/future/SimpleFuture;)V │ │ - invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ + .line 377 │ + .local v0, "resolver":Ljava/lang/Runnable; │ + invoke-interface {v0}, Ljava/lang/Runnable;->run()V │ │ - .line 376 │ - :goto_0 │ - return-void │ - │ - .line 366 │ - :cond_0 │ - invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; │ - │ - move-result-object v1 │ + .line 378 │ + return-object v1 │ +.end method │ │ - invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread; │ +.method public removeCachedBitmap()V │ + .locals 1 │ │ - move-result-object v1 │ + .prologue │ + .line 895 │ + new-instance v0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ - invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread; │ + invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ - move-result-object v2 │ + invoke-virtual {v0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->removeCachedBitmap()V │ │ - if-eq v1, v2, :cond_1 │ + .line 896 │ + return-void │ +.end method │ │ - .line 367 │ - sget-object v1, Lcom/koushikdutta/ion/Ion;->mainHandler:Landroid/os/Handler; │ +.method resolveAndLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ + .locals 2 │ + .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ + .annotation system Ldalvik/annotation/Signature; │ + value = { │ + "(", │ + "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ + "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ + ";)V" │ + } │ + .end annotation │ │ - new-instance v2, Lcom/koushikdutta/ion/IonRequestBuilder$4; │ + .prologue │ + .line 382 │ + .local p2, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ + invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/IonRequestBuilder;->recursiveResolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Lcom/koushikdutta/async/future/Future; │ │ - invoke-direct {v2, p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder$4;->(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ + move-result-object v0 │ │ - invoke-static {v1, v2}, Lcom/koushikdutta/async/AsyncServer;->post(Landroid/os/Handler;Ljava/lang/Runnable;)V │ + new-instance v1, Lcom/koushikdutta/ion/IonRequestBuilder$4; │ │ - goto :goto_0 │ + invoke-direct {v1, p0, p2, p1}, Lcom/koushikdutta/ion/IonRequestBuilder$4;->(Lcom/koushikdutta/ion/IonRequestBuilder;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;Lcom/koushikdutta/async/http/AsyncHttpRequest;)V │ │ - .line 375 │ - :cond_1 │ - invoke-virtual {p0, p1, p2}, Lcom/koushikdutta/ion/IonRequestBuilder;->invokeLoadRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)V │ + .line 383 │ + invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ - goto :goto_0 │ + .line 404 │ + return-void │ .end method │ │ -.method resolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;)Lcom/koushikdutta/async/future/Future; │ +.method resolveRequest(Lcom/koushikdutta/async/http/AsyncHttpRequest;)Lcom/koushikdutta/async/future/Future; │ .locals 5 │ .param p1, "request" # Lcom/koushikdutta/async/http/AsyncHttpRequest; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ - "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform", │ - ";)", │ + ")", │ "Lcom/koushikdutta/async/future/Future", │ "<", │ "Lcom/koushikdutta/async/http/AsyncHttpRequest;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 398 │ - .local p2, "ret":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;" │ + .line 426 │ iget-object v3, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ iget-object v3, v3, Lcom/koushikdutta/ion/Ion;->loaders:Ljava/util/ArrayList; │ │ invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v0 │ @@ -2453,33 +2464,33 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/Loader; │ │ - .line 399 │ + .line 427 │ .local v1, "loader":Lcom/koushikdutta/ion/Loader; │ iget-object v3, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->contextReference:Lcom/koushikdutta/ion/ContextReference; │ │ invoke-virtual {v3}, Lcom/koushikdutta/ion/ContextReference;->getContext()Landroid/content/Context; │ │ move-result-object v3 │ │ iget-object v4, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-interface {v1, v3, v4, p1}, Lcom/koushikdutta/ion/Loader;->resolve(Landroid/content/Context;Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/async/http/AsyncHttpRequest;)Lcom/koushikdutta/async/future/Future; │ │ move-result-object v2 │ │ - .line 400 │ + .line 428 │ .local v2, "resolved":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ if-eqz v2, :cond_0 │ │ - .line 404 │ + .line 432 │ .end local v1 # "loader":Lcom/koushikdutta/ion/Loader; │ .end local v2 # "resolved":Lcom/koushikdutta/async/future/Future;, "Lcom/koushikdutta/async/future/Future;" │ :goto_0 │ return-object v2 │ │ :cond_1 │ const/4 v2, 0x0 │ @@ -2489,45 +2500,45 @@ │ │ .method public setBodyParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 2 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "value" # Ljava/lang/String; │ │ .prologue │ - .line 743 │ + .line 771 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ if-nez v0, :cond_0 │ │ - .line 744 │ + .line 772 │ new-instance v0, Lcom/koushikdutta/async/http/Multimap; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/Multimap;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ - .line 745 │ + .line 773 │ new-instance v0, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody;->(Lcom/koushikdutta/async/http/Multimap;)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 747 │ + .line 775 │ :cond_0 │ if-eqz p2, :cond_1 │ │ - .line 748 │ + .line 776 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ invoke-virtual {v0, p1, p2}, Lcom/koushikdutta/async/http/Multimap;->add(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 749 │ + .line 777 │ :cond_1 │ return-object p0 │ .end method │ │ .method public bridge synthetic setBodyParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/UrlEncodedBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/lang/String; │ @@ -2555,43 +2566,43 @@ │ "Ljava/lang/String;", │ ">;>;)", │ "Lcom/koushikdutta/ion/IonRequestBuilder;" │ } │ .end annotation │ │ .prologue │ - .line 753 │ + .line 781 │ .local p1, "params":Ljava/util/Map;, "Ljava/util/Map;>;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ if-nez v0, :cond_0 │ │ - .line 754 │ + .line 782 │ new-instance v0, Lcom/koushikdutta/async/http/Multimap; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/Multimap;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ - .line 755 │ + .line 783 │ new-instance v0, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ invoke-direct {v0, v1}, Lcom/koushikdutta/async/http/body/UrlEncodedFormBody;->(Lcom/koushikdutta/async/http/Multimap;)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 757 │ + .line 785 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->bodyParameters:Lcom/koushikdutta/async/http/Multimap; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/Multimap;->putAll(Ljava/util/Map;)V │ │ - .line 758 │ + .line 786 │ return-object p0 │ .end method │ │ .method public bridge synthetic setBodyParameters(Ljava/util/Map;)Lcom/koushikdutta/ion/builder/UrlEncodedBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/util/Map; │ │ @@ -2605,31 +2616,31 @@ │ .end method │ │ .method public setByteArrayBody([B)Lcom/koushikdutta/ion/builder/Builders$Any$F; │ .locals 3 │ .param p1, "bytes" # [B │ │ .prologue │ - .line 983 │ + .line 1016 │ if-eqz p1, :cond_0 │ │ - .line 984 │ + .line 1017 │ new-instance v0, Lcom/koushikdutta/async/http/body/StreamBody; │ │ new-instance v1, Ljava/io/ByteArrayInputStream; │ │ invoke-direct {v1, p1}, Ljava/io/ByteArrayInputStream;->([B)V │ │ array-length v2, p1 │ │ invoke-direct {v0, v1, v2}, Lcom/koushikdutta/async/http/body/StreamBody;->(Ljava/io/InputStream;I)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 985 │ + .line 1018 │ :cond_0 │ return-object p0 │ .end method │ │ .method public bridge synthetic setByteArrayBody([B)Ljava/lang/Object; │ .locals 1 │ .param p1, "x0" # [B │ @@ -2644,22 +2655,22 @@ │ .end method │ │ .method public setDocumentBody(Lorg/w3c/dom/Document;)Lcom/koushikdutta/ion/builder/Builders$Any$F; │ .locals 1 │ .param p1, "document" # Lorg/w3c/dom/Document; │ │ .prologue │ - .line 966 │ + .line 999 │ new-instance v0, Lcom/koushikdutta/async/http/body/DocumentBody; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/async/http/body/DocumentBody;->(Lorg/w3c/dom/Document;)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 967 │ + .line 1000 │ return-object p0 │ .end method │ │ .method public bridge synthetic setDocumentBody(Lorg/w3c/dom/Document;)Ljava/lang/Object; │ .locals 1 │ .param p1, "x0" # Lorg/w3c/dom/Document; │ │ @@ -2673,22 +2684,22 @@ │ .end method │ │ .method public setFileBody(Ljava/io/File;)Lcom/koushikdutta/ion/builder/Builders$Any$F; │ .locals 1 │ .param p1, "file" # Ljava/io/File; │ │ .prologue │ - .line 977 │ + .line 1010 │ new-instance v0, Lcom/koushikdutta/async/http/body/FileBody; │ │ invoke-direct {v0, p1}, Lcom/koushikdutta/async/http/body/FileBody;->(Ljava/io/File;)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 978 │ + .line 1011 │ return-object p0 │ .end method │ │ .method public bridge synthetic setFileBody(Ljava/io/File;)Ljava/lang/Object; │ .locals 1 │ .param p1, "x0" # Ljava/io/File; │ │ @@ -2758,20 +2769,20 @@ │ .end method │ │ .method public varargs setHeader([Lcom/koushikdutta/async/http/NameValuePair;)Lcom/koushikdutta/ion/builder/Builders$Any$B; │ .locals 7 │ .param p1, "header" # [Lcom/koushikdutta/async/http/NameValuePair; │ │ .prologue │ - .line 1002 │ + .line 1035 │ invoke-direct {p0}, Lcom/koushikdutta/ion/IonRequestBuilder;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v2 │ │ - .line 1003 │ + .line 1036 │ .local v2, "headers":Lcom/koushikdutta/async/http/Headers; │ move-object v0, p1 │ │ .local v0, "arr$":[Lcom/koushikdutta/async/http/NameValuePair; │ array-length v4, v0 │ │ .local v4, "len$":I │ @@ -2779,32 +2790,32 @@ │ │ .local v3, "i$":I │ :goto_0 │ if-ge v3, v4, :cond_0 │ │ aget-object v1, v0, v3 │ │ - .line 1004 │ + .line 1037 │ .local v1, "h":Lcom/koushikdutta/async/http/NameValuePair; │ invoke-interface {v1}, Lcom/koushikdutta/async/http/NameValuePair;->getName()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-interface {v1}, Lcom/koushikdutta/async/http/NameValuePair;->getValue()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v2, v5, v6}, Lcom/koushikdutta/async/http/Headers;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ - .line 1003 │ + .line 1036 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ - .line 1006 │ + .line 1039 │ .end local v1 # "h":Lcom/koushikdutta/async/http/NameValuePair; │ :cond_0 │ return-object p0 │ .end method │ │ .method public bridge synthetic setHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ @@ -2914,15 +2925,15 @@ │ .end method │ │ .method public setJsonPojoBody(Ljava/lang/Object;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 3 │ .param p1, "object" # Ljava/lang/Object; │ │ .prologue │ - .line 920 │ + .line 953 │ new-instance v0, Lcom/koushikdutta/ion/gson/PojoBody; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->configure()Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v1 │ @@ -2933,25 +2944,25 @@ │ │ const/4 v2, 0x0 │ │ invoke-direct {v0, v1, p1, v2}, Lcom/koushikdutta/ion/gson/PojoBody;->(Lcom/google/gson/Gson;Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 921 │ + .line 954 │ return-object p0 │ .end method │ │ .method public setJsonPojoBody(Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 2 │ .param p1, "object" # Ljava/lang/Object; │ .param p2, "token" # Lcom/google/gson/reflect/TypeToken; │ │ .prologue │ - .line 914 │ + .line 947 │ new-instance v0, Lcom/koushikdutta/ion/gson/PojoBody; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->configure()Lcom/koushikdutta/ion/Ion$Config; │ │ move-result-object v1 │ @@ -2960,15 +2971,15 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1, p1, p2}, Lcom/koushikdutta/ion/gson/PojoBody;->(Lcom/google/gson/Gson;Ljava/lang/Object;Lcom/google/gson/reflect/TypeToken;)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 915 │ + .line 948 │ return-object p0 │ .end method │ │ .method public bridge synthetic setJsonPojoBody(Ljava/lang/Object;)Ljava/lang/Object; │ .locals 1 │ .param p1, "x0" # Ljava/lang/Object; │ │ @@ -2997,21 +3008,21 @@ │ │ .method public setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 0 │ .param p1, "tag" # Ljava/lang/String; │ .param p2, "level" # I │ │ .prologue │ - .line 879 │ + .line 912 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->logTag:Ljava/lang/String; │ │ - .line 880 │ + .line 913 │ iput p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->logLevel:I │ │ - .line 881 │ + .line 914 │ return-object p0 │ .end method │ │ .method public bridge synthetic setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/lang/String; │ .param p2, "x1" # I │ @@ -3026,38 +3037,38 @@ │ .end method │ │ .method public setMultipartContentType(Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "contentType" # Ljava/lang/String; │ │ .prologue │ - .line 836 │ + .line 864 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ if-nez v0, :cond_0 │ │ - .line 837 │ + .line 865 │ new-instance v0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ - .line 838 │ + .line 866 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 840 │ + .line 868 │ :cond_0 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-virtual {v0, p1}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->setContentType(Ljava/lang/String;)V │ │ - .line 841 │ + .line 869 │ return-object p0 │ .end method │ │ .method public bridge synthetic setMultipartContentType(Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/lang/String; │ │ @@ -3072,15 +3083,15 @@ │ │ .method public setMultipartFile(Ljava/lang/String;Ljava/io/File;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "file" # Ljava/io/File; │ │ .prologue │ - .line 764 │ + .line 792 │ const/4 v0, 0x0 │ │ invoke-virtual {p0, p1, v0, p2}, Lcom/koushikdutta/ion/IonRequestBuilder;->setMultipartFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ move-result-object v0 │ │ return-object v0 │ @@ -3089,64 +3100,64 @@ │ .method public setMultipartFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 2 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "contentType" # Ljava/lang/String; │ .param p3, "file" # Ljava/io/File; │ │ .prologue │ - .line 769 │ + .line 797 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ if-nez v1, :cond_0 │ │ - .line 770 │ + .line 798 │ new-instance v1, Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {v1}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->()V │ │ iput-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ - .line 771 │ + .line 799 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {p0, v1}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 774 │ + .line 802 │ :cond_0 │ new-instance v0, Lcom/koushikdutta/async/http/body/FilePart; │ │ invoke-direct {v0, p1, p3}, Lcom/koushikdutta/async/http/body/FilePart;->(Ljava/lang/String;Ljava/io/File;)V │ │ - .line 776 │ + .line 804 │ .local v0, "part":Lcom/koushikdutta/async/http/body/FilePart; │ if-nez p2, :cond_1 │ │ - .line 777 │ + .line 805 │ invoke-virtual {p3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v1}, Lcom/koushikdutta/async/http/server/AsyncHttpServer;->tryGetContentType(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object p2 │ │ - .line 779 │ + .line 807 │ :cond_1 │ if-eqz p2, :cond_2 │ │ - .line 780 │ + .line 808 │ invoke-virtual {v0, p2}, Lcom/koushikdutta/async/http/body/FilePart;->setContentType(Ljava/lang/String;)V │ │ - .line 782 │ + .line 810 │ :cond_2 │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-virtual {v1, v0}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->addPart(Lcom/koushikdutta/async/http/body/Part;)V │ │ - .line 783 │ + .line 811 │ return-object p0 │ .end method │ │ .method public bridge synthetic setMultipartFile(Ljava/lang/String;Ljava/io/File;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/lang/String; │ .param p2, "x1" # Ljava/io/File; │ @@ -3177,41 +3188,41 @@ │ │ .method public setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "name" # Ljava/lang/String; │ .param p2, "value" # Ljava/lang/String; │ │ .prologue │ - .line 788 │ + .line 816 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ if-nez v0, :cond_0 │ │ - .line 789 │ + .line 817 │ new-instance v0, Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {v0}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->()V │ │ iput-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ - .line 790 │ + .line 818 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 792 │ + .line 820 │ :cond_0 │ if-eqz p2, :cond_1 │ │ - .line 793 │ + .line 821 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->multipartBody:Lcom/koushikdutta/async/http/body/MultipartFormDataBody; │ │ invoke-virtual {v0, p1, p2}, Lcom/koushikdutta/async/http/body/MultipartFormDataBody;->addStringPart(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 794 │ + .line 822 │ :cond_1 │ return-object p0 │ .end method │ │ .method public bridge synthetic setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ .locals 1 │ .param p1, "x0" # Ljava/lang/String; │ @@ -3239,15 +3250,15 @@ │ "Ljava/lang/String;", │ ">;>;)", │ "Lcom/koushikdutta/ion/IonRequestBuilder;" │ } │ .end annotation │ │ .prologue │ - .line 799 │ + .line 827 │ .local p1, "params":Ljava/util/Map;, "Ljava/util/Map;>;" │ invoke-interface {p1}, Ljava/util/Map;->keySet()Ljava/util/Set; │ │ move-result-object v4 │ │ invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ @@ -3262,15 +3273,15 @@ │ │ invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/String; │ │ - .line 800 │ + .line 828 │ .local v2, "key":Ljava/lang/String; │ invoke-interface {p1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v4 │ │ check-cast v4, Ljava/util/List; │ │ @@ -3289,24 +3300,24 @@ │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ - .line 801 │ + .line 829 │ .local v3, "value":Ljava/lang/String; │ if-eqz v3, :cond_1 │ │ - .line 802 │ + .line 830 │ invoke-virtual {p0, v2, v3}, Lcom/koushikdutta/ion/IonRequestBuilder;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ goto :goto_0 │ │ - .line 805 │ + .line 833 │ .end local v1 # "i$":Ljava/util/Iterator; │ .end local v2 # "key":Ljava/lang/String; │ .end local v3 # "value":Ljava/lang/String; │ :cond_2 │ return-object p0 │ .end method │ │ @@ -3324,41 +3335,41 @@ │ .end method │ │ .method public setStreamBody(Ljava/io/InputStream;)Lcom/koushikdutta/ion/builder/Builders$Any$F; │ .locals 2 │ .param p1, "inputStream" # Ljava/io/InputStream; │ │ .prologue │ - .line 990 │ + .line 1023 │ new-instance v0, Lcom/koushikdutta/async/http/body/StreamBody; │ │ const/4 v1, -0x1 │ │ invoke-direct {v0, p1, v1}, Lcom/koushikdutta/async/http/body/StreamBody;->(Ljava/io/InputStream;I)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 991 │ + .line 1024 │ return-object p0 │ .end method │ │ .method public setStreamBody(Ljava/io/InputStream;I)Lcom/koushikdutta/ion/builder/Builders$Any$F; │ .locals 1 │ .param p1, "inputStream" # Ljava/io/InputStream; │ .param p2, "length" # I │ │ .prologue │ - .line 996 │ + .line 1029 │ new-instance v0, Lcom/koushikdutta/async/http/body/StreamBody; │ │ invoke-direct {v0, p1, p2}, Lcom/koushikdutta/async/http/body/StreamBody;->(Ljava/io/InputStream;I)V │ │ invoke-direct {p0, v0}, Lcom/koushikdutta/ion/IonRequestBuilder;->setBody(Lcom/koushikdutta/async/http/body/AsyncHttpRequestBody;)Lcom/koushikdutta/ion/IonRequestBuilder; │ │ - .line 997 │ + .line 1030 │ return-object p0 │ .end method │ │ .method public setStringBody(Ljava/lang/String;)Lcom/koushikdutta/ion/IonRequestBuilder; │ .locals 1 │ .param p1, "string" # Ljava/lang/String; │ │ @@ -3414,18 +3425,18 @@ │ .end method │ │ .method public uploadProgress(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/builder/Builders$Any$B; │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/ion/ProgressCallback; │ │ .prologue │ - .line 932 │ + .line 965 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->uploadProgress:Lcom/koushikdutta/ion/ProgressCallback; │ │ - .line 933 │ + .line 966 │ return-object p0 │ .end method │ │ .method public bridge synthetic uploadProgress(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/ProgressCallback; │ │ @@ -3439,18 +3450,18 @@ │ .end method │ │ .method public uploadProgressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/Builders$Any$B; │ .locals 0 │ .param p1, "progressBar" # Landroid/widget/ProgressBar; │ │ .prologue │ - .line 939 │ + .line 972 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->uploadProgressBar:Landroid/widget/ProgressBar; │ │ - .line 940 │ + .line 973 │ return-object p0 │ .end method │ │ .method public bridge synthetic uploadProgressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Landroid/widget/ProgressBar; │ │ @@ -3464,18 +3475,18 @@ │ .end method │ │ .method public uploadProgressDialog(Landroid/app/ProgressDialog;)Lcom/koushikdutta/ion/builder/Builders$Any$B; │ .locals 0 │ .param p1, "progressDialog" # Landroid/app/ProgressDialog; │ │ .prologue │ - .line 946 │ + .line 979 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->uploadProgressDialog:Landroid/app/ProgressDialog; │ │ - .line 947 │ + .line 980 │ return-object p0 │ .end method │ │ .method public bridge synthetic uploadProgressDialog(Landroid/app/ProgressDialog;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Landroid/app/ProgressDialog; │ │ @@ -3489,18 +3500,18 @@ │ .end method │ │ .method public uploadProgressHandler(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/builder/Builders$Any$B; │ .locals 0 │ .param p1, "callback" # Lcom/koushikdutta/ion/ProgressCallback; │ │ .prologue │ - .line 953 │ + .line 986 │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->uploadProgressHandler:Lcom/koushikdutta/ion/ProgressCallback; │ │ - .line 954 │ + .line 987 │ return-object p0 │ .end method │ │ .method public bridge synthetic uploadProgressHandler(Lcom/koushikdutta/ion/ProgressCallback;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ .locals 1 │ .param p1, "x0" # Lcom/koushikdutta/ion/ProgressCallback; │ │ @@ -3554,15 +3565,15 @@ │ return-object v0 │ .end method │ │ .method public withBitmap()Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ .locals 1 │ │ .prologue │ - .line 846 │ + .line 874 │ new-instance v0, Lcom/koushikdutta/ion/IonImageViewRequestBuilder; │ │ invoke-direct {v0, p0}, Lcom/koushikdutta/ion/IonImageViewRequestBuilder;->(Lcom/koushikdutta/ion/IonRequestBuilder;)V │ │ return-object v0 │ .end method │ │ @@ -3590,15 +3601,15 @@ │ "<", │ "Ljava/io/File;", │ ">;" │ } │ .end annotation │ │ .prologue │ - .line 732 │ + .line 760 │ new-instance v0, Lcom/koushikdutta/async/stream/FileDataSink; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ move-result-object v1 │ @@ -3640,15 +3651,15 @@ │ ">(TF;)", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 727 │ + .line 755 │ .local p1, "outputStream":Ljava/io/OutputStream;, "TF;" │ new-instance v0, Lcom/koushikdutta/async/stream/OutputStreamDataSink; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->getServer()Lcom/koushikdutta/async/AsyncServer; │ │ @@ -3675,15 +3686,15 @@ │ ">(TF;Z)", │ "Lcom/koushikdutta/ion/future/ResponseFuture", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 722 │ + .line 750 │ .local p1, "outputStream":Ljava/io/OutputStream;, "TF;" │ new-instance v0, Lcom/koushikdutta/async/stream/OutputStreamDataSink; │ │ iget-object v1, p0, Lcom/koushikdutta/ion/IonRequestBuilder;->ion:Lcom/koushikdutta/ion/Ion; │ │ invoke-virtual {v1}, Lcom/koushikdutta/ion/Ion;->getServer()Lcom/koushikdutta/async/AsyncServer; ├── smali/com/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2.smali │ @@ -22,17 +22,18 @@ │ │ .field final synthetic val$totalBytesRead:I │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;I)V │ .locals 0 │ + .param p1, "this$2" # Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ .prologue │ - .line 532 │ + .line 560 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3.2;" │ iput-object p1, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iput p2, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;->val$totalBytesRead:I │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -41,15 +42,15 @@ │ │ │ # virtual methods │ .method public run()V │ .locals 6 │ │ .prologue │ - .line 535 │ + .line 563 │ .local p0, "this":Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;, "Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3.2;" │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->isCancelled()Z │ │ @@ -63,20 +64,20 @@ │ │ invoke-virtual {v0}, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->isDone()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ - .line 538 │ + .line 566 │ :cond_0 │ :goto_0 │ return-void │ │ - .line 537 │ + .line 565 │ :cond_1 │ iget-object v0, p0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3$2;->this$2:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform$3;->this$1:Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform; │ │ iget-object v0, v0, Lcom/koushikdutta/ion/IonRequestBuilder$EmitterTransform;->this$0:Lcom/koushikdutta/ion/IonRequestBuilder; ├── smali/com/koushikdutta/ion/LoadBitmap$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$result:Lcom/koushikdutta/async/ByteBufferList; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/LoadBitmap;Lcom/koushikdutta/async/ByteBufferList;Lcom/koushikdutta/ion/Response;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/LoadBitmap; │ │ .prologue │ .line 42 │ iput-object p1, p0, Lcom/koushikdutta/ion/LoadBitmap$1;->this$0:Lcom/koushikdutta/ion/LoadBitmap; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/LoadBitmap$1;->val$result:Lcom/koushikdutta/async/ByteBufferList; ├── smali/com/koushikdutta/ion/LoadBitmap.smali │ @@ -112,24 +112,25 @@ │ if-eq v1, p0, :cond_2 │ │ .line 38 │ invoke-virtual {v0}, Lcom/koushikdutta/async/ByteBufferList;->recycle()V │ │ goto :goto_0 │ │ - .line 42 │ + .line 39 │ :cond_2 │ invoke-static {}, Lcom/koushikdutta/ion/Ion;->getBitmapLoadExecutorService()Ljava/util/concurrent/ExecutorService; │ │ move-result-object v1 │ │ new-instance v2, Lcom/koushikdutta/ion/LoadBitmap$1; │ │ invoke-direct {v2, p0, v0, p2}, Lcom/koushikdutta/ion/LoadBitmap$1;->(Lcom/koushikdutta/ion/LoadBitmap;Lcom/koushikdutta/async/ByteBufferList;Lcom/koushikdutta/ion/Response;)V │ │ + .line 42 │ invoke-interface {v1, v2}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 ├── smali/com/koushikdutta/ion/LoadBitmapRegion$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$region:Landroid/graphics/Rect; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/LoadBitmapRegion;Landroid/graphics/BitmapRegionDecoder;Landroid/graphics/Rect;ILjava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/LoadBitmapRegion; │ │ .prologue │ .line 18 │ iput-object p1, p0, Lcom/koushikdutta/ion/LoadBitmapRegion$1;->this$0:Lcom/koushikdutta/ion/LoadBitmapRegion; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/LoadBitmapRegion$1;->val$decoder:Landroid/graphics/BitmapRegionDecoder; ├── smali/com/koushikdutta/ion/LoadDeepZoom$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$tempFile:Ljava/io/File; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/LoadDeepZoom;Ljava/io/File;Lcom/koushikdutta/ion/Response;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/LoadDeepZoom; │ │ .prologue │ .line 51 │ iput-object p1, p0, Lcom/koushikdutta/ion/LoadDeepZoom$1;->this$0:Lcom/koushikdutta/ion/LoadDeepZoom; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/LoadDeepZoom$1;->val$tempFile:Ljava/io/File; ├── smali/com/koushikdutta/ion/LoadDeepZoom.smali │ @@ -107,23 +107,24 @@ │ │ invoke-virtual {v1, v2}, Lcom/koushikdutta/async/util/HashList;->tag(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v1 │ │ if-ne v1, p0, :cond_1 │ │ - .line 51 │ + .line 48 │ invoke-static {}, Lcom/koushikdutta/ion/Ion;->getBitmapLoadExecutorService()Ljava/util/concurrent/ExecutorService; │ │ move-result-object v1 │ │ new-instance v2, Lcom/koushikdutta/ion/LoadDeepZoom$1; │ │ invoke-direct {v2, p0, v0, p2}, Lcom/koushikdutta/ion/LoadDeepZoom$1;->(Lcom/koushikdutta/ion/LoadDeepZoom;Ljava/io/File;Lcom/koushikdutta/ion/Response;)V │ │ + .line 51 │ invoke-interface {v1, v2}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 ├── smali/com/koushikdutta/ion/RequestBodyUploadObserver$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$sink:Lcom/koushikdutta/async/DataSink; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/RequestBodyUploadObserver;Lcom/koushikdutta/async/DataSink;I)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/RequestBodyUploadObserver; │ │ .prologue │ .line 28 │ iput-object p1, p0, Lcom/koushikdutta/ion/RequestBodyUploadObserver$1;->this$0:Lcom/koushikdutta/ion/RequestBodyUploadObserver; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/RequestBodyUploadObserver$1;->val$sink:Lcom/koushikdutta/async/DataSink; ├── smali/com/koushikdutta/ion/TransformBitmap$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$result:Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/TransformBitmap;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/TransformBitmap; │ │ .prologue │ .line 53 │ iput-object p1, p0, Lcom/koushikdutta/ion/TransformBitmap$1;->this$0:Lcom/koushikdutta/ion/TransformBitmap; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/TransformBitmap$1;->val$result:Lcom/koushikdutta/ion/bitmap/BitmapInfo; ├── smali/com/koushikdutta/ion/TransformBitmap.smali │ @@ -125,23 +125,24 @@ │ │ invoke-virtual {v0, v1}, Lcom/koushikdutta/async/util/HashList;->tag(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ if-ne v0, p0, :cond_0 │ │ - .line 53 │ + .line 50 │ invoke-static {}, Lcom/koushikdutta/ion/Ion;->getBitmapLoadExecutorService()Ljava/util/concurrent/ExecutorService; │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/ion/TransformBitmap$1; │ │ invoke-direct {v1, p0, p2}, Lcom/koushikdutta/ion/TransformBitmap$1;->(Lcom/koushikdutta/ion/TransformBitmap;Lcom/koushikdutta/ion/bitmap/BitmapInfo;)V │ │ + .line 53 │ invoke-interface {v0, v1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic onCompleted(Ljava/lang/Exception;Ljava/lang/Object;)V │ .locals 0 ├── smali/com/koushikdutta/ion/bitmap/Exif.smali │ @@ -203,28 +203,30 @@ │ │ add-int/lit8 v9, p1, 0x2 │ │ const/4 v10, 0x4 │ │ const/4 v11, 0x0 │ │ + .line 61 │ invoke-static {p0, v9, v10, v11}, Lcom/koushikdutta/ion/bitmap/Exif;->pack([BIIZ)I │ │ move-result v9 │ │ const v10, 0x45786966 │ │ if-ne v9, v10, :cond_7 │ │ add-int/lit8 v9, p1, 0x6 │ │ const/4 v10, 0x2 │ │ const/4 v11, 0x0 │ │ + .line 62 │ invoke-static {p0, v9, v10, v11}, Lcom/koushikdutta/ion/bitmap/Exif;->pack([BIIZ)I │ │ move-result v9 │ │ if-nez v9, :cond_7 │ │ .line 63 ├── smali/com/koushikdutta/ion/bitmap/IonBitmapCache.smali │ @@ -93,14 +93,15 @@ │ │ invoke-virtual {v0, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Landroid/view/WindowManager; │ │ + .line 53 │ invoke-interface {v2}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/koushikdutta/ion/bitmap/IonBitmapCache;->metrics:Landroid/util/DisplayMetrics; │ │ invoke-virtual {v2, v3}, Landroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V ├── smali/com/koushikdutta/ion/bitmap/SoftReferenceHashtable.smali │ @@ -1,198 +1,69 @@ │ .class public Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable; │ -.super Ljava/lang/Object; │ +.super Lcom/koushikdutta/ion/bitmap/ReferenceHashtable; │ .source "SoftReferenceHashtable.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "", │ - "Ljava/lang/Object;" │ + "Lcom/koushikdutta/ion/bitmap/ReferenceHashtable", │ + ";>;" │ } │ .end annotation │ │ │ -# instance fields │ -.field mTable:Ljava/util/Hashtable; │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "Ljava/util/Hashtable", │ - ";>;" │ - } │ - .end annotation │ -.end field │ - │ - │ # direct methods │ .method public constructor ()V │ - .locals 1 │ + .locals 0 │ │ .prologue │ - .line 6 │ + .line 5 │ .local p0, "this":Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;, "Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;" │ - invoke-direct {p0}, Ljava/lang/Object;->()V │ - │ - .line 7 │ - new-instance v0, Ljava/util/Hashtable; │ - │ - invoke-direct {v0}, Ljava/util/Hashtable;->()V │ - │ - iput-object v0, p0, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->mTable:Ljava/util/Hashtable; │ + invoke-direct {p0}, Lcom/koushikdutta/ion/bitmap/ReferenceHashtable;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ -.method public clear()V │ +.method protected bridge synthetic create(Ljava/lang/Object;)Ljava/lang/ref/Reference; │ .locals 1 │ + .param p1, "x0" # Ljava/lang/Object; │ │ .prologue │ - .line 34 │ - .local p0, "this":Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;, "Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;" │ - iget-object v0, p0, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->mTable:Ljava/util/Hashtable; │ - │ - invoke-virtual {v0}, Ljava/util/Hashtable;->clear()V │ - │ - .line 35 │ - return-void │ -.end method │ - │ -.method public get(Ljava/lang/Object;)Ljava/lang/Object; │ - .locals 3 │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "(TK;)TV;" │ - } │ - .end annotation │ - │ - .prologue │ - .line 17 │ + .line 5 │ .local p0, "this":Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;, "Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;" │ - .local p1, "key":Ljava/lang/Object;, "TK;" │ - iget-object v2, p0, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->mTable:Ljava/util/Hashtable; │ - │ - invoke-virtual {v2, p1}, Ljava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; │ - │ - move-result-object v1 │ - │ - check-cast v1, Ljava/lang/ref/SoftReference; │ - │ - .line 18 │ - .local v1, "val":Ljava/lang/ref/SoftReference;, "Ljava/lang/ref/SoftReference;" │ - if-nez v1, :cond_1 │ - │ - .line 19 │ - const/4 v0, 0x0 │ - │ - .line 23 │ - :cond_0 │ - :goto_0 │ - return-object v0 │ - │ - .line 20 │ - :cond_1 │ - invoke-virtual {v1}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ + invoke-virtual {p0, p1}, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->create(Ljava/lang/Object;)Ljava/lang/ref/SoftReference; │ │ move-result-object v0 │ │ - .line 21 │ - .local v0, "ret":Ljava/lang/Object;, "TV;" │ - if-nez v0, :cond_0 │ - │ - .line 22 │ - iget-object v2, p0, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->mTable:Ljava/util/Hashtable; │ - │ - invoke-virtual {v2, p1}, Ljava/util/Hashtable;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ - │ - goto :goto_0 │ -.end method │ - │ -.method public put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ - .locals 3 │ - .annotation system Ldalvik/annotation/Signature; │ - value = { │ - "(TK;TV;)TV;" │ - } │ - .end annotation │ - │ - .prologue │ - .line 10 │ - .local p0, "this":Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;, "Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;" │ - .local p1, "key":Ljava/lang/Object;, "TK;" │ - .local p2, "value":Ljava/lang/Object;, "TV;" │ - iget-object v1, p0, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->mTable:Ljava/util/Hashtable; │ - │ - new-instance v2, Ljava/lang/ref/SoftReference; │ - │ - invoke-direct {v2, p2}, Ljava/lang/ref/SoftReference;->(Ljava/lang/Object;)V │ - │ - invoke-virtual {v1, p1, v2}, Ljava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ - │ - move-result-object v0 │ - │ - check-cast v0, Ljava/lang/ref/SoftReference; │ - │ - .line 11 │ - .local v0, "old":Ljava/lang/ref/SoftReference;, "Ljava/lang/ref/SoftReference;" │ - if-nez v0, :cond_0 │ - │ - .line 12 │ - const/4 v1, 0x0 │ - │ - .line 13 │ - :goto_0 │ - return-object v1 │ - │ - :cond_0 │ - invoke-virtual {v0}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ - │ - move-result-object v1 │ - │ - goto :goto_0 │ + return-object v0 │ .end method │ │ -.method public remove(Ljava/lang/Object;)Ljava/lang/Object; │ - .locals 2 │ +.method protected create(Ljava/lang/Object;)Ljava/lang/ref/SoftReference; │ + .locals 1 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ - "(TK;)TV;" │ + "(TV;)", │ + "Ljava/lang/ref/SoftReference", │ + ";" │ } │ .end annotation │ │ .prologue │ - .line 27 │ + .line 8 │ .local p0, "this":Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;, "Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;" │ - .local p1, "k":Ljava/lang/Object;, "TK;" │ - iget-object v1, p0, Lcom/koushikdutta/ion/bitmap/SoftReferenceHashtable;->mTable:Ljava/util/Hashtable; │ - │ - invoke-virtual {v1, p1}, Ljava/util/Hashtable;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ + .local p1, "value":Ljava/lang/Object;, "TV;" │ + new-instance v0, Ljava/lang/ref/SoftReference; │ │ - move-result-object v0 │ - │ - check-cast v0, Ljava/lang/ref/SoftReference; │ - │ - .line 28 │ - .local v0, "v":Ljava/lang/ref/SoftReference;, "Ljava/lang/ref/SoftReference;" │ - if-nez v0, :cond_0 │ - │ - .line 29 │ - const/4 v1, 0x0 │ + invoke-direct {v0, p1}, Ljava/lang/ref/SoftReference;->(Ljava/lang/Object;)V │ │ - .line 30 │ - :goto_0 │ - return-object v1 │ - │ - :cond_0 │ - invoke-virtual {v0}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ - │ - move-result-object v1 │ - │ - goto :goto_0 │ + return-object v0 │ .end method ├── smali/com/koushikdutta/ion/builder/BitmapFutureBuilder.smali │ @@ -17,7 +17,10 @@ │ .end method │ │ .method public abstract asCachedBitmap()Lcom/koushikdutta/ion/bitmap/BitmapInfo; │ .end method │ │ .method public abstract isLocallyCached()Lcom/koushikdutta/ion/bitmap/LocallyCachedStatus; │ .end method │ + │ +.method public abstract removeCachedBitmap()V │ +.end method ├── smali/com/koushikdutta/ion/conscrypt/ConscryptMiddleware.smali │ @@ -262,22 +262,23 @@ │ │ const/4 v11, 0x3 │ │ invoke-virtual {p0, v9, v11}, Landroid/content/Context;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context; │ │ move-result-object v1 │ │ - .line 63 │ + .line 64 │ .local v1, "gms":Landroid/content/Context; │ invoke-virtual {v1}, Landroid/content/Context;->getClassLoader()Ljava/lang/ClassLoader; │ │ move-result-object v9 │ │ const-string v11, "com.google.android.gms.common.security.ProviderInstallerImpl" │ │ + .line 65 │ invoke-virtual {v9, v11}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class; │ │ move-result-object v9 │ │ const-string v11, "insertProvider" │ │ const/4 v12, 0x1 │ @@ -286,28 +287,30 @@ │ │ const/4 v13, 0x0 │ │ const-class v14, Landroid/content/Context; │ │ aput-object v14, v12, v13 │ │ + .line 66 │ invoke-virtual {v9, v11, v12}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v9 │ │ const/4 v11, 0x0 │ │ const/4 v12, 0x1 │ │ new-array v12, v12, [Ljava/lang/Object; │ │ const/4 v13, 0x0 │ │ aput-object p0, v12, v13 │ │ + .line 67 │ invoke-virtual {v9, v11, v12}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ :try_end_5 │ .catchall {:try_start_5 .. :try_end_5} :catchall_0 │ │ goto :goto_1 │ .end method ├── smali/com/koushikdutta/ion/cookie/CookieMiddleware.smali │ @@ -248,36 +248,40 @@ │ │ .line 91 │ :try_start_0 │ iget-object v1, p0, Lcom/koushikdutta/ion/cookie/CookieMiddleware;->manager:Ljava/net/CookieManager; │ │ iget-object v2, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ + .line 93 │ invoke-virtual {v2}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getUri()Landroid/net/Uri; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Landroid/net/Uri;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 92 │ invoke-static {v2}, Ljava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI; │ │ move-result-object v2 │ │ iget-object v3, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ │ + .line 94 │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/AsyncHttpRequest;->getHeaders()Lcom/koushikdutta/async/http/Headers; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Lcom/koushikdutta/async/http/Headers;->getMultiMap()Lcom/koushikdutta/async/http/Multimap; │ │ move-result-object v3 │ │ + .line 91 │ invoke-virtual {v1, v2, v3}, Ljava/net/CookieManager;->get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map; │ │ move-result-object v0 │ │ .line 95 │ .local v0, "cookies":Ljava/util/Map;, "Ljava/util/Map;>;" │ iget-object v1, p1, Lcom/koushikdutta/async/http/AsyncHttpClientMiddleware$OnRequestData;->request:Lcom/koushikdutta/async/http/AsyncHttpRequest; │ @@ -398,14 +402,28 @@ │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ + const-string v7, "; path=" │ + │ + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v6 │ + │ + invoke-virtual {v0}, Ljava/net/HttpCookie;->getPath()Ljava/lang/String; │ + │ + move-result-object v7 │ + │ + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + │ + move-result-object v6 │ + │ invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v2, v5, v6}, Lcom/koushikdutta/async/http/Headers;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/async/http/Headers; │ │ goto :goto_1 │ @@ -473,15 +491,15 @@ │ │ move-result-object v5 │ │ invoke-interface {v5}, Landroid/content/SharedPreferences$Editor;->commit()Z │ :try_end_0 │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ - goto :goto_0 │ + goto/16 :goto_0 │ .end method │ │ .method public reinit()V │ .locals 15 │ │ .prologue │ const/4 v13, 0x0 ├── smali/com/koushikdutta/ion/gson/GsonParser$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$charset:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/gson/GsonParser;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/gson/GsonParser; │ │ .prologue │ .line 41 │ .local p0, "this":Lcom/koushikdutta/ion/gson/GsonParser$1;, "Lcom/koushikdutta/ion/gson/GsonParser.1;" │ iput-object p1, p0, Lcom/koushikdutta/ion/gson/GsonParser$1;->this$0:Lcom/koushikdutta/ion/gson/GsonParser; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/gson/GsonParser$1;->val$charset:Ljava/lang/String; ├── smali/com/koushikdutta/ion/gson/GsonParser.smali │ @@ -127,14 +127,15 @@ │ │ move-result-object v1 │ │ new-instance v2, Lcom/koushikdutta/ion/gson/GsonParser$1; │ │ invoke-direct {v2, p0, v0}, Lcom/koushikdutta/ion/gson/GsonParser$1;->(Lcom/koushikdutta/ion/gson/GsonParser;Ljava/lang/String;)V │ │ + .line 41 │ invoke-interface {v1, v2}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/async/future/Future; │ │ return-object v1 ├── smali/com/koushikdutta/ion/gson/GsonSerializer$1.smali │ @@ -26,14 +26,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/koushikdutta/ion/gson/GsonSerializer; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/gson/GsonSerializer;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/gson/GsonSerializer; │ │ .prologue │ .line 39 │ .local p0, "this":Lcom/koushikdutta/ion/gson/GsonSerializer$1;, "Lcom/koushikdutta/ion/gson/GsonSerializer.1;" │ iput-object p1, p0, Lcom/koushikdutta/ion/gson/GsonSerializer$1;->this$0:Lcom/koushikdutta/ion/gson/GsonSerializer; │ │ invoke-direct {p0}, Lcom/koushikdutta/async/future/TransformFuture;->()V ├── smali/com/koushikdutta/ion/gson/GsonSerializer.smali │ @@ -123,14 +123,15 @@ │ │ move-result-object v0 │ │ new-instance v1, Lcom/koushikdutta/ion/gson/GsonSerializer$1; │ │ invoke-direct {v1, p0}, Lcom/koushikdutta/ion/gson/GsonSerializer$1;->(Lcom/koushikdutta/ion/gson/GsonSerializer;)V │ │ + .line 39 │ invoke-interface {v0, v1}, Lcom/koushikdutta/async/future/Future;->then(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/FutureCallback; │ │ move-result-object v0 │ │ check-cast v0, Lcom/koushikdutta/async/future/Future; │ │ return-object v0 ├── smali/com/koushikdutta/ion/loader/AssetLoader$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/ion/loader/InputStreamDataEmitterFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/AssetLoader;Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/loader/InputStreamDataEmitterFuture;Lcom/koushikdutta/async/future/FutureCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/AssetLoader; │ │ .prologue │ .line 40 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/AssetLoader$1;->this$0:Lcom/koushikdutta/ion/loader/AssetLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/AssetLoader$1;->val$ion:Lcom/koushikdutta/ion/Ion; ├── smali/com/koushikdutta/ion/loader/ContentLoader$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/ion/loader/InputStreamDataEmitterFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/ContentLoader;Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/loader/InputStreamDataEmitterFuture;Lcom/koushikdutta/async/future/FutureCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/ContentLoader; │ │ .prologue │ .line 40 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/ContentLoader$1;->this$0:Lcom/koushikdutta/ion/loader/ContentLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/ContentLoader$1;->val$ion:Lcom/koushikdutta/ion/Ion; ├── smali/com/koushikdutta/ion/loader/FileLoader$1.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$uri:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/FileLoader;Lcom/koushikdutta/async/future/SimpleFuture;Ljava/lang/String;Lcom/koushikdutta/ion/Ion;IIZLjava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/FileLoader; │ │ .prologue │ .line 42 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/FileLoader$1;->this$0:Lcom/koushikdutta/ion/loader/FileLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/FileLoader$1;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; ├── smali/com/koushikdutta/ion/loader/FileLoader$2.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/ion/loader/FileLoader$FileFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/FileLoader;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/ion/loader/FileLoader$FileFuture;Lcom/koushikdutta/async/future/FutureCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/FileLoader; │ │ .prologue │ .line 89 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/FileLoader$2;->this$0:Lcom/koushikdutta/ion/loader/FileLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/FileLoader$2;->val$request:Lcom/koushikdutta/async/http/AsyncHttpRequest; ├── smali/com/koushikdutta/ion/loader/HttpLoader$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$callback:Lcom/koushikdutta/async/future/FutureCallback; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/HttpLoader;Lcom/koushikdutta/async/future/FutureCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/HttpLoader; │ │ .prologue │ .line 26 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/HttpLoader$1;->this$0:Lcom/koushikdutta/ion/loader/HttpLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/HttpLoader$1;->val$callback:Lcom/koushikdutta/async/future/FutureCallback; ├── smali/com/koushikdutta/ion/loader/MediaFile.smali │ @@ -1367,14 +1367,15 @@ │ │ invoke-static {v0}, Lcom/koushikdutta/ion/loader/MediaFile;->isVideoFileType(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ + .line 309 │ invoke-static {v0}, Lcom/koushikdutta/ion/loader/MediaFile;->isImageFileType(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ invoke-static {v0}, Lcom/koushikdutta/ion/loader/MediaFile;->isPlayListFileType(I)Z ├── smali/com/koushikdutta/ion/loader/PackageIconLoader$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$uri:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/PackageIconLoader;Ljava/lang/String;Lcom/koushikdutta/ion/Ion;Ljava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/PackageIconLoader; │ │ .prologue │ .line 28 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/PackageIconLoader$1;->this$0:Lcom/koushikdutta/ion/loader/PackageIconLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/PackageIconLoader$1;->val$uri:Ljava/lang/String; ├── smali/com/koushikdutta/ion/loader/ResourceLoader$1.smali │ @@ -36,14 +36,15 @@ │ │ .field final synthetic val$uri:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/ResourceLoader;Landroid/content/Context;Ljava/lang/String;Lcom/koushikdutta/ion/Ion;IIZLjava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/ResourceLoader; │ │ .prologue │ .line 69 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/ResourceLoader$1;->this$0:Lcom/koushikdutta/ion/loader/ResourceLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/ResourceLoader$1;->val$context:Landroid/content/Context; ├── smali/com/koushikdutta/ion/loader/ResourceLoader$2.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/ion/loader/InputStreamDataEmitterFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/ResourceLoader;Lcom/koushikdutta/ion/Ion;Lcom/koushikdutta/async/http/AsyncHttpRequest;Lcom/koushikdutta/ion/loader/InputStreamDataEmitterFuture;Lcom/koushikdutta/async/future/FutureCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/ResourceLoader; │ │ .prologue │ .line 113 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/ResourceLoader$2;->this$0:Lcom/koushikdutta/ion/loader/ResourceLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/ResourceLoader$2;->val$ion:Lcom/koushikdutta/ion/Ion; ├── smali/com/koushikdutta/ion/loader/StreamLoader$1.smali │ @@ -36,14 +36,15 @@ │ │ .field final synthetic val$uri:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/StreamLoader;Landroid/content/Context;Ljava/lang/String;Lcom/koushikdutta/ion/Ion;IIZLjava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/StreamLoader; │ │ .prologue │ .line 44 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/StreamLoader$1;->this$0:Lcom/koushikdutta/ion/loader/StreamLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/StreamLoader$1;->val$context:Landroid/content/Context; ├── smali/com/koushikdutta/ion/loader/VideoLoader$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$uri:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/loader/VideoLoader;Ljava/lang/String;Lcom/koushikdutta/async/future/SimpleFuture;IILjava/lang/String;Lcom/koushikdutta/ion/loader/MediaFile$MediaFileType;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/loader/VideoLoader; │ │ .prologue │ .line 56 │ iput-object p1, p0, Lcom/koushikdutta/ion/loader/VideoLoader$1;->this$0:Lcom/koushikdutta/ion/loader/VideoLoader; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/loader/VideoLoader$1;->val$uri:Ljava/lang/String; ├── smali/com/koushikdutta/ion/mock/MockResponseFuture$1.smali │ @@ -30,14 +30,15 @@ │ │ .field final synthetic val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ │ # direct methods │ .method constructor (Lcom/koushikdutta/ion/mock/MockResponseFuture;Lcom/koushikdutta/async/future/SimpleFuture;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/koushikdutta/ion/mock/MockResponseFuture; │ │ .prologue │ .line 37 │ .local p0, "this":Lcom/koushikdutta/ion/mock/MockResponseFuture$1;, "Lcom/koushikdutta/ion/mock/MockResponseFuture.1;" │ iput-object p1, p0, Lcom/koushikdutta/ion/mock/MockResponseFuture$1;->this$0:Lcom/koushikdutta/ion/mock/MockResponseFuture; │ │ iput-object p2, p0, Lcom/koushikdutta/ion/mock/MockResponseFuture$1;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; ├── smali/layout/FragmentBoardItemList$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Llayout/FragmentBoardItemList; │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 192 │ iput-object p1, p0, Llayout/FragmentBoardItemList$1;->this$0:Llayout/FragmentBoardItemList; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/layout/FragmentBoardItemList$3.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$repliesForCatalog:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 457 │ iput-object p1, p0, Llayout/FragmentBoardItemList$3;->this$0:Llayout/FragmentBoardItemList; │ │ iput-object p2, p0, Llayout/FragmentBoardItemList$3;->val$repliesForCatalog:Ljava/lang/String; ├── smali/layout/FragmentBoardItemList$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic this$0:Llayout/FragmentBoardItemList; │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;)V │ .locals 1 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 206 │ iput-object p1, p0, Llayout/FragmentBoardItemList$2;->this$0:Llayout/FragmentBoardItemList; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -201,18 +202,25 @@ │ │ # setter for: Llayout/FragmentBoardItemList;->loadingMoreThreads:Z │ invoke-static {v2, v3}, Llayout/FragmentBoardItemList;->access$502(Llayout/FragmentBoardItemList;Z)Z │ │ .line 233 │ iget-object v2, p0, Llayout/FragmentBoardItemList$2;->this$0:Llayout/FragmentBoardItemList; │ │ - const/16 v3, 0xa │ + iget-object v3, p0, Llayout/FragmentBoardItemList$2;->this$0:Llayout/FragmentBoardItemList; │ │ - # += operator for: Llayout/FragmentBoardItemList;->currentOffset:I │ - invoke-static {v2, v3}, Llayout/FragmentBoardItemList;->access$612(Llayout/FragmentBoardItemList;I)I │ + # getter for: Llayout/FragmentBoardItemList;->currentOffset:I │ + invoke-static {v3}, Llayout/FragmentBoardItemList;->access$600(Llayout/FragmentBoardItemList;)I │ + │ + move-result v3 │ + │ + add-int/lit8 v3, v3, 0xa │ + │ + # setter for: Llayout/FragmentBoardItemList;->currentOffset:I │ + invoke-static {v2, v3}, Llayout/FragmentBoardItemList;->access$602(Llayout/FragmentBoardItemList;I)I │ │ .line 234 │ sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream; │ │ new-instance v3, Ljava/lang/StringBuilder; │ │ invoke-direct {v3}, Ljava/lang/StringBuilder;->()V ├── smali/layout/FragmentBoardItemList$4.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$finalLimit:I │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;I)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 580 │ iput-object p1, p0, Llayout/FragmentBoardItemList$4;->this$0:Llayout/FragmentBoardItemList; │ │ iput p2, p0, Llayout/FragmentBoardItemList$4;->val$finalLimit:I ├── smali/layout/FragmentBoardItemList$5.smali │ @@ -30,14 +30,15 @@ │ # instance fields │ .field final synthetic this$0:Llayout/FragmentBoardItemList; │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 667 │ iput-object p1, p0, Llayout/FragmentBoardItemList$5;->this$0:Llayout/FragmentBoardItemList; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/layout/FragmentBoardItemList$6.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$mypath:Ljava/io/File; │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;Lorg/bienvenidoainternet/app/structure/BoardItem;Ljava/io/File;)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 756 │ iput-object p1, p0, Llayout/FragmentBoardItemList$6;->this$0:Llayout/FragmentBoardItemList; │ │ iput-object p2, p0, Llayout/FragmentBoardItemList$6;->val$bi:Lorg/bienvenidoainternet/app/structure/BoardItem; ├── smali/layout/FragmentBoardItemList$7.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$imageOnly:Z │ │ │ # direct methods │ .method constructor (Llayout/FragmentBoardItemList;Z)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentBoardItemList; │ │ .prologue │ .line 787 │ iput-object p1, p0, Llayout/FragmentBoardItemList$7;->this$0:Llayout/FragmentBoardItemList; │ │ iput-boolean p2, p0, Llayout/FragmentBoardItemList$7;->val$imageOnly:Z ├── smali/layout/FragmentBoardItemList.smali │ @@ -231,28 +231,24 @@ │ .prologue │ .line 80 │ iget v0, p0, Llayout/FragmentBoardItemList;->currentOffset:I │ │ return v0 │ .end method │ │ -.method static synthetic access$612(Llayout/FragmentBoardItemList;I)I │ - .locals 1 │ +.method static synthetic access$602(Llayout/FragmentBoardItemList;I)I │ + .locals 0 │ .param p0, "x0" # Llayout/FragmentBoardItemList; │ .param p1, "x1" # I │ │ .prologue │ .line 80 │ - iget v0, p0, Llayout/FragmentBoardItemList;->currentOffset:I │ - │ - add-int/2addr v0, p1 │ - │ - iput v0, p0, Llayout/FragmentBoardItemList;->currentOffset:I │ + iput p1, p0, Llayout/FragmentBoardItemList;->currentOffset:I │ │ - return v0 │ + return p1 │ .end method │ │ .method static synthetic access$700(Llayout/FragmentBoardItemList;)V │ .locals 0 │ .param p0, "x0" # Llayout/FragmentBoardItemList; │ │ .prologue │ @@ -320,14 +316,15 @@ │ │ invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ iget-object v3, p0, Llayout/FragmentBoardItemList;->currentThread:Lorg/bienvenidoainternet/app/structure/BoardItem; │ │ + .line 784 │ invoke-virtual {v3}, Lorg/bienvenidoainternet/app/structure/BoardItem;->getParentBoard()Lorg/bienvenidoainternet/app/structure/Board; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardDir()Ljava/lang/String; │ │ move-result-object v3 │ @@ -385,34 +382,37 @@ │ │ check-cast v1, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v2, "deletePost" │ │ const/4 v3, 0x4 │ │ + .line 785 │ invoke-interface {v1, v2, v3}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 786 │ invoke-interface {v1}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v1 │ │ new-instance v2, Llayout/FragmentBoardItemList$7; │ │ invoke-direct {v2, p0, p1}, Llayout/FragmentBoardItemList$7;->(Llayout/FragmentBoardItemList;Z)V │ │ + .line 787 │ invoke-interface {v1, v2}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 812 │ return-void │ │ - .line 783 │ + .line 784 │ :cond_0 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private displayError(Ljava/lang/String;)V │ @@ -518,44 +518,49 @@ │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 663 │ invoke-interface {v1, v2}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v2, "getRecentPosts" │ │ const/4 v3, 0x4 │ │ + .line 664 │ invoke-interface {v1, v2, v3}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 665 │ invoke-interface {v1}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->noCache()Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v1 │ │ check-cast v1, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 666 │ invoke-interface {v1}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v1 │ │ new-instance v2, Llayout/FragmentBoardItemList$5; │ │ invoke-direct {v2, p0}, Llayout/FragmentBoardItemList$5;->(Llayout/FragmentBoardItemList;)V │ │ + .line 667 │ invoke-interface {v1, v2}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 710 │ return-void │ .end method │ │ .method private getThreadReplies()V │ @@ -653,14 +658,15 @@ │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ iget-object v6, p0, Llayout/FragmentBoardItemList;->currentThread:Lorg/bienvenidoainternet/app/structure/BoardItem; │ │ + .line 576 │ invoke-virtual {v6}, Lorg/bienvenidoainternet/app/structure/BoardItem;->realParentId()I │ │ move-result v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ @@ -709,34 +715,38 @@ │ │ check-cast v4, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v5, "getThreadReplies" │ │ const/4 v6, 0x4 │ │ + .line 577 │ invoke-interface {v4, v5, v6}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v4 │ │ check-cast v4, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 578 │ invoke-interface {v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->noCache()Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v4 │ │ check-cast v4, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 579 │ invoke-interface {v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v4 │ │ new-instance v5, Llayout/FragmentBoardItemList$4; │ │ invoke-direct {v5, p0, v0}, Llayout/FragmentBoardItemList$4;->(Llayout/FragmentBoardItemList;I)V │ │ + .line 580 │ invoke-interface {v4, v5}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 655 │ return-void │ │ .line 572 │ .end local v0 # "finalLimit":I │ @@ -1113,38 +1123,42 @@ │ │ move-result-object v10 │ │ invoke-static {v10}, Lcom/koushikdutta/ion/Ion;->with(Landroid/content/Context;)Lcom/koushikdutta/ion/builder/LoadBuilder; │ │ move-result-object v10 │ │ + .line 753 │ invoke-interface {v10, v5}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v10 │ │ check-cast v10, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v11, "getThumbnail" │ │ const/4 v12, 0x4 │ │ + .line 754 │ invoke-interface {v10, v11, v12}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v10 │ │ check-cast v10, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 755 │ invoke-interface {v10}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asBitmap()Lcom/koushikdutta/async/future/Future; │ │ move-result-object v10 │ │ new-instance v11, Llayout/FragmentBoardItemList$6; │ │ invoke-direct {v11, p0, p1, v8}, Llayout/FragmentBoardItemList$6;->(Llayout/FragmentBoardItemList;Lorg/bienvenidoainternet/app/structure/BoardItem;Ljava/io/File;)V │ │ + .line 756 │ invoke-interface {v10, v11}, Lcom/koushikdutta/async/future/Future;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ goto/16 :goto_2 │ │ .line 748 │ .end local v5 # "imgURL":Ljava/lang/String; │ :cond_6 │ @@ -1257,85 +1271,84 @@ │ :cond_0 │ return-void │ .end method │ │ │ # virtual methods │ .method public addReplyID(Ljava/lang/String;)I │ - .locals 5 │ + .locals 4 │ .param p1, "s" # Ljava/lang/String; │ │ .prologue │ .line 817 │ - iget-object v2, p0, Llayout/FragmentBoardItemList;->idList:Ljava/util/List; │ + iget-object v1, p0, Llayout/FragmentBoardItemList;->idList:Ljava/util/List; │ │ - new-instance v3, Lorg/bienvenidoainternet/app/structure/ReplyID; │ + new-instance v2, Lorg/bienvenidoainternet/app/structure/ReplyID; │ │ - iget-object v4, p0, Llayout/FragmentBoardItemList;->tm:Lorg/bienvenidoainternet/app/ThemeManager; │ + iget-object v3, p0, Llayout/FragmentBoardItemList;->tm:Lorg/bienvenidoainternet/app/ThemeManager; │ │ - invoke-direct {v3, p1, v4}, Lorg/bienvenidoainternet/app/structure/ReplyID;->(Ljava/lang/String;Lorg/bienvenidoainternet/app/ThemeManager;)V │ + invoke-direct {v2, p1, v3}, Lorg/bienvenidoainternet/app/structure/ReplyID;->(Ljava/lang/String;Lorg/bienvenidoainternet/app/ThemeManager;)V │ │ - invoke-interface {v2, v3}, Ljava/util/List;->contains(Ljava/lang/Object;)Z │ + invoke-interface {v1, v2}, Ljava/util/List;->contains(Ljava/lang/Object;)Z │ │ - move-result v2 │ + move-result v1 │ │ - if-nez v2, :cond_0 │ + if-nez v1, :cond_0 │ │ .line 818 │ - iget-object v2, p0, Llayout/FragmentBoardItemList;->idList:Ljava/util/List; │ + iget-object v1, p0, Llayout/FragmentBoardItemList;->idList:Ljava/util/List; │ │ - new-instance v3, Lorg/bienvenidoainternet/app/structure/ReplyID; │ + new-instance v2, Lorg/bienvenidoainternet/app/structure/ReplyID; │ │ - iget-object v4, p0, Llayout/FragmentBoardItemList;->tm:Lorg/bienvenidoainternet/app/ThemeManager; │ + iget-object v3, p0, Llayout/FragmentBoardItemList;->tm:Lorg/bienvenidoainternet/app/ThemeManager; │ │ - invoke-direct {v3, p1, v4}, Lorg/bienvenidoainternet/app/structure/ReplyID;->(Ljava/lang/String;Lorg/bienvenidoainternet/app/ThemeManager;)V │ + invoke-direct {v2, p1, v3}, Lorg/bienvenidoainternet/app/structure/ReplyID;->(Ljava/lang/String;Lorg/bienvenidoainternet/app/ThemeManager;)V │ │ - invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 820 │ :cond_0 │ - iget-object v2, p0, Llayout/FragmentBoardItemList;->idList:Ljava/util/List; │ + iget-object v1, p0, Llayout/FragmentBoardItemList;->idList:Ljava/util/List; │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_1 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/bienvenidoainternet/app/structure/ReplyID; │ + check-cast v0, Lorg/bienvenidoainternet/app/structure/ReplyID; │ │ .line 821 │ - .local v1, "r":Lorg/bienvenidoainternet/app/structure/ReplyID; │ - iget-object v2, v1, Lorg/bienvenidoainternet/app/structure/ReplyID;->id:Ljava/lang/String; │ + .local v0, "r":Lorg/bienvenidoainternet/app/structure/ReplyID; │ + iget-object v2, v0, Lorg/bienvenidoainternet/app/structure/ReplyID;->id:Ljava/lang/String; │ │ invoke-virtual {v2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - iget v2, v1, Lorg/bienvenidoainternet/app/structure/ReplyID;->color:I │ + iget v1, v0, Lorg/bienvenidoainternet/app/structure/ReplyID;->color:I │ │ .line 823 │ - .end local v1 # "r":Lorg/bienvenidoainternet/app/structure/ReplyID; │ + .end local v0 # "r":Lorg/bienvenidoainternet/app/structure/ReplyID; │ :goto_0 │ - return v2 │ + return v1 │ │ :cond_2 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public getMode()Z │ .locals 1 │ │ @@ -1409,14 +1422,15 @@ │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ iget-object v4, p0, Llayout/FragmentBoardItemList;->currentBoard:Lorg/bienvenidoainternet/app/structure/Board; │ │ + .line 453 │ invoke-virtual {v4}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardDir()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ @@ -1445,34 +1459,38 @@ │ │ check-cast v2, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v3, "getThreadList" │ │ const/4 v4, 0x4 │ │ + .line 454 │ invoke-interface {v2, v3, v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 455 │ invoke-interface {v2}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->noCache()Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 456 │ invoke-interface {v2}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v2 │ │ new-instance v3, Llayout/FragmentBoardItemList$3; │ │ invoke-direct {v3, p0, v0}, Llayout/FragmentBoardItemList$3;->(Llayout/FragmentBoardItemList;Ljava/lang/String;)V │ │ + .line 457 │ invoke-interface {v2, v3}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 560 │ return-void │ │ .line 447 │ .end local v0 # "repliesForCatalog":Ljava/lang/String; ├── smali/layout/FragmentImage$2.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$filePath:Ljava/io/File; │ │ │ # direct methods │ .method constructor (Llayout/FragmentImage;Ljava/io/File;)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentImage; │ │ .prologue │ .line 193 │ iput-object p1, p0, Llayout/FragmentImage$2;->this$0:Llayout/FragmentImage; │ │ iput-object p2, p0, Llayout/FragmentImage$2;->val$filePath:Ljava/io/File; ├── smali/layout/FragmentImage$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Llayout/FragmentImage; │ │ │ # direct methods │ .method constructor (Llayout/FragmentImage;)V │ .locals 0 │ + .param p1, "this$0" # Llayout/FragmentImage; │ │ .prologue │ .line 112 │ iput-object p1, p0, Llayout/FragmentImage$1;->this$0:Llayout/FragmentImage; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/layout/FragmentImage.smali │ @@ -217,36 +217,40 @@ │ │ move-result-object v5 │ │ iget-object v6, p0, Llayout/FragmentImage;->boardItemFile:Lorg/bienvenidoainternet/app/structure/BoardItemFile; │ │ iget-object v6, v6, Lorg/bienvenidoainternet/app/structure/BoardItemFile;->fileURL:Ljava/lang/String; │ │ + .line 190 │ invoke-interface {v5, v6}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v5 │ │ check-cast v5, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ iget-object v6, p0, Llayout/FragmentImage;->downloadBar:Landroid/widget/ProgressBar; │ │ + .line 191 │ invoke-interface {v5, v6}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->progressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v5 │ │ check-cast v5, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 192 │ invoke-interface {v5}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asInputStream()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v5 │ │ new-instance v6, Llayout/FragmentImage$2; │ │ invoke-direct {v6, p0, v3}, Llayout/FragmentImage$2;->(Llayout/FragmentImage;Ljava/io/File;)V │ │ + .line 193 │ invoke-interface {v5, v6}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 228 │ return-void │ │ .line 180 │ :catch_0 ├── smali/org/bienvenidoainternet/app/MainActivity$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/MainActivity; │ │ .prologue │ .line 121 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/MainActivity$1;->this$0:Lorg/bienvenidoainternet/app/MainActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/MainActivity$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/MainActivity; │ │ .prologue │ .line 185 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/MainActivity$2;->this$0:Lorg/bienvenidoainternet/app/MainActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/MainActivity$3.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$sub:Landroid/view/SubMenu; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/MainActivity;Landroid/view/SubMenu;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/MainActivity; │ │ .prologue │ .line 429 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/MainActivity$3;->this$0:Lorg/bienvenidoainternet/app/MainActivity; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/MainActivity$3;->val$sub:Landroid/view/SubMenu; ├── smali/org/bienvenidoainternet/app/MainActivity.smali │ @@ -110,52 +110,54 @@ │ │ invoke-static {v2}, Lcom/koushikdutta/ion/Ion;->with(Landroid/content/Context;)Lcom/koushikdutta/ion/builder/LoadBuilder; │ │ move-result-object v2 │ │ const-string v3, "http://bienvenidoainternet.org/cgi/api/boards" │ │ + .line 427 │ invoke-interface {v2, v3}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 428 │ invoke-interface {v2}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v2 │ │ new-instance v3, Lorg/bienvenidoainternet/app/MainActivity$3; │ │ invoke-direct {v3, p0, v1}, Lorg/bienvenidoainternet/app/MainActivity$3;->(Lorg/bienvenidoainternet/app/MainActivity;Landroid/view/SubMenu;)V │ │ + .line 429 │ invoke-interface {v2, v3}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 455 │ invoke-virtual {p0}, Lorg/bienvenidoainternet/app/MainActivity;->refreshNavigator()V │ │ .line 456 │ return-void │ .end method │ │ │ # virtual methods │ .method public getBoardFromDir(Ljava/lang/String;)Lorg/bienvenidoainternet/app/structure/Board; │ - .locals 5 │ + .locals 4 │ .param p1, "dir" # Ljava/lang/String; │ │ .prologue │ .line 347 │ - iget-object v2, p0, Lorg/bienvenidoainternet/app/MainActivity;->boardList:Ljava/util/ArrayList; │ + iget-object v1, p0, Lorg/bienvenidoainternet/app/MainActivity;->boardList:Ljava/util/ArrayList; │ │ - invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ @@ -180,35 +182,35 @@ │ .line 353 │ .end local v0 # "b":Lorg/bienvenidoainternet/app/structure/Board; │ :goto_0 │ return-object v0 │ │ .line 352 │ :cond_1 │ - sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream; │ + sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; │ │ - new-instance v3, Ljava/lang/StringBuilder; │ + new-instance v2, Ljava/lang/StringBuilder; │ │ - invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ - const-string v4, "[MainActivity] Board not found " │ + const-string v3, "[MainActivity] Board not found " │ │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-virtual {v2, v3}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V │ + invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V │ │ .line 353 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ @@ -464,19 +466,19 @@ │ :cond_1 │ invoke-super {p0}, Landroid/support/v7/app/AppCompatActivity;->onBackPressed()V │ │ goto :goto_0 │ .end method │ │ .method protected onCreate(Landroid/os/Bundle;)V │ - .locals 14 │ + .locals 13 │ .param p1, "savedInstanceState" # Landroid/os/Bundle; │ │ .prologue │ - const/4 v13, 0x0 │ + const/4 v12, 0x0 │ │ .line 98 │ invoke-virtual {p0}, Lorg/bienvenidoainternet/app/MainActivity;->getWindow()Landroid/view/Window; │ │ move-result-object v1 │ │ const/16 v2, 0x9 │ @@ -502,21 +504,21 @@ │ const-string v2, "IonLog" │ │ const/4 v3, 0x3 │ │ invoke-virtual {v1, v2, v3}, Lcom/koushikdutta/ion/Ion$Config;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/Ion$Config; │ │ .line 101 │ - new-instance v12, Lorg/bienvenidoainternet/app/ThemeManager; │ + new-instance v11, Lorg/bienvenidoainternet/app/ThemeManager; │ │ - invoke-direct {v12, p0}, Lorg/bienvenidoainternet/app/ThemeManager;->(Landroid/app/Activity;)V │ + invoke-direct {v11, p0}, Lorg/bienvenidoainternet/app/ThemeManager;->(Landroid/app/Activity;)V │ │ .line 102 │ - .local v12, "tm":Lorg/bienvenidoainternet/app/ThemeManager; │ - invoke-virtual {v12}, Lorg/bienvenidoainternet/app/ThemeManager;->getThemeForMainActivity()I │ + .local v11, "tm":Lorg/bienvenidoainternet/app/ThemeManager; │ + invoke-virtual {v11}, Lorg/bienvenidoainternet/app/ThemeManager;->getThemeForMainActivity()I │ │ move-result v1 │ │ invoke-virtual {p0, v1}, Lorg/bienvenidoainternet/app/MainActivity;->setTheme(I)V │ │ .line 104 │ if-eqz p1, :cond_0 │ @@ -539,34 +541,34 @@ │ │ iput-object v1, p0, Lorg/bienvenidoainternet/app/MainActivity;->boardList:Ljava/util/ArrayList; │ │ .line 108 │ :cond_0 │ invoke-static {p0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ - move-result-object v10 │ + move-result-object v9 │ │ .line 109 │ - .local v10, "settings":Landroid/content/SharedPreferences; │ + .local v9, "settings":Landroid/content/SharedPreferences; │ const-string v1, "pref_password" │ │ const-string v2, "" │ │ - invoke-interface {v10, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + invoke-interface {v9, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ .line 110 │ - invoke-interface {v10}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ + invoke-interface {v9}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ move-result-object v7 │ │ .line 111 │ .local v7, "edit":Landroid/content/SharedPreferences$Editor; │ const-string v1, "pref_password" │ │ @@ -783,90 +785,89 @@ │ if-eqz v1, :cond_4 │ │ .line 227 │ invoke-direct {p0}, Lorg/bienvenidoainternet/app/MainActivity;->getBoardList()V │ │ .line 237 │ :goto_1 │ - invoke-virtual {v12}, Lorg/bienvenidoainternet/app/ThemeManager;->isDarkTheme()Z │ + invoke-virtual {v11}, Lorg/bienvenidoainternet/app/ThemeManager;->isDarkTheme()Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ .line 240 │ :cond_2 │ return-void │ │ .line 175 │ :cond_3 │ const/4 v1, 0x1 │ │ - invoke-static {v1, v13, v13}, Llayout/FragmentBoardItemList;->newInstance(ZLorg/bienvenidoainternet/app/structure/Board;Lorg/bienvenidoainternet/app/structure/BoardItem;)Llayout/FragmentBoardItemList; │ + invoke-static {v1, v12, v12}, Llayout/FragmentBoardItemList;->newInstance(ZLorg/bienvenidoainternet/app/structure/Board;Lorg/bienvenidoainternet/app/structure/BoardItem;)Llayout/FragmentBoardItemList; │ │ move-result-object v1 │ │ iput-object v1, p0, Lorg/bienvenidoainternet/app/MainActivity;->mainFragment:Llayout/FragmentBoardItemList; │ │ .line 176 │ const/4 v1, 0x0 │ │ - invoke-static {v1, v13, v13}, Llayout/FragmentBoardItemList;->newInstance(ZLorg/bienvenidoainternet/app/structure/Board;Lorg/bienvenidoainternet/app/structure/BoardItem;)Llayout/FragmentBoardItemList; │ + invoke-static {v1, v12, v12}, Llayout/FragmentBoardItemList;->newInstance(ZLorg/bienvenidoainternet/app/structure/Board;Lorg/bienvenidoainternet/app/structure/BoardItem;)Llayout/FragmentBoardItemList; │ │ move-result-object v1 │ │ iput-object v1, p0, Lorg/bienvenidoainternet/app/MainActivity;->childFragment:Llayout/FragmentBoardItemList; │ │ goto :goto_0 │ │ .line 229 │ :cond_4 │ iget-object v1, p0, Lorg/bienvenidoainternet/app/MainActivity;->navigationView:Landroid/support/design/widget/NavigationView; │ │ invoke-virtual {v1}, Landroid/support/design/widget/NavigationView;->getMenu()Landroid/view/Menu; │ │ - move-result-object v9 │ + move-result-object v8 │ │ .line 230 │ - .local v9, "menu":Landroid/view/Menu; │ + .local v8, "menu":Landroid/view/Menu; │ const-string v1, "Lista de Boards" │ │ - invoke-interface {v9, v1}, Landroid/view/Menu;->addSubMenu(Ljava/lang/CharSequence;)Landroid/view/SubMenu; │ + invoke-interface {v8, v1}, Landroid/view/Menu;->addSubMenu(Ljava/lang/CharSequence;)Landroid/view/SubMenu; │ │ - move-result-object v11 │ + move-result-object v10 │ │ .line 231 │ - .local v11, "sub":Landroid/view/SubMenu; │ + .local v10, "sub":Landroid/view/SubMenu; │ iget-object v1, p0, Lorg/bienvenidoainternet/app/MainActivity;->boardList:Ljava/util/ArrayList; │ │ invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v8 │ + move-result-object v1 │ │ - .local v8, "i$":Ljava/util/Iterator; │ :goto_2 │ - invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v1 │ + move-result v2 │ │ - if-eqz v1, :cond_5 │ + if-eqz v2, :cond_5 │ │ - invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lorg/bienvenidoainternet/app/structure/Board; │ │ .line 232 │ .local v6, "b":Lorg/bienvenidoainternet/app/structure/Board; │ invoke-virtual {v6}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardName()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - invoke-interface {v11, v1}, Landroid/view/SubMenu;->add(Ljava/lang/CharSequence;)Landroid/view/MenuItem; │ + invoke-interface {v10, v2}, Landroid/view/SubMenu;->add(Ljava/lang/CharSequence;)Landroid/view/MenuItem; │ │ goto :goto_2 │ │ .line 234 │ .end local v6 # "b":Lorg/bienvenidoainternet/app/structure/Board; │ :cond_5 │ invoke-virtual {p0}, Lorg/bienvenidoainternet/app/MainActivity;->refreshNavigator()V │ @@ -909,88 +910,87 @@ │ │ .prologue │ const v8, 0x7f0e00ad │ │ const/4 v7, 0x0 │ │ .line 324 │ - const v4, 0x7f0e006a │ + const v3, 0x7f0e006a │ │ - invoke-virtual {p0, v4}, Lorg/bienvenidoainternet/app/MainActivity;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lorg/bienvenidoainternet/app/MainActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/support/v4/widget/DrawerLayout; │ │ .line 325 │ .local v1, "drawer":Landroid/support/v4/widget/DrawerLayout; │ - const v4, 0x800003 │ + const v3, 0x800003 │ │ - invoke-virtual {v1, v4}, Landroid/support/v4/widget/DrawerLayout;->closeDrawer(I)V │ + invoke-virtual {v1, v3}, Landroid/support/v4/widget/DrawerLayout;->closeDrawer(I)V │ │ .line 326 │ invoke-interface {p1}, Landroid/view/MenuItem;->getItemId()I │ │ - move-result v3 │ + move-result v2 │ │ .line 327 │ - .local v3, "id":I │ - iget-object v4, p0, Lorg/bienvenidoainternet/app/MainActivity;->toolbar:Landroid/support/v7/widget/Toolbar; │ + .local v2, "id":I │ + iget-object v3, p0, Lorg/bienvenidoainternet/app/MainActivity;->toolbar:Landroid/support/v7/widget/Toolbar; │ │ invoke-interface {p1}, Landroid/view/MenuItem;->getTitle()Ljava/lang/CharSequence; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v4, v5}, Landroid/support/v7/widget/Toolbar;->setSubtitle(Ljava/lang/CharSequence;)V │ + invoke-virtual {v3, v4}, Landroid/support/v7/widget/Toolbar;->setSubtitle(Ljava/lang/CharSequence;)V │ │ .line 328 │ - if-ne v3, v8, :cond_0 │ + if-ne v2, v8, :cond_0 │ │ .line 329 │ - iget-object v4, p0, Lorg/bienvenidoainternet/app/MainActivity;->toolbar:Landroid/support/v7/widget/Toolbar; │ + iget-object v3, p0, Lorg/bienvenidoainternet/app/MainActivity;->toolbar:Landroid/support/v7/widget/Toolbar; │ │ - const-string v5, "Post recientes" │ + const-string v4, "Post recientes" │ │ - invoke-virtual {v4, v5}, Landroid/support/v7/widget/Toolbar;->setTitle(Ljava/lang/CharSequence;)V │ + invoke-virtual {v3, v4}, Landroid/support/v7/widget/Toolbar;->setTitle(Ljava/lang/CharSequence;)V │ │ .line 330 │ - iget-object v4, p0, Lorg/bienvenidoainternet/app/MainActivity;->toolbar:Landroid/support/v7/widget/Toolbar; │ + iget-object v3, p0, Lorg/bienvenidoainternet/app/MainActivity;->toolbar:Landroid/support/v7/widget/Toolbar; │ │ - const-string v5, "" │ + const-string v4, "" │ │ - invoke-virtual {v4, v5}, Landroid/support/v7/widget/Toolbar;->setSubtitle(Ljava/lang/CharSequence;)V │ + invoke-virtual {v3, v4}, Landroid/support/v7/widget/Toolbar;->setSubtitle(Ljava/lang/CharSequence;)V │ │ .line 331 │ - iget-object v4, p0, Lorg/bienvenidoainternet/app/MainActivity;->pager:Landroid/support/v4/view/ViewPager; │ + iget-object v3, p0, Lorg/bienvenidoainternet/app/MainActivity;->pager:Landroid/support/v4/view/ViewPager; │ │ - invoke-virtual {v4, v7}, Landroid/support/v4/view/ViewPager;->setCurrentItem(I)V │ + invoke-virtual {v3, v7}, Landroid/support/v4/view/ViewPager;->setCurrentItem(I)V │ │ .line 332 │ - iget-object v4, p0, Lorg/bienvenidoainternet/app/MainActivity;->mainFragment:Llayout/FragmentBoardItemList; │ + iget-object v3, p0, Lorg/bienvenidoainternet/app/MainActivity;->mainFragment:Llayout/FragmentBoardItemList; │ │ - invoke-virtual {v4}, Llayout/FragmentBoardItemList;->loadRecentPost()V │ + invoke-virtual {v3}, Llayout/FragmentBoardItemList;->loadRecentPost()V │ │ .line 334 │ :cond_0 │ - iget-object v4, p0, Lorg/bienvenidoainternet/app/MainActivity;->boardList:Ljava/util/ArrayList; │ + iget-object v3, p0, Lorg/bienvenidoainternet/app/MainActivity;->boardList:Ljava/util/ArrayList; │ │ - invoke-virtual {v4}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_1 │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/bienvenidoainternet/app/structure/Board; │ │ .line 335 │ .local v0, "b":Lorg/bienvenidoainternet/app/structure/Board; │ @@ -1076,17 +1076,17 @@ │ invoke-interface {v4, v7}, Landroid/view/MenuItem;->setChecked(Z)Landroid/view/MenuItem; │ │ goto :goto_0 │ │ .line 343 │ .end local v0 # "b":Lorg/bienvenidoainternet/app/structure/Board; │ :cond_2 │ - const/4 v4, 0x1 │ + const/4 v3, 0x1 │ │ - return v4 │ + return v3 │ .end method │ │ .method public onOptionsItemSelected(Landroid/view/MenuItem;)Z │ .locals 5 │ .param p1, "item" # Landroid/view/MenuItem; │ │ .prologue ├── smali/org/bienvenidoainternet/app/R.smali │ @@ -30,10 +30,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 3016 │ return-void │ .end method ├── smali/org/bienvenidoainternet/app/RecentPostAdapter.smali │ @@ -68,90 +68,89 @@ │ │ move-result-wide v14 │ │ sub-long v2, v12, v14 │ │ .line 93 │ .local v2, "diffInMillies":J │ - new-instance v11, Ljava/util/ArrayList; │ + new-instance v10, Ljava/util/ArrayList; │ │ - const-class v12, Ljava/util/concurrent/TimeUnit; │ + const-class v11, Ljava/util/concurrent/TimeUnit; │ │ - invoke-static {v12}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet; │ + invoke-static {v11}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet; │ │ - move-result-object v12 │ + move-result-object v11 │ │ - invoke-direct {v11, v12}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V │ + invoke-direct {v10, v11}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V │ │ .line 94 │ - .local v11, "units":Ljava/util/List;, "Ljava/util/List;" │ - invoke-static {v11}, Ljava/util/Collections;->reverse(Ljava/util/List;)V │ + .local v10, "units":Ljava/util/List;, "Ljava/util/List;" │ + invoke-static {v10}, Ljava/util/Collections;->reverse(Ljava/util/List;)V │ │ .line 95 │ - new-instance v7, Ljava/util/LinkedHashMap; │ + new-instance v8, Ljava/util/LinkedHashMap; │ │ - invoke-direct {v7}, Ljava/util/LinkedHashMap;->()V │ + invoke-direct {v8}, Ljava/util/LinkedHashMap;->()V │ │ .line 96 │ - .local v7, "result":Ljava/util/Map;, "Ljava/util/Map;" │ - move-wide v8, v2 │ + .local v8, "result":Ljava/util/Map;, "Ljava/util/Map;" │ + move-wide v6, v2 │ │ .line 97 │ - .local v8, "milliesRest":J │ - invoke-interface {v11}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v6, "milliesRest":J │ + invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v6 │ + move-result-object v11 │ │ - .local v6, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v12 │ │ if-eqz v12, :cond_0 │ │ - invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - check-cast v10, Ljava/util/concurrent/TimeUnit; │ + check-cast v9, Ljava/util/concurrent/TimeUnit; │ │ .line 98 │ - .local v10, "unit":Ljava/util/concurrent/TimeUnit; │ + .local v9, "unit":Ljava/util/concurrent/TimeUnit; │ sget-object v12, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ │ - invoke-virtual {v10, v8, v9, v12}, Ljava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J │ + invoke-virtual {v9, v6, v7, v12}, Ljava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J │ │ move-result-wide v0 │ │ .line 99 │ .local v0, "diff":J │ - invoke-virtual {v10, v0, v1}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J │ + invoke-virtual {v9, v0, v1}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J │ │ move-result-wide v4 │ │ .line 100 │ .local v4, "diffInMilliesForUnit":J │ - sub-long/2addr v8, v4 │ + sub-long/2addr v6, v4 │ │ .line 101 │ invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v12 │ │ - invoke-interface {v7, v10, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v8, v9, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 103 │ .end local v0 # "diff":J │ .end local v4 # "diffInMilliesForUnit":J │ - .end local v10 # "unit":Ljava/util/concurrent/TimeUnit; │ + .end local v9 # "unit":Ljava/util/concurrent/TimeUnit; │ :cond_0 │ - return-object v7 │ + return-object v8 │ .end method │ │ │ # virtual methods │ .method public getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View; │ .locals 16 │ .param p1, "position" # I │ @@ -162,14 +161,15 @@ │ .line 48 │ invoke-virtual/range {p0 .. p0}, Lorg/bienvenidoainternet/app/RecentPostAdapter;->getContext()Landroid/content/Context; │ │ move-result-object v10 │ │ const-string v11, "layout_inflater" │ │ + .line 49 │ invoke-virtual {v10, v11}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Landroid/view/LayoutInflater; │ │ .line 50 ├── smali/org/bienvenidoainternet/app/ResponseActivity$10.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$formSendPost:Landroid/widget/RelativeLayout; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 320 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$10;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/ResponseActivity$10;->val$formSendPost:Landroid/widget/RelativeLayout; ├── smali/org/bienvenidoainternet/app/ResponseActivity$11.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$formSendPost:Landroid/widget/RelativeLayout; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 354 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$11;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/ResponseActivity$11;->val$formSendPost:Landroid/widget/RelativeLayout; ├── smali/org/bienvenidoainternet/app/ResponseActivity$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 124 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$1;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 130 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$2;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 136 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$3;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$4.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 142 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$4;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$5.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 148 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$5;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$6.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 154 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$6;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$7.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 161 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$7;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/bienvenidoainternet/app/ResponseActivity$8.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$formSendPost:Landroid/widget/RelativeLayout; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 251 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$8;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/ResponseActivity$8;->val$formSendPost:Landroid/widget/RelativeLayout; ├── smali/org/bienvenidoainternet/app/ResponseActivity$9.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$formSendPost:Landroid/widget/RelativeLayout; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ResponseActivity; │ │ .prologue │ .line 284 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ResponseActivity$9;->this$0:Lorg/bienvenidoainternet/app/ResponseActivity; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/ResponseActivity$9;->val$formSendPost:Landroid/widget/RelativeLayout; ├── smali/org/bienvenidoainternet/app/ResponseActivity.smali │ @@ -363,38 +363,42 @@ │ │ invoke-static {v6}, Lcom/koushikdutta/ion/Ion;->with(Landroid/content/Context;)Lcom/koushikdutta/ion/builder/LoadBuilder; │ │ move-result-object v6 │ │ const-string v7, "http://bienvenidoainternet.org/cgi/post" │ │ + .line 238 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v7, "posting" │ │ + .line 239 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 240 │ invoke-interface {v6, v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->uploadProgressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v7, "board" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->theReply:Lorg/bienvenidoainternet/app/structure/BoardItem; │ │ + .line 241 │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/BoardItem;->getParentBoard()Lorg/bienvenidoainternet/app/structure/Board; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardDir()Ljava/lang/String; │ │ move-result-object v8 │ @@ -405,90 +409,100 @@ │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "password" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->password:Ljava/lang/String; │ │ + .line 242 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fielda" │ │ + .line 243 │ invoke-interface {v6, v7, p1}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fieldb" │ │ + .line 244 │ invoke-interface {v6, v7, p2}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "name" │ │ const-string v8, "" │ │ + .line 245 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "email" │ │ const-string v8, "" │ │ + .line 246 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "message" │ │ + .line 247 │ invoke-interface {v6, v7, p3}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "subject" │ │ + .line 248 │ invoke-interface {v6, v7, p4}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "noimage" │ │ const-string v8, "on" │ │ + .line 249 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ + .line 250 │ invoke-interface {v6}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v6 │ │ new-instance v7, Lorg/bienvenidoainternet/app/ResponseActivity$8; │ │ invoke-direct {v7, p0, v1, v0}, Lorg/bienvenidoainternet/app/ResponseActivity$8;->(Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ │ + .line 251 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ .line 375 │ :goto_0 │ return-void │ │ .line 271 │ @@ -499,30 +513,33 @@ │ │ invoke-static {v6}, Lcom/koushikdutta/ion/Ion;->with(Landroid/content/Context;)Lcom/koushikdutta/ion/builder/LoadBuilder; │ │ move-result-object v6 │ │ const-string v7, "http://bienvenidoainternet.org/cgi/post" │ │ + .line 272 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 273 │ invoke-interface {v6, v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->uploadProgressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v7, "board" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->theReply:Lorg/bienvenidoainternet/app/structure/BoardItem; │ │ + .line 274 │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/BoardItem;->getParentBoard()Lorg/bienvenidoainternet/app/structure/Board; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardDir()Ljava/lang/String; │ │ move-result-object v8 │ @@ -533,88 +550,98 @@ │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "password" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->password:Ljava/lang/String; │ │ + .line 275 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fielda" │ │ + .line 276 │ invoke-interface {v6, v7, p1}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fieldb" │ │ + .line 277 │ invoke-interface {v6, v7, p2}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "name" │ │ const-string v8, "" │ │ + .line 278 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "email" │ │ const-string v8, "" │ │ + .line 279 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "message" │ │ + .line 280 │ invoke-interface {v6, v7, p3}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "subject" │ │ + .line 281 │ invoke-interface {v6, v7, p4}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "file" │ │ + .line 282 │ invoke-interface {v6, v7, v5}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartFile(Ljava/lang/String;Ljava/io/File;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ + .line 283 │ invoke-interface {v6}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v6 │ │ new-instance v7, Lorg/bienvenidoainternet/app/ResponseActivity$9; │ │ invoke-direct {v7, p0, v1, v0}, Lorg/bienvenidoainternet/app/ResponseActivity$9;->(Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ │ + .line 284 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ goto :goto_0 │ │ .line 305 │ :cond_2 │ iget-object v6, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->selectedFile:Ljava/lang/String; │ @@ -632,38 +659,42 @@ │ │ invoke-static {v6}, Lcom/koushikdutta/ion/Ion;->with(Landroid/content/Context;)Lcom/koushikdutta/ion/builder/LoadBuilder; │ │ move-result-object v6 │ │ const-string v7, "http://bienvenidoainternet.org/cgi/post" │ │ + .line 307 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v7, "posting" │ │ + .line 308 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->setLogging(Ljava/lang/String;I)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 309 │ invoke-interface {v6, v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->uploadProgressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v7, "board" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->theReply:Lorg/bienvenidoainternet/app/structure/BoardItem; │ │ + .line 310 │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/BoardItem;->getParentBoard()Lorg/bienvenidoainternet/app/structure/Board; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardDir()Ljava/lang/String; │ │ move-result-object v8 │ @@ -672,94 +703,104 @@ │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "parent" │ │ + .line 311 │ invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v8 │ │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "password" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->password:Ljava/lang/String; │ │ + .line 312 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fielda" │ │ + .line 313 │ invoke-interface {v6, v7, p1}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fieldb" │ │ + .line 314 │ invoke-interface {v6, v7, p2}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "name" │ │ const-string v8, "" │ │ + .line 315 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "email" │ │ const-string v8, "" │ │ + .line 316 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "message" │ │ + .line 317 │ invoke-interface {v6, v7, p3}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "subject" │ │ + .line 318 │ invoke-interface {v6, v7, p4}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ + .line 319 │ invoke-interface {v6}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v6 │ │ new-instance v7, Lorg/bienvenidoainternet/app/ResponseActivity$10; │ │ invoke-direct {v7, p0, v1, v0}, Lorg/bienvenidoainternet/app/ResponseActivity$10;->(Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ │ + .line 320 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ goto/16 :goto_0 │ │ .line 340 │ :cond_3 │ invoke-virtual {p0}, Lorg/bienvenidoainternet/app/ResponseActivity;->getApplicationContext()Landroid/content/Context; │ @@ -768,30 +809,33 @@ │ │ invoke-static {v6}, Lcom/koushikdutta/ion/Ion;->with(Landroid/content/Context;)Lcom/koushikdutta/ion/builder/LoadBuilder; │ │ move-result-object v6 │ │ const-string v7, "http://bienvenidoainternet.org/cgi/post" │ │ + .line 341 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/builder/LoadBuilder;->load(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ + .line 342 │ invoke-interface {v6, v4}, Lcom/koushikdutta/ion/builder/Builders$Any$B;->uploadProgressBar(Landroid/widget/ProgressBar;)Lcom/koushikdutta/ion/builder/RequestBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$B; │ │ const-string v7, "board" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->theReply:Lorg/bienvenidoainternet/app/structure/BoardItem; │ │ + .line 343 │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/BoardItem;->getParentBoard()Lorg/bienvenidoainternet/app/structure/Board; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Lorg/bienvenidoainternet/app/structure/Board;->getBoardDir()Ljava/lang/String; │ │ move-result-object v8 │ @@ -800,102 +844,113 @@ │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "parent" │ │ + .line 344 │ invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v8 │ │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "password" │ │ iget-object v8, p0, Lorg/bienvenidoainternet/app/ResponseActivity;->password:Ljava/lang/String; │ │ + .line 345 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fielda" │ │ + .line 346 │ invoke-interface {v6, v7, p1}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "fieldb" │ │ + .line 347 │ invoke-interface {v6, v7, p2}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "name" │ │ const-string v8, "" │ │ + .line 348 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "email" │ │ const-string v8, "" │ │ + .line 349 │ invoke-interface {v6, v7, v8}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "message" │ │ + .line 350 │ invoke-interface {v6, v7, p3}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "subject" │ │ + .line 351 │ invoke-interface {v6, v7, p4}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ const-string v7, "file" │ │ + .line 352 │ invoke-interface {v6, v7, v5}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->setMultipartFile(Ljava/lang/String;Ljava/io/File;)Lcom/koushikdutta/ion/builder/MultipartBodyBuilder; │ │ move-result-object v6 │ │ check-cast v6, Lcom/koushikdutta/ion/builder/Builders$Any$M; │ │ + .line 353 │ invoke-interface {v6}, Lcom/koushikdutta/ion/builder/Builders$Any$M;->asString()Lcom/koushikdutta/ion/future/ResponseFuture; │ │ move-result-object v6 │ │ new-instance v7, Lorg/bienvenidoainternet/app/ResponseActivity$11; │ │ invoke-direct {v7, p0, v1, v0}, Lorg/bienvenidoainternet/app/ResponseActivity$11;->(Lorg/bienvenidoainternet/app/ResponseActivity;Landroid/widget/RelativeLayout;Landroid/widget/TextView;)V │ │ + .line 354 │ invoke-interface {v6, v7}, Lcom/koushikdutta/ion/future/ResponseFuture;->setCallback(Lcom/koushikdutta/async/future/FutureCallback;)Lcom/koushikdutta/async/future/Future; │ │ goto/16 :goto_0 │ .end method │ │ │ # virtual methods ├── smali/org/bienvenidoainternet/app/SettingsActivity$1.smali │ @@ -58,20 +58,22 @@ │ │ move-result v0 │ │ .line 68 │ .local v0, "index":I │ if-ltz v0, :cond_0 │ │ + .line 70 │ invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntries()[Ljava/lang/CharSequence; │ │ move-result-object v3 │ │ aget-object v3, v3, v0 │ │ + .line 68 │ :goto_0 │ invoke-virtual {p1, v3}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V │ │ .line 78 │ .end local v0 # "index":I │ .end local v1 # "listPreference":Landroid/preference/ListPreference; │ :goto_1 │ @@ -84,15 +86,15 @@ │ invoke-virtual {v3, v4}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V │ │ .line 79 │ const/4 v3, 0x1 │ │ return v3 │ │ - .line 68 │ + .line 70 │ .restart local v0 # "index":I │ .restart local v1 # "listPreference":Landroid/preference/ListPreference; │ :cond_0 │ const/4 v3, 0x0 │ │ goto :goto_0 ├── smali/org/bienvenidoainternet/app/SettingsActivity.smali │ @@ -40,15 +40,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 50 │ invoke-direct {p0}, Lorg/bienvenidoainternet/app/AppCompatPreferenceActivity;->()V │ │ - .line 174 │ return-void │ .end method │ │ .method static synthetic access$000(Landroid/preference/Preference;)V │ .locals 0 │ .param p0, "x0" # Landroid/preference/Preference; │ │ @@ -73,32 +72,35 @@ │ const/4 v0, 0x1 │ │ sput-boolean v0, Lorg/bienvenidoainternet/app/SettingsActivity;->requireReset:Z │ │ .line 107 │ sget-object v0, Lorg/bienvenidoainternet/app/SettingsActivity;->sBindPreferenceSummaryToValueListener:Landroid/preference/Preference$OnPreferenceChangeListener; │ │ + .line 109 │ invoke-virtual {p0}, Landroid/preference/Preference;->getContext()Landroid/content/Context; │ │ move-result-object v1 │ │ invoke-static {v1}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ move-result-object v1 │ │ + .line 110 │ invoke-virtual {p0}, Landroid/preference/Preference;->getKey()Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "" │ │ invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 107 │ invoke-interface {v0, p0, v1}, Landroid/preference/Preference$OnPreferenceChangeListener;->onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z │ │ .line 111 │ return-void │ .end method │ │ .method private static isXLargeTablet(Landroid/content/Context;)Z │ @@ -175,30 +177,33 @@ │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-class v0, Lorg/bienvenidoainternet/app/SettingsActivity$GeneralPreferenceFragment; │ │ + .line 157 │ invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 156 │ :goto_0 │ return v0 │ │ + .line 157 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public onBackPressed()V ├── smali/org/bienvenidoainternet/app/ThreadListAdapter$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$convertView:Landroid/view/View; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ThreadListAdapter;Lorg/bienvenidoainternet/app/structure/BoardItem;Landroid/view/View;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ThreadListAdapter; │ │ .prologue │ .line 139 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ThreadListAdapter$1;->this$0:Lorg/bienvenidoainternet/app/ThreadListAdapter; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/ThreadListAdapter$1;->val$boardItem:Lorg/bienvenidoainternet/app/structure/BoardItem; ├── smali/org/bienvenidoainternet/app/ThreadListAdapter$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$convertView:Landroid/view/View; │ │ │ # direct methods │ .method constructor (Lorg/bienvenidoainternet/app/ThreadListAdapter;Landroid/view/View;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/bienvenidoainternet/app/ThreadListAdapter; │ │ .prologue │ .line 288 │ iput-object p1, p0, Lorg/bienvenidoainternet/app/ThreadListAdapter$2;->this$0:Lorg/bienvenidoainternet/app/ThreadListAdapter; │ │ iput-object p2, p0, Lorg/bienvenidoainternet/app/ThreadListAdapter$2;->val$convertView:Landroid/view/View; ├── smali/org/bienvenidoainternet/app/ThreadListAdapter.smali │ @@ -136,90 +136,89 @@ │ │ move-result-wide v14 │ │ sub-long v2, v12, v14 │ │ .line 80 │ .local v2, "diffInMillies":J │ - new-instance v11, Ljava/util/ArrayList; │ + new-instance v10, Ljava/util/ArrayList; │ │ - const-class v12, Ljava/util/concurrent/TimeUnit; │ + const-class v11, Ljava/util/concurrent/TimeUnit; │ │ - invoke-static {v12}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet; │ + invoke-static {v11}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet; │ │ - move-result-object v12 │ + move-result-object v11 │ │ - invoke-direct {v11, v12}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V │ + invoke-direct {v10, v11}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V │ │ .line 81 │ - .local v11, "units":Ljava/util/List;, "Ljava/util/List;" │ - invoke-static {v11}, Ljava/util/Collections;->reverse(Ljava/util/List;)V │ + .local v10, "units":Ljava/util/List;, "Ljava/util/List;" │ + invoke-static {v10}, Ljava/util/Collections;->reverse(Ljava/util/List;)V │ │ .line 82 │ - new-instance v7, Ljava/util/LinkedHashMap; │ + new-instance v8, Ljava/util/LinkedHashMap; │ │ - invoke-direct {v7}, Ljava/util/LinkedHashMap;->()V │ + invoke-direct {v8}, Ljava/util/LinkedHashMap;->()V │ │ .line 83 │ - .local v7, "result":Ljava/util/Map;, "Ljava/util/Map;" │ - move-wide v8, v2 │ + .local v8, "result":Ljava/util/Map;, "Ljava/util/Map;" │ + move-wide v6, v2 │ │ .line 84 │ - .local v8, "milliesRest":J │ - invoke-interface {v11}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v6, "milliesRest":J │ + invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v6 │ + move-result-object v11 │ │ - .local v6, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v12 │ │ if-eqz v12, :cond_0 │ │ - invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - check-cast v10, Ljava/util/concurrent/TimeUnit; │ + check-cast v9, Ljava/util/concurrent/TimeUnit; │ │ .line 85 │ - .local v10, "unit":Ljava/util/concurrent/TimeUnit; │ + .local v9, "unit":Ljava/util/concurrent/TimeUnit; │ sget-object v12, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ │ - invoke-virtual {v10, v8, v9, v12}, Ljava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J │ + invoke-virtual {v9, v6, v7, v12}, Ljava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J │ │ move-result-wide v0 │ │ .line 86 │ .local v0, "diff":J │ - invoke-virtual {v10, v0, v1}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J │ + invoke-virtual {v9, v0, v1}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J │ │ move-result-wide v4 │ │ .line 87 │ .local v4, "diffInMilliesForUnit":J │ - sub-long/2addr v8, v4 │ + sub-long/2addr v6, v4 │ │ .line 88 │ invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v12 │ │ - invoke-interface {v7, v10, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v8, v9, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 90 │ .end local v0 # "diff":J │ .end local v4 # "diffInMilliesForUnit":J │ - .end local v10 # "unit":Ljava/util/concurrent/TimeUnit; │ + .end local v9 # "unit":Ljava/util/concurrent/TimeUnit; │ :cond_0 │ - return-object v7 │ + return-object v8 │ .end method │ │ .method private intToHexString(I)Ljava/lang/String; │ .locals 4 │ .param p1, "i" # I │ │ .prologue │ @@ -261,14 +260,15 @@ │ .line 94 │ invoke-virtual/range {p0 .. p0}, Lorg/bienvenidoainternet/app/ThreadListAdapter;->getContext()Landroid/content/Context; │ │ move-result-object v35 │ │ const-string v36, "layout_inflater" │ │ + .line 95 │ invoke-virtual/range {v35 .. v36}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v9 │ │ check-cast v9, Landroid/view/LayoutInflater; │ │ .line 96 │ @@ -1263,14 +1263,15 @@ │ │ const-string v36, " " │ │ invoke-virtual/range {v35 .. v36}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v36 │ │ + .line 255 │ invoke-virtual {v4}, Lorg/bienvenidoainternet/app/structure/BoardItem;->getTripcode()Ljava/lang/String; │ │ move-result-object v35 │ │ const-string v37, "" │ │ move-object/from16 v0, v35 │ @@ -1312,14 +1313,15 @@ │ │ move-result-object v35 │ │ invoke-virtual/range {v35 .. v35}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v35 │ │ + .line 254 │ invoke-static/range {v35 .. v35}, Landroid/text/Html;->fromHtml(Ljava/lang/String;)Landroid/text/Spanned; │ │ move-result-object v35 │ │ move-object/from16 v0, v31 │ │ move-object/from16 v1, v35 │ @@ -1696,14 +1698,15 @@ │ │ :cond_16 │ move-object/from16 v22, v16 │ │ .line 254 │ goto/16 :goto_b │ │ + .line 255 │ .end local v22 # "sageHexColor":Ljava/lang/String; │ :cond_17 │ new-instance v35, Ljava/lang/StringBuilder; │ │ invoke-direct/range {v35 .. v35}, Ljava/lang/StringBuilder;->()V │ │ const-string v37, "this$0:Lorg/bienvenidoainternet/app/ViewerActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/pl/droidsonroids/gif/R.smali │ @@ -16,10 +16,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 15 │ return-void │ .end method ├── smali/utils/ContentProviderUtils.smali │ @@ -251,26 +251,28 @@ │ │ move-result-object v2 │ │ .line 49 │ .local v2, "id":Ljava/lang/String; │ const-string v9, "content://downloads/public_downloads" │ │ + .line 50 │ invoke-static {v9}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; │ │ move-result-object v9 │ │ invoke-static {v2}, Ljava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long; │ │ move-result-object v10 │ │ invoke-virtual {v10}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v10 │ │ + .line 49 │ invoke-static {v9, v10, v11}, Landroid/content/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri; │ │ move-result-object v0 │ │ .line 52 │ .local v0, "contentUri":Landroid/net/Uri; │ invoke-static {p0, v0, v8, v8}, Lutils/ContentProviderUtils;->getDataColumn(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String; ├── original/AndroidManifest.xml │ @@ -40,16 +40,16 @@ │ 00000270: 7300 6900 6f00 6e00 4e00 6100 6d00 6500 s.i.o.n.N.a.m.e. │ 00000280: 0000 0800 6d00 6100 6e00 6900 6600 6500 ....m.a.n.i.f.e. │ 00000290: 7300 7400 0000 1b00 6f00 7200 6700 2e00 s.t.....o.r.g... │ 000002a0: 6200 6900 6500 6e00 7600 6500 6e00 6900 b.i.e.n.v.e.n.i. │ 000002b0: 6400 6f00 6100 6900 6e00 7400 6500 7200 d.o.a.i.n.t.e.r. │ 000002c0: 6e00 6500 7400 2e00 6100 7000 7000 0000 n.e.t...a.p.p... │ 000002d0: 0300 3100 2e00 3800 0000 0200 3200 3300 ..1...8.....2.3. │ -000002e0: 0000 0b00 3600 2e00 3000 2d00 3200 3100 ....6...0.-.2.1. │ -000002f0: 3600 3600 3700 3600 3700 0000 0800 7500 6.6.7.6.7.....u. │ +000002e0: 0000 0b00 3600 2e00 3000 2d00 3200 3700 ....6...0.-.2.7. │ +000002f0: 3000 3400 3000 3000 3200 0000 0800 7500 0.4.0.0.2.....u. │ 00000300: 7300 6500 7300 2d00 7300 6400 6b00 0000 s.e.s.-.s.d.k... │ 00000310: 0f00 7500 7300 6500 7300 2d00 7000 6500 ..u.s.e.s.-.p.e. │ 00000320: 7200 6d00 6900 7300 7300 6900 6f00 6e00 r.m.i.s.s.i.o.n. │ 00000330: 0000 1b00 6100 6e00 6400 7200 6f00 6900 ....a.n.d.r.o.i. │ 00000340: 6400 2e00 7000 6500 7200 6d00 6900 7300 d...p.e.r.m.i.s. │ 00000350: 7300 6900 6f00 6e00 2e00 4900 4e00 5400 s.i.o.n...I.N.T. │ 00000360: 4500 5200 4e00 4500 5400 0000 2700 6100 E.R.N.E.T...'.a. │ --- smali/com/koushikdutta/async/AsyncServer$8$1.smali ├── +++ smali/com/koushikdutta/async/AsyncServer$9$1.smali │┄ Files similar despite different names (difference score: 24) │ @@ -1,60 +1,61 @@ │ -.class Lcom/koushikdutta/async/AsyncServer$8$1; │ +.class Lcom/koushikdutta/async/AsyncServer$9$1; │ .super Ljava/lang/Object; │ .source "AsyncServer.java" │ │ # interfaces │ .implements Ljava/lang/Runnable; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer$8;->run()V │ + value = Lcom/koushikdutta/async/AsyncServer$9;->run()V │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ │ # instance fields │ -.field final synthetic this$1:Lcom/koushikdutta/async/AsyncServer$8; │ +.field final synthetic this$1:Lcom/koushikdutta/async/AsyncServer$9; │ │ .field final synthetic val$result:[Ljava/net/InetAddress; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer$8;[Ljava/net/InetAddress;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer$9;[Ljava/net/InetAddress;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/AsyncServer$9; │ │ .prologue │ - .line 422 │ - iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$8$1;->this$1:Lcom/koushikdutta/async/AsyncServer$8; │ + .line 452 │ + iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$9$1;->this$1:Lcom/koushikdutta/async/AsyncServer$9; │ │ - iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$8$1;->val$result:[Ljava/net/InetAddress; │ + iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$9$1;->val$result:[Ljava/net/InetAddress; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 425 │ - iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$8$1;->this$1:Lcom/koushikdutta/async/AsyncServer$8; │ + .line 455 │ + iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$9$1;->this$1:Lcom/koushikdutta/async/AsyncServer$9; │ │ - iget-object v0, v0, Lcom/koushikdutta/async/AsyncServer$8;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ + iget-object v0, v0, Lcom/koushikdutta/async/AsyncServer$9;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ const/4 v1, 0x0 │ │ - iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$8$1;->val$result:[Ljava/net/InetAddress; │ + iget-object v2, p0, Lcom/koushikdutta/async/AsyncServer$9$1;->val$result:[Ljava/net/InetAddress; │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;Ljava/lang/Object;)Z │ │ - .line 426 │ + .line 456 │ return-void │ .end method │ --- smali/com/koushikdutta/async/AsyncServer$8$2.smali ├── +++ smali/com/koushikdutta/async/AsyncServer$9$2.smali │┄ Files similar despite different names (difference score: 38) │ @@ -1,60 +1,61 @@ │ -.class Lcom/koushikdutta/async/AsyncServer$8$2; │ +.class Lcom/koushikdutta/async/AsyncServer$9$2; │ .super Ljava/lang/Object; │ .source "AsyncServer.java" │ │ # interfaces │ .implements Ljava/lang/Runnable; │ │ │ # annotations │ .annotation system Ldalvik/annotation/EnclosingMethod; │ - value = Lcom/koushikdutta/async/AsyncServer$8;->run()V │ + value = Lcom/koushikdutta/async/AsyncServer$9;->run()V │ .end annotation │ │ .annotation system Ldalvik/annotation/InnerClass; │ accessFlags = 0x0 │ name = null │ .end annotation │ │ │ # instance fields │ -.field final synthetic this$1:Lcom/koushikdutta/async/AsyncServer$8; │ +.field final synthetic this$1:Lcom/koushikdutta/async/AsyncServer$9; │ │ .field final synthetic val$e:Ljava/lang/Exception; │ │ │ # direct methods │ -.method constructor (Lcom/koushikdutta/async/AsyncServer$8;Ljava/lang/Exception;)V │ +.method constructor (Lcom/koushikdutta/async/AsyncServer$9;Ljava/lang/Exception;)V │ .locals 0 │ + .param p1, "this$1" # Lcom/koushikdutta/async/AsyncServer$9; │ │ .prologue │ - .line 429 │ - iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$8$2;->this$1:Lcom/koushikdutta/async/AsyncServer$8; │ + .line 459 │ + iput-object p1, p0, Lcom/koushikdutta/async/AsyncServer$9$2;->this$1:Lcom/koushikdutta/async/AsyncServer$9; │ │ - iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$8$2;->val$e:Ljava/lang/Exception; │ + iput-object p2, p0, Lcom/koushikdutta/async/AsyncServer$9$2;->val$e:Ljava/lang/Exception; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ .locals 3 │ │ .prologue │ - .line 432 │ - iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$8$2;->this$1:Lcom/koushikdutta/async/AsyncServer$8; │ + .line 462 │ + iget-object v0, p0, Lcom/koushikdutta/async/AsyncServer$9$2;->this$1:Lcom/koushikdutta/async/AsyncServer$9; │ │ - iget-object v0, v0, Lcom/koushikdutta/async/AsyncServer$8;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ + iget-object v0, v0, Lcom/koushikdutta/async/AsyncServer$9;->val$ret:Lcom/koushikdutta/async/future/SimpleFuture; │ │ - iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$8$2;->val$e:Ljava/lang/Exception; │ + iget-object v1, p0, Lcom/koushikdutta/async/AsyncServer$9$2;->val$e:Ljava/lang/Exception; │ │ const/4 v2, 0x0 │ │ invoke-virtual {v0, v1, v2}, Lcom/koushikdutta/async/future/SimpleFuture;->setComplete(Ljava/lang/Exception;Ljava/lang/Object;)Z │ │ - .line 433 │ + .line 463 │ return-void │ .end method