--- /home/hans/code/fdroid/data/tmp/org.smc.inputmethod.indic_24.apk +++ /home/hans/code/fdroid/data/tmp/sigcp_org.smc.inputmethod.indic_24.apk ├── zipinfo {} │ @@ -1,1518 +1,1518 @@ │ -Zip file size: 8194561 bytes, number of entries: 1516 │ +Zip file size: 8191676 bytes, number of entries: 1516 │ -rw---- 2.0 fat 154020 bl defN 16-Mar-26 15:15 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 154141 bl defN 16-Mar-26 15:15 META-INF/7C77C08C.SF │ -rw---- 2.0 fat 1326 bl defN 16-Mar-26 15:15 META-INF/7C77C08C.RSA │ -rw---- 2.0 fat 41 bl defN 16-Mar-25 09:26 META-INF/buildserverid │ -rw---- 2.0 fat 41 bl defN 16-Mar-25 09:26 META-INF/fdroidserverid │ --rw---- 2.0 fat 10756 bX defN 16-Mar-25 09:26 AndroidManifest.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/anim/alt_code_key_while_typing_fadein.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/anim/alt_code_key_while_typing_fadeout.xml │ --rw---- 2.0 fat 640 bl defN 16-Mar-25 09:26 res/anim/key_preview_dismiss_holo.xml │ --rw---- 2.0 fat 640 bl defN 16-Mar-25 09:26 res/anim/key_preview_dismiss_lxx.xml │ --rw---- 2.0 fat 640 bl defN 16-Mar-25 09:26 res/anim/key_preview_show_up_holo.xml │ --rw---- 2.0 fat 640 bl defN 16-Mar-25 09:26 res/anim/key_preview_show_up_lxx.xml │ --rw---- 2.0 fat 520 bl defN 16-Mar-25 09:26 res/anim/language_on_spacebar_fadeout.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/color/setup_step_action_background.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/color/setup_step_action_color.xml │ --rw---- 1.0 fat 512 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ --rw---- 1.0 fat 507 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ --rw---- 1.0 fat 1197 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ --rw---- 1.0 fat 1201 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ --rw---- 1.0 fat 1199 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 1197 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ --rw---- 1.0 fat 507 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ --rw---- 1.0 fat 729 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ --rw---- 1.0 fat 584 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ --rw---- 1.0 fat 745 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ --rw---- 1.0 fat 757 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ --rw---- 1.0 fat 548 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ --rw---- 1.0 fat 507 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ --rw---- 1.0 fat 519 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ --rw---- 1.0 fat 661 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ --rw---- 1.0 fat 366 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ --rw---- 1.0 fat 367 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ --rw---- 1.0 fat 683 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ --rw---- 1.0 fat 729 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ --rw---- 1.0 fat 367 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ --rw---- 1.0 fat 366 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ --rw---- 1.0 fat 319 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ --rw---- 1.0 fat 317 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ --rw---- 1.0 fat 319 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ --rw---- 1.0 fat 268 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ --rw---- 1.0 fat 290 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ --rw---- 1.0 fat 582 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ --rw---- 1.0 fat 580 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ --rw---- 1.0 fat 584 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ --rw---- 1.0 fat 548 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ --rw---- 1.0 fat 759 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ --rw---- 1.0 fat 745 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ --rw---- 1.0 fat 338 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ --rw---- 1.0 fat 340 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ --rw---- 1.0 fat 795 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ --rw---- 1.0 fat 757 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ --rw---- 1.0 fat 369 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ --rw---- 1.0 fat 366 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ --rw---- 1.0 fat 357 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ --rw---- 1.0 fat 419 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ --rw---- 1.0 fat 375 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 419 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/emoji_category_tab_selected_ics.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/emoji_category_tab_selected_klp.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ --rw---- 1.0 fat 184 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ --rw---- 1.0 fat 184 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ --rw---- 1.0 fat 553 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_add_circle_wht_24dp.png │ --rw---- 1.0 fat 945 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ --rw---- 1.0 fat 961 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ --rw---- 1.0 fat 1076 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ --rw---- 1.0 fat 882 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ --rw---- 1.0 fat 876 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ --rw---- 1.0 fat 994 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ --rw---- 1.0 fat 1655 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_nature_activated_holo_dark.png │ --rw---- 1.0 fat 1235 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ --rw---- 1.0 fat 1226 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_nature_activated_lxx_light.png │ --rw---- 1.0 fat 1281 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_nature_normal_holo_dark.png │ --rw---- 1.0 fat 843 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ --rw---- 1.0 fat 843 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_nature_normal_lxx_light.png │ --rw---- 1.0 fat 1662 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_objects_activated_holo_dark.png │ --rw---- 1.0 fat 1400 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ --rw---- 1.0 fat 1343 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_objects_activated_lxx_light.png │ --rw---- 1.0 fat 1311 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_objects_normal_holo_dark.png │ --rw---- 1.0 fat 947 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ --rw---- 1.0 fat 947 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_objects_normal_lxx_light.png │ --rw---- 1.0 fat 1480 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_people_activated_holo_dark.png │ --rw---- 1.0 fat 1093 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_people_activated_lxx_dark.png │ --rw---- 1.0 fat 1047 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_people_activated_lxx_light.png │ --rw---- 1.0 fat 1200 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_people_normal_holo_dark.png │ --rw---- 1.0 fat 778 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_people_normal_lxx_dark.png │ --rw---- 1.0 fat 778 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_people_normal_lxx_light.png │ --rw---- 1.0 fat 1257 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_places_activated_holo_dark.png │ --rw---- 1.0 fat 885 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_places_activated_lxx_dark.png │ --rw---- 1.0 fat 793 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_places_activated_lxx_light.png │ --rw---- 1.0 fat 1073 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_places_normal_holo_dark.png │ --rw---- 1.0 fat 649 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_places_normal_lxx_dark.png │ --rw---- 1.0 fat 649 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_places_normal_lxx_light.png │ --rw---- 1.0 fat 1475 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_recents_activated_holo_dark.png │ --rw---- 1.0 fat 1061 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ --rw---- 1.0 fat 1019 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_recents_activated_lxx_light.png │ --rw---- 1.0 fat 1162 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_recents_normal_holo_dark.png │ --rw---- 1.0 fat 775 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ --rw---- 1.0 fat 775 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_recents_normal_lxx_light.png │ --rw---- 1.0 fat 892 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ --rw---- 1.0 fat 768 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ --rw---- 1.0 fat 699 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ --rw---- 1.0 fat 778 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ --rw---- 1.0 fat 580 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ --rw---- 1.0 fat 580 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ --rw---- 1.0 fat 790 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_ime_switcher_dark.png │ --rw---- 1.0 fat 2809 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_launcher_keyboard.png │ --rw---- 1.0 fat 348 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_menu_add.png │ --rw---- 1.0 fat 602 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/ic_notify_dictionary.png │ --rw---- 1.0 fat 252 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_background_holo.9.png │ --rw---- 1.0 fat 207 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_background_lxx_dark.9.png │ --rw---- 1.0 fat 208 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_background_lxx_light.9.png │ --rw---- 1.0 fat 933 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_background.9.png │ --rw---- 1.0 fat 1551 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_background_holo.9.png │ --rw---- 1.0 fat 2034 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_background_ics.9.png │ --rw---- 1.0 fat 1568 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_background_klp.9.png │ --rw---- 1.0 fat 875 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ --rw---- 1.0 fat 832 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ --rw---- 1.0 fat 1541 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ --rw---- 1.0 fat 1937 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ --rw---- 1.0 fat 1541 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ --rw---- 1.0 fat 1579 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ --rw---- 1.0 fat 2097 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ --rw---- 1.0 fat 1579 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ --rw---- 1.0 fat 1089 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_more_background.9.png │ --rw---- 1.0 fat 1609 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ --rw---- 1.0 fat 2207 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ --rw---- 1.0 fat 1609 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ --rw---- 1.0 fat 1121 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ --rw---- 1.0 fat 1039 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ --rw---- 1.0 fat 1544 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ --rw---- 1.0 fat 1949 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ --rw---- 1.0 fat 1544 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ --rw---- 1.0 fat 1590 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ --rw---- 1.0 fat 2121 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ --rw---- 1.0 fat 1590 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ --rw---- 1.0 fat 887 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_popup_panel_background_holo.9.png │ --rw---- 1.0 fat 874 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_popup_panel_background_ics.9.png │ --rw---- 1.0 fat 885 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_popup_panel_background_klp.9.png │ --rw---- 1.0 fat 725 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ --rw---- 1.0 fat 671 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ --rw---- 1.0 fat 193 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_suggest_strip_holo.9.png │ --rw---- 1.0 fat 207 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ --rw---- 1.0 fat 208 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ --rw---- 1.0 fat 110 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/more_keys_divider.png │ --rw---- 1.0 fat 110 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/more_suggestions_divider.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/suggestions_strip_divider_holo.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/suggestions_strip_divider_lxx_dark.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/suggestions_strip_divider_lxx_light.png │ --rw---- 1.0 fat 811 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_delete_holo_dark.png │ --rw---- 1.0 fat 524 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_delete_lxx_dark.png │ --rw---- 1.0 fat 524 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_delete_lxx_light.png │ --rw---- 1.0 fat 327 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_done_lxx_dark.png │ --rw---- 1.0 fat 729 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_done_lxx_light.png │ --rw---- 1.0 fat 240 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_go_lxx_dark.png │ --rw---- 1.0 fat 332 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_go_lxx_light.png │ --rw---- 1.0 fat 1755 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_language_switch_dark.png │ --rw---- 1.0 fat 955 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ --rw---- 1.0 fat 955 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_language_switch_lxx_light.png │ --rw---- 1.0 fat 382 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_next_lxx_dark.png │ --rw---- 1.0 fat 382 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_next_lxx_light.png │ --rw---- 1.0 fat 373 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_previous_lxx_dark.png │ --rw---- 1.0 fat 373 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_previous_lxx_light.png │ --rw---- 1.0 fat 771 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_return_holo_dark.png │ --rw---- 1.0 fat 379 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_return_lxx_dark.png │ --rw---- 1.0 fat 379 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_return_lxx_light.png │ --rw---- 1.0 fat 1147 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_search_holo_dark.png │ --rw---- 1.0 fat 779 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_search_lxx_dark.png │ --rw---- 1.0 fat 941 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_search_lxx_light.png │ --rw---- 1.0 fat 923 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_send_lxx_dark.png │ --rw---- 1.0 fat 930 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_send_lxx_light.png │ --rw---- 1.0 fat 1535 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_settings_holo_dark.png │ --rw---- 1.0 fat 761 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_settings_lxx_dark.png │ --rw---- 1.0 fat 761 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_settings_lxx_light.png │ --rw---- 1.0 fat 683 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_shift_holo_dark.png │ --rw---- 1.0 fat 459 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ --rw---- 1.0 fat 705 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ --rw---- 1.0 fat 705 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ --rw---- 1.0 fat 649 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_shift_lxx_dark.png │ --rw---- 1.0 fat 649 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_shift_lxx_light.png │ --rw---- 1.0 fat 1480 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_smiley_holo_dark.png │ --rw---- 1.0 fat 1047 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_smiley_lxx_dark.png │ --rw---- 1.0 fat 1047 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_smiley_lxx_light.png │ --rw---- 1.0 fat 676 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_space.png │ --rw---- 1.0 fat 458 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_space_holo_dark.png │ --rw---- 1.0 fat 151 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_space_lxx_dark.png │ --rw---- 1.0 fat 151 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_space_lxx_light.png │ --rw---- 1.0 fat 365 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ --rw---- 1.0 fat 693 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_tab_holo_dark.png │ --rw---- 1.0 fat 374 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_tab_lxx_dark.png │ --rw---- 1.0 fat 374 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_tab_lxx_light.png │ --rw---- 1.0 fat 991 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_voice_holo_dark.png │ --rw---- 1.0 fat 864 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_voice_lxx_dark.png │ --rw---- 1.0 fat 864 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_voice_lxx_light.png │ --rw---- 1.0 fat 901 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_voice_off_holo_dark.png │ --rw---- 1.0 fat 675 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ --rw---- 1.0 fat 675 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_voice_off_lxx_light.png │ --rw---- 1.0 fat 703 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_zwj_holo_dark.png │ --rw---- 1.0 fat 263 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_zwj_lxx_dark.png │ --rw---- 1.0 fat 263 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_zwj_lxx_light.png │ --rw---- 1.0 fat 719 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_zwnj_holo_dark.png │ --rw---- 1.0 fat 305 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ --rw---- 1.0 fat 259 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/sym_keyboard_zwnj_lxx_light.png │ --rw---- 1.0 fat 605 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_check_01.png │ --rw---- 1.0 fat 573 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_check_02.png │ --rw---- 1.0 fat 1533 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_earth_01.png │ --rw---- 1.0 fat 1539 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_earth_02.png │ --rw---- 1.0 fat 942 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_key_01.png │ --rw---- 1.0 fat 942 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_key_02.png │ --rw---- 1.0 fat 911 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_select_01.png │ --rw---- 1.0 fat 911 b- stor 16-Mar-25 09:24 res/drawable-hdpi-v4/unbundled_select_02.png │ --rw---- 1.0 fat 391 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ --rw---- 1.0 fat 408 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ --rw---- 1.0 fat 831 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ --rw---- 1.0 fat 830 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ --rw---- 1.0 fat 826 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 831 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ --rw---- 1.0 fat 408 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ --rw---- 1.0 fat 553 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ --rw---- 1.0 fat 436 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ --rw---- 1.0 fat 577 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ --rw---- 1.0 fat 568 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ --rw---- 1.0 fat 427 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ --rw---- 1.0 fat 408 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ --rw---- 1.0 fat 389 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ --rw---- 1.0 fat 527 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ --rw---- 1.0 fat 357 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ --rw---- 1.0 fat 355 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ --rw---- 1.0 fat 526 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ --rw---- 1.0 fat 553 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ --rw---- 1.0 fat 366 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ --rw---- 1.0 fat 355 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ --rw---- 1.0 fat 275 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ --rw---- 1.0 fat 282 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ --rw---- 1.0 fat 275 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ --rw---- 1.0 fat 246 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ --rw---- 1.0 fat 252 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ --rw---- 1.0 fat 451 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ --rw---- 1.0 fat 438 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ --rw---- 1.0 fat 436 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ --rw---- 1.0 fat 427 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ --rw---- 1.0 fat 609 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ --rw---- 1.0 fat 577 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ --rw---- 1.0 fat 335 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ --rw---- 1.0 fat 325 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ --rw---- 1.0 fat 602 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ --rw---- 1.0 fat 568 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ --rw---- 1.0 fat 366 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ --rw---- 1.0 fat 361 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ --rw---- 1.0 fat 309 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ --rw---- 1.0 fat 326 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ --rw---- 1.0 fat 313 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 330 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/emoji_category_tab_selected_ics.9.png │ --rw---- 1.0 fat 182 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/emoji_category_tab_selected_klp.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ --rw---- 1.0 fat 182 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ --rw---- 1.0 fat 184 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ --rw---- 1.0 fat 376 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_add_circle_wht_24dp.png │ --rw---- 1.0 fat 655 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ --rw---- 1.0 fat 674 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ --rw---- 1.0 fat 694 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ --rw---- 1.0 fat 677 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ --rw---- 1.0 fat 626 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ --rw---- 1.0 fat 651 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ --rw---- 1.0 fat 1131 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_nature_activated_holo_dark.png │ --rw---- 1.0 fat 842 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ --rw---- 1.0 fat 856 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_nature_activated_lxx_light.png │ --rw---- 1.0 fat 900 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_nature_normal_holo_dark.png │ --rw---- 1.0 fat 575 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ --rw---- 1.0 fat 575 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_nature_normal_lxx_light.png │ --rw---- 1.0 fat 1195 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_objects_activated_holo_dark.png │ --rw---- 1.0 fat 986 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ --rw---- 1.0 fat 951 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_objects_activated_lxx_light.png │ --rw---- 1.0 fat 987 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_objects_normal_holo_dark.png │ --rw---- 1.0 fat 715 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ --rw---- 1.0 fat 715 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_objects_normal_lxx_light.png │ --rw---- 1.0 fat 926 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_people_activated_holo_dark.png │ --rw---- 1.0 fat 696 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_people_activated_lxx_dark.png │ --rw---- 1.0 fat 687 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_people_activated_lxx_light.png │ --rw---- 1.0 fat 772 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_people_normal_holo_dark.png │ --rw---- 1.0 fat 551 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_people_normal_lxx_dark.png │ --rw---- 1.0 fat 551 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_people_normal_lxx_light.png │ --rw---- 1.0 fat 893 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_places_activated_holo_dark.png │ --rw---- 1.0 fat 583 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_places_activated_lxx_dark.png │ --rw---- 1.0 fat 528 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_places_activated_lxx_light.png │ --rw---- 1.0 fat 728 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_places_normal_holo_dark.png │ --rw---- 1.0 fat 451 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_places_normal_lxx_dark.png │ --rw---- 1.0 fat 451 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_places_normal_lxx_light.png │ --rw---- 1.0 fat 910 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_recents_activated_holo_dark.png │ --rw---- 1.0 fat 664 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ --rw---- 1.0 fat 645 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_recents_activated_lxx_light.png │ --rw---- 1.0 fat 759 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_recents_normal_holo_dark.png │ --rw---- 1.0 fat 531 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ --rw---- 1.0 fat 531 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_recents_normal_lxx_light.png │ --rw---- 1.0 fat 646 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ --rw---- 1.0 fat 550 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ --rw---- 1.0 fat 474 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ --rw---- 1.0 fat 561 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ --rw---- 1.0 fat 417 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ --rw---- 1.0 fat 417 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ --rw---- 1.0 fat 804 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_ime_switcher_dark.png │ --rw---- 1.0 fat 1972 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_launcher_keyboard.png │ --rw---- 1.0 fat 291 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_menu_add.png │ --rw---- 1.0 fat 498 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/ic_notify_dictionary.png │ --rw---- 1.0 fat 236 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_background_holo.9.png │ --rw---- 1.0 fat 198 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_background_lxx_dark.9.png │ --rw---- 1.0 fat 198 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_background_lxx_light.9.png │ --rw---- 1.0 fat 774 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_background.9.png │ --rw---- 1.0 fat 1365 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_background_holo.9.png │ --rw---- 1.0 fat 1318 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_background_ics.9.png │ --rw---- 1.0 fat 1332 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_background_klp.9.png │ --rw---- 1.0 fat 599 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ --rw---- 1.0 fat 591 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ --rw---- 1.0 fat 1292 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ --rw---- 1.0 fat 1295 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ --rw---- 1.0 fat 1292 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ --rw---- 1.0 fat 1405 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ --rw---- 1.0 fat 1431 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ --rw---- 1.0 fat 1405 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ --rw---- 1.0 fat 880 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_more_background.9.png │ --rw---- 1.0 fat 1453 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ --rw---- 1.0 fat 1457 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ --rw---- 1.0 fat 1453 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ --rw---- 1.0 fat 736 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ --rw---- 1.0 fat 735 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ --rw---- 1.0 fat 1302 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ --rw---- 1.0 fat 1288 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ --rw---- 1.0 fat 1302 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ --rw---- 1.0 fat 1414 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ --rw---- 1.0 fat 1424 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ --rw---- 1.0 fat 1414 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ --rw---- 1.0 fat 645 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_popup_panel_background_holo.9.png │ --rw---- 1.0 fat 611 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_popup_panel_background_ics.9.png │ --rw---- 1.0 fat 641 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_popup_panel_background_klp.9.png │ --rw---- 1.0 fat 514 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ --rw---- 1.0 fat 500 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ --rw---- 1.0 fat 197 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_suggest_strip_holo.9.png │ --rw---- 1.0 fat 198 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ --rw---- 1.0 fat 198 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ --rw---- 1.0 fat 112 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/more_keys_divider.png │ --rw---- 1.0 fat 112 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/more_suggestions_divider.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/suggestions_strip_divider_holo.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/suggestions_strip_divider_lxx_dark.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/suggestions_strip_divider_lxx_light.png │ --rw---- 1.0 fat 654 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_delete_holo_dark.png │ --rw---- 1.0 fat 357 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_delete_lxx_dark.png │ --rw---- 1.0 fat 357 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_delete_lxx_light.png │ --rw---- 1.0 fat 291 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_done_lxx_dark.png │ --rw---- 1.0 fat 506 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_done_lxx_light.png │ --rw---- 1.0 fat 228 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_go_lxx_dark.png │ --rw---- 1.0 fat 242 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_go_lxx_light.png │ --rw---- 1.0 fat 714 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_language_switch_dark.png │ --rw---- 1.0 fat 721 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ --rw---- 1.0 fat 721 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_language_switch_lxx_light.png │ --rw---- 1.0 fat 288 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_next_lxx_dark.png │ --rw---- 1.0 fat 288 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_next_lxx_light.png │ --rw---- 1.0 fat 295 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_previous_lxx_dark.png │ --rw---- 1.0 fat 295 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_previous_lxx_light.png │ --rw---- 1.0 fat 616 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_return_holo_dark.png │ --rw---- 1.0 fat 279 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_return_lxx_dark.png │ --rw---- 1.0 fat 279 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_return_lxx_light.png │ --rw---- 1.0 fat 786 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_search_holo_dark.png │ --rw---- 1.0 fat 421 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_search_lxx_dark.png │ --rw---- 1.0 fat 606 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_search_lxx_light.png │ --rw---- 1.0 fat 690 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_send_lxx_dark.png │ --rw---- 1.0 fat 698 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_send_lxx_light.png │ --rw---- 1.0 fat 1087 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_settings_holo_dark.png │ --rw---- 1.0 fat 560 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_settings_lxx_dark.png │ --rw---- 1.0 fat 560 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_settings_lxx_light.png │ --rw---- 1.0 fat 526 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_shift_holo_dark.png │ --rw---- 1.0 fat 426 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ --rw---- 1.0 fat 560 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ --rw---- 1.0 fat 560 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ --rw---- 1.0 fat 522 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_shift_lxx_dark.png │ --rw---- 1.0 fat 522 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_shift_lxx_light.png │ --rw---- 1.0 fat 926 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_smiley_holo_dark.png │ --rw---- 1.0 fat 733 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_smiley_lxx_dark.png │ --rw---- 1.0 fat 687 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_smiley_lxx_light.png │ --rw---- 1.0 fat 266 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_space.png │ --rw---- 1.0 fat 365 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_space_holo_dark.png │ --rw---- 1.0 fat 146 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_space_lxx_dark.png │ --rw---- 1.0 fat 146 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_space_lxx_light.png │ --rw---- 1.0 fat 320 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ --rw---- 1.0 fat 561 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_tab_holo_dark.png │ --rw---- 1.0 fat 268 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_tab_lxx_dark.png │ --rw---- 1.0 fat 268 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_tab_lxx_light.png │ --rw---- 1.0 fat 584 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_voice_holo_dark.png │ --rw---- 1.0 fat 604 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_voice_lxx_dark.png │ --rw---- 1.0 fat 604 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_voice_lxx_light.png │ --rw---- 1.0 fat 541 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_voice_off_holo_dark.png │ --rw---- 1.0 fat 479 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ --rw---- 1.0 fat 479 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_voice_off_lxx_light.png │ --rw---- 1.0 fat 562 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_zwj_holo_dark.png │ --rw---- 1.0 fat 270 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_zwj_lxx_dark.png │ --rw---- 1.0 fat 270 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_zwj_lxx_light.png │ --rw---- 1.0 fat 497 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_zwnj_holo_dark.png │ --rw---- 1.0 fat 261 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ --rw---- 1.0 fat 272 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/sym_keyboard_zwnj_lxx_light.png │ --rw---- 1.0 fat 483 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_check_01.png │ --rw---- 1.0 fat 411 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_check_02.png │ --rw---- 1.0 fat 567 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_earth_01.png │ --rw---- 1.0 fat 1053 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_earth_02.png │ --rw---- 1.0 fat 612 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_key_01.png │ --rw---- 1.0 fat 612 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_key_02.png │ --rw---- 1.0 fat 568 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_select_01.png │ --rw---- 1.0 fat 568 b- stor 16-Mar-25 09:24 res/drawable-mdpi-v4/unbundled_select_02.png │ --rw---- 1.0 fat 637 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ --rw---- 1.0 fat 618 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ --rw---- 1.0 fat 1501 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ --rw---- 1.0 fat 1496 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ --rw---- 1.0 fat 1493 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 1501 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ --rw---- 1.0 fat 618 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ --rw---- 1.0 fat 866 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ --rw---- 1.0 fat 685 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ --rw---- 1.0 fat 926 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ --rw---- 1.0 fat 942 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ --rw---- 1.0 fat 673 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ --rw---- 1.0 fat 618 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ --rw---- 1.0 fat 621 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ --rw---- 1.0 fat 812 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ --rw---- 1.0 fat 389 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ --rw---- 1.0 fat 390 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ --rw---- 1.0 fat 822 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ --rw---- 1.0 fat 866 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ --rw---- 1.0 fat 390 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ --rw---- 1.0 fat 388 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ --rw---- 1.0 fat 362 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ --rw---- 1.0 fat 385 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ --rw---- 1.0 fat 362 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ --rw---- 1.0 fat 289 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ --rw---- 1.0 fat 314 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ --rw---- 1.0 fat 749 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ --rw---- 1.0 fat 685 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ --rw---- 1.0 fat 685 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ --rw---- 1.0 fat 673 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ --rw---- 1.0 fat 998 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ --rw---- 1.0 fat 926 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ --rw---- 1.0 fat 360 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ --rw---- 1.0 fat 362 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ --rw---- 1.0 fat 996 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ --rw---- 1.0 fat 942 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ --rw---- 1.0 fat 400 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ --rw---- 1.0 fat 413 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ --rw---- 1.0 fat 432 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ --rw---- 1.0 fat 481 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ --rw---- 1.0 fat 447 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 502 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/emoji_category_tab_selected_ics.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/emoji_category_tab_selected_klp.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ --rw---- 1.0 fat 609 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_add_circle_wht_24dp.png │ --rw---- 1.0 fat 1041 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ --rw---- 1.0 fat 1325 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ --rw---- 1.0 fat 1562 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ --rw---- 1.0 fat 1037 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ --rw---- 1.0 fat 1215 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ --rw---- 1.0 fat 1415 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ --rw---- 1.0 fat 2195 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_nature_activated_holo_dark.png │ --rw---- 1.0 fat 1676 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ --rw---- 1.0 fat 1656 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_nature_activated_lxx_light.png │ --rw---- 1.0 fat 1659 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_nature_normal_holo_dark.png │ --rw---- 1.0 fat 1100 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ --rw---- 1.0 fat 1100 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_nature_normal_lxx_light.png │ --rw---- 1.0 fat 2059 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_objects_activated_holo_dark.png │ --rw---- 1.0 fat 1733 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ --rw---- 1.0 fat 1668 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_objects_activated_lxx_light.png │ --rw---- 1.0 fat 1638 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_objects_normal_holo_dark.png │ --rw---- 1.0 fat 1167 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ --rw---- 1.0 fat 1167 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_objects_normal_lxx_light.png │ --rw---- 1.0 fat 2084 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_people_activated_holo_dark.png │ --rw---- 1.0 fat 1472 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_people_activated_lxx_dark.png │ --rw---- 1.0 fat 1440 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_people_activated_lxx_light.png │ --rw---- 1.0 fat 1624 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_people_normal_holo_dark.png │ --rw---- 1.0 fat 1050 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_people_normal_lxx_dark.png │ --rw---- 1.0 fat 1050 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_people_normal_lxx_light.png │ --rw---- 1.0 fat 1517 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_places_activated_holo_dark.png │ --rw---- 1.0 fat 858 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_places_activated_lxx_dark.png │ --rw---- 1.0 fat 789 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_places_activated_lxx_light.png │ --rw---- 1.0 fat 1191 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_places_normal_holo_dark.png │ --rw---- 1.0 fat 635 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_places_normal_lxx_dark.png │ --rw---- 1.0 fat 635 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_places_normal_lxx_light.png │ --rw---- 1.0 fat 2074 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_recents_activated_holo_dark.png │ --rw---- 1.0 fat 1410 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ --rw---- 1.0 fat 1370 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_recents_activated_lxx_light.png │ --rw---- 1.0 fat 1538 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_recents_normal_holo_dark.png │ --rw---- 1.0 fat 997 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ --rw---- 1.0 fat 997 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_recents_normal_lxx_light.png │ --rw---- 1.0 fat 1146 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ --rw---- 1.0 fat 958 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ --rw---- 1.0 fat 892 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ --rw---- 1.0 fat 981 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ --rw---- 1.0 fat 715 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ --rw---- 1.0 fat 715 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ --rw---- 1.0 fat 1194 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_ime_switcher_dark.png │ --rw---- 1.0 fat 3807 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_launcher_keyboard.png │ --rw---- 1.0 fat 349 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_menu_add.png │ --rw---- 1.0 fat 766 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/ic_notify_dictionary.png │ --rw---- 1.0 fat 257 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_background_holo.9.png │ --rw---- 1.0 fat 219 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_background_lxx_dark.9.png │ --rw---- 1.0 fat 215 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_background_lxx_light.9.png │ --rw---- 1.0 fat 993 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_background.9.png │ --rw---- 1.0 fat 2363 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_background_holo.9.png │ --rw---- 1.0 fat 2851 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_background_ics.9.png │ --rw---- 1.0 fat 2379 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_background_klp.9.png │ --rw---- 1.0 fat 1179 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ --rw---- 1.0 fat 1082 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ --rw---- 1.0 fat 2274 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ --rw---- 1.0 fat 2779 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ --rw---- 1.0 fat 2274 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ --rw---- 1.0 fat 2385 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ --rw---- 1.0 fat 3084 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ --rw---- 1.0 fat 2385 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ --rw---- 1.0 fat 1131 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background.9.png │ --rw---- 1.0 fat 2497 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ --rw---- 1.0 fat 3125 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ --rw---- 1.0 fat 2497 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ --rw---- 1.0 fat 1423 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ --rw---- 1.0 fat 1357 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ --rw---- 1.0 fat 2345 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ --rw---- 1.0 fat 2747 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ --rw---- 1.0 fat 2345 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ --rw---- 1.0 fat 2468 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ --rw---- 1.0 fat 3032 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ --rw---- 1.0 fat 2468 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ --rw---- 1.0 fat 1238 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_popup_panel_background_holo.9.png │ --rw---- 1.0 fat 1187 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_popup_panel_background_ics.9.png │ --rw---- 1.0 fat 1235 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_popup_panel_background_klp.9.png │ --rw---- 1.0 fat 932 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ --rw---- 1.0 fat 868 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ --rw---- 1.0 fat 199 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_suggest_strip_holo.9.png │ --rw---- 1.0 fat 219 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ --rw---- 1.0 fat 217 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ --rw---- 1.0 fat 130 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/more_keys_divider.png │ --rw---- 1.0 fat 130 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/more_suggestions_divider.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/suggestions_strip_divider_holo.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/suggestions_strip_divider_lxx_dark.png │ --rw---- 1.0 fat 97 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/suggestions_strip_divider_lxx_light.png │ --rw---- 1.0 fat 1057 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_delete_holo_dark.png │ --rw---- 1.0 fat 656 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_delete_lxx_dark.png │ --rw---- 1.0 fat 656 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_delete_lxx_light.png │ --rw---- 1.0 fat 371 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_done_lxx_dark.png │ --rw---- 1.0 fat 874 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_done_lxx_light.png │ --rw---- 1.0 fat 324 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_go_lxx_dark.png │ --rw---- 1.0 fat 299 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_go_lxx_light.png │ --rw---- 1.0 fat 2356 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_language_switch_dark.png │ --rw---- 1.0 fat 1222 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ --rw---- 1.0 fat 1222 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_language_switch_lxx_light.png │ --rw---- 1.0 fat 426 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_next_lxx_dark.png │ --rw---- 1.0 fat 426 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_next_lxx_light.png │ --rw---- 1.0 fat 496 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_previous_lxx_dark.png │ --rw---- 1.0 fat 496 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_previous_lxx_light.png │ --rw---- 1.0 fat 948 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_return_holo_dark.png │ --rw---- 1.0 fat 361 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_return_lxx_dark.png │ --rw---- 1.0 fat 361 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_return_lxx_light.png │ --rw---- 1.0 fat 1452 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_search_holo_dark.png │ --rw---- 1.0 fat 830 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_search_lxx_dark.png │ --rw---- 1.0 fat 1026 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_search_lxx_light.png │ --rw---- 1.0 fat 1189 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_send_lxx_dark.png │ --rw---- 1.0 fat 1183 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_send_lxx_light.png │ --rw---- 1.0 fat 1966 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_settings_holo_dark.png │ --rw---- 1.0 fat 823 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_settings_lxx_dark.png │ --rw---- 1.0 fat 823 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_settings_lxx_light.png │ --rw---- 1.0 fat 816 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_shift_holo_dark.png │ --rw---- 1.0 fat 573 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ --rw---- 1.0 fat 873 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ --rw---- 1.0 fat 873 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ --rw---- 1.0 fat 745 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_shift_lxx_dark.png │ --rw---- 1.0 fat 745 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_shift_lxx_light.png │ --rw---- 1.0 fat 2084 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_smiley_holo_dark.png │ --rw---- 1.0 fat 1042 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_smiley_lxx_dark.png │ --rw---- 1.0 fat 1440 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_smiley_lxx_light.png │ --rw---- 1.0 fat 1060 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_space.png │ --rw---- 1.0 fat 457 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_space_holo_dark.png │ --rw---- 1.0 fat 156 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_space_lxx_dark.png │ --rw---- 1.0 fat 156 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_space_lxx_light.png │ --rw---- 1.0 fat 436 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ --rw---- 1.0 fat 773 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_tab_holo_dark.png │ --rw---- 1.0 fat 359 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_tab_lxx_dark.png │ --rw---- 1.0 fat 359 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_tab_lxx_light.png │ --rw---- 1.0 fat 1376 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_voice_holo_dark.png │ --rw---- 1.0 fat 860 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_voice_lxx_dark.png │ --rw---- 1.0 fat 860 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_voice_lxx_light.png │ --rw---- 1.0 fat 1228 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_voice_off_holo_dark.png │ --rw---- 1.0 fat 749 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ --rw---- 1.0 fat 749 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_voice_off_lxx_light.png │ --rw---- 1.0 fat 945 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_zwj_holo_dark.png │ --rw---- 1.0 fat 326 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_zwj_lxx_dark.png │ --rw---- 1.0 fat 326 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_zwj_lxx_light.png │ --rw---- 1.0 fat 874 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_zwnj_holo_dark.png │ --rw---- 1.0 fat 323 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ --rw---- 1.0 fat 320 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/sym_keyboard_zwnj_lxx_light.png │ --rw---- 1.0 fat 787 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_check_01.png │ --rw---- 1.0 fat 777 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_check_02.png │ --rw---- 1.0 fat 2099 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_earth_01.png │ --rw---- 1.0 fat 2076 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_earth_02.png │ --rw---- 1.0 fat 1211 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_key_01.png │ --rw---- 1.0 fat 1211 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_key_02.png │ --rw---- 1.0 fat 1205 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_select_01.png │ --rw---- 1.0 fat 1205 b- stor 16-Mar-25 09:24 res/drawable-xhdpi-v4/unbundled_select_02.png │ --rw---- 1.0 fat 967 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ --rw---- 1.0 fat 910 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ --rw---- 1.0 fat 2454 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ --rw---- 1.0 fat 2450 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ --rw---- 1.0 fat 2451 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 2454 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ --rw---- 1.0 fat 910 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ --rw---- 1.0 fat 1291 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ --rw---- 1.0 fat 1047 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ --rw---- 1.0 fat 1349 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ --rw---- 1.0 fat 1370 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ --rw---- 1.0 fat 990 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ --rw---- 1.0 fat 910 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ --rw---- 1.0 fat 979 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ --rw---- 1.0 fat 1181 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ --rw---- 1.0 fat 404 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ --rw---- 1.0 fat 402 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ --rw---- 1.0 fat 1263 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ --rw---- 1.0 fat 1291 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ --rw---- 1.0 fat 412 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ --rw---- 1.0 fat 406 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ --rw---- 1.0 fat 420 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ --rw---- 1.0 fat 453 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ --rw---- 1.0 fat 420 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ --rw---- 1.0 fat 342 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ --rw---- 1.0 fat 389 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ --rw---- 1.0 fat 1022 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ --rw---- 1.0 fat 994 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ --rw---- 1.0 fat 1047 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ --rw---- 1.0 fat 990 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ --rw---- 1.0 fat 1383 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ --rw---- 1.0 fat 1349 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ --rw---- 1.0 fat 379 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ --rw---- 1.0 fat 382 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ --rw---- 1.0 fat 1420 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ --rw---- 1.0 fat 1370 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ --rw---- 1.0 fat 413 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ --rw---- 1.0 fat 433 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ --rw---- 1.0 fat 569 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ --rw---- 1.0 fat 640 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ --rw---- 1.0 fat 591 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 679 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ --rw---- 1.0 fat 186 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/emoji_category_tab_selected_ics.9.png │ --rw---- 1.0 fat 186 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/emoji_category_tab_selected_klp.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ --rw---- 1.0 fat 198 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ --rw---- 1.0 fat 185 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ --rw---- 1.0 fat 946 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_add_circle_wht_24dp.png │ --rw---- 1.0 fat 726 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ --rw---- 1.0 fat 1787 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ --rw---- 1.0 fat 2202 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ --rw---- 1.0 fat 673 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ --rw---- 1.0 fat 1560 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ --rw---- 1.0 fat 1969 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ --rw---- 1.0 fat 2266 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_nature_activated_holo_dark.png │ --rw---- 1.0 fat 2491 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ --rw---- 1.0 fat 2427 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_nature_activated_lxx_light.png │ --rw---- 1.0 fat 1642 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_nature_normal_holo_dark.png │ --rw---- 1.0 fat 1660 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ --rw---- 1.0 fat 1660 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_nature_normal_lxx_light.png │ --rw---- 1.0 fat 2068 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_objects_activated_holo_dark.png │ --rw---- 1.0 fat 2403 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ --rw---- 1.0 fat 2314 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_objects_activated_lxx_light.png │ --rw---- 1.0 fat 1502 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_objects_normal_holo_dark.png │ --rw---- 1.0 fat 1615 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ --rw---- 1.0 fat 1615 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_objects_normal_lxx_light.png │ --rw---- 1.0 fat 2156 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_people_activated_holo_dark.png │ --rw---- 1.0 fat 2194 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_people_activated_lxx_dark.png │ --rw---- 1.0 fat 2159 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_people_activated_lxx_light.png │ --rw---- 1.0 fat 1563 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_people_normal_holo_dark.png │ --rw---- 1.0 fat 1556 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_people_normal_lxx_dark.png │ --rw---- 1.0 fat 1556 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_people_normal_lxx_light.png │ --rw---- 1.0 fat 1424 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_places_activated_holo_dark.png │ --rw---- 1.0 fat 1182 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_places_activated_lxx_dark.png │ --rw---- 1.0 fat 1145 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_places_activated_lxx_light.png │ --rw---- 1.0 fat 1092 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_places_normal_holo_dark.png │ --rw---- 1.0 fat 956 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_places_normal_lxx_dark.png │ --rw---- 1.0 fat 956 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_places_normal_lxx_light.png │ --rw---- 1.0 fat 2155 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_recents_activated_holo_dark.png │ --rw---- 1.0 fat 2138 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ --rw---- 1.0 fat 2075 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_recents_activated_lxx_light.png │ --rw---- 1.0 fat 1557 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_recents_normal_holo_dark.png │ --rw---- 1.0 fat 1488 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ --rw---- 1.0 fat 1488 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_recents_normal_lxx_light.png │ --rw---- 1.0 fat 1019 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ --rw---- 1.0 fat 1310 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ --rw---- 1.0 fat 1264 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ --rw---- 1.0 fat 864 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ --rw---- 1.0 fat 974 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ --rw---- 1.0 fat 974 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ --rw---- 1.0 fat 299 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_ime_switcher_dark.png │ --rw---- 1.0 fat 5409 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_launcher_keyboard.png │ --rw---- 1.0 fat 424 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/ic_notify_dictionary.png │ --rw---- 1.0 fat 277 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_background_holo.9.png │ --rw---- 1.0 fat 238 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_background_lxx_dark.9.png │ --rw---- 1.0 fat 235 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_background_lxx_light.9.png │ --rw---- 1.0 fat 3666 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_holo.9.png │ --rw---- 1.0 fat 4380 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_ics.9.png │ --rw---- 1.0 fat 3570 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_klp.9.png │ --rw---- 1.0 fat 1927 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ --rw---- 1.0 fat 1743 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ --rw---- 1.0 fat 3450 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ --rw---- 1.0 fat 4162 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ --rw---- 1.0 fat 3450 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ --rw---- 1.0 fat 3517 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ --rw---- 1.0 fat 4341 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ --rw---- 1.0 fat 3517 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ --rw---- 1.0 fat 3691 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ --rw---- 1.0 fat 4549 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ --rw---- 1.0 fat 3691 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ --rw---- 1.0 fat 2325 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ --rw---- 1.0 fat 2143 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ --rw---- 1.0 fat 3427 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ --rw---- 1.0 fat 4135 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ --rw---- 1.0 fat 3427 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ --rw---- 1.0 fat 3496 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ --rw---- 1.0 fat 4306 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ --rw---- 1.0 fat 3496 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ --rw---- 1.0 fat 1548 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_holo.9.png │ --rw---- 1.0 fat 1867 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_ics.9.png │ --rw---- 1.0 fat 1547 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_klp.9.png │ --rw---- 1.0 fat 1444 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ --rw---- 1.0 fat 1269 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ --rw---- 1.0 fat 201 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_suggest_strip_holo.9.png │ --rw---- 1.0 fat 238 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ --rw---- 1.0 fat 236 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ --rw---- 1.0 fat 98 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/suggestions_strip_divider_holo.png │ --rw---- 1.0 fat 98 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/suggestions_strip_divider_lxx_dark.png │ --rw---- 1.0 fat 98 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/suggestions_strip_divider_lxx_light.png │ --rw---- 1.0 fat 724 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_delete_holo_dark.png │ --rw---- 1.0 fat 993 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_delete_lxx_dark.png │ --rw---- 1.0 fat 993 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_delete_lxx_light.png │ --rw---- 1.0 fat 365 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_done_lxx_dark.png │ --rw---- 1.0 fat 1364 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_done_lxx_light.png │ --rw---- 1.0 fat 304 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_go_lxx_dark.png │ --rw---- 1.0 fat 429 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_go_lxx_light.png │ --rw---- 1.0 fat 2571 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_language_switch_dark.png │ --rw---- 1.0 fat 1724 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ --rw---- 1.0 fat 1724 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_language_switch_lxx_light.png │ --rw---- 1.0 fat 754 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_next_lxx_dark.png │ --rw---- 1.0 fat 754 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_next_lxx_light.png │ --rw---- 1.0 fat 660 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_previous_lxx_dark.png │ --rw---- 1.0 fat 660 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_previous_lxx_light.png │ --rw---- 1.0 fat 816 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_return_holo_dark.png │ --rw---- 1.0 fat 484 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_return_lxx_dark.png │ --rw---- 1.0 fat 484 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_return_lxx_light.png │ --rw---- 1.0 fat 1460 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_search_holo_dark.png │ --rw---- 1.0 fat 1053 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_search_lxx_dark.png │ --rw---- 1.0 fat 1708 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_search_lxx_light.png │ --rw---- 1.0 fat 1462 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_send_lxx_dark.png │ --rw---- 1.0 fat 1471 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_send_lxx_light.png │ --rw---- 1.0 fat 2189 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_settings_holo_dark.png │ --rw---- 1.0 fat 1260 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_settings_lxx_dark.png │ --rw---- 1.0 fat 1260 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_settings_lxx_light.png │ --rw---- 1.0 fat 459 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_shift_holo_dark.png │ --rw---- 1.0 fat 312 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ --rw---- 1.0 fat 1121 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ --rw---- 1.0 fat 1121 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ --rw---- 1.0 fat 973 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_shift_lxx_dark.png │ --rw---- 1.0 fat 973 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_shift_lxx_light.png │ --rw---- 1.0 fat 2156 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_smiley_holo_dark.png │ --rw---- 1.0 fat 1730 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_smiley_lxx_dark.png │ --rw---- 1.0 fat 2159 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_smiley_lxx_light.png │ --rw---- 1.0 fat 176 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_space_holo_dark.png │ --rw---- 1.0 fat 164 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_space_lxx_dark.png │ --rw---- 1.0 fat 164 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_space_lxx_light.png │ --rw---- 1.0 fat 436 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ --rw---- 1.0 fat 593 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_tab_holo_dark.png │ --rw---- 1.0 fat 510 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_tab_lxx_dark.png │ --rw---- 1.0 fat 510 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_tab_lxx_light.png │ --rw---- 1.0 fat 2471 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_voice_holo_dark.png │ --rw---- 1.0 fat 1334 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_voice_lxx_dark.png │ --rw---- 1.0 fat 1334 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_voice_lxx_light.png │ --rw---- 1.0 fat 2118 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_voice_off_holo_dark.png │ --rw---- 1.0 fat 1076 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ --rw---- 1.0 fat 1076 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_voice_off_lxx_light.png │ --rw---- 1.0 fat 611 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_zwj_holo_dark.png │ --rw---- 1.0 fat 451 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_zwj_lxx_dark.png │ --rw---- 1.0 fat 451 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_zwj_lxx_light.png │ --rw---- 1.0 fat 620 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_zwnj_holo_dark.png │ --rw---- 1.0 fat 423 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ --rw---- 1.0 fat 425 b- stor 16-Mar-25 09:24 res/drawable-xxhdpi-v4/sym_keyboard_zwnj_lxx_light.png │ --rw---- 1.0 fat 2493 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ --rw---- 1.0 fat 2494 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ --rw---- 1.0 fat 2497 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 2496 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ --rw---- 1.0 fat 369 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ --rw---- 1.0 fat 368 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ --rw---- 1.0 fat 371 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ --rw---- 1.0 fat 370 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ --rw---- 1.0 fat 393 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ --rw---- 1.0 fat 430 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ --rw---- 1.0 fat 357 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ --rw---- 1.0 fat 359 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ --rw---- 1.0 fat 370 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ --rw---- 1.0 fat 376 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ --rw---- 1.0 fat 748 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ --rw---- 1.0 fat 792 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ --rw---- 1.0 fat 792 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ --rw---- 1.0 fat 823 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ --rw---- 1.0 fat 997 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_add_circle_white_24dp.png │ --rw---- 1.0 fat 2582 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ --rw---- 1.0 fat 3513 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ --rw---- 1.0 fat 2244 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ --rw---- 1.0 fat 3078 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ --rw---- 1.0 fat 2085 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ --rw---- 1.0 fat 2299 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_nature_activated_lxx_light.png │ --rw---- 1.0 fat 1481 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ --rw---- 1.0 fat 1522 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_nature_normal_lxx_light.png │ --rw---- 1.0 fat 1908 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ --rw---- 1.0 fat 2091 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_objects_activated_lxx_light.png │ --rw---- 1.0 fat 1366 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ --rw---- 1.0 fat 1401 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_objects_normal_lxx_light.png │ --rw---- 1.0 fat 1766 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_people_activated_lxx_dark.png │ --rw---- 1.0 fat 1966 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_people_activated_lxx_light.png │ --rw---- 1.0 fat 1309 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_people_normal_lxx_dark.png │ --rw---- 1.0 fat 1337 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_people_normal_lxx_light.png │ --rw---- 1.0 fat 812 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_places_activated_lxx_dark.png │ --rw---- 1.0 fat 871 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_places_activated_lxx_light.png │ --rw---- 1.0 fat 703 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_places_normal_lxx_dark.png │ --rw---- 1.0 fat 724 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_places_normal_lxx_light.png │ --rw---- 1.0 fat 1667 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ --rw---- 1.0 fat 1838 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_recents_activated_lxx_light.png │ --rw---- 1.0 fat 1238 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ --rw---- 1.0 fat 1255 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_recents_normal_lxx_light.png │ --rw---- 1.0 fat 976 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ --rw---- 1.0 fat 1027 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ --rw---- 1.0 fat 809 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ --rw---- 1.0 fat 829 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ --rw---- 1.0 fat 7369 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/ic_launcher_keyboard.png │ --rw---- 1.0 fat 273 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_background_lxx_dark.9.png │ --rw---- 1.0 fat 270 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_background_lxx_light.9.png │ --rw---- 1.0 fat 2650 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ --rw---- 1.0 fat 2442 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ --rw---- 1.0 fat 3079 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ --rw---- 1.0 fat 2906 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ --rw---- 1.0 fat 1999 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ --rw---- 1.0 fat 1814 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ --rw---- 1.0 fat 273 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ --rw---- 1.0 fat 271 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ --rw---- 1.0 fat 99 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/suggestions_strip_divider_lxx_dark.png │ --rw---- 1.0 fat 99 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/suggestions_strip_divider_lxx_light.png │ --rw---- 1.0 fat 822 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_delete_lxx_dark.png │ --rw---- 1.0 fat 847 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_delete_lxx_light.png │ --rw---- 1.0 fat 1268 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_done_lxx_dark.png │ --rw---- 1.0 fat 1248 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_done_lxx_light.png │ --rw---- 1.0 fat 254 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_go_lxx_dark.png │ --rw---- 1.0 fat 254 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_go_lxx_light.png │ --rw---- 1.0 fat 1679 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ --rw---- 1.0 fat 1706 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_language_switch_lxx_light.png │ --rw---- 1.0 fat 688 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_next_lxx_dark.png │ --rw---- 1.0 fat 688 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_next_lxx_light.png │ --rw---- 1.0 fat 747 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_previous_lxx_dark.png │ --rw---- 1.0 fat 747 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_previous_lxx_light.png │ --rw---- 1.0 fat 293 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_return_lxx_dark.png │ --rw---- 1.0 fat 293 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_return_lxx_light.png │ --rw---- 1.0 fat 1515 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_search_lxx_dark.png │ --rw---- 1.0 fat 1515 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_search_lxx_light.png │ --rw---- 1.0 fat 1110 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_send_lxx_dark.png │ --rw---- 1.0 fat 1110 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_send_lxx_light.png │ --rw---- 1.0 fat 1209 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_settings_lxx_dark.png │ --rw---- 1.0 fat 1228 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_settings_lxx_light.png │ --rw---- 1.0 fat 956 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ --rw---- 1.0 fat 956 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ --rw---- 1.0 fat 886 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_shift_lxx_dark.png │ --rw---- 1.0 fat 886 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_shift_lxx_light.png │ --rw---- 1.0 fat 1411 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_smiley_lxx_dark.png │ --rw---- 1.0 fat 1411 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_smiley_lxx_light.png │ --rw---- 1.0 fat 133 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_space_lxx_dark.png │ --rw---- 1.0 fat 133 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_space_lxx_light.png │ --rw---- 1.0 fat 351 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_tab_lxx_dark.png │ --rw---- 1.0 fat 359 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_tab_lxx_light.png │ --rw---- 1.0 fat 1043 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_voice_lxx_dark.png │ --rw---- 1.0 fat 1065 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_voice_lxx_light.png │ --rw---- 1.0 fat 955 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ --rw---- 1.0 fat 1030 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_voice_off_lxx_light.png │ --rw---- 1.0 fat 400 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_zwj_lxx_dark.png │ --rw---- 1.0 fat 416 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_zwj_lxx_light.png │ --rw---- 1.0 fat 352 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ --rw---- 1.0 fat 391 b- stor 16-Mar-25 09:24 res/drawable-xxxhdpi-v4/sym_keyboard_zwnj_lxx_light.png │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_functional_ics.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_functional_klp.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_functional_lxx_dark.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_functional_lxx_light.xml │ --rw---- 2.0 fat 1512 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_ics.xml │ --rw---- 2.0 fat 1512 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_klp.xml │ --rw---- 2.0 fat 1512 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_lxx_dark.xml │ --rw---- 2.0 fat 1512 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_lxx_light.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_popup_action_lxx_dark.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_popup_action_lxx_light.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_popup_ics.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_popup_klp.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_popup_lxx_dark.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_key_popup_lxx_light.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_spacebar_ics.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_spacebar_klp.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_spacebar_lxx_dark.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/drawable/btn_keyboard_spacebar_lxx_light.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/drawable/btn_suggestion_ics.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/drawable/btn_suggestion_klp.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/drawable/btn_suggestion_lxx_dark.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/drawable/btn_suggestion_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_emoticons_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_emoticons_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_emoticons_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_nature_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_nature_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_nature_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_objects_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_objects_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_objects_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_people_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_people_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_people_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_places_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_places_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_places_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_recents_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_recents_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_recents_lxx_light.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_symbols_holo_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_symbols_lxx_dark.xml │ --rw---- 2.0 fat 840 bl defN 16-Mar-25 09:26 res/drawable/ic_emoji_symbols_lxx_light.xml │ --rw---- 2.0 fat 700 bl defN 16-Mar-25 09:26 res/drawable/ic_setup_finish.xml │ --rw---- 2.0 fat 700 bl defN 16-Mar-25 09:26 res/drawable/ic_setup_step1.xml │ --rw---- 2.0 fat 700 bl defN 16-Mar-25 09:26 res/drawable/ic_setup_step2.xml │ --rw---- 2.0 fat 700 bl defN 16-Mar-25 09:26 res/drawable/ic_setup_step3.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/drawable/keyboard_key_feedback_ics.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/drawable/keyboard_key_feedback_klp.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/drawable/keyboard_key_feedback_lxx_dark.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/drawable/keyboard_key_feedback_lxx_light.xml │ --rw---- 2.0 fat 700 bl defN 16-Mar-25 09:26 res/drawable/setup_step_action_background.xml │ --rw---- 2.0 fat 1068 bl defN 16-Mar-25 09:26 res/layout-land-v17/setup_steps_screen.xml │ --rw---- 2.0 fat 1072 bl defN 16-Mar-25 09:26 res/layout-land-v17/setup_welcome_screen.xml │ --rw---- 2.0 fat 1020 bl defN 16-Mar-25 09:26 res/layout-land/setup_steps_screen.xml │ --rw---- 2.0 fat 1024 bl defN 16-Mar-25 09:26 res/layout-land/setup_welcome_screen.xml │ --rw---- 2.0 fat 1952 bl defN 16-Mar-25 09:26 res/layout-v17/additional_subtype_dialog.xml │ --rw---- 2.0 fat 2948 bl defN 16-Mar-25 09:26 res/layout-v17/dictionary_line.xml │ --rw---- 2.0 fat 456 bl defN 16-Mar-25 09:26 res/layout-v17/emoji_keyboard_page.xml │ --rw---- 2.0 fat 964 bl defN 16-Mar-25 09:26 res/layout-v17/main_keyboard_frame.xml │ --rw---- 2.0 fat 2236 bl defN 16-Mar-25 09:26 res/layout-v17/suggestions_strip.xml │ --rw---- 2.0 fat 2556 bl defN 16-Mar-25 09:26 res/layout-v17/user_dictionary_add_word.xml │ --rw---- 2.0 fat 2168 bl defN 16-Mar-25 09:26 res/layout-v17/user_dictionary_add_word_fullscreen.xml │ --rw---- 2.0 fat 1404 bl defN 16-Mar-25 09:26 res/layout-v17/user_dictionary_item.xml │ --rw---- 2.0 fat 1888 bl defN 16-Mar-25 09:26 res/layout/additional_subtype_dialog.xml │ --rw---- 2.0 fat 2752 bl defN 16-Mar-25 09:26 res/layout/dictionary_line.xml │ --rw---- 2.0 fat 1792 bl defN 16-Mar-25 09:26 res/layout/download_over_metered.xml │ --rw---- 2.0 fat 412 bl defN 16-Mar-25 09:26 res/layout/emoji_keyboard_page.xml │ --rw---- 2.0 fat 600 bl defN 16-Mar-25 09:26 res/layout/emoji_keyboard_tab_icon.xml │ --rw---- 2.0 fat 3288 bl defN 16-Mar-25 09:26 res/layout/emoji_palettes_view.xml │ --rw---- 2.0 fat 660 bl defN 16-Mar-25 09:26 res/layout/input_view.xml │ --rw---- 2.0 fat 1044 bl defN 16-Mar-25 09:26 res/layout/loading_page.xml │ --rw---- 2.0 fat 896 bl defN 16-Mar-25 09:26 res/layout/main_keyboard_frame.xml │ --rw---- 2.0 fat 636 bl defN 16-Mar-25 09:26 res/layout/more_keys_keyboard.xml │ --rw---- 2.0 fat 644 bl defN 16-Mar-25 09:26 res/layout/more_keys_keyboard_for_action_lxx.xml │ --rw---- 2.0 fat 860 bl defN 16-Mar-25 09:26 res/layout/more_suggestions.xml │ --rw---- 2.0 fat 440 bl defN 16-Mar-25 09:26 res/layout/radio_button_preference_widget.xml │ --rw---- 2.0 fat 936 bl defN 16-Mar-25 09:26 res/layout/seek_bar_dialog.xml │ --rw---- 2.0 fat 920 bl defN 16-Mar-25 09:26 res/layout/setup_start_indicator_label.xml │ --rw---- 2.0 fat 976 bl defN 16-Mar-25 09:26 res/layout/setup_step.xml │ --rw---- 2.0 fat 2112 bl defN 16-Mar-25 09:26 res/layout/setup_steps_cards.xml │ --rw---- 2.0 fat 624 bl defN 16-Mar-25 09:26 res/layout/setup_steps_screen.xml │ --rw---- 2.0 fat 404 bl defN 16-Mar-25 09:26 res/layout/setup_steps_title.xml │ --rw---- 2.0 fat 628 bl defN 16-Mar-25 09:26 res/layout/setup_welcome_screen.xml │ --rw---- 2.0 fat 648 bl defN 16-Mar-25 09:26 res/layout/setup_welcome_title.xml │ --rw---- 2.0 fat 1352 bl defN 16-Mar-25 09:26 res/layout/setup_welcome_video.xml │ --rw---- 2.0 fat 868 bl defN 16-Mar-25 09:26 res/layout/setup_wizard.xml │ --rw---- 2.0 fat 748 bl defN 16-Mar-25 09:26 res/layout/suggestion_divider.xml │ --rw---- 2.0 fat 2184 bl defN 16-Mar-25 09:26 res/layout/suggestions_strip.xml │ --rw---- 2.0 fat 2440 bl defN 16-Mar-25 09:26 res/layout/user_dictionary_add_word.xml │ --rw---- 2.0 fat 2012 bl defN 16-Mar-25 09:26 res/layout/user_dictionary_add_word_fullscreen.xml │ --rw---- 2.0 fat 1316 bl defN 16-Mar-25 09:26 res/layout/user_dictionary_item.xml │ --rw---- 2.0 fat 1096 bl defN 16-Mar-25 09:26 res/layout/user_dictionary_preference_list_fragment.xml │ --rw---- 2.0 fat 452 bl defN 16-Mar-25 09:26 res/menu/add_style.xml │ --rw---- 2.0 fat 16185 bl defN 16-Mar-25 09:26 res/raw/am_transliteration.xml │ --rw---- 2.0 fat 3868 bl defN 16-Mar-25 09:26 res/raw/ar_kbd.xml │ --rw---- 2.0 fat 8827 bl defN 16-Mar-25 09:26 res/raw/as_avro.xml │ --rw---- 2.0 fat 2890 bl defN 16-Mar-25 09:26 res/raw/as_bornona.xml │ --rw---- 2.0 fat 4902 bl defN 16-Mar-25 09:26 res/raw/as_inscript.xml │ --rw---- 2.0 fat 5084 bl defN 16-Mar-25 09:26 res/raw/as_inscript2.xml │ --rw---- 2.0 fat 4085 bl defN 16-Mar-25 09:26 res/raw/as_phonetic.xml │ --rw---- 2.0 fat 4243 bl defN 16-Mar-25 09:26 res/raw/as_transliteration.xml │ --rw---- 2.0 fat 3517 bl defN 16-Mar-25 09:26 res/raw/be_kbd.xml │ --rw---- 2.0 fat 957 bl defN 16-Mar-25 09:26 res/raw/be_latin.xml │ --rw---- 2.0 fat 3202 bl defN 16-Mar-25 09:26 res/raw/be_transliteration.xml │ --rw---- 2.0 fat 1663 bl defN 16-Mar-25 09:26 res/raw/ber_tfng.xml │ --rw---- 2.0 fat 10236 bl defN 16-Mar-25 09:26 res/raw/bn_avro.xml │ --rw---- 2.0 fat 4828 bl defN 16-Mar-25 09:26 res/raw/bn_inscript.xml │ --rw---- 2.0 fat 5097 bl defN 16-Mar-25 09:26 res/raw/bn_inscript2.xml │ --rw---- 2.0 fat 4815 bl defN 16-Mar-25 09:26 res/raw/bn_nkb.xml │ --rw---- 2.0 fat 3358 bl defN 16-Mar-25 09:26 res/raw/bn_probhat.xml │ --rw---- 2.0 fat 4229 bl defN 16-Mar-25 09:26 res/raw/brx_inscript.xml │ --rw---- 2.0 fat 554 bl defN 16-Mar-25 09:26 res/raw/cyrl_palochka.xml │ --rw---- 2.0 fat 1245 bl defN 16-Mar-25 09:26 res/raw/da_normforms.xml │ --rw---- 2.0 fat 507 bl defN 16-Mar-25 09:26 res/raw/de.xml │ --rw---- 2.0 fat 3361 bl defN 16-Mar-25 09:26 res/raw/el_kbd.xml │ --rw---- 1.0 fat 4 b- stor 16-Mar-25 09:24 res/raw/empty.dict │ --rw---- 2.0 fat 1702 bl defN 16-Mar-25 09:26 res/raw/eo_h.xml │ --rw---- 2.0 fat 1991 bl defN 16-Mar-25 09:26 res/raw/eo_h_f.xml │ --rw---- 2.0 fat 3518 bl defN 16-Mar-25 09:26 res/raw/eo_plena.xml │ --rw---- 2.0 fat 1701 bl defN 16-Mar-25 09:26 res/raw/eo_q.xml │ --rw---- 2.0 fat 1654 bl defN 16-Mar-25 09:26 res/raw/eo_transliteration.xml │ --rw---- 2.0 fat 2236 bl defN 16-Mar-25 09:26 res/raw/eo_vi.xml │ --rw---- 2.0 fat 1717 bl defN 16-Mar-25 09:26 res/raw/eo_x.xml │ --rw---- 2.0 fat 641 bl defN 16-Mar-25 09:26 res/raw/fi_transliteration.xml │ --rw---- 2.0 fat 1874 bl defN 16-Mar-25 09:26 res/raw/fo_normforms.xml │ --rw---- 2.0 fat 4308 bl defN 16-Mar-25 09:26 res/raw/gu_inscript.xml │ --rw---- 2.0 fat 4542 bl defN 16-Mar-25 09:26 res/raw/gu_inscript2.xml │ --rw---- 2.0 fat 4126 bl defN 16-Mar-25 09:26 res/raw/gu_phonetic.xml │ --rw---- 2.0 fat 6585 bl defN 16-Mar-25 09:26 res/raw/gu_transliteration.xml │ --rw---- 2.0 fat 1811 bl defN 16-Mar-25 09:26 res/raw/he_kbd.xml │ --rw---- 2.0 fat 3752 bl defN 16-Mar-25 09:26 res/raw/he_standard_2012.xml │ --rw---- 2.0 fat 2094 bl defN 16-Mar-25 09:26 res/raw/he_standard_2012_extonly.xml │ --rw---- 2.0 fat 4064 bl defN 16-Mar-25 09:26 res/raw/hi_bolnagri.xml │ --rw---- 2.0 fat 4699 bl defN 16-Mar-25 09:26 res/raw/hi_inscript.xml │ --rw---- 2.0 fat 4193 bl defN 16-Mar-25 09:26 res/raw/hi_phonetic.xml │ --rw---- 2.0 fat 8962 bl defN 16-Mar-25 09:26 res/raw/hi_transliteration.xml │ --rw---- 2.0 fat 1933 bl defN 16-Mar-25 09:26 res/raw/hr_kbd.xml │ --rw---- 2.0 fat 3990 bl defN 16-Mar-25 09:26 res/raw/hy_kbd.xml │ --rw---- 2.0 fat 7896 bl defN 16-Mar-25 09:26 res/raw/ipa_sil.xml │ --rw---- 2.0 fat 2470 bl defN 16-Mar-25 09:26 res/raw/is_normforms.xml │ --rw---- 2.0 fat 11207 bl defN 16-Mar-25 09:26 res/raw/jv_transliteration.xml │ --rw---- 2.0 fat 1819 bl defN 16-Mar-25 09:26 res/raw/ka_kbd.xml │ --rw---- 2.0 fat 1796 bl defN 16-Mar-25 09:26 res/raw/ka_transliteration.xml │ --rw---- 2.0 fat 1989 bl defN 16-Mar-25 09:26 res/raw/kk_arabic.xml │ --rw---- 2.0 fat 3850 bl defN 16-Mar-25 09:26 res/raw/kk_kbd.xml │ --rw---- 2.0 fat 4332 bl defN 16-Mar-25 09:26 res/raw/kn_inscript.xml │ --rw---- 2.0 fat 4604 bl defN 16-Mar-25 09:26 res/raw/kn_inscript2.xml │ --rw---- 2.0 fat 4068 bl defN 16-Mar-25 09:26 res/raw/kn_kgp.xml │ --rw---- 2.0 fat 6599 bl defN 16-Mar-25 09:26 res/raw/kn_transliteration.xml │ --rw---- 2.0 fat 4630 bl defN 16-Mar-25 09:26 res/raw/kok_inscript2.xml │ --rw---- 2.0 fat 4878 bl defN 16-Mar-25 09:26 res/raw/ks_inscript.xml │ --rw---- 2.0 fat 4052 bl defN 16-Mar-25 09:26 res/raw/ks_kbd.xml │ --rw---- 2.0 fat 4452 bl defN 16-Mar-25 09:26 res/raw/lo_kbd.xml │ --rw---- 2.0 fat 4670 bl defN 16-Mar-25 09:26 res/raw/mai_inscript.xml │ --rw---- 1.0 fat 34 b- stor 16-Mar-25 09:24 res/raw/main.dict │ --rw---- 1.0 fat 531018 b- stor 16-Mar-25 09:24 res/raw/main_bn.dict │ --rw---- 1.0 fat 1070470 b- stor 16-Mar-25 09:24 res/raw/main_en.dict │ --rw---- 1.0 fat 517477 b- stor 16-Mar-25 09:24 res/raw/main_gu.dict │ --rw---- 1.0 fat 526590 b- stor 16-Mar-25 09:24 res/raw/main_hi.dict │ --rw---- 1.0 fat 607756 b- stor 16-Mar-25 09:24 res/raw/main_kn.dict │ --rw---- 1.0 fat 714993 b- stor 16-Mar-25 09:24 res/raw/main_ml.dict │ --rw---- 1.0 fat 174624 b- stor 16-Mar-25 09:24 res/raw/main_pa.dict │ --rw---- 1.0 fat 664358 b- stor 16-Mar-25 09:24 res/raw/main_ta.dict │ --rw---- 1.0 fat 607634 b- stor 16-Mar-25 09:24 res/raw/main_te.dict │ --rw---- 2.0 fat 3191 bl defN 16-Mar-25 09:26 res/raw/ml_inscript.xml │ --rw---- 2.0 fat 5120 bl defN 16-Mar-25 09:26 res/raw/ml_inscript2.xml │ --rw---- 2.0 fat 17236 bl defN 16-Mar-25 09:26 res/raw/ml_swanalekha.xml │ --rw---- 2.0 fat 17366 bl defN 16-Mar-25 09:26 res/raw/ml_transliteration.xml │ --rw---- 2.0 fat 3935 bl defN 16-Mar-25 09:26 res/raw/mn_cyrl.xml │ --rw---- 2.0 fat 4501 bl defN 16-Mar-25 09:26 res/raw/mr_inscript.xml │ --rw---- 2.0 fat 4711 bl defN 16-Mar-25 09:26 res/raw/mr_inscript2.xml │ --rw---- 2.0 fat 4149 bl defN 16-Mar-25 09:26 res/raw/mr_phonetic.xml │ --rw---- 2.0 fat 6150 bl defN 16-Mar-25 09:26 res/raw/mr_transliteration.xml │ --rw---- 2.0 fat 3248 bl defN 16-Mar-25 09:26 res/raw/my_kbd.xml │ --rw---- 2.0 fat 4508 bl defN 16-Mar-25 09:26 res/raw/ne_inscript.xml │ --rw---- 2.0 fat 4599 bl defN 16-Mar-25 09:26 res/raw/ne_inscript2.xml │ --rw---- 2.0 fat 7375 bl defN 16-Mar-25 09:26 res/raw/ne_transliteration.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/raw/no_normforms.xml │ --rw---- 2.0 fat 577 bl defN 16-Mar-25 09:26 res/raw/no_tildeforms.xml │ --rw---- 2.0 fat 3972 bl defN 16-Mar-25 09:26 res/raw/or_inscript.xml │ --rw---- 2.0 fat 4499 bl defN 16-Mar-25 09:26 res/raw/or_inscript2.xml │ --rw---- 2.0 fat 8601 bl defN 16-Mar-25 09:26 res/raw/or_lekhani.xml │ --rw---- 2.0 fat 4073 bl defN 16-Mar-25 09:26 res/raw/or_phonetic.xml │ --rw---- 2.0 fat 6079 bl defN 16-Mar-25 09:26 res/raw/or_transliteration.xml │ --rw---- 2.0 fat 3499 bl defN 16-Mar-25 09:26 res/raw/pa_inscript.xml │ --rw---- 2.0 fat 4232 bl defN 16-Mar-25 09:26 res/raw/pa_inscript2.xml │ --rw---- 2.0 fat 5034 bl defN 16-Mar-25 09:26 res/raw/pa_jhelum.xml │ --rw---- 2.0 fat 3556 bl defN 16-Mar-25 09:26 res/raw/pa_phonetic.xml │ --rw---- 2.0 fat 4497 bl defN 16-Mar-25 09:26 res/raw/pa_transliteration.xml │ --rw---- 2.0 fat 175 bl defN 16-Mar-25 09:26 res/raw/reverse_ta_transliteration.xml │ --rw---- 2.0 fat 3207 bl defN 16-Mar-25 09:26 res/raw/ru_jcuken.xml │ --rw---- 2.0 fat 3508 bl defN 16-Mar-25 09:26 res/raw/ru_kbd.xml │ --rw---- 2.0 fat 4443 bl defN 16-Mar-25 09:26 res/raw/sa_inscript.xml │ --rw---- 2.0 fat 4525 bl defN 16-Mar-25 09:26 res/raw/sa_inscript2.xml │ --rw---- 2.0 fat 7156 bl defN 16-Mar-25 09:26 res/raw/sa_transliteration.xml │ --rw---- 2.0 fat 3535 bl defN 16-Mar-25 09:26 res/raw/sah_transliteration.xml │ --rw---- 2.0 fat 793 bl defN 16-Mar-25 09:26 res/raw/se_normforms.xml │ --rw---- 2.0 fat 4320 bl defN 16-Mar-25 09:26 res/raw/si_singlish.xml │ --rw---- 2.0 fat 3822 bl defN 16-Mar-25 09:26 res/raw/si_wijesekara.xml │ --rw---- 2.0 fat 4971 bl defN 16-Mar-25 09:26 res/raw/sk_kbd.xml │ --rw---- 2.0 fat 3458 bl defN 16-Mar-25 09:26 res/raw/sr_kbd.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/raw/sv_normforms.xml │ --rw---- 2.0 fat 5209 bl defN 16-Mar-25 09:26 res/raw/ta_99.xml │ --rw---- 2.0 fat 3293 bl defN 16-Mar-25 09:26 res/raw/ta_bamini.xml │ --rw---- 2.0 fat 3453 bl defN 16-Mar-25 09:26 res/raw/ta_inscript.xml │ --rw---- 2.0 fat 4050 bl defN 16-Mar-25 09:26 res/raw/ta_inscript2.xml │ --rw---- 2.0 fat 4688 bl defN 16-Mar-25 09:26 res/raw/ta_transliteration.xml │ --rw---- 2.0 fat 4427 bl defN 16-Mar-25 09:26 res/raw/te_inscript.xml │ --rw---- 2.0 fat 5004 bl defN 16-Mar-25 09:26 res/raw/te_inscript2.xml │ --rw---- 2.0 fat 6347 bl defN 16-Mar-25 09:26 res/raw/te_kachatathapa.xml │ --rw---- 2.0 fat 8934 bl defN 16-Mar-25 09:26 res/raw/te_transliteration.xml │ --rw---- 2.0 fat 4103 bl defN 16-Mar-25 09:26 res/raw/th_kedmanee.xml │ --rw---- 2.0 fat 4105 bl defN 16-Mar-25 09:26 res/raw/th_pattachote.xml │ --rw---- 2.0 fat 2365 bl defN 16-Mar-25 09:26 res/raw/transliteration.xml │ --rw---- 2.0 fat 3509 bl defN 16-Mar-25 09:26 res/raw/ua_kbd.xml │ --rw---- 2.0 fat 2648 bl defN 16-Mar-25 09:26 res/raw/ug_kbd.xml │ --rw---- 2.0 fat 3577 bl defN 16-Mar-25 09:26 res/raw/ur_transliteration.xml │ --rw---- 2.0 fat 3611 bl defN 16-Mar-25 09:26 res/raw/uz_kbd.xml │ --rw---- 2.0 fat 552 bl defN 16-Mar-25 09:26 res/xml-land/kbd_number.xml │ --rw---- 2.0 fat 552 bl defN 16-Mar-25 09:26 res/xml-land/kbd_phone.xml │ --rw---- 2.0 fat 552 bl defN 16-Mar-25 09:26 res/xml-land/kbd_phone_symbols.xml │ --rw---- 2.0 fat 380 bl defN 16-Mar-25 09:26 res/xml-sw600dp-land-v13/kbd_more_keys_keyboard_template.xml │ --rw---- 2.0 fat 552 bl defN 16-Mar-25 09:26 res/xml-sw600dp-land-v13/kbd_number.xml │ --rw---- 2.0 fat 552 bl defN 16-Mar-25 09:26 res/xml-sw600dp-land-v13/kbd_phone.xml │ --rw---- 2.0 fat 552 bl defN 16-Mar-25 09:26 res/xml-sw600dp-land-v13/kbd_phone_symbols.xml │ --rw---- 2.0 fat 380 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/kbd_more_keys_keyboard_template.xml │ --rw---- 2.0 fat 448 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/kbd_number.xml │ --rw---- 2.0 fat 448 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/kbd_phone.xml │ --rw---- 2.0 fat 448 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/kbd_phone_symbols.xml │ --rw---- 2.0 fat 1472 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_comma.xml │ --rw---- 2.0 fat 1500 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_period.xml │ --rw---- 2.0 fat 704 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_settings.xml │ --rw---- 2.0 fat 1580 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_space_7kw.xml │ --rw---- 2.0 fat 400 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_space_symbols.xml │ --rw---- 2.0 fat 6148 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_styles_common.xml │ --rw---- 2.0 fat 5028 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/key_styles_enter.xml │ --rw---- 2.0 fat 436 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/keys_arabic3_left.xml │ --rw---- 2.0 fat 620 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/keys_exclamation_question.xml │ --rw---- 2.0 fat 952 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/row_qwerty4.xml │ --rw---- 2.0 fat 1292 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_arabic.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_bengali.xml │ --rw---- 2.0 fat 1548 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_gujarati.xml │ --rw---- 2.0 fat 1408 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_hindi.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_hindi_compact.xml │ --rw---- 2.0 fat 1548 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_kannada.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_kannada_compact.xml │ --rw---- 2.0 fat 1548 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_malayalam.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_malayalam_compact.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_marathi.xml │ --rw---- 2.0 fat 1672 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_myanmar.xml │ --rw---- 2.0 fat 1492 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_nepali_romanized.xml │ --rw---- 2.0 fat 1492 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_nepali_traditional.xml │ --rw---- 2.0 fat 4716 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_number_normal.xml │ --rw---- 2.0 fat 2372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_number_password.xml │ --rw---- 2.0 fat 3892 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_phone.xml │ --rw---- 2.0 fat 1548 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_qwerty.xml │ --rw---- 2.0 fat 1492 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_sinhala.xml │ --rw---- 2.0 fat 2076 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_symbols.xml │ --rw---- 2.0 fat 2084 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_symbols_shift.xml │ --rw---- 2.0 fat 1548 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_tamil.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_tamil_compact.xml │ --rw---- 2.0 fat 1548 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_telugu.xml │ --rw---- 2.0 fat 1372 bl defN 16-Mar-25 09:26 res/xml-sw600dp-v13/rows_telugu_compact.xml │ --rw---- 2.0 fat 1220 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_sign_anusvara.xml │ --rw---- 2.0 fat 1004 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_sign_candrabindu.xml │ --rw---- 2.0 fat 1200 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_sign_nukta.xml │ --rw---- 2.0 fat 1348 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_sign_virama.xml │ --rw---- 2.0 fat 428 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_sign_visarga.xml │ --rw---- 2.0 fat 1424 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml │ --rw---- 2.0 fat 1640 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml │ --rw---- 2.0 fat 1416 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_au.xml │ --rw---- 2.0 fat 1208 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml │ --rw---- 2.0 fat 1208 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_e.xml │ --rw---- 2.0 fat 1400 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_i.xml │ --rw---- 2.0 fat 1416 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml │ --rw---- 2.0 fat 1408 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_o.xml │ --rw---- 2.0 fat 1408 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_u.xml │ --rw---- 2.0 fat 1424 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml │ --rw---- 2.0 fat 1648 bl defN 16-Mar-25 09:26 res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml │ --rw---- 2.0 fat 12904 bl defN 16-Mar-25 09:26 res/xml-v17/method.xml │ --rw---- 2.0 fat 12952 bl defN 16-Mar-25 09:26 res/xml-v19/method.xml │ --rw---- 2.0 fat 240 bl defN 16-Mar-25 09:26 res/xml/additional_subtype_settings.xml │ --rw---- 2.0 fat 320 bl defN 16-Mar-25 09:26 res/xml/dictionary_settings.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_10_10_7_symbols.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_10_10_7_symbols_shift.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_arabic.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_assamese_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_bengali.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_bengali_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_bengali_probhat.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_burmese.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_category1.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_category2.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_category3.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_category4.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_category5.xml │ --rw---- 2.0 fat 604 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_category6.xml │ --rw---- 2.0 fat 604 bl defN 16-Mar-25 09:26 res/xml/kbd_emoji_recents.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_gujarati.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_gujarati_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_hindi.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_hindi_compact.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_hindi_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_kannada.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_kannada_anysoft_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_kannada_compact.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_kannada_inscript.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_kashmiri_inscript.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_maithili_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_malayalam.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_malayalam_compact.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_malayalam_inscript.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_manipuri_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_marathi.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_mon.xml │ --rw---- 2.0 fat 380 bl defN 16-Mar-25 09:26 res/xml/kbd_more_keys_keyboard_template.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_myanmar.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_nepali_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_nepali_romanized.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_nepali_traditional.xml │ --rw---- 2.0 fat 448 bl defN 16-Mar-25 09:26 res/xml/kbd_number.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_oriya_inscript.xml │ --rw---- 2.0 fat 448 bl defN 16-Mar-25 09:26 res/xml/kbd_phone.xml │ --rw---- 2.0 fat 448 bl defN 16-Mar-25 09:26 res/xml/kbd_phone_symbols.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_punjabi.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_punjabi_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_qwerty.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_santali_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_sinhala.xml │ --rw---- 2.0 fat 312 bl defN 16-Mar-25 09:26 res/xml/kbd_suggestions_pane_template.xml │ --rw---- 2.0 fat 412 bl defN 16-Mar-25 09:26 res/xml/kbd_symbols.xml │ --rw---- 2.0 fat 412 bl defN 16-Mar-25 09:26 res/xml/kbd_symbols_shift.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_tamil.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_tamil_99.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_tamil_compact.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_tamil_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_telugu.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_telugu_compact.xml │ --rw---- 2.0 fat 592 bl defN 16-Mar-25 09:26 res/xml/kbd_telugu_inscript.xml │ --rw---- 2.0 fat 352 bl defN 16-Mar-25 09:26 res/xml/kbd_telugu_kachatathapa.xml │ --rw---- 2.0 fat 1628 bl defN 16-Mar-25 09:26 res/xml/key_comma.xml │ --rw---- 2.0 fat 784 bl defN 16-Mar-25 09:26 res/xml/key_emoji.xml │ --rw---- 2.0 fat 1900 bl defN 16-Mar-25 09:26 res/xml/key_period.xml │ --rw---- 2.0 fat 1572 bl defN 16-Mar-25 09:26 res/xml/key_space.xml │ --rw---- 2.0 fat 2348 bl defN 16-Mar-25 09:26 res/xml/key_space_5kw.xml │ --rw---- 2.0 fat 400 bl defN 16-Mar-25 09:26 res/xml/key_space_symbols.xml │ --rw---- 2.0 fat 4444 bl defN 16-Mar-25 09:26 res/xml/key_styles_actions.xml │ --rw---- 2.0 fat 5988 bl defN 16-Mar-25 09:26 res/xml/key_styles_common.xml │ --rw---- 2.0 fat 3320 bl defN 16-Mar-25 09:26 res/xml/key_styles_currency.xml │ --rw---- 2.0 fat 1040 bl defN 16-Mar-25 09:26 res/xml/key_styles_currency_dollar.xml │ --rw---- 2.0 fat 1044 bl defN 16-Mar-25 09:26 res/xml/key_styles_currency_euro.xml │ --rw---- 2.0 fat 1064 bl defN 16-Mar-25 09:26 res/xml/key_styles_currency_generic.xml │ --rw---- 2.0 fat 8688 bl defN 16-Mar-25 09:26 res/xml/key_styles_enter.xml │ --rw---- 2.0 fat 1416 bl defN 16-Mar-25 09:26 res/xml/key_styles_less_greater.xml │ --rw---- 2.0 fat 3668 bl defN 16-Mar-25 09:26 res/xml/key_styles_navigate_more_keys.xml │ --rw---- 2.0 fat 4892 bl defN 16-Mar-25 09:26 res/xml/key_styles_number.xml │ --rw---- 2.0 fat 1004 bl defN 16-Mar-25 09:26 res/xml/key_styles_settings.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_arabic.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_assamese_inscript.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_bengali.xml │ --rw---- 2.0 fat 884 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_bengali_inscript.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_bengali_probhat.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_burmese.xml │ --rw---- 2.0 fat 1004 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_emoji.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_gujarati.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_gujarati_inscript.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_hindi.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_hindi_compact.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_hindi_inscript.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_kannada.xml │ --rw---- 2.0 fat 964 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_kannada_anysoft_inscript.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_kannada_compact.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_kannada_inscript.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_kashmiri_inscript.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_maithili_inscript.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_malayalam.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_malayalam_compact.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_malayalam_inscript.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_manipuri_inscript.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_marathi.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_mon.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_myanmar.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_nepali_inscript.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_nepali_romanized.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_nepali_traditional.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_oriya_inscript.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_punjabi.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_punjabi_inscript.xml │ --rw---- 2.0 fat 964 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_qwerty.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_santali_inscript.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_sinhala.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_tamil.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_tamil_99.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_tamil_compact.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_tamil_inscript.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_telugu.xml │ --rw---- 2.0 fat 1084 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_telugu_compact.xml │ --rw---- 2.0 fat 764 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_telugu_inscript.xml │ --rw---- 2.0 fat 1384 bl defN 16-Mar-25 09:26 res/xml/keyboard_layout_set_telugu_kachatathapa.xml │ --rw---- 2.0 fat 348 bl defN 16-Mar-25 09:26 res/xml/keys_arabic3_left.xml │ --rw---- 2.0 fat 496 bl defN 16-Mar-25 09:26 res/xml/keys_curly_brackets.xml │ --rw---- 2.0 fat 2180 bl defN 16-Mar-25 09:26 res/xml/keys_dvorak_123.xml │ --rw---- 2.0 fat 348 bl defN 16-Mar-25 09:26 res/xml/keys_farsi3_right.xml │ --rw---- 2.0 fat 628 bl defN 16-Mar-25 09:26 res/xml/keys_parentheses.xml │ --rw---- 2.0 fat 500 bl defN 16-Mar-25 09:26 res/xml/keys_square_brackets.xml │ --rw---- 2.0 fat 1308 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_sign_anusvara.xml │ --rw---- 2.0 fat 1060 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_sign_candrabindu.xml │ --rw---- 2.0 fat 1272 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_sign_nukta.xml │ --rw---- 2.0 fat 1400 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_sign_virama.xml │ --rw---- 2.0 fat 480 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_sign_visarga.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_aa.xml │ --rw---- 2.0 fat 1708 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_ai.xml │ --rw---- 2.0 fat 1484 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_au.xml │ --rw---- 2.0 fat 1256 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_candra_e.xml │ --rw---- 2.0 fat 1256 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_candra_o.xml │ --rw---- 2.0 fat 1688 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_e.xml │ --rw---- 2.0 fat 1460 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_i.xml │ --rw---- 2.0 fat 1484 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_ii.xml │ --rw---- 2.0 fat 1484 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_o.xml │ --rw---- 2.0 fat 1476 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_u.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_uu.xml │ --rw---- 2.0 fat 1720 bl defN 16-Mar-25 09:26 res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml │ --rw---- 2.0 fat 12844 bl defN 16-Mar-25 09:26 res/xml/method.xml │ --rw---- 2.0 fat 1512 bl defN 16-Mar-25 09:26 res/xml/prefs.xml │ --rw---- 2.0 fat 1700 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_advanced.xml │ --rw---- 2.0 fat 780 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_appearance.xml │ --rw---- 2.0 fat 2524 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_correction.xml │ --rw---- 2.0 fat 3348 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_debug.xml │ --rw---- 2.0 fat 1252 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_gesture.xml │ --rw---- 2.0 fat 880 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_multilingual.xml │ --rw---- 2.0 fat 1496 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_preferences.xml │ --rw---- 2.0 fat 440 bl defN 16-Mar-25 09:26 res/xml/prefs_screen_theme.xml │ --rw---- 2.0 fat 1480 bl defN 16-Mar-25 09:26 res/xml/row_pcqwerty5.xml │ --rw---- 2.0 fat 928 bl defN 16-Mar-25 09:26 res/xml/row_qwerty4.xml │ --rw---- 2.0 fat 796 bl defN 16-Mar-25 09:26 res/xml/row_symbols4.xml │ --rw---- 2.0 fat 920 bl defN 16-Mar-25 09:26 res/xml/row_symbols_shift4.xml │ --rw---- 2.0 fat 2028 bl defN 16-Mar-25 09:26 res/xml/rowkeys_arabic1.xml │ --rw---- 2.0 fat 1500 bl defN 16-Mar-25 09:26 res/xml/rowkeys_arabic2.xml │ --rw---- 2.0 fat 1256 bl defN 16-Mar-25 09:26 res/xml/rowkeys_arabic3.xml │ --rw---- 2.0 fat 4496 bl defN 16-Mar-25 09:26 res/xml/rowkeys_assamese_inscript1.xml │ --rw---- 2.0 fat 3616 bl defN 16-Mar-25 09:26 res/xml/rowkeys_assamese_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_assamese_inscript3.xml │ --rw---- 2.0 fat 2844 bl defN 16-Mar-25 09:26 res/xml/rowkeys_assamese_inscript4.xml │ --rw---- 2.0 fat 2132 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali1.xml │ --rw---- 2.0 fat 1624 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali2.xml │ --rw---- 2.0 fat 1440 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali3.xml │ --rw---- 2.0 fat 4376 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali_inscript1.xml │ --rw---- 2.0 fat 3616 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali_inscript3.xml │ --rw---- 2.0 fat 2784 bl defN 16-Mar-25 09:26 res/xml/rowkeys_bengali_inscript4.xml │ --rw---- 2.0 fat 3536 bl defN 16-Mar-25 09:26 res/xml/rowkeys_burmese1.xml │ --rw---- 2.0 fat 3260 bl defN 16-Mar-25 09:26 res/xml/rowkeys_burmese2.xml │ --rw---- 2.0 fat 2532 bl defN 16-Mar-25 09:26 res/xml/rowkeys_burmese3.xml │ --rw---- 2.0 fat 3420 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati1.xml │ --rw---- 2.0 fat 2920 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati2.xml │ --rw---- 2.0 fat 2268 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati3.xml │ --rw---- 2.0 fat 4404 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati_inscript1.xml │ --rw---- 2.0 fat 3636 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati_inscript2.xml │ --rw---- 2.0 fat 3156 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati_inscript3.xml │ --rw---- 2.0 fat 2812 bl defN 16-Mar-25 09:26 res/xml/rowkeys_gujarati_inscript4.xml │ --rw---- 2.0 fat 4348 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi1.xml │ --rw---- 2.0 fat 3608 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi2.xml │ --rw---- 2.0 fat 3004 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi3.xml │ --rw---- 2.0 fat 2824 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_compact1.xml │ --rw---- 2.0 fat 2304 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_compact2.xml │ --rw---- 2.0 fat 1748 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_compact3.xml │ --rw---- 2.0 fat 4480 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_inscript1.xml │ --rw---- 2.0 fat 3836 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_inscript3.xml │ --rw---- 2.0 fat 2928 bl defN 16-Mar-25 09:26 res/xml/rowkeys_hindi_inscript4.xml │ --rw---- 2.0 fat 3420 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada1.xml │ --rw---- 2.0 fat 2952 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada2.xml │ --rw---- 2.0 fat 2412 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada3.xml │ --rw---- 2.0 fat 3048 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_anysoft_inscript1.xml │ --rw---- 2.0 fat 3128 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_anysoft_inscript2.xml │ --rw---- 2.0 fat 2688 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_anysoft_inscript3.xml │ --rw---- 2.0 fat 2188 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_compact1.xml │ --rw---- 2.0 fat 1600 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_compact2.xml │ --rw---- 2.0 fat 1432 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_compact3.xml │ --rw---- 2.0 fat 4124 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_inscript1.xml │ --rw---- 2.0 fat 3616 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_inscript3.xml │ --rw---- 2.0 fat 2924 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kannada_inscript4.xml │ --rw---- 2.0 fat 4160 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kashmiri_inscript1.xml │ --rw---- 2.0 fat 3676 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kashmiri_inscript2.xml │ --rw---- 2.0 fat 2956 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kashmiri_inscript3.xml │ --rw---- 2.0 fat 2976 bl defN 16-Mar-25 09:26 res/xml/rowkeys_kashmiri_inscript4.xml │ --rw---- 2.0 fat 2928 bl defN 16-Mar-25 09:26 res/xml/rowkeys_maithili_inscript4.xml │ --rw---- 2.0 fat 3808 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam1.xml │ --rw---- 2.0 fat 3168 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam2.xml │ --rw---- 2.0 fat 2720 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam3.xml │ --rw---- 2.0 fat 2164 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_compact1.xml │ --rw---- 2.0 fat 1596 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_compact2.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_compact3.xml │ --rw---- 2.0 fat 4136 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_inscript1.xml │ --rw---- 2.0 fat 3636 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_inscript3.xml │ --rw---- 2.0 fat 3104 bl defN 16-Mar-25 09:26 res/xml/rowkeys_malayalam_inscript4.xml │ --rw---- 2.0 fat 4300 bl defN 16-Mar-25 09:26 res/xml/rowkeys_manipuri_inscript1.xml │ --rw---- 2.0 fat 3616 bl defN 16-Mar-25 09:26 res/xml/rowkeys_manipuri_inscript2.xml │ --rw---- 2.0 fat 3156 bl defN 16-Mar-25 09:26 res/xml/rowkeys_manipuri_inscript3.xml │ --rw---- 2.0 fat 2784 bl defN 16-Mar-25 09:26 res/xml/rowkeys_manipuri_inscript4.xml │ --rw---- 2.0 fat 2672 bl defN 16-Mar-25 09:26 res/xml/rowkeys_marathi1.xml │ --rw---- 2.0 fat 2148 bl defN 16-Mar-25 09:26 res/xml/rowkeys_marathi2.xml │ --rw---- 2.0 fat 1724 bl defN 16-Mar-25 09:26 res/xml/rowkeys_marathi3.xml │ --rw---- 2.0 fat 3268 bl defN 16-Mar-25 09:26 res/xml/rowkeys_mon1.xml │ --rw---- 2.0 fat 2828 bl defN 16-Mar-25 09:26 res/xml/rowkeys_mon2.xml │ --rw---- 2.0 fat 2828 bl defN 16-Mar-25 09:26 res/xml/rowkeys_mon3.xml │ --rw---- 2.0 fat 3028 bl defN 16-Mar-25 09:26 res/xml/rowkeys_myanmar1.xml │ --rw---- 2.0 fat 2820 bl defN 16-Mar-25 09:26 res/xml/rowkeys_myanmar2.xml │ --rw---- 2.0 fat 2612 bl defN 16-Mar-25 09:26 res/xml/rowkeys_myanmar3.xml │ --rw---- 2.0 fat 2336 bl defN 16-Mar-25 09:26 res/xml/rowkeys_myanmar4.xml │ --rw---- 2.0 fat 4168 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_inscript1.xml │ --rw---- 2.0 fat 3596 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_inscript2.xml │ --rw---- 2.0 fat 3148 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_inscript3.xml │ --rw---- 2.0 fat 2784 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_inscript4.xml │ --rw---- 2.0 fat 4376 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_romanized1.xml │ --rw---- 2.0 fat 2852 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_romanized2.xml │ --rw---- 2.0 fat 2720 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_romanized3.xml │ --rw---- 2.0 fat 3936 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_traditional1.xml │ --rw---- 2.0 fat 3504 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_traditional2.xml │ --rw---- 2.0 fat 1948 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_traditional3_left6.xml │ --rw---- 2.0 fat 1568 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_traditional3_right3.xml │ --rw---- 2.0 fat 2420 bl defN 16-Mar-25 09:26 res/xml/rowkeys_nepali_traditional3_right5.xml │ --rw---- 2.0 fat 4196 bl defN 16-Mar-25 09:26 res/xml/rowkeys_oriya_inscript1.xml │ --rw---- 2.0 fat 3616 bl defN 16-Mar-25 09:26 res/xml/rowkeys_oriya_inscript2.xml │ --rw---- 2.0 fat 3156 bl defN 16-Mar-25 09:26 res/xml/rowkeys_oriya_inscript3.xml │ --rw---- 2.0 fat 2844 bl defN 16-Mar-25 09:26 res/xml/rowkeys_oriya_inscript4.xml │ --rw---- 2.0 fat 3048 bl defN 16-Mar-25 09:26 res/xml/rowkeys_probhat1.xml │ --rw---- 2.0 fat 3064 bl defN 16-Mar-25 09:26 res/xml/rowkeys_probhat2.xml │ --rw---- 2.0 fat 2608 bl defN 16-Mar-25 09:26 res/xml/rowkeys_probhat3.xml │ --rw---- 2.0 fat 2820 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi1.xml │ --rw---- 2.0 fat 2700 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi2.xml │ --rw---- 2.0 fat 2312 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi3.xml │ --rw---- 2.0 fat 4012 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi_inscript1.xml │ --rw---- 2.0 fat 3616 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi_inscript3.xml │ --rw---- 2.0 fat 2924 bl defN 16-Mar-25 09:26 res/xml/rowkeys_punjabi_inscript4.xml │ --rw---- 2.0 fat 2120 bl defN 16-Mar-25 09:26 res/xml/rowkeys_qwerty1.xml │ --rw---- 2.0 fat 1412 bl defN 16-Mar-25 09:26 res/xml/rowkeys_qwerty2.xml │ --rw---- 2.0 fat 1124 bl defN 16-Mar-25 09:26 res/xml/rowkeys_qwerty3.xml │ --rw---- 2.0 fat 4392 bl defN 16-Mar-25 09:26 res/xml/rowkeys_santali_inscript1.xml │ --rw---- 2.0 fat 3156 bl defN 16-Mar-25 09:26 res/xml/rowkeys_santali_inscript3.xml │ --rw---- 2.0 fat 2648 bl defN 16-Mar-25 09:26 res/xml/rowkeys_santali_inscript4.xml │ --rw---- 2.0 fat 3216 bl defN 16-Mar-25 09:26 res/xml/rowkeys_sinhala1.xml │ --rw---- 2.0 fat 2600 bl defN 16-Mar-25 09:26 res/xml/rowkeys_sinhala2.xml │ --rw---- 2.0 fat 2368 bl defN 16-Mar-25 09:26 res/xml/rowkeys_sinhala3.xml │ --rw---- 2.0 fat 2536 bl defN 16-Mar-25 09:26 res/xml/rowkeys_symbols1.xml │ --rw---- 2.0 fat 1768 bl defN 16-Mar-25 09:26 res/xml/rowkeys_symbols2.xml │ --rw---- 2.0 fat 1828 bl defN 16-Mar-25 09:26 res/xml/rowkeys_symbols3.xml │ --rw---- 2.0 fat 1272 bl defN 16-Mar-25 09:26 res/xml/rowkeys_symbols_shift1.xml │ --rw---- 2.0 fat 1228 bl defN 16-Mar-25 09:26 res/xml/rowkeys_symbols_shift2.xml │ --rw---- 2.0 fat 824 bl defN 16-Mar-25 09:26 res/xml/rowkeys_symbols_shift3.xml │ --rw---- 2.0 fat 2828 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil1.xml │ --rw---- 2.0 fat 2780 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil2.xml │ --rw---- 2.0 fat 2160 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil3.xml │ --rw---- 2.0 fat 3232 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_99_1.xml │ --rw---- 2.0 fat 3012 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_99_2.xml │ --rw---- 2.0 fat 2808 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_99_3.xml │ --rw---- 2.0 fat 1960 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_compact1.xml │ --rw---- 2.0 fat 1504 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_compact2.xml │ --rw---- 2.0 fat 1268 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_compact3.xml │ --rw---- 2.0 fat 4280 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_inscript1.xml │ --rw---- 2.0 fat 3324 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_inscript2.xml │ --rw---- 2.0 fat 2964 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_inscript3.xml │ --rw---- 2.0 fat 2844 bl defN 16-Mar-25 09:26 res/xml/rowkeys_tamil_inscript4.xml │ --rw---- 2.0 fat 3176 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu1.xml │ --rw---- 2.0 fat 2748 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu2.xml │ --rw---- 2.0 fat 2248 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu3.xml │ --rw---- 2.0 fat 2148 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_compact1.xml │ --rw---- 2.0 fat 1600 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_compact2.xml │ --rw---- 2.0 fat 1436 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_compact3.xml │ --rw---- 2.0 fat 4324 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_inscript1.xml │ --rw---- 2.0 fat 3584 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_inscript2.xml │ --rw---- 2.0 fat 3180 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_inscript3.xml │ --rw---- 2.0 fat 2844 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_inscript4.xml │ --rw---- 2.0 fat 3140 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_kachatathapa1.xml │ --rw---- 2.0 fat 3040 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_kachatathapa2.xml │ --rw---- 2.0 fat 2488 bl defN 16-Mar-25 09:26 res/xml/rowkeys_telugu_kachatathapa3.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_arabic.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_assamese_inscript.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_bengali.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_bengali_inscript.xml │ --rw---- 2.0 fat 1360 bl defN 16-Mar-25 09:26 res/xml/rows_bengali_probhat.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_burmese.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_gujarati.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_gujarati_inscript.xml │ --rw---- 2.0 fat 1292 bl defN 16-Mar-25 09:26 res/xml/rows_hindi.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_hindi_compact.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_hindi_inscript.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_kannada.xml │ --rw---- 2.0 fat 1304 bl defN 16-Mar-25 09:26 res/xml/rows_kannada_anysoft_inscript.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_kannada_compact.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_kannada_inscript.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_kashmiri_inscript.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_maithili_inscript.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_malayalam.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_malayalam_compact.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_malayalam_inscript.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_manipuri_inscript.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_marathi.xml │ --rw---- 2.0 fat 1360 bl defN 16-Mar-25 09:26 res/xml/rows_mon.xml │ --rw---- 2.0 fat 1432 bl defN 16-Mar-25 09:26 res/xml/rows_myanmar.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_nepali_inscript.xml │ --rw---- 2.0 fat 1292 bl defN 16-Mar-25 09:26 res/xml/rows_nepali_romanized.xml │ --rw---- 2.0 fat 1452 bl defN 16-Mar-25 09:26 res/xml/rows_nepali_traditional.xml │ --rw---- 2.0 fat 852 bl defN 16-Mar-25 09:26 res/xml/rows_number.xml │ --rw---- 2.0 fat 3904 bl defN 16-Mar-25 09:26 res/xml/rows_number_normal.xml │ --rw---- 2.0 fat 2372 bl defN 16-Mar-25 09:26 res/xml/rows_number_password.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_oriya_inscript.xml │ --rw---- 2.0 fat 2648 bl defN 16-Mar-25 09:26 res/xml/rows_phone.xml │ --rw---- 2.0 fat 2672 bl defN 16-Mar-25 09:26 res/xml/rows_phone_symbols.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_punjabi.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_punjabi_inscript.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_qwerty.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_santali_inscript.xml │ --rw---- 2.0 fat 1292 bl defN 16-Mar-25 09:26 res/xml/rows_sinhala.xml │ --rw---- 2.0 fat 1796 bl defN 16-Mar-25 09:26 res/xml/rows_symbols.xml │ --rw---- 2.0 fat 1800 bl defN 16-Mar-25 09:26 res/xml/rows_symbols_shift.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_tamil.xml │ --rw---- 2.0 fat 1248 bl defN 16-Mar-25 09:26 res/xml/rows_tamil_99.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_tamil_compact.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_tamil_inscript.xml │ --rw---- 2.0 fat 1340 bl defN 16-Mar-25 09:26 res/xml/rows_telugu.xml │ --rw---- 2.0 fat 1172 bl defN 16-Mar-25 09:26 res/xml/rows_telugu_compact.xml │ --rw---- 2.0 fat 1620 bl defN 16-Mar-25 09:26 res/xml/rows_telugu_inscript.xml │ --rw---- 2.0 fat 1360 bl defN 16-Mar-25 09:26 res/xml/rows_telugu_kachatathapa.xml │ --rw---- 2.0 fat 560 bl defN 16-Mar-25 09:26 res/xml/spell_checker_settings.xml │ --rw---- 2.0 fat 768 bl defN 16-Mar-25 09:26 res/xml/spellchecker.xml │ --rw---- 1.0 fat 361396 b- stor 16-Mar-25 09:24 resources.arsc │ --rw---- 2.0 fat 2506936 bl defN 16-Mar-25 09:26 classes.dex │ -1516 files, 10833136 bytes uncompressed, 7921290 bytes compressed: 26.9% │ +-rw---- 2.0 fat 10756 bX defN 16-Sep-07 10:37 AndroidManifest.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/anim/alt_code_key_while_typing_fadein.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/anim/alt_code_key_while_typing_fadeout.xml │ +-rw---- 2.0 fat 640 bl defN 16-Sep-07 10:37 res/anim/key_preview_dismiss_holo.xml │ +-rw---- 2.0 fat 640 bl defN 16-Sep-07 10:37 res/anim/key_preview_dismiss_lxx.xml │ +-rw---- 2.0 fat 640 bl defN 16-Sep-07 10:37 res/anim/key_preview_show_up_holo.xml │ +-rw---- 2.0 fat 640 bl defN 16-Sep-07 10:37 res/anim/key_preview_show_up_lxx.xml │ +-rw---- 2.0 fat 520 bl defN 16-Sep-07 10:37 res/anim/language_on_spacebar_fadeout.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/color/setup_step_action_background.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/color/setup_step_action_color.xml │ +-rw---- 1.0 fat 512 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ +-rw---- 1.0 fat 507 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ +-rw---- 1.0 fat 1197 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ +-rw---- 1.0 fat 1201 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ +-rw---- 1.0 fat 1199 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 1197 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 507 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ +-rw---- 1.0 fat 729 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ +-rw---- 1.0 fat 584 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ +-rw---- 1.0 fat 745 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ +-rw---- 1.0 fat 757 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ +-rw---- 1.0 fat 548 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ +-rw---- 1.0 fat 507 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ +-rw---- 1.0 fat 519 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ +-rw---- 1.0 fat 661 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ +-rw---- 1.0 fat 366 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ +-rw---- 1.0 fat 367 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ +-rw---- 1.0 fat 683 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ +-rw---- 1.0 fat 729 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ +-rw---- 1.0 fat 367 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ +-rw---- 1.0 fat 366 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ +-rw---- 1.0 fat 319 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ +-rw---- 1.0 fat 317 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ +-rw---- 1.0 fat 319 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ +-rw---- 1.0 fat 268 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 290 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ +-rw---- 1.0 fat 582 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ +-rw---- 1.0 fat 580 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ +-rw---- 1.0 fat 584 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ +-rw---- 1.0 fat 548 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ +-rw---- 1.0 fat 759 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ +-rw---- 1.0 fat 745 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ +-rw---- 1.0 fat 338 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ +-rw---- 1.0 fat 340 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ +-rw---- 1.0 fat 795 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ +-rw---- 1.0 fat 757 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ +-rw---- 1.0 fat 369 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ +-rw---- 1.0 fat 366 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ +-rw---- 1.0 fat 357 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ +-rw---- 1.0 fat 419 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ +-rw---- 1.0 fat 375 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 419 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/emoji_category_tab_selected_ics.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/emoji_category_tab_selected_klp.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 184 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ +-rw---- 1.0 fat 184 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ +-rw---- 1.0 fat 553 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_add_circle_wht_24dp.png │ +-rw---- 1.0 fat 945 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ +-rw---- 1.0 fat 961 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ +-rw---- 1.0 fat 1076 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ +-rw---- 1.0 fat 882 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ +-rw---- 1.0 fat 876 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ +-rw---- 1.0 fat 994 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ +-rw---- 1.0 fat 1655 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_nature_activated_holo_dark.png │ +-rw---- 1.0 fat 1235 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ +-rw---- 1.0 fat 1226 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_nature_activated_lxx_light.png │ +-rw---- 1.0 fat 1281 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_nature_normal_holo_dark.png │ +-rw---- 1.0 fat 843 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ +-rw---- 1.0 fat 843 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_nature_normal_lxx_light.png │ +-rw---- 1.0 fat 1662 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_objects_activated_holo_dark.png │ +-rw---- 1.0 fat 1400 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ +-rw---- 1.0 fat 1343 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_objects_activated_lxx_light.png │ +-rw---- 1.0 fat 1311 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_objects_normal_holo_dark.png │ +-rw---- 1.0 fat 947 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ +-rw---- 1.0 fat 947 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_objects_normal_lxx_light.png │ +-rw---- 1.0 fat 1480 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_people_activated_holo_dark.png │ +-rw---- 1.0 fat 1093 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_people_activated_lxx_dark.png │ +-rw---- 1.0 fat 1047 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_people_activated_lxx_light.png │ +-rw---- 1.0 fat 1200 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_people_normal_holo_dark.png │ +-rw---- 1.0 fat 778 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_people_normal_lxx_dark.png │ +-rw---- 1.0 fat 778 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_people_normal_lxx_light.png │ +-rw---- 1.0 fat 1257 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_places_activated_holo_dark.png │ +-rw---- 1.0 fat 885 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_places_activated_lxx_dark.png │ +-rw---- 1.0 fat 793 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_places_activated_lxx_light.png │ +-rw---- 1.0 fat 1073 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_places_normal_holo_dark.png │ +-rw---- 1.0 fat 649 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_places_normal_lxx_dark.png │ +-rw---- 1.0 fat 649 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_places_normal_lxx_light.png │ +-rw---- 1.0 fat 1475 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_recents_activated_holo_dark.png │ +-rw---- 1.0 fat 1061 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ +-rw---- 1.0 fat 1019 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_recents_activated_lxx_light.png │ +-rw---- 1.0 fat 1162 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_recents_normal_holo_dark.png │ +-rw---- 1.0 fat 775 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ +-rw---- 1.0 fat 775 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_recents_normal_lxx_light.png │ +-rw---- 1.0 fat 892 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ +-rw---- 1.0 fat 768 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ +-rw---- 1.0 fat 699 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ +-rw---- 1.0 fat 778 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ +-rw---- 1.0 fat 580 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ +-rw---- 1.0 fat 580 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ +-rw---- 1.0 fat 790 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_ime_switcher_dark.png │ +-rw---- 1.0 fat 2809 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_launcher_keyboard.png │ +-rw---- 1.0 fat 348 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_menu_add.png │ +-rw---- 1.0 fat 602 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/ic_notify_dictionary.png │ +-rw---- 1.0 fat 252 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_background_holo.9.png │ +-rw---- 1.0 fat 207 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_background_lxx_dark.9.png │ +-rw---- 1.0 fat 208 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_background_lxx_light.9.png │ +-rw---- 1.0 fat 933 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_background.9.png │ +-rw---- 1.0 fat 1551 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_background_holo.9.png │ +-rw---- 1.0 fat 2034 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_background_ics.9.png │ +-rw---- 1.0 fat 1568 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_background_klp.9.png │ +-rw---- 1.0 fat 875 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ +-rw---- 1.0 fat 832 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ +-rw---- 1.0 fat 1541 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ +-rw---- 1.0 fat 1937 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ +-rw---- 1.0 fat 1541 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ +-rw---- 1.0 fat 1579 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ +-rw---- 1.0 fat 2097 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ +-rw---- 1.0 fat 1579 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ +-rw---- 1.0 fat 1089 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_more_background.9.png │ +-rw---- 1.0 fat 1609 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ +-rw---- 1.0 fat 2207 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ +-rw---- 1.0 fat 1609 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ +-rw---- 1.0 fat 1121 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ +-rw---- 1.0 fat 1039 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ +-rw---- 1.0 fat 1544 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ +-rw---- 1.0 fat 1949 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ +-rw---- 1.0 fat 1544 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ +-rw---- 1.0 fat 1590 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ +-rw---- 1.0 fat 2121 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ +-rw---- 1.0 fat 1590 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ +-rw---- 1.0 fat 887 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_popup_panel_background_holo.9.png │ +-rw---- 1.0 fat 874 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_popup_panel_background_ics.9.png │ +-rw---- 1.0 fat 885 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_popup_panel_background_klp.9.png │ +-rw---- 1.0 fat 725 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ +-rw---- 1.0 fat 671 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ +-rw---- 1.0 fat 193 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_suggest_strip_holo.9.png │ +-rw---- 1.0 fat 207 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ +-rw---- 1.0 fat 208 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ +-rw---- 1.0 fat 110 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/more_keys_divider.png │ +-rw---- 1.0 fat 110 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/more_suggestions_divider.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/suggestions_strip_divider_holo.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/suggestions_strip_divider_lxx_dark.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/suggestions_strip_divider_lxx_light.png │ +-rw---- 1.0 fat 811 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_delete_holo_dark.png │ +-rw---- 1.0 fat 524 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_delete_lxx_dark.png │ +-rw---- 1.0 fat 524 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_delete_lxx_light.png │ +-rw---- 1.0 fat 327 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_done_lxx_dark.png │ +-rw---- 1.0 fat 729 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_done_lxx_light.png │ +-rw---- 1.0 fat 240 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_go_lxx_dark.png │ +-rw---- 1.0 fat 332 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_go_lxx_light.png │ +-rw---- 1.0 fat 1755 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_language_switch_dark.png │ +-rw---- 1.0 fat 955 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ +-rw---- 1.0 fat 955 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_language_switch_lxx_light.png │ +-rw---- 1.0 fat 382 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_next_lxx_dark.png │ +-rw---- 1.0 fat 382 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_next_lxx_light.png │ +-rw---- 1.0 fat 373 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_previous_lxx_dark.png │ +-rw---- 1.0 fat 373 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_previous_lxx_light.png │ +-rw---- 1.0 fat 771 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_return_holo_dark.png │ +-rw---- 1.0 fat 379 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_return_lxx_dark.png │ +-rw---- 1.0 fat 379 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_return_lxx_light.png │ +-rw---- 1.0 fat 1147 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_search_holo_dark.png │ +-rw---- 1.0 fat 779 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_search_lxx_dark.png │ +-rw---- 1.0 fat 941 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_search_lxx_light.png │ +-rw---- 1.0 fat 923 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_send_lxx_dark.png │ +-rw---- 1.0 fat 930 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_send_lxx_light.png │ +-rw---- 1.0 fat 1535 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_settings_holo_dark.png │ +-rw---- 1.0 fat 761 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_settings_lxx_dark.png │ +-rw---- 1.0 fat 761 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_settings_lxx_light.png │ +-rw---- 1.0 fat 683 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_shift_holo_dark.png │ +-rw---- 1.0 fat 459 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ +-rw---- 1.0 fat 705 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ +-rw---- 1.0 fat 705 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ +-rw---- 1.0 fat 649 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_shift_lxx_dark.png │ +-rw---- 1.0 fat 649 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_shift_lxx_light.png │ +-rw---- 1.0 fat 1480 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_smiley_holo_dark.png │ +-rw---- 1.0 fat 1047 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_smiley_lxx_dark.png │ +-rw---- 1.0 fat 1047 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_smiley_lxx_light.png │ +-rw---- 1.0 fat 676 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_space.png │ +-rw---- 1.0 fat 458 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_space_holo_dark.png │ +-rw---- 1.0 fat 151 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_space_lxx_dark.png │ +-rw---- 1.0 fat 151 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_space_lxx_light.png │ +-rw---- 1.0 fat 365 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ +-rw---- 1.0 fat 693 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_tab_holo_dark.png │ +-rw---- 1.0 fat 374 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_tab_lxx_dark.png │ +-rw---- 1.0 fat 374 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_tab_lxx_light.png │ +-rw---- 1.0 fat 991 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_voice_holo_dark.png │ +-rw---- 1.0 fat 864 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_voice_lxx_dark.png │ +-rw---- 1.0 fat 864 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_voice_lxx_light.png │ +-rw---- 1.0 fat 901 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_voice_off_holo_dark.png │ +-rw---- 1.0 fat 675 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ +-rw---- 1.0 fat 675 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_voice_off_lxx_light.png │ +-rw---- 1.0 fat 703 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_zwj_holo_dark.png │ +-rw---- 1.0 fat 263 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_zwj_lxx_dark.png │ +-rw---- 1.0 fat 263 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_zwj_lxx_light.png │ +-rw---- 1.0 fat 719 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_zwnj_holo_dark.png │ +-rw---- 1.0 fat 305 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ +-rw---- 1.0 fat 259 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/sym_keyboard_zwnj_lxx_light.png │ +-rw---- 1.0 fat 605 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_check_01.png │ +-rw---- 1.0 fat 573 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_check_02.png │ +-rw---- 1.0 fat 1533 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_earth_01.png │ +-rw---- 1.0 fat 1539 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_earth_02.png │ +-rw---- 1.0 fat 942 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_key_01.png │ +-rw---- 1.0 fat 942 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_key_02.png │ +-rw---- 1.0 fat 911 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_select_01.png │ +-rw---- 1.0 fat 911 b- stor 16-Sep-07 10:36 res/drawable-hdpi-v4/unbundled_select_02.png │ +-rw---- 1.0 fat 391 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ +-rw---- 1.0 fat 408 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ +-rw---- 1.0 fat 831 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ +-rw---- 1.0 fat 830 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ +-rw---- 1.0 fat 826 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 831 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 408 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ +-rw---- 1.0 fat 553 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ +-rw---- 1.0 fat 436 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ +-rw---- 1.0 fat 577 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ +-rw---- 1.0 fat 568 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ +-rw---- 1.0 fat 427 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ +-rw---- 1.0 fat 408 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ +-rw---- 1.0 fat 389 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ +-rw---- 1.0 fat 527 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ +-rw---- 1.0 fat 357 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ +-rw---- 1.0 fat 355 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ +-rw---- 1.0 fat 526 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ +-rw---- 1.0 fat 553 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ +-rw---- 1.0 fat 366 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ +-rw---- 1.0 fat 355 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ +-rw---- 1.0 fat 275 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ +-rw---- 1.0 fat 282 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ +-rw---- 1.0 fat 275 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ +-rw---- 1.0 fat 246 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 252 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ +-rw---- 1.0 fat 451 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ +-rw---- 1.0 fat 438 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ +-rw---- 1.0 fat 436 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ +-rw---- 1.0 fat 427 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ +-rw---- 1.0 fat 609 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ +-rw---- 1.0 fat 577 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ +-rw---- 1.0 fat 335 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ +-rw---- 1.0 fat 325 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ +-rw---- 1.0 fat 602 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ +-rw---- 1.0 fat 568 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ +-rw---- 1.0 fat 366 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ +-rw---- 1.0 fat 361 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ +-rw---- 1.0 fat 309 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ +-rw---- 1.0 fat 326 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ +-rw---- 1.0 fat 313 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 330 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/emoji_category_tab_selected_ics.9.png │ +-rw---- 1.0 fat 182 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/emoji_category_tab_selected_klp.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 182 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ +-rw---- 1.0 fat 184 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ +-rw---- 1.0 fat 376 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_add_circle_wht_24dp.png │ +-rw---- 1.0 fat 655 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ +-rw---- 1.0 fat 674 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ +-rw---- 1.0 fat 694 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ +-rw---- 1.0 fat 677 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ +-rw---- 1.0 fat 626 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ +-rw---- 1.0 fat 651 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ +-rw---- 1.0 fat 1131 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_nature_activated_holo_dark.png │ +-rw---- 1.0 fat 842 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ +-rw---- 1.0 fat 856 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_nature_activated_lxx_light.png │ +-rw---- 1.0 fat 900 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_nature_normal_holo_dark.png │ +-rw---- 1.0 fat 575 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ +-rw---- 1.0 fat 575 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_nature_normal_lxx_light.png │ +-rw---- 1.0 fat 1195 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_objects_activated_holo_dark.png │ +-rw---- 1.0 fat 986 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ +-rw---- 1.0 fat 951 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_objects_activated_lxx_light.png │ +-rw---- 1.0 fat 987 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_objects_normal_holo_dark.png │ +-rw---- 1.0 fat 715 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ +-rw---- 1.0 fat 715 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_objects_normal_lxx_light.png │ +-rw---- 1.0 fat 926 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_people_activated_holo_dark.png │ +-rw---- 1.0 fat 696 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_people_activated_lxx_dark.png │ +-rw---- 1.0 fat 687 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_people_activated_lxx_light.png │ +-rw---- 1.0 fat 772 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_people_normal_holo_dark.png │ +-rw---- 1.0 fat 551 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_people_normal_lxx_dark.png │ +-rw---- 1.0 fat 551 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_people_normal_lxx_light.png │ +-rw---- 1.0 fat 893 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_places_activated_holo_dark.png │ +-rw---- 1.0 fat 583 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_places_activated_lxx_dark.png │ +-rw---- 1.0 fat 528 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_places_activated_lxx_light.png │ +-rw---- 1.0 fat 728 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_places_normal_holo_dark.png │ +-rw---- 1.0 fat 451 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_places_normal_lxx_dark.png │ +-rw---- 1.0 fat 451 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_places_normal_lxx_light.png │ +-rw---- 1.0 fat 910 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_recents_activated_holo_dark.png │ +-rw---- 1.0 fat 664 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ +-rw---- 1.0 fat 645 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_recents_activated_lxx_light.png │ +-rw---- 1.0 fat 759 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_recents_normal_holo_dark.png │ +-rw---- 1.0 fat 531 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ +-rw---- 1.0 fat 531 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_recents_normal_lxx_light.png │ +-rw---- 1.0 fat 646 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ +-rw---- 1.0 fat 550 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ +-rw---- 1.0 fat 474 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ +-rw---- 1.0 fat 561 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ +-rw---- 1.0 fat 417 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ +-rw---- 1.0 fat 417 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ +-rw---- 1.0 fat 804 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_ime_switcher_dark.png │ +-rw---- 1.0 fat 1972 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_launcher_keyboard.png │ +-rw---- 1.0 fat 291 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_menu_add.png │ +-rw---- 1.0 fat 498 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/ic_notify_dictionary.png │ +-rw---- 1.0 fat 236 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_background_holo.9.png │ +-rw---- 1.0 fat 198 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_background_lxx_dark.9.png │ +-rw---- 1.0 fat 198 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_background_lxx_light.9.png │ +-rw---- 1.0 fat 774 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_background.9.png │ +-rw---- 1.0 fat 1365 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_background_holo.9.png │ +-rw---- 1.0 fat 1318 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_background_ics.9.png │ +-rw---- 1.0 fat 1332 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_background_klp.9.png │ +-rw---- 1.0 fat 599 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ +-rw---- 1.0 fat 591 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ +-rw---- 1.0 fat 1292 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ +-rw---- 1.0 fat 1295 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ +-rw---- 1.0 fat 1292 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ +-rw---- 1.0 fat 1405 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ +-rw---- 1.0 fat 1431 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ +-rw---- 1.0 fat 1405 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ +-rw---- 1.0 fat 880 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_more_background.9.png │ +-rw---- 1.0 fat 1453 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ +-rw---- 1.0 fat 1457 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ +-rw---- 1.0 fat 1453 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ +-rw---- 1.0 fat 736 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ +-rw---- 1.0 fat 735 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ +-rw---- 1.0 fat 1302 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ +-rw---- 1.0 fat 1288 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ +-rw---- 1.0 fat 1302 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ +-rw---- 1.0 fat 1414 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ +-rw---- 1.0 fat 1424 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ +-rw---- 1.0 fat 1414 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ +-rw---- 1.0 fat 645 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_popup_panel_background_holo.9.png │ +-rw---- 1.0 fat 611 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_popup_panel_background_ics.9.png │ +-rw---- 1.0 fat 641 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_popup_panel_background_klp.9.png │ +-rw---- 1.0 fat 514 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ +-rw---- 1.0 fat 500 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ +-rw---- 1.0 fat 197 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_suggest_strip_holo.9.png │ +-rw---- 1.0 fat 198 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ +-rw---- 1.0 fat 198 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ +-rw---- 1.0 fat 112 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/more_keys_divider.png │ +-rw---- 1.0 fat 112 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/more_suggestions_divider.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/suggestions_strip_divider_holo.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/suggestions_strip_divider_lxx_dark.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/suggestions_strip_divider_lxx_light.png │ +-rw---- 1.0 fat 654 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_delete_holo_dark.png │ +-rw---- 1.0 fat 357 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_delete_lxx_dark.png │ +-rw---- 1.0 fat 357 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_delete_lxx_light.png │ +-rw---- 1.0 fat 291 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_done_lxx_dark.png │ +-rw---- 1.0 fat 506 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_done_lxx_light.png │ +-rw---- 1.0 fat 228 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_go_lxx_dark.png │ +-rw---- 1.0 fat 242 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_go_lxx_light.png │ +-rw---- 1.0 fat 714 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_language_switch_dark.png │ +-rw---- 1.0 fat 721 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ +-rw---- 1.0 fat 721 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_language_switch_lxx_light.png │ +-rw---- 1.0 fat 288 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_next_lxx_dark.png │ +-rw---- 1.0 fat 288 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_next_lxx_light.png │ +-rw---- 1.0 fat 295 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_previous_lxx_dark.png │ +-rw---- 1.0 fat 295 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_previous_lxx_light.png │ +-rw---- 1.0 fat 616 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_return_holo_dark.png │ +-rw---- 1.0 fat 279 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_return_lxx_dark.png │ +-rw---- 1.0 fat 279 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_return_lxx_light.png │ +-rw---- 1.0 fat 786 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_search_holo_dark.png │ +-rw---- 1.0 fat 421 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_search_lxx_dark.png │ +-rw---- 1.0 fat 606 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_search_lxx_light.png │ +-rw---- 1.0 fat 690 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_send_lxx_dark.png │ +-rw---- 1.0 fat 698 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_send_lxx_light.png │ +-rw---- 1.0 fat 1087 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_settings_holo_dark.png │ +-rw---- 1.0 fat 560 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_settings_lxx_dark.png │ +-rw---- 1.0 fat 560 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_settings_lxx_light.png │ +-rw---- 1.0 fat 526 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_shift_holo_dark.png │ +-rw---- 1.0 fat 426 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ +-rw---- 1.0 fat 560 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ +-rw---- 1.0 fat 560 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ +-rw---- 1.0 fat 522 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_shift_lxx_dark.png │ +-rw---- 1.0 fat 522 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_shift_lxx_light.png │ +-rw---- 1.0 fat 926 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_smiley_holo_dark.png │ +-rw---- 1.0 fat 733 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_smiley_lxx_dark.png │ +-rw---- 1.0 fat 687 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_smiley_lxx_light.png │ +-rw---- 1.0 fat 266 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_space.png │ +-rw---- 1.0 fat 365 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_space_holo_dark.png │ +-rw---- 1.0 fat 146 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_space_lxx_dark.png │ +-rw---- 1.0 fat 146 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_space_lxx_light.png │ +-rw---- 1.0 fat 320 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ +-rw---- 1.0 fat 561 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_tab_holo_dark.png │ +-rw---- 1.0 fat 268 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_tab_lxx_dark.png │ +-rw---- 1.0 fat 268 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_tab_lxx_light.png │ +-rw---- 1.0 fat 584 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_voice_holo_dark.png │ +-rw---- 1.0 fat 604 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_voice_lxx_dark.png │ +-rw---- 1.0 fat 604 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_voice_lxx_light.png │ +-rw---- 1.0 fat 541 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_voice_off_holo_dark.png │ +-rw---- 1.0 fat 479 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ +-rw---- 1.0 fat 479 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_voice_off_lxx_light.png │ +-rw---- 1.0 fat 562 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_zwj_holo_dark.png │ +-rw---- 1.0 fat 270 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_zwj_lxx_dark.png │ +-rw---- 1.0 fat 270 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_zwj_lxx_light.png │ +-rw---- 1.0 fat 497 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_zwnj_holo_dark.png │ +-rw---- 1.0 fat 261 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ +-rw---- 1.0 fat 272 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/sym_keyboard_zwnj_lxx_light.png │ +-rw---- 1.0 fat 483 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_check_01.png │ +-rw---- 1.0 fat 411 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_check_02.png │ +-rw---- 1.0 fat 567 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_earth_01.png │ +-rw---- 1.0 fat 1053 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_earth_02.png │ +-rw---- 1.0 fat 612 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_key_01.png │ +-rw---- 1.0 fat 612 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_key_02.png │ +-rw---- 1.0 fat 568 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_select_01.png │ +-rw---- 1.0 fat 568 b- stor 16-Sep-07 10:36 res/drawable-mdpi-v4/unbundled_select_02.png │ +-rw---- 1.0 fat 637 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ +-rw---- 1.0 fat 618 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ +-rw---- 1.0 fat 1501 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ +-rw---- 1.0 fat 1496 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ +-rw---- 1.0 fat 1493 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 1501 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 618 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ +-rw---- 1.0 fat 866 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ +-rw---- 1.0 fat 685 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ +-rw---- 1.0 fat 926 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ +-rw---- 1.0 fat 942 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ +-rw---- 1.0 fat 673 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ +-rw---- 1.0 fat 618 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ +-rw---- 1.0 fat 621 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ +-rw---- 1.0 fat 812 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ +-rw---- 1.0 fat 389 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ +-rw---- 1.0 fat 390 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ +-rw---- 1.0 fat 822 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ +-rw---- 1.0 fat 866 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ +-rw---- 1.0 fat 390 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ +-rw---- 1.0 fat 388 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ +-rw---- 1.0 fat 362 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ +-rw---- 1.0 fat 385 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ +-rw---- 1.0 fat 362 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ +-rw---- 1.0 fat 289 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 314 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ +-rw---- 1.0 fat 749 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ +-rw---- 1.0 fat 685 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ +-rw---- 1.0 fat 685 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ +-rw---- 1.0 fat 673 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ +-rw---- 1.0 fat 998 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ +-rw---- 1.0 fat 926 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ +-rw---- 1.0 fat 360 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ +-rw---- 1.0 fat 362 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ +-rw---- 1.0 fat 996 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ +-rw---- 1.0 fat 942 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ +-rw---- 1.0 fat 400 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ +-rw---- 1.0 fat 413 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ +-rw---- 1.0 fat 432 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ +-rw---- 1.0 fat 481 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ +-rw---- 1.0 fat 447 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 502 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/emoji_category_tab_selected_ics.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/emoji_category_tab_selected_klp.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ +-rw---- 1.0 fat 609 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_add_circle_wht_24dp.png │ +-rw---- 1.0 fat 1041 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ +-rw---- 1.0 fat 1325 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ +-rw---- 1.0 fat 1562 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ +-rw---- 1.0 fat 1037 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ +-rw---- 1.0 fat 1215 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ +-rw---- 1.0 fat 1415 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ +-rw---- 1.0 fat 2195 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_nature_activated_holo_dark.png │ +-rw---- 1.0 fat 1676 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ +-rw---- 1.0 fat 1656 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_nature_activated_lxx_light.png │ +-rw---- 1.0 fat 1659 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_nature_normal_holo_dark.png │ +-rw---- 1.0 fat 1100 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ +-rw---- 1.0 fat 1100 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_nature_normal_lxx_light.png │ +-rw---- 1.0 fat 2059 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_objects_activated_holo_dark.png │ +-rw---- 1.0 fat 1733 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ +-rw---- 1.0 fat 1668 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_objects_activated_lxx_light.png │ +-rw---- 1.0 fat 1638 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_objects_normal_holo_dark.png │ +-rw---- 1.0 fat 1167 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ +-rw---- 1.0 fat 1167 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_objects_normal_lxx_light.png │ +-rw---- 1.0 fat 2084 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_people_activated_holo_dark.png │ +-rw---- 1.0 fat 1472 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_people_activated_lxx_dark.png │ +-rw---- 1.0 fat 1440 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_people_activated_lxx_light.png │ +-rw---- 1.0 fat 1624 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_people_normal_holo_dark.png │ +-rw---- 1.0 fat 1050 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_people_normal_lxx_dark.png │ +-rw---- 1.0 fat 1050 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_people_normal_lxx_light.png │ +-rw---- 1.0 fat 1517 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_places_activated_holo_dark.png │ +-rw---- 1.0 fat 858 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_places_activated_lxx_dark.png │ +-rw---- 1.0 fat 789 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_places_activated_lxx_light.png │ +-rw---- 1.0 fat 1191 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_places_normal_holo_dark.png │ +-rw---- 1.0 fat 635 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_places_normal_lxx_dark.png │ +-rw---- 1.0 fat 635 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_places_normal_lxx_light.png │ +-rw---- 1.0 fat 2074 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_recents_activated_holo_dark.png │ +-rw---- 1.0 fat 1410 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ +-rw---- 1.0 fat 1370 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_recents_activated_lxx_light.png │ +-rw---- 1.0 fat 1538 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_recents_normal_holo_dark.png │ +-rw---- 1.0 fat 997 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ +-rw---- 1.0 fat 997 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_recents_normal_lxx_light.png │ +-rw---- 1.0 fat 1146 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ +-rw---- 1.0 fat 958 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ +-rw---- 1.0 fat 892 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ +-rw---- 1.0 fat 981 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ +-rw---- 1.0 fat 715 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ +-rw---- 1.0 fat 715 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ +-rw---- 1.0 fat 1194 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_ime_switcher_dark.png │ +-rw---- 1.0 fat 3807 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_launcher_keyboard.png │ +-rw---- 1.0 fat 349 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_menu_add.png │ +-rw---- 1.0 fat 766 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/ic_notify_dictionary.png │ +-rw---- 1.0 fat 257 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_background_holo.9.png │ +-rw---- 1.0 fat 219 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_background_lxx_dark.9.png │ +-rw---- 1.0 fat 215 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_background_lxx_light.9.png │ +-rw---- 1.0 fat 993 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_background.9.png │ +-rw---- 1.0 fat 2363 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_background_holo.9.png │ +-rw---- 1.0 fat 2851 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_background_ics.9.png │ +-rw---- 1.0 fat 2379 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_background_klp.9.png │ +-rw---- 1.0 fat 1179 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ +-rw---- 1.0 fat 1082 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ +-rw---- 1.0 fat 2274 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ +-rw---- 1.0 fat 2779 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ +-rw---- 1.0 fat 2274 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ +-rw---- 1.0 fat 2385 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ +-rw---- 1.0 fat 3084 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ +-rw---- 1.0 fat 2385 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ +-rw---- 1.0 fat 1131 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background.9.png │ +-rw---- 1.0 fat 2497 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ +-rw---- 1.0 fat 3125 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ +-rw---- 1.0 fat 2497 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ +-rw---- 1.0 fat 1423 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ +-rw---- 1.0 fat 1357 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ +-rw---- 1.0 fat 2345 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ +-rw---- 1.0 fat 2747 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ +-rw---- 1.0 fat 2345 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ +-rw---- 1.0 fat 2468 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ +-rw---- 1.0 fat 3032 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ +-rw---- 1.0 fat 2468 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ +-rw---- 1.0 fat 1238 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_popup_panel_background_holo.9.png │ +-rw---- 1.0 fat 1187 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_popup_panel_background_ics.9.png │ +-rw---- 1.0 fat 1235 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_popup_panel_background_klp.9.png │ +-rw---- 1.0 fat 932 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ +-rw---- 1.0 fat 868 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ +-rw---- 1.0 fat 199 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_suggest_strip_holo.9.png │ +-rw---- 1.0 fat 219 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ +-rw---- 1.0 fat 217 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ +-rw---- 1.0 fat 130 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/more_keys_divider.png │ +-rw---- 1.0 fat 130 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/more_suggestions_divider.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/suggestions_strip_divider_holo.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/suggestions_strip_divider_lxx_dark.png │ +-rw---- 1.0 fat 97 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/suggestions_strip_divider_lxx_light.png │ +-rw---- 1.0 fat 1057 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_delete_holo_dark.png │ +-rw---- 1.0 fat 656 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_delete_lxx_dark.png │ +-rw---- 1.0 fat 656 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_delete_lxx_light.png │ +-rw---- 1.0 fat 371 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_done_lxx_dark.png │ +-rw---- 1.0 fat 874 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_done_lxx_light.png │ +-rw---- 1.0 fat 324 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_go_lxx_dark.png │ +-rw---- 1.0 fat 299 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_go_lxx_light.png │ +-rw---- 1.0 fat 2356 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_language_switch_dark.png │ +-rw---- 1.0 fat 1222 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ +-rw---- 1.0 fat 1222 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_language_switch_lxx_light.png │ +-rw---- 1.0 fat 426 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_next_lxx_dark.png │ +-rw---- 1.0 fat 426 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_next_lxx_light.png │ +-rw---- 1.0 fat 496 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_previous_lxx_dark.png │ +-rw---- 1.0 fat 496 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_previous_lxx_light.png │ +-rw---- 1.0 fat 948 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_return_holo_dark.png │ +-rw---- 1.0 fat 361 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_return_lxx_dark.png │ +-rw---- 1.0 fat 361 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_return_lxx_light.png │ +-rw---- 1.0 fat 1452 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_search_holo_dark.png │ +-rw---- 1.0 fat 830 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_search_lxx_dark.png │ +-rw---- 1.0 fat 1026 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_search_lxx_light.png │ +-rw---- 1.0 fat 1189 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_send_lxx_dark.png │ +-rw---- 1.0 fat 1183 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_send_lxx_light.png │ +-rw---- 1.0 fat 1966 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_settings_holo_dark.png │ +-rw---- 1.0 fat 823 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_settings_lxx_dark.png │ +-rw---- 1.0 fat 823 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_settings_lxx_light.png │ +-rw---- 1.0 fat 816 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_shift_holo_dark.png │ +-rw---- 1.0 fat 573 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ +-rw---- 1.0 fat 873 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ +-rw---- 1.0 fat 873 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ +-rw---- 1.0 fat 745 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_shift_lxx_dark.png │ +-rw---- 1.0 fat 745 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_shift_lxx_light.png │ +-rw---- 1.0 fat 2084 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_smiley_holo_dark.png │ +-rw---- 1.0 fat 1042 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_smiley_lxx_dark.png │ +-rw---- 1.0 fat 1440 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_smiley_lxx_light.png │ +-rw---- 1.0 fat 1060 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_space.png │ +-rw---- 1.0 fat 457 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_space_holo_dark.png │ +-rw---- 1.0 fat 156 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_space_lxx_dark.png │ +-rw---- 1.0 fat 156 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_space_lxx_light.png │ +-rw---- 1.0 fat 436 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ +-rw---- 1.0 fat 773 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_tab_holo_dark.png │ +-rw---- 1.0 fat 359 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_tab_lxx_dark.png │ +-rw---- 1.0 fat 359 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_tab_lxx_light.png │ +-rw---- 1.0 fat 1376 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_voice_holo_dark.png │ +-rw---- 1.0 fat 860 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_voice_lxx_dark.png │ +-rw---- 1.0 fat 860 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_voice_lxx_light.png │ +-rw---- 1.0 fat 1228 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_voice_off_holo_dark.png │ +-rw---- 1.0 fat 749 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ +-rw---- 1.0 fat 749 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_voice_off_lxx_light.png │ +-rw---- 1.0 fat 945 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_zwj_holo_dark.png │ +-rw---- 1.0 fat 326 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_zwj_lxx_dark.png │ +-rw---- 1.0 fat 326 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_zwj_lxx_light.png │ +-rw---- 1.0 fat 874 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_zwnj_holo_dark.png │ +-rw---- 1.0 fat 323 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ +-rw---- 1.0 fat 320 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/sym_keyboard_zwnj_lxx_light.png │ +-rw---- 1.0 fat 787 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_check_01.png │ +-rw---- 1.0 fat 777 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_check_02.png │ +-rw---- 1.0 fat 2099 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_earth_01.png │ +-rw---- 1.0 fat 2076 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_earth_02.png │ +-rw---- 1.0 fat 1211 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_key_01.png │ +-rw---- 1.0 fat 1211 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_key_02.png │ +-rw---- 1.0 fat 1205 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_select_01.png │ +-rw---- 1.0 fat 1205 b- stor 16-Sep-07 10:36 res/drawable-xhdpi-v4/unbundled_select_02.png │ +-rw---- 1.0 fat 967 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_active_ics_dark.9.png │ +-rw---- 1.0 fat 910 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_active_klp_dark.9.png │ +-rw---- 1.0 fat 2454 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ +-rw---- 1.0 fat 2450 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ +-rw---- 1.0 fat 2451 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 2454 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 910 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_active_holo.9.png │ +-rw---- 1.0 fat 1291 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_normal_on_holo.9.png │ +-rw---- 1.0 fat 1047 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_pressed_holo.9.png │ +-rw---- 1.0 fat 1349 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_pressed_off_holo.9.png │ +-rw---- 1.0 fat 1370 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_dark_pressed_on_holo.9.png │ +-rw---- 1.0 fat 990 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_light_pressed_holo.9.png │ +-rw---- 1.0 fat 910 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_holo_dark.9.png │ +-rw---- 1.0 fat 979 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_holo_light.9.png │ +-rw---- 1.0 fat 1181 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_off_holo_dark.9.png │ +-rw---- 1.0 fat 404 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ +-rw---- 1.0 fat 402 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ +-rw---- 1.0 fat 1263 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_ics_dark.9.png │ +-rw---- 1.0 fat 1291 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_klp_dark.9.png │ +-rw---- 1.0 fat 412 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ +-rw---- 1.0 fat 406 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ +-rw---- 1.0 fat 420 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_holo.9.png │ +-rw---- 1.0 fat 453 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_ics.9.png │ +-rw---- 1.0 fat 420 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_klp.9.png │ +-rw---- 1.0 fat 342 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 389 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ +-rw---- 1.0 fat 1022 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_ics_dark.9.png │ +-rw---- 1.0 fat 994 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_ics_light.9.png │ +-rw---- 1.0 fat 1047 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_klp_dark.9.png │ +-rw---- 1.0 fat 990 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_klp_light.9.png │ +-rw---- 1.0 fat 1383 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_ics_dark.9.png │ +-rw---- 1.0 fat 1349 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_klp_dark.9.png │ +-rw---- 1.0 fat 379 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ +-rw---- 1.0 fat 382 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ +-rw---- 1.0 fat 1420 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_ics_dark.9.png │ +-rw---- 1.0 fat 1370 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_klp_dark.9.png │ +-rw---- 1.0 fat 413 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ +-rw---- 1.0 fat 433 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ +-rw---- 1.0 fat 569 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ +-rw---- 1.0 fat 640 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ +-rw---- 1.0 fat 591 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 679 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 186 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/emoji_category_tab_selected_ics.9.png │ +-rw---- 1.0 fat 186 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/emoji_category_tab_selected_klp.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/emoji_category_tab_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 198 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/emoji_category_tab_unselected_holo_dark.9.png │ +-rw---- 1.0 fat 185 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/emoji_category_tab_unselected_lxx_dark.9.png │ +-rw---- 1.0 fat 946 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_add_circle_wht_24dp.png │ +-rw---- 1.0 fat 726 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_emoticons_activated_holo_dark.png │ +-rw---- 1.0 fat 1787 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ +-rw---- 1.0 fat 2202 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ +-rw---- 1.0 fat 673 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_emoticons_normal_holo_dark.png │ +-rw---- 1.0 fat 1560 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ +-rw---- 1.0 fat 1969 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ +-rw---- 1.0 fat 2266 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_nature_activated_holo_dark.png │ +-rw---- 1.0 fat 2491 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ +-rw---- 1.0 fat 2427 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_nature_activated_lxx_light.png │ +-rw---- 1.0 fat 1642 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_nature_normal_holo_dark.png │ +-rw---- 1.0 fat 1660 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ +-rw---- 1.0 fat 1660 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_nature_normal_lxx_light.png │ +-rw---- 1.0 fat 2068 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_objects_activated_holo_dark.png │ +-rw---- 1.0 fat 2403 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ +-rw---- 1.0 fat 2314 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_objects_activated_lxx_light.png │ +-rw---- 1.0 fat 1502 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_objects_normal_holo_dark.png │ +-rw---- 1.0 fat 1615 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ +-rw---- 1.0 fat 1615 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_objects_normal_lxx_light.png │ +-rw---- 1.0 fat 2156 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_people_activated_holo_dark.png │ +-rw---- 1.0 fat 2194 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_people_activated_lxx_dark.png │ +-rw---- 1.0 fat 2159 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_people_activated_lxx_light.png │ +-rw---- 1.0 fat 1563 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_people_normal_holo_dark.png │ +-rw---- 1.0 fat 1556 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_people_normal_lxx_dark.png │ +-rw---- 1.0 fat 1556 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_people_normal_lxx_light.png │ +-rw---- 1.0 fat 1424 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_places_activated_holo_dark.png │ +-rw---- 1.0 fat 1182 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_places_activated_lxx_dark.png │ +-rw---- 1.0 fat 1145 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_places_activated_lxx_light.png │ +-rw---- 1.0 fat 1092 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_places_normal_holo_dark.png │ +-rw---- 1.0 fat 956 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_places_normal_lxx_dark.png │ +-rw---- 1.0 fat 956 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_places_normal_lxx_light.png │ +-rw---- 1.0 fat 2155 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_recents_activated_holo_dark.png │ +-rw---- 1.0 fat 2138 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ +-rw---- 1.0 fat 2075 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_recents_activated_lxx_light.png │ +-rw---- 1.0 fat 1557 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_recents_normal_holo_dark.png │ +-rw---- 1.0 fat 1488 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ +-rw---- 1.0 fat 1488 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_recents_normal_lxx_light.png │ +-rw---- 1.0 fat 1019 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_symbols_activated_holo_dark.png │ +-rw---- 1.0 fat 1310 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ +-rw---- 1.0 fat 1264 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ +-rw---- 1.0 fat 864 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_symbols_normal_holo_dark.png │ +-rw---- 1.0 fat 974 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ +-rw---- 1.0 fat 974 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ +-rw---- 1.0 fat 299 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_ime_switcher_dark.png │ +-rw---- 1.0 fat 5409 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_launcher_keyboard.png │ +-rw---- 1.0 fat 424 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/ic_notify_dictionary.png │ +-rw---- 1.0 fat 277 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_background_holo.9.png │ +-rw---- 1.0 fat 238 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_background_lxx_dark.9.png │ +-rw---- 1.0 fat 235 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_background_lxx_light.9.png │ +-rw---- 1.0 fat 3666 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_holo.9.png │ +-rw---- 1.0 fat 4380 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_ics.9.png │ +-rw---- 1.0 fat 3570 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_klp.9.png │ +-rw---- 1.0 fat 1927 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ +-rw---- 1.0 fat 1743 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ +-rw---- 1.0 fat 3450 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_background_holo.9.png │ +-rw---- 1.0 fat 4162 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_background_ics.9.png │ +-rw---- 1.0 fat 3450 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_background_klp.9.png │ +-rw---- 1.0 fat 3517 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_more_background_holo.9.png │ +-rw---- 1.0 fat 4341 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_more_background_ics.9.png │ +-rw---- 1.0 fat 3517 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_left_more_background_klp.9.png │ +-rw---- 1.0 fat 3691 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_holo.9.png │ +-rw---- 1.0 fat 4549 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_ics.9.png │ +-rw---- 1.0 fat 3691 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_klp.9.png │ +-rw---- 1.0 fat 2325 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ +-rw---- 1.0 fat 2143 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ +-rw---- 1.0 fat 3427 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_background_holo.9.png │ +-rw---- 1.0 fat 4135 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_background_ics.9.png │ +-rw---- 1.0 fat 3427 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_background_klp.9.png │ +-rw---- 1.0 fat 3496 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_more_background_holo.9.png │ +-rw---- 1.0 fat 4306 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_more_background_ics.9.png │ +-rw---- 1.0 fat 3496 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_key_feedback_right_more_background_klp.9.png │ +-rw---- 1.0 fat 1548 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_holo.9.png │ +-rw---- 1.0 fat 1867 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_ics.9.png │ +-rw---- 1.0 fat 1547 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_klp.9.png │ +-rw---- 1.0 fat 1444 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ +-rw---- 1.0 fat 1269 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ +-rw---- 1.0 fat 201 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_suggest_strip_holo.9.png │ +-rw---- 1.0 fat 238 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ +-rw---- 1.0 fat 236 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ +-rw---- 1.0 fat 98 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/suggestions_strip_divider_holo.png │ +-rw---- 1.0 fat 98 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/suggestions_strip_divider_lxx_dark.png │ +-rw---- 1.0 fat 98 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/suggestions_strip_divider_lxx_light.png │ +-rw---- 1.0 fat 724 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_delete_holo_dark.png │ +-rw---- 1.0 fat 993 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_delete_lxx_dark.png │ +-rw---- 1.0 fat 993 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_delete_lxx_light.png │ +-rw---- 1.0 fat 365 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_done_lxx_dark.png │ +-rw---- 1.0 fat 1364 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_done_lxx_light.png │ +-rw---- 1.0 fat 304 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_go_lxx_dark.png │ +-rw---- 1.0 fat 429 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_go_lxx_light.png │ +-rw---- 1.0 fat 2571 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_language_switch_dark.png │ +-rw---- 1.0 fat 1724 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ +-rw---- 1.0 fat 1724 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_language_switch_lxx_light.png │ +-rw---- 1.0 fat 754 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_next_lxx_dark.png │ +-rw---- 1.0 fat 754 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_next_lxx_light.png │ +-rw---- 1.0 fat 660 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_previous_lxx_dark.png │ +-rw---- 1.0 fat 660 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_previous_lxx_light.png │ +-rw---- 1.0 fat 816 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_return_holo_dark.png │ +-rw---- 1.0 fat 484 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_return_lxx_dark.png │ +-rw---- 1.0 fat 484 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_return_lxx_light.png │ +-rw---- 1.0 fat 1460 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_search_holo_dark.png │ +-rw---- 1.0 fat 1053 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_search_lxx_dark.png │ +-rw---- 1.0 fat 1708 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_search_lxx_light.png │ +-rw---- 1.0 fat 1462 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_send_lxx_dark.png │ +-rw---- 1.0 fat 1471 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_send_lxx_light.png │ +-rw---- 1.0 fat 2189 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_settings_holo_dark.png │ +-rw---- 1.0 fat 1260 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_settings_lxx_dark.png │ +-rw---- 1.0 fat 1260 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_settings_lxx_light.png │ +-rw---- 1.0 fat 459 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_shift_holo_dark.png │ +-rw---- 1.0 fat 312 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_shift_locked_holo_dark.png │ +-rw---- 1.0 fat 1121 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ +-rw---- 1.0 fat 1121 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ +-rw---- 1.0 fat 973 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_shift_lxx_dark.png │ +-rw---- 1.0 fat 973 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_shift_lxx_light.png │ +-rw---- 1.0 fat 2156 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_smiley_holo_dark.png │ +-rw---- 1.0 fat 1730 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_smiley_lxx_dark.png │ +-rw---- 1.0 fat 2159 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_smiley_lxx_light.png │ +-rw---- 1.0 fat 176 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_space_holo_dark.png │ +-rw---- 1.0 fat 164 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_space_lxx_dark.png │ +-rw---- 1.0 fat 164 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_space_lxx_light.png │ +-rw---- 1.0 fat 436 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_spacebar_lxx_dark.9.png │ +-rw---- 1.0 fat 593 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_tab_holo_dark.png │ +-rw---- 1.0 fat 510 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_tab_lxx_dark.png │ +-rw---- 1.0 fat 510 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_tab_lxx_light.png │ +-rw---- 1.0 fat 2471 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_voice_holo_dark.png │ +-rw---- 1.0 fat 1334 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_voice_lxx_dark.png │ +-rw---- 1.0 fat 1334 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_voice_lxx_light.png │ +-rw---- 1.0 fat 2118 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_voice_off_holo_dark.png │ +-rw---- 1.0 fat 1076 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ +-rw---- 1.0 fat 1076 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_voice_off_lxx_light.png │ +-rw---- 1.0 fat 611 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_zwj_holo_dark.png │ +-rw---- 1.0 fat 451 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_zwj_lxx_dark.png │ +-rw---- 1.0 fat 451 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_zwj_lxx_light.png │ +-rw---- 1.0 fat 620 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_zwnj_holo_dark.png │ +-rw---- 1.0 fat 423 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ +-rw---- 1.0 fat 425 b- stor 16-Sep-07 10:36 res/drawable-xxhdpi-v4/sym_keyboard_zwnj_lxx_light.png │ +-rw---- 1.0 fat 2493 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_lxx_dark.9.png │ +-rw---- 1.0 fat 2494 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_lxx_light.9.png │ +-rw---- 1.0 fat 2497 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 2496 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_active_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 369 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_off_lxx_dark.9.png │ +-rw---- 1.0 fat 368 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_off_lxx_light.9.png │ +-rw---- 1.0 fat 371 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_on_lxx_dark.9.png │ +-rw---- 1.0 fat 370 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_normal_on_lxx_light.9.png │ +-rw---- 1.0 fat 393 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_popup_selected_lxx_dark.9.png │ +-rw---- 1.0 fat 430 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_popup_selected_lxx_light.9.png │ +-rw---- 1.0 fat 357 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_off_lxx_dark.9.png │ +-rw---- 1.0 fat 359 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_off_lxx_light.9.png │ +-rw---- 1.0 fat 370 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_on_lxx_dark.9.png │ +-rw---- 1.0 fat 376 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_key_pressed_on_lxx_light.9.png │ +-rw---- 1.0 fat 748 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_normal_lxx_dark.9.png │ +-rw---- 1.0 fat 792 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_normal_lxx_light.9.png │ +-rw---- 1.0 fat 792 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_dark.9.png │ +-rw---- 1.0 fat 823 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/btn_keyboard_spacebar_pressed_lxx_light.9.png │ +-rw---- 1.0 fat 997 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_add_circle_white_24dp.png │ +-rw---- 1.0 fat 2582 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_activated_lxx_dark.png │ +-rw---- 1.0 fat 3513 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_activated_lxx_light.png │ +-rw---- 1.0 fat 2244 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_normal_lxx_dark.png │ +-rw---- 1.0 fat 3078 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_emoticons_normal_lxx_light.png │ +-rw---- 1.0 fat 2085 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_nature_activated_lxx_dark.png │ +-rw---- 1.0 fat 2299 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_nature_activated_lxx_light.png │ +-rw---- 1.0 fat 1481 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_nature_normal_lxx_dark.png │ +-rw---- 1.0 fat 1522 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_nature_normal_lxx_light.png │ +-rw---- 1.0 fat 1908 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_objects_activated_lxx_dark.png │ +-rw---- 1.0 fat 2091 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_objects_activated_lxx_light.png │ +-rw---- 1.0 fat 1366 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_objects_normal_lxx_dark.png │ +-rw---- 1.0 fat 1401 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_objects_normal_lxx_light.png │ +-rw---- 1.0 fat 1766 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_people_activated_lxx_dark.png │ +-rw---- 1.0 fat 1966 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_people_activated_lxx_light.png │ +-rw---- 1.0 fat 1309 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_people_normal_lxx_dark.png │ +-rw---- 1.0 fat 1337 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_people_normal_lxx_light.png │ +-rw---- 1.0 fat 812 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_places_activated_lxx_dark.png │ +-rw---- 1.0 fat 871 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_places_activated_lxx_light.png │ +-rw---- 1.0 fat 703 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_places_normal_lxx_dark.png │ +-rw---- 1.0 fat 724 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_places_normal_lxx_light.png │ +-rw---- 1.0 fat 1667 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_recents_activated_lxx_dark.png │ +-rw---- 1.0 fat 1838 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_recents_activated_lxx_light.png │ +-rw---- 1.0 fat 1238 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_recents_normal_lxx_dark.png │ +-rw---- 1.0 fat 1255 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_recents_normal_lxx_light.png │ +-rw---- 1.0 fat 976 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_symbols_activated_lxx_dark.png │ +-rw---- 1.0 fat 1027 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_symbols_activated_lxx_light.png │ +-rw---- 1.0 fat 809 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_symbols_normal_lxx_dark.png │ +-rw---- 1.0 fat 829 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_emoji_symbols_normal_lxx_light.png │ +-rw---- 1.0 fat 7369 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/ic_launcher_keyboard.png │ +-rw---- 1.0 fat 273 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_background_lxx_dark.9.png │ +-rw---- 1.0 fat 270 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_background_lxx_light.9.png │ +-rw---- 1.0 fat 2650 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_key_feedback_background_lxx_dark.9.png │ +-rw---- 1.0 fat 2442 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_key_feedback_background_lxx_light.9.png │ +-rw---- 1.0 fat 3079 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_key_feedback_more_background_lxx_dark.9.png │ +-rw---- 1.0 fat 2906 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_key_feedback_more_background_lxx_light.9.png │ +-rw---- 1.0 fat 1999 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_popup_panel_background_lxx_dark.9.png │ +-rw---- 1.0 fat 1814 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_popup_panel_background_lxx_light.9.png │ +-rw---- 1.0 fat 273 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_suggest_strip_lxx_dark.9.png │ +-rw---- 1.0 fat 271 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/keyboard_suggest_strip_lxx_light.9.png │ +-rw---- 1.0 fat 99 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/suggestions_strip_divider_lxx_dark.png │ +-rw---- 1.0 fat 99 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/suggestions_strip_divider_lxx_light.png │ +-rw---- 1.0 fat 822 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_delete_lxx_dark.png │ +-rw---- 1.0 fat 847 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_delete_lxx_light.png │ +-rw---- 1.0 fat 1268 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_done_lxx_dark.png │ +-rw---- 1.0 fat 1248 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_done_lxx_light.png │ +-rw---- 1.0 fat 254 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_go_lxx_dark.png │ +-rw---- 1.0 fat 254 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_go_lxx_light.png │ +-rw---- 1.0 fat 1679 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_language_switch_lxx_dark.png │ +-rw---- 1.0 fat 1706 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_language_switch_lxx_light.png │ +-rw---- 1.0 fat 688 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_next_lxx_dark.png │ +-rw---- 1.0 fat 688 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_next_lxx_light.png │ +-rw---- 1.0 fat 747 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_previous_lxx_dark.png │ +-rw---- 1.0 fat 747 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_previous_lxx_light.png │ +-rw---- 1.0 fat 293 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_return_lxx_dark.png │ +-rw---- 1.0 fat 293 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_return_lxx_light.png │ +-rw---- 1.0 fat 1515 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_search_lxx_dark.png │ +-rw---- 1.0 fat 1515 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_search_lxx_light.png │ +-rw---- 1.0 fat 1110 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_send_lxx_dark.png │ +-rw---- 1.0 fat 1110 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_send_lxx_light.png │ +-rw---- 1.0 fat 1209 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_settings_lxx_dark.png │ +-rw---- 1.0 fat 1228 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_settings_lxx_light.png │ +-rw---- 1.0 fat 956 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_shift_locked_lxx_dark.png │ +-rw---- 1.0 fat 956 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_shift_locked_lxx_light.png │ +-rw---- 1.0 fat 886 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_shift_lxx_dark.png │ +-rw---- 1.0 fat 886 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_shift_lxx_light.png │ +-rw---- 1.0 fat 1411 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_smiley_lxx_dark.png │ +-rw---- 1.0 fat 1411 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_smiley_lxx_light.png │ +-rw---- 1.0 fat 133 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_space_lxx_dark.png │ +-rw---- 1.0 fat 133 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_space_lxx_light.png │ +-rw---- 1.0 fat 351 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_tab_lxx_dark.png │ +-rw---- 1.0 fat 359 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_tab_lxx_light.png │ +-rw---- 1.0 fat 1043 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_voice_lxx_dark.png │ +-rw---- 1.0 fat 1065 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_voice_lxx_light.png │ +-rw---- 1.0 fat 955 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_voice_off_lxx_dark.png │ +-rw---- 1.0 fat 1030 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_voice_off_lxx_light.png │ +-rw---- 1.0 fat 400 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_zwj_lxx_dark.png │ +-rw---- 1.0 fat 416 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_zwj_lxx_light.png │ +-rw---- 1.0 fat 352 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_zwnj_lxx_dark.png │ +-rw---- 1.0 fat 391 b- stor 16-Sep-07 10:36 res/drawable-xxxhdpi-v4/sym_keyboard_zwnj_lxx_light.png │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_functional_ics.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_functional_klp.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_functional_lxx_dark.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_functional_lxx_light.xml │ +-rw---- 2.0 fat 1512 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_ics.xml │ +-rw---- 2.0 fat 1512 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_klp.xml │ +-rw---- 2.0 fat 1512 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_lxx_dark.xml │ +-rw---- 2.0 fat 1512 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_lxx_light.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_popup_action_lxx_dark.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_popup_action_lxx_light.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_popup_ics.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_popup_klp.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_popup_lxx_dark.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_key_popup_lxx_light.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_spacebar_ics.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_spacebar_klp.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_spacebar_lxx_dark.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/drawable/btn_keyboard_spacebar_lxx_light.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/drawable/btn_suggestion_ics.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/drawable/btn_suggestion_klp.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/drawable/btn_suggestion_lxx_dark.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/drawable/btn_suggestion_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_emoticons_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_emoticons_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_emoticons_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_nature_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_nature_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_nature_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_objects_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_objects_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_objects_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_people_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_people_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_people_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_places_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_places_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_places_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_recents_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_recents_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_recents_lxx_light.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_symbols_holo_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_symbols_lxx_dark.xml │ +-rw---- 2.0 fat 840 bl defN 16-Sep-07 10:37 res/drawable/ic_emoji_symbols_lxx_light.xml │ +-rw---- 2.0 fat 700 bl defN 16-Sep-07 10:37 res/drawable/ic_setup_finish.xml │ +-rw---- 2.0 fat 700 bl defN 16-Sep-07 10:37 res/drawable/ic_setup_step1.xml │ +-rw---- 2.0 fat 700 bl defN 16-Sep-07 10:37 res/drawable/ic_setup_step2.xml │ +-rw---- 2.0 fat 700 bl defN 16-Sep-07 10:37 res/drawable/ic_setup_step3.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/drawable/keyboard_key_feedback_ics.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/drawable/keyboard_key_feedback_klp.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/drawable/keyboard_key_feedback_lxx_dark.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/drawable/keyboard_key_feedback_lxx_light.xml │ +-rw---- 2.0 fat 700 bl defN 16-Sep-07 10:37 res/drawable/setup_step_action_background.xml │ +-rw---- 2.0 fat 1068 bl defN 16-Sep-07 10:37 res/layout-land-v17/setup_steps_screen.xml │ +-rw---- 2.0 fat 1072 bl defN 16-Sep-07 10:37 res/layout-land-v17/setup_welcome_screen.xml │ +-rw---- 2.0 fat 1020 bl defN 16-Sep-07 10:37 res/layout-land/setup_steps_screen.xml │ +-rw---- 2.0 fat 1024 bl defN 16-Sep-07 10:37 res/layout-land/setup_welcome_screen.xml │ +-rw---- 2.0 fat 1952 bl defN 16-Sep-07 10:37 res/layout-v17/additional_subtype_dialog.xml │ +-rw---- 2.0 fat 2948 bl defN 16-Sep-07 10:37 res/layout-v17/dictionary_line.xml │ +-rw---- 2.0 fat 456 bl defN 16-Sep-07 10:37 res/layout-v17/emoji_keyboard_page.xml │ +-rw---- 2.0 fat 964 bl defN 16-Sep-07 10:37 res/layout-v17/main_keyboard_frame.xml │ +-rw---- 2.0 fat 2236 bl defN 16-Sep-07 10:37 res/layout-v17/suggestions_strip.xml │ +-rw---- 2.0 fat 2556 bl defN 16-Sep-07 10:37 res/layout-v17/user_dictionary_add_word.xml │ +-rw---- 2.0 fat 2168 bl defN 16-Sep-07 10:37 res/layout-v17/user_dictionary_add_word_fullscreen.xml │ +-rw---- 2.0 fat 1404 bl defN 16-Sep-07 10:37 res/layout-v17/user_dictionary_item.xml │ +-rw---- 2.0 fat 1888 bl defN 16-Sep-07 10:37 res/layout/additional_subtype_dialog.xml │ +-rw---- 2.0 fat 2752 bl defN 16-Sep-07 10:37 res/layout/dictionary_line.xml │ +-rw---- 2.0 fat 1792 bl defN 16-Sep-07 10:37 res/layout/download_over_metered.xml │ +-rw---- 2.0 fat 412 bl defN 16-Sep-07 10:37 res/layout/emoji_keyboard_page.xml │ +-rw---- 2.0 fat 600 bl defN 16-Sep-07 10:37 res/layout/emoji_keyboard_tab_icon.xml │ +-rw---- 2.0 fat 3288 bl defN 16-Sep-07 10:37 res/layout/emoji_palettes_view.xml │ +-rw---- 2.0 fat 660 bl defN 16-Sep-07 10:37 res/layout/input_view.xml │ +-rw---- 2.0 fat 1044 bl defN 16-Sep-07 10:37 res/layout/loading_page.xml │ +-rw---- 2.0 fat 896 bl defN 16-Sep-07 10:37 res/layout/main_keyboard_frame.xml │ +-rw---- 2.0 fat 636 bl defN 16-Sep-07 10:37 res/layout/more_keys_keyboard.xml │ +-rw---- 2.0 fat 644 bl defN 16-Sep-07 10:37 res/layout/more_keys_keyboard_for_action_lxx.xml │ +-rw---- 2.0 fat 860 bl defN 16-Sep-07 10:37 res/layout/more_suggestions.xml │ +-rw---- 2.0 fat 440 bl defN 16-Sep-07 10:37 res/layout/radio_button_preference_widget.xml │ +-rw---- 2.0 fat 936 bl defN 16-Sep-07 10:37 res/layout/seek_bar_dialog.xml │ +-rw---- 2.0 fat 920 bl defN 16-Sep-07 10:37 res/layout/setup_start_indicator_label.xml │ +-rw---- 2.0 fat 976 bl defN 16-Sep-07 10:37 res/layout/setup_step.xml │ +-rw---- 2.0 fat 2112 bl defN 16-Sep-07 10:37 res/layout/setup_steps_cards.xml │ +-rw---- 2.0 fat 624 bl defN 16-Sep-07 10:37 res/layout/setup_steps_screen.xml │ +-rw---- 2.0 fat 404 bl defN 16-Sep-07 10:37 res/layout/setup_steps_title.xml │ +-rw---- 2.0 fat 628 bl defN 16-Sep-07 10:37 res/layout/setup_welcome_screen.xml │ +-rw---- 2.0 fat 648 bl defN 16-Sep-07 10:37 res/layout/setup_welcome_title.xml │ +-rw---- 2.0 fat 1352 bl defN 16-Sep-07 10:37 res/layout/setup_welcome_video.xml │ +-rw---- 2.0 fat 868 bl defN 16-Sep-07 10:37 res/layout/setup_wizard.xml │ +-rw---- 2.0 fat 748 bl defN 16-Sep-07 10:37 res/layout/suggestion_divider.xml │ +-rw---- 2.0 fat 2184 bl defN 16-Sep-07 10:37 res/layout/suggestions_strip.xml │ +-rw---- 2.0 fat 2440 bl defN 16-Sep-07 10:37 res/layout/user_dictionary_add_word.xml │ +-rw---- 2.0 fat 2012 bl defN 16-Sep-07 10:37 res/layout/user_dictionary_add_word_fullscreen.xml │ +-rw---- 2.0 fat 1316 bl defN 16-Sep-07 10:37 res/layout/user_dictionary_item.xml │ +-rw---- 2.0 fat 1096 bl defN 16-Sep-07 10:37 res/layout/user_dictionary_preference_list_fragment.xml │ +-rw---- 2.0 fat 452 bl defN 16-Sep-07 10:37 res/menu/add_style.xml │ +-rw---- 2.0 fat 16185 bl defN 16-Sep-07 10:37 res/raw/am_transliteration.xml │ +-rw---- 2.0 fat 3868 bl defN 16-Sep-07 10:37 res/raw/ar_kbd.xml │ +-rw---- 2.0 fat 8827 bl defN 16-Sep-07 10:37 res/raw/as_avro.xml │ +-rw---- 2.0 fat 2890 bl defN 16-Sep-07 10:37 res/raw/as_bornona.xml │ +-rw---- 2.0 fat 4902 bl defN 16-Sep-07 10:37 res/raw/as_inscript.xml │ +-rw---- 2.0 fat 5084 bl defN 16-Sep-07 10:37 res/raw/as_inscript2.xml │ +-rw---- 2.0 fat 4085 bl defN 16-Sep-07 10:37 res/raw/as_phonetic.xml │ +-rw---- 2.0 fat 4243 bl defN 16-Sep-07 10:37 res/raw/as_transliteration.xml │ +-rw---- 2.0 fat 3517 bl defN 16-Sep-07 10:37 res/raw/be_kbd.xml │ +-rw---- 2.0 fat 957 bl defN 16-Sep-07 10:37 res/raw/be_latin.xml │ +-rw---- 2.0 fat 3202 bl defN 16-Sep-07 10:37 res/raw/be_transliteration.xml │ +-rw---- 2.0 fat 1663 bl defN 16-Sep-07 10:37 res/raw/ber_tfng.xml │ +-rw---- 2.0 fat 10236 bl defN 16-Sep-07 10:37 res/raw/bn_avro.xml │ +-rw---- 2.0 fat 4828 bl defN 16-Sep-07 10:37 res/raw/bn_inscript.xml │ +-rw---- 2.0 fat 5097 bl defN 16-Sep-07 10:37 res/raw/bn_inscript2.xml │ +-rw---- 2.0 fat 4815 bl defN 16-Sep-07 10:37 res/raw/bn_nkb.xml │ +-rw---- 2.0 fat 3358 bl defN 16-Sep-07 10:37 res/raw/bn_probhat.xml │ +-rw---- 2.0 fat 4229 bl defN 16-Sep-07 10:37 res/raw/brx_inscript.xml │ +-rw---- 2.0 fat 554 bl defN 16-Sep-07 10:37 res/raw/cyrl_palochka.xml │ +-rw---- 2.0 fat 1245 bl defN 16-Sep-07 10:37 res/raw/da_normforms.xml │ +-rw---- 2.0 fat 507 bl defN 16-Sep-07 10:37 res/raw/de.xml │ +-rw---- 2.0 fat 3361 bl defN 16-Sep-07 10:37 res/raw/el_kbd.xml │ +-rw---- 1.0 fat 4 b- stor 16-Sep-07 10:36 res/raw/empty.dict │ +-rw---- 2.0 fat 1702 bl defN 16-Sep-07 10:37 res/raw/eo_h.xml │ +-rw---- 2.0 fat 1991 bl defN 16-Sep-07 10:37 res/raw/eo_h_f.xml │ +-rw---- 2.0 fat 3518 bl defN 16-Sep-07 10:37 res/raw/eo_plena.xml │ +-rw---- 2.0 fat 1701 bl defN 16-Sep-07 10:37 res/raw/eo_q.xml │ +-rw---- 2.0 fat 1654 bl defN 16-Sep-07 10:37 res/raw/eo_transliteration.xml │ +-rw---- 2.0 fat 2236 bl defN 16-Sep-07 10:37 res/raw/eo_vi.xml │ +-rw---- 2.0 fat 1717 bl defN 16-Sep-07 10:37 res/raw/eo_x.xml │ +-rw---- 2.0 fat 641 bl defN 16-Sep-07 10:37 res/raw/fi_transliteration.xml │ +-rw---- 2.0 fat 1874 bl defN 16-Sep-07 10:37 res/raw/fo_normforms.xml │ +-rw---- 2.0 fat 4308 bl defN 16-Sep-07 10:37 res/raw/gu_inscript.xml │ +-rw---- 2.0 fat 4542 bl defN 16-Sep-07 10:37 res/raw/gu_inscript2.xml │ +-rw---- 2.0 fat 4126 bl defN 16-Sep-07 10:37 res/raw/gu_phonetic.xml │ +-rw---- 2.0 fat 6585 bl defN 16-Sep-07 10:37 res/raw/gu_transliteration.xml │ +-rw---- 2.0 fat 1811 bl defN 16-Sep-07 10:37 res/raw/he_kbd.xml │ +-rw---- 2.0 fat 3752 bl defN 16-Sep-07 10:37 res/raw/he_standard_2012.xml │ +-rw---- 2.0 fat 2094 bl defN 16-Sep-07 10:37 res/raw/he_standard_2012_extonly.xml │ +-rw---- 2.0 fat 4064 bl defN 16-Sep-07 10:37 res/raw/hi_bolnagri.xml │ +-rw---- 2.0 fat 4699 bl defN 16-Sep-07 10:37 res/raw/hi_inscript.xml │ +-rw---- 2.0 fat 4193 bl defN 16-Sep-07 10:37 res/raw/hi_phonetic.xml │ +-rw---- 2.0 fat 8962 bl defN 16-Sep-07 10:37 res/raw/hi_transliteration.xml │ +-rw---- 2.0 fat 1933 bl defN 16-Sep-07 10:37 res/raw/hr_kbd.xml │ +-rw---- 2.0 fat 3990 bl defN 16-Sep-07 10:37 res/raw/hy_kbd.xml │ +-rw---- 2.0 fat 7896 bl defN 16-Sep-07 10:37 res/raw/ipa_sil.xml │ +-rw---- 2.0 fat 2470 bl defN 16-Sep-07 10:37 res/raw/is_normforms.xml │ +-rw---- 2.0 fat 11207 bl defN 16-Sep-07 10:37 res/raw/jv_transliteration.xml │ +-rw---- 2.0 fat 1819 bl defN 16-Sep-07 10:37 res/raw/ka_kbd.xml │ +-rw---- 2.0 fat 1796 bl defN 16-Sep-07 10:37 res/raw/ka_transliteration.xml │ +-rw---- 2.0 fat 1989 bl defN 16-Sep-07 10:37 res/raw/kk_arabic.xml │ +-rw---- 2.0 fat 3850 bl defN 16-Sep-07 10:37 res/raw/kk_kbd.xml │ +-rw---- 2.0 fat 4332 bl defN 16-Sep-07 10:37 res/raw/kn_inscript.xml │ +-rw---- 2.0 fat 4604 bl defN 16-Sep-07 10:37 res/raw/kn_inscript2.xml │ +-rw---- 2.0 fat 4068 bl defN 16-Sep-07 10:37 res/raw/kn_kgp.xml │ +-rw---- 2.0 fat 6599 bl defN 16-Sep-07 10:37 res/raw/kn_transliteration.xml │ +-rw---- 2.0 fat 4630 bl defN 16-Sep-07 10:37 res/raw/kok_inscript2.xml │ +-rw---- 2.0 fat 4878 bl defN 16-Sep-07 10:37 res/raw/ks_inscript.xml │ +-rw---- 2.0 fat 4052 bl defN 16-Sep-07 10:37 res/raw/ks_kbd.xml │ +-rw---- 2.0 fat 4452 bl defN 16-Sep-07 10:37 res/raw/lo_kbd.xml │ +-rw---- 2.0 fat 4670 bl defN 16-Sep-07 10:37 res/raw/mai_inscript.xml │ +-rw---- 1.0 fat 34 b- stor 16-Sep-07 10:36 res/raw/main.dict │ +-rw---- 1.0 fat 531018 b- stor 16-Sep-07 10:36 res/raw/main_bn.dict │ +-rw---- 1.0 fat 1070470 b- stor 16-Sep-07 10:36 res/raw/main_en.dict │ +-rw---- 1.0 fat 517477 b- stor 16-Sep-07 10:36 res/raw/main_gu.dict │ +-rw---- 1.0 fat 526590 b- stor 16-Sep-07 10:36 res/raw/main_hi.dict │ +-rw---- 1.0 fat 607756 b- stor 16-Sep-07 10:36 res/raw/main_kn.dict │ +-rw---- 1.0 fat 714993 b- stor 16-Sep-07 10:36 res/raw/main_ml.dict │ +-rw---- 1.0 fat 174624 b- stor 16-Sep-07 10:36 res/raw/main_pa.dict │ +-rw---- 1.0 fat 664358 b- stor 16-Sep-07 10:36 res/raw/main_ta.dict │ +-rw---- 1.0 fat 607634 b- stor 16-Sep-07 10:36 res/raw/main_te.dict │ +-rw---- 2.0 fat 3191 bl defN 16-Sep-07 10:37 res/raw/ml_inscript.xml │ +-rw---- 2.0 fat 5120 bl defN 16-Sep-07 10:37 res/raw/ml_inscript2.xml │ +-rw---- 2.0 fat 17236 bl defN 16-Sep-07 10:37 res/raw/ml_swanalekha.xml │ +-rw---- 2.0 fat 17366 bl defN 16-Sep-07 10:37 res/raw/ml_transliteration.xml │ +-rw---- 2.0 fat 3935 bl defN 16-Sep-07 10:37 res/raw/mn_cyrl.xml │ +-rw---- 2.0 fat 4501 bl defN 16-Sep-07 10:37 res/raw/mr_inscript.xml │ +-rw---- 2.0 fat 4711 bl defN 16-Sep-07 10:37 res/raw/mr_inscript2.xml │ +-rw---- 2.0 fat 4149 bl defN 16-Sep-07 10:37 res/raw/mr_phonetic.xml │ +-rw---- 2.0 fat 6150 bl defN 16-Sep-07 10:37 res/raw/mr_transliteration.xml │ +-rw---- 2.0 fat 3248 bl defN 16-Sep-07 10:37 res/raw/my_kbd.xml │ +-rw---- 2.0 fat 4508 bl defN 16-Sep-07 10:37 res/raw/ne_inscript.xml │ +-rw---- 2.0 fat 4599 bl defN 16-Sep-07 10:37 res/raw/ne_inscript2.xml │ +-rw---- 2.0 fat 7375 bl defN 16-Sep-07 10:37 res/raw/ne_transliteration.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/raw/no_normforms.xml │ +-rw---- 2.0 fat 577 bl defN 16-Sep-07 10:37 res/raw/no_tildeforms.xml │ +-rw---- 2.0 fat 3972 bl defN 16-Sep-07 10:37 res/raw/or_inscript.xml │ +-rw---- 2.0 fat 4499 bl defN 16-Sep-07 10:37 res/raw/or_inscript2.xml │ +-rw---- 2.0 fat 8601 bl defN 16-Sep-07 10:37 res/raw/or_lekhani.xml │ +-rw---- 2.0 fat 4073 bl defN 16-Sep-07 10:37 res/raw/or_phonetic.xml │ +-rw---- 2.0 fat 6079 bl defN 16-Sep-07 10:37 res/raw/or_transliteration.xml │ +-rw---- 2.0 fat 3499 bl defN 16-Sep-07 10:37 res/raw/pa_inscript.xml │ +-rw---- 2.0 fat 4232 bl defN 16-Sep-07 10:37 res/raw/pa_inscript2.xml │ +-rw---- 2.0 fat 5034 bl defN 16-Sep-07 10:37 res/raw/pa_jhelum.xml │ +-rw---- 2.0 fat 3556 bl defN 16-Sep-07 10:37 res/raw/pa_phonetic.xml │ +-rw---- 2.0 fat 4497 bl defN 16-Sep-07 10:37 res/raw/pa_transliteration.xml │ +-rw---- 2.0 fat 175 bl defN 16-Sep-07 10:37 res/raw/reverse_ta_transliteration.xml │ +-rw---- 2.0 fat 3207 bl defN 16-Sep-07 10:37 res/raw/ru_jcuken.xml │ +-rw---- 2.0 fat 3508 bl defN 16-Sep-07 10:37 res/raw/ru_kbd.xml │ +-rw---- 2.0 fat 4443 bl defN 16-Sep-07 10:37 res/raw/sa_inscript.xml │ +-rw---- 2.0 fat 4525 bl defN 16-Sep-07 10:37 res/raw/sa_inscript2.xml │ +-rw---- 2.0 fat 7156 bl defN 16-Sep-07 10:37 res/raw/sa_transliteration.xml │ +-rw---- 2.0 fat 3535 bl defN 16-Sep-07 10:37 res/raw/sah_transliteration.xml │ +-rw---- 2.0 fat 793 bl defN 16-Sep-07 10:37 res/raw/se_normforms.xml │ +-rw---- 2.0 fat 4320 bl defN 16-Sep-07 10:37 res/raw/si_singlish.xml │ +-rw---- 2.0 fat 3822 bl defN 16-Sep-07 10:37 res/raw/si_wijesekara.xml │ +-rw---- 2.0 fat 4971 bl defN 16-Sep-07 10:37 res/raw/sk_kbd.xml │ +-rw---- 2.0 fat 3458 bl defN 16-Sep-07 10:37 res/raw/sr_kbd.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/raw/sv_normforms.xml │ +-rw---- 2.0 fat 5209 bl defN 16-Sep-07 10:37 res/raw/ta_99.xml │ +-rw---- 2.0 fat 3293 bl defN 16-Sep-07 10:37 res/raw/ta_bamini.xml │ +-rw---- 2.0 fat 3453 bl defN 16-Sep-07 10:37 res/raw/ta_inscript.xml │ +-rw---- 2.0 fat 4050 bl defN 16-Sep-07 10:37 res/raw/ta_inscript2.xml │ +-rw---- 2.0 fat 4688 bl defN 16-Sep-07 10:37 res/raw/ta_transliteration.xml │ +-rw---- 2.0 fat 4427 bl defN 16-Sep-07 10:37 res/raw/te_inscript.xml │ +-rw---- 2.0 fat 5004 bl defN 16-Sep-07 10:37 res/raw/te_inscript2.xml │ +-rw---- 2.0 fat 6347 bl defN 16-Sep-07 10:37 res/raw/te_kachatathapa.xml │ +-rw---- 2.0 fat 8934 bl defN 16-Sep-07 10:37 res/raw/te_transliteration.xml │ +-rw---- 2.0 fat 4103 bl defN 16-Sep-07 10:37 res/raw/th_kedmanee.xml │ +-rw---- 2.0 fat 4105 bl defN 16-Sep-07 10:37 res/raw/th_pattachote.xml │ +-rw---- 2.0 fat 2365 bl defN 16-Sep-07 10:37 res/raw/transliteration.xml │ +-rw---- 2.0 fat 3509 bl defN 16-Sep-07 10:37 res/raw/ua_kbd.xml │ +-rw---- 2.0 fat 2648 bl defN 16-Sep-07 10:37 res/raw/ug_kbd.xml │ +-rw---- 2.0 fat 3577 bl defN 16-Sep-07 10:37 res/raw/ur_transliteration.xml │ +-rw---- 2.0 fat 3611 bl defN 16-Sep-07 10:37 res/raw/uz_kbd.xml │ +-rw---- 2.0 fat 552 bl defN 16-Sep-07 10:37 res/xml-land/kbd_number.xml │ +-rw---- 2.0 fat 552 bl defN 16-Sep-07 10:37 res/xml-land/kbd_phone.xml │ +-rw---- 2.0 fat 552 bl defN 16-Sep-07 10:37 res/xml-land/kbd_phone_symbols.xml │ +-rw---- 2.0 fat 380 bl defN 16-Sep-07 10:37 res/xml-sw600dp-land-v13/kbd_more_keys_keyboard_template.xml │ +-rw---- 2.0 fat 552 bl defN 16-Sep-07 10:37 res/xml-sw600dp-land-v13/kbd_number.xml │ +-rw---- 2.0 fat 552 bl defN 16-Sep-07 10:37 res/xml-sw600dp-land-v13/kbd_phone.xml │ +-rw---- 2.0 fat 552 bl defN 16-Sep-07 10:37 res/xml-sw600dp-land-v13/kbd_phone_symbols.xml │ +-rw---- 2.0 fat 380 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/kbd_more_keys_keyboard_template.xml │ +-rw---- 2.0 fat 448 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/kbd_number.xml │ +-rw---- 2.0 fat 448 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/kbd_phone.xml │ +-rw---- 2.0 fat 448 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/kbd_phone_symbols.xml │ +-rw---- 2.0 fat 1472 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_comma.xml │ +-rw---- 2.0 fat 1500 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_period.xml │ +-rw---- 2.0 fat 704 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_settings.xml │ +-rw---- 2.0 fat 1580 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_space_7kw.xml │ +-rw---- 2.0 fat 400 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_space_symbols.xml │ +-rw---- 2.0 fat 6148 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_styles_common.xml │ +-rw---- 2.0 fat 5028 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/key_styles_enter.xml │ +-rw---- 2.0 fat 436 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/keys_arabic3_left.xml │ +-rw---- 2.0 fat 620 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/keys_exclamation_question.xml │ +-rw---- 2.0 fat 952 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/row_qwerty4.xml │ +-rw---- 2.0 fat 1292 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_arabic.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_bengali.xml │ +-rw---- 2.0 fat 1548 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_gujarati.xml │ +-rw---- 2.0 fat 1408 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_hindi.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_hindi_compact.xml │ +-rw---- 2.0 fat 1548 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_kannada.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_kannada_compact.xml │ +-rw---- 2.0 fat 1548 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_malayalam.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_malayalam_compact.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_marathi.xml │ +-rw---- 2.0 fat 1672 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_myanmar.xml │ +-rw---- 2.0 fat 1492 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_nepali_romanized.xml │ +-rw---- 2.0 fat 1492 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_nepali_traditional.xml │ +-rw---- 2.0 fat 4716 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_number_normal.xml │ +-rw---- 2.0 fat 2372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_number_password.xml │ +-rw---- 2.0 fat 3892 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_phone.xml │ +-rw---- 2.0 fat 1548 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_qwerty.xml │ +-rw---- 2.0 fat 1492 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_sinhala.xml │ +-rw---- 2.0 fat 2076 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_symbols.xml │ +-rw---- 2.0 fat 2084 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_symbols_shift.xml │ +-rw---- 2.0 fat 1548 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_tamil.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_tamil_compact.xml │ +-rw---- 2.0 fat 1548 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_telugu.xml │ +-rw---- 2.0 fat 1372 bl defN 16-Sep-07 10:37 res/xml-sw600dp-v13/rows_telugu_compact.xml │ +-rw---- 2.0 fat 1220 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_sign_anusvara.xml │ +-rw---- 2.0 fat 1004 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_sign_candrabindu.xml │ +-rw---- 2.0 fat 1200 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_sign_nukta.xml │ +-rw---- 2.0 fat 1348 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_sign_virama.xml │ +-rw---- 2.0 fat 428 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_sign_visarga.xml │ +-rw---- 2.0 fat 1424 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml │ +-rw---- 2.0 fat 1640 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml │ +-rw---- 2.0 fat 1416 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_au.xml │ +-rw---- 2.0 fat 1208 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml │ +-rw---- 2.0 fat 1208 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_e.xml │ +-rw---- 2.0 fat 1400 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_i.xml │ +-rw---- 2.0 fat 1416 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml │ +-rw---- 2.0 fat 1408 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_o.xml │ +-rw---- 2.0 fat 1408 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_u.xml │ +-rw---- 2.0 fat 1424 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml │ +-rw---- 2.0 fat 1648 bl defN 16-Sep-07 10:37 res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml │ +-rw---- 2.0 fat 12904 bl defN 16-Sep-07 10:37 res/xml-v17/method.xml │ +-rw---- 2.0 fat 12952 bl defN 16-Sep-07 10:37 res/xml-v19/method.xml │ +-rw---- 2.0 fat 240 bl defN 16-Sep-07 10:37 res/xml/additional_subtype_settings.xml │ +-rw---- 2.0 fat 320 bl defN 16-Sep-07 10:37 res/xml/dictionary_settings.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_10_10_7_symbols.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_10_10_7_symbols_shift.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_arabic.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_assamese_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_bengali.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_bengali_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_bengali_probhat.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_burmese.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_category1.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_category2.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_category3.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_category4.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_category5.xml │ +-rw---- 2.0 fat 604 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_category6.xml │ +-rw---- 2.0 fat 604 bl defN 16-Sep-07 10:37 res/xml/kbd_emoji_recents.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_gujarati.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_gujarati_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_hindi.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_hindi_compact.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_hindi_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_kannada.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_kannada_anysoft_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_kannada_compact.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_kannada_inscript.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_kashmiri_inscript.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_maithili_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_malayalam.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_malayalam_compact.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_malayalam_inscript.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_manipuri_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_marathi.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_mon.xml │ +-rw---- 2.0 fat 380 bl defN 16-Sep-07 10:37 res/xml/kbd_more_keys_keyboard_template.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_myanmar.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_nepali_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_nepali_romanized.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_nepali_traditional.xml │ +-rw---- 2.0 fat 448 bl defN 16-Sep-07 10:37 res/xml/kbd_number.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_oriya_inscript.xml │ +-rw---- 2.0 fat 448 bl defN 16-Sep-07 10:37 res/xml/kbd_phone.xml │ +-rw---- 2.0 fat 448 bl defN 16-Sep-07 10:37 res/xml/kbd_phone_symbols.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_punjabi.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_punjabi_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_qwerty.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_santali_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_sinhala.xml │ +-rw---- 2.0 fat 312 bl defN 16-Sep-07 10:37 res/xml/kbd_suggestions_pane_template.xml │ +-rw---- 2.0 fat 412 bl defN 16-Sep-07 10:37 res/xml/kbd_symbols.xml │ +-rw---- 2.0 fat 412 bl defN 16-Sep-07 10:37 res/xml/kbd_symbols_shift.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_tamil.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_tamil_99.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_tamil_compact.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_tamil_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_telugu.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_telugu_compact.xml │ +-rw---- 2.0 fat 592 bl defN 16-Sep-07 10:37 res/xml/kbd_telugu_inscript.xml │ +-rw---- 2.0 fat 352 bl defN 16-Sep-07 10:37 res/xml/kbd_telugu_kachatathapa.xml │ +-rw---- 2.0 fat 1628 bl defN 16-Sep-07 10:37 res/xml/key_comma.xml │ +-rw---- 2.0 fat 784 bl defN 16-Sep-07 10:37 res/xml/key_emoji.xml │ +-rw---- 2.0 fat 1900 bl defN 16-Sep-07 10:37 res/xml/key_period.xml │ +-rw---- 2.0 fat 1572 bl defN 16-Sep-07 10:37 res/xml/key_space.xml │ +-rw---- 2.0 fat 2348 bl defN 16-Sep-07 10:37 res/xml/key_space_5kw.xml │ +-rw---- 2.0 fat 400 bl defN 16-Sep-07 10:37 res/xml/key_space_symbols.xml │ +-rw---- 2.0 fat 4444 bl defN 16-Sep-07 10:37 res/xml/key_styles_actions.xml │ +-rw---- 2.0 fat 5988 bl defN 16-Sep-07 10:37 res/xml/key_styles_common.xml │ +-rw---- 2.0 fat 3320 bl defN 16-Sep-07 10:37 res/xml/key_styles_currency.xml │ +-rw---- 2.0 fat 1040 bl defN 16-Sep-07 10:37 res/xml/key_styles_currency_dollar.xml │ +-rw---- 2.0 fat 1044 bl defN 16-Sep-07 10:37 res/xml/key_styles_currency_euro.xml │ +-rw---- 2.0 fat 1064 bl defN 16-Sep-07 10:37 res/xml/key_styles_currency_generic.xml │ +-rw---- 2.0 fat 8688 bl defN 16-Sep-07 10:37 res/xml/key_styles_enter.xml │ +-rw---- 2.0 fat 1416 bl defN 16-Sep-07 10:37 res/xml/key_styles_less_greater.xml │ +-rw---- 2.0 fat 3668 bl defN 16-Sep-07 10:37 res/xml/key_styles_navigate_more_keys.xml │ +-rw---- 2.0 fat 4892 bl defN 16-Sep-07 10:37 res/xml/key_styles_number.xml │ +-rw---- 2.0 fat 1004 bl defN 16-Sep-07 10:37 res/xml/key_styles_settings.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_arabic.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_assamese_inscript.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_bengali.xml │ +-rw---- 2.0 fat 884 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_bengali_inscript.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_bengali_probhat.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_burmese.xml │ +-rw---- 2.0 fat 1004 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_emoji.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_gujarati.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_gujarati_inscript.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_hindi.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_hindi_compact.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_hindi_inscript.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_kannada.xml │ +-rw---- 2.0 fat 964 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_kannada_anysoft_inscript.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_kannada_compact.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_kannada_inscript.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_kashmiri_inscript.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_maithili_inscript.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_malayalam.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_malayalam_compact.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_malayalam_inscript.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_manipuri_inscript.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_marathi.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_mon.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_myanmar.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_nepali_inscript.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_nepali_romanized.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_nepali_traditional.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_oriya_inscript.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_punjabi.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_punjabi_inscript.xml │ +-rw---- 2.0 fat 964 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_qwerty.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_santali_inscript.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_sinhala.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_tamil.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_tamil_99.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_tamil_compact.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_tamil_inscript.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_telugu.xml │ +-rw---- 2.0 fat 1084 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_telugu_compact.xml │ +-rw---- 2.0 fat 764 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_telugu_inscript.xml │ +-rw---- 2.0 fat 1384 bl defN 16-Sep-07 10:37 res/xml/keyboard_layout_set_telugu_kachatathapa.xml │ +-rw---- 2.0 fat 348 bl defN 16-Sep-07 10:37 res/xml/keys_arabic3_left.xml │ +-rw---- 2.0 fat 496 bl defN 16-Sep-07 10:37 res/xml/keys_curly_brackets.xml │ +-rw---- 2.0 fat 2180 bl defN 16-Sep-07 10:37 res/xml/keys_dvorak_123.xml │ +-rw---- 2.0 fat 348 bl defN 16-Sep-07 10:37 res/xml/keys_farsi3_right.xml │ +-rw---- 2.0 fat 628 bl defN 16-Sep-07 10:37 res/xml/keys_parentheses.xml │ +-rw---- 2.0 fat 500 bl defN 16-Sep-07 10:37 res/xml/keys_square_brackets.xml │ +-rw---- 2.0 fat 1308 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_sign_anusvara.xml │ +-rw---- 2.0 fat 1060 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_sign_candrabindu.xml │ +-rw---- 2.0 fat 1272 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_sign_nukta.xml │ +-rw---- 2.0 fat 1400 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_sign_virama.xml │ +-rw---- 2.0 fat 480 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_sign_visarga.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_aa.xml │ +-rw---- 2.0 fat 1708 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_ai.xml │ +-rw---- 2.0 fat 1484 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_au.xml │ +-rw---- 2.0 fat 1256 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_candra_e.xml │ +-rw---- 2.0 fat 1256 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_candra_o.xml │ +-rw---- 2.0 fat 1688 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_e.xml │ +-rw---- 2.0 fat 1460 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_i.xml │ +-rw---- 2.0 fat 1484 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_ii.xml │ +-rw---- 2.0 fat 1484 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_o.xml │ +-rw---- 2.0 fat 1476 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_u.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_uu.xml │ +-rw---- 2.0 fat 1720 bl defN 16-Sep-07 10:37 res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml │ +-rw---- 2.0 fat 12844 bl defN 16-Sep-07 10:37 res/xml/method.xml │ +-rw---- 2.0 fat 1512 bl defN 16-Sep-07 10:37 res/xml/prefs.xml │ +-rw---- 2.0 fat 1700 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_advanced.xml │ +-rw---- 2.0 fat 780 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_appearance.xml │ +-rw---- 2.0 fat 2524 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_correction.xml │ +-rw---- 2.0 fat 3348 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_debug.xml │ +-rw---- 2.0 fat 1252 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_gesture.xml │ +-rw---- 2.0 fat 880 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_multilingual.xml │ +-rw---- 2.0 fat 1496 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_preferences.xml │ +-rw---- 2.0 fat 440 bl defN 16-Sep-07 10:37 res/xml/prefs_screen_theme.xml │ +-rw---- 2.0 fat 1480 bl defN 16-Sep-07 10:37 res/xml/row_pcqwerty5.xml │ +-rw---- 2.0 fat 928 bl defN 16-Sep-07 10:37 res/xml/row_qwerty4.xml │ +-rw---- 2.0 fat 796 bl defN 16-Sep-07 10:37 res/xml/row_symbols4.xml │ +-rw---- 2.0 fat 920 bl defN 16-Sep-07 10:37 res/xml/row_symbols_shift4.xml │ +-rw---- 2.0 fat 2028 bl defN 16-Sep-07 10:37 res/xml/rowkeys_arabic1.xml │ +-rw---- 2.0 fat 1500 bl defN 16-Sep-07 10:37 res/xml/rowkeys_arabic2.xml │ +-rw---- 2.0 fat 1256 bl defN 16-Sep-07 10:37 res/xml/rowkeys_arabic3.xml │ +-rw---- 2.0 fat 4496 bl defN 16-Sep-07 10:37 res/xml/rowkeys_assamese_inscript1.xml │ +-rw---- 2.0 fat 3616 bl defN 16-Sep-07 10:37 res/xml/rowkeys_assamese_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_assamese_inscript3.xml │ +-rw---- 2.0 fat 2844 bl defN 16-Sep-07 10:37 res/xml/rowkeys_assamese_inscript4.xml │ +-rw---- 2.0 fat 2132 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali1.xml │ +-rw---- 2.0 fat 1624 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali2.xml │ +-rw---- 2.0 fat 1440 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali3.xml │ +-rw---- 2.0 fat 4376 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali_inscript1.xml │ +-rw---- 2.0 fat 3616 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali_inscript3.xml │ +-rw---- 2.0 fat 2784 bl defN 16-Sep-07 10:37 res/xml/rowkeys_bengali_inscript4.xml │ +-rw---- 2.0 fat 3536 bl defN 16-Sep-07 10:37 res/xml/rowkeys_burmese1.xml │ +-rw---- 2.0 fat 3260 bl defN 16-Sep-07 10:37 res/xml/rowkeys_burmese2.xml │ +-rw---- 2.0 fat 2532 bl defN 16-Sep-07 10:37 res/xml/rowkeys_burmese3.xml │ +-rw---- 2.0 fat 3420 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati1.xml │ +-rw---- 2.0 fat 2920 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati2.xml │ +-rw---- 2.0 fat 2268 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati3.xml │ +-rw---- 2.0 fat 4404 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati_inscript1.xml │ +-rw---- 2.0 fat 3636 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati_inscript2.xml │ +-rw---- 2.0 fat 3156 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati_inscript3.xml │ +-rw---- 2.0 fat 2812 bl defN 16-Sep-07 10:37 res/xml/rowkeys_gujarati_inscript4.xml │ +-rw---- 2.0 fat 4348 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi1.xml │ +-rw---- 2.0 fat 3608 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi2.xml │ +-rw---- 2.0 fat 3004 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi3.xml │ +-rw---- 2.0 fat 2824 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_compact1.xml │ +-rw---- 2.0 fat 2304 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_compact2.xml │ +-rw---- 2.0 fat 1748 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_compact3.xml │ +-rw---- 2.0 fat 4480 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_inscript1.xml │ +-rw---- 2.0 fat 3836 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_inscript3.xml │ +-rw---- 2.0 fat 2928 bl defN 16-Sep-07 10:37 res/xml/rowkeys_hindi_inscript4.xml │ +-rw---- 2.0 fat 3420 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada1.xml │ +-rw---- 2.0 fat 2952 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada2.xml │ +-rw---- 2.0 fat 2412 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada3.xml │ +-rw---- 2.0 fat 3048 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_anysoft_inscript1.xml │ +-rw---- 2.0 fat 3128 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_anysoft_inscript2.xml │ +-rw---- 2.0 fat 2688 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_anysoft_inscript3.xml │ +-rw---- 2.0 fat 2188 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_compact1.xml │ +-rw---- 2.0 fat 1600 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_compact2.xml │ +-rw---- 2.0 fat 1432 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_compact3.xml │ +-rw---- 2.0 fat 4124 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_inscript1.xml │ +-rw---- 2.0 fat 3616 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_inscript3.xml │ +-rw---- 2.0 fat 2924 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kannada_inscript4.xml │ +-rw---- 2.0 fat 4160 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kashmiri_inscript1.xml │ +-rw---- 2.0 fat 3676 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kashmiri_inscript2.xml │ +-rw---- 2.0 fat 2956 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kashmiri_inscript3.xml │ +-rw---- 2.0 fat 2976 bl defN 16-Sep-07 10:37 res/xml/rowkeys_kashmiri_inscript4.xml │ +-rw---- 2.0 fat 2928 bl defN 16-Sep-07 10:37 res/xml/rowkeys_maithili_inscript4.xml │ +-rw---- 2.0 fat 3808 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam1.xml │ +-rw---- 2.0 fat 3168 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam2.xml │ +-rw---- 2.0 fat 2720 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam3.xml │ +-rw---- 2.0 fat 2164 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_compact1.xml │ +-rw---- 2.0 fat 1596 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_compact2.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_compact3.xml │ +-rw---- 2.0 fat 4136 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_inscript1.xml │ +-rw---- 2.0 fat 3636 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_inscript3.xml │ +-rw---- 2.0 fat 3104 bl defN 16-Sep-07 10:37 res/xml/rowkeys_malayalam_inscript4.xml │ +-rw---- 2.0 fat 4300 bl defN 16-Sep-07 10:37 res/xml/rowkeys_manipuri_inscript1.xml │ +-rw---- 2.0 fat 3616 bl defN 16-Sep-07 10:37 res/xml/rowkeys_manipuri_inscript2.xml │ +-rw---- 2.0 fat 3156 bl defN 16-Sep-07 10:37 res/xml/rowkeys_manipuri_inscript3.xml │ +-rw---- 2.0 fat 2784 bl defN 16-Sep-07 10:37 res/xml/rowkeys_manipuri_inscript4.xml │ +-rw---- 2.0 fat 2672 bl defN 16-Sep-07 10:37 res/xml/rowkeys_marathi1.xml │ +-rw---- 2.0 fat 2148 bl defN 16-Sep-07 10:37 res/xml/rowkeys_marathi2.xml │ +-rw---- 2.0 fat 1724 bl defN 16-Sep-07 10:37 res/xml/rowkeys_marathi3.xml │ +-rw---- 2.0 fat 3268 bl defN 16-Sep-07 10:37 res/xml/rowkeys_mon1.xml │ +-rw---- 2.0 fat 2828 bl defN 16-Sep-07 10:37 res/xml/rowkeys_mon2.xml │ +-rw---- 2.0 fat 2828 bl defN 16-Sep-07 10:37 res/xml/rowkeys_mon3.xml │ +-rw---- 2.0 fat 3028 bl defN 16-Sep-07 10:37 res/xml/rowkeys_myanmar1.xml │ +-rw---- 2.0 fat 2820 bl defN 16-Sep-07 10:37 res/xml/rowkeys_myanmar2.xml │ +-rw---- 2.0 fat 2612 bl defN 16-Sep-07 10:37 res/xml/rowkeys_myanmar3.xml │ +-rw---- 2.0 fat 2336 bl defN 16-Sep-07 10:37 res/xml/rowkeys_myanmar4.xml │ +-rw---- 2.0 fat 4168 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_inscript1.xml │ +-rw---- 2.0 fat 3596 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_inscript2.xml │ +-rw---- 2.0 fat 3148 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_inscript3.xml │ +-rw---- 2.0 fat 2784 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_inscript4.xml │ +-rw---- 2.0 fat 4376 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_romanized1.xml │ +-rw---- 2.0 fat 2852 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_romanized2.xml │ +-rw---- 2.0 fat 2720 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_romanized3.xml │ +-rw---- 2.0 fat 3936 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_traditional1.xml │ +-rw---- 2.0 fat 3504 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_traditional2.xml │ +-rw---- 2.0 fat 1948 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_traditional3_left6.xml │ +-rw---- 2.0 fat 1568 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_traditional3_right3.xml │ +-rw---- 2.0 fat 2420 bl defN 16-Sep-07 10:37 res/xml/rowkeys_nepali_traditional3_right5.xml │ +-rw---- 2.0 fat 4196 bl defN 16-Sep-07 10:37 res/xml/rowkeys_oriya_inscript1.xml │ +-rw---- 2.0 fat 3616 bl defN 16-Sep-07 10:37 res/xml/rowkeys_oriya_inscript2.xml │ +-rw---- 2.0 fat 3156 bl defN 16-Sep-07 10:37 res/xml/rowkeys_oriya_inscript3.xml │ +-rw---- 2.0 fat 2844 bl defN 16-Sep-07 10:37 res/xml/rowkeys_oriya_inscript4.xml │ +-rw---- 2.0 fat 3048 bl defN 16-Sep-07 10:37 res/xml/rowkeys_probhat1.xml │ +-rw---- 2.0 fat 3064 bl defN 16-Sep-07 10:37 res/xml/rowkeys_probhat2.xml │ +-rw---- 2.0 fat 2608 bl defN 16-Sep-07 10:37 res/xml/rowkeys_probhat3.xml │ +-rw---- 2.0 fat 2820 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi1.xml │ +-rw---- 2.0 fat 2700 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi2.xml │ +-rw---- 2.0 fat 2312 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi3.xml │ +-rw---- 2.0 fat 4012 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi_inscript1.xml │ +-rw---- 2.0 fat 3616 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi_inscript3.xml │ +-rw---- 2.0 fat 2924 bl defN 16-Sep-07 10:37 res/xml/rowkeys_punjabi_inscript4.xml │ +-rw---- 2.0 fat 2120 bl defN 16-Sep-07 10:37 res/xml/rowkeys_qwerty1.xml │ +-rw---- 2.0 fat 1412 bl defN 16-Sep-07 10:37 res/xml/rowkeys_qwerty2.xml │ +-rw---- 2.0 fat 1124 bl defN 16-Sep-07 10:37 res/xml/rowkeys_qwerty3.xml │ +-rw---- 2.0 fat 4392 bl defN 16-Sep-07 10:37 res/xml/rowkeys_santali_inscript1.xml │ +-rw---- 2.0 fat 3156 bl defN 16-Sep-07 10:37 res/xml/rowkeys_santali_inscript3.xml │ +-rw---- 2.0 fat 2648 bl defN 16-Sep-07 10:37 res/xml/rowkeys_santali_inscript4.xml │ +-rw---- 2.0 fat 3216 bl defN 16-Sep-07 10:37 res/xml/rowkeys_sinhala1.xml │ +-rw---- 2.0 fat 2600 bl defN 16-Sep-07 10:37 res/xml/rowkeys_sinhala2.xml │ +-rw---- 2.0 fat 2368 bl defN 16-Sep-07 10:37 res/xml/rowkeys_sinhala3.xml │ +-rw---- 2.0 fat 2536 bl defN 16-Sep-07 10:37 res/xml/rowkeys_symbols1.xml │ +-rw---- 2.0 fat 1768 bl defN 16-Sep-07 10:37 res/xml/rowkeys_symbols2.xml │ +-rw---- 2.0 fat 1828 bl defN 16-Sep-07 10:37 res/xml/rowkeys_symbols3.xml │ +-rw---- 2.0 fat 1272 bl defN 16-Sep-07 10:37 res/xml/rowkeys_symbols_shift1.xml │ +-rw---- 2.0 fat 1228 bl defN 16-Sep-07 10:37 res/xml/rowkeys_symbols_shift2.xml │ +-rw---- 2.0 fat 824 bl defN 16-Sep-07 10:37 res/xml/rowkeys_symbols_shift3.xml │ +-rw---- 2.0 fat 2828 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil1.xml │ +-rw---- 2.0 fat 2780 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil2.xml │ +-rw---- 2.0 fat 2160 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil3.xml │ +-rw---- 2.0 fat 3232 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_99_1.xml │ +-rw---- 2.0 fat 3012 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_99_2.xml │ +-rw---- 2.0 fat 2808 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_99_3.xml │ +-rw---- 2.0 fat 1960 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_compact1.xml │ +-rw---- 2.0 fat 1504 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_compact2.xml │ +-rw---- 2.0 fat 1268 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_compact3.xml │ +-rw---- 2.0 fat 4280 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_inscript1.xml │ +-rw---- 2.0 fat 3324 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_inscript2.xml │ +-rw---- 2.0 fat 2964 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_inscript3.xml │ +-rw---- 2.0 fat 2844 bl defN 16-Sep-07 10:37 res/xml/rowkeys_tamil_inscript4.xml │ +-rw---- 2.0 fat 3176 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu1.xml │ +-rw---- 2.0 fat 2748 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu2.xml │ +-rw---- 2.0 fat 2248 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu3.xml │ +-rw---- 2.0 fat 2148 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_compact1.xml │ +-rw---- 2.0 fat 1600 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_compact2.xml │ +-rw---- 2.0 fat 1436 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_compact3.xml │ +-rw---- 2.0 fat 4324 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_inscript1.xml │ +-rw---- 2.0 fat 3584 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_inscript2.xml │ +-rw---- 2.0 fat 3180 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_inscript3.xml │ +-rw---- 2.0 fat 2844 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_inscript4.xml │ +-rw---- 2.0 fat 3140 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_kachatathapa1.xml │ +-rw---- 2.0 fat 3040 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_kachatathapa2.xml │ +-rw---- 2.0 fat 2488 bl defN 16-Sep-07 10:37 res/xml/rowkeys_telugu_kachatathapa3.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_arabic.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_assamese_inscript.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_bengali.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_bengali_inscript.xml │ +-rw---- 2.0 fat 1360 bl defN 16-Sep-07 10:37 res/xml/rows_bengali_probhat.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_burmese.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_gujarati.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_gujarati_inscript.xml │ +-rw---- 2.0 fat 1292 bl defN 16-Sep-07 10:37 res/xml/rows_hindi.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_hindi_compact.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_hindi_inscript.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_kannada.xml │ +-rw---- 2.0 fat 1304 bl defN 16-Sep-07 10:37 res/xml/rows_kannada_anysoft_inscript.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_kannada_compact.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_kannada_inscript.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_kashmiri_inscript.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_maithili_inscript.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_malayalam.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_malayalam_compact.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_malayalam_inscript.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_manipuri_inscript.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_marathi.xml │ +-rw---- 2.0 fat 1360 bl defN 16-Sep-07 10:37 res/xml/rows_mon.xml │ +-rw---- 2.0 fat 1432 bl defN 16-Sep-07 10:37 res/xml/rows_myanmar.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_nepali_inscript.xml │ +-rw---- 2.0 fat 1292 bl defN 16-Sep-07 10:37 res/xml/rows_nepali_romanized.xml │ +-rw---- 2.0 fat 1452 bl defN 16-Sep-07 10:37 res/xml/rows_nepali_traditional.xml │ +-rw---- 2.0 fat 852 bl defN 16-Sep-07 10:37 res/xml/rows_number.xml │ +-rw---- 2.0 fat 3904 bl defN 16-Sep-07 10:37 res/xml/rows_number_normal.xml │ +-rw---- 2.0 fat 2372 bl defN 16-Sep-07 10:37 res/xml/rows_number_password.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_oriya_inscript.xml │ +-rw---- 2.0 fat 2648 bl defN 16-Sep-07 10:37 res/xml/rows_phone.xml │ +-rw---- 2.0 fat 2672 bl defN 16-Sep-07 10:37 res/xml/rows_phone_symbols.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_punjabi.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_punjabi_inscript.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_qwerty.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_santali_inscript.xml │ +-rw---- 2.0 fat 1292 bl defN 16-Sep-07 10:37 res/xml/rows_sinhala.xml │ +-rw---- 2.0 fat 1796 bl defN 16-Sep-07 10:37 res/xml/rows_symbols.xml │ +-rw---- 2.0 fat 1800 bl defN 16-Sep-07 10:37 res/xml/rows_symbols_shift.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_tamil.xml │ +-rw---- 2.0 fat 1248 bl defN 16-Sep-07 10:37 res/xml/rows_tamil_99.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_tamil_compact.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_tamil_inscript.xml │ +-rw---- 2.0 fat 1340 bl defN 16-Sep-07 10:37 res/xml/rows_telugu.xml │ +-rw---- 2.0 fat 1172 bl defN 16-Sep-07 10:37 res/xml/rows_telugu_compact.xml │ +-rw---- 2.0 fat 1620 bl defN 16-Sep-07 10:37 res/xml/rows_telugu_inscript.xml │ +-rw---- 2.0 fat 1360 bl defN 16-Sep-07 10:37 res/xml/rows_telugu_kachatathapa.xml │ +-rw---- 2.0 fat 560 bl defN 16-Sep-07 10:37 res/xml/spell_checker_settings.xml │ +-rw---- 2.0 fat 768 bl defN 16-Sep-07 10:37 res/xml/spellchecker.xml │ +-rw---- 1.0 fat 361108 b- stor 16-Sep-07 10:36 resources.arsc │ +-rw---- 2.0 fat 3017580 bl defN 16-Sep-07 10:37 classes.dex │ +1516 files, 11343492 bytes uncompressed, 7922272 bytes compressed: 30.2% ├── smali/com/android/inputmethod/keyboard/Key.smali │ @@ -597,18 +597,20 @@ │ move/from16 v1, v25 │ │ invoke-virtual {v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->setXPos(F)V │ │ .line 256 │ const/16 v25, 0x4 │ │ + .line 257 │ invoke-virtual/range {p5 .. p5}, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->getDefaultBackgroundType()I │ │ move-result v26 │ │ + .line 256 │ move-object/from16 v0, p3 │ │ move-object/from16 v1, p2 │ │ move/from16 v2, v25 │ │ move/from16 v3, v26 │ @@ -678,14 +680,15 @@ │ │ move/from16 v2, v25 │ │ invoke-virtual {v0, v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeyStyle;->getFlags(Landroid/content/res/TypedArray;I)I │ │ move-result v25 │ │ + .line 266 │ invoke-virtual/range {p5 .. p5}, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->getDefaultKeyLabelFlags()I │ │ move-result v26 │ │ or-int v25, v25, v26 │ │ move/from16 v0, v25 │ @@ -765,14 +768,15 @@ │ │ move-object/from16 v0, p4 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/internal/KeyboardParams;->mMaxMoreKeysKeyboardColumn:I │ │ move/from16 v26, v0 │ │ + .line 274 │ move-object/from16 v0, p3 │ │ move-object/from16 v1, p2 │ │ move/from16 v2, v25 │ │ move/from16 v3, v26 │ @@ -1167,20 +1171,21 @@ │ │ move-object/from16 v0, v25 │ │ move-object/from16 v1, p0 │ │ iput-object v0, v1, Lcom/android/inputmethod/keyboard/Key;->mHintLabel:Ljava/lang/String; │ │ - .line 339 │ + .line 340 │ :goto_4 │ invoke-static/range {p1 .. p1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getOutputText(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v25 │ │ + .line 339 │ move-object/from16 v0, v25 │ │ move/from16 v1, v19 │ │ move-object/from16 v2, v16 │ │ invoke-static {v0, v1, v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfStringForLocale(Ljava/lang/String;ZLjava/util/Locale;)Ljava/lang/String; │ @@ -1203,14 +1208,15 @@ │ │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/android/inputmethod/keyboard/Key;->mLabel:Ljava/lang/String; │ │ move-object/from16 v25, v0 │ │ + .line 343 │ invoke-static/range {v25 .. v25}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v25 │ │ if-nez v25, :cond_e │ │ .line 344 │ @@ -1264,26 +1270,28 @@ │ │ iput v0, v1, Lcom/android/inputmethod/keyboard/Key;->mCode:I │ │ .line 368 │ :goto_5 │ const/16 v25, 0x0 │ │ + .line 369 │ move-object/from16 v0, p3 │ │ move-object/from16 v1, p2 │ │ move/from16 v2, v25 │ │ invoke-virtual {v0, v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeyStyle;->getString(Landroid/content/res/TypedArray;I)Ljava/lang/String; │ │ move-result-object v25 │ │ const/16 v26, -0xf │ │ + .line 368 │ invoke-static/range {v25 .. v26}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->parseCode(Ljava/lang/String;I)I │ │ move-result v7 │ │ .line 370 │ .local v7, "altCodeInAttr":I │ move/from16 v0, v19 │ @@ -1367,20 +1375,21 @@ │ │ move-object/from16 v1, p0 │ │ iput-object v0, v1, Lcom/android/inputmethod/keyboard/Key;->mLabel:Ljava/lang/String; │ │ goto/16 :goto_3 │ │ - .line 330 │ + .line 331 │ :cond_a │ invoke-static/range {p1 .. p1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getLabel(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v25 │ │ + .line 330 │ move-object/from16 v0, v25 │ │ move/from16 v1, v19 │ │ move-object/from16 v2, v16 │ │ invoke-static {v0, v1, v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfStringForLocale(Ljava/lang/String;ZLjava/util/Locale;)Ljava/lang/String; │ @@ -1624,54 +1633,59 @@ │ │ new-array v0, v0, [Ljava/lang/Object; │ │ const/4 v1, 0x0 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mX:I │ │ + .line 422 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x1 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mY:I │ │ + .line 423 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x2 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mWidth:I │ │ + .line 424 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x3 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mHeight:I │ │ + .line 425 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x4 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mCode:I │ │ + .line 426 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x5 │ @@ -1686,72 +1700,79 @@ │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x7 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mIconId:I │ │ + .line 429 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0x8 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mBackgroundType:I │ │ + .line 430 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0x9 │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/Key;->mMoreKeys:[Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ │ + .line 431 │ invoke-static {v2}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0xa │ │ + .line 432 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0xb │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mActionFlags:I │ │ + .line 433 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0xc │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/Key;->mLabelFlags:I │ │ + .line 434 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ + .line 421 │ invoke-static {v0}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -1801,24 +1822,26 @@ │ │ if-ne v1, v2, :cond_2 │ │ iget-object v1, p1, Lcom/android/inputmethod/keyboard/Key;->mLabel:Ljava/lang/String; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/Key;->mLabel:Ljava/lang/String; │ │ + .line 454 │ invoke-static {v1, v2}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ iget-object v1, p1, Lcom/android/inputmethod/keyboard/Key;->mHintLabel:Ljava/lang/String; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/Key;->mHintLabel:Ljava/lang/String; │ │ + .line 455 │ invoke-static {v1, v2}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ iget v1, p1, Lcom/android/inputmethod/keyboard/Key;->mIconId:I │ @@ -1833,20 +1856,22 @@ │ │ if-ne v1, v2, :cond_2 │ │ iget-object v1, p1, Lcom/android/inputmethod/keyboard/Key;->mMoreKeys:[Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/Key;->mMoreKeys:[Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ │ + .line 458 │ invoke-static {v1, v2}, Ljava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ + .line 459 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ │ move-result-object v2 │ @@ -1886,25 +1911,28 @@ │ │ and-int/2addr v0, v1 │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/Key;->mHintLabel:Ljava/lang/String; │ │ + .line 712 │ invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const/4 v0, 0x1 │ │ + .line 711 │ :goto_0 │ return v0 │ │ + .line 712 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static needsToUpperCase(II)Z │ @@ -1959,28 +1987,31 @@ │ .line 651 │ iget v1, p0, Lcom/android/inputmethod/keyboard/Key;->mLabelFlags:I │ │ and-int/lit16 v1, v1, 0x80 │ │ if-nez v1, :cond_0 │ │ + .line 652 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Key;->getPreviewLabel()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/StringUtils;->codePointCount(Ljava/lang/String;)I │ │ move-result v1 │ │ if-ne v1, v0, :cond_1 │ │ + .line 651 │ :cond_0 │ :goto_0 │ return v0 │ │ + .line 652 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ │ @@ -2567,25 +2598,28 @@ │ │ and-int/lit16 v0, v0, 0x400 │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/Key;->mHintLabel:Ljava/lang/String; │ │ + .line 687 │ invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const/4 v0, 0x1 │ │ + .line 686 │ :goto_0 │ return v0 │ │ + .line 687 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public hashCode()I │ @@ -3585,14 +3619,15 @@ │ │ const-string v5, "!icon/" │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ + .line 497 │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet;->getIconName(I)Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ @@ -3657,15 +3692,15 @@ │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ return-object v4 │ │ - .line 496 │ + .line 497 │ .end local v0 # "hintLabel":Ljava/lang/String; │ .end local v2 # "topVisual":Ljava/lang/String; │ .end local v3 # "visual":Ljava/lang/String; │ :cond_0 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Key;->getLabel()Ljava/lang/String; │ │ move-result-object v2 ├── smali/com/android/inputmethod/keyboard/Keyboard.smali │ @@ -385,15 +385,15 @@ │ │ move-result-object v2 │ │ .line 228 │ .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ if-eqz v2, :cond_0 │ │ - .line 229 │ + .line 230 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ │ move-result v4 │ │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ │ move-result v5 │ @@ -410,14 +410,15 @@ │ │ move-result v6 │ │ div-int/lit8 v6, v6, 0x2 │ │ add-int/2addr v5, v6 │ │ + .line 229 │ invoke-static {v0, v1, v4, v5}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->setXYInArray([IIII)V │ │ .line 226 │ :goto_1 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ @@ -431,128 +432,127 @@ │ .line 236 │ .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_1 │ return-object v0 │ .end method │ │ .method public getKey(I)Lcom/android/inputmethod/keyboard/Key; │ - .locals 7 │ + .locals 6 │ .param p1, "code" # I │ │ .prologue │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ .line 170 │ - const/16 v4, -0xf │ + const/16 v3, -0xf │ │ - if-ne p1, v4, :cond_0 │ + if-ne p1, v3, :cond_0 │ │ .line 186 │ :goto_0 │ - return-object v3 │ + return-object v2 │ │ .line 173 │ :cond_0 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - monitor-enter v4 │ + monitor-enter v3 │ │ .line 174 │ :try_start_0 │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - invoke-virtual {v5, p1}, Landroid/util/SparseArray;->indexOfKey(I)I │ + invoke-virtual {v4, p1}, Landroid/util/SparseArray;->indexOfKey(I)I │ │ - move-result v1 │ + move-result v0 │ │ .line 175 │ - .local v1, "index":I │ - if-ltz v1, :cond_1 │ + .local v0, "index":I │ + if-ltz v0, :cond_1 │ │ .line 176 │ - iget-object v3, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v2, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - invoke-virtual {v3, v1}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object; │ + invoke-virtual {v2, v0}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ │ - monitor-exit v4 │ + monitor-exit v3 │ │ goto :goto_0 │ │ .line 187 │ - .end local v1 # "index":I │ + .end local v0 # "index":I │ :catchall_0 │ - move-exception v3 │ + move-exception v2 │ │ - monitor-exit v4 │ + monitor-exit v3 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v3 │ + throw v2 │ │ .line 179 │ - .restart local v1 # "index":I │ + .restart local v0 # "index":I │ :cond_1 │ :try_start_1 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v4 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_2 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_3 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ │ .line 180 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v5 │ │ if-ne v5, p1, :cond_2 │ │ .line 181 │ - iget-object v3, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v2, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - invoke-virtual {v3, p1, v2}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V │ + invoke-virtual {v2, p1, v1}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V │ │ .line 182 │ - monitor-exit v4 │ + monitor-exit v3 │ │ - move-object v3, v2 │ + move-object v2, v1 │ │ goto :goto_0 │ │ .line 185 │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_3 │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - const/4 v6, 0x0 │ + const/4 v5, 0x0 │ │ - invoke-virtual {v5, p1, v6}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V │ + invoke-virtual {v4, p1, v5}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V │ │ .line 186 │ - monitor-exit v4 │ + monitor-exit v3 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_0 │ .end method │ │ .method public getNearestKeys(II)Ljava/util/List; │ @@ -636,76 +636,75 @@ │ .line 166 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mSortedKeys:Ljava/util/List; │ │ return-object v0 │ .end method │ │ .method public hasKey(Lcom/android/inputmethod/keyboard/Key;)Z │ - .locals 5 │ + .locals 4 │ .param p1, "aKey" # Lcom/android/inputmethod/keyboard/Key; │ │ .prologue │ - const/4 v2, 0x1 │ + const/4 v1, 0x1 │ │ .line 191 │ - iget-object v3, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v2, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - invoke-virtual {v3, p1}, Landroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I │ + invoke-virtual {v2, p1}, Landroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I │ │ - move-result v3 │ + move-result v2 │ │ - if-ltz v3, :cond_0 │ + if-ltz v2, :cond_0 │ │ .line 201 │ :goto_0 │ - return v2 │ + return v1 │ │ .line 195 │ :cond_0 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_1 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v0, Lcom/android/inputmethod/keyboard/Key; │ │ .line 196 │ - .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ - if-ne v1, p1, :cond_1 │ + .local v0, "key":Lcom/android/inputmethod/keyboard/Key; │ + if-ne v0, p1, :cond_1 │ │ .line 197 │ - iget-object v3, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ + iget-object v2, p0, Lcom/android/inputmethod/keyboard/Keyboard;->mKeyCache:Landroid/util/SparseArray; │ │ - invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ - move-result v4 │ + move-result v3 │ │ - invoke-virtual {v3, v4, v1}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V │ + invoke-virtual {v2, v3, v0}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V │ │ goto :goto_0 │ │ .line 201 │ - .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v0 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_2 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public hasProximityCharsCorrection(I)Z │ .locals 5 │ .param p1, "code" # I ├── smali/com/android/inputmethod/keyboard/KeyboardId.smali │ @@ -147,14 +147,15 @@ │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mEditorInfo:Landroid/view/inputmethod/EditorInfo; │ │ iget-object v0, v0, Landroid/view/inputmethod/EditorInfo;->actionLabel:Ljava/lang/CharSequence; │ │ + .line 90 │ invoke-interface {v0}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ :goto_0 │ iput-object v0, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mCustomActionLabel:Ljava/lang/String; │ │ @@ -169,15 +170,15 @@ │ move-result v0 │ │ iput v0, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mHashCode:I │ │ .line 94 │ return-void │ │ - .line 89 │ + .line 90 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public static actionName(I)Ljava/lang/String; │ @@ -191,14 +192,15 @@ │ if-ne p0, v0, :cond_0 │ │ const-string v0, "actionCustomLabel" │ │ :goto_0 │ return-object v0 │ │ + .line 242 │ :cond_0 │ invoke-static {p0}, Lorg/smc/inputmethod/compat/EditorInfoCompatUtils;->imeActionName(I)Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ @@ -213,106 +215,116 @@ │ │ new-array v0, v0, [Ljava/lang/Object; │ │ const/4 v1, 0x0 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mElementId:I │ │ + .line 98 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x1 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mMode:I │ │ + .line 99 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x2 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mWidth:I │ │ + .line 100 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x3 │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mHeight:I │ │ + .line 101 │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x4 │ │ + .line 102 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->passwordInput()Z │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x5 │ │ iget-boolean v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mClobberSettingsKey:Z │ │ + .line 103 │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x6 │ │ iget-boolean v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mHasShortcutKey:Z │ │ + .line 104 │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x7 │ │ iget-boolean v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mLanguageSwitchKeyEnabled:Z │ │ + .line 105 │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0x8 │ │ + .line 106 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->isMultiLine()Z │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0x9 │ │ + .line 107 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ @@ -323,26 +335,28 @@ │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mCustomActionLabel:Ljava/lang/String; │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0xb │ │ + .line 109 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigateNext()Z │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/16 v1, 0xc │ │ + .line 110 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigatePrevious()Z │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ @@ -351,14 +365,15 @@ │ │ const/16 v1, 0xd │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ aput-object v2, v0, v1 │ │ + .line 97 │ invoke-static {v0}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -537,14 +552,15 @@ │ │ iget v1, p1, Lcom/android/inputmethod/keyboard/KeyboardId;->mHeight:I │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mHeight:I │ │ if-ne v1, v2, :cond_2 │ │ + .line 122 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/KeyboardId;->passwordInput()Z │ │ move-result v1 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->passwordInput()Z │ │ move-result v2 │ @@ -565,68 +581,74 @@ │ │ iget-boolean v1, p1, Lcom/android/inputmethod/keyboard/KeyboardId;->mLanguageSwitchKeyEnabled:Z │ │ iget-boolean v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mLanguageSwitchKeyEnabled:Z │ │ if-ne v1, v2, :cond_2 │ │ + .line 126 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/KeyboardId;->isMultiLine()Z │ │ move-result v1 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->isMultiLine()Z │ │ move-result v2 │ │ if-ne v1, v2, :cond_2 │ │ + .line 127 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v1 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v2 │ │ if-ne v1, v2, :cond_2 │ │ iget-object v1, p1, Lcom/android/inputmethod/keyboard/KeyboardId;->mCustomActionLabel:Ljava/lang/String; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mCustomActionLabel:Ljava/lang/String; │ │ + .line 128 │ invoke-static {v1, v2}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ + .line 129 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigateNext()Z │ │ move-result v1 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigateNext()Z │ │ move-result v2 │ │ if-ne v1, v2, :cond_2 │ │ + .line 130 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigatePrevious()Z │ │ move-result v1 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigatePrevious()Z │ │ move-result v2 │ │ if-ne v1, v2, :cond_2 │ │ iget-object v1, p1, Lcom/android/inputmethod/keyboard/KeyboardId;->mSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ + .line 131 │ invoke-virtual {v1, v2}, Landroid/view/inputmethod/InputMethodSubtype;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ :cond_2 │ @@ -680,14 +702,15 @@ │ │ if-ne v2, v3, :cond_4 │ │ iget-object v2, p0, Landroid/view/inputmethod/EditorInfo;->privateImeOptions:Ljava/lang/String; │ │ iget-object v3, p1, Landroid/view/inputmethod/EditorInfo;->privateImeOptions:Ljava/lang/String; │ │ + .line 199 │ invoke-static {v2, v3}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ :cond_4 │ @@ -907,28 +930,31 @@ │ │ const/high16 v1, 0x8000000 │ │ and-int/2addr v0, v1 │ │ if-nez v0, :cond_0 │ │ + .line 144 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v0 │ │ const/4 v1, 0x5 │ │ if-ne v0, v1, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 143 │ :goto_0 │ return v0 │ │ + .line 144 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public navigatePrevious()Z │ @@ -942,28 +968,31 @@ │ │ const/high16 v1, 0x4000000 │ │ and-int/2addr v0, v1 │ │ if-nez v0, :cond_0 │ │ + .line 149 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v0 │ │ const/4 v1, 0x7 │ │ if-ne v0, v1, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 148 │ :goto_0 │ return v0 │ │ + .line 149 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public passwordInput()Z │ @@ -979,26 +1008,29 @@ │ .local v0, "inputType":I │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isPasswordInputType(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ + .line 155 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isVisiblePasswordInputType(I)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ :cond_0 │ const/4 v1, 0x1 │ │ + .line 154 │ :goto_0 │ return v1 │ │ + .line 155 │ :cond_1 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public toString()Ljava/lang/String; │ @@ -1014,14 +1046,15 @@ │ │ new-array v3, v0, [Ljava/lang/Object; │ │ const/4 v0, 0x0 │ │ iget v4, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mElementId:I │ │ + .line 179 │ invoke-static {v4}, Lcom/android/inputmethod/keyboard/KeyboardId;->elementIdToName(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v3, v0 │ │ const/4 v0, 0x1 │ @@ -1032,24 +1065,26 @@ │ │ const/4 v0, 0x2 │ │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ const-string v5, "KeyboardLayoutSet" │ │ + .line 180 │ invoke-virtual {v4, v5}, Landroid/view/inputmethod/InputMethodSubtype;->getExtraValueOf(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v3, v0 │ │ const/4 v0, 0x3 │ │ iget v4, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mWidth:I │ │ + .line 181 │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ aput-object v4, v3, v0 │ │ const/4 v0, 0x4 │ @@ -1062,47 +1097,51 @@ │ │ aput-object v4, v3, v0 │ │ const/4 v0, 0x5 │ │ iget v4, p0, Lcom/android/inputmethod/keyboard/KeyboardId;->mMode:I │ │ + .line 182 │ invoke-static {v4}, Lcom/android/inputmethod/keyboard/KeyboardId;->modeName(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v3, v0 │ │ const/4 v0, 0x6 │ │ + .line 183 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v4 │ │ invoke-static {v4}, Lcom/android/inputmethod/keyboard/KeyboardId;->actionName(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v3, v0 │ │ const/4 v4, 0x7 │ │ + .line 184 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigateNext()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ const-string v0, " navigateNext" │ │ :goto_0 │ aput-object v0, v3, v4 │ │ const/16 v4, 0x8 │ │ + .line 185 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigatePrevious()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ const-string v0, " navigatePrevious" │ @@ -1119,14 +1158,15 @@ │ const-string v0, " clobberSettingsKey" │ │ :goto_2 │ aput-object v0, v3, v4 │ │ const/16 v4, 0xa │ │ + .line 187 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->passwordInput()Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ const-string v0, " passwordInput" │ @@ -1154,46 +1194,51 @@ │ const-string v0, " languageSwitchKeyEnabled" │ │ :goto_5 │ aput-object v0, v3, v4 │ │ const/16 v4, 0xd │ │ + .line 190 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardId;->isMultiLine()Z │ │ move-result v0 │ │ if-eqz v0, :cond_6 │ │ const-string v0, " isMultiLine" │ │ :goto_6 │ aput-object v0, v3, v4 │ │ + .line 178 │ 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 │ │ return-object v0 │ │ + .line 184 │ :cond_0 │ const-string v0, "" │ │ goto :goto_0 │ │ + .line 185 │ :cond_1 │ const-string v0, "" │ │ goto :goto_1 │ │ :cond_2 │ const-string v0, "" │ │ goto :goto_2 │ │ + .line 187 │ :cond_3 │ const-string v0, "" │ │ goto :goto_3 │ │ :cond_4 │ const-string v0, "" │ @@ -1201,12 +1246,13 @@ │ goto :goto_4 │ │ :cond_5 │ const-string v0, "" │ │ goto :goto_5 │ │ + .line 190 │ :cond_6 │ const-string v0, "" │ │ goto :goto_6 │ .end method ├── smali/com/android/inputmethod/keyboard/KeyboardLayoutSet$Builder.smali │ @@ -908,14 +908,15 @@ │ .line 266 │ .local v2, "forceAscii":Z │ :goto_0 │ if-eqz v2, :cond_2 │ │ if-nez v0, :cond_2 │ │ + .line 267 │ invoke-static {}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->getInstance()Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->getNoLanguageSubtype()Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v3 │ @@ -936,14 +937,15 @@ │ │ const-string v6, "keyboard_layout_set_" │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ + .line 271 │ invoke-static {v3}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetName(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ @@ -965,15 +967,15 @@ │ │ goto :goto_0 │ │ .restart local v2 # "forceAscii":Z │ :cond_2 │ move-object v3, p1 │ │ - .line 266 │ + .line 267 │ goto :goto_1 │ .end method │ │ .method public setVoiceInputKeyEnabled(Z)Lcom/android/inputmethod/keyboard/KeyboardLayoutSet$Builder; │ .locals 1 │ .param p1, "enabled" # Z ├── smali/com/android/inputmethod/keyboard/KeyboardSwitcher.smali │ @@ -137,14 +137,15 @@ │ invoke-direct {v0, p0}, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->(Lcom/android/inputmethod/keyboard/internal/KeyboardState$SwitchActions;)V │ │ iput-object v0, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mState:Lcom/android/inputmethod/keyboard/internal/KeyboardState; │ │ .line 88 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ + .line 89 │ invoke-static {v0}, Lorg/smc/inputmethod/compat/InputMethodServiceCompatUtils;->enableHardwareAcceleration(Landroid/inputmethodservice/InputMethodService;)Z │ │ move-result v0 │ │ iput-boolean v0, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mIsHardwareAcceleratedDrawingEnabled:Z │ │ .line 90 │ @@ -231,14 +232,15 @@ │ │ iget-object v1, v1, Lcom/android/inputmethod/keyboard/KeyboardId;->mLocale:Ljava/util/Locale; │ │ iget-object v2, v11, Lcom/android/inputmethod/keyboard/Keyboard;->mId:Lcom/android/inputmethod/keyboard/KeyboardId; │ │ iget-object v2, v2, Lcom/android/inputmethod/keyboard/KeyboardId;->mLocale:Ljava/util/Locale; │ │ + .line 166 │ invoke-virtual {v1, v2}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ :cond_0 │ @@ -259,26 +261,27 @@ │ │ .line 169 │ .local v10, "languageOnSpacebarFormatType":I │ invoke-static {}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInstance()Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ move-result-object v1 │ │ + .line 170 │ invoke-virtual {v1, v13}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->hasMultipleEnabledIMEsOrSubtypes(Z)Z │ │ move-result v9 │ │ .line 171 │ .local v9, "hasMultipleEnabledIMEsOrSubtypes":Z │ invoke-virtual {v0, v12, v10, v9}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->startDisplayLanguageOnSpacebar(ZIZ)V │ │ .line 173 │ return-void │ │ - .line 165 │ + .line 166 │ .end local v9 # "hasMultipleEnabledIMEsOrSubtypes":Z │ .end local v10 # "languageOnSpacebarFormatType":I │ .end local v12 # "subtypeChanged":Z │ :cond_1 │ const/4 v12, 0x0 │ │ goto :goto_0 │ @@ -822,18 +825,20 @@ │ │ .line 350 │ :cond_0 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mPrefs:Landroid/content/SharedPreferences; │ │ + .line 351 │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->getKeyboardTheme(Landroid/content/SharedPreferences;)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ │ move-result-object v1 │ │ + .line 350 │ invoke-direct {p0, v0, v1}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->updateKeyboardThemeAndContextThemeWrapper(Landroid/content/Context;Lcom/android/inputmethod/keyboard/KeyboardTheme;)Z │ │ .line 352 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mThemeContext:Landroid/content/Context; │ │ invoke-static {v0}, Landroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater; │ │ @@ -1228,26 +1233,29 @@ │ .line 252 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mEmojiPalettesView:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mKeyboardTextsSet:Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet; │ │ const-string v3, "keylabel_to_alpha" │ │ + .line 253 │ invoke-virtual {v2, v3}, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet;->getText(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mKeyboardView:Lcom/android/inputmethod/keyboard/MainKeyboardView; │ │ + .line 254 │ invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getKeyVisualAttribute()Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes; │ │ move-result-object v3 │ │ iget-object v4, v0, Lcom/android/inputmethod/keyboard/Keyboard;->mIconsSet:Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet; │ │ + .line 252 │ invoke-virtual {v1, v2, v3, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->startEmojiPalettes(Ljava/lang/String;Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet;)V │ │ .line 255 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mEmojiPalettesView:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView; │ │ invoke-virtual {v1, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->setVisibility(I)V │ │ @@ -1319,18 +1327,20 @@ │ │ .prologue │ .line 93 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->mPrefs:Landroid/content/SharedPreferences; │ │ + .line 94 │ invoke-static {v2}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->getKeyboardTheme(Landroid/content/SharedPreferences;)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ │ move-result-object v2 │ │ + .line 93 │ invoke-direct {p0, v1, v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->updateKeyboardThemeAndContextThemeWrapper(Landroid/content/Context;Lcom/android/inputmethod/keyboard/KeyboardTheme;)Z │ │ move-result v0 │ │ .line 95 │ .local v0, "themeUpdated":Z │ if-eqz v0, :cond_0 ├── smali/com/android/inputmethod/keyboard/KeyboardTheme.smali │ @@ -154,202 +154,193 @@ │ iput p4, p0, Lcom/android/inputmethod/keyboard/KeyboardTheme;->mMinApiVersion:I │ │ .line 75 │ return-void │ .end method │ │ .method static getDefaultKeyboardTheme(Landroid/content/SharedPreferences;I)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - .locals 10 │ + .locals 8 │ .param p0, "prefs" # Landroid/content/SharedPreferences; │ .param p1, "sdkVersion" # I │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ .line 109 │ - const-string v7, "pref_keyboard_layout_20110916" │ + const-string v4, "pref_keyboard_layout_20110916" │ │ - const/4 v8, 0x0 │ + const/4 v5, 0x0 │ │ - invoke-interface {p0, v7, v8}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + invoke-interface {p0, v4, v5}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v1 │ │ .line 110 │ - .local v3, "klpThemeIdString":Ljava/lang/String; │ - if-eqz v3, :cond_3 │ + .local v1, "klpThemeIdString":Ljava/lang/String; │ + if-eqz v1, :cond_3 │ │ .line 111 │ - const/16 v7, 0x13 │ + const/16 v4, 0x13 │ │ - if-gt p1, v7, :cond_2 │ + if-gt p1, v4, :cond_2 │ │ .line 113 │ :try_start_0 │ - invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ + invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ - move-result v6 │ + move-result v3 │ │ .line 114 │ - .local v6, "themeId":I │ - invoke-static {v6}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->searchKeyboardThemeById(I)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .local v3, "themeId":I │ + invoke-static {v3}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->searchKeyboardThemeById(I)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 115 │ - .local v5, "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - if-eqz v5, :cond_1 │ + .local v2, "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + if-eqz v2, :cond_1 │ │ .line 133 │ - .end local v5 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - .end local v6 # "themeId":I │ + .end local v2 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .end local v3 # "themeId":I │ :cond_0 │ :goto_0 │ - return-object v5 │ + return-object v2 │ │ .line 118 │ - .restart local v5 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - .restart local v6 # "themeId":I │ + .restart local v2 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .restart local v3 # "themeId":I │ :cond_1 │ - sget-object v7, Lcom/android/inputmethod/keyboard/KeyboardTheme;->TAG:Ljava/lang/String; │ + sget-object v4, Lcom/android/inputmethod/keyboard/KeyboardTheme;->TAG:Ljava/lang/String; │ │ - new-instance v8, Ljava/lang/StringBuilder; │ + new-instance v5, Ljava/lang/StringBuilder; │ │ - invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ - const-string v9, "Unknown keyboard theme in KLP preference: " │ + const-string v6, "Unknown keyboard theme in KLP preference: " │ │ - invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-static {v7, v8}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v4, v5}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ :try_end_0 │ .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ │ .line 124 │ - .end local v5 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - .end local v6 # "themeId":I │ + .end local v2 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .end local v3 # "themeId":I │ :cond_2 │ :goto_1 │ - sget-object v7, Lcom/android/inputmethod/keyboard/KeyboardTheme;->TAG:Ljava/lang/String; │ + sget-object v4, Lcom/android/inputmethod/keyboard/KeyboardTheme;->TAG:Ljava/lang/String; │ │ - new-instance v8, Ljava/lang/StringBuilder; │ + new-instance v5, Ljava/lang/StringBuilder; │ │ - invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ - const-string v9, "Remove KLP keyboard theme preference: " │ + const-string v6, "Remove KLP keyboard theme preference: " │ │ - invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-static {v7, v8}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 125 │ invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ - move-result-object v7 │ + move-result-object v4 │ │ - const-string v8, "pref_keyboard_layout_20110916" │ + const-string v5, "pref_keyboard_layout_20110916" │ │ - invoke-interface {v7, v8}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ + invoke-interface {v4, v5}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ │ - move-result-object v7 │ + move-result-object v4 │ │ - invoke-interface {v7}, Landroid/content/SharedPreferences$Editor;->apply()V │ + invoke-interface {v4}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 128 │ :cond_3 │ - sget-object v0, Lcom/android/inputmethod/keyboard/KeyboardTheme;->KEYBOARD_THEMES:[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + sget-object v5, Lcom/android/inputmethod/keyboard/KeyboardTheme;->KEYBOARD_THEMES:[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ │ - .local v0, "arr$":[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - array-length v4, v0 │ + array-length v6, v5 │ │ - .local v4, "len$":I │ - const/4 v2, 0x0 │ + const/4 v4, 0x0 │ │ - .local v2, "i$":I │ :goto_2 │ - if-ge v2, v4, :cond_4 │ + if-ge v4, v6, :cond_4 │ │ - aget-object v5, v0, v2 │ + aget-object v2, v5, v4 │ │ .line 129 │ - .restart local v5 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - iget v7, v5, Lcom/android/inputmethod/keyboard/KeyboardTheme;->mMinApiVersion:I │ + .restart local v2 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + iget v7, v2, Lcom/android/inputmethod/keyboard/KeyboardTheme;->mMinApiVersion:I │ │ if-ge p1, v7, :cond_0 │ │ .line 128 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_2 │ │ .line 119 │ - .end local v0 # "arr$":[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - .end local v2 # "i$":I │ - .end local v4 # "len$":I │ - .end local v5 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .end local v2 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ :catch_0 │ - move-exception v1 │ + move-exception v0 │ │ .line 120 │ - .local v1, "e":Ljava/lang/NumberFormatException; │ - sget-object v7, Lcom/android/inputmethod/keyboard/KeyboardTheme;->TAG:Ljava/lang/String; │ + .local v0, "e":Ljava/lang/NumberFormatException; │ + sget-object v4, Lcom/android/inputmethod/keyboard/KeyboardTheme;->TAG:Ljava/lang/String; │ │ - new-instance v8, Ljava/lang/StringBuilder; │ + new-instance v5, Ljava/lang/StringBuilder; │ │ - invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ - const-string v9, "Illegal keyboard theme in KLP preference: " │ + const-string v6, "Illegal keyboard theme in KLP preference: " │ │ - invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v5 │ │ - invoke-static {v7, v8, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v4, v5, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ goto :goto_1 │ │ .line 133 │ - .end local v1 # "e":Ljava/lang/NumberFormatException; │ - .restart local v0 # "arr$":[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - .restart local v2 # "i$":I │ - .restart local v4 # "len$":I │ + .end local v0 # "e":Ljava/lang/NumberFormatException; │ :cond_4 │ - const/4 v7, 0x2 │ + const/4 v4, 0x2 │ │ - invoke-static {v7}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->searchKeyboardThemeById(I)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + invoke-static {v4}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->searchKeyboardThemeById(I)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ │ - move-result-object v5 │ + move-result-object v2 │ │ goto :goto_0 │ .end method │ │ .method public static getKeyboardTheme(Landroid/content/SharedPreferences;)Lcom/android/inputmethod/keyboard/KeyboardTheme; │ .locals 1 │ .param p0, "prefs" # Landroid/content/SharedPreferences; │ @@ -583,50 +574,47 @@ │ .locals 5 │ .param p0, "themeId" # I │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ .line 98 │ - sget-object v0, Lcom/android/inputmethod/keyboard/KeyboardTheme;->KEYBOARD_THEMES:[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + sget-object v2, Lcom/android/inputmethod/keyboard/KeyboardTheme;->KEYBOARD_THEMES:[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ │ - .local v0, "arr$":[Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - array-length v2, v0 │ + array-length v3, v2 │ │ - .local v2, "len$":I │ const/4 v1, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_1 │ + if-ge v1, v3, :cond_1 │ │ - aget-object v3, v0, v1 │ + aget-object v0, v2, v1 │ │ .line 99 │ - .local v3, "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ - iget v4, v3, Lcom/android/inputmethod/keyboard/KeyboardTheme;->mThemeId:I │ + .local v0, "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + iget v4, v0, Lcom/android/inputmethod/keyboard/KeyboardTheme;->mThemeId:I │ │ if-ne v4, p0, :cond_0 │ │ .line 103 │ - .end local v3 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .end local v0 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ :goto_1 │ - return-object v3 │ + return-object v0 │ │ .line 98 │ - .restart local v3 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .restart local v0 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ :cond_0 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ .line 103 │ - .end local v3 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ + .end local v0 # "theme":Lcom/android/inputmethod/keyboard/KeyboardTheme; │ :cond_1 │ - const/4 v3, 0x0 │ + const/4 v0, 0x0 │ │ goto :goto_1 │ .end method │ │ │ # virtual methods │ .method public compareTo(Lcom/android/inputmethod/keyboard/KeyboardTheme;)I ├── smali/com/android/inputmethod/keyboard/KeyboardView.smali │ @@ -345,26 +345,28 @@ │ │ move-result v1 │ │ mul-int/2addr v1, p1 │ │ div-int/lit16 v1, v1, 0xff │ │ + .line 170 │ invoke-static {v0}, Landroid/graphics/Color;->red(I)I │ │ move-result v2 │ │ invoke-static {v0}, Landroid/graphics/Color;->green(I)I │ │ move-result v3 │ │ invoke-static {v0}, Landroid/graphics/Color;->blue(I)I │ │ move-result v4 │ │ + .line 169 │ invoke-virtual {p0, v1, v2, v3, v4}, Landroid/graphics/Paint;->setARGB(IIII)V │ │ .line 171 │ return-void │ .end method │ │ .method protected static drawIcon(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V │ @@ -481,14 +483,15 @@ │ │ move-result v3 │ │ if-ne v3, v1, :cond_2 │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mOffscreenBuffer:Landroid/graphics/Bitmap; │ │ + .line 251 │ invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I │ │ move-result v3 │ │ if-eq v3, v0, :cond_0 │ │ .line 254 │ @@ -622,94 +625,94 @@ │ .end method │ │ .method private onDrawKeyboard(Landroid/graphics/Canvas;)V │ .locals 14 │ .param p1, "canvas" # Landroid/graphics/Canvas; │ │ .prologue │ - const/4 v10, 0x0 │ + const/4 v9, 0x0 │ │ .line 269 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - if-nez v11, :cond_0 │ + if-nez v10, :cond_0 │ │ .line 319 │ :goto_0 │ return-void │ │ .line 271 │ :cond_0 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardView;->getWidth()I │ │ - move-result v7 │ + move-result v6 │ │ .line 272 │ - .local v7, "width":I │ + .local v6, "width":I │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardView;->getHeight()I │ │ move-result v2 │ │ .line 273 │ .local v2, "height":I │ - iget-object v6, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mPaint:Landroid/graphics/Paint; │ + iget-object v5, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mPaint:Landroid/graphics/Paint; │ │ .line 276 │ - .local v6, "paint":Landroid/graphics/Paint; │ - iget-boolean v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidateAllKeys:Z │ + .local v5, "paint":Landroid/graphics/Paint; │ + iget-boolean v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidateAllKeys:Z │ │ - if-nez v11, :cond_1 │ + if-nez v10, :cond_1 │ │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ │ - invoke-virtual {v11}, Ljava/util/HashSet;->isEmpty()Z │ + invoke-virtual {v10}, Ljava/util/HashSet;->isEmpty()Z │ │ - move-result v11 │ + move-result v10 │ │ - if-eqz v11, :cond_6 │ + if-eqz v10, :cond_6 │ │ :cond_1 │ const/4 v1, 0x1 │ │ .line 277 │ .local v1, "drawAllKeys":Z │ :goto_1 │ invoke-virtual {p1}, Landroid/graphics/Canvas;->isHardwareAccelerated()Z │ │ - move-result v4 │ + move-result v3 │ │ .line 279 │ - .local v4, "isHardwareAccelerated":Z │ + .local v3, "isHardwareAccelerated":Z │ if-nez v1, :cond_2 │ │ - if-eqz v4, :cond_7 │ + if-eqz v3, :cond_7 │ │ .line 280 │ :cond_2 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ │ - invoke-virtual {v11, v10, v10, v7, v2}, Landroid/graphics/Region;->set(IIII)Z │ + invoke-virtual {v10, v9, v9, v6, v2}, Landroid/graphics/Region;->set(IIII)Z │ │ .line 292 │ :cond_3 │ - if-nez v4, :cond_4 │ + if-nez v3, :cond_4 │ │ .line 293 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ │ - sget-object v12, Landroid/graphics/Region$Op;->REPLACE:Landroid/graphics/Region$Op; │ + sget-object v11, Landroid/graphics/Region$Op;->REPLACE:Landroid/graphics/Region$Op; │ │ - invoke-virtual {p1, v11, v12}, Landroid/graphics/Canvas;->clipRegion(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z │ + invoke-virtual {p1, v10, v11}, Landroid/graphics/Canvas;->clipRegion(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z │ │ .line 295 │ - const/high16 v11, -0x1000000 │ + const/high16 v10, -0x1000000 │ │ - sget-object v12, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode; │ + sget-object v11, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode; │ │ - invoke-virtual {p1, v11, v12}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V │ + invoke-virtual {p1, v10, v11}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V │ │ .line 296 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardView;->getBackground()Landroid/graphics/drawable/Drawable; │ │ move-result-object v0 │ │ .line 297 │ @@ -720,199 +723,194 @@ │ invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V │ │ .line 303 │ .end local v0 # "background":Landroid/graphics/drawable/Drawable; │ :cond_4 │ if-nez v1, :cond_5 │ │ - if-eqz v4, :cond_9 │ + if-eqz v3, :cond_9 │ │ .line 305 │ :cond_5 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - invoke-virtual {v11}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ + invoke-virtual {v10}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v11 │ + move-result-object v10 │ │ - invoke-interface {v11}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v10}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v10 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_2 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v11 │ │ if-eqz v11, :cond_b │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v4, Lcom/android/inputmethod/keyboard/Key; │ │ .line 306 │ - .local v5, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-direct {p0, v5, p1, v6}, Lcom/android/inputmethod/keyboard/KeyboardView;->onDrawKey(Lcom/android/inputmethod/keyboard/Key;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V │ + .local v4, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-direct {p0, v4, p1, v5}, Lcom/android/inputmethod/keyboard/KeyboardView;->onDrawKey(Lcom/android/inputmethod/keyboard/Key;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V │ │ goto :goto_2 │ │ .end local v1 # "drawAllKeys":Z │ - .end local v3 # "i$":Ljava/util/Iterator; │ - .end local v4 # "isHardwareAccelerated":Z │ - .end local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v3 # "isHardwareAccelerated":Z │ + .end local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_6 │ - move v1, v10 │ + move v1, v9 │ │ .line 276 │ goto :goto_1 │ │ .line 282 │ .restart local v1 # "drawAllKeys":Z │ - .restart local v4 # "isHardwareAccelerated":Z │ + .restart local v3 # "isHardwareAccelerated":Z │ :cond_7 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ │ - invoke-virtual {v11}, Landroid/graphics/Region;->setEmpty()V │ + invoke-virtual {v10}, Landroid/graphics/Region;->setEmpty()V │ │ .line 283 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ │ - invoke-virtual {v11}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v10}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v10 │ │ - .restart local v3 # "i$":Ljava/util/Iterator; │ :cond_8 │ :goto_3 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v11 │ │ if-eqz v11, :cond_3 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v4, Lcom/android/inputmethod/keyboard/Key; │ │ .line 284 │ - .restart local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .restart local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - invoke-virtual {v11, v5}, Lcom/android/inputmethod/keyboard/Keyboard;->hasKey(Lcom/android/inputmethod/keyboard/Key;)Z │ + invoke-virtual {v11, v4}, Lcom/android/inputmethod/keyboard/Keyboard;->hasKey(Lcom/android/inputmethod/keyboard/Key;)Z │ │ move-result v11 │ │ if-eqz v11, :cond_8 │ │ .line 285 │ - invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ + invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ │ move-result v11 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardView;->getPaddingLeft()I │ │ move-result v12 │ │ - add-int v8, v11, v12 │ + add-int v7, v11, v12 │ │ .line 286 │ - .local v8, "x":I │ - invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/Key;->getY()I │ + .local v7, "x":I │ + invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getY()I │ │ move-result v11 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/KeyboardView;->getPaddingTop()I │ │ move-result v12 │ │ - add-int v9, v11, v12 │ + add-int v8, v11, v12 │ │ .line 287 │ - .local v9, "y":I │ + .local v8, "y":I │ iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mWorkingRect:Landroid/graphics/Rect; │ │ - invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ + invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ │ move-result v12 │ │ - add-int/2addr v12, v8 │ + add-int/2addr v12, v7 │ │ - invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/Key;->getHeight()I │ + invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getHeight()I │ │ move-result v13 │ │ - add-int/2addr v13, v9 │ + add-int/2addr v13, v8 │ │ - invoke-virtual {v11, v8, v9, v12, v13}, Landroid/graphics/Rect;->set(IIII)V │ + invoke-virtual {v11, v7, v8, v12, v13}, Landroid/graphics/Rect;->set(IIII)V │ │ .line 288 │ iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mClipRegion:Landroid/graphics/Region; │ │ iget-object v12, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mWorkingRect:Landroid/graphics/Rect; │ │ invoke-virtual {v11, v12}, Landroid/graphics/Region;->union(Landroid/graphics/Rect;)Z │ │ goto :goto_3 │ │ .line 310 │ - .end local v3 # "i$":Ljava/util/Iterator; │ - .end local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .end local v8 # "x":I │ - .end local v9 # "y":I │ + .end local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v7 # "x":I │ + .end local v8 # "y":I │ :cond_9 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ │ - invoke-virtual {v11}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v10}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v10 │ │ - .restart local v3 # "i$":Ljava/util/Iterator; │ :cond_a │ :goto_4 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v11 │ │ if-eqz v11, :cond_b │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v4, Lcom/android/inputmethod/keyboard/Key; │ │ .line 311 │ - .restart local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .restart local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - invoke-virtual {v11, v5}, Lcom/android/inputmethod/keyboard/Keyboard;->hasKey(Lcom/android/inputmethod/keyboard/Key;)Z │ + invoke-virtual {v11, v4}, Lcom/android/inputmethod/keyboard/Keyboard;->hasKey(Lcom/android/inputmethod/keyboard/Key;)Z │ │ move-result v11 │ │ if-eqz v11, :cond_a │ │ .line 312 │ - invoke-direct {p0, v5, p1, v6}, Lcom/android/inputmethod/keyboard/KeyboardView;->onDrawKey(Lcom/android/inputmethod/keyboard/Key;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V │ + invoke-direct {p0, v4, p1, v5}, Lcom/android/inputmethod/keyboard/KeyboardView;->onDrawKey(Lcom/android/inputmethod/keyboard/Key;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V │ │ goto :goto_4 │ │ .line 317 │ - .end local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_b │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ + iget-object v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidatedKeys:Ljava/util/HashSet; │ │ - invoke-virtual {v11}, Ljava/util/HashSet;->clear()V │ + invoke-virtual {v10}, Ljava/util/HashSet;->clear()V │ │ .line 318 │ - iput-boolean v10, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidateAllKeys:Z │ + iput-boolean v9, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mInvalidateAllKeys:Z │ │ goto/16 :goto_0 │ .end method │ │ │ # virtual methods │ .method public deallocateMemory()V │ @@ -985,14 +983,15 @@ │ .line 514 │ int-to-float v4, v3 │ │ iget v5, p0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyHintLetterPadding:F │ │ sub-float/2addr v4, v5 │ │ + .line 515 │ invoke-static {p3}, Lcom/android/inputmethod/latin/utils/TypefaceUtils;->getReferenceCharWidth(Landroid/graphics/Paint;)F │ │ move-result v5 │ │ const/high16 v6, 0x40000000 # 2.0f │ │ div-float/2addr v5, v6 │ @@ -1341,14 +1340,15 @@ │ │ invoke-virtual {v0, v13}, Lcom/android/inputmethod/keyboard/Key;->needsToKeepBackgroundAspectRatio(I)Z │ │ move-result v13 │ │ if-eqz v13, :cond_2 │ │ + .line 349 │ invoke-virtual/range {p1 .. p1}, Lcom/android/inputmethod/keyboard/Key;->hasCustomActionLabel()Z │ │ move-result v13 │ │ if-nez v13, :cond_2 │ │ .line 350 │ @@ -1678,22 +1678,24 @@ │ │ int-to-float v4, v0 │ │ const v5, 0x3f666666 # 0.9f │ │ mul-float/2addr v4, v5 │ │ + .line 407 │ move-object/from16 v0, p3 │ │ invoke-static {v3, v0}, Lcom/android/inputmethod/latin/utils/TypefaceUtils;->getStringWidth(Ljava/lang/String;Landroid/graphics/Paint;)F │ │ move-result v5 │ │ div-float/2addr v4, v5 │ │ + .line 406 │ invoke-static {v2, v4}, Ljava/lang/Math;->min(FF)F │ │ move-result v31 │ │ .line 408 │ .local v31, "ratio":F │ invoke-virtual/range {p1 .. p1}, Lcom/android/inputmethod/keyboard/Key;->needsAutoScale()Z │ @@ -1920,24 +1922,26 @@ │ │ mul-float v19, v2, v29 │ │ .line 473 │ .local v19, "adjustmentY":F │ const/4 v10, 0x0 │ │ + .line 474 │ invoke-virtual {v9}, Ljava/lang/String;->length()I │ │ move-result v11 │ │ add-float v13, v23, v19 │ │ move-object/from16 v8, p2 │ │ move-object/from16 v14, p3 │ │ + .line 473 │ invoke-virtual/range {v8 .. v14}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;IIFFLandroid/graphics/Paint;)V │ │ .line 478 │ .end local v12 # "hintX":F │ .end local v19 # "adjustmentY":F │ .end local v23 # "hintBaseline":F │ .end local v29 # "labelCharHeight":F │ @@ -2177,14 +2181,15 @@ │ │ move-object/from16 v0, p0 │ │ iget v4, v0, Lcom/android/inputmethod/keyboard/KeyboardView;->mKeyHintLetterPadding:F │ │ sub-float/2addr v2, v4 │ │ + .line 468 │ invoke-static/range {v24 .. v25}, Ljava/lang/Math;->max(FF)F │ │ move-result v4 │ │ const/high16 v5, 0x40000000 # 2.0f │ │ div-float/2addr v4, v5 ├── smali/com/android/inputmethod/keyboard/MainKeyboardView.smali │ @@ -372,14 +372,15 @@ │ .local v8, "forceNonDistinctMultitouch":Z │ invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; │ │ move-result-object v20 │ │ const-string v21, "android.hardware.touchscreen.multitouch.distinct" │ │ + .line 205 │ invoke-virtual/range {v20 .. v21}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z │ │ move-result v20 │ │ if-eqz v20, :cond_0 │ │ if-nez v8, :cond_0 │ @@ -916,15 +917,15 @@ │ move-object/from16 v1, p0 │ │ iput v0, v1, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mLanguageOnSpacebarHorizontalMargin:I │ │ .line 273 │ return-void │ │ - .line 204 │ + .line 205 │ .end local v5 # "altCodeKeyWhileTypingFadeinAnimatorResId":I │ .end local v6 # "altCodeKeyWhileTypingFadeoutAnimatorResId":I │ .end local v7 # "backgroundDimAlpha":I │ .end local v10 # "hasDistinctMultitouch":Z │ .end local v12 # "inflater":Landroid/view/LayoutInflater; │ .end local v15 # "languageOnSpacebarFadeoutAnimatorResId":I │ .end local v17 # "moreKeysKeyboardForActionLayoutId":I │ @@ -1381,20 +1382,21 @@ │ const/4 v0, 0x0 │ │ .line 291 │ :cond_0 │ :goto_0 │ return-object v0 │ │ - .line 286 │ + .line 287 │ :cond_1 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getContext()Landroid/content/Context; │ │ move-result-object v1 │ │ + .line 286 │ invoke-static {v1, p1}, Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator; │ │ move-result-object v0 │ │ check-cast v0, Landroid/animation/ObjectAnimator; │ │ .line 288 │ @@ -1480,49 +1482,54 @@ │ │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->isPopupEnabled()Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ + .line 583 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->noKeyPreview()Z │ │ move-result v1 │ │ if-nez v1, :cond_2 │ │ array-length v1, v9 │ │ if-ne v1, v4, :cond_2 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyPreviewDrawParams:Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams; │ │ + .line 584 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->getVisibleWidth()I │ │ move-result v1 │ │ if-lez v1, :cond_2 │ │ .line 585 │ .local v4, "isSingleMoreKeyWithPreview":Z │ :goto_1 │ new-instance v0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$Builder; │ │ + .line 586 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getKeyboard()Lcom/android/inputmethod/keyboard/Keyboard; │ │ move-result-object v3 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyPreviewDrawParams:Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams; │ │ + .line 587 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->getVisibleWidth()I │ │ move-result v5 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyPreviewDrawParams:Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams; │ │ + .line 588 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->getVisibleHeight()I │ │ move-result v6 │ │ invoke-virtual {p0, p1}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->newLabelPaint(Lcom/android/inputmethod/keyboard/Key;)Landroid/graphics/Paint; │ │ move-result-object v7 │ @@ -1557,14 +1564,15 @@ │ iget-object v8, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mMoreKeysKeyboardForActionContainer:Landroid/view/View; │ │ .line 595 │ .local v8, "container":Landroid/view/View; │ :goto_2 │ const v1, 0x7f100078 │ │ + .line 596 │ invoke-virtual {v8, v1}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v11 │ │ check-cast v11, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView; │ │ .line 597 │ @@ -1572,15 +1580,15 @@ │ invoke-virtual {v11, v10}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->setKeyboard(Lcom/android/inputmethod/keyboard/Keyboard;)V │ │ .line 598 │ invoke-virtual {v8, v12, v12}, Landroid/view/View;->measure(II)V │ │ goto :goto_0 │ │ - .line 582 │ + .line 584 │ .end local v8 # "container":Landroid/view/View; │ .end local v11 # "moreKeysKeyboardView":Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView; │ :cond_2 │ const/4 v4, 0x0 │ │ goto :goto_1 │ │ @@ -1629,14 +1637,15 @@ │ │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->isPopupEnabled()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ + .line 647 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->noKeyPreview()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ const/4 v6, 0x1 │ @@ -1646,14 +1655,15 @@ │ :goto_1 │ iget-boolean v1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mConfigShowMoreKeysKeyboardAtTouchedPoint:Z │ │ if-eqz v1, :cond_2 │ │ if-nez v6, :cond_2 │ │ + .line 652 │ invoke-static {v7}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->x([I)I │ │ move-result v3 │ │ .line 659 │ .local v3, "pointX":I │ :goto_2 │ @@ -1683,24 +1693,24 @@ │ invoke-virtual {p2, v0}, Lcom/android/inputmethod/keyboard/PointerTracker;->onShowMoreKeysPanel(Lcom/android/inputmethod/keyboard/MoreKeysPanel;)V │ │ .line 663 │ invoke-virtual {p0, p1}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->dismissKeyPreviewWithoutDelay(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_0 │ │ - .line 646 │ + .line 647 │ .end local v3 # "pointX":I │ .end local v4 # "pointY":I │ .end local v6 # "keyPreviewEnabled":Z │ :cond_1 │ const/4 v6, 0x0 │ │ goto :goto_1 │ │ - .line 651 │ + .line 653 │ .restart local v6 # "keyPreviewEnabled":Z │ :cond_2 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ │ move-result v1 │ │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ @@ -2264,14 +2274,15 @@ │ .line 759 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mAccessibilityDelegate:Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate; │ │ .line 760 │ .local v0, "accessibilityDelegate":Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate; │ if-eqz v0, :cond_0 │ │ + .line 761 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isAccessibilityEnabled()Z │ │ move-result v1 │ @@ -2294,14 +2305,15 @@ │ .line 771 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mAccessibilityDelegate:Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate; │ │ .line 772 │ .local v0, "accessibilityDelegate":Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate; │ if-eqz v0, :cond_0 │ │ + .line 773 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isTouchExplorationEnabled()Z │ │ move-result v1 │ @@ -2558,14 +2570,15 @@ │ │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/PointerTracker;->isShowingMoreKeysPanel()Z │ │ move-result v3 │ │ if-nez v3, :cond_0 │ │ + .line 735 │ invoke-static {}, Lcom/android/inputmethod/keyboard/PointerTracker;->getActivePointerTrackerCount()I │ │ move-result v3 │ │ if-ne v3, v4, :cond_0 │ │ .line 739 │ @@ -2585,59 +2598,58 @@ │ .locals 4 │ .param p1, "alpha" # I │ .annotation build Lorg/smc/inputmethod/annotations/ExternallyReferenced; │ .end annotation │ │ .prologue │ .line 341 │ - iget v3, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mAltCodeKeyWhileTypingAnimAlpha:I │ + iget v2, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mAltCodeKeyWhileTypingAnimAlpha:I │ │ - if-ne v3, p1, :cond_1 │ + if-ne v2, p1, :cond_1 │ │ .line 353 │ :cond_0 │ return-void │ │ .line 345 │ :cond_1 │ iput p1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mAltCodeKeyWhileTypingAnimAlpha:I │ │ .line 346 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getKeyboard()Lcom/android/inputmethod/keyboard/Keyboard; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 347 │ - .local v2, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ - if-eqz v2, :cond_0 │ + .local v1, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ + if-eqz v1, :cond_0 │ │ .line 350 │ - iget-object v3, v2, Lcom/android/inputmethod/keyboard/Keyboard;->mAltCodeKeysWhileTyping:Ljava/util/List; │ + iget-object v2, v1, Lcom/android/inputmethod/keyboard/Keyboard;->mAltCodeKeysWhileTyping:Ljava/util/List; │ │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v0, Lcom/android/inputmethod/keyboard/Key; │ │ .line 351 │ - .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {p0, v1}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->invalidateKey(Lcom/android/inputmethod/keyboard/Key;)V │ + .local v0, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {p0, v0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->invalidateKey(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_0 │ .end method │ │ .method public setGestureHandlingEnabledByUser(ZZZ)V │ .locals 3 │ .param p1, "isGestureHandlingEnabledByUser" # Z │ @@ -2760,14 +2772,15 @@ │ │ .line 383 │ invoke-super {p0, p1}, Lcom/android/inputmethod/keyboard/KeyboardView;->setKeyboard(Lcom/android/inputmethod/keyboard/Keyboard;)V │ │ .line 384 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyDetector:Lcom/android/inputmethod/keyboard/KeyDetector; │ │ + .line 385 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getPaddingLeft()I │ │ move-result v2 │ │ neg-int v2, v2 │ │ int-to-float v2, v2 │ @@ -2782,14 +2795,15 @@ │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getVerticalCorrection()F │ │ move-result v4 │ │ add-float/2addr v3, v4 │ │ + .line 384 │ invoke-virtual {v1, p1, v2, v3}, Lcom/android/inputmethod/keyboard/KeyDetector;->setKeyboard(Lcom/android/inputmethod/keyboard/Keyboard;FF)V │ │ .line 386 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyDetector:Lcom/android/inputmethod/keyboard/KeyDetector; │ │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/PointerTracker;->setKeyDetector(Lcom/android/inputmethod/keyboard/KeyDetector;)V │ │ @@ -3033,28 +3047,30 @@ │ .line 479 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyPreviewChoreographer:Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer; │ │ iget-object v2, v8, Lcom/android/inputmethod/keyboard/Keyboard;->mIconsSet:Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet; │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mKeyDrawParams:Lcom/android/inputmethod/keyboard/internal/KeyDrawParams; │ │ + .line 480 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getWidth()I │ │ move-result v4 │ │ iget-object v5, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mOriginCoords:[I │ │ iget-object v6, p0, Lcom/android/inputmethod/keyboard/MainKeyboardView;->mDrawingPreviewPlacerView:Lcom/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView; │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->isHardwareAccelerated()Z │ │ move-result v7 │ │ move-object v1, p1 │ │ + .line 479 │ invoke-virtual/range {v0 .. v7}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;->placeAndShowKeyPreview(Lcom/android/inputmethod/keyboard/Key;Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet;Lcom/android/inputmethod/keyboard/internal/KeyDrawParams;I[ILandroid/view/ViewGroup;Z)V │ │ goto :goto_0 │ .end method │ │ .method public showSlidingKeyInputPreview(Lcom/android/inputmethod/keyboard/PointerTracker;)V │ .locals 1 ├── smali/com/android/inputmethod/keyboard/KeyDetector.smali │ @@ -71,110 +71,110 @@ │ .method public detectHitKey(II)Lcom/android/inputmethod/keyboard/Key; │ .locals 9 │ .param p1, "x" # I │ .param p2, "y" # I │ │ .prologue │ .line 89 │ - iget-object v7, p0, Lcom/android/inputmethod/keyboard/KeyDetector;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v6, p0, Lcom/android/inputmethod/keyboard/KeyDetector;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - if-nez v7, :cond_1 │ + if-nez v6, :cond_1 │ │ .line 90 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 114 │ :cond_0 │ - return-object v4 │ + return-object v3 │ │ .line 92 │ :cond_1 │ invoke-virtual {p0, p1}, Lcom/android/inputmethod/keyboard/KeyDetector;->getTouchX(I)I │ │ - move-result v5 │ + move-result v4 │ │ .line 93 │ - .local v5, "touchX":I │ + .local v4, "touchX":I │ invoke-virtual {p0, p2}, Lcom/android/inputmethod/keyboard/KeyDetector;->getTouchY(I)I │ │ - move-result v6 │ + move-result v5 │ │ .line 95 │ - .local v6, "touchY":I │ - const v3, 0x7fffffff │ + .local v5, "touchY":I │ + const v2, 0x7fffffff │ │ .line 96 │ - .local v3, "minDistance":I │ - const/4 v4, 0x0 │ + .local v2, "minDistance":I │ + const/4 v3, 0x0 │ │ .line 97 │ - .local v4, "primaryKey":Lcom/android/inputmethod/keyboard/Key; │ - iget-object v7, p0, Lcom/android/inputmethod/keyboard/KeyDetector;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + .local v3, "primaryKey":Lcom/android/inputmethod/keyboard/Key; │ + iget-object v6, p0, Lcom/android/inputmethod/keyboard/KeyDetector;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - invoke-virtual {v7, v5, v6}, Lcom/android/inputmethod/keyboard/Keyboard;->getNearestKeys(II)Ljava/util/List; │ + invoke-virtual {v6, v4, v5}, Lcom/android/inputmethod/keyboard/Keyboard;->getNearestKeys(II)Ljava/util/List; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v6 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_2 │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ │ .line 100 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v2, v5, v6}, Lcom/android/inputmethod/keyboard/Key;->isOnKey(II)Z │ + .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v1, v4, v5}, Lcom/android/inputmethod/keyboard/Key;->isOnKey(II)Z │ │ move-result v7 │ │ if-eqz v7, :cond_2 │ │ .line 103 │ - invoke-virtual {v2, v5, v6}, Lcom/android/inputmethod/keyboard/Key;->squaredDistanceToEdge(II)I │ + invoke-virtual {v1, v4, v5}, Lcom/android/inputmethod/keyboard/Key;->squaredDistanceToEdge(II)I │ │ move-result v0 │ │ .line 104 │ .local v0, "distance":I │ - if-gt v0, v3, :cond_2 │ + if-gt v0, v2, :cond_2 │ │ .line 108 │ - if-eqz v4, :cond_3 │ + if-eqz v3, :cond_3 │ │ - if-lt v0, v3, :cond_3 │ + if-lt v0, v2, :cond_3 │ │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + .line 109 │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v7 │ │ - invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v8 │ │ if-le v7, v8, :cond_2 │ │ .line 110 │ :cond_3 │ - move v3, v0 │ + move v2, v0 │ │ .line 111 │ - move-object v4, v2 │ + move-object v3, v1 │ │ goto :goto_0 │ .end method │ │ .method public getKeyHysteresisDistanceSquared(Z)I │ .locals 1 │ .param p1, "isSlidingFromModifier" # Z ├── smali/com/android/inputmethod/keyboard/MoreKeysDetector.smali │ @@ -53,96 +53,94 @@ │ .param p1, "x" # I │ .param p2, "y" # I │ │ .prologue │ .line 37 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->getKeyboard()Lcom/android/inputmethod/keyboard/Keyboard; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 38 │ - .local v3, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ - if-nez v3, :cond_1 │ + .local v2, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ + if-nez v2, :cond_1 │ │ .line 39 │ - const/4 v5, 0x0 │ + const/4 v4, 0x0 │ │ .line 53 │ :cond_0 │ - return-object v5 │ + return-object v4 │ │ .line 41 │ :cond_1 │ invoke-virtual {p0, p1}, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->getTouchX(I)I │ │ - move-result v6 │ + move-result v5 │ │ .line 42 │ - .local v6, "touchX":I │ + .local v5, "touchX":I │ invoke-virtual {p0, p2}, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->getTouchY(I)I │ │ - move-result v7 │ + move-result v6 │ │ .line 44 │ - .local v7, "touchY":I │ - const/4 v5, 0x0 │ + .local v6, "touchY":I │ + const/4 v4, 0x0 │ │ .line 45 │ - .local v5, "nearestKey":Lcom/android/inputmethod/keyboard/Key; │ + .local v4, "nearestKey":Lcom/android/inputmethod/keyboard/Key; │ if-gez p2, :cond_3 │ │ - iget v4, p0, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->mSlideAllowanceSquareTop:I │ + iget v3, p0, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->mSlideAllowanceSquareTop:I │ │ .line 46 │ - .local v4, "nearestDist":I │ + .local v3, "nearestDist":I │ :goto_0 │ - invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ + invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v7 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_2 │ :goto_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v8 │ │ if-eqz v8, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ │ .line 47 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v2, v6, v7}, Lcom/android/inputmethod/keyboard/Key;->squaredDistanceToEdge(II)I │ + .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v1, v5, v6}, Lcom/android/inputmethod/keyboard/Key;->squaredDistanceToEdge(II)I │ │ move-result v0 │ │ .line 48 │ .local v0, "dist":I │ - if-ge v0, v4, :cond_2 │ + if-ge v0, v3, :cond_2 │ │ .line 49 │ - move-object v5, v2 │ + move-object v4, v1 │ │ .line 50 │ - move v4, v0 │ + move v3, v0 │ │ goto :goto_1 │ │ .line 45 │ .end local v0 # "dist":I │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .end local v4 # "nearestDist":I │ + .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v3 # "nearestDist":I │ :cond_3 │ - iget v4, p0, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->mSlideAllowanceSquare:I │ + iget v3, p0, Lcom/android/inputmethod/keyboard/MoreKeysDetector;->mSlideAllowanceSquare:I │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/keyboard/MoreKeysKeyboard$Builder.smali │ @@ -128,14 +128,15 @@ │ │ array-length v2, v11 │ │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/Key;->getMoreKeysColumnNumber()I │ │ move-result v3 │ │ + .line 313 │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ │ move-result v6 │ │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ │ move-result v7 │ @@ -146,22 +147,24 @@ │ │ move-object/from16 v0, p3 │ │ iget-object v7, v0, Lcom/android/inputmethod/keyboard/Keyboard;->mId:Lcom/android/inputmethod/keyboard/KeyboardId; │ │ iget v7, v7, Lcom/android/inputmethod/keyboard/KeyboardId;->mWidth:I │ │ + .line 314 │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/Key;->isMoreKeysFixedColumn()Z │ │ move-result v8 │ │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/Key;->isMoreKeysFixedOrder()Z │ │ move-result v9 │ │ + .line 312 │ invoke-virtual/range {v1 .. v10}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->setParameters(IIIIIIZZI)V │ │ .line 315 │ return-void │ │ .line 298 │ .end local v4 # "keyWidth":I │ @@ -175,14 +178,15 @@ │ │ const v2, 0x7f080026 │ │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimension(I)F │ │ move-result v2 │ │ + .line 300 │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/Key;->hasLabelsInMoreKeys()Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$Builder;->mParams:Lcom/android/inputmethod/keyboard/internal/KeyboardParams; │ @@ -219,15 +223,15 @@ │ move-object/from16 v0, p3 │ │ iget v5, v0, Lcom/android/inputmethod/keyboard/Keyboard;->mMostCommonKeyHeight:I │ │ .restart local v5 # "rowHeight":I │ goto :goto_0 │ │ - .line 298 │ + .line 300 │ .end local v4 # "keyWidth":I │ .end local v5 # "rowHeight":I │ .end local v12 # "padding":F │ :cond_1 │ const/4 v1, 0x0 │ │ goto :goto_2 │ @@ -247,74 +251,72 @@ │ .param p0, "parentKey" # Lcom/android/inputmethod/keyboard/Key; │ .param p1, "minKeyWidth" # I │ .param p2, "padding" # F │ .param p3, "paint" # Landroid/graphics/Paint; │ │ .prologue │ .line 319 │ - move v4, p1 │ + move v1, p1 │ │ .line 320 │ - .local v4, "maxWidth":I │ + .local v1, "maxWidth":I │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/Key;->getMoreKeys()[Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ │ - move-result-object v0 │ + move-result-object v4 │ │ - .local v0, "arr$":[Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ - array-length v3, v0 │ + array-length v5, v4 │ │ - .local v3, "len$":I │ - const/4 v1, 0x0 │ + const/4 v3, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v3, :cond_1 │ + if-ge v3, v5, :cond_1 │ │ - aget-object v5, v0, v1 │ + aget-object v2, v4, v3 │ │ .line 321 │ - .local v5, "spec":Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ - iget-object v2, v5, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mLabel:Ljava/lang/String; │ + .local v2, "spec":Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ + iget-object v0, v2, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mLabel:Ljava/lang/String; │ │ .line 323 │ - .local v2, "label":Ljava/lang/String; │ - if-eqz v2, :cond_0 │ + .local v0, "label":Ljava/lang/String; │ + if-eqz v0, :cond_0 │ │ - invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->codePointCount(Ljava/lang/String;)I │ + invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->codePointCount(Ljava/lang/String;)I │ │ move-result v6 │ │ const/4 v7, 0x1 │ │ if-le v6, v7, :cond_0 │ │ - .line 324 │ - invoke-static {v2, p3}, Lcom/android/inputmethod/latin/utils/TypefaceUtils;->getStringWidth(Ljava/lang/String;Landroid/graphics/Paint;)F │ + .line 325 │ + invoke-static {v0, p3}, Lcom/android/inputmethod/latin/utils/TypefaceUtils;->getStringWidth(Ljava/lang/String;Landroid/graphics/Paint;)F │ │ move-result v6 │ │ add-float/2addr v6, p2 │ │ float-to-int v6, v6 │ │ - invoke-static {v4, v6}, Ljava/lang/Math;->max(II)I │ + .line 324 │ + invoke-static {v1, v6}, Ljava/lang/Math;->max(II)I │ │ - move-result v4 │ + move-result v1 │ │ .line 320 │ :cond_0 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 328 │ - .end local v2 # "label":Ljava/lang/String; │ - .end local v5 # "spec":Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ + .end local v0 # "label":Ljava/lang/String; │ + .end local v2 # "spec":Lcom/android/inputmethod/keyboard/internal/MoreKeySpec; │ :cond_1 │ - return v4 │ + return v1 │ .end method │ │ │ # virtual methods │ .method public bridge synthetic build()Lcom/android/inputmethod/keyboard/Keyboard; │ .locals 1 ├── smali/com/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams.smali │ @@ -760,14 +760,15 @@ │ .line 128 │ if-eqz p8, :cond_7 │ │ invoke-direct {p0}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->getFixedOrderTopRowAdjustment()I │ │ move-result v10 │ │ + .line 129 │ :goto_2 │ iput v10, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->mTopRowAdjustment:I │ │ .line 130 │ move/from16 v0, p9 │ │ iput v0, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->mDividerWidth:I │ @@ -818,15 +819,15 @@ │ iput v10, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->mOccupiedHeight:I │ │ iput v10, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->mBaseHeight:I │ │ .line 136 │ return-void │ │ - .line 90 │ + .line 91 │ .end local v1 # "leftKeys":I │ .end local v2 # "maxLeftKeys":I │ .end local v3 # "maxRightKeys":I │ .end local v4 # "numColumns":I │ .end local v5 # "numLeftKeys":I │ .end local v6 # "numRightKeys":I │ .end local v8 # "rightKeys":I │ @@ -867,15 +868,15 @@ │ .line 110 │ .restart local v1 # "leftKeys":I │ move v8, v6 │ │ .restart local v8 # "rightKeys":I │ goto :goto_1 │ │ - .line 128 │ + .line 129 │ :cond_7 │ invoke-direct {p0}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboard$MoreKeysKeyboardParams;->getAutoOrderTopRowAdjustment()I │ │ move-result v10 │ │ goto :goto_2 │ .end method ├── smali/com/android/inputmethod/keyboard/MoreKeysKeyboardView.smali │ @@ -236,14 +236,15 @@ │ :cond_0 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->mAccessibilityDelegate:Lorg/smc/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate; │ │ .line 244 │ .local v0, "accessibilityDelegate":Lorg/smc/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate; │ if-eqz v0, :cond_1 │ │ + .line 245 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isAccessibilityEnabled()Z │ │ move-result v1 │ @@ -422,14 +423,15 @@ │ .line 290 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->mAccessibilityDelegate:Lorg/smc/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate; │ │ .line 291 │ .local v0, "accessibilityDelegate":Lorg/smc/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate; │ if-eqz v0, :cond_0 │ │ + .line 292 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isTouchExplorationEnabled()Z │ │ move-result v1 │ @@ -821,14 +823,15 @@ │ .prologue │ .line 106 │ invoke-super {p0, p1}, Lcom/android/inputmethod/keyboard/KeyboardView;->setKeyboard(Lcom/android/inputmethod/keyboard/Keyboard;)V │ │ .line 107 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->mKeyDetector:Lcom/android/inputmethod/keyboard/KeyDetector; │ │ + .line 108 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->getPaddingLeft()I │ │ move-result v1 │ │ neg-int v1, v1 │ │ int-to-float v1, v1 │ @@ -843,14 +846,15 @@ │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->getVerticalCorrection()F │ │ move-result v3 │ │ add-float/2addr v2, v3 │ │ + .line 107 │ invoke-virtual {v0, p1, v1, v2}, Lcom/android/inputmethod/keyboard/KeyDetector;->setKeyboard(Lcom/android/inputmethod/keyboard/Keyboard;FF)V │ │ .line 109 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v0 │ │ @@ -976,14 +980,15 @@ │ │ invoke-virtual {v1}, Landroid/view/View;->getPaddingBottom()I │ │ move-result v8 │ │ add-int/2addr v7, v8 │ │ + .line 132 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->getPaddingBottom()I │ │ move-result v8 │ │ add-int v6, v7, v8 │ │ .line 134 │ @@ -1068,14 +1073,15 @@ │ .line 145 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/MoreKeysKeyboardView;->mAccessibilityDelegate:Lorg/smc/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate; │ │ .line 146 │ .local v0, "accessibilityDelegate":Lorg/smc/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate; │ if-eqz v0, :cond_0 │ │ + .line 147 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v7 │ │ invoke-virtual {v7}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isAccessibilityEnabled()Z │ │ move-result v7 ├── smali/com/android/inputmethod/keyboard/ProximityInfo.smali │ @@ -247,527 +247,526 @@ │ │ .line 249 │ .local v5, "defaultWidth":I │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mSortedKeys:Ljava/util/List; │ │ - move-object/from16 v35, v0 │ + move-object/from16 v34, v0 │ │ - invoke-interface/range {v35 .. v35}, Ljava/util/List;->size()I │ + invoke-interface/range {v34 .. v34}, Ljava/util/List;->size()I │ │ - move-result v15 │ + move-result v14 │ │ .line 250 │ - .local v15, "keyCount":I │ + .local v14, "keyCount":I │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mGridNeighbors:[Ljava/util/List; │ │ - move-object/from16 v35, v0 │ + move-object/from16 v34, v0 │ │ - move-object/from16 v0, v35 │ + move-object/from16 v0, v34 │ │ array-length v6, v0 │ │ .line 251 │ .local v6, "gridSize":I │ int-to-float v0, v5 │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - const v36, 0x3f99999a # 1.2f │ + const v35, 0x3f99999a # 1.2f │ │ - mul-float v35, v35, v36 │ + mul-float v34, v34, v35 │ │ - move/from16 v0, v35 │ + move/from16 v0, v34 │ │ float-to-int v0, v0 │ │ - move/from16 v24, v0 │ + move/from16 v23, v0 │ │ .line 252 │ - .local v24, "threshold":I │ - mul-int v25, v24, v24 │ + .local v23, "threshold":I │ + mul-int v24, v23, v23 │ │ .line 254 │ - .local v25, "thresholdSquared":I │ + .local v24, "thresholdSquared":I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mGridWidth:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellWidth:I │ │ - move/from16 v36, v0 │ + move/from16 v35, v0 │ │ - mul-int v35, v35, v36 │ + mul-int v34, v34, v35 │ │ - add-int/lit8 v18, v35, -0x1 │ + add-int/lit8 v17, v34, -0x1 │ │ .line 255 │ - .local v18, "lastPixelXCoordinate":I │ + .local v17, "lastPixelXCoordinate":I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mGridHeight:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellHeight:I │ │ - move/from16 v36, v0 │ + move/from16 v35, v0 │ │ - mul-int v35, v35, v36 │ + mul-int v34, v34, v35 │ │ - add-int/lit8 v19, v35, -0x1 │ + add-int/lit8 v18, v34, -0x1 │ │ .line 264 │ - .local v19, "lastPixelYCoordinate":I │ - mul-int v35, v6, v15 │ + .local v18, "lastPixelYCoordinate":I │ + mul-int v34, v6, v14 │ │ - move/from16 v0, v35 │ + move/from16 v0, v34 │ │ new-array v0, v0, [Lcom/android/inputmethod/keyboard/Key; │ │ - move-object/from16 v23, v0 │ + move-object/from16 v22, v0 │ │ .line 265 │ - .local v23, "neighborsFlatBuffer":[Lcom/android/inputmethod/keyboard/Key; │ + .local v22, "neighborsFlatBuffer":[Lcom/android/inputmethod/keyboard/Key; │ new-array v0, v6, [I │ │ - move-object/from16 v21, v0 │ + move-object/from16 v20, v0 │ │ .line 266 │ - .local v21, "neighborCountPerCell":[I │ + .local v20, "neighborCountPerCell":[I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellWidth:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - div-int/lit8 v8, v35, 0x2 │ + div-int/lit8 v8, v34, 0x2 │ │ .line 267 │ .local v8, "halfCellWidth":I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellHeight:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - div-int/lit8 v7, v35, 0x2 │ + div-int/lit8 v7, v34, 0x2 │ │ .line 268 │ .local v7, "halfCellHeight":I │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mSortedKeys:Ljava/util/List; │ │ - move-object/from16 v35, v0 │ + move-object/from16 v34, v0 │ │ - invoke-interface/range {v35 .. v35}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface/range {v34 .. v34}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v10 │ + move-result-object v35 │ │ - .local v10, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface/range {v35 .. v35}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v35 │ + move-result v34 │ │ - if-eqz v35, :cond_5 │ + if-eqz v34, :cond_5 │ │ - invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface/range {v35 .. v35}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v14 │ + move-result-object v13 │ │ - check-cast v14, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v13, Lcom/android/inputmethod/keyboard/Key; │ │ .line 269 │ - .local v14, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v14}, Lcom/android/inputmethod/keyboard/Key;->isSpacer()Z │ + .local v13, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v13}, Lcom/android/inputmethod/keyboard/Key;->isSpacer()Z │ │ - move-result v35 │ + move-result v34 │ │ - if-nez v35, :cond_0 │ + if-nez v34, :cond_0 │ │ .line 331 │ - invoke-virtual {v14}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ + invoke-virtual {v13}, Lcom/android/inputmethod/keyboard/Key;->getX()I │ │ - move-result v16 │ + move-result v15 │ │ .line 332 │ - .local v16, "keyX":I │ - invoke-virtual {v14}, Lcom/android/inputmethod/keyboard/Key;->getY()I │ + .local v15, "keyX":I │ + invoke-virtual {v13}, Lcom/android/inputmethod/keyboard/Key;->getY()I │ │ - move-result v17 │ + move-result v16 │ │ .line 333 │ - .local v17, "keyY":I │ - sub-int v26, v17, v24 │ + .local v16, "keyY":I │ + sub-int v25, v16, v23 │ │ .line 334 │ - .local v26, "topPixelWithinThreshold":I │ + .local v25, "topPixelWithinThreshold":I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellHeight:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - rem-int v31, v26, v35 │ + rem-int v30, v25, v34 │ │ .line 335 │ - .local v31, "yDeltaToGrid":I │ - sub-int v35, v26, v31 │ + .local v30, "yDeltaToGrid":I │ + sub-int v34, v25, v30 │ │ - add-int v33, v35, v7 │ + add-int v32, v34, v7 │ │ .line 336 │ - .local v33, "yMiddleOfTopCell":I │ - move/from16 v0, v31 │ + .local v32, "yMiddleOfTopCell":I │ + move/from16 v0, v30 │ │ if-gt v0, v7, :cond_2 │ │ - const/16 v35, 0x0 │ + const/16 v34, 0x0 │ │ :goto_0 │ - add-int v35, v35, v33 │ + add-int v34, v34, v32 │ │ - move/from16 v0, v35 │ + move/from16 v0, v34 │ │ invoke-static {v7, v0}, Ljava/lang/Math;->max(II)I │ │ - move-result v34 │ + move-result v33 │ │ .line 338 │ - .local v34, "yStart":I │ - invoke-virtual {v14}, Lcom/android/inputmethod/keyboard/Key;->getHeight()I │ + .local v33, "yStart":I │ + invoke-virtual {v13}, Lcom/android/inputmethod/keyboard/Key;->getHeight()I │ │ - move-result v35 │ + move-result v34 │ │ - add-int v35, v35, v17 │ + add-int v34, v34, v16 │ │ - add-int v35, v35, v24 │ + add-int v34, v34, v23 │ │ - move/from16 v0, v19 │ + move/from16 v0, v18 │ │ - move/from16 v1, v35 │ + move/from16 v1, v34 │ │ invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I │ │ - move-result v32 │ + move-result v31 │ │ .line 340 │ - .local v32, "yEnd":I │ - sub-int v20, v16, v24 │ + .local v31, "yEnd":I │ + sub-int v19, v15, v23 │ │ .line 341 │ - .local v20, "leftPixelWithinThreshold":I │ + .local v19, "leftPixelWithinThreshold":I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellWidth:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - rem-int v27, v20, v35 │ + rem-int v26, v19, v34 │ │ .line 342 │ - .local v27, "xDeltaToGrid":I │ - sub-int v35, v20, v27 │ + .local v26, "xDeltaToGrid":I │ + sub-int v34, v19, v26 │ │ - add-int v29, v35, v8 │ + add-int v28, v34, v8 │ │ .line 343 │ - .local v29, "xMiddleOfLeftCell":I │ - move/from16 v0, v27 │ + .local v28, "xMiddleOfLeftCell":I │ + move/from16 v0, v26 │ │ if-gt v0, v8, :cond_3 │ │ - const/16 v35, 0x0 │ + const/16 v34, 0x0 │ │ :goto_1 │ - add-int v35, v35, v29 │ + add-int v34, v34, v28 │ │ - move/from16 v0, v35 │ + move/from16 v0, v34 │ │ invoke-static {v8, v0}, Ljava/lang/Math;->max(II)I │ │ - move-result v30 │ + move-result v29 │ │ .line 345 │ - .local v30, "xStart":I │ - invoke-virtual {v14}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ + .local v29, "xStart":I │ + invoke-virtual {v13}, Lcom/android/inputmethod/keyboard/Key;->getWidth()I │ │ - move-result v35 │ + move-result v34 │ │ - add-int v35, v35, v16 │ + add-int v34, v34, v15 │ │ - add-int v35, v35, v24 │ + add-int v34, v34, v23 │ │ - move/from16 v0, v18 │ + move/from16 v0, v17 │ │ - move/from16 v1, v35 │ + move/from16 v1, v34 │ │ invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I │ │ - move-result v28 │ + move-result v27 │ │ .line 347 │ - .local v28, "xEnd":I │ + .local v27, "xEnd":I │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellHeight:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - div-int v35, v34, v35 │ + div-int v34, v33, v34 │ │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mGridWidth:I │ │ move/from16 v36, v0 │ │ - mul-int v35, v35, v36 │ + mul-int v34, v34, v36 │ │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellWidth:I │ │ move/from16 v36, v0 │ │ - div-int v36, v30, v36 │ + div-int v36, v29, v36 │ │ - add-int v2, v35, v36 │ + add-int v2, v34, v36 │ │ .line 348 │ .local v2, "baseIndexOfCurrentRow":I │ - move/from16 v4, v34 │ + move/from16 v4, v33 │ │ .local v4, "centerY":I │ :goto_2 │ - move/from16 v0, v32 │ + move/from16 v0, v31 │ │ if-gt v4, v0, :cond_0 │ │ .line 349 │ - move v11, v2 │ + move v10, v2 │ │ .line 350 │ - .local v11, "index":I │ - move/from16 v3, v30 │ + .local v10, "index":I │ + move/from16 v3, v29 │ │ .local v3, "centerX":I │ :goto_3 │ - move/from16 v0, v28 │ + move/from16 v0, v27 │ │ if-gt v3, v0, :cond_4 │ │ .line 351 │ - invoke-virtual {v14, v3, v4}, Lcom/android/inputmethod/keyboard/Key;->squaredDistanceToEdge(II)I │ + invoke-virtual {v13, v3, v4}, Lcom/android/inputmethod/keyboard/Key;->squaredDistanceToEdge(II)I │ │ - move-result v35 │ + move-result v34 │ │ - move/from16 v0, v35 │ + move/from16 v0, v34 │ │ - move/from16 v1, v25 │ + move/from16 v1, v24 │ │ if-ge v0, v1, :cond_1 │ │ .line 352 │ - mul-int v35, v11, v15 │ + mul-int v34, v10, v14 │ │ - aget v36, v21, v11 │ + aget v36, v20, v10 │ │ - add-int v35, v35, v36 │ + add-int v34, v34, v36 │ │ - aput-object v14, v23, v35 │ + aput-object v13, v22, v34 │ │ .line 353 │ - aget v35, v21, v11 │ + aget v34, v20, v10 │ │ - add-int/lit8 v35, v35, 0x1 │ + add-int/lit8 v34, v34, 0x1 │ │ - aput v35, v21, v11 │ + aput v34, v20, v10 │ │ .line 355 │ :cond_1 │ - add-int/lit8 v11, v11, 0x1 │ + add-int/lit8 v10, v10, 0x1 │ │ .line 350 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellWidth:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - add-int v3, v3, v35 │ + add-int v3, v3, v34 │ │ goto :goto_3 │ │ .line 336 │ .end local v2 # "baseIndexOfCurrentRow":I │ .end local v3 # "centerX":I │ .end local v4 # "centerY":I │ - .end local v11 # "index":I │ - .end local v20 # "leftPixelWithinThreshold":I │ - .end local v27 # "xDeltaToGrid":I │ - .end local v28 # "xEnd":I │ - .end local v29 # "xMiddleOfLeftCell":I │ - .end local v30 # "xStart":I │ - .end local v32 # "yEnd":I │ - .end local v34 # "yStart":I │ + .end local v10 # "index":I │ + .end local v19 # "leftPixelWithinThreshold":I │ + .end local v26 # "xDeltaToGrid":I │ + .end local v27 # "xEnd":I │ + .end local v28 # "xMiddleOfLeftCell":I │ + .end local v29 # "xStart":I │ + .end local v31 # "yEnd":I │ + .end local v33 # "yStart":I │ :cond_2 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellHeight:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ goto/16 :goto_0 │ │ .line 343 │ - .restart local v20 # "leftPixelWithinThreshold":I │ - .restart local v27 # "xDeltaToGrid":I │ - .restart local v29 # "xMiddleOfLeftCell":I │ - .restart local v32 # "yEnd":I │ - .restart local v34 # "yStart":I │ + .restart local v19 # "leftPixelWithinThreshold":I │ + .restart local v26 # "xDeltaToGrid":I │ + .restart local v28 # "xMiddleOfLeftCell":I │ + .restart local v31 # "yEnd":I │ + .restart local v33 # "yStart":I │ :cond_3 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellWidth:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ goto :goto_1 │ │ .line 357 │ .restart local v2 # "baseIndexOfCurrentRow":I │ .restart local v3 # "centerX":I │ .restart local v4 # "centerY":I │ - .restart local v11 # "index":I │ - .restart local v28 # "xEnd":I │ - .restart local v30 # "xStart":I │ + .restart local v10 # "index":I │ + .restart local v27 # "xEnd":I │ + .restart local v29 # "xStart":I │ :cond_4 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mGridWidth:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - add-int v2, v2, v35 │ + add-int v2, v2, v34 │ │ .line 348 │ move-object/from16 v0, p0 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mCellHeight:I │ │ - move/from16 v35, v0 │ + move/from16 v34, v0 │ │ - add-int v4, v4, v35 │ + add-int v4, v4, v34 │ │ goto :goto_2 │ │ .line 361 │ .end local v2 # "baseIndexOfCurrentRow":I │ .end local v3 # "centerX":I │ .end local v4 # "centerY":I │ - .end local v11 # "index":I │ - .end local v14 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .end local v16 # "keyX":I │ - .end local v17 # "keyY":I │ - .end local v20 # "leftPixelWithinThreshold":I │ - .end local v26 # "topPixelWithinThreshold":I │ - .end local v27 # "xDeltaToGrid":I │ - .end local v28 # "xEnd":I │ - .end local v29 # "xMiddleOfLeftCell":I │ - .end local v30 # "xStart":I │ - .end local v31 # "yDeltaToGrid":I │ - .end local v32 # "yEnd":I │ - .end local v33 # "yMiddleOfTopCell":I │ - .end local v34 # "yStart":I │ + .end local v10 # "index":I │ + .end local v13 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v15 # "keyX":I │ + .end local v16 # "keyY":I │ + .end local v19 # "leftPixelWithinThreshold":I │ + .end local v25 # "topPixelWithinThreshold":I │ + .end local v26 # "xDeltaToGrid":I │ + .end local v27 # "xEnd":I │ + .end local v28 # "xMiddleOfLeftCell":I │ + .end local v29 # "xStart":I │ + .end local v30 # "yDeltaToGrid":I │ + .end local v31 # "yEnd":I │ + .end local v32 # "yMiddleOfTopCell":I │ + .end local v33 # "yStart":I │ :cond_5 │ const/4 v9, 0x0 │ │ .local v9, "i":I │ :goto_4 │ if-ge v9, v6, :cond_7 │ │ .line 362 │ - mul-int v13, v9, v15 │ + mul-int v12, v9, v14 │ │ .line 363 │ - .local v13, "indexStart":I │ - aget v35, v21, v9 │ + .local v12, "indexStart":I │ + aget v34, v20, v9 │ │ - add-int v12, v13, v35 │ + add-int v11, v12, v34 │ │ .line 364 │ - .local v12, "indexEnd":I │ - new-instance v22, Ljava/util/ArrayList; │ + .local v11, "indexEnd":I │ + new-instance v21, Ljava/util/ArrayList; │ │ - sub-int v35, v12, v13 │ + sub-int v34, v11, v12 │ │ - move-object/from16 v0, v22 │ + move-object/from16 v0, v21 │ │ - move/from16 v1, v35 │ + move/from16 v1, v34 │ │ invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V │ │ .line 365 │ - .local v22, "neighbors":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move v11, v13 │ + .local v21, "neighbors":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + move v10, v12 │ │ - .restart local v11 # "index":I │ + .restart local v10 # "index":I │ :goto_5 │ - if-ge v11, v12, :cond_6 │ + if-ge v10, v11, :cond_6 │ │ .line 366 │ - aget-object v35, v23, v11 │ + aget-object v34, v22, v10 │ │ - move-object/from16 v0, v22 │ + move-object/from16 v0, v21 │ │ - move-object/from16 v1, v35 │ + move-object/from16 v1, v34 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 365 │ - add-int/lit8 v11, v11, 0x1 │ + add-int/lit8 v10, v10, 0x1 │ │ goto :goto_5 │ │ .line 368 │ :cond_6 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mGridNeighbors:[Ljava/util/List; │ │ - move-object/from16 v35, v0 │ + move-object/from16 v34, v0 │ │ - invoke-static/range {v22 .. v22}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; │ + invoke-static/range {v21 .. v21}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; │ │ - move-result-object v36 │ + move-result-object v35 │ │ - aput-object v36, v35, v9 │ + aput-object v35, v34, v9 │ │ .line 361 │ add-int/lit8 v9, v9, 0x1 │ │ goto :goto_4 │ │ .line 370 │ - .end local v11 # "index":I │ - .end local v12 # "indexEnd":I │ - .end local v13 # "indexStart":I │ - .end local v22 # "neighbors":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .end local v10 # "index":I │ + .end local v11 # "indexEnd":I │ + .end local v12 # "indexStart":I │ + .end local v21 # "neighbors":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_7 │ return-void │ .end method │ │ .method private createNativeProximityInfo(Lcom/android/inputmethod/keyboard/internal/TouchPositionCorrection;)J │ .locals 36 │ .param p1, "touchPositionCorrection" # Lcom/android/inputmethod/keyboard/internal/TouchPositionCorrection; │ @@ -1046,14 +1045,15 @@ │ │ move-object/from16 v0, p0 │ │ iget v3, v0, Lcom/android/inputmethod/keyboard/ProximityInfo;->mMostCommonKeyHeight:I │ │ int-to-double v6, v3 │ │ + .line 185 │ invoke-static {v4, v5, v6, v7}, Ljava/lang/Math;->hypot(DD)D │ │ move-result-wide v4 │ │ double-to-float v3, v4 │ │ mul-float v19, v2, v3 │ @@ -1170,14 +1170,15 @@ │ │ move/from16 v22, v0 │ │ .line 201 │ .local v22, "hitBoxDiagonal":F │ aget v2, v16, v26 │ │ + .line 202 │ move-object/from16 v0, p1 │ │ move/from16 v1, v33 │ │ invoke-virtual {v0, v1}, Lcom/android/inputmethod/keyboard/internal/TouchPositionCorrection;->getX(I)F │ │ move-result v3 │ @@ -1191,14 +1192,15 @@ │ add-float/2addr v2, v3 │ │ aput v2, v16, v26 │ │ .line 203 │ aget v2, v17, v26 │ │ + .line 204 │ move-object/from16 v0, p1 │ │ move/from16 v1, v33 │ │ invoke-virtual {v0, v1}, Lcom/android/inputmethod/keyboard/internal/TouchPositionCorrection;->getY(I)F │ │ move-result v3 │ @@ -1209,15 +1211,15 @@ │ │ mul-float/2addr v3, v4 │ │ add-float/2addr v2, v3 │ │ aput v2, v17, v26 │ │ - .line 205 │ + .line 206 │ move-object/from16 v0, p1 │ │ move/from16 v1, v33 │ │ invoke-virtual {v0, v1}, Lcom/android/inputmethod/keyboard/internal/TouchPositionCorrection;->getRadius(I)F │ │ move-result v2 │ @@ -1308,46 +1310,45 @@ │ .local p0, "keys":Ljava/util/List;, "Ljava/util/List;" │ const/4 v0, 0x0 │ │ .line 109 │ .local v0, "count":I │ invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ │ .line 110 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-static {v2}, Lcom/android/inputmethod/keyboard/ProximityInfo;->needsProximityInfo(Lcom/android/inputmethod/keyboard/Key;)Z │ + .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-static {v1}, Lcom/android/inputmethod/keyboard/ProximityInfo;->needsProximityInfo(Lcom/android/inputmethod/keyboard/Key;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ .line 111 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_0 │ │ .line 114 │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_1 │ return v0 │ .end method │ │ .method private static needsProximityInfo(Lcom/android/inputmethod/keyboard/Key;)Z │ .locals 2 │ .param p0, "key" # Lcom/android/inputmethod/keyboard/Key; │ @@ -1392,107 +1393,106 @@ │ const/16 v8, 0x20 │ │ .line 374 │ array-length v1, p4 │ │ .line 375 │ .local v1, "destLength":I │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ - if-ge v1, v7, :cond_1 │ + if-ge v1, v6, :cond_1 │ │ .line 396 │ :cond_0 │ :goto_0 │ return-void │ │ .line 378 │ :cond_1 │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ .line 379 │ - .local v3, "index":I │ + .local v2, "index":I │ if-le p3, v8, :cond_2 │ │ .line 380 │ - add-int/lit8 v4, v3, 0x1 │ + add-int/lit8 v3, v2, 0x1 │ │ - .end local v3 # "index":I │ - .local v4, "index":I │ - aput p3, p4, v3 │ + .end local v2 # "index":I │ + .local v3, "index":I │ + aput p3, p4, v2 │ │ - move v3, v4 │ + move v2, v3 │ │ .line 382 │ - .end local v4 # "index":I │ - .restart local v3 # "index":I │ + .end local v3 # "index":I │ + .restart local v2 # "index":I │ :cond_2 │ invoke-virtual {p0, p1, p2}, Lcom/android/inputmethod/keyboard/ProximityInfo;->getNearestKeys(II)Ljava/util/List; │ │ - move-result-object v6 │ + move-result-object v5 │ │ .line 383 │ - .local v6, "nearestKeys":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v5, "nearestKeys":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v6 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_3 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v4, Lcom/android/inputmethod/keyboard/Key; │ │ .line 384 │ - .local v5, "key":Lcom/android/inputmethod/keyboard/Key; │ - if-lt v3, v1, :cond_4 │ + .local v4, "key":Lcom/android/inputmethod/keyboard/Key; │ + if-lt v2, v1, :cond_4 │ │ .line 393 │ - .end local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_3 │ - if-ge v3, v1, :cond_0 │ + if-ge v2, v1, :cond_0 │ │ .line 394 │ - const/4 v7, -0x1 │ + const/4 v6, -0x1 │ │ - aput v7, p4, v3 │ + aput v6, p4, v2 │ │ goto :goto_0 │ │ .line 387 │ - .restart local v5 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .restart local v4 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_4 │ - invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v0 │ │ .line 388 │ .local v0, "code":I │ if-le v0, v8, :cond_3 │ │ .line 391 │ - add-int/lit8 v4, v3, 0x1 │ + add-int/lit8 v3, v2, 0x1 │ │ - .end local v3 # "index":I │ - .restart local v4 # "index":I │ - aput v0, p4, v3 │ + .end local v2 # "index":I │ + .restart local v3 # "index":I │ + aput v0, p4, v2 │ │ - move v3, v4 │ + move v2, v3 │ │ .line 392 │ - .end local v4 # "index":I │ - .restart local v3 # "index":I │ + .end local v3 # "index":I │ + .restart local v2 # "index":I │ goto :goto_1 │ .end method │ │ .method protected finalize()V │ .locals 4 │ .annotation system Ldalvik/annotation/Throws; │ value = { ├── smali/com/android/inputmethod/keyboard/TextDecorator$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/inputmethod/keyboard/TextDecorator; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/TextDecorator;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/TextDecorator; │ │ .prologue │ .line 90 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/TextDecorator$1;->this$0:Lcom/android/inputmethod/keyboard/TextDecorator; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/com/android/inputmethod/keyboard/PointerTracker.smali │ @@ -777,14 +777,15 @@ │ │ .line 908 │ :cond_0 │ sget-boolean v0, Lcom/android/inputmethod/keyboard/PointerTracker;->sNeedsPhantomSuddenMoveEventHack:Z │ │ if-eqz v0, :cond_1 │ │ + .line 909 │ invoke-static {p2, p3, p7, p8}, Lcom/android/inputmethod/keyboard/PointerTracker;->getDistance(IIII)I │ │ move-result v0 │ │ iget v1, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPhantomSuddenMoveThreshold:I │ │ if-lt v0, v1, :cond_1 │ @@ -802,14 +803,15 @@ │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBogusMoveEventDetector:Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector; │ │ + .line 916 │ invoke-virtual {v0, p2, p3}, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->isCloseToActualDownEvent(II)Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ .line 917 │ @@ -823,14 +825,15 @@ │ │ move-result v0 │ │ if-le v0, v2, :cond_4 │ │ sget-object v0, Lcom/android/inputmethod/keyboard/PointerTracker;->sPointerTrackerQueue:Lcom/android/inputmethod/keyboard/internal/PointerTrackerQueue; │ │ + .line 924 │ invoke-virtual {v0, p0}, Lcom/android/inputmethod/keyboard/internal/PointerTrackerQueue;->hasModifierKeyOlderThan(Lcom/android/inputmethod/keyboard/internal/PointerTrackerQueue$Element;)Z │ │ move-result v0 │ │ if-nez v0, :cond_4 │ │ .line 925 │ @@ -845,20 +848,22 @@ │ │ new-array v2, v2, [Ljava/lang/Object; │ │ const/4 v3, 0x0 │ │ iget v4, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPointerId:I │ │ + .line 927 │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 926 │ invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 929 │ @@ -1104,22 +1109,25 @@ │ │ .line 215 │ .local v0, "res":Landroid/content/res/Resources; │ const v1, 0x7f0a0014 │ │ sget-object v2, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; │ │ + .line 217 │ invoke-virtual {v2}, Ljava/lang/Boolean;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 216 │ invoke-static {v0, v1, v2}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getDeviceOverrideValue(Landroid/content/res/Resources;ILjava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 215 │ invoke-static {v1}, Ljava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z │ │ move-result v1 │ │ sput-boolean v1, Lcom/android/inputmethod/keyboard/PointerTracker;->sNeedsPhantomSuddenMoveEventHack:Z │ │ .line 218 │ @@ -1234,28 +1242,30 @@ │ │ new-array v10, v10, [Ljava/lang/Object; │ │ const/4 v11, 0x0 │ │ iget v12, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPointerId:I │ │ + .line 1133 │ invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v12 │ │ aput-object v12, v10, v11 │ │ const/4 v11, 0x1 │ │ invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ │ move-result-object v12 │ │ aput-object v12, v10, v11 │ │ + .line 1132 │ invoke-static {v9, v10}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-static {v8, v9}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 1135 │ @@ -1279,14 +1289,15 @@ │ │ move-result v8 │ │ if-eqz v8, :cond_5 │ │ iget-object v8, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBogusMoveEventDetector:Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector; │ │ + .line 1138 │ invoke-virtual {v8, p1, p2}, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->hasTraveledLongDistance(II)Z │ │ move-result v8 │ │ if-eqz v8, :cond_5 │ │ .line 1139 │ @@ -1313,14 +1324,15 @@ │ │ double-to-float v5, v8 │ │ .line 1142 │ .local v5, "keyDiagonal":F │ iget-object v8, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBogusMoveEventDetector:Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector; │ │ + .line 1143 │ invoke-virtual {v8}, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->getAccumulatedDistanceFromDownKey()I │ │ move-result v8 │ │ int-to-float v8, v8 │ │ div-float v7, v8, v5 │ @@ -1335,28 +1347,30 @@ │ │ new-array v10, v10, [Ljava/lang/Object; │ │ const/4 v11, 0x0 │ │ iget v12, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPointerId:I │ │ + .line 1146 │ invoke-static {v12}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v12 │ │ aput-object v12, v10, v11 │ │ const/4 v11, 0x1 │ │ invoke-static {v7}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; │ │ move-result-object v12 │ │ aput-object v12, v10, v11 │ │ + .line 1144 │ invoke-static {v9, v10}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-static {v8, v9}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 1148 │ @@ -1542,14 +1556,15 @@ │ │ new-array v5, v5, [Ljava/lang/Object; │ │ const/4 v6, 0x0 │ │ iget v7, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPointerId:I │ │ + .line 692 │ invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v7 │ │ aput-object v7, v5, v6 │ │ const/4 v6, 0x1 │ @@ -1564,14 +1579,15 @@ │ │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v7 │ │ aput-object v7, v5, v6 │ │ + .line 690 │ invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 693 │ @@ -1647,14 +1663,15 @@ │ │ move-result v3 │ │ if-eqz v3, :cond_4 │ │ if-eqz v11, :cond_4 │ │ + .line 713 │ invoke-virtual {v11}, Lcom/android/inputmethod/keyboard/Key;->isModifier()Z │ │ move-result v3 │ │ if-nez v3, :cond_4 │ │ const/4 v3, 0x1 │ @@ -1668,50 +1685,54 @@ │ if-eqz v3, :cond_1 │ │ .line 715 │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBatchInputArbiter:Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter; │ │ sget-object v4, Lcom/android/inputmethod/keyboard/PointerTracker;->sTypingTimeRecorder:Lcom/android/inputmethod/keyboard/internal/TypingTimeRecorder; │ │ + .line 716 │ invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/internal/TypingTimeRecorder;->getLastLetterTypingTime()J │ │ move-result-wide v8 │ │ invoke-static {}, Lcom/android/inputmethod/keyboard/PointerTracker;->getActivePointerTrackerCount()I │ │ move-result v10 │ │ move/from16 v4, p1 │ │ move/from16 v5, p2 │ │ move-wide/from16 v6, p3 │ │ + .line 715 │ invoke-virtual/range {v3 .. v10}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->addDownEventPoint(IIJJI)V │ │ .line 717 │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mGestureStrokeDrawingPoints:Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints; │ │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBatchInputArbiter:Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter; │ │ + .line 718 │ move-wide/from16 v0, p3 │ │ invoke-virtual {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->getElapsedTimeSinceFirstDown(J)I │ │ move-result v4 │ │ + .line 717 │ move/from16 v0, p1 │ │ move/from16 v1, p2 │ │ invoke-virtual {v3, v0, v1, v4}, Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints;->onDownEvent(III)V │ │ goto :goto_0 │ │ - .line 712 │ + .line 713 │ :cond_4 │ const/4 v3, 0x0 │ │ goto :goto_1 │ .end method │ │ .method private onDownEventInternal(IIJ)V │ @@ -1734,23 +1755,25 @@ │ │ iget-boolean v1, v1, Lcom/android/inputmethod/keyboard/PointerTracker$PointerTrackerParams;->mKeySelectionByDraggingFinger:Z │ │ if-nez v1, :cond_1 │ │ if-eqz v0, :cond_0 │ │ + .line 740 │ invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/Key;->isModifier()Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ :cond_0 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyDetector:Lcom/android/inputmethod/keyboard/KeyDetector; │ │ + .line 741 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/KeyDetector;->alwaysAllowsKeySelectionByDraggingFinger()Z │ │ move-result v1 │ │ if-eqz v1, :cond_4 │ │ :cond_1 │ @@ -1796,15 +1819,15 @@ │ .line 757 │ :cond_3 │ return-void │ │ :cond_4 │ move v1, v2 │ │ - .line 739 │ + .line 741 │ goto :goto_0 │ .end method │ │ .method private onDownKey(IIJ)Lcom/android/inputmethod/keyboard/Key; │ .locals 1 │ .param p1, "x" # I │ .param p2, "y" # I │ @@ -1884,18 +1907,20 @@ │ │ .line 784 │ :cond_2 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mGestureStrokeDrawingPoints:Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBatchInputArbiter:Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter; │ │ + .line 785 │ invoke-virtual {v2, p3, p4}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->getElapsedTimeSinceFirstDown(J)I │ │ move-result v2 │ │ + .line 784 │ invoke-virtual {v1, p1, p2, v2}, Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints;->onMoveEvent(III)V │ │ .line 788 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/PointerTracker;->isShowingMoreKeysPanel()Z │ │ move-result v1 │ │ @@ -1916,14 +1941,15 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_3 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBatchInputArbiter:Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter; │ │ + .line 792 │ invoke-virtual {v1, p0}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->mayStartBatchInput(Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter$BatchInputArbiterListener;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_3 │ │ .line 793 │ @@ -2557,18 +2583,20 @@ │ │ invoke-direct {p0, v7, v2, v5}, Lcom/android/inputmethod/keyboard/PointerTracker;->callListenerOnRelease(Lcom/android/inputmethod/keyboard/Key;IZ)V │ │ .line 1045 │ :cond_3 │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBatchInputArbiter:Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter; │ │ + .line 1046 │ invoke-static {}, Lcom/android/inputmethod/keyboard/PointerTracker;->getActivePointerTrackerCount()I │ │ move-result v5 │ │ + .line 1045 │ move-wide/from16 v0, p3 │ │ invoke-virtual {v2, v0, v1, v5, p0}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->mayEndBatchInput(JILcom/android/inputmethod/keyboard/internal/BatchInputArbiter$BatchInputArbiterListener;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_4 │ @@ -2595,14 +2623,15 @@ │ │ invoke-virtual {v7}, Lcom/android/inputmethod/keyboard/Key;->isRepeatable()Z │ │ move-result v2 │ │ if-eqz v2, :cond_6 │ │ + .line 1057 │ invoke-virtual {v7}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v2 │ │ if-ne v2, v12, :cond_6 │ │ if-eqz v13, :cond_1 │ @@ -2683,14 +2712,15 @@ │ │ const/4 v2, 0x2 │ │ aput-object p1, v5, v2 │ │ const/4 v2, 0x3 │ │ + .line 1231 │ invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v5, v2 │ │ const/4 v2, 0x4 │ @@ -2709,14 +2739,15 @@ │ │ aput-object v6, v5, v2 │ │ const/4 v2, 0x6 │ │ aput-object v0, v5, v2 │ │ + .line 1230 │ invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v3, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 1232 │ @@ -2846,34 +2877,37 @@ │ │ new-array v2, v2, [Ljava/lang/Object; │ │ const/4 v3, 0x0 │ │ iget v4, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPointerId:I │ │ + .line 859 │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x1 │ │ + .line 860 │ invoke-static {p2, p3, p7, p8}, Lcom/android/inputmethod/keyboard/PointerTracker;->getDistance(IIII)I │ │ move-result v4 │ │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x2 │ │ + .line 861 │ invoke-static {p7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x3 │ @@ -2894,14 +2928,15 @@ │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x5 │ │ + .line 862 │ invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x6 │ @@ -2920,14 +2955,15 @@ │ │ invoke-static {v4}, Lorg/smc/inputmethod/indic/Constants;->printableCode(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 857 │ invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 864 │ @@ -2976,14 +3012,15 @@ │ │ double-to-float v0, v2 │ │ .line 873 │ .local v0, "keyDiagonal":F │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mBogusMoveEventDetector:Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector; │ │ + .line 874 │ invoke-virtual {v2, p2, p3}, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->getDistanceFromDownEvent(II)I │ │ move-result v2 │ │ int-to-float v2, v2 │ │ div-float v1, v2, v0 │ @@ -2998,14 +3035,15 @@ │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ iget v6, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mPointerId:I │ │ + .line 879 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x1 │ @@ -3014,14 +3052,15 @@ │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x2 │ │ + .line 880 │ invoke-static {p7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x3 │ @@ -3042,14 +3081,15 @@ │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x5 │ │ + .line 881 │ invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x6 │ @@ -3068,14 +3108,15 @@ │ │ invoke-static {v6}, Lorg/smc/inputmethod/indic/Constants;->printableCode(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ + .line 876 │ invoke-static {v3, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 883 │ @@ -3303,220 +3344,217 @@ │ │ .method private setPressedKeyGraphics(Lcom/android/inputmethod/keyboard/Key;J)V │ .locals 10 │ .param p1, "key" # Lcom/android/inputmethod/keyboard/Key; │ .param p2, "eventTime" # J │ │ .prologue │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ - const/4 v8, 0x0 │ + const/4 v7, 0x0 │ │ .line 470 │ if-nez p1, :cond_1 │ │ .line 506 │ :cond_0 │ return-void │ │ .line 475 │ :cond_1 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->altCodeWhileTyping()Z │ │ - move-result v9 │ + move-result v8 │ │ - if-eqz v9, :cond_5 │ + if-eqz v8, :cond_5 │ │ - sget-object v9, Lcom/android/inputmethod/keyboard/PointerTracker;->sTimerProxy:Lcom/android/inputmethod/keyboard/PointerTracker$TimerProxy; │ + sget-object v8, Lcom/android/inputmethod/keyboard/PointerTracker;->sTimerProxy:Lcom/android/inputmethod/keyboard/PointerTracker$TimerProxy; │ │ - invoke-interface {v9}, Lcom/android/inputmethod/keyboard/PointerTracker$TimerProxy;->isTypingState()Z │ + invoke-interface {v8}, Lcom/android/inputmethod/keyboard/PointerTracker$TimerProxy;->isTypingState()Z │ │ - move-result v9 │ + move-result v8 │ │ - if-eqz v9, :cond_5 │ + if-eqz v8, :cond_5 │ │ - move v2, v7 │ + move v2, v6 │ │ .line 476 │ .local v2, "altersCode":Z │ :goto_0 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->isEnabled()Z │ │ - move-result v9 │ + move-result v8 │ │ - if-nez v9, :cond_2 │ + if-nez v8, :cond_2 │ │ if-eqz v2, :cond_6 │ │ :cond_2 │ - move v5, v7 │ + move v4, v6 │ │ .line 477 │ - .local v5, "needsToUpdateGraphics":Z │ + .local v4, "needsToUpdateGraphics":Z │ :goto_1 │ - if-eqz v5, :cond_0 │ + if-eqz v4, :cond_0 │ │ .line 481 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->noKeyPreview()Z │ │ - move-result v7 │ + move-result v6 │ │ - if-nez v7, :cond_3 │ + if-nez v6, :cond_3 │ │ - sget-boolean v7, Lcom/android/inputmethod/keyboard/PointerTracker;->sInGesture:Z │ + sget-boolean v6, Lcom/android/inputmethod/keyboard/PointerTracker;->sInGesture:Z │ │ - if-nez v7, :cond_3 │ + if-nez v6, :cond_3 │ │ invoke-static {p2, p3}, Lcom/android/inputmethod/keyboard/PointerTracker;->needsToSuppressKeyPreviewPopup(J)Z │ │ - move-result v7 │ + move-result v6 │ │ - if-nez v7, :cond_3 │ + if-nez v6, :cond_3 │ │ .line 482 │ - sget-object v7, Lcom/android/inputmethod/keyboard/PointerTracker;->sDrawingProxy:Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy; │ + sget-object v6, Lcom/android/inputmethod/keyboard/PointerTracker;->sDrawingProxy:Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy; │ │ - invoke-interface {v7, p1}, Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy;->showKeyPreview(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-interface {v6, p1}, Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy;->showKeyPreview(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 484 │ :cond_3 │ invoke-static {p1}, Lcom/android/inputmethod/keyboard/PointerTracker;->updatePressKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 486 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->isShift()Z │ │ - move-result v7 │ + move-result v6 │ │ - if-eqz v7, :cond_7 │ + if-eqz v6, :cond_7 │ │ .line 487 │ - iget-object v7, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v6, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - iget-object v7, v7, Lcom/android/inputmethod/keyboard/Keyboard;->mShiftKeys:Ljava/util/List; │ + iget-object v6, v6, Lcom/android/inputmethod/keyboard/Keyboard;->mShiftKeys:Ljava/util/List; │ │ - invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v6 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :cond_4 │ :goto_2 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_7 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - check-cast v6, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v5, Lcom/android/inputmethod/keyboard/Key; │ │ .line 488 │ - .local v6, "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ - if-eq v6, p1, :cond_4 │ + .local v5, "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ + if-eq v5, p1, :cond_4 │ │ .line 489 │ - invoke-static {v6}, Lcom/android/inputmethod/keyboard/PointerTracker;->updatePressKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-static {v5}, Lcom/android/inputmethod/keyboard/PointerTracker;->updatePressKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_2 │ │ .end local v2 # "altersCode":Z │ - .end local v3 # "i$":Ljava/util/Iterator; │ - .end local v5 # "needsToUpdateGraphics":Z │ - .end local v6 # "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ + .end local v4 # "needsToUpdateGraphics":Z │ + .end local v5 # "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ :cond_5 │ - move v2, v8 │ + move v2, v7 │ │ .line 475 │ goto :goto_0 │ │ .restart local v2 # "altersCode":Z │ :cond_6 │ - move v5, v8 │ + move v4, v7 │ │ .line 476 │ goto :goto_1 │ │ .line 494 │ - .restart local v5 # "needsToUpdateGraphics":Z │ + .restart local v4 # "needsToUpdateGraphics":Z │ :cond_7 │ if-eqz v2, :cond_0 │ │ .line 495 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->getAltCode()I │ │ move-result v0 │ │ .line 496 │ .local v0, "altCode":I │ - iget-object v7, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v6, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - invoke-virtual {v7, v0}, Lcom/android/inputmethod/keyboard/Keyboard;->getKey(I)Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v6, v0}, Lcom/android/inputmethod/keyboard/Keyboard;->getKey(I)Lcom/android/inputmethod/keyboard/Key; │ │ move-result-object v1 │ │ .line 497 │ .local v1, "altKey":Lcom/android/inputmethod/keyboard/Key; │ if-eqz v1, :cond_8 │ │ .line 498 │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/PointerTracker;->updatePressKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 500 │ :cond_8 │ - iget-object v7, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v6, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - iget-object v7, v7, Lcom/android/inputmethod/keyboard/Keyboard;->mAltCodeKeysWhileTyping:Ljava/util/List; │ + iget-object v6, v6, Lcom/android/inputmethod/keyboard/Keyboard;->mAltCodeKeysWhileTyping:Ljava/util/List; │ │ - invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v6 │ │ - .restart local v3 # "i$":Ljava/util/Iterator; │ :cond_9 │ :goto_3 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_0 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v3, Lcom/android/inputmethod/keyboard/Key; │ │ .line 501 │ - .local v4, "k":Lcom/android/inputmethod/keyboard/Key; │ - if-eq v4, p1, :cond_9 │ + .local v3, "k":Lcom/android/inputmethod/keyboard/Key; │ + if-eq v3, p1, :cond_9 │ │ - invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/Key;->getAltCode()I │ + invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/Key;->getAltCode()I │ │ move-result v7 │ │ if-ne v7, v0, :cond_9 │ │ .line 502 │ - invoke-static {v4}, Lcom/android/inputmethod/keyboard/PointerTracker;->updatePressKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-static {v3}, Lcom/android/inputmethod/keyboard/PointerTracker;->updatePressKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_3 │ .end method │ │ .method private setReleasedKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ .locals 6 │ .param p1, "key" # Lcom/android/inputmethod/keyboard/Key; │ │ .prologue │ .line 434 │ - sget-object v5, Lcom/android/inputmethod/keyboard/PointerTracker;->sDrawingProxy:Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy; │ + sget-object v4, Lcom/android/inputmethod/keyboard/PointerTracker;->sDrawingProxy:Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy; │ │ - invoke-interface {v5, p1}, Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy;->dismissKeyPreview(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-interface {v4, p1}, Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy;->dismissKeyPreview(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 435 │ if-nez p1, :cond_1 │ │ .line 462 │ :cond_0 │ return-void │ @@ -3524,118 +3562,115 @@ │ .line 440 │ :cond_1 │ invoke-static {p1}, Lcom/android/inputmethod/keyboard/PointerTracker;->updateReleaseKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 442 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->isShift()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_3 │ + if-eqz v4, :cond_3 │ │ .line 443 │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - iget-object v5, v5, Lcom/android/inputmethod/keyboard/Keyboard;->mShiftKeys:Ljava/util/List; │ + iget-object v4, v4, Lcom/android/inputmethod/keyboard/Keyboard;->mShiftKeys:Ljava/util/List; │ │ - invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v4 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_2 │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_3 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v3, Lcom/android/inputmethod/keyboard/Key; │ │ .line 444 │ - .local v4, "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ - if-eq v4, p1, :cond_2 │ + .local v3, "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ + if-eq v3, p1, :cond_2 │ │ .line 445 │ - invoke-static {v4}, Lcom/android/inputmethod/keyboard/PointerTracker;->updateReleaseKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-static {v3}, Lcom/android/inputmethod/keyboard/PointerTracker;->updateReleaseKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_0 │ │ .line 450 │ - .end local v2 # "i$":Ljava/util/Iterator; │ - .end local v4 # "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ + .end local v3 # "shiftKey":Lcom/android/inputmethod/keyboard/Key; │ :cond_3 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->altCodeWhileTyping()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_0 │ + if-eqz v4, :cond_0 │ │ .line 451 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->getAltCode()I │ │ move-result v0 │ │ .line 452 │ .local v0, "altCode":I │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - invoke-virtual {v5, v0}, Lcom/android/inputmethod/keyboard/Keyboard;->getKey(I)Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v4, v0}, Lcom/android/inputmethod/keyboard/Keyboard;->getKey(I)Lcom/android/inputmethod/keyboard/Key; │ │ move-result-object v1 │ │ .line 453 │ .local v1, "altKey":Lcom/android/inputmethod/keyboard/Key; │ if-eqz v1, :cond_4 │ │ .line 454 │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/PointerTracker;->updateReleaseKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 456 │ :cond_4 │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/PointerTracker;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ - iget-object v5, v5, Lcom/android/inputmethod/keyboard/Keyboard;->mAltCodeKeysWhileTyping:Ljava/util/List; │ + iget-object v4, v4, Lcom/android/inputmethod/keyboard/Keyboard;->mAltCodeKeysWhileTyping:Ljava/util/List; │ │ - invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v4 │ │ - .restart local v2 # "i$":Ljava/util/Iterator; │ :cond_5 │ :goto_1 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ │ .line 457 │ - .local v3, "k":Lcom/android/inputmethod/keyboard/Key; │ - if-eq v3, p1, :cond_5 │ + .local v2, "k":Lcom/android/inputmethod/keyboard/Key; │ + if-eq v2, p1, :cond_5 │ │ - invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/Key;->getAltCode()I │ + invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getAltCode()I │ │ move-result v5 │ │ if-ne v5, v0, :cond_5 │ │ .line 458 │ - invoke-static {v3}, Lcom/android/inputmethod/keyboard/PointerTracker;->updateReleaseKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-static {v2}, Lcom/android/inputmethod/keyboard/PointerTracker;->updateReleaseKeyGraphics(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_1 │ .end method │ │ .method public static setReleasedKeyGraphicsToAllKeys()V │ .locals 4 │ │ @@ -3696,18 +3731,20 @@ │ :goto_0 │ return-void │ │ .line 587 │ :cond_0 │ sget-object v0, Lcom/android/inputmethod/keyboard/PointerTracker;->sDrawingProxy:Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy; │ │ + .line 588 │ invoke-direct {p0}, Lcom/android/inputmethod/keyboard/PointerTracker;->isOldestTrackerInQueue()Z │ │ move-result v1 │ │ + .line 587 │ invoke-interface {v0, p0, v1}, Lcom/android/inputmethod/keyboard/PointerTracker$DrawingProxy;->showGestureTrail(Lcom/android/inputmethod/keyboard/PointerTracker;Z)V │ │ goto :goto_0 │ .end method │ │ .method private startKeyRepeatTimer(I)V │ .locals 2 │ @@ -4363,15 +4400,15 @@ │ │ .line 642 │ .local v6, "eventTime":J │ const/4 v8, 0x2 │ │ if-ne v2, v8, :cond_2 │ │ - .line 645 │ + .line 646 │ invoke-virtual/range {p0 .. p0}, Lcom/android/inputmethod/keyboard/PointerTracker;->isShowingMoreKeysPanel()Z │ │ move-result v8 │ │ if-eqz v8, :cond_0 │ │ invoke-static {}, Lcom/android/inputmethod/keyboard/PointerTracker;->getActivePointerTrackerCount()I │ @@ -4424,15 +4461,15 @@ │ │ .line 648 │ :goto_2 │ add-int/lit8 v16, v16, 0x1 │ │ goto :goto_1 │ │ - .line 645 │ + .line 646 │ .end local v15 # "id":I │ .end local v16 # "index":I │ .end local v17 # "pointerCount":I │ .end local v18 # "shouldIgnoreOtherPointers":Z │ :cond_0 │ const/16 v18, 0x0 ├── smali/com/android/inputmethod/keyboard/TextDecoratorUi$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$listener:Ljava/lang/Runnable; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/TextDecoratorUi;Ljava/lang/Runnable;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/TextDecoratorUi; │ │ .prologue │ .line 179 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/TextDecoratorUi$1;->this$0:Lcom/android/inputmethod/keyboard/TextDecoratorUi; │ │ iput-object p2, p0, Lcom/android/inputmethod/keyboard/TextDecoratorUi$1;->val$listener:Ljava/lang/Runnable; ├── smali/com/android/inputmethod/keyboard/TextDecoratorUi.smali │ @@ -64,18 +64,20 @@ │ │ .line 67 │ .local v2, "hitAreaMarginInDP":I │ const/4 v4, 0x1 │ │ int-to-float v5, v2 │ │ + .line 68 │ invoke-virtual {v3}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; │ │ move-result-object v6 │ │ + .line 67 │ invoke-static {v4, v5, v6}, Landroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F │ │ move-result v4 │ │ iput v4, p0, Lcom/android/inputmethod/keyboard/TextDecoratorUi;->mHitAreaMarginInPixels:F │ │ .line 69 │ @@ -514,26 +516,29 @@ │ │ iget v7, v0, Landroid/graphics/RectF;->top:F │ │ float-to-int v7, v7 │ │ sub-int/2addr v7, v4 │ │ + .line 166 │ invoke-virtual {v0}, Landroid/graphics/RectF;->width()F │ │ move-result v8 │ │ float-to-int v8, v8 │ │ + .line 167 │ invoke-virtual {v0}, Landroid/graphics/RectF;->height()F │ │ move-result v9 │ │ float-to-int v9, v9 │ │ + .line 164 │ invoke-virtual {v5, v6, v7, v8, v9}, Landroid/widget/PopupWindow;->update(IIII)V │ │ .line 175 │ :goto_1 │ return-void │ │ .end local v0 # "hitAreaBoundsInScreenCoordinates":Landroid/graphics/RectF; ├── smali/com/android/inputmethod/keyboard/emoji/DynamicGridKeyboard.smali │ @@ -191,170 +191,169 @@ │ :cond_0 │ const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private addKey(Lcom/android/inputmethod/keyboard/Key;Z)V │ - .locals 11 │ + .locals 10 │ .param p1, "usedKey" # Lcom/android/inputmethod/keyboard/Key; │ .param p2, "addFirst" # Z │ │ .prologue │ .line 104 │ if-nez p1, :cond_0 │ │ .line 131 │ :goto_0 │ return-void │ │ .line 107 │ :cond_0 │ - iget-object v9, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mLock:Ljava/lang/Object; │ + iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mLock:Ljava/lang/Object; │ │ - monitor-enter v9 │ + monitor-enter v8 │ │ .line 108 │ - const/4 v8, 0x0 │ + const/4 v7, 0x0 │ │ :try_start_0 │ - iput-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mCachedGridKeys:Ljava/util/List; │ + iput-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mCachedGridKeys:Ljava/util/List; │ │ .line 109 │ - new-instance v3, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ + new-instance v2, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ │ - invoke-direct {v3, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey;->(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-direct {v2, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey;->(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 110 │ - .local v3, "key":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ + .local v2, "key":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ :cond_1 │ - iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v8, v3}, Ljava/util/ArrayDeque;->remove(Ljava/lang/Object;)Z │ + invoke-virtual {v7, v2}, Ljava/util/ArrayDeque;->remove(Ljava/lang/Object;)Z │ │ - move-result v8 │ + move-result v7 │ │ - if-nez v8, :cond_1 │ + if-nez v7, :cond_1 │ │ .line 113 │ if-eqz p2, :cond_2 │ │ .line 114 │ - iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v8, v3}, Ljava/util/ArrayDeque;->addFirst(Ljava/lang/Object;)V │ + invoke-virtual {v7, v2}, Ljava/util/ArrayDeque;->addFirst(Ljava/lang/Object;)V │ │ .line 118 │ :goto_1 │ - iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v8}, Ljava/util/ArrayDeque;->size()I │ + invoke-virtual {v7}, Ljava/util/ArrayDeque;->size()I │ │ - move-result v8 │ + move-result v7 │ │ - iget v10, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mMaxKeyCount:I │ + iget v9, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mMaxKeyCount:I │ │ - if-le v8, v10, :cond_3 │ + if-le v7, v9, :cond_3 │ │ .line 119 │ - iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v8}, Ljava/util/ArrayDeque;->removeLast()Ljava/lang/Object; │ + invoke-virtual {v7}, Ljava/util/ArrayDeque;->removeLast()Ljava/lang/Object; │ │ goto :goto_1 │ │ .line 130 │ - .end local v3 # "key":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ + .end local v2 # "key":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ :catchall_0 │ - move-exception v8 │ + move-exception v7 │ │ - monitor-exit v9 │ + monitor-exit v8 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v8 │ + throw v7 │ │ .line 116 │ - .restart local v3 # "key":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ + .restart local v2 # "key":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ :cond_2 │ :try_start_1 │ - iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v8, v3}, Ljava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V │ + invoke-virtual {v7, v2}, Ljava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V │ │ goto :goto_1 │ │ .line 121 │ :cond_3 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ .line 122 │ - .local v2, "index":I │ - iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + .local v1, "index":I │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v8}, Ljava/util/ArrayDeque;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v7}, Ljava/util/ArrayDeque;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v7 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_2 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v8 │ + move-result v9 │ │ - if-eqz v8, :cond_4 │ + if-eqz v9, :cond_4 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ │ .line 123 │ .local v0, "gridKey":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ - invoke-direct {p0, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyX0(I)I │ + invoke-direct {p0, v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyX0(I)I │ │ - move-result v4 │ + move-result v3 │ │ .line 124 │ - .local v4, "keyX0":I │ - invoke-direct {p0, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyY0(I)I │ + .local v3, "keyX0":I │ + invoke-direct {p0, v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyY0(I)I │ │ - move-result v6 │ + move-result v5 │ │ .line 125 │ - .local v6, "keyY0":I │ - invoke-direct {p0, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyX1(I)I │ + .local v5, "keyY0":I │ + invoke-direct {p0, v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyX1(I)I │ │ - move-result v5 │ + move-result v4 │ │ .line 126 │ - .local v5, "keyX1":I │ - invoke-direct {p0, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyY1(I)I │ + .local v4, "keyX1":I │ + invoke-direct {p0, v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyY1(I)I │ │ - move-result v7 │ + move-result v6 │ │ .line 127 │ - .local v7, "keyY1":I │ - invoke-virtual {v0, v4, v6, v5, v7}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey;->updateCoordinates(IIII)V │ + .local v6, "keyY1":I │ + invoke-virtual {v0, v3, v5, v4, v6}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey;->updateCoordinates(IIII)V │ │ .line 128 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v1, v1, 0x1 │ │ .line 129 │ goto :goto_2 │ │ .line 130 │ .end local v0 # "gridKey":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard$GridKey; │ - .end local v4 # "keyX0":I │ - .end local v5 # "keyX1":I │ - .end local v6 # "keyY0":I │ - .end local v7 # "keyY1":I │ + .end local v3 # "keyX0":I │ + .end local v4 # "keyX1":I │ + .end local v5 # "keyY0":I │ + .end local v6 # "keyY1":I │ :cond_4 │ - monitor-exit v9 │ + monitor-exit v8 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_0 │ .end method │ │ .method private static getKeyByCode(Ljava/util/Collection;I)Lcom/android/inputmethod/keyboard/Key; │ @@ -372,70 +371,68 @@ │ .end annotation │ │ .prologue │ .line 148 │ .local p0, "keyboards":Ljava/util/Collection;, "Ljava/util/Collection;" │ invoke-interface {p0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_2 │ + if-eqz v3, :cond_2 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v1 │ │ - check-cast v3, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + check-cast v1, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ .line 149 │ - .local v3, "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ - invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getSortedKeys()Ljava/util/List; │ + .local v1, "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v0 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v0, Lcom/android/inputmethod/keyboard/Key; │ │ .line 150 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + .local v0, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v4 │ │ if-ne v4, p1, :cond_1 │ │ .line 155 │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .end local v3 # "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + .end local v0 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v1 # "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ :goto_0 │ - return-object v2 │ + return-object v0 │ │ :cond_2 │ - const/4 v2, 0x0 │ + const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static getKeyByOutputText(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/inputmethod/keyboard/Key; │ .locals 5 │ .param p1, "outputText" # Ljava/lang/String; │ @@ -453,74 +450,72 @@ │ .end annotation │ │ .prologue │ .line 160 │ .local p0, "keyboards":Ljava/util/Collection;, "Ljava/util/Collection;" │ invoke-interface {p0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_2 │ + if-eqz v3, :cond_2 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v1 │ │ - check-cast v3, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + check-cast v1, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ .line 161 │ - .local v3, "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ - invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getSortedKeys()Ljava/util/List; │ + .local v1, "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v0 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v0, Lcom/android/inputmethod/keyboard/Key; │ │ .line 162 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ + .local v0, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {p1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ .line 167 │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .end local v3 # "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + .end local v0 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v1 # "keyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ :goto_0 │ - return-object v2 │ + return-object v0 │ │ :cond_2 │ - const/4 v2, 0x0 │ + const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private getKeyX0(I)I │ .locals 2 │ .param p1, "index" # I │ @@ -610,154 +605,152 @@ │ │ add-int/2addr v1, v2 │ │ return v1 │ .end method │ │ .method private getTemplateKey(I)Lcom/android/inputmethod/keyboard/Key; │ - .locals 5 │ + .locals 4 │ .param p1, "code" # I │ │ .prologue │ .line 69 │ invoke-super {p0}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v0, Lcom/android/inputmethod/keyboard/Key; │ │ .line 70 │ - .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + .local v0, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v2 │ │ if-ne v2, p1, :cond_0 │ │ .line 71 │ - return-object v1 │ + return-object v0 │ │ .line 74 │ - .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v0 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_1 │ - new-instance v2, Ljava/lang/RuntimeException; │ + new-instance v1, Ljava/lang/RuntimeException; │ │ - 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, "Can\'t find template key: code=" │ + const-string v3, "Can\'t find template key: code=" │ │ - 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(I)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)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-direct {v2, v3}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ + invoke-direct {v1, v2}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ │ - throw v2 │ + throw v1 │ .end method │ │ .method private saveRecentKeys()V │ .locals 5 │ │ .prologue │ .line 134 │ - new-instance v3, Ljava/util/ArrayList; │ + new-instance v2, Ljava/util/ArrayList; │ │ - invoke-direct {v3}, Ljava/util/ArrayList;->()V │ + invoke-direct {v2}, Ljava/util/ArrayList;->()V │ │ .line 135 │ - .local v3, "keys":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ + .local v2, "keys":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mGridKeys:Ljava/util/ArrayDeque; │ │ - invoke-virtual {v4}, Ljava/util/ArrayDeque;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v3}, Ljava/util/ArrayDeque;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ │ .line 136 │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ + .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ │ move-result-object v4 │ │ if-eqz v4, :cond_0 │ │ .line 137 │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getOutputText()Ljava/lang/String; │ │ move-result-object v4 │ │ - invoke-virtual {v3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_0 │ │ .line 139 │ :cond_0 │ - invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ + invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v4 │ │ invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v4 │ │ - invoke-virtual {v3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_0 │ │ .line 142 │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_1 │ - invoke-static {v3}, Lcom/android/inputmethod/latin/utils/JsonUtils;->listToJsonStr(Ljava/util/List;)Ljava/lang/String; │ + invoke-static {v2}, Lcom/android/inputmethod/latin/utils/JsonUtils;->listToJsonStr(Ljava/util/List;)Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 143 │ - .local v1, "jsonStr":Ljava/lang/String; │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mPrefs:Landroid/content/SharedPreferences; │ + .local v0, "jsonStr":Ljava/lang/String; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mPrefs:Landroid/content/SharedPreferences; │ │ - invoke-static {v4, v1}, Lorg/smc/inputmethod/indic/settings/Settings;->writeEmojiRecentKeys(Landroid/content/SharedPreferences;Ljava/lang/String;)V │ + invoke-static {v3, v0}, Lorg/smc/inputmethod/indic/settings/Settings;->writeEmojiRecentKeys(Landroid/content/SharedPreferences;Ljava/lang/String;)V │ │ .line 144 │ return-void │ .end method │ │ │ # virtual methods │ @@ -992,121 +985,120 @@ │ ">;)V" │ } │ .end annotation │ │ .prologue │ .line 171 │ .local p1, "keyboards":Ljava/util/Collection;, "Ljava/util/Collection;" │ - iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mPrefs:Landroid/content/SharedPreferences; │ + iget-object v6, p0, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->mPrefs:Landroid/content/SharedPreferences; │ │ - invoke-static {v7}, Lorg/smc/inputmethod/indic/settings/Settings;->readEmojiRecentKeys(Landroid/content/SharedPreferences;)Ljava/lang/String; │ + invoke-static {v6}, Lorg/smc/inputmethod/indic/settings/Settings;->readEmojiRecentKeys(Landroid/content/SharedPreferences;)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ .line 172 │ - .local v6, "str":Ljava/lang/String; │ - invoke-static {v6}, Lcom/android/inputmethod/latin/utils/JsonUtils;->jsonStrToList(Ljava/lang/String;)Ljava/util/List; │ + .local v5, "str":Ljava/lang/String; │ + invoke-static {v5}, Lcom/android/inputmethod/latin/utils/JsonUtils;->jsonStrToList(Ljava/lang/String;)Ljava/util/List; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 173 │ - .local v3, "keys":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v2, "keys":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v6 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_2 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 175 │ - .local v4, "o":Ljava/lang/Object; │ - instance-of v7, v4, Ljava/lang/Integer; │ + .local v3, "o":Ljava/lang/Object; │ + instance-of v7, v3, Ljava/lang/Integer; │ │ if-eqz v7, :cond_0 │ │ .line 176 │ - check-cast v4, Ljava/lang/Integer; │ + check-cast v3, Ljava/lang/Integer; │ │ - .end local v4 # "o":Ljava/lang/Object; │ - invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I │ + .end local v3 # "o":Ljava/lang/Object; │ + invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I │ │ move-result v0 │ │ .line 177 │ .local v0, "code":I │ invoke-static {p1, v0}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyByCode(Ljava/util/Collection;I)Lcom/android/inputmethod/keyboard/Key; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 185 │ .end local v0 # "code":I │ - .local v2, "key":Lcom/android/inputmethod/keyboard/Key; │ + .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ :goto_1 │ - invoke-virtual {p0, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->addKeyLast(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-virtual {p0, v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->addKeyLast(Lcom/android/inputmethod/keyboard/Key;)V │ │ goto :goto_0 │ │ .line 178 │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .restart local v4 # "o":Ljava/lang/Object; │ + .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .restart local v3 # "o":Ljava/lang/Object; │ :cond_0 │ - instance-of v7, v4, Ljava/lang/String; │ + instance-of v7, v3, Ljava/lang/String; │ │ if-eqz v7, :cond_1 │ │ - move-object v5, v4 │ + move-object v4, v3 │ │ .line 179 │ - check-cast v5, Ljava/lang/String; │ + check-cast v4, Ljava/lang/String; │ │ .line 180 │ - .local v5, "outputText":Ljava/lang/String; │ - invoke-static {p1, v5}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyByOutputText(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/inputmethod/keyboard/Key; │ + .local v4, "outputText":Ljava/lang/String; │ + invoke-static {p1, v4}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->getKeyByOutputText(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/inputmethod/keyboard/Key; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 181 │ - .restart local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .restart local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ goto :goto_1 │ │ .line 182 │ - .end local v2 # "key":Lcom/android/inputmethod/keyboard/Key; │ - .end local v5 # "outputText":Ljava/lang/String; │ + .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v4 # "outputText":Ljava/lang/String; │ :cond_1 │ sget-object v7, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->TAG:Ljava/lang/String; │ │ new-instance v8, Ljava/lang/StringBuilder; │ │ invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ const-string v9, "Invalid object: " │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ - invoke-virtual {v8, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v8 │ │ invoke-static {v7, v8}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_0 │ │ .line 187 │ - .end local v4 # "o":Ljava/lang/Object; │ + .end local v3 # "o":Ljava/lang/Object; │ :cond_2 │ return-void │ .end method ├── smali/com/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties.smali │ @@ -21,14 +21,15 @@ │ │ .field final synthetic this$0:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ │ # direct methods │ .method public constructor (Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;II)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ .param p2, "categoryId" # I │ .param p3, "pageCount" # I │ │ .prologue │ .line 59 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->this$0:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; ├── smali/com/android/inputmethod/keyboard/emoji/EmojiCategory.smali │ @@ -376,14 +376,15 @@ │ const/4 v1, 0x4 │ │ invoke-direct {p0, v1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->addShownCategoryId(I)V │ │ .line 131 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ │ + .line 132 │ invoke-static {v1, v5}, Lorg/smc/inputmethod/indic/settings/Settings;->readLastShownEmojiCategoryId(Landroid/content/SharedPreferences;I)I │ │ move-result v1 │ │ iput v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCurrentCategoryId:I │ │ .line 137 │ @@ -398,27 +399,29 @@ │ .line 139 │ invoke-virtual {p0, v4, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getKeyboard(II)Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ move-result-object v1 │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ + .line 140 │ invoke-virtual {v2}, Ljava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->loadRecentKeys(Ljava/util/Collection;)V │ │ .line 141 │ return-void │ │ .line 134 │ :cond_1 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ │ + .line 135 │ invoke-static {v1, v6}, Lorg/smc/inputmethod/indic/settings/Settings;->readLastShownEmojiCategoryId(Landroid/content/SharedPreferences;I)I │ │ move-result v1 │ │ iput v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCurrentCategoryId:I │ │ goto :goto_1 │ @@ -433,14 +436,15 @@ │ const/4 v1, 0x0 │ │ invoke-virtual {p0, p1, v1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getKeyboard(II)Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ .line 146 │ new-instance v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ │ + .line 147 │ invoke-direct {p0, p1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryPageCount(I)I │ │ move-result v1 │ │ invoke-direct {v0, p0, p1, v1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->(Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;II)V │ │ .line 148 │ @@ -654,91 +658,90 @@ │ │ move-result v1 │ │ return v1 │ .end method │ │ .method public getCategoryIdAndPageIdFromPagePosition(I)Landroid/util/Pair; │ - .locals 7 │ + .locals 6 │ .param p1, "position" # I │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(I)", │ "Landroid/util/Pair", │ "<", │ "Ljava/lang/Integer;", │ "Ljava/lang/Integer;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 253 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ .line 254 │ - .local v2, "sum":I │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mShownCategories:Ljava/util/ArrayList; │ + .local v1, "sum":I │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mShownCategories: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 v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + check-cast v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ │ .line 255 │ - .local v1, "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ - move v3, v2 │ + .local v0, "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + move v2, v1 │ │ .line 256 │ - .local v3, "temp":I │ - iget v4, v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mPageCount:I │ + .local v2, "temp":I │ + iget v4, v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mPageCount:I │ │ - add-int/2addr v2, v4 │ + add-int/2addr v1, v4 │ │ .line 257 │ - if-le v2, p1, :cond_0 │ + if-le v1, p1, :cond_0 │ │ .line 258 │ - new-instance v4, Landroid/util/Pair; │ + new-instance v3, Landroid/util/Pair; │ │ - iget v5, v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mCategoryId:I │ + iget v4, v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mCategoryId:I │ │ - invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - sub-int v6, p1, v3 │ + sub-int v5, p1, v2 │ │ - invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-direct {v4, v5, v6}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V │ + invoke-direct {v3, v4, v5}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 261 │ - .end local v1 # "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ - .end local v3 # "temp":I │ + .end local v0 # "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + .end local v2 # "temp":I │ :goto_0 │ - return-object v4 │ + return-object v3 │ │ :cond_1 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public getCategoryName(II)Ljava/lang/String; │ .locals 2 │ .param p1, "categoryId" # I │ @@ -772,79 +775,78 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public getCategoryPageSize(I)I │ - .locals 5 │ + .locals 4 │ .param p1, "categoryId" # I │ │ .prologue │ .line 181 │ - iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mShownCategories:Ljava/util/ArrayList; │ + iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mShownCategories: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 v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + check-cast v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ │ .line 182 │ - .local v1, "prop":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ - iget v2, v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mCategoryId:I │ + .local v0, "prop":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + iget v2, v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mCategoryId:I │ │ if-ne v2, p1, :cond_0 │ │ .line 183 │ - iget v2, v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mPageCount:I │ + iget v1, v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mPageCount:I │ │ .line 188 │ - .end local v1 # "prop":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + .end local v0 # "prop":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ :goto_0 │ - return v2 │ + return v1 │ │ .line 186 │ :cond_1 │ - iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->TAG:Ljava/lang/String; │ + iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->TAG:Ljava/lang/String; │ │ - 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, "Invalid category id: " │ + const-string v3, "Invalid category id: " │ │ - 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(I)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)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-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 188 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public getCategoryTabIcon(I)I │ .locals 1 │ .param p1, "categoryId" # I │ @@ -889,227 +891,227 @@ │ │ move-result v0 │ │ return v0 │ .end method │ │ .method public getKeyboard(II)Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ - .locals 14 │ + .locals 11 │ .param p1, "categoryId" # I │ .param p2, "id" # I │ │ .prologue │ .line 279 │ - iget-object v11, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ + iget-object v8, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - monitor-enter v11 │ + monitor-enter v8 │ │ .line 280 │ :try_start_0 │ - invoke-static/range {p1 .. p2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryKeyboardMapKey(II)Ljava/lang/Long; │ + invoke-static {p1, p2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryKeyboardMapKey(II)Ljava/lang/Long; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 281 │ - .local v1, "categotyKeyboardMapKey":Ljava/lang/Long; │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ + .local v0, "categotyKeyboardMapKey":Ljava/lang/Long; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-virtual {v10, v1}, Ljava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z │ + invoke-virtual {v7, v0}, Ljava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z │ │ - move-result v10 │ + move-result v7 │ │ - if-eqz v10, :cond_0 │ + if-eqz v7, :cond_0 │ │ .line 282 │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-virtual {v10, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v0}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - check-cast v10, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + check-cast v7, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ - monitor-exit v11 │ + monitor-exit v8 │ │ .line 309 │ :goto_0 │ - return-object v10 │ + return-object v7 │ │ .line 285 │ :cond_0 │ if-nez p1, :cond_1 │ │ .line 286 │ - new-instance v4, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + new-instance v2, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ │ - iget-object v12, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mLayoutSet:Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ + iget-object v9, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mLayoutSet:Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ │ - const/16 v13, 0xa │ + const/16 v10, 0xa │ │ - invoke-virtual {v12, v13}, Lcom/android/inputmethod/keyboard/KeyboardLayoutSet;->getKeyboard(I)Lcom/android/inputmethod/keyboard/Keyboard; │ + .line 287 │ + invoke-virtual {v9, v10}, Lcom/android/inputmethod/keyboard/KeyboardLayoutSet;->getKeyboard(I)Lcom/android/inputmethod/keyboard/Keyboard; │ │ - move-result-object v12 │ + move-result-object v9 │ │ - iget v13, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mMaxPageKeyCount:I │ + iget v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mMaxPageKeyCount:I │ │ - invoke-direct {v4, v10, v12, v13, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->(Landroid/content/SharedPreferences;Lcom/android/inputmethod/keyboard/Keyboard;II)V │ + invoke-direct {v2, v7, v9, v10, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->(Landroid/content/SharedPreferences;Lcom/android/inputmethod/keyboard/Keyboard;II)V │ │ .line 289 │ - .local v4, "kbd":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ + .local v2, "kbd":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-virtual {v10, v1, v4}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v0, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 290 │ - monitor-exit v11 │ + monitor-exit v8 │ │ - move-object v10, v4 │ + move-object v7, v2 │ │ goto :goto_0 │ │ .line 293 │ - .end local v4 # "kbd":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + .end local v2 # "kbd":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ :cond_1 │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mLayoutSet:Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mLayoutSet:Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ │ - sget-object v12, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->sCategoryElementId:[I │ + sget-object v9, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->sCategoryElementId:[I │ │ - aget v12, v12, p1 │ + aget v9, v9, p1 │ │ - invoke-virtual {v10, v12}, Lcom/android/inputmethod/keyboard/KeyboardLayoutSet;->getKeyboard(I)Lcom/android/inputmethod/keyboard/Keyboard; │ + invoke-virtual {v7, v9}, Lcom/android/inputmethod/keyboard/KeyboardLayoutSet;->getKeyboard(I)Lcom/android/inputmethod/keyboard/Keyboard; │ │ - move-result-object v5 │ + move-result-object v3 │ │ - .line 294 │ - .local v5, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ - invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ + .line 295 │ + .local v3, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ + invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/Keyboard;->getSortedKeys()Ljava/util/List; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - iget v12, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mMaxPageKeyCount:I │ + iget v9, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mMaxPageKeyCount:I │ │ - invoke-static {v10, v12}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->sortKeysIntoPages(Ljava/util/List;I)[[Lcom/android/inputmethod/keyboard/Key; │ + .line 294 │ + invoke-static {v7, v9}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->sortKeysIntoPages(Ljava/util/List;I)[[Lcom/android/inputmethod/keyboard/Key; │ │ - move-result-object v8 │ + move-result-object v5 │ │ .line 296 │ - .local v8, "sortedKeys":[[Lcom/android/inputmethod/keyboard/Key; │ - const/4 v7, 0x0 │ + .local v5, "sortedKeys":[[Lcom/android/inputmethod/keyboard/Key; │ + const/4 v4, 0x0 │ │ - .local v7, "pageId":I │ + .local v4, "pageId":I │ :goto_1 │ - array-length v10, v8 │ + array-length v7, v5 │ │ - if-ge v7, v10, :cond_4 │ + if-ge v4, v7, :cond_4 │ │ .line 297 │ - new-instance v9, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + new-instance v6, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ │ - iget-object v12, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mLayoutSet:Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ + iget-object v9, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mLayoutSet:Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ │ - const/16 v13, 0xa │ + const/16 v10, 0xa │ │ - invoke-virtual {v12, v13}, Lcom/android/inputmethod/keyboard/KeyboardLayoutSet;->getKeyboard(I)Lcom/android/inputmethod/keyboard/Keyboard; │ + .line 298 │ + invoke-virtual {v9, v10}, Lcom/android/inputmethod/keyboard/KeyboardLayoutSet;->getKeyboard(I)Lcom/android/inputmethod/keyboard/Keyboard; │ │ - move-result-object v12 │ + move-result-object v9 │ │ - iget v13, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mMaxPageKeyCount:I │ + iget v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mMaxPageKeyCount:I │ │ - invoke-direct {v9, v10, v12, v13, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->(Landroid/content/SharedPreferences;Lcom/android/inputmethod/keyboard/Keyboard;II)V │ + invoke-direct {v6, v7, v9, v10, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->(Landroid/content/SharedPreferences;Lcom/android/inputmethod/keyboard/Keyboard;II)V │ │ .line 300 │ - .local v9, "tempKeyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ - aget-object v0, v8, v7 │ + .local v6, "tempKeyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + aget-object v9, v5, v4 │ │ - .local v0, "arr$":[Lcom/android/inputmethod/keyboard/Key; │ - array-length v6, v0 │ + array-length v10, v9 │ │ - .local v6, "len$":I │ - const/4 v3, 0x0 │ + const/4 v7, 0x0 │ │ - .local v3, "i$":I │ :goto_2 │ - if-ge v3, v6, :cond_2 │ + if-ge v7, v10, :cond_2 │ │ - aget-object v2, v0, v3 │ + aget-object v1, v9, v7 │ │ .line 301 │ - .local v2, "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ - if-nez v2, :cond_3 │ + .local v1, "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ + if-nez v1, :cond_3 │ │ .line 306 │ - .end local v2 # "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ + .end local v1 # "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ :cond_2 │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-static {p1, v7}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryKeyboardMapKey(II)Ljava/lang/Long; │ + .line 307 │ + invoke-static {p1, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryKeyboardMapKey(II)Ljava/lang/Long; │ │ - move-result-object v12 │ + move-result-object v9 │ │ - invoke-virtual {v10, v12, v9}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + .line 306 │ + invoke-virtual {v7, v9, v6}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 296 │ - add-int/lit8 v7, v7, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ .line 304 │ - .restart local v2 # "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ + .restart local v1 # "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ :cond_3 │ - invoke-virtual {v9, v2}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->addKeyLast(Lcom/android/inputmethod/keyboard/Key;)V │ + invoke-virtual {v6, v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->addKeyLast(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 300 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ goto :goto_2 │ │ .line 309 │ - .end local v0 # "arr$":[Lcom/android/inputmethod/keyboard/Key; │ - .end local v2 # "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ - .end local v3 # "i$":I │ - .end local v6 # "len$":I │ - .end local v9 # "tempKeyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + .end local v1 # "emojiKey":Lcom/android/inputmethod/keyboard/Key; │ + .end local v6 # "tempKeyboard":Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ :cond_4 │ - iget-object v10, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ + iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mCategoryKeyboardMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-virtual {v10, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v0}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - check-cast v10, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ + check-cast v7, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ - monitor-exit v11 │ + monitor-exit v8 │ │ goto :goto_0 │ │ .line 310 │ - .end local v1 # "categotyKeyboardMapKey":Ljava/lang/Long; │ - .end local v5 # "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ - .end local v7 # "pageId":I │ - .end local v8 # "sortedKeys":[[Lcom/android/inputmethod/keyboard/Key; │ + .end local v0 # "categotyKeyboardMapKey":Ljava/lang/Long; │ + .end local v3 # "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ + .end local v4 # "pageId":I │ + .end local v5 # "sortedKeys":[[Lcom/android/inputmethod/keyboard/Key; │ :catchall_0 │ - move-exception v10 │ + move-exception v7 │ │ - monitor-exit v11 │ + monitor-exit v8 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v10 │ + throw v7 │ .end method │ │ .method public getKeyboardFromPagePosition(I)Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ .locals 3 │ .param p1, "position" # I │ │ .prologue │ .line 266 │ + .line 267 │ invoke-virtual {p0, p1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryIdAndPageIdFromPagePosition(I)Landroid/util/Pair; │ │ move-result-object v0 │ │ .line 268 │ .local v0, "categoryAndId":Landroid/util/Pair;, "Landroid/util/Pair;" │ if-eqz v0, :cond_0 │ @@ -1149,14 +1151,15 @@ │ .locals 7 │ .param p1, "categoryId" # I │ │ .prologue │ .line 225 │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mPrefs:Landroid/content/SharedPreferences; │ │ + .line 226 │ invoke-static {v4, p1}, Lorg/smc/inputmethod/indic/settings/Settings;->readLastTypedEmojiCategoryPageId(Landroid/content/SharedPreferences;I)I │ │ move-result v1 │ │ .line 227 │ .local v1, "lastSavedCategoryPageId":I │ const/4 v3, 0x0 │ @@ -1348,51 +1351,50 @@ │ .end method │ │ .method public getTotalPageCountOfAllCategories()I │ .locals 4 │ │ .prologue │ .line 314 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ .line 315 │ - .local v2, "sum":I │ - iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mShownCategories:Ljava/util/ArrayList; │ + .local v1, "sum":I │ + iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->mShownCategories:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + check-cast v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ │ .line 316 │ - .local v1, "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ - iget v3, v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mPageCount:I │ + .local v0, "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + iget v3, v0, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mPageCount:I │ │ - add-int/2addr v2, v3 │ + add-int/2addr v1, v3 │ │ .line 317 │ goto :goto_0 │ │ .line 318 │ - .end local v1 # "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + .end local v0 # "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ :cond_0 │ - return v2 │ + return v1 │ .end method │ │ .method public isInRecentTab()Z │ .locals 1 │ │ .prologue │ .line 210 ├── smali/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.smali │ @@ -91,14 +91,15 @@ │ float-to-int v3, v3 │ │ iput v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->mKeyHorizontalGap:I │ │ .line 51 │ const v3, 0x7f08002c │ │ + .line 52 │ invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getDimension(I)F │ │ move-result v3 │ │ float-to-int v3, v3 │ │ iput v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->mEmojiCategoryPageIdViewHeight:I ├── smali/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$key:Lcom/android/inputmethod/keyboard/Key; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView;Lcom/android/inputmethod/keyboard/Key;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView; │ │ .prologue │ .line 166 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$2;->this$0:Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView; │ │ iput-object p2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$2;->val$key:Lcom/android/inputmethod/keyboard/Key; ├── smali/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$3.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$key:Lcom/android/inputmethod/keyboard/Key; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView;Lcom/android/inputmethod/keyboard/Key;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView; │ │ .prologue │ .line 196 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$3;->this$0:Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView; │ │ iput-object p2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$3;->val$key:Lcom/android/inputmethod/keyboard/Key; ├── smali/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.smali │ @@ -268,14 +268,15 @@ │ .line 106 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView;->mAccessibilityDelegate:Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityDelegate; │ │ .line 108 │ .local v0, "accessibilityDelegate":Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityDelegate;, "Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityDelegate;" │ if-eqz v0, :cond_0 │ │ + .line 109 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isTouchExplorationEnabled()Z │ │ move-result v1 ├── smali/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.smali │ @@ -120,14 +120,15 @@ │ invoke-virtual {v1, p1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->addKeyFirst(Lcom/android/inputmethod/keyboard/Key;)V │ │ .line 64 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mActiveKeyboardViews:Landroid/util/SparseArray; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 65 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getRecentTabId()I │ │ move-result v2 │ │ invoke-virtual {v1, v2}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -226,14 +227,15 @@ │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard;->flushPendingRecentKeys()V │ │ .line 51 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mActiveKeyboardViews:Landroid/util/SparseArray; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 52 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getRecentTabId()I │ │ move-result v2 │ │ invoke-virtual {v1, v2}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ @@ -293,14 +295,15 @@ │ │ invoke-virtual {v4, p2}, Landroid/util/SparseArray;->remove(I)V │ │ .line 116 │ :cond_0 │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 117 │ invoke-virtual {v4, p2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getKeyboardFromPagePosition(I)Lcom/android/inputmethod/keyboard/emoji/DynamicGridKeyboard; │ │ move-result-object v1 │ │ .line 118 │ .local v1, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ invoke-virtual {p1}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; │ @@ -383,14 +386,15 @@ │ │ .prologue │ .line 78 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mActiveKeyboardViews:Landroid/util/SparseArray; │ │ iget v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->mActivePosition:I │ │ + .line 79 │ invoke-virtual {v1, v2}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView; │ │ .line 80 ├── smali/com/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener;JJ)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener; │ .param p2, "x0" # J │ .param p4, "x1" # J │ │ .prologue │ .line 448 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener$1;->this$0:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener; ├── smali/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.smali │ @@ -391,26 +391,29 @@ │ .local v0, "newCategoryPageId":I │ if-nez p2, :cond_3 │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ + .line 431 │ invoke-virtual {v4}, Landroid/support/v4/view/ViewPager;->getCurrentItem()I │ │ move-result v4 │ │ + .line 430 │ invoke-virtual {v3, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryIdAndPageIdFromPagePosition(I)Landroid/util/Pair; │ │ move-result-object v3 │ │ iget-object v3, v3, Landroid/util/Pair;->first:Ljava/lang/Object; │ │ check-cast v3, Ljava/lang/Integer; │ │ + .line 431 │ invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I │ │ move-result v3 │ │ if-eq v3, p1, :cond_4 │ │ .line 432 │ @@ -490,26 +493,29 @@ │ │ .line 409 │ :cond_0 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 410 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCurrentCategoryPageSize()I │ │ move-result v1 │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 411 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCurrentCategoryPageId()I │ │ move-result v2 │ │ const/4 v3, 0x0 │ │ + .line 409 │ invoke-virtual {v0, v1, v2, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView;->setCategoryPageId(IIF)V │ │ goto :goto_0 │ .end method │ │ │ # virtual methods │ @@ -575,374 +581,374 @@ │ goto :goto_0 │ .end method │ │ .method protected onFinishInflate()V │ .locals 8 │ │ .prologue │ - const/4 v6, 0x0 │ + const/4 v7, 0x0 │ │ - const/16 v7, -0xe │ + const/16 v6, -0xe │ │ .line 166 │ - const v4, 0x7f100068 │ + const v3, 0x7f100068 │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/widget/TabHost; │ + check-cast v3, Landroid/widget/TabHost; │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ │ .line 167 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ │ - invoke-virtual {v4}, Landroid/widget/TabHost;->setup()V │ + invoke-virtual {v3}, Landroid/widget/TabHost;->setup()V │ │ .line 169 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ - invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getShownCategories()Ljava/util/ArrayList; │ + invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getShownCategories()Ljava/util/ArrayList; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + check-cast v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ │ .line 170 │ - .local v2, "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + .local v1, "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ │ - iget v5, v2, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mCategoryId:I │ + iget v5, v1, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties;->mCategoryId:I │ │ invoke-direct {p0, v4, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->addTab(Landroid/widget/TabHost;I)V │ │ goto :goto_0 │ │ .line 172 │ - .end local v2 # "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ + .end local v1 # "properties":Lcom/android/inputmethod/keyboard/emoji/EmojiCategory$CategoryProperties; │ :cond_0 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ │ - invoke-virtual {v4, p0}, Landroid/widget/TabHost;->setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V │ + invoke-virtual {v3, p0}, Landroid/widget/TabHost;->setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V │ │ .line 173 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mTabHost:Landroid/widget/TabHost; │ │ - invoke-virtual {v4}, Landroid/widget/TabHost;->getTabWidget()Landroid/widget/TabWidget; │ + invoke-virtual {v3}, Landroid/widget/TabHost;->getTabWidget()Landroid/widget/TabWidget; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 174 │ - .local v3, "tabWidget":Landroid/widget/TabWidget; │ - iget-boolean v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorEnabled:Z │ + .local v2, "tabWidget":Landroid/widget/TabWidget; │ + iget-boolean v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorEnabled:Z │ │ - invoke-virtual {v3, v4}, Landroid/widget/TabWidget;->setStripEnabled(Z)V │ + invoke-virtual {v2, v3}, Landroid/widget/TabWidget;->setStripEnabled(Z)V │ │ .line 175 │ - iget-boolean v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorEnabled:Z │ + iget-boolean v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorEnabled:Z │ │ - if-eqz v4, :cond_1 │ + if-eqz v3, :cond_1 │ │ .line 178 │ - iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorDrawableResId:I │ + iget v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorDrawableResId:I │ │ - invoke-virtual {v3, v4}, Landroid/widget/TabWidget;->setBackgroundResource(I)V │ + invoke-virtual {v2, v3}, Landroid/widget/TabWidget;->setBackgroundResource(I)V │ │ .line 179 │ - iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorBackgroundResId:I │ + iget v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorBackgroundResId:I │ │ - invoke-virtual {v3, v4}, Landroid/widget/TabWidget;->setLeftStripDrawable(I)V │ + invoke-virtual {v2, v3}, Landroid/widget/TabWidget;->setLeftStripDrawable(I)V │ │ .line 180 │ - iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorBackgroundResId:I │ + iget v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryIndicatorBackgroundResId:I │ │ - invoke-virtual {v3, v4}, Landroid/widget/TabWidget;->setRightStripDrawable(I)V │ + invoke-virtual {v2, v3}, Landroid/widget/TabWidget;->setRightStripDrawable(I)V │ │ .line 183 │ :cond_1 │ - new-instance v4, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ + new-instance v3, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ - invoke-direct {v4, v5, p0}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->(Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$OnKeyEventListener;)V │ + invoke-direct {v3, v4, p0}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->(Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;Lcom/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView$OnKeyEventListener;)V │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPalettesAdapter:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPalettesAdapter:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ │ .line 185 │ - const v4, 0x7f10006b │ + const v3, 0x7f10006b │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/support/v4/view/ViewPager; │ + check-cast v3, Landroid/support/v4/view/ViewPager; │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ .line 186 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPalettesAdapter:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPalettesAdapter:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ │ - invoke-virtual {v4, v5}, Landroid/support/v4/view/ViewPager;->setAdapter(Landroid/support/v4/view/PagerAdapter;)V │ + invoke-virtual {v3, v4}, Landroid/support/v4/view/ViewPager;->setAdapter(Landroid/support/v4/view/PagerAdapter;)V │ │ .line 187 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ - invoke-virtual {v4, p0}, Landroid/support/v4/view/ViewPager;->setOnPageChangeListener(Landroid/support/v4/view/ViewPager$OnPageChangeListener;)V │ + invoke-virtual {v3, p0}, Landroid/support/v4/view/ViewPager;->setOnPageChangeListener(Landroid/support/v4/view/ViewPager$OnPageChangeListener;)V │ │ .line 188 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ - invoke-virtual {v4, v6}, Landroid/support/v4/view/ViewPager;->setOffscreenPageLimit(I)V │ + invoke-virtual {v3, v7}, Landroid/support/v4/view/ViewPager;->setOffscreenPageLimit(I)V │ │ .line 189 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ - invoke-virtual {v4, v6}, Landroid/support/v4/view/ViewPager;->setPersistentDrawingCache(I)V │ + invoke-virtual {v3, v7}, Landroid/support/v4/view/ViewPager;->setPersistentDrawingCache(I)V │ │ .line 190 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPager:Landroid/support/v4/view/ViewPager; │ │ - invoke-virtual {v4, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setPagerProperties(Landroid/support/v4/view/ViewPager;)V │ + invoke-virtual {v3, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setPagerProperties(Landroid/support/v4/view/ViewPager;)V │ │ .line 192 │ - const v4, 0x7f10006c │ + const v3, 0x7f10006c │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + .line 193 │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ + check-cast v3, Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ │ .line 194 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ │ - iget v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryPageIndicatorColor:I │ + iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryPageIndicatorColor:I │ │ - iget v6, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryPageIndicatorBackground:I │ + iget v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mCategoryPageIndicatorBackground:I │ │ - invoke-virtual {v4, v5, v6}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView;->setColors(II)V │ + invoke-virtual {v3, v4, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView;->setColors(II)V │ │ .line 196 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ │ - invoke-virtual {v4, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setCategoryPageIdViewProperties(Landroid/view/View;)V │ + invoke-virtual {v3, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setCategoryPageIdViewProperties(Landroid/view/View;)V │ │ .line 198 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ - invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCurrentCategoryId()I │ + invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCurrentCategoryId()I │ │ - move-result v4 │ + move-result v3 │ │ - const/4 v5, 0x1 │ + const/4 v4, 0x1 │ │ - invoke-direct {p0, v4, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->setCurrentCategoryId(IZ)V │ + invoke-direct {p0, v3, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->setCurrentCategoryId(IZ)V │ │ .line 200 │ - const v4, 0x7f10006d │ + const v3, 0x7f10006d │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ move-result-object v0 │ │ check-cast v0, Landroid/widget/LinearLayout; │ │ .line 201 │ .local v0, "actionBar":Landroid/widget/LinearLayout; │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ │ - invoke-virtual {v4, v0}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setActionBarProperties(Landroid/widget/LinearLayout;)V │ + invoke-virtual {v3, v0}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setActionBarProperties(Landroid/widget/LinearLayout;)V │ │ .line 204 │ - const v4, 0x7f10006a │ + const v3, 0x7f10006a │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/widget/ImageButton; │ + check-cast v3, Landroid/widget/ImageButton; │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ │ .line 205 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ │ - iget v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mFunctionalKeyBackgroundId:I │ + iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mFunctionalKeyBackgroundId:I │ │ - invoke-virtual {v4, v5}, Landroid/widget/ImageButton;->setBackgroundResource(I)V │ + invoke-virtual {v3, v4}, Landroid/widget/ImageButton;->setBackgroundResource(I)V │ │ .line 206 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ │ - const/4 v5, -0x5 │ + const/4 v4, -0x5 │ │ - invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v4, v5}, Landroid/widget/ImageButton;->setTag(Ljava/lang/Object;)V │ + invoke-virtual {v3, v4}, Landroid/widget/ImageButton;->setTag(Ljava/lang/Object;)V │ │ .line 207 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKey:Landroid/widget/ImageButton; │ │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKeyOnTouchListener:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mDeleteKeyOnTouchListener:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView$DeleteKeyOnTouchListener; │ │ - invoke-virtual {v4, v5}, Landroid/widget/ImageButton;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ + invoke-virtual {v3, v4}, Landroid/widget/ImageButton;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ │ .line 216 │ - const v4, 0x7f10006e │ + const v3, 0x7f10006e │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/widget/TextView; │ + check-cast v3, Landroid/widget/TextView; │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ │ .line 217 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ │ - iget v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mFunctionalKeyBackgroundId:I │ + iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mFunctionalKeyBackgroundId:I │ │ - invoke-virtual {v4, v5}, Landroid/widget/TextView;->setBackgroundResource(I)V │ + invoke-virtual {v3, v4}, Landroid/widget/TextView;->setBackgroundResource(I)V │ │ .line 218 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ │ - invoke-static {v7}, 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 v4 │ │ - invoke-virtual {v4, v5}, Landroid/widget/TextView;->setTag(Ljava/lang/Object;)V │ + invoke-virtual {v3, v4}, Landroid/widget/TextView;->setTag(Ljava/lang/Object;)V │ │ .line 219 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ │ - invoke-virtual {v4, p0}, Landroid/widget/TextView;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ + invoke-virtual {v3, p0}, Landroid/widget/TextView;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ │ .line 220 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyLeft:Landroid/widget/TextView; │ │ - invoke-virtual {v4, p0}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ + invoke-virtual {v3, p0}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ │ .line 221 │ - const v4, 0x7f100071 │ + const v3, 0x7f100071 │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/widget/TextView; │ + check-cast v3, Landroid/widget/TextView; │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ │ .line 222 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ │ - iget v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mFunctionalKeyBackgroundId:I │ + iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mFunctionalKeyBackgroundId:I │ │ - invoke-virtual {v4, v5}, Landroid/widget/TextView;->setBackgroundResource(I)V │ + invoke-virtual {v3, v4}, Landroid/widget/TextView;->setBackgroundResource(I)V │ │ .line 223 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ │ - invoke-static {v7}, 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 v4 │ │ - invoke-virtual {v4, v5}, Landroid/widget/TextView;->setTag(Ljava/lang/Object;)V │ + invoke-virtual {v3, v4}, Landroid/widget/TextView;->setTag(Ljava/lang/Object;)V │ │ .line 224 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ │ - invoke-virtual {v4, p0}, Landroid/widget/TextView;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ + invoke-virtual {v3, p0}, Landroid/widget/TextView;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ │ .line 225 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mAlphabetKeyRight:Landroid/widget/TextView; │ │ - invoke-virtual {v4, p0}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ + invoke-virtual {v3, p0}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ │ .line 226 │ - const v4, 0x7f10006f │ + const v3, 0x7f10006f │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ │ .line 227 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ │ - iget v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebarBackgroundId:I │ + iget v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebarBackgroundId:I │ │ - invoke-virtual {v4, v5}, Landroid/view/View;->setBackgroundResource(I)V │ + invoke-virtual {v3, v4}, Landroid/view/View;->setBackgroundResource(I)V │ │ .line 228 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ │ - const/16 v5, 0x20 │ + const/16 v4, 0x20 │ │ - invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v4, v5}, Landroid/view/View;->setTag(Ljava/lang/Object;)V │ + invoke-virtual {v3, v4}, Landroid/view/View;->setTag(Ljava/lang/Object;)V │ │ .line 229 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ │ - invoke-virtual {v4, p0}, Landroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ + invoke-virtual {v3, p0}, Landroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V │ │ .line 230 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ │ - invoke-virtual {v4, p0}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ + invoke-virtual {v3, p0}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V │ │ .line 231 │ - iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ + iget-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiLayoutParams:Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams; │ │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebar:Landroid/view/View; │ │ - invoke-virtual {v4, v5}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setKeyProperties(Landroid/view/View;)V │ + invoke-virtual {v3, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiLayoutParams;->setKeyProperties(Landroid/view/View;)V │ │ .line 232 │ - const v4, 0x7f100070 │ + const v3, 0x7f100070 │ │ - invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ + invoke-virtual {p0, v3}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->findViewById(I)Landroid/view/View; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - iput-object v4, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebarIcon:Landroid/view/View; │ + iput-object v3, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mSpacebarIcon:Landroid/view/View; │ │ .line 233 │ return-void │ .end method │ │ .method protected onMeasure(II)V │ .locals 5 │ @@ -964,14 +970,15 @@ │ │ .line 144 │ .local v1, "res":Landroid/content/res/Resources; │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getDefaultKeyboardWidth(Landroid/content/res/Resources;)I │ │ move-result v3 │ │ + .line 145 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->getPaddingLeft()I │ │ move-result v4 │ │ add-int/2addr v3, v4 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->getPaddingRight()I │ @@ -984,20 +991,22 @@ │ .local v2, "width":I │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getDefaultKeyboardHeight(Landroid/content/res/Resources;)I │ │ move-result v3 │ │ const v4, 0x7f080020 │ │ + .line 147 │ invoke-virtual {v1, v4}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I │ │ move-result v4 │ │ add-int/2addr v3, v4 │ │ + .line 148 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->getPaddingTop()I │ │ move-result v4 │ │ add-int/2addr v3, v4 │ │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->getPaddingBottom()I │ @@ -1034,14 +1043,15 @@ │ iget-object v6, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiPalettesAdapter:Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter; │ │ invoke-virtual {v6}, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter;->onPageScrolled()V │ │ .line 271 │ iget-object v6, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 272 │ invoke-virtual {v6, p1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryIdAndPageIdFromPagePosition(I)Landroid/util/Pair; │ │ move-result-object v5 │ │ .line 273 │ .local v5, "newPos":Landroid/util/Pair;, "Landroid/util/Pair;" │ iget-object v6, v5, Landroid/util/Pair;->first:Ljava/lang/Object; │ @@ -1091,18 +1101,20 @@ │ .line 279 │ iget-object v7, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategoryPageIndicatorView:Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView; │ │ iget-object v6, v5, Landroid/util/Pair;->second:Ljava/lang/Object; │ │ check-cast v6, Ljava/lang/Integer; │ │ + .line 280 │ invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I │ │ move-result v6 │ │ + .line 279 │ invoke-virtual {v7, v4, v6, p2}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategoryPageIndicatorView;->setCategoryPageId(IIF)V │ │ .line 288 │ :cond_0 │ :goto_0 │ return-void │ │ @@ -1137,14 +1149,15 @@ │ .locals 3 │ .param p1, "position" # I │ │ .prologue │ .line 254 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/emoji/EmojiPalettesView;->mEmojiCategory:Lcom/android/inputmethod/keyboard/emoji/EmojiCategory; │ │ + .line 255 │ invoke-virtual {v1, p1}, Lcom/android/inputmethod/keyboard/emoji/EmojiCategory;->getCategoryIdAndPageIdFromPagePosition(I)Landroid/util/Pair; │ │ move-result-object v0 │ │ .line 256 │ .local v0, "newPos":Landroid/util/Pair;, "Landroid/util/Pair;" │ iget-object v1, v0, Landroid/util/Pair;->first:Ljava/lang/Object; ├── smali/com/android/inputmethod/keyboard/internal/BatchInputArbiter.smali │ @@ -129,18 +129,20 @@ │ │ move-result v0 │ │ .line 96 │ .local v0, "beforeLength":I │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->mRecognitionPoints:Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints; │ │ + .line 97 │ invoke-virtual {p0, p3, p4}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->getElapsedTimeSinceFirstDown(J)I │ │ move-result v3 │ │ + .line 96 │ invoke-virtual {v2, p1, p2, v3, p5}, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->addEventPoint(IIIZ)Z │ │ move-result v1 │ │ .line 98 │ .local v1, "onValidArea":Z │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->mRecognitionPoints:Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints; │ @@ -396,18 +398,20 @@ │ .param p1, "syntheticMoveEventTime" # J │ .param p3, "listener" # Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter$BatchInputArbiterListener; │ │ .prologue │ .line 132 │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->mRecognitionPoints:Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints; │ │ + .line 133 │ invoke-virtual {p0, p1, p2}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->getElapsedTimeSinceFirstDown(J)I │ │ move-result v1 │ │ + .line 132 │ invoke-virtual {v0, v1}, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->duplicateLastPointWith(I)V │ │ .line 134 │ invoke-virtual {p0, p1, p2, p3}, Lcom/android/inputmethod/keyboard/internal/BatchInputArbiter;->updateBatchInput(JLcom/android/inputmethod/keyboard/internal/BatchInputArbiter$BatchInputArbiterListener;)V │ │ .line 135 │ return-void ├── smali/com/android/inputmethod/keyboard/internal/BogusMoveEventDetector.smali │ @@ -274,27 +274,30 @@ │ │ .prologue │ .line 112 │ sget-boolean v0, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->sNeedsProximateBogusDownMoveUpEventHack:Z │ │ if-eqz v0, :cond_0 │ │ + .line 113 │ invoke-virtual {p0, p1, p2}, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->getDistanceFromDownEvent(II)I │ │ move-result v0 │ │ iget v1, p0, Lcom/android/inputmethod/keyboard/internal/BogusMoveEventDetector;->mRadiusThreshold:I │ │ if-ge v0, v1, :cond_0 │ │ const/4 v0, 0x1 │ │ + .line 112 │ :goto_0 │ return v0 │ │ + .line 113 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public onActualDownEvent(II)V ├── smali/com/android/inputmethod/keyboard/internal/CodesArrayParser.smali │ @@ -241,143 +241,137 @@ │ .locals 8 │ .param p0, "codesArraySpec" # Ljava/lang/String; │ │ .prologue │ .line 58 │ invoke-static {p0}, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->getLabelSpec(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v2 │ │ .line 59 │ - .local v4, "labelSpec":Ljava/lang/String; │ - new-instance v6, Ljava/lang/StringBuilder; │ + .local v2, "labelSpec":Ljava/lang/String; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ .line 60 │ - .local v6, "sb":Ljava/lang/StringBuilder; │ - sget-object v7, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->COMMA_REGEX:Ljava/lang/String; │ + .local v3, "sb":Ljava/lang/StringBuilder; │ + sget-object v4, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->COMMA_REGEX:Ljava/lang/String; │ │ - invoke-virtual {v4, v7}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v2, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v5 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v5, v0 │ + array-length v6, v5 │ │ - .local v5, "len$":I │ - const/4 v3, 0x0 │ + const/4 v4, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v5, :cond_0 │ + if-ge v4, v6, :cond_0 │ │ - aget-object v1, v0, v3 │ + aget-object v0, v5, v4 │ │ .line 61 │ - .local v1, "codeInHex":Ljava/lang/String; │ + .local v0, "codeInHex":Ljava/lang/String; │ const/16 v7, 0x10 │ │ - invoke-static {v1, v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I │ + invoke-static {v0, v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I │ │ - move-result v2 │ + move-result v1 │ │ .line 62 │ - .local v2, "codePoint":I │ - invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ + .local v1, "codePoint":I │ + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ │ .line 60 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ .line 64 │ - .end local v1 # "codeInHex":Ljava/lang/String; │ - .end local v2 # "codePoint":I │ + .end local v0 # "codeInHex":Ljava/lang/String; │ + .end local v1 # "codePoint":I │ :cond_0 │ - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ - return-object v7 │ + return-object v4 │ .end method │ │ .method public static parseOutputText(Ljava/lang/String;)Ljava/lang/String; │ .locals 8 │ .param p0, "codesArraySpec" # Ljava/lang/String; │ │ .prologue │ .line 96 │ invoke-static {p0}, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->getCodeSpec(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 97 │ - .local v3, "codeSpec":Ljava/lang/String; │ - const/16 v7, 0x2c │ + .local v2, "codeSpec":Ljava/lang/String; │ + const/16 v4, 0x2c │ │ - invoke-virtual {v3, v7}, Ljava/lang/String;->indexOf(I)I │ + invoke-virtual {v2, v4}, Ljava/lang/String;->indexOf(I)I │ │ - move-result v7 │ + move-result v4 │ │ - if-gez v7, :cond_0 │ + if-gez v4, :cond_0 │ │ .line 98 │ - const/4 v7, 0x0 │ + const/4 v4, 0x0 │ │ .line 105 │ :goto_0 │ - return-object v7 │ + return-object v4 │ │ .line 100 │ :cond_0 │ - new-instance v6, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ .line 101 │ - .local v6, "sb":Ljava/lang/StringBuilder; │ - sget-object v7, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->COMMA_REGEX:Ljava/lang/String; │ + .local v3, "sb":Ljava/lang/StringBuilder; │ + sget-object v4, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->COMMA_REGEX:Ljava/lang/String; │ │ - invoke-virtual {v3, v7}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v2, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v5 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v5, v0 │ + array-length v6, v5 │ │ - .local v5, "len$":I │ const/4 v4, 0x0 │ │ - .local v4, "i$":I │ :goto_1 │ - if-ge v4, v5, :cond_1 │ + if-ge v4, v6, :cond_1 │ │ - aget-object v1, v0, v4 │ + aget-object v0, v5, v4 │ │ .line 102 │ - .local v1, "codeInHex":Ljava/lang/String; │ + .local v0, "codeInHex":Ljava/lang/String; │ const/16 v7, 0x10 │ │ - invoke-static {v1, v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I │ + invoke-static {v0, v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I │ │ - move-result v2 │ + move-result v1 │ │ .line 103 │ - .local v2, "codePoint":I │ - invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ + .local v1, "codePoint":I │ + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ │ .line 101 │ add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ .line 105 │ - .end local v1 # "codeInHex":Ljava/lang/String; │ - .end local v2 # "codePoint":I │ + .end local v0 # "codeInHex":Ljava/lang/String; │ + .end local v1 # "codePoint":I │ :cond_1 │ - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/keyboard/internal/GestureEnabler.smali │ @@ -37,14 +37,15 @@ │ │ if-eqz v0, :cond_0 │ │ iget-boolean v0, p0, Lcom/android/inputmethod/keyboard/internal/GestureEnabler;->mGestureHandlingEnabledByUser:Z │ │ if-eqz v0, :cond_0 │ │ + .line 32 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isTouchExplorationEnabled()Z │ │ move-result v0 │ @@ -55,15 +56,15 @@ │ │ :goto_0 │ iput-boolean v0, p0, Lcom/android/inputmethod/keyboard/internal/GestureEnabler;->mShouldHandleGesture:Z │ │ .line 33 │ return-void │ │ - .line 29 │ + .line 32 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.smali │ @@ -86,14 +86,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview;->mSuggestedWords:Lorg/smc/inputmethod/indic/SuggestedWords; │ │ + .line 138 │ invoke-virtual {v2, v4}, Lorg/smc/inputmethod/indic/SuggestedWords;->getWord(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v2 │ @@ -113,18 +114,20 @@ │ │ .line 142 │ .local v0, "round":F │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview;->mGesturePreviewRectangle:Landroid/graphics/RectF; │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview;->mParams:Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview$GesturePreviewTextParams; │ │ + .line 143 │ invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview$GesturePreviewTextParams;->getBackgroundPaint()Landroid/graphics/Paint; │ │ move-result-object v3 │ │ + .line 142 │ invoke-virtual {p1, v2, v0, v0, v3}, Landroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V │ │ .line 144 │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview;->mSuggestedWords:Lorg/smc/inputmethod/indic/SuggestedWords; │ │ invoke-virtual {v2, v4}, Lorg/smc/inputmethod/indic/SuggestedWords;->getWord(I)Ljava/lang/String; │ │ @@ -306,14 +309,15 @@ │ │ add-float v1, v10, v11 │ │ .line 167 │ .local v1, "rectHeight":F │ iget-object v10, p0, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview;->mLastPointerCoords:[I │ │ + .line 168 │ invoke-static {v10}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->x([I)I │ │ move-result v10 │ │ int-to-float v10, v10 │ │ div-float v11, v2, v12 │ @@ -330,14 +334,15 @@ │ │ iget v11, v11, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview$GesturePreviewTextParams;->mDisplayWidth:I │ │ int-to-float v11, v11 │ │ sub-float/2addr v11, v2 │ │ + .line 167 │ invoke-static {v10, v11}, Ljava/lang/Math;->min(FF)F │ │ move-result v3 │ │ .line 170 │ .local v3, "rectX":F │ iget-object v10, p0, Lcom/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview;->mLastPointerCoords:[I ├── smali/com/android/inputmethod/keyboard/internal/GestureStrokeDrawingParams.smali │ @@ -56,18 +56,20 @@ │ │ .line 48 │ .local v0, "interpolationAngularDegree":I │ if-gtz v0, :cond_0 │ │ const-wide/high16 v2, 0x402e000000000000L # 15.0 │ │ + .line 49 │ invoke-static {v2, v3}, Ljava/lang/Math;->toRadians(D)D │ │ move-result-wide v2 │ │ + .line 50 │ :goto_0 │ iput-wide v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingParams;->mMaxInterpolationAngularThreshold:D │ │ .line 51 │ const/16 v1, 0x21 │ │ invoke-virtual {p1, v1, v4}, Landroid/content/res/TypedArray;->getDimension(IF)F │ @@ -88,17 +90,18 @@ │ move-result v1 │ │ iput v1, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingParams;->mMaxInterpolationSegments:I │ │ .line 57 │ return-void │ │ - .line 48 │ + .line 49 │ :cond_0 │ int-to-double v2, v0 │ │ + .line 50 │ invoke-static {v2, v3}, Ljava/lang/Math;->toRadians(D)D │ │ move-result-wide v2 │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints.smali │ @@ -690,18 +690,20 @@ │ │ move-object/from16 v0, v31 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeDrawingParams;->mMaxInterpolationSegments:I │ │ move/from16 v31, v0 │ │ + .line 153 │ invoke-static/range {v26 .. v27}, Ljava/lang/Math;->max(II)I │ │ move-result v32 │ │ + .line 152 │ invoke-static/range {v31 .. v32}, Ljava/lang/Math;->min(II)I │ │ move-result v25 │ │ .line 154 │ .local v25, "segments":I │ move-object/from16 v0, p2 ├── smali/com/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints.smali │ @@ -204,14 +204,15 @@ │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ const/4 v4, 0x1 │ │ + .line 213 │ invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ const/4 v4, 0x2 │ @@ -258,24 +259,26 @@ │ │ aput-object v5, v3, v4 │ │ const/4 v4, 0x6 │ │ iget-object v5, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->mEventTimes:Lcom/android/inputmethod/latin/utils/ResizableIntArray; │ │ + .line 214 │ invoke-virtual {v5, v0}, Lcom/android/inputmethod/latin/utils/ResizableIntArray;->get(I)I │ │ move-result v5 │ │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ + .line 212 │ invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 220 │ @@ -937,28 +940,30 @@ │ .line 159 │ .local v1, "deltaTime":I │ if-ltz v1, :cond_0 │ │ .line 162 │ iget-object v7, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->mXCoordinates:Lcom/android/inputmethod/latin/utils/ResizableIntArray; │ │ + .line 163 │ invoke-virtual {v7, v4}, Lcom/android/inputmethod/latin/utils/ResizableIntArray;->get(I)I │ │ move-result v7 │ │ iget-object v8, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->mYCoordinates:Lcom/android/inputmethod/latin/utils/ResizableIntArray; │ │ invoke-virtual {v8, v4}, Lcom/android/inputmethod/latin/utils/ResizableIntArray;->get(I)I │ │ move-result v8 │ │ iget v9, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->mDetectFastMoveX:I │ │ iget v10, p0, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->mDetectFastMoveY:I │ │ + .line 162 │ invoke-static {v7, v8, v9, v10}, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->getDistance(IIII)I │ │ move-result v0 │ │ .line 165 │ .local v0, "deltaDistance":I │ invoke-direct {p0, v1}, Lcom/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints;->getGestureDynamicDistanceThreshold(I)I ├── smali/com/android/inputmethod/keyboard/internal/GestureTrailDrawingParams.smali │ @@ -114,23 +114,25 @@ │ div-float/2addr v2, v5 │ │ iput v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureTrailDrawingParams;->mTrailShadowRatio:F │ │ .line 67 │ const/16 v2, 0x23 │ │ + .line 69 │ invoke-virtual {p1, v2, v3}, Landroid/content/res/TypedArray;->getInt(II)I │ │ move-result v2 │ │ iput v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureTrailDrawingParams;->mFadeoutStartDelay:I │ │ .line 71 │ const/16 v2, 0x24 │ │ + .line 73 │ invoke-virtual {p1, v2, v3}, Landroid/content/res/TypedArray;->getInt(II)I │ │ move-result v2 │ │ iput v2, p0, Lcom/android/inputmethod/keyboard/internal/GestureTrailDrawingParams;->mFadeoutDuration:I │ │ .line 75 ├── smali/com/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview.smali │ @@ -285,14 +285,15 @@ │ │ iget v1, p0, Lcom/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview;->mOffscreenWidth:I │ │ if-ne v0, v1, :cond_0 │ │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview;->mOffscreenBuffer:Landroid/graphics/Bitmap; │ │ + .line 84 │ invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I │ │ move-result v0 │ │ iget v1, p0, Lcom/android/inputmethod/keyboard/internal/GestureTrailsDrawingPreview;->mOffscreenHeight:I │ │ if-ne v0, v1, :cond_0 ├── smali/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer$1.smali │ @@ -21,14 +21,15 @@ │ │ .field final synthetic val$keyPreviewView:Lcom/android/inputmethod/keyboard/internal/KeyPreviewView; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;Lcom/android/inputmethod/keyboard/Key;Lcom/android/inputmethod/keyboard/internal/KeyPreviewView;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer; │ │ .prologue │ .line 171 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer$1;->this$0:Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer; │ │ iput-object p2, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer$1;->val$key:Lcom/android/inputmethod/keyboard/Key; ├── smali/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer$2.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic val$key:Lcom/android/inputmethod/keyboard/Key; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;Lcom/android/inputmethod/keyboard/Key;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer; │ │ .prologue │ .line 182 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer$2;->this$0:Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer; │ │ iput-object p2, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer$2;->val$key:Lcom/android/inputmethod/keyboard/Key; ├── smali/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer.smali │ @@ -155,14 +155,15 @@ │ │ sub-int v8, v4, v1 │ │ div-int/lit8 v8, v8, 0x2 │ │ sub-int/2addr v7, v8 │ │ + .line 129 │ invoke-static {p6}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->x([I)I │ │ move-result v8 │ │ add-int v5, v7, v8 │ │ .line 130 │ @@ -200,14 +201,15 @@ │ │ iget-object v8, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;->mParams:Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams; │ │ iget v8, v8, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->mPreviewOffset:I │ │ add-int/2addr v7, v8 │ │ + .line 144 │ invoke-static {p6}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->y([I)I │ │ move-result v8 │ │ add-int v6, v7, v8 │ │ .line 146 │ @@ -340,56 +342,55 @@ │ invoke-virtual {v0, v1}, Landroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V │ │ .line 177 │ return-object v0 │ .end method │ │ .method public dismissAllKeyPreviews()V │ - .locals 4 │ + .locals 3 │ │ .prologue │ .line 74 │ - new-instance v2, Ljava/util/HashSet; │ + new-instance v1, Ljava/util/HashSet; │ │ - iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;->mShowingKeyPreviewViews:Ljava/util/HashMap; │ + iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;->mShowingKeyPreviewViews:Ljava/util/HashMap; │ │ - invoke-virtual {v3}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ + invoke-virtual {v2}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-direct {v2, v3}, Ljava/util/HashSet;->(Ljava/util/Collection;)V │ + invoke-direct {v1, v2}, Ljava/util/HashSet;->(Ljava/util/Collection;)V │ │ - invoke-virtual {v2}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lcom/android/inputmethod/keyboard/Key; │ + check-cast v0, Lcom/android/inputmethod/keyboard/Key; │ │ .line 75 │ - .local v1, "key":Lcom/android/inputmethod/keyboard/Key; │ + .local v0, "key":Lcom/android/inputmethod/keyboard/Key; │ const/4 v2, 0x0 │ │ - invoke-virtual {p0, v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;->dismissKeyPreview(Lcom/android/inputmethod/keyboard/Key;Z)V │ + invoke-virtual {p0, v0, v2}, Lcom/android/inputmethod/keyboard/internal/KeyPreviewChoreographer;->dismissKeyPreview(Lcom/android/inputmethod/keyboard/Key;Z)V │ │ goto :goto_0 │ │ .line 77 │ - .end local v1 # "key":Lcom/android/inputmethod/keyboard/Key; │ + .end local v0 # "key":Lcom/android/inputmethod/keyboard/Key; │ :cond_0 │ return-void │ .end method │ │ .method public dismissKeyPreview(Lcom/android/inputmethod/keyboard/Key;Z)V │ .locals 4 │ .param p1, "key" # Lcom/android/inputmethod/keyboard/Key; ├── smali/com/android/inputmethod/keyboard/internal/KeyPreviewDrawParams.smali │ @@ -223,22 +223,23 @@ │ .end local v1 # "dismissAnimator":Landroid/animation/AnimatorSet; │ .end local v2 # "dismissDuration":I │ .end local v3 # "scaleXAnimator":Landroid/animation/ObjectAnimator; │ .end local v4 # "scaleYAnimator":Landroid/animation/ObjectAnimator; │ :goto_0 │ return-object v1 │ │ - .line 182 │ + .line 183 │ :cond_0 │ invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; │ │ move-result-object v5 │ │ iget v6, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->mDismissAnimatorResId:I │ │ + .line 182 │ invoke-static {v5, v6}, Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator; │ │ move-result-object v0 │ │ .line 184 │ .local v0, "animator":Landroid/animation/Animator; │ invoke-virtual {v0, p1}, Landroid/animation/Animator;->setTarget(Ljava/lang/Object;)V │ @@ -332,22 +333,23 @@ │ .line 166 │ .end local v1 # "scaleXAnimator":Landroid/animation/ObjectAnimator; │ .end local v2 # "scaleYAnimator":Landroid/animation/ObjectAnimator; │ .end local v3 # "showUpAnimator":Landroid/animation/AnimatorSet; │ :goto_0 │ return-object v3 │ │ - .line 162 │ + .line 163 │ :cond_0 │ invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; │ │ move-result-object v4 │ │ iget v5, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->mShowUpAnimatorResId:I │ │ + .line 162 │ invoke-static {v4, v5}, Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator; │ │ move-result-object v0 │ │ .line 164 │ .local v0, "animator":Landroid/animation/Animator; │ invoke-virtual {v0, p1}, Landroid/animation/Animator;->setTarget(Ljava/lang/Object;)V │ @@ -467,14 +469,15 @@ │ .local v0, "previewHeight":I │ invoke-virtual {p1}, Landroid/view/View;->getPaddingLeft()I │ │ move-result v2 │ │ sub-int v2, v1, v2 │ │ + .line 101 │ invoke-virtual {p1}, Landroid/view/View;->getPaddingRight()I │ │ move-result v3 │ │ sub-int/2addr v2, v3 │ │ iput v2, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->mVisibleWidth:I │ @@ -482,14 +485,15 @@ │ .line 102 │ invoke-virtual {p1}, Landroid/view/View;->getPaddingTop()I │ │ move-result v2 │ │ sub-int v2, v0, v2 │ │ + .line 103 │ invoke-virtual {p1}, Landroid/view/View;->getPaddingBottom()I │ │ move-result v3 │ │ sub-int/2addr v2, v3 │ │ iput v2, p0, Lcom/android/inputmethod/keyboard/internal/KeyPreviewDrawParams;->mVisibleHeight:I ├── smali/com/android/inputmethod/keyboard/internal/KeySpecParser.smali │ @@ -275,14 +275,15 @@ │ .local v1, "labelEnd":I │ invoke-static {p0, v1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getBeforeLabelEnd(Ljava/lang/String;I)Ljava/lang/String; │ │ move-result-object v2 │ │ const-string v3, "!icon/" │ │ + .line 239 │ invoke-virtual {v3}, Ljava/lang/String;->length()I │ │ move-result v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v0 ├── smali/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.smali │ @@ -61,59 +61,55 @@ │ │ # direct methods │ .method static constructor ()V │ .locals 6 │ │ .prologue │ .line 53 │ - const/16 v4, 0x14 │ + const/16 v1, 0x14 │ │ - new-array v4, v4, [I │ + new-array v1, v1, [I │ │ - fill-array-data v4, :array_0 │ + fill-array-data v1, :array_0 │ │ - sput-object v4, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->VISUAL_ATTRIBUTE_IDS:[I │ + sput-object v1, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->VISUAL_ATTRIBUTE_IDS:[I │ │ .line 75 │ - new-instance v4, Landroid/util/SparseIntArray; │ + new-instance v1, Landroid/util/SparseIntArray; │ │ - invoke-direct {v4}, Landroid/util/SparseIntArray;->()V │ + invoke-direct {v1}, Landroid/util/SparseIntArray;->()V │ │ - sput-object v4, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->sVisualAttributeIds:Landroid/util/SparseIntArray; │ + sput-object v1, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->sVisualAttributeIds:Landroid/util/SparseIntArray; │ │ .line 79 │ - sget-object v0, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->VISUAL_ATTRIBUTE_IDS:[I │ + sget-object v2, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->VISUAL_ATTRIBUTE_IDS:[I │ │ - .local v0, "arr$":[I │ - array-length v3, v0 │ + array-length v3, v2 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ - .local v2, "i$":I │ + .local v0, "attrId":I │ :goto_0 │ - if-ge v2, v3, :cond_0 │ + if-ge v1, v3, :cond_0 │ │ - aget v1, v0, v2 │ + aget v0, v2, v1 │ │ .line 80 │ - .local v1, "attrId":I │ sget-object v4, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->sVisualAttributeIds:Landroid/util/SparseIntArray; │ │ const/4 v5, 0x1 │ │ - invoke-virtual {v4, v1, v5}, Landroid/util/SparseIntArray;->put(II)V │ + invoke-virtual {v4, v0, v5}, Landroid/util/SparseIntArray;->put(II)V │ │ .line 79 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ .line 82 │ - .end local v1 # "attrId":I │ :cond_0 │ return-void │ │ .line 53 │ :array_0 │ .array-data 4 │ 0x10 │ @@ -160,19 +156,20 @@ │ .line 97 │ invoke-virtual {p1, v3}, Landroid/content/res/TypedArray;->hasValue(I)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 98 │ + .line 99 │ invoke-virtual {p1, v3, v1}, Landroid/content/res/TypedArray;->getInt(II)I │ │ move-result v0 │ │ + .line 98 │ invoke-static {v0}, Landroid/graphics/Typeface;->defaultFromStyle(I)Landroid/graphics/Typeface; │ │ move-result-object v0 │ │ iput-object v0, p0, Lcom/android/inputmethod/keyboard/internal/KeyVisualAttributes;->mTypeface:Landroid/graphics/Typeface; │ │ .line 104 ├── smali/com/android/inputmethod/keyboard/internal/KeyboardBuilder.smali │ @@ -188,31 +188,34 @@ │ │ new-array v1, v1, [Ljava/lang/Object; │ │ aput-object p2, v1, v3 │ │ const/4 v2, 0x1 │ │ + .line 868 │ invoke-virtual {p0, p1, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z │ │ move-result v3 │ │ invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ invoke-static {v0, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 867 │ :goto_0 │ return-object v0 │ │ + .line 868 │ :cond_0 │ const-string v0, "" │ │ goto :goto_0 │ .end method │ │ .method private endKey(Lcom/android/inputmethod/keyboard/Key;)V │ @@ -531,14 +534,15 @@ │ .line 743 │ invoke-virtual {p0, p1}, Landroid/content/res/TypedArray;->hasValue(I)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ + .line 744 │ invoke-virtual {p0, p1}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ const-string v1, "\\|" │ │ invoke-virtual {v0, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ @@ -550,17 +554,19 @@ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 743 │ :goto_0 │ return v0 │ │ + .line 744 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static matchTypedValue(Landroid/content/res/TypedArray;IILjava/lang/String;)Z │ @@ -720,15 +726,15 @@ │ .line 636 │ .local v8, "id":Lcom/android/inputmethod/keyboard/KeyboardId; │ if-nez v8, :cond_0 │ │ .line 637 │ const/16 v22, 0x1 │ │ - .line 724 │ + .line 722 │ :goto_0 │ return v22 │ │ .line 639 │ :cond_0 │ invoke-static/range {p1 .. p1}, Landroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet; │ │ @@ -757,18 +763,20 @@ │ const/16 v23, 0x0 │ │ :try_start_0 │ iget-object v0, v8, Lcom/android/inputmethod/keyboard/KeyboardId;->mSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ move-object/from16 v24, v0 │ │ + .line 644 │ invoke-static/range {v24 .. v24}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetName(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v24 │ │ + .line 642 │ move/from16 v0, v23 │ │ move-object/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchString(Landroid/content/res/TypedArray;ILjava/lang/String;)Z │ │ move-result v13 │ @@ -781,18 +789,20 @@ │ │ move/from16 v24, v0 │ │ iget v0, v8, Lcom/android/inputmethod/keyboard/KeyboardId;->mElementId:I │ │ move/from16 v25, v0 │ │ + .line 647 │ invoke-static/range {v25 .. v25}, Lcom/android/inputmethod/keyboard/KeyboardId;->elementIdToName(I)Ljava/lang/String; │ │ move-result-object v25 │ │ + .line 645 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ move-object/from16 v2, v25 │ │ invoke-static {v4, v0, v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchTypedValue(Landroid/content/res/TypedArray;IILjava/lang/String;)Z │ @@ -823,18 +833,20 @@ │ │ move-object/from16 v0, v25 │ │ iget v0, v0, Lcom/android/inputmethod/keyboard/internal/KeyboardParams;->mThemeId:I │ │ move/from16 v25, v0 │ │ + .line 650 │ invoke-static/range {v25 .. v25}, Lcom/android/inputmethod/keyboard/KeyboardTheme;->getKeyboardThemeName(I)Ljava/lang/String; │ │ move-result-object v25 │ │ + .line 648 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ move-object/from16 v2, v25 │ │ invoke-static {v4, v0, v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchTypedValue(Landroid/content/res/TypedArray;IILjava/lang/String;)Z │ @@ -849,68 +861,76 @@ │ │ move/from16 v24, v0 │ │ iget v0, v8, Lcom/android/inputmethod/keyboard/KeyboardId;->mMode:I │ │ move/from16 v25, v0 │ │ + .line 652 │ invoke-static/range {v25 .. v25}, Lcom/android/inputmethod/keyboard/KeyboardId;->modeName(I)Ljava/lang/String; │ │ move-result-object v25 │ │ + .line 651 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ move-object/from16 v2, v25 │ │ invoke-static {v4, v0, v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchTypedValue(Landroid/content/res/TypedArray;IILjava/lang/String;)Z │ │ move-result v18 │ │ .line 653 │ .local v18, "modeMatched":Z │ const/16 v23, 0x4 │ │ + .line 654 │ invoke-virtual {v8}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigateNext()Z │ │ move-result v24 │ │ + .line 653 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchBoolean(Landroid/content/res/TypedArray;IZ)Z │ │ move-result v19 │ │ .line 655 │ .local v19, "navigateNextMatched":Z │ const/16 v23, 0x5 │ │ + .line 656 │ invoke-virtual {v8}, Lcom/android/inputmethod/keyboard/KeyboardId;->navigatePrevious()Z │ │ move-result v24 │ │ + .line 655 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchBoolean(Landroid/content/res/TypedArray;IZ)Z │ │ move-result v20 │ │ .line 657 │ .local v20, "navigatePreviousMatched":Z │ const/16 v23, 0x6 │ │ + .line 658 │ invoke-virtual {v8}, Lcom/android/inputmethod/keyboard/KeyboardId;->passwordInput()Z │ │ move-result v24 │ │ + .line 657 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchBoolean(Landroid/content/res/TypedArray;IZ)Z │ │ move-result v21 │ @@ -963,34 +983,38 @@ │ │ move-result v16 │ │ .line 666 │ .local v16, "languageSwitchKeyEnabledMatched":Z │ const/16 v23, 0xa │ │ + .line 667 │ invoke-virtual {v8}, Lcom/android/inputmethod/keyboard/KeyboardId;->isMultiLine()Z │ │ move-result v24 │ │ + .line 666 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchBoolean(Landroid/content/res/TypedArray;IZ)Z │ │ move-result v11 │ │ .line 668 │ .local v11, "isMultiLineMatched":Z │ const/16 v23, 0xb │ │ + .line 669 │ invoke-virtual {v8}, Lcom/android/inputmethod/keyboard/KeyboardId;->imeAction()I │ │ move-result v24 │ │ + .line 668 │ move/from16 v0, v23 │ │ move/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchInteger(Landroid/content/res/TypedArray;II)Z │ │ move-result v9 │ @@ -1023,18 +1047,20 @@ │ .local v10, "isIconDefinedMatched":Z │ const/16 v23, 0xd │ │ iget-object v0, v8, Lcom/android/inputmethod/keyboard/KeyboardId;->mLocale:Ljava/util/Locale; │ │ move-object/from16 v24, v0 │ │ + .line 673 │ invoke-virtual/range {v24 .. v24}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v24 │ │ + .line 672 │ move/from16 v0, v23 │ │ move-object/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchString(Landroid/content/res/TypedArray;ILjava/lang/String;)Z │ │ move-result v17 │ @@ -1043,18 +1069,20 @@ │ .local v17, "localeCodeMatched":Z │ const/16 v23, 0xe │ │ iget-object v0, v8, Lcom/android/inputmethod/keyboard/KeyboardId;->mLocale:Ljava/util/Locale; │ │ move-object/from16 v24, v0 │ │ + .line 675 │ invoke-virtual/range {v24 .. v24}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ │ move-result-object v24 │ │ + .line 674 │ move/from16 v0, v23 │ │ move-object/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchString(Landroid/content/res/TypedArray;ILjava/lang/String;)Z │ │ move-result v15 │ @@ -1063,18 +1091,20 @@ │ .local v15, "languageCodeMatched":Z │ const/16 v23, 0xf │ │ iget-object v0, v8, Lcom/android/inputmethod/keyboard/KeyboardId;->mLocale:Ljava/util/Locale; │ │ move-object/from16 v24, v0 │ │ + .line 677 │ invoke-virtual/range {v24 .. v24}, Ljava/util/Locale;->getCountry()Ljava/lang/String; │ │ move-result-object v24 │ │ + .line 676 │ move/from16 v0, v23 │ │ move-object/from16 v1, v24 │ │ invoke-static {v4, v0, v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->matchString(Landroid/content/res/TypedArray;ILjava/lang/String;)Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ @@ -1240,20 +1270,22 @@ │ │ .line 398 │ .local v22, "gridRows":Lcom/android/inputmethod/keyboard/internal/KeyboardRow; │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->mResources:Landroid/content/res/Resources; │ │ + .line 399 │ invoke-static/range {p1 .. p1}, Landroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet; │ │ move-result-object v7 │ │ sget-object v14, Lorg/smc/inputmethod/indic/R$styleable;->Keyboard_GridRows:[I │ │ + .line 398 │ invoke-virtual {v4, v7, v14}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; │ │ move-result-object v21 │ │ .line 400 │ .local v21, "gridRowAttr":Landroid/content/res/TypedArray; │ const/4 v4, 0x0 │ @@ -1468,15 +1500,15 @@ │ │ .line 434 │ .local v5, "code":I │ invoke-static/range {v18 .. v18}, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->parseOutputText(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 435 │ + .line 436 │ .local v6, "outputText":Ljava/lang/String; │ invoke-static/range {v18 .. v18}, Lcom/android/inputmethod/keyboard/internal/CodesArrayParser;->getMinSupportSdkVersion(Ljava/lang/String;)I │ │ move-result v28 │ │ .line 445 │ .end local v18 # "codeArraySpec":Ljava/lang/String; │ @@ -1871,20 +1903,22 @@ │ :goto_0 │ return-void │ │ .line 474 │ :cond_0 │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->mResources:Landroid/content/res/Resources; │ │ + .line 475 │ invoke-static {p1}, Landroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet; │ │ move-result-object v5 │ │ sget-object v6, Lorg/smc/inputmethod/indic/R$styleable;->Keyboard_Key:[I │ │ + .line 474 │ invoke-virtual {v4, v5, v6}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; │ │ move-result-object v2 │ │ .line 476 │ .local v2, "keyAttr":Landroid/content/res/TypedArray; │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->mParams:Lcom/android/inputmethod/keyboard/internal/KeyboardParams; │ @@ -2821,14 +2855,15 @@ │ invoke-direct {v2, v3, v4, p1, v5}, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->(Landroid/content/res/Resources;Lcom/android/inputmethod/keyboard/internal/KeyboardParams;Lorg/xmlpull/v1/XmlPullParser;I)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ .line 348 │ invoke-virtual {v1}, Landroid/content/res/TypedArray;->recycle()V │ │ + .line 346 │ return-object v2 │ .end method │ │ .method private parseRowContent(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/inputmethod/keyboard/internal/KeyboardRow;Z)V │ .locals 4 │ .param p1, "parser" # Lorg/xmlpull/v1/XmlPullParser; │ .param p2, "row" # Lcom/android/inputmethod/keyboard/internal/KeyboardRow; │ @@ -3052,20 +3087,22 @@ │ :goto_0 │ return-void │ │ .line 498 │ :cond_0 │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->mResources:Landroid/content/res/Resources; │ │ + .line 499 │ invoke-static {p1}, Landroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet; │ │ move-result-object v4 │ │ sget-object v5, Lorg/smc/inputmethod/indic/R$styleable;->Keyboard_Key:[I │ │ + .line 498 │ invoke-virtual {v3, v4, v5}, Landroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; │ │ move-result-object v0 │ │ .line 500 │ .local v0, "keyAttr":Landroid/content/res/TypedArray; │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardBuilder;->mParams:Lcom/android/inputmethod/keyboard/internal/KeyboardParams; ├── smali/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.smali │ @@ -128,94 +128,101 @@ │ │ const-string v5, "undefined" │ │ aput-object v5, v4, v6 │ │ const/4 v5, 0x1 │ │ + .line 65 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x2 │ │ const-string v6, "shift_key" │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x3 │ │ + .line 66 │ invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x4 │ │ const-string v6, "delete_key" │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x5 │ │ + .line 67 │ invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x6 │ │ const-string v6, "settings_key" │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x7 │ │ + .line 68 │ invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x8 │ │ const-string v6, "space_key" │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x9 │ │ + .line 69 │ invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const-string v5, "enter_key" │ │ aput-object v5, v4, v7 │ │ const/16 v5, 0xe │ │ + .line 70 │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ │ aput-object v5, v4, v8 │ │ const-string v5, "go_key" │ │ aput-object v5, v4, v9 │ │ const/16 v5, 0xf │ │ + .line 71 │ invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v5 │ │ aput-object v5, v4, v10 │ │ const/16 v5, 0xe │ @@ -224,14 +231,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0xf │ │ const/16 v6, 0x10 │ │ + .line 72 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x10 │ @@ -240,14 +248,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x11 │ │ const/16 v6, 0x11 │ │ + .line 73 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x12 │ @@ -256,14 +265,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x13 │ │ const/16 v6, 0x12 │ │ + .line 74 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x14 │ @@ -272,14 +282,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x15 │ │ const/16 v6, 0x13 │ │ + .line 75 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x16 │ @@ -288,14 +299,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x17 │ │ const/16 v6, 0x14 │ │ + .line 76 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x18 │ @@ -304,14 +316,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x19 │ │ const/16 v6, 0x15 │ │ + .line 77 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x1a │ @@ -320,14 +333,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x1b │ │ const/16 v6, 0x16 │ │ + .line 78 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x1c │ @@ -336,14 +350,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x1d │ │ const/16 v6, 0x17 │ │ + .line 79 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x1e │ @@ -352,14 +367,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x1f │ │ const/16 v6, 0x18 │ │ + .line 80 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x20 │ @@ -368,14 +384,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x21 │ │ const/16 v6, 0x19 │ │ + .line 81 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x22 │ @@ -384,14 +401,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x23 │ │ const/16 v6, 0x1a │ │ + .line 82 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x24 │ @@ -400,14 +418,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x25 │ │ const/16 v6, 0x1b │ │ + .line 83 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x26 │ @@ -416,14 +435,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x27 │ │ const/16 v6, 0x1c │ │ + .line 84 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x28 │ @@ -432,14 +452,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x29 │ │ const/16 v6, 0x1e │ │ + .line 85 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x2a │ @@ -448,14 +469,15 @@ │ │ aput-object v6, v4, v5 │ │ const/16 v5, 0x2b │ │ const/16 v6, 0x1f │ │ + .line 86 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ sput-object v4, Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet;->NAMES_AND_ATTR_IDS:[Ljava/lang/Object; │ @@ -931,14 +953,15 @@ │ │ const-string v8, "Drawable resource for icon #" │ │ invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v7 │ │ + .line 120 │ invoke-virtual {p1}, Landroid/content/res/TypedArray;->getResources()Landroid/content/res/Resources; │ │ move-result-object v8 │ │ invoke-virtual {v8, v0}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String; │ │ move-result-object v8 │ @@ -953,14 +976,15 @@ │ │ move-result-object v7 │ │ invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v7 │ │ + .line 119 │ invoke-static {v6, v7}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_1 │ │ .line 124 │ .end local v0 # "attrId":I │ .end local v1 # "e":Landroid/content/res/Resources$NotFoundException; ├── smali/com/android/inputmethod/keyboard/internal/KeyboardRow.smali │ @@ -243,18 +243,20 @@ │ │ iget v2, v2, Lcom/android/inputmethod/keyboard/internal/KeyboardParams;->mBaseWidth:I │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->mParams:Lcom/android/inputmethod/keyboard/internal/KeyboardParams; │ │ iget v3, v3, Lcom/android/inputmethod/keyboard/internal/KeyboardParams;->mBaseWidth:I │ │ + .line 185 │ invoke-virtual {p0}, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->getDefaultKeyWidth()F │ │ move-result v4 │ │ + .line 184 │ invoke-virtual {p1, v5, v2, v3, v4}, Landroid/content/res/TypedArray;->getFraction(IIIF)F │ │ move-result v2 │ │ goto :goto_0 │ │ .line 181 │ @@ -409,14 +411,15 @@ │ │ .prologue │ .line 120 │ new-instance v0, Lcom/android/inputmethod/keyboard/internal/KeyboardRow$RowAttributes; │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->mRowAttributesStack:Ljava/util/ArrayDeque; │ │ + .line 121 │ invoke-virtual {v1}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lcom/android/inputmethod/keyboard/internal/KeyboardRow$RowAttributes; │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardRow;->mParams:Lcom/android/inputmethod/keyboard/internal/KeyboardParams; ├── smali/com/android/inputmethod/keyboard/internal/KeyboardState.smali │ @@ -496,14 +496,15 @@ │ │ move-result v1 │ │ if-nez v1, :cond_8 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mShiftKeyState:Lcom/android/inputmethod/keyboard/internal/ShiftKeyState; │ │ + .line 562 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/ShiftKeyState;->isPressing()Z │ │ move-result v1 │ │ if-nez v1, :cond_7 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mShiftKeyState:Lcom/android/inputmethod/keyboard/internal/ShiftKeyState; │ @@ -544,14 +545,15 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_a │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mShiftKeyState:Lcom/android/inputmethod/keyboard/internal/ShiftKeyState; │ │ + .line 569 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/ShiftKeyState;->isPressingOnShifted()Z │ │ move-result v1 │ │ if-eqz v1, :cond_a │ │ if-nez p1, :cond_a │ @@ -572,14 +574,15 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mShiftKeyState:Lcom/android/inputmethod/keyboard/internal/ShiftKeyState; │ │ + .line 574 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/ShiftKeyState;->isPressing()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ if-nez p1, :cond_0 │ @@ -901,14 +904,15 @@ │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mAlphabetShiftState:Lcom/android/inputmethod/keyboard/internal/AlphabetShiftState; │ │ + .line 234 │ invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/internal/AlphabetShiftState;->isShiftLockShifted()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ .line 235 │ @@ -1786,14 +1790,15 @@ │ │ move-result v1 │ │ if-nez v1, :cond_4 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mAlphabetShiftState:Lcom/android/inputmethod/keyboard/internal/AlphabetShiftState; │ │ + .line 376 │ invoke-virtual {v1}, Lcom/android/inputmethod/keyboard/internal/AlphabetShiftState;->isManualShifted()Z │ │ move-result v1 │ │ if-eqz v1, :cond_5 │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mShiftKeyState:Lcom/android/inputmethod/keyboard/internal/ShiftKeyState; │ @@ -1815,15 +1820,15 @@ │ .line 378 │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mSwitchActions:Lcom/android/inputmethod/keyboard/internal/KeyboardState$SwitchActions; │ │ invoke-interface {v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardState$SwitchActions;->setAlphabetKeyboard()V │ │ goto :goto_0 │ │ - .line 375 │ + .line 376 │ .end local v0 # "needsToResetAutoCaps":Z │ :cond_5 │ const/4 v0, 0x0 │ │ goto :goto_1 │ .end method │ │ @@ -1943,14 +1948,15 @@ │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ const/4 v1, 0x2 │ │ + .line 147 │ :cond_0 │ :goto_0 │ iput v1, v0, Lcom/android/inputmethod/keyboard/internal/KeyboardState$SavedKeyboardState;->mShiftMode:I │ │ .line 152 │ :goto_1 │ iput-boolean v2, v0, Lcom/android/inputmethod/keyboard/internal/KeyboardState$SavedKeyboardState;->mIsValid:Z │ @@ -1958,14 +1964,15 @@ │ .line 156 │ return-void │ │ .line 146 │ :cond_1 │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mAlphabetShiftState:Lcom/android/inputmethod/keyboard/internal/AlphabetShiftState; │ │ + .line 147 │ invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/internal/AlphabetShiftState;->isShiftedOrShiftLocked()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ move v1, v2 │ @@ -2065,14 +2072,15 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ iget v1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mSwitchState:I │ │ + .line 696 │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->switchStateToString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ @@ -2083,14 +2091,15 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 692 │ return-object v0 │ │ :cond_0 │ iget-boolean v0, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardState;->mIsSymbolShifted:Z │ │ if-eqz v0, :cond_1 ├── smali/com/android/inputmethod/keyboard/internal/KeyboardTextsSet$1.smali │ @@ -30,14 +30,15 @@ │ │ .field final synthetic val$resourcePackageName:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet;Landroid/content/res/Resources;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet; │ │ .prologue │ .line 47 │ iput-object p1, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet$1;->this$0:Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet; │ │ iput-object p2, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet$1;->val$res:Landroid/content/res/Resources; ├── smali/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.smali │ @@ -206,63 +206,58 @@ │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ .method loadStringResourcesInternal(Landroid/content/res/Resources;[Ljava/lang/String;Ljava/lang/String;)V │ - .locals 7 │ + .locals 6 │ .param p1, "res" # Landroid/content/res/Resources; │ .param p2, "resourceNames" # [Ljava/lang/String; │ .param p3, "resourcePackageName" # Ljava/lang/String; │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ .line 62 │ - move-object v0, p2 │ - │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v2, v0 │ + array-length v3, p2 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v2, v3, :cond_0 │ │ - aget-object v4, v0, v1 │ + aget-object v1, p2, v2 │ │ .line 63 │ - .local v4, "resName":Ljava/lang/String; │ - const-string v5, "string" │ + .local v1, "resName":Ljava/lang/String; │ + const-string v4, "string" │ │ - invoke-virtual {p1, v4, v5, p3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I │ + invoke-virtual {p1, v1, v4, p3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I │ │ - move-result v3 │ + move-result v0 │ │ .line 64 │ - .local v3, "resId":I │ - iget-object v5, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet;->mResourceNameToTextsMap:Ljava/util/HashMap; │ + .local v0, "resId":I │ + iget-object v4, p0, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet;->mResourceNameToTextsMap:Ljava/util/HashMap; │ │ - invoke-virtual {p1, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ + invoke-virtual {p1, v0}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v5, v4, v6}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v4, v1, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 62 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 66 │ - .end local v3 # "resId":I │ - .end local v4 # "resName":Ljava/lang/String; │ + .end local v0 # "resId":I │ + .end local v1 # "resName":Ljava/lang/String; │ :cond_0 │ return-void │ .end method │ │ .method public resolveTextReference(Ljava/lang/String;)Ljava/lang/String; │ .locals 12 │ .param p1, "rawText" # Ljava/lang/String; │ @@ -530,26 +525,28 @@ │ │ invoke-direct {v0, p0, v2, v3}, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet$1;->(Lcom/android/inputmethod/keyboard/internal/KeyboardTextsSet;Landroid/content/res/Resources;Ljava/lang/String;)V │ │ .line 55 │ .local v0, "job":Lcom/android/inputmethod/latin/utils/RunInLocale;, "Lcom/android/inputmethod/latin/utils/RunInLocale;" │ const-string v4, "en_US" │ │ + .line 56 │ invoke-virtual {p1}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ const/4 p1, 0x0 │ │ + .line 55 │ .end local p1 # "locale":Ljava/util/Locale; │ :cond_0 │ invoke-virtual {v0, v2, p1}, Lcom/android/inputmethod/latin/utils/RunInLocale;->runInLocale(Landroid/content/res/Resources;Ljava/util/Locale;)Ljava/lang/Object; │ │ .line 57 │ return-void │ .end method ├── smali/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.smali │ @@ -4284,14 +4284,15 @@ │ │ invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ sget-object v3, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsTable;->sTextsTableToLocaleMap:Ljava/util/HashMap; │ │ + .line 56 │ invoke-virtual {v3, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ @@ -4386,14 +4387,15 @@ │ │ invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ sget-object v3, Lcom/android/inputmethod/keyboard/internal/KeyboardTextsTable;->sTextsTableToLocaleMap:Ljava/util/HashMap; │ │ + .line 69 │ invoke-virtual {v3, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; ├── smali/com/android/inputmethod/keyboard/internal/MatrixUtils.smali │ @@ -38,15 +38,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 30 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 32 │ return-void │ .end method │ │ .method static synthetic access$000()Ljava/lang/String; │ .locals 1 │ │ .prologue ├── smali/com/android/inputmethod/keyboard/internal/MoreKeySpec.smali │ @@ -29,14 +29,15 @@ │ .method static constructor ()V │ .locals 1 │ │ .prologue │ .line 118 │ const/16 v0, 0x25 │ │ + .line 119 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->newSingleCodePointString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->ADDITIONAL_MORE_KEY_MARKER:Ljava/lang/String; │ │ .line 174 │ @@ -71,31 +72,33 @@ │ │ const-string v2, "Empty more key spec" │ │ invoke-direct {v1, v2}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser$KeySpecParserError;->(Ljava/lang/String;)V │ │ throw v1 │ │ - .line 54 │ + .line 55 │ :cond_0 │ invoke-static {p1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getLabel(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 54 │ invoke-static {v1, p2, p3}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfStringForLocale(Ljava/lang/String;ZLjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v1 │ │ iput-object v1, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mLabel:Ljava/lang/String; │ │ - .line 56 │ + .line 57 │ invoke-static {p1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getCode(Ljava/lang/String;)I │ │ move-result v1 │ │ + .line 56 │ invoke-static {v1, p2, p3}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfCodeForLocale(IZLjava/util/Locale;)I │ │ move-result v0 │ │ .line 58 │ .local v0, "code":I │ const/16 v1, -0xf │ @@ -123,19 +126,20 @@ │ .line 69 │ return-void │ │ .line 64 │ :cond_1 │ iput v0, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mCode:I │ │ - .line 65 │ + .line 66 │ invoke-static {p1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getOutputText(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 65 │ invoke-static {v1, p2, p3}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfStringForLocale(Ljava/lang/String;ZLjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v1 │ │ iput-object v1, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mOutputText:Ljava/lang/String; │ │ goto :goto_0 │ @@ -915,24 +919,26 @@ │ │ if-ne v3, v4, :cond_2 │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mLabel:Ljava/lang/String; │ │ iget-object v4, v0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mLabel:Ljava/lang/String; │ │ + .line 95 │ invoke-static {v3, v4}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ iget-object v3, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mOutputText:Ljava/lang/String; │ │ iget-object v4, v0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mOutputText:Ljava/lang/String; │ │ + .line 96 │ invoke-static {v3, v4}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v3 │ │ if-nez v3, :cond_0 │ │ :cond_2 │ @@ -1075,14 +1081,15 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ iget v3, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mIconId:I │ │ + .line 104 │ invoke-static {v3}, Lcom/android/inputmethod/keyboard/internal/KeyboardIconsSet;->getIconName(I)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ @@ -1094,14 +1101,15 @@ │ goto :goto_0 │ │ .line 105 │ .restart local v0 # "label":Ljava/lang/String; │ :cond_1 │ iget v2, p0, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->mCode:I │ │ + .line 106 │ invoke-static {v2}, Lorg/smc/inputmethod/indic/Constants;->printableCode(I)Ljava/lang/String; │ │ move-result-object v1 │ │ goto :goto_1 │ │ .line 110 ├── smali/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.smali │ @@ -186,14 +186,15 @@ │ │ .line 90 │ .local v3, "radius":F │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview;->mRoundedLine:Lcom/android/inputmethod/keyboard/internal/RoundedLine; │ │ iget-object v1, p0, Lcom/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview;->mPreviewFrom:[I │ │ + .line 91 │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->x([I)I │ │ move-result v1 │ │ int-to-float v1, v1 │ │ iget-object v2, p0, Lcom/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview;->mPreviewFrom:[I │ @@ -202,14 +203,15 @@ │ │ move-result v2 │ │ int-to-float v2, v2 │ │ iget-object v4, p0, Lcom/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview;->mPreviewTo:[I │ │ + .line 92 │ invoke-static {v4}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->x([I)I │ │ move-result v4 │ │ int-to-float v4, v4 │ │ iget-object v5, p0, Lcom/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview;->mPreviewTo:[I │ @@ -218,14 +220,15 @@ │ │ move-result v5 │ │ int-to-float v5, v5 │ │ move v6, v3 │ │ + .line 90 │ invoke-virtual/range {v0 .. v6}, Lcom/android/inputmethod/keyboard/internal/RoundedLine;->makePath(FFFFFF)Landroid/graphics/Path; │ │ move-result-object v7 │ │ .line 93 │ .local v7, "path":Landroid/graphics/Path; │ iget-object v0, p0, Lcom/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview;->mPaint:Landroid/graphics/Paint; ├── smali/com/android/inputmethod/keyboard/internal/TimerHandler.smali │ @@ -363,20 +363,22 @@ │ .line 172 │ const/4 v0, 0x4 │ │ invoke-virtual {p0, v0}, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->obtainMessage(I)Landroid/os/Message; │ │ move-result-object v0 │ │ + .line 173 │ invoke-static {}, Landroid/view/ViewConfiguration;->getDoubleTapTimeout()I │ │ move-result v1 │ │ int-to-long v2, v1 │ │ + .line 172 │ invoke-virtual {p0, v0, v2, v3}, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->sendMessageDelayed(Landroid/os/Message;J)Z │ │ .line 174 │ return-void │ .end method │ │ .method public startKeyRepeatTimerOf(Lcom/android/inputmethod/keyboard/PointerTracker;II)V │ @@ -402,24 +404,26 @@ │ :goto_0 │ return-void │ │ .line 89 │ :cond_1 │ const/4 v1, 0x1 │ │ + .line 90 │ invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ │ move-result v2 │ │ invoke-virtual {p0, v1, v2, p2, p1}, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message; │ │ move-result-object v1 │ │ int-to-long v2, p3 │ │ + .line 89 │ invoke-virtual {p0, v1, v2, v3}, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->sendMessageDelayed(Landroid/os/Message;J)Z │ │ goto :goto_0 │ .end method │ │ .method public startLongPressTimerOf(Lcom/android/inputmethod/keyboard/PointerTracker;I)V │ .locals 6 │ @@ -539,24 +543,25 @@ │ if-eqz v1, :cond_0 │ │ .line 152 │ invoke-interface {v0}, Lcom/android/inputmethod/keyboard/internal/TimerHandler$Callbacks;->startWhileTypingFadeinAnimation()V │ │ goto :goto_0 │ │ - .line 157 │ + .line 158 │ :cond_3 │ invoke-virtual {p0, v4}, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->obtainMessage(I)Landroid/os/Message; │ │ move-result-object v3 │ │ iget v4, p0, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->mIgnoreAltCodeKeyTimeout:I │ │ int-to-long v4, v4 │ │ + .line 157 │ invoke-virtual {p0, v3, v4, v5}, Lcom/android/inputmethod/keyboard/internal/TimerHandler;->sendMessageDelayed(Landroid/os/Message;J)Z │ │ .line 159 │ if-nez v1, :cond_0 │ │ .line 162 │ invoke-interface {v0}, Lcom/android/inputmethod/keyboard/internal/TimerHandler$Callbacks;->startWhileTypingFadeoutAnimation()V ├── smali/com/android/inputmethod/latin/BinaryDictionary.smali │ @@ -176,15 +176,15 @@ │ invoke-direct/range {v2 .. v8}, Lcom/android/inputmethod/latin/BinaryDictionary;->loadDictionary(Ljava/lang/String;JJZ)V │ │ .line 136 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;ZLjava/util/Locale;Ljava/lang/String;JLjava/util/Map;)V │ - .locals 11 │ + .locals 7 │ .param p1, "filename" # Ljava/lang/String; │ .param p2, "useFullEditDistance" # Z │ .param p3, "locale" # Ljava/util/Locale; │ .param p4, "dictType" # Ljava/lang/String; │ .param p5, "formatVersion" # J │ .annotation system Ldalvik/annotation/Signature; │ value = { │ @@ -204,122 +204,117 @@ │ │ .prologue │ .line 149 │ .local p7, "attributeMap":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-direct {p0, p4}, Lorg/smc/inputmethod/indic/Dictionary;->(Ljava/lang/String;)V │ │ .line 101 │ - new-instance v7, Landroid/util/SparseArray; │ + new-instance v4, Landroid/util/SparseArray; │ │ - invoke-direct {v7}, Landroid/util/SparseArray;->()V │ + invoke-direct {v4}, Landroid/util/SparseArray;->()V │ │ - iput-object v7, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mDicTraverseSessions:Landroid/util/SparseArray; │ + iput-object v4, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mDicTraverseSessions:Landroid/util/SparseArray; │ │ .line 150 │ iput-object p3, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mLocale:Ljava/util/Locale; │ │ .line 151 │ - const-wide/16 v8, 0x0 │ + const-wide/16 v4, 0x0 │ │ - iput-wide v8, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mDictSize:J │ + iput-wide v4, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mDictSize:J │ │ .line 152 │ iput-object p1, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mDictFilePath:Ljava/lang/String; │ │ .line 154 │ - const/4 v7, 0x1 │ + const/4 v4, 0x1 │ │ - iput-boolean v7, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mIsUpdatable:Z │ + iput-boolean v4, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mIsUpdatable:Z │ │ .line 155 │ - const/4 v7, 0x0 │ + const/4 v4, 0x0 │ │ - iput-boolean v7, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mHasUpdated:Z │ + iput-boolean v4, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mHasUpdated:Z │ │ .line 156 │ iput-boolean p2, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mUseFullEditDistance:Z │ │ .line 157 │ - invoke-interface/range {p7 .. p7}, Ljava/util/Map;->size()I │ + invoke-interface {p7}, Ljava/util/Map;->size()I │ │ - move-result v7 │ + move-result v4 │ │ - new-array v5, v7, [Ljava/lang/String; │ + new-array v2, v4, [Ljava/lang/String; │ │ .line 158 │ - .local v5, "keyArray":[Ljava/lang/String; │ - invoke-interface/range {p7 .. p7}, Ljava/util/Map;->size()I │ + .local v2, "keyArray":[Ljava/lang/String; │ + invoke-interface {p7}, Ljava/util/Map;->size()I │ │ - move-result v7 │ + move-result v4 │ │ - new-array v6, v7, [Ljava/lang/String; │ + new-array v3, v4, [Ljava/lang/String; │ │ .line 159 │ - .local v6, "valueArray":[Ljava/lang/String; │ - const/4 v3, 0x0 │ + .local v3, "valueArray":[Ljava/lang/String; │ + const/4 v0, 0x0 │ │ .line 160 │ - .local v3, "index":I │ - invoke-interface/range {p7 .. p7}, Ljava/util/Map;->keySet()Ljava/util/Set; │ + .local v0, "index":I │ + invoke-interface {p7}, Ljava/util/Map;->keySet()Ljava/util/Set; │ │ - move-result-object v7 │ + move-result-object v4 │ │ - invoke-interface {v7}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v5 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v7 │ + move-result v4 │ │ - if-eqz v7, :cond_0 │ + if-eqz v4, :cond_0 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v1 │ │ - check-cast v4, Ljava/lang/String; │ + check-cast v1, Ljava/lang/String; │ │ .line 161 │ - .local v4, "key":Ljava/lang/String; │ - aput-object v4, v5, v3 │ + .local v1, "key":Ljava/lang/String; │ + aput-object v1, v2, v0 │ │ .line 162 │ - move-object/from16 v0, p7 │ - │ - invoke-interface {v0, v4}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {p7, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v4 │ │ - check-cast v7, Ljava/lang/String; │ + check-cast v4, Ljava/lang/String; │ │ - aput-object v7, v6, v3 │ + aput-object v4, v3, v0 │ │ .line 163 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v0, v0, 0x1 │ │ .line 164 │ goto :goto_0 │ │ .line 165 │ - .end local v4 # "key":Ljava/lang/String; │ + .end local v1 # "key":Ljava/lang/String; │ :cond_0 │ invoke-virtual {p3}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ - move-result-object v7 │ - │ - move-wide/from16 v0, p5 │ + move-result-object v4 │ │ - invoke-static {v0, v1, v7, v5, v6}, Lcom/android/inputmethod/latin/BinaryDictionary;->createOnMemoryNative(JLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)J │ + invoke-static {p5, p6, v4, v2, v3}, Lcom/android/inputmethod/latin/BinaryDictionary;->createOnMemoryNative(JLjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)J │ │ - move-result-wide v8 │ + move-result-wide v4 │ │ - iput-wide v8, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mNativeDict:J │ + iput-wide v4, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mNativeDict:J │ │ .line 166 │ return-void │ .end method │ │ .method private static native addMultipleDictionaryEntriesNative(J[Lcom/android/inputmethod/latin/utils/LanguageModelParam;I)I │ .end method │ @@ -556,22 +551,24 @@ │ .local v7, "dictFile":Ljava/io/File; │ invoke-virtual {v7}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v1 │ │ const-wide/16 v2, 0x0 │ │ + .line 523 │ invoke-virtual {v7}, Ljava/io/File;->length()J │ │ move-result-wide v4 │ │ iget-boolean v6, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mIsUpdatable:Z │ │ move-object v0, p0 │ │ + .line 522 │ invoke-direct/range {v0 .. v6}, Lcom/android/inputmethod/latin/BinaryDictionary;->loadDictionary(Ljava/lang/String;JJZ)V │ │ .line 524 │ return-void │ .end method │ │ │ @@ -750,14 +747,15 @@ │ │ move-result-object v2 │ │ .line 440 │ .local v2, "codePoints":[I │ if-eqz p3, :cond_2 │ │ + .line 441 │ invoke-static {p3}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ move-result-object v4 │ │ .line 442 │ .local v4, "shortcutTargetCodePoints":[I │ :goto_1 │ @@ -782,15 +780,15 @@ │ if-nez v0, :cond_3 │ │ .line 444 │ const/4 v0, 0x0 │ │ goto :goto_0 │ │ - .line 440 │ + .line 441 │ .end local v4 # "shortcutTargetCodePoints":[I │ :cond_2 │ const/4 v4, 0x0 │ │ goto :goto_1 │ │ .line 446 │ @@ -1140,33 +1138,35 @@ │ :goto_1 │ invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ │ move-result v0 │ │ if-ge v10, v0, :cond_1 │ │ - .line 254 │ + .line 255 │ invoke-virtual {v4, v10}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [I │ │ + .line 254 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->getStringFromNullTerminatedCodePointArray([I)Ljava/lang/String; │ │ move-result-object v6 │ │ - .line 256 │ + .line 257 │ .local v6, "attributeKey":Ljava/lang/String; │ invoke-virtual {v5, v10}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [I │ │ + .line 256 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->getStringFromNullTerminatedCodePointArray([I)Ljava/lang/String; │ │ move-result-object v7 │ │ .line 258 │ .local v7, "attributeValue":Ljava/lang/String; │ invoke-virtual {v8, v6, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ @@ -1180,18 +1180,20 @@ │ .end local v6 # "attributeKey":Ljava/lang/String; │ .end local v7 # "attributeValue":Ljava/lang/String; │ :cond_1 │ const-string v0, "1" │ │ const-string v1, "HAS_HISTORICAL_INFO" │ │ + .line 261 │ invoke-virtual {v8, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ + .line 260 │ invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v9 │ │ .line 262 │ .local v9, "hasHistoricalInfo":Z │ new-instance v0, Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ @@ -1282,20 +1284,22 @@ │ .local v3, "word":Ljava/lang/String; │ new-instance v4, Lcom/android/inputmethod/latin/BinaryDictionary$GetNextWordPropertyResult; │ │ const/4 v5, 0x0 │ │ aget-boolean v5, v1, v5 │ │ + .line 428 │ invoke-virtual {p0, v3, v5}, Lcom/android/inputmethod/latin/BinaryDictionary;->getWordProperty(Ljava/lang/String;Z)Lcom/android/inputmethod/latin/makedict/WordProperty; │ │ move-result-object v5 │ │ invoke-direct {v4, v5, v2}, Lcom/android/inputmethod/latin/BinaryDictionary$GetNextWordPropertyResult;->(Lcom/android/inputmethod/latin/makedict/WordProperty;I)V │ │ + .line 427 │ return-object v4 │ .end method │ │ .method public getNgramProbability(Lcom/android/inputmethod/latin/PrevWordsInfo;Ljava/lang/String;)I │ .locals 6 │ .param p1, "prevWordsInfo" # Lcom/android/inputmethod/latin/PrevWordsInfo; │ .param p2, "word" # Ljava/lang/String; │ @@ -1573,14 +1577,15 @@ │ │ iget-wide v2, v0, Lcom/android/inputmethod/latin/BinaryDictionary;->mNativeDict:J │ │ invoke-virtual/range {p3 .. p3}, Lcom/android/inputmethod/keyboard/ProximityInfo;->getNativeProximityInfo()J │ │ move-result-wide v4 │ │ + .line 305 │ move-object/from16 v0, p0 │ │ move/from16 v1, p5 │ │ invoke-direct {v0, v1}, Lcom/android/inputmethod/latin/BinaryDictionary;->getTraverseSession(I)Lcom/android/inputmethod/latin/DicTraverseSession; │ │ move-result-object v6 │ @@ -1589,34 +1594,37 @@ │ │ move-result-wide v6 │ │ invoke-virtual/range {v25 .. v25}, Lorg/smc/inputmethod/indic/InputPointers;->getXCoordinates()[I │ │ move-result-object v8 │ │ + .line 306 │ invoke-virtual/range {v25 .. v25}, Lorg/smc/inputmethod/indic/InputPointers;->getYCoordinates()[I │ │ move-result-object v9 │ │ invoke-virtual/range {v25 .. v25}, Lorg/smc/inputmethod/indic/InputPointers;->getTimes()[I │ │ move-result-object v10 │ │ + .line 307 │ invoke-virtual/range {v25 .. v25}, Lorg/smc/inputmethod/indic/InputPointers;->getPointerIds()[I │ │ move-result-object v11 │ │ move-object/from16 v0, v29 │ │ iget-object v12, v0, Lcom/android/inputmethod/latin/DicTraverseSession;->mInputCodePoints:[I │ │ move-object/from16 v0, v29 │ │ iget-object v14, v0, Lcom/android/inputmethod/latin/DicTraverseSession;->mNativeSuggestOptions:Lorg/smc/inputmethod/indic/settings/NativeSuggestOptions; │ │ + .line 308 │ invoke-virtual {v14}, Lorg/smc/inputmethod/indic/settings/NativeSuggestOptions;->getOptions()[I │ │ move-result-object v14 │ │ move-object/from16 v0, v29 │ │ iget-object v15, v0, Lcom/android/inputmethod/latin/DicTraverseSession;->mPrevWordCodePointArrays:[[I │ @@ -1665,14 +1673,15 @@ │ │ move-object/from16 v0, v29 │ │ iget-object v0, v0, Lcom/android/inputmethod/latin/DicTraverseSession;->mInputOutputLanguageWeight:[F │ │ move-object/from16 v23, v0 │ │ + .line 304 │ invoke-static/range {v2 .. v23}, Lcom/android/inputmethod/latin/BinaryDictionary;->getSuggestionsNative(JJJ[I[I[I[I[II[I[[I[Z[I[I[I[I[I[I[F)V │ │ .line 313 │ if-eqz p6, :cond_4 │ │ .line 314 │ const/4 v2, 0x0 │ @@ -1718,15 +1727,15 @@ │ .line 319 │ mul-int/lit8 v30, v27, 0x30 │ │ .line 320 │ .local v30, "start":I │ const/16 v28, 0x0 │ │ - .line 322 │ + .line 321 │ .local v28, "len":I │ :goto_3 │ const/16 v2, 0x30 │ │ move/from16 v0, v28 │ │ if-ge v0, v2, :cond_6 │ @@ -2171,15 +2180,15 @@ │ .line 568 │ invoke-virtual {p0}, Lcom/android/inputmethod/latin/BinaryDictionary;->isValidDictionary()Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ - .line 602 │ + .line 600 │ :goto_0 │ return v0 │ │ .line 571 │ :cond_0 │ new-instance v8, Ljava/io/File; │ │ @@ -2388,22 +2397,24 @@ │ :try_start_3 │ invoke-virtual {v7}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v1 │ │ const-wide/16 v2, 0x0 │ │ + .line 599 │ invoke-virtual {v7}, Ljava/io/File;->length()J │ │ move-result-wide v4 │ │ iget-boolean v6, p0, Lcom/android/inputmethod/latin/BinaryDictionary;->mIsUpdatable:Z │ │ move-object v0, p0 │ │ + .line 598 │ invoke-direct/range {v0 .. v6}, Lcom/android/inputmethod/latin/BinaryDictionary;->loadDictionary(Ljava/lang/String;JJZ)V │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_0 │ │ .line 600 │ const/4 v0, 0x1 ├── smali/com/android/inputmethod/latin/DicTraverseSession.smali │ @@ -121,32 +121,34 @@ │ invoke-direct {v0}, Lorg/smc/inputmethod/indic/settings/NativeSuggestOptions;->()V │ │ iput-object v0, p0, Lcom/android/inputmethod/latin/DicTraverseSession;->mNativeSuggestOptions:Lorg/smc/inputmethod/indic/settings/NativeSuggestOptions; │ │ .line 56 │ if-eqz p1, :cond_0 │ │ + .line 57 │ invoke-virtual {p1}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 56 │ :goto_0 │ invoke-direct {p0, v0, p4, p5}, Lcom/android/inputmethod/latin/DicTraverseSession;->createNativeDicTraverseSession(Ljava/lang/String;J)J │ │ move-result-wide v0 │ │ iput-wide v0, p0, Lcom/android/inputmethod/latin/DicTraverseSession;->mNativeDicTraverseSession:J │ │ .line 58 │ invoke-virtual {p0, p2, p3}, Lcom/android/inputmethod/latin/DicTraverseSession;->initSession(J)V │ │ .line 59 │ return-void │ │ - .line 56 │ + .line 57 │ :cond_0 │ const-string v0, "" │ │ goto :goto_0 │ .end method │ │ .method private closeInternal()V ├── smali/com/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions.smali │ @@ -73,158 +73,157 @@ │ .method public toString(IZ)Ljava/lang/String; │ .locals 12 │ .param p1, "indentCount" # I │ .param p2, "plumbing" # Z │ │ .prologue │ .line 345 │ - new-instance v2, Ljava/lang/StringBuilder; │ + new-instance v1, Ljava/lang/StringBuilder; │ │ - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ .line 346 │ - .local v2, "indent":Ljava/lang/StringBuilder; │ + .local v1, "indent":Ljava/lang/StringBuilder; │ if-eqz p2, :cond_1 │ │ .line 347 │ - const-string v5, "H:" │ + const-string v4, "H:" │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 353 │ :cond_0 │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ .line 354 │ - .local v4, "s":Ljava/lang/StringBuilder; │ - iget-object v5, p0, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ + .local v3, "s":Ljava/lang/StringBuilder; │ + iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ │ - invoke-virtual {v5}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ + invoke-virtual {v4}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-interface {v5}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v5 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_3 │ + if-eqz v4, :cond_3 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/lang/String; │ + check-cast v2, Ljava/lang/String; │ │ .line 355 │ - .local v3, "optionKey":Ljava/lang/String; │ - invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; │ + .local v2, "optionKey":Ljava/lang/String; │ + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; │ │ .line 356 │ - invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 357 │ - const-string v5, " = " │ + const-string v4, " = " │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 358 │ - const-string v5, "date" │ + const-string v4, "date" │ │ - invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v4, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-eqz v5, :cond_2 │ + if-eqz v4, :cond_2 │ │ if-nez p2, :cond_2 │ │ .line 360 │ new-instance v6, Ljava/util/Date; │ │ const-wide/16 v8, 0x3e8 │ │ - iget-object v5, p0, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ + iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ │ - invoke-virtual {v5, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + .line 361 │ + invoke-virtual {v4, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Ljava/lang/String; │ + check-cast v4, Ljava/lang/String; │ │ - invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ + invoke-static {v4}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ │ move-result-wide v10 │ │ mul-long/2addr v8, v10 │ │ invoke-direct {v6, v8, v9}, Ljava/util/Date;->(J)V │ │ invoke-virtual {v6}, Ljava/util/Date;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + .line 360 │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 365 │ :goto_1 │ - const-string v5, "\n" │ + const-string v4, "\n" │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ .line 349 │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v3 # "optionKey":Ljava/lang/String; │ - .end local v4 # "s":Ljava/lang/StringBuilder; │ + .end local v2 # "optionKey":Ljava/lang/String; │ + .end local v3 # "s":Ljava/lang/StringBuilder; │ :cond_1 │ const/4 v0, 0x0 │ │ .local v0, "i":I │ :goto_2 │ if-ge v0, p1, :cond_0 │ │ .line 350 │ - const-string v5, " " │ + const-string v4, " " │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 349 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_2 │ │ .line 363 │ .end local v0 # "i":I │ - .restart local v1 # "i$":Ljava/util/Iterator; │ - .restart local v3 # "optionKey":Ljava/lang/String; │ - .restart local v4 # "s":Ljava/lang/StringBuilder; │ + .restart local v2 # "optionKey":Ljava/lang/String; │ + .restart local v3 # "s":Ljava/lang/StringBuilder; │ :cond_2 │ - iget-object v5, p0, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ + iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ │ - invoke-virtual {v5, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v4, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Ljava/lang/String; │ + check-cast v4, Ljava/lang/String; │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_1 │ │ .line 367 │ - .end local v3 # "optionKey":Ljava/lang/String; │ + .end local v2 # "optionKey":Ljava/lang/String; │ :cond_3 │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - return-object v5 │ + return-object v4 │ .end method ├── smali/com/android/inputmethod/latin/makedict/WordProperty.smali │ @@ -250,15 +250,15 @@ │ .local v1, "bigramTargetCount":I │ const/4 v3, 0x0 │ │ .local v3, "i":I │ :goto_0 │ if-ge v3, v1, :cond_0 │ │ - .line 91 │ + .line 92 │ move-object/from16 v0, p8 │ │ invoke-virtual {v0, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, [I │ @@ -269,28 +269,30 @@ │ │ .line 93 │ .local v2, "bigramTargetString":Ljava/lang/String; │ iget-object v7, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams:Ljava/util/ArrayList; │ │ new-instance v8, Lcom/android/inputmethod/latin/makedict/WeightedString; │ │ + .line 94 │ move-object/from16 v0, p9 │ │ invoke-virtual {v0, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, [I │ │ invoke-static {v6}, Lcom/android/inputmethod/latin/makedict/WordProperty;->createProbabilityInfoFromArray([I)Lcom/android/inputmethod/latin/makedict/ProbabilityInfo; │ │ move-result-object v6 │ │ invoke-direct {v8, v2, v6}, Lcom/android/inputmethod/latin/makedict/WeightedString;->(Ljava/lang/String;Lcom/android/inputmethod/latin/makedict/ProbabilityInfo;)V │ │ + .line 93 │ invoke-virtual {v7, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 90 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ @@ -304,15 +306,15 @@ │ .line 98 │ .local v4, "shortcutTargetCount":I │ const/4 v3, 0x0 │ │ :goto_1 │ if-ge v3, v4, :cond_1 │ │ - .line 99 │ + .line 100 │ move-object/from16 v0, p10 │ │ invoke-virtual {v0, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, [I │ @@ -323,28 +325,30 @@ │ │ .line 101 │ .local v5, "shortcutTargetString":Ljava/lang/String; │ iget-object v7, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ │ new-instance v8, Lcom/android/inputmethod/latin/makedict/WeightedString; │ │ + .line 102 │ move-object/from16 v0, p11 │ │ invoke-virtual {v0, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Ljava/lang/Integer; │ │ invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I │ │ move-result v6 │ │ invoke-direct {v8, v5, v6}, Lcom/android/inputmethod/latin/makedict/WeightedString;->(Ljava/lang/String;I)V │ │ + .line 101 │ invoke-virtual {v7, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 98 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_1 │ │ @@ -376,58 +380,63 @@ │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x2 │ │ iget-object v2, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ │ + .line 114 │ invoke-virtual {v2}, Ljava/util/ArrayList;->hashCode()I │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x3 │ │ iget-object v2, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams:Ljava/util/ArrayList; │ │ + .line 115 │ invoke-virtual {v2}, Ljava/util/ArrayList;->hashCode()I │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x4 │ │ iget-boolean v2, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsNotAWord:Z │ │ + .line 116 │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ const/4 v1, 0x5 │ │ iget-boolean v2, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsBlacklistEntry:Z │ │ + .line 117 │ invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v2 │ │ aput-object v2, v0, v1 │ │ + .line 111 │ invoke-static {v0}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -582,14 +591,15 @@ │ │ if-eqz v3, :cond_3 │ │ iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ │ iget-object v4, v0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ │ + .line 146 │ invoke-virtual {v3, v4}, Ljava/util/ArrayList;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_3 │ │ iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams:Ljava/util/ArrayList; ├── smali/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.smali │ @@ -75,15 +75,15 @@ │ │ .line 64 │ .local v0, "nameId":I │ invoke-static {p0, p1, p2, p3}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->getPlatformVersionDependentExtraValue(Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/lang/String; │ │ move-result-object v4 │ │ - .line 66 │ + .line 67 │ .local v4, "platformVersionDependentExtraValues":Ljava/lang/String; │ invoke-static {p0, p1}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->getPlatformVersionIndependentSubtypeId(Ljava/lang/String;Ljava/lang/String;)I │ │ move-result v7 │ │ .line 70 │ .local v7, "platformVersionIndependentSubtypeId":I │ @@ -103,77 +103,74 @@ │ .end method │ │ .method public static createAdditionalSubtypesArray(Ljava/lang/String;)[Landroid/view/inputmethod/InputMethodSubtype; │ .locals 13 │ .param p0, "prefSubtypes" # Ljava/lang/String; │ │ .prologue │ + const/4 v8, 0x0 │ + │ .line 103 │ invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v10 │ + move-result v7 │ │ - if-eqz v10, :cond_0 │ + if-eqz v7, :cond_0 │ │ .line 104 │ - sget-object v10, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->EMPTY_SUBTYPE_ARRAY:[Landroid/view/inputmethod/InputMethodSubtype; │ + sget-object v7, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->EMPTY_SUBTYPE_ARRAY:[Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 129 │ :goto_0 │ - return-object v10 │ + return-object v7 │ │ .line 106 │ :cond_0 │ - const-string v10, ";" │ + const-string v7, ";" │ │ - invoke-virtual {p0, v10}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {p0, v7}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 107 │ - .local v7, "prefSubtypeArray":[Ljava/lang/String; │ - new-instance v9, Ljava/util/ArrayList; │ + .local v4, "prefSubtypeArray":[Ljava/lang/String; │ + new-instance v6, Ljava/util/ArrayList; │ │ - array-length v10, v7 │ + array-length v7, v4 │ │ - invoke-direct {v9, v10}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v6, v7}, Ljava/util/ArrayList;->(I)V │ │ .line 108 │ - .local v9, "subtypesList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v0, v7 │ + .local v6, "subtypesList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v9, v4 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v4, v0 │ + move v7, v8 │ │ - .local v4, "len$":I │ - const/4 v2, 0x0 │ - │ - .local v2, "i$":I │ :goto_1 │ - if-ge v2, v4, :cond_3 │ + if-ge v7, v9, :cond_3 │ │ - aget-object v6, v0, v2 │ + aget-object v3, v4, v7 │ │ .line 109 │ - .local v6, "prefSubtype":Ljava/lang/String; │ + .local v3, "prefSubtype":Ljava/lang/String; │ const-string v10, ":" │ │ - invoke-virtual {v6, v10}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v3, v10}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 110 │ - .local v1, "elems":[Ljava/lang/String; │ - array-length v10, v1 │ + .local v0, "elems":[Ljava/lang/String; │ + array-length v10, v0 │ │ const/4 v11, 0x2 │ │ if-eq v10, v11, :cond_2 │ │ - array-length v10, v1 │ + array-length v10, v0 │ │ const/4 v11, 0x3 │ │ if-eq v10, v11, :cond_2 │ │ .line 112 │ sget-object v10, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->TAG:Ljava/lang/String; │ @@ -184,15 +181,15 @@ │ │ const-string v12, "Unknown additional subtype specified: " │ │ invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v11 │ │ - invoke-virtual {v11, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v11, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v11 │ │ const-string v12, " in " │ │ invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -207,69 +204,67 @@ │ move-result-object v11 │ │ invoke-static {v10, v11}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 108 │ :cond_1 │ :goto_2 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ goto :goto_1 │ │ .line 116 │ :cond_2 │ - const/4 v10, 0x0 │ - │ - aget-object v5, v1, v10 │ + aget-object v2, v0, v8 │ │ .line 117 │ - .local v5, "localeString":Ljava/lang/String; │ + .local v2, "localeString":Ljava/lang/String; │ const/4 v10, 0x1 │ │ - aget-object v3, v1, v10 │ + aget-object v1, v0, v10 │ │ .line 120 │ - .local v3, "keyboardLayoutSetName":Ljava/lang/String; │ - invoke-static {v5, v3}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAsciiEmojiCapableAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ + .local v1, "keyboardLayoutSetName":Ljava/lang/String; │ + invoke-static {v2, v1}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAsciiEmojiCapableAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ │ - move-result-object v8 │ + move-result-object v5 │ │ .line 122 │ - .local v8, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-virtual {v8}, Landroid/view/inputmethod/InputMethodSubtype;->getNameResId()I │ + .local v5, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-virtual {v5}, Landroid/view/inputmethod/InputMethodSubtype;->getNameResId()I │ │ move-result v10 │ │ const v11, 0x7f0c050b │ │ if-eq v10, v11, :cond_1 │ │ .line 127 │ - invoke-virtual {v9, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v6, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_2 │ │ .line 129 │ - .end local v1 # "elems":[Ljava/lang/String; │ - .end local v3 # "keyboardLayoutSetName":Ljava/lang/String; │ - .end local v5 # "localeString":Ljava/lang/String; │ - .end local v6 # "prefSubtype":Ljava/lang/String; │ - .end local v8 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v0 # "elems":[Ljava/lang/String; │ + .end local v1 # "keyboardLayoutSetName":Ljava/lang/String; │ + .end local v2 # "localeString":Ljava/lang/String; │ + .end local v3 # "prefSubtype":Ljava/lang/String; │ + .end local v5 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_3 │ - invoke-virtual {v9}, Ljava/util/ArrayList;->size()I │ + invoke-virtual {v6}, Ljava/util/ArrayList;->size()I │ │ - move-result v10 │ + move-result v7 │ │ - new-array v10, v10, [Landroid/view/inputmethod/InputMethodSubtype; │ + new-array v7, v7, [Landroid/view/inputmethod/InputMethodSubtype; │ │ - invoke-virtual {v9, v10}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ + invoke-virtual {v6, v7}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - check-cast v10, [Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v7, [Landroid/view/inputmethod/InputMethodSubtype; │ │ goto :goto_0 │ .end method │ │ .method public static createAsciiEmojiCapableAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ .locals 1 │ .param p0, "localeString" # Ljava/lang/String; │ @@ -299,161 +294,151 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method public static createPrefSubtypes([Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ - .locals 6 │ + .locals 5 │ .param p0, "subtypes" # [Landroid/view/inputmethod/InputMethodSubtype; │ │ .prologue │ .line 133 │ if-eqz p0, :cond_0 │ │ - array-length v5, p0 │ + array-length v2, p0 │ │ - if-nez v5, :cond_1 │ + if-nez v2, :cond_1 │ │ .line 134 │ :cond_0 │ - const-string v5, "" │ + const-string v2, "" │ │ .line 143 │ :goto_0 │ - return-object v5 │ + return-object v2 │ │ .line 136 │ :cond_1 │ - new-instance v3, Ljava/lang/StringBuilder; │ + new-instance v0, Ljava/lang/StringBuilder; │ │ - invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ .line 137 │ - .local v3, "sb":Ljava/lang/StringBuilder; │ - move-object v0, p0 │ + .local v0, "sb":Ljava/lang/StringBuilder; │ + array-length v3, p0 │ │ - .local v0, "arr$":[Landroid/view/inputmethod/InputMethodSubtype; │ - array-length v2, v0 │ - │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_1 │ - if-ge v1, v2, :cond_3 │ + if-ge v2, v3, :cond_3 │ │ - aget-object v4, v0, v1 │ + aget-object v1, p0, v2 │ │ .line 138 │ - .local v4, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I │ + .local v1, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I │ │ - move-result v5 │ + move-result v4 │ │ - if-lez v5, :cond_2 │ + if-lez v4, :cond_2 │ │ .line 139 │ - const-string v5, ";" │ + const-string v4, ";" │ │ - invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 141 │ :cond_2 │ - invoke-static {v4}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->getPrefSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ + invoke-static {v1}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->getPrefSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 137 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_1 │ │ .line 143 │ - .end local v4 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v1 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_3 │ - invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v2 │ │ goto :goto_0 │ .end method │ │ .method public static createPrefSubtypes([Ljava/lang/String;)Ljava/lang/String; │ - .locals 6 │ + .locals 5 │ .param p0, "prefSubtypes" # [Ljava/lang/String; │ │ .prologue │ .line 147 │ if-eqz p0, :cond_0 │ │ - array-length v5, p0 │ + array-length v2, p0 │ │ - if-nez v5, :cond_1 │ + if-nez v2, :cond_1 │ │ .line 148 │ :cond_0 │ - const-string v5, "" │ + const-string v2, "" │ │ .line 157 │ :goto_0 │ - return-object v5 │ + return-object v2 │ │ .line 150 │ :cond_1 │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v1, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ .line 151 │ - .local v4, "sb":Ljava/lang/StringBuilder; │ - move-object v0, p0 │ + .local v1, "sb":Ljava/lang/StringBuilder; │ + array-length v3, p0 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v2, v0 │ - │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_1 │ - if-ge v1, v2, :cond_3 │ + if-ge v2, v3, :cond_3 │ │ - aget-object v3, v0, v1 │ + aget-object v0, p0, v2 │ │ .line 152 │ - .local v3, "prefSubtype":Ljava/lang/String; │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->length()I │ + .local v0, "prefSubtype":Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I │ │ - move-result v5 │ + move-result v4 │ │ - if-lez v5, :cond_2 │ + if-lez v4, :cond_2 │ │ .line 153 │ - const-string v5, ";" │ + const-string v4, ";" │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 155 │ :cond_2 │ - invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 151 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_1 │ │ .line 157 │ - .end local v3 # "prefSubtype":Ljava/lang/String; │ + .end local v0 # "prefSubtype":Ljava/lang/String; │ :cond_3 │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v2 │ │ goto :goto_0 │ .end method │ │ .method private static getPlatformVersionDependentExtraValue(Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/lang/String; │ .locals 3 │ .param p0, "localeString" # Ljava/lang/String; │ @@ -501,14 +486,15 @@ │ :cond_0 │ sget v1, Landroid/os/Build$VERSION;->SDK_INT:I │ │ const/16 v2, 0x10 │ │ if-lt v1, v2, :cond_1 │ │ + .line 184 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->isExceptionalLocale(Ljava/lang/String;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ .line 185 │ @@ -518,26 +504,28 @@ │ │ const-string v2, "UntranslatableReplacementStringInSubtypeName=" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 186 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetDisplayName(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 185 │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 188 │ :cond_1 │ if-eqz p3, :cond_2 │ │ sget v1, Landroid/os/Build$VERSION;->SDK_INT:I │ @@ -621,26 +609,28 @@ │ │ const-string v3, "UntranslatableReplacementStringInSubtypeName=" │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 225 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetDisplayName(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 224 │ invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 227 │ :cond_0 │ const-string v2, "EmojiCapable" │ │ invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ @@ -673,28 +663,31 @@ │ │ const/4 v3, 0x2 │ │ aput-object v1, v2, v3 │ │ const/4 v3, 0x3 │ │ + .line 234 │ invoke-static {v5}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x4 │ │ + .line 235 │ invoke-static {v5}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 230 │ invoke-static {v2}, Ljava/util/Arrays;->hashCode([Ljava/lang/Object;)I │ │ move-result v2 │ │ return v2 │ .end method │ │ @@ -734,22 +727,25 @@ │ │ move-result-object v3 │ │ .line 93 │ .local v3, "layoutExtraValue":Ljava/lang/String; │ const-string v5, "isAdditionalSubtype" │ │ + .line 95 │ invoke-virtual {p0}, Landroid/view/inputmethod/InputMethodSubtype;->getExtraValue()Ljava/lang/String; │ │ move-result-object v6 │ │ + .line 94 │ invoke-static {v5, v6}, Lcom/android/inputmethod/latin/utils/StringUtils;->removeFromCommaSplittableTextIfExists(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 93 │ invoke-static {v3, v5}, Lcom/android/inputmethod/latin/utils/StringUtils;->removeFromCommaSplittableTextIfExists(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 96 │ .local v1, "extraValue":Ljava/lang/String; │ new-instance v5, Ljava/lang/StringBuilder; ├── smali/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.smali │ @@ -47,18 +47,20 @@ │ │ .prologue │ .line 112 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ move-result-object v0 │ │ + .line 113 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ move-result-object v1 │ │ + .line 112 │ invoke-static {v0, v1, p2}, Lcom/android/inputmethod/latin/utils/BinaryDictionaryUtils;->calcNormalizedScoreNative([I[II)F │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -102,61 +104,60 @@ │ │ move-result v1 │ │ new-array v6, v1, [Ljava/lang/String; │ │ .line 100 │ .local v6, "valueArray":[Ljava/lang/String; │ - const/4 v7, 0x0 │ + const/4 v0, 0x0 │ │ .line 101 │ - .local v7, "index":I │ + .local v0, "index":I │ invoke-interface {p4}, Ljava/util/Map;->keySet()Ljava/util/Set; │ │ move-result-object v1 │ │ invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Ljava/lang/String; │ + check-cast v7, Ljava/lang/String; │ │ .line 102 │ - .local v8, "key":Ljava/lang/String; │ - aput-object v8, v5, v7 │ + .local v7, "key":Ljava/lang/String; │ + aput-object v7, v5, v0 │ │ .line 103 │ - invoke-interface {p4, v8}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {p4, v7}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/lang/String; │ │ - aput-object v1, v6, v7 │ + aput-object v1, v6, v0 │ │ .line 104 │ - add-int/lit8 v7, v7, 0x1 │ + add-int/lit8 v0, v0, 0x1 │ │ .line 105 │ goto :goto_0 │ │ .line 106 │ - .end local v8 # "key":Ljava/lang/String; │ + .end local v7 # "key":Ljava/lang/String; │ :cond_0 │ invoke-virtual {p3}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ move-object v1, p0 │ │ @@ -193,18 +194,20 @@ │ │ .line 120 │ :cond_1 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ move-result-object v0 │ │ + .line 121 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ move-result-object v1 │ │ + .line 120 │ invoke-static {v0, v1}, Lcom/android/inputmethod/latin/utils/BinaryDictionaryUtils;->editDistanceNative([I[I)I │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -248,14 +251,15 @@ │ } │ .end annotation │ │ .prologue │ .line 58 │ new-instance v0, Lcom/android/inputmethod/latin/BinaryDictionary; │ │ + .line 59 │ invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v1 │ │ const/4 v6, 0x1 │ │ const/4 v7, 0x0 │ @@ -297,133 +301,131 @@ │ │ .method public static renameDict(Ljava/io/File;Ljava/io/File;)Z │ .locals 11 │ .param p0, "dictFile" # Ljava/io/File; │ .param p1, "newDictFile" # Ljava/io/File; │ │ .prologue │ - const/4 v8, 0x0 │ + const/4 v5, 0x0 │ │ .line 71 │ invoke-virtual {p0}, Ljava/io/File;->isFile()Z │ │ - move-result v9 │ + move-result v6 │ │ - if-eqz v9, :cond_1 │ + if-eqz v6, :cond_1 │ │ .line 72 │ invoke-virtual {p0, p1}, Ljava/io/File;->renameTo(Ljava/io/File;)Z │ │ - move-result v8 │ + move-result v5 │ │ .line 92 │ :cond_0 │ :goto_0 │ - return v8 │ + return v5 │ │ .line 73 │ :cond_1 │ invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z │ │ - move-result v9 │ + move-result v6 │ │ - if-eqz v9, :cond_0 │ + if-eqz v6, :cond_0 │ │ .line 74 │ invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 75 │ - .local v1, "dictName":Ljava/lang/String; │ + .local v0, "dictName":Ljava/lang/String; │ invoke-virtual {p1}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ .line 76 │ - .local v6, "newDictName":Ljava/lang/String; │ + .local v3, "newDictName":Ljava/lang/String; │ invoke-virtual {p1}, Ljava/io/File;->exists()Z │ │ - move-result v9 │ + move-result v6 │ │ - if-nez v9, :cond_0 │ + if-nez v6, :cond_0 │ │ .line 79 │ invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File; │ │ - move-result-object v0 │ + move-result-object v7 │ │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v5, v0 │ + array-length v8, v7 │ │ - .local v5, "len$":I │ - const/4 v4, 0x0 │ + move v6, v5 │ │ - .local v4, "i$":I │ :goto_1 │ - if-ge v4, v5, :cond_4 │ + if-ge v6, v8, :cond_4 │ │ - aget-object v2, v0, v4 │ + aget-object v1, v7, v6 │ │ .line 80 │ - .local v2, "file":Ljava/io/File; │ - invoke-virtual {v2}, Ljava/io/File;->isFile()Z │ + .local v1, "file":Ljava/io/File; │ + invoke-virtual {v1}, Ljava/io/File;->isFile()Z │ │ move-result v9 │ │ if-nez v9, :cond_3 │ │ .line 79 │ :cond_2 │ - add-int/lit8 v4, v4, 0x1 │ + add-int/lit8 v6, v6, 0x1 │ │ goto :goto_1 │ │ .line 83 │ :cond_3 │ - invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - .line 84 │ - .local v3, "fileName":Ljava/lang/String; │ - invoke-static {v1}, Ljava/util/regex/Pattern;->quote(Ljava/lang/String;)Ljava/lang/String; │ + .line 85 │ + .local v2, "fileName":Ljava/lang/String; │ + invoke-static {v0}, Ljava/util/regex/Pattern;->quote(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v9 │ │ - invoke-static {v6}, Ljava/util/regex/Matcher;->quoteReplacement(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v3}, Ljava/util/regex/Matcher;->quoteReplacement(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v10 │ │ - invoke-virtual {v3, v9, v10}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + .line 84 │ + invoke-virtual {v2, v9, v10}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 86 │ - .local v7, "newFileName":Ljava/lang/String; │ + .local v4, "newFileName":Ljava/lang/String; │ new-instance v9, Ljava/io/File; │ │ - invoke-direct {v9, p0, v7}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V │ + invoke-direct {v9, p0, v4}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V │ │ - invoke-virtual {v2, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z │ + invoke-virtual {v1, v9}, Ljava/io/File;->renameTo(Ljava/io/File;)Z │ │ move-result v9 │ │ if-nez v9, :cond_2 │ │ goto :goto_0 │ │ .line 90 │ - .end local v2 # "file":Ljava/io/File; │ - .end local v3 # "fileName":Ljava/lang/String; │ - .end local v7 # "newFileName":Ljava/lang/String; │ + .end local v1 # "file":Ljava/io/File; │ + .end local v2 # "fileName":Ljava/lang/String; │ + .end local v4 # "newFileName":Ljava/lang/String; │ :cond_4 │ invoke-virtual {p0, p1}, Ljava/io/File;->renameTo(Ljava/io/File;)Z │ │ - move-result v8 │ + move-result v5 │ │ goto :goto_0 │ .end method │ │ .method public static setCurrentTimeForTest(I)I │ .locals 1 │ .param p0, "currentTime" # I ├── smali/com/android/inputmethod/latin/utils/CapsModeUtils.smali │ @@ -304,14 +304,15 @@ │ │ if-eq v6, v14, :cond_f │ │ const/16 v14, 0x27 │ │ if-eq v6, v14, :cond_f │ │ + .line 206 │ invoke-static {v6}, Ljava/lang/Character;->getType(C)I │ │ move-result v14 │ │ const/16 v15, 0x16 │ │ if-eq v14, v15, :cond_f │ @@ -658,26 +659,29 @@ │ │ if-eq p0, v0, :cond_0 │ │ const/16 v0, 0xa1 │ │ if-eq p0, v0, :cond_0 │ │ + .line 77 │ invoke-static {p0}, Ljava/lang/Character;->getType(I)I │ │ move-result v0 │ │ const/16 v1, 0x15 │ │ if-ne v0, v1, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 74 │ :goto_0 │ return v0 │ │ + .line 77 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/latin/utils/CombinedFormatUtils.smali │ @@ -55,128 +55,127 @@ │ .local p0, "attributeMap":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ .line 40 │ .local v0, "builder":Ljava/lang/StringBuilder; │ - const-string v4, "dictionary=" │ + const-string v3, "dictionary=" │ │ - invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 41 │ - const-string v4, "dictionary" │ + const-string v3, "dictionary" │ │ - invoke-virtual {p0, v4}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z │ + invoke-virtual {p0, v3}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_0 │ + if-eqz v3, :cond_0 │ │ .line 42 │ - const-string v4, "dictionary" │ + const-string v3, "dictionary" │ │ - invoke-virtual {p0, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {p0, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Ljava/lang/String; │ + check-cast v3, Ljava/lang/String; │ │ - invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 44 │ :cond_0 │ invoke-virtual {p0}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_1 │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Ljava/lang/String; │ + check-cast v1, Ljava/lang/String; │ │ .line 45 │ - .local v2, "key":Ljava/lang/String; │ + .local v1, "key":Ljava/lang/String; │ const-string v4, "dictionary" │ │ - invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_1 │ │ .line 48 │ - invoke-virtual {p0, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {p0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/lang/String; │ + check-cast v2, Ljava/lang/String; │ │ .line 49 │ - .local v3, "value":Ljava/lang/String; │ + .local v2, "value":Ljava/lang/String; │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ const-string v5, "," │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ - invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ const-string v5, "=" │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ - invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ .line 51 │ - .end local v2 # "key":Ljava/lang/String; │ - .end local v3 # "value":Ljava/lang/String; │ + .end local v1 # "key":Ljava/lang/String; │ + .end local v2 # "value":Ljava/lang/String; │ :cond_2 │ - const-string v4, "\n" │ + const-string v3, "\n" │ │ - invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 52 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - return-object v4 │ + return-object v3 │ .end method │ │ .method public static formatProbabilityInfo(Lcom/android/inputmethod/latin/makedict/ProbabilityInfo;)Ljava/lang/String; │ .locals 3 │ .param p0, "probabilityInfo" # Lcom/android/inputmethod/latin/makedict/ProbabilityInfo; │ │ .prologue │ @@ -268,127 +267,126 @@ │ .line 56 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ .line 57 │ .local v1, "builder":Ljava/lang/StringBuilder; │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - const-string v5, " word=" │ + const-string v4, " word=" │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - iget-object v5, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mWord:Ljava/lang/String; │ + iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mWord:Ljava/lang/String; │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 58 │ - const-string v4, "," │ + const-string v3, "," │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 59 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mProbabilityInfo:Lcom/android/inputmethod/latin/makedict/ProbabilityInfo; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mProbabilityInfo:Lcom/android/inputmethod/latin/makedict/ProbabilityInfo; │ │ - invoke-static {v4}, Lcom/android/inputmethod/latin/utils/CombinedFormatUtils;->formatProbabilityInfo(Lcom/android/inputmethod/latin/makedict/ProbabilityInfo;)Ljava/lang/String; │ + invoke-static {v3}, Lcom/android/inputmethod/latin/utils/CombinedFormatUtils;->formatProbabilityInfo(Lcom/android/inputmethod/latin/makedict/ProbabilityInfo;)Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 60 │ - iget-boolean v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsBeginningOfSentence:Z │ + iget-boolean v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsBeginningOfSentence:Z │ │ - if-eqz v4, :cond_0 │ + if-eqz v3, :cond_0 │ │ .line 61 │ - const-string v4, ",beginning_of_sentence=true" │ + const-string v3, ",beginning_of_sentence=true" │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 63 │ :cond_0 │ - iget-boolean v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsNotAWord:Z │ + iget-boolean v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsNotAWord:Z │ │ - if-eqz v4, :cond_1 │ + if-eqz v3, :cond_1 │ │ .line 64 │ - const-string v4, ",not_a_word=true" │ + const-string v3, ",not_a_word=true" │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 66 │ :cond_1 │ - iget-boolean v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsBlacklistEntry:Z │ + iget-boolean v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mIsBlacklistEntry:Z │ │ - if-eqz v4, :cond_2 │ + if-eqz v3, :cond_2 │ │ .line 67 │ - const-string v4, ",blacklisted=true" │ + const-string v3, ",blacklisted=true" │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 69 │ :cond_2 │ - const-string v4, "\n" │ + const-string v3, "\n" │ │ - invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 70 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ │ - if-eqz v4, :cond_3 │ + if-eqz v3, :cond_3 │ │ .line 71 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets:Ljava/util/ArrayList; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mShortcutTargets: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; │ :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_3 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lcom/android/inputmethod/latin/makedict/WeightedString; │ + check-cast v2, Lcom/android/inputmethod/latin/makedict/WeightedString; │ │ .line 72 │ - .local v3, "shortcutTarget":Lcom/android/inputmethod/latin/makedict/WeightedString; │ + .local v2, "shortcutTarget":Lcom/android/inputmethod/latin/makedict/WeightedString; │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ const-string v5, " shortcut=" │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ - iget-object v5, v3, Lcom/android/inputmethod/latin/makedict/WeightedString;->mWord:Ljava/lang/String; │ + iget-object v5, v2, Lcom/android/inputmethod/latin/makedict/WeightedString;->mWord:Ljava/lang/String; │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ @@ -398,15 +396,15 @@ │ │ .line 73 │ const-string v4, "," │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 74 │ - iget-object v4, v3, Lcom/android/inputmethod/latin/makedict/WeightedString;->mProbabilityInfo:Lcom/android/inputmethod/latin/makedict/ProbabilityInfo; │ + iget-object v4, v2, Lcom/android/inputmethod/latin/makedict/WeightedString;->mProbabilityInfo:Lcom/android/inputmethod/latin/makedict/ProbabilityInfo; │ │ invoke-static {v4}, Lcom/android/inputmethod/latin/utils/CombinedFormatUtils;->formatProbabilityInfo(Lcom/android/inputmethod/latin/makedict/ProbabilityInfo;)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ @@ -414,37 +412,35 @@ │ const-string v4, "\n" │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ .line 78 │ - .end local v2 # "i$":Ljava/util/Iterator; │ - .end local v3 # "shortcutTarget":Lcom/android/inputmethod/latin/makedict/WeightedString; │ + .end local v2 # "shortcutTarget":Lcom/android/inputmethod/latin/makedict/WeightedString; │ :cond_3 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams:Ljava/util/ArrayList; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams:Ljava/util/ArrayList; │ │ - if-eqz v4, :cond_4 │ + if-eqz v3, :cond_4 │ │ .line 79 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams:Ljava/util/ArrayList; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/makedict/WordProperty;->mBigrams: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 │ │ - .restart local v2 # "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - 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, Lcom/android/inputmethod/latin/makedict/WeightedString; │ │ .line 80 │ .local v0, "bigram":Lcom/android/inputmethod/latin/makedict/WeightedString; │ @@ -489,15 +485,14 @@ │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_1 │ │ .line 86 │ .end local v0 # "bigram":Lcom/android/inputmethod/latin/makedict/WeightedString; │ - .end local v2 # "i$":Ljava/util/Iterator; │ :cond_4 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - return-object v4 │ + return-object v3 │ .end method ├── smali/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.smali │ @@ -12,26 +12,26 @@ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 40 │ return-void │ .end method │ │ .method public static getCursorAnchorInfo(Landroid/widget/TextView;)Landroid/view/inputmethod/CursorAnchorInfo; │ - .locals 60 │ + .locals 57 │ .param p0, "textView" # Landroid/widget/TextView; │ │ .prologue │ .line 86 │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getLayout()Landroid/text/Layout; │ │ - move-result-object v30 │ + move-result-object v28 │ │ .line 87 │ - .local v30, "layout":Landroid/text/Layout; │ - if-nez v30, :cond_0 │ + .local v28, "layout":Landroid/text/Layout; │ + if-nez v28, :cond_0 │ │ .line 88 │ const/4 v11, 0x0 │ │ .line 234 │ :goto_0 │ return-object v11 │ @@ -42,589 +42,591 @@ │ │ invoke-direct {v4}, Landroid/view/inputmethod/CursorAnchorInfo$Builder;->()V │ │ .line 93 │ .local v4, "builder":Landroid/view/inputmethod/CursorAnchorInfo$Builder; │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getSelectionStart()I │ │ - move-result v46 │ + move-result v43 │ │ .line 94 │ - .local v46, "selectionStart":I │ + .local v43, "selectionStart":I │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getSelectionEnd()I │ │ move-result v11 │ │ - move/from16 v0, v46 │ + move/from16 v0, v43 │ │ invoke-virtual {v4, v0, v11}, Landroid/view/inputmethod/CursorAnchorInfo$Builder;->setSelectionRange(II)Landroid/view/inputmethod/CursorAnchorInfo$Builder; │ │ .line 97 │ - new-instance v54, Landroid/graphics/Matrix; │ + new-instance v51, Landroid/graphics/Matrix; │ │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getMatrix()Landroid/graphics/Matrix; │ │ move-result-object v11 │ │ - move-object/from16 v0, v54 │ + move-object/from16 v0, v51 │ │ invoke-direct {v0, v11}, Landroid/graphics/Matrix;->(Landroid/graphics/Matrix;)V │ │ .line 98 │ - .local v54, "viewToScreenMatrix":Landroid/graphics/Matrix; │ + .local v51, "viewToScreenMatrix":Landroid/graphics/Matrix; │ const/4 v11, 0x2 │ │ new-array v0, v11, [I │ │ - move-object/from16 v53, v0 │ + move-object/from16 v50, v0 │ │ .line 99 │ - .local v53, "viewOriginInScreen":[I │ + .local v50, "viewOriginInScreen":[I │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v53 │ + move-object/from16 v1, v50 │ │ invoke-virtual {v0, v1}, Landroid/widget/TextView;->getLocationOnScreen([I)V │ │ .line 100 │ const/4 v11, 0x0 │ │ - aget v11, v53, v11 │ + aget v11, v50, v11 │ │ int-to-float v11, v11 │ │ - const/16 v58, 0x1 │ + const/16 v55, 0x1 │ │ - aget v58, v53, v58 │ + aget v55, v50, v55 │ │ - move/from16 v0, v58 │ + move/from16 v0, v55 │ │ int-to-float v0, v0 │ │ - move/from16 v58, v0 │ + move/from16 v55, v0 │ │ - move-object/from16 v0, v54 │ + move-object/from16 v0, v51 │ │ - move/from16 v1, v58 │ + move/from16 v1, v55 │ │ invoke-virtual {v0, v11, v1}, Landroid/graphics/Matrix;->postTranslate(FF)Z │ │ .line 101 │ - move-object/from16 v0, v54 │ + move-object/from16 v0, v51 │ │ invoke-virtual {v4, v0}, Landroid/view/inputmethod/CursorAnchorInfo$Builder;->setMatrix(Landroid/graphics/Matrix;)Landroid/view/inputmethod/CursorAnchorInfo$Builder; │ │ .line 103 │ - invoke-virtual/range {v30 .. v30}, Landroid/text/Layout;->getLineCount()I │ + invoke-virtual/range {v28 .. v28}, Landroid/text/Layout;->getLineCount()I │ │ move-result v11 │ │ if-nez v11, :cond_1 │ │ .line 104 │ const/4 v11, 0x0 │ │ goto :goto_0 │ │ .line 106 │ :cond_1 │ - new-instance v35, Landroid/graphics/Rect; │ + new-instance v32, Landroid/graphics/Rect; │ │ - invoke-direct/range {v35 .. v35}, Landroid/graphics/Rect;->()V │ + invoke-direct/range {v32 .. v32}, Landroid/graphics/Rect;->()V │ │ .line 107 │ - .local v35, "lineBoundsWithoutOffset":Landroid/graphics/Rect; │ - new-instance v34, Landroid/graphics/Rect; │ + .local v32, "lineBoundsWithoutOffset":Landroid/graphics/Rect; │ + new-instance v31, Landroid/graphics/Rect; │ │ - invoke-direct/range {v34 .. v34}, Landroid/graphics/Rect;->()V │ + invoke-direct/range {v31 .. v31}, Landroid/graphics/Rect;->()V │ │ .line 108 │ - .local v34, "lineBoundsWithOffset":Landroid/graphics/Rect; │ + .local v31, "lineBoundsWithOffset":Landroid/graphics/Rect; │ const/4 v11, 0x0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move-object/from16 v1, v35 │ + move-object/from16 v1, v32 │ │ invoke-virtual {v0, v11, v1}, Landroid/text/Layout;->getLineBounds(ILandroid/graphics/Rect;)I │ │ .line 109 │ const/4 v11, 0x0 │ │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v34 │ + move-object/from16 v1, v31 │ │ invoke-virtual {v0, v11, v1}, Landroid/widget/TextView;->getLineBounds(ILandroid/graphics/Rect;)I │ │ .line 110 │ - move-object/from16 v0, v34 │ + move-object/from16 v0, v31 │ │ iget v11, v0, Landroid/graphics/Rect;->left:I │ │ - move-object/from16 v0, v35 │ + move-object/from16 v0, v32 │ │ iget v0, v0, Landroid/graphics/Rect;->left:I │ │ - move/from16 v58, v0 │ + move/from16 v55, v0 │ │ - sub-int v11, v11, v58 │ + sub-int v11, v11, v55 │ │ + .line 111 │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getScrollX()I │ │ - move-result v58 │ + move-result v55 │ │ - sub-int v11, v11, v58 │ + sub-int v11, v11, v55 │ │ int-to-float v0, v11 │ │ - move/from16 v55, v0 │ + move/from16 v52, v0 │ │ .line 112 │ - .local v55, "viewportToContentHorizontalOffset":F │ - move-object/from16 v0, v34 │ + .local v52, "viewportToContentHorizontalOffset":F │ + move-object/from16 v0, v31 │ │ iget v11, v0, Landroid/graphics/Rect;->top:I │ │ - move-object/from16 v0, v35 │ + move-object/from16 v0, v32 │ │ iget v0, v0, Landroid/graphics/Rect;->top:I │ │ - move/from16 v58, v0 │ + move/from16 v55, v0 │ │ - sub-int v11, v11, v58 │ + sub-int v11, v11, v55 │ │ + .line 113 │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getScrollY()I │ │ - move-result v58 │ + move-result v55 │ │ - sub-int v11, v11, v58 │ + sub-int v11, v11, v55 │ │ int-to-float v0, v11 │ │ - move/from16 v56, v0 │ + move/from16 v53, v0 │ │ .line 115 │ - .local v56, "viewportToContentVerticalOffset":F │ + .local v53, "viewportToContentVerticalOffset":F │ invoke-virtual/range {p0 .. p0}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence; │ │ - move-result-object v51 │ + move-result-object v48 │ │ .line 116 │ - .local v51, "text":Ljava/lang/CharSequence; │ - move-object/from16 v0, v51 │ + .local v48, "text":Ljava/lang/CharSequence; │ + move-object/from16 v0, v48 │ │ instance-of v11, v0, Landroid/text/Spannable; │ │ if-eqz v11, :cond_f │ │ .line 119 │ - invoke-interface/range {v51 .. v51}, Ljava/lang/CharSequence;->length()I │ + invoke-interface/range {v48 .. v48}, Ljava/lang/CharSequence;->length()I │ │ - move-result v22 │ + move-result v21 │ │ .line 120 │ - .local v22, "composingTextStart":I │ - const/16 v21, 0x0 │ + .local v21, "composingTextStart":I │ + const/16 v20, 0x0 │ │ - .local v21, "composingTextEnd":I │ - move-object/from16 v49, v51 │ + .local v20, "composingTextEnd":I │ + move-object/from16 v46, v48 │ │ .line 121 │ - check-cast v49, Landroid/text/Spannable; │ + check-cast v46, Landroid/text/Spannable; │ │ .line 122 │ - .local v49, "spannable":Landroid/text/Spannable; │ + .local v46, "spannable":Landroid/text/Spannable; │ const/4 v11, 0x0 │ │ - invoke-interface/range {v51 .. v51}, Ljava/lang/CharSequence;->length()I │ + invoke-interface/range {v48 .. v48}, Ljava/lang/CharSequence;->length()I │ │ - move-result v58 │ + move-result v55 │ │ - const-class v59, Ljava/lang/Object; │ + const-class v56, Ljava/lang/Object; │ │ - move-object/from16 v0, v49 │ + move-object/from16 v0, v46 │ │ - move/from16 v1, v58 │ + move/from16 v1, v55 │ │ - move-object/from16 v2, v59 │ + move-object/from16 v2, v56 │ │ invoke-interface {v0, v11, v1, v2}, Landroid/text/Spannable;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; │ │ - move-result-object v50 │ + move-result-object v47 │ │ .line 123 │ - .local v50, "spans":[Ljava/lang/Object; │ - move-object/from16 v17, v50 │ - │ - .local v17, "arr$":[Ljava/lang/Object; │ - move-object/from16 v0, v17 │ + .local v47, "spans":[Ljava/lang/Object; │ + move-object/from16 v0, v47 │ │ array-length v0, v0 │ │ - move/from16 v32, v0 │ + move/from16 v55, v0 │ │ - .local v32, "len$":I │ - const/16 v24, 0x0 │ + const/4 v11, 0x0 │ │ - .local v24, "i$":I │ :goto_1 │ - move/from16 v0, v24 │ + move/from16 v0, v55 │ │ - move/from16 v1, v32 │ + if-ge v11, v0, :cond_3 │ │ - if-ge v0, v1, :cond_3 │ - │ - aget-object v47, v17, v24 │ + aget-object v44, v47, v11 │ │ .line 124 │ - .local v47, "span":Ljava/lang/Object; │ - move-object/from16 v0, v49 │ + .local v44, "span":Ljava/lang/Object; │ + move-object/from16 v0, v46 │ │ - move-object/from16 v1, v47 │ + move-object/from16 v1, v44 │ │ invoke-interface {v0, v1}, Landroid/text/Spannable;->getSpanFlags(Ljava/lang/Object;)I │ │ - move-result v48 │ + move-result v45 │ │ .line 125 │ - .local v48, "spanFlag":I │ - move/from16 v0, v48 │ + .local v45, "spanFlag":I │ + move/from16 v0, v45 │ │ - and-int/lit16 v11, v0, 0x100 │ + and-int/lit16 v0, v0, 0x100 │ │ - if-eqz v11, :cond_2 │ + move/from16 v56, v0 │ │ - .line 126 │ - move-object/from16 v0, v49 │ + if-eqz v56, :cond_2 │ │ - move-object/from16 v1, v47 │ + .line 127 │ + move-object/from16 v0, v46 │ + │ + move-object/from16 v1, v44 │ │ invoke-interface {v0, v1}, Landroid/text/Spannable;->getSpanStart(Ljava/lang/Object;)I │ │ - move-result v11 │ + move-result v56 │ │ - move/from16 v0, v22 │ + .line 126 │ + move/from16 v0, v21 │ │ - invoke-static {v0, v11}, Ljava/lang/Math;->min(II)I │ + move/from16 v1, v56 │ + │ + invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I │ │ - move-result v22 │ + move-result v21 │ │ .line 128 │ - move-object/from16 v0, v49 │ + move-object/from16 v0, v46 │ │ - move-object/from16 v1, v47 │ + move-object/from16 v1, v44 │ │ invoke-interface {v0, v1}, Landroid/text/Spannable;->getSpanEnd(Ljava/lang/Object;)I │ │ - move-result v11 │ + move-result v56 │ │ - move/from16 v0, v21 │ + move/from16 v0, v20 │ │ - invoke-static {v0, v11}, Ljava/lang/Math;->max(II)I │ + move/from16 v1, v56 │ │ - move-result v21 │ + invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I │ + │ + move-result v20 │ │ .line 123 │ :cond_2 │ - add-int/lit8 v24, v24, 0x1 │ + add-int/lit8 v11, v11, 0x1 │ │ goto :goto_1 │ │ .line 132 │ - .end local v47 # "span":Ljava/lang/Object; │ - .end local v48 # "spanFlag":I │ + .end local v44 # "span":Ljava/lang/Object; │ + .end local v45 # "spanFlag":I │ :cond_3 │ - if-ltz v22, :cond_9 │ + if-ltz v21, :cond_9 │ │ - move/from16 v0, v22 │ + move/from16 v0, v21 │ │ - move/from16 v1, v21 │ + move/from16 v1, v20 │ │ if-ge v0, v1, :cond_9 │ │ - const/16 v23, 0x1 │ + const/16 v22, 0x1 │ │ .line 134 │ - .local v23, "hasComposingText":Z │ + .local v22, "hasComposingText":Z │ :goto_2 │ - if-eqz v23, :cond_f │ + if-eqz v22, :cond_f │ │ .line 135 │ - move-object/from16 v0, v51 │ + move-object/from16 v0, v48 │ │ - move/from16 v1, v22 │ + move/from16 v1, v21 │ │ - move/from16 v2, v21 │ + move/from16 v2, v20 │ │ invoke-interface {v0, v1, v2}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; │ │ - move-result-object v20 │ + move-result-object v19 │ │ .line 137 │ - .local v20, "composingText":Ljava/lang/CharSequence; │ - move/from16 v0, v22 │ + .local v19, "composingText":Ljava/lang/CharSequence; │ + move/from16 v0, v21 │ │ - move-object/from16 v1, v20 │ + move-object/from16 v1, v19 │ │ invoke-virtual {v4, v0, v1}, Landroid/view/inputmethod/CursorAnchorInfo$Builder;->setComposingText(ILjava/lang/CharSequence;)Landroid/view/inputmethod/CursorAnchorInfo$Builder; │ │ .line 139 │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v22 │ + move/from16 v1, v21 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineForOffset(I)I │ │ - move-result v40 │ + move-result v37 │ │ .line 140 │ - .local v40, "minLine":I │ - add-int/lit8 v11, v21, -0x1 │ + .local v37, "minLine":I │ + add-int/lit8 v11, v20, -0x1 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v11}, Landroid/text/Layout;->getLineForOffset(I)I │ │ - move-result v39 │ + move-result v36 │ │ .line 141 │ - .local v39, "maxLine":I │ - move/from16 v33, v40 │ + .local v36, "maxLine":I │ + move/from16 v30, v37 │ │ - .local v33, "line":I │ + .local v30, "line":I │ :goto_3 │ - move/from16 v0, v33 │ + move/from16 v0, v30 │ │ - move/from16 v1, v39 │ + move/from16 v1, v36 │ │ if-gt v0, v1, :cond_f │ │ .line 142 │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineStart(I)I │ │ - move-result v37 │ + move-result v34 │ │ .line 143 │ - .local v37, "lineStart":I │ - move-object/from16 v0, v30 │ + .local v34, "lineStart":I │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineEnd(I)I │ │ - move-result v36 │ + move-result v33 │ │ .line 144 │ - .local v36, "lineEnd":I │ - move/from16 v0, v37 │ + .local v33, "lineEnd":I │ + move/from16 v0, v34 │ │ - move/from16 v1, v22 │ + move/from16 v1, v21 │ │ invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I │ │ - move-result v42 │ + move-result v39 │ │ .line 145 │ - .local v42, "offsetStart":I │ - move/from16 v0, v36 │ + .local v39, "offsetStart":I │ + move/from16 v0, v33 │ │ - move/from16 v1, v21 │ + move/from16 v1, v20 │ │ invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I │ │ - move-result v41 │ + move-result v38 │ │ - .line 146 │ - .local v41, "offsetEnd":I │ - move-object/from16 v0, v30 │ + .line 147 │ + .local v38, "offsetEnd":I │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getParagraphDirection(I)I │ │ move-result v11 │ │ - const/16 v58, 0x1 │ + const/16 v55, 0x1 │ │ - move/from16 v0, v58 │ + move/from16 v0, v55 │ │ if-ne v11, v0, :cond_a │ │ - const/16 v38, 0x1 │ + const/16 v35, 0x1 │ │ .line 148 │ - .local v38, "ltrLine":Z │ + .local v35, "ltrLine":Z │ :goto_4 │ - sub-int v11, v41, v42 │ + sub-int v11, v38, v39 │ │ new-array v0, v11, [F │ │ - move-object/from16 v57, v0 │ + move-object/from16 v54, v0 │ │ .line 149 │ - .local v57, "widths":[F │ - invoke-virtual/range {v30 .. v30}, Landroid/text/Layout;->getPaint()Landroid/text/TextPaint; │ + .local v54, "widths":[F │ + invoke-virtual/range {v28 .. v28}, Landroid/text/Layout;->getPaint()Landroid/text/TextPaint; │ │ move-result-object v11 │ │ - move-object/from16 v0, v51 │ + move-object/from16 v0, v48 │ │ - move/from16 v1, v42 │ + move/from16 v1, v39 │ │ - move/from16 v2, v41 │ + move/from16 v2, v38 │ │ - move-object/from16 v3, v57 │ + move-object/from16 v3, v54 │ │ invoke-virtual {v11, v0, v1, v2, v3}, Landroid/text/TextPaint;->getTextWidths(Ljava/lang/CharSequence;II[F)I │ │ .line 150 │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I │ │ move-result v11 │ │ int-to-float v0, v11 │ │ - move/from16 v52, v0 │ + move/from16 v49, v0 │ │ .line 151 │ - .local v52, "top":F │ - move-object/from16 v0, v30 │ + .local v49, "top":F │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I │ │ move-result v11 │ │ int-to-float v0, v11 │ │ - move/from16 v18, v0 │ + move/from16 v17, v0 │ │ .line 152 │ - .local v18, "bottom":F │ - move/from16 v5, v42 │ + .local v17, "bottom":F │ + move/from16 v5, v39 │ │ .local v5, "offset":I │ :goto_5 │ - move/from16 v0, v41 │ + move/from16 v0, v38 │ │ if-ge v5, v0, :cond_e │ │ .line 153 │ - sub-int v11, v5, v42 │ + sub-int v11, v5, v39 │ │ - aget v19, v57, v11 │ + aget v18, v54, v11 │ │ .line 154 │ - .local v19, "charWidth":F │ - move-object/from16 v0, v30 │ + .local v18, "charWidth":F │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v5}, Landroid/text/Layout;->isRtlCharAt(I)Z │ │ - move-result v27 │ + move-result v25 │ │ .line 155 │ - .local v27, "isRtl":Z │ - move-object/from16 v0, v30 │ + .local v25, "isRtl":Z │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v5}, Landroid/text/Layout;->getPrimaryHorizontal(I)F │ │ - move-result v43 │ + move-result v40 │ │ .line 156 │ - .local v43, "primary":F │ - move-object/from16 v0, v30 │ + .local v40, "primary":F │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v5}, Landroid/text/Layout;->getSecondaryHorizontal(I)F │ │ - move-result v45 │ + move-result v42 │ │ .line 161 │ - .local v45, "secondary":F │ - if-eqz v38, :cond_c │ + .local v42, "secondary":F │ + if-eqz v35, :cond_c │ │ .line 162 │ - if-eqz v27, :cond_b │ + if-eqz v25, :cond_b │ │ .line 163 │ - sub-float v31, v45, v19 │ + sub-float v29, v42, v18 │ │ .line 164 │ - .local v31, "left":F │ - move/from16 v44, v45 │ + .local v29, "left":F │ + move/from16 v41, v42 │ │ .line 179 │ - .local v44, "right":F │ + .local v41, "right":F │ :goto_6 │ - add-float v6, v31, v55 │ + add-float v6, v29, v52 │ │ .line 180 │ .local v6, "localLeft":F │ - add-float v8, v44, v55 │ + add-float v8, v41, v52 │ │ .line 181 │ .local v8, "localRight":F │ - add-float v7, v52, v56 │ + add-float v7, v49, v53 │ │ .line 182 │ .local v7, "localTop":F │ - add-float v9, v18, v56 │ + add-float v9, v17, v53 │ │ .line 183 │ .local v9, "localBottom":F │ move-object/from16 v0, p0 │ │ invoke-static {v0, v6, v7}, Lcom/android/inputmethod/latin/utils/CursorAnchorInfoUtils;->isPositionVisible(Landroid/view/View;FF)Z │ │ - move-result v28 │ + move-result v26 │ │ - .line 185 │ - .local v28, "isTopLeftVisible":Z │ + .line 186 │ + .local v26, "isTopLeftVisible":Z │ move-object/from16 v0, p0 │ │ invoke-static {v0, v8, v9}, Lcom/android/inputmethod/latin/utils/CursorAnchorInfoUtils;->isPositionVisible(Landroid/view/View;FF)Z │ │ - move-result v25 │ + move-result v23 │ │ .line 187 │ - .local v25, "isBottomRightVisible":Z │ + .local v23, "isBottomRightVisible":Z │ const/4 v10, 0x0 │ │ .line 188 │ .local v10, "characterBoundsFlags":I │ - if-nez v28, :cond_4 │ + if-nez v26, :cond_4 │ │ - if-eqz v25, :cond_5 │ + if-eqz v23, :cond_5 │ │ .line 189 │ :cond_4 │ or-int/lit8 v10, v10, 0x1 │ │ .line 191 │ :cond_5 │ - if-eqz v28, :cond_6 │ + if-eqz v26, :cond_6 │ │ - if-nez v28, :cond_7 │ + if-nez v26, :cond_7 │ │ .line 192 │ :cond_6 │ or-int/lit8 v10, v10, 0x2 │ │ .line 194 │ :cond_7 │ - if-eqz v27, :cond_8 │ + if-eqz v25, :cond_8 │ │ .line 195 │ or-int/lit8 v10, v10, 0x4 │ │ .line 198 │ :cond_8 │ invoke-virtual/range {v4 .. v10}, Landroid/view/inputmethod/CursorAnchorInfo$Builder;->addCharacterBounds(IFFFFI)Landroid/view/inputmethod/CursorAnchorInfo$Builder; │ @@ -637,247 +639,244 @@ │ .line 132 │ .end local v5 # "offset":I │ .end local v6 # "localLeft":F │ .end local v7 # "localTop":F │ .end local v8 # "localRight":F │ .end local v9 # "localBottom":F │ .end local v10 # "characterBoundsFlags":I │ - .end local v18 # "bottom":F │ - .end local v19 # "charWidth":F │ - .end local v20 # "composingText":Ljava/lang/CharSequence; │ - .end local v23 # "hasComposingText":Z │ - .end local v25 # "isBottomRightVisible":Z │ - .end local v27 # "isRtl":Z │ - .end local v28 # "isTopLeftVisible":Z │ - .end local v31 # "left":F │ - .end local v33 # "line":I │ - .end local v36 # "lineEnd":I │ - .end local v37 # "lineStart":I │ - .end local v38 # "ltrLine":Z │ - .end local v39 # "maxLine":I │ - .end local v40 # "minLine":I │ - .end local v41 # "offsetEnd":I │ - .end local v42 # "offsetStart":I │ - .end local v43 # "primary":F │ - .end local v44 # "right":F │ - .end local v45 # "secondary":F │ - .end local v52 # "top":F │ - .end local v57 # "widths":[F │ + .end local v17 # "bottom":F │ + .end local v18 # "charWidth":F │ + .end local v19 # "composingText":Ljava/lang/CharSequence; │ + .end local v22 # "hasComposingText":Z │ + .end local v23 # "isBottomRightVisible":Z │ + .end local v25 # "isRtl":Z │ + .end local v26 # "isTopLeftVisible":Z │ + .end local v29 # "left":F │ + .end local v30 # "line":I │ + .end local v33 # "lineEnd":I │ + .end local v34 # "lineStart":I │ + .end local v35 # "ltrLine":Z │ + .end local v36 # "maxLine":I │ + .end local v37 # "minLine":I │ + .end local v38 # "offsetEnd":I │ + .end local v39 # "offsetStart":I │ + .end local v40 # "primary":F │ + .end local v41 # "right":F │ + .end local v42 # "secondary":F │ + .end local v49 # "top":F │ + .end local v54 # "widths":[F │ :cond_9 │ - const/16 v23, 0x0 │ + const/16 v22, 0x0 │ │ goto/16 :goto_2 │ │ - .line 146 │ - .restart local v20 # "composingText":Ljava/lang/CharSequence; │ - .restart local v23 # "hasComposingText":Z │ - .restart local v33 # "line":I │ - .restart local v36 # "lineEnd":I │ - .restart local v37 # "lineStart":I │ - .restart local v39 # "maxLine":I │ - .restart local v40 # "minLine":I │ - .restart local v41 # "offsetEnd":I │ - .restart local v42 # "offsetStart":I │ + .line 147 │ + .restart local v19 # "composingText":Ljava/lang/CharSequence; │ + .restart local v22 # "hasComposingText":Z │ + .restart local v30 # "line":I │ + .restart local v33 # "lineEnd":I │ + .restart local v34 # "lineStart":I │ + .restart local v36 # "maxLine":I │ + .restart local v37 # "minLine":I │ + .restart local v38 # "offsetEnd":I │ + .restart local v39 # "offsetStart":I │ :cond_a │ - const/16 v38, 0x0 │ + const/16 v35, 0x0 │ │ goto :goto_4 │ │ .line 166 │ .restart local v5 # "offset":I │ - .restart local v18 # "bottom":F │ - .restart local v19 # "charWidth":F │ - .restart local v27 # "isRtl":Z │ - .restart local v38 # "ltrLine":Z │ - .restart local v43 # "primary":F │ - .restart local v45 # "secondary":F │ - .restart local v52 # "top":F │ - .restart local v57 # "widths":[F │ + .restart local v17 # "bottom":F │ + .restart local v18 # "charWidth":F │ + .restart local v25 # "isRtl":Z │ + .restart local v35 # "ltrLine":Z │ + .restart local v40 # "primary":F │ + .restart local v42 # "secondary":F │ + .restart local v49 # "top":F │ + .restart local v54 # "widths":[F │ :cond_b │ - move/from16 v31, v43 │ + move/from16 v29, v40 │ │ .line 167 │ - .restart local v31 # "left":F │ - add-float v44, v43, v19 │ + .restart local v29 # "left":F │ + add-float v41, v40, v18 │ │ - .restart local v44 # "right":F │ + .restart local v41 # "right":F │ goto :goto_6 │ │ .line 170 │ - .end local v31 # "left":F │ - .end local v44 # "right":F │ + .end local v29 # "left":F │ + .end local v41 # "right":F │ :cond_c │ - if-nez v27, :cond_d │ + if-nez v25, :cond_d │ │ .line 171 │ - move/from16 v31, v45 │ + move/from16 v29, v42 │ │ .line 172 │ - .restart local v31 # "left":F │ - add-float v44, v45, v19 │ + .restart local v29 # "left":F │ + add-float v41, v42, v18 │ │ - .restart local v44 # "right":F │ + .restart local v41 # "right":F │ goto :goto_6 │ │ .line 174 │ - .end local v31 # "left":F │ - .end local v44 # "right":F │ + .end local v29 # "left":F │ + .end local v41 # "right":F │ :cond_d │ - sub-float v31, v43, v19 │ + sub-float v29, v40, v18 │ │ .line 175 │ - .restart local v31 # "left":F │ - move/from16 v44, v43 │ + .restart local v29 # "left":F │ + move/from16 v41, v40 │ │ - .restart local v44 # "right":F │ + .restart local v41 # "right":F │ goto :goto_6 │ │ .line 141 │ - .end local v19 # "charWidth":F │ - .end local v27 # "isRtl":Z │ - .end local v31 # "left":F │ - .end local v43 # "primary":F │ - .end local v44 # "right":F │ - .end local v45 # "secondary":F │ + .end local v18 # "charWidth":F │ + .end local v25 # "isRtl":Z │ + .end local v29 # "left":F │ + .end local v40 # "primary":F │ + .end local v41 # "right":F │ + .end local v42 # "secondary":F │ :cond_e │ - add-int/lit8 v33, v33, 0x1 │ + add-int/lit8 v30, v30, 0x1 │ │ goto/16 :goto_3 │ │ .line 206 │ .end local v5 # "offset":I │ - .end local v17 # "arr$":[Ljava/lang/Object; │ - .end local v18 # "bottom":F │ - .end local v20 # "composingText":Ljava/lang/CharSequence; │ - .end local v21 # "composingTextEnd":I │ - .end local v22 # "composingTextStart":I │ - .end local v23 # "hasComposingText":Z │ - .end local v24 # "i$":I │ - .end local v32 # "len$":I │ - .end local v33 # "line":I │ - .end local v36 # "lineEnd":I │ - .end local v37 # "lineStart":I │ - .end local v38 # "ltrLine":Z │ - .end local v39 # "maxLine":I │ - .end local v40 # "minLine":I │ - .end local v41 # "offsetEnd":I │ - .end local v42 # "offsetStart":I │ - .end local v49 # "spannable":Landroid/text/Spannable; │ - .end local v50 # "spans":[Ljava/lang/Object; │ - .end local v52 # "top":F │ - .end local v57 # "widths":[F │ + .end local v17 # "bottom":F │ + .end local v19 # "composingText":Ljava/lang/CharSequence; │ + .end local v20 # "composingTextEnd":I │ + .end local v21 # "composingTextStart":I │ + .end local v22 # "hasComposingText":Z │ + .end local v30 # "line":I │ + .end local v33 # "lineEnd":I │ + .end local v34 # "lineStart":I │ + .end local v35 # "ltrLine":Z │ + .end local v36 # "maxLine":I │ + .end local v37 # "minLine":I │ + .end local v38 # "offsetEnd":I │ + .end local v39 # "offsetStart":I │ + .end local v46 # "spannable":Landroid/text/Spannable; │ + .end local v47 # "spans":[Ljava/lang/Object; │ + .end local v49 # "top":F │ + .end local v54 # "widths":[F │ :cond_f │ - if-ltz v46, :cond_15 │ + if-ltz v43, :cond_15 │ │ .line 207 │ - move/from16 v5, v46 │ + move/from16 v5, v43 │ │ .line 208 │ .restart local v5 # "offset":I │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v5}, Landroid/text/Layout;->getLineForOffset(I)I │ │ - move-result v33 │ + move-result v30 │ │ .line 209 │ - .restart local v33 # "line":I │ - move-object/from16 v0, v30 │ + .restart local v30 # "line":I │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v5}, Landroid/text/Layout;->getPrimaryHorizontal(I)F │ │ move-result v11 │ │ - add-float v12, v11, v55 │ + add-float v12, v11, v52 │ │ .line 211 │ .local v12, "insertionMarkerX":F │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineTop(I)I │ │ move-result v11 │ │ int-to-float v11, v11 │ │ - add-float v13, v11, v56 │ + add-float v13, v11, v53 │ │ .line 213 │ .local v13, "insertionMarkerTop":F │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBaseline(I)I │ │ move-result v11 │ │ int-to-float v11, v11 │ │ - add-float v14, v11, v56 │ + add-float v14, v11, v53 │ │ .line 215 │ .local v14, "insertionMarkerBaseline":F │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ - move/from16 v1, v33 │ + move/from16 v1, v30 │ │ invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBottom(I)I │ │ move-result v11 │ │ int-to-float v11, v11 │ │ - add-float v15, v11, v56 │ + add-float v15, v11, v53 │ │ - .line 217 │ + .line 218 │ .local v15, "insertionMarkerBottom":F │ move-object/from16 v0, p0 │ │ invoke-static {v0, v12, v13}, Lcom/android/inputmethod/latin/utils/CursorAnchorInfoUtils;->isPositionVisible(Landroid/view/View;FF)Z │ │ - move-result v29 │ + move-result v27 │ │ - .line 219 │ - .local v29, "isTopVisible":Z │ + .line 220 │ + .local v27, "isTopVisible":Z │ move-object/from16 v0, p0 │ │ invoke-static {v0, v12, v15}, Lcom/android/inputmethod/latin/utils/CursorAnchorInfoUtils;->isPositionVisible(Landroid/view/View;FF)Z │ │ - move-result v26 │ + move-result v24 │ │ .line 221 │ - .local v26, "isBottomVisible":Z │ + .local v24, "isBottomVisible":Z │ const/16 v16, 0x0 │ │ .line 222 │ .local v16, "insertionMarkerFlags":I │ - if-nez v29, :cond_10 │ + if-nez v27, :cond_10 │ │ - if-eqz v26, :cond_11 │ + if-eqz v24, :cond_11 │ │ .line 223 │ :cond_10 │ or-int/lit8 v16, v16, 0x1 │ │ .line 225 │ :cond_11 │ - if-eqz v29, :cond_12 │ + if-eqz v27, :cond_12 │ │ - if-nez v26, :cond_13 │ + if-nez v24, :cond_13 │ │ .line 226 │ :cond_12 │ or-int/lit8 v16, v16, 0x2 │ │ .line 228 │ :cond_13 │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v28 │ │ invoke-virtual {v0, v5}, Landroid/text/Layout;->isRtlCharAt(I)Z │ │ move-result v11 │ │ if-eqz v11, :cond_14 │ │ @@ -893,17 +892,17 @@ │ .line 234 │ .end local v5 # "offset":I │ .end local v12 # "insertionMarkerX":F │ .end local v13 # "insertionMarkerTop":F │ .end local v14 # "insertionMarkerBaseline":F │ .end local v15 # "insertionMarkerBottom":F │ .end local v16 # "insertionMarkerFlags":I │ - .end local v26 # "isBottomVisible":Z │ - .end local v29 # "isTopVisible":Z │ - .end local v33 # "line":I │ + .end local v24 # "isBottomVisible":Z │ + .end local v27 # "isTopVisible":Z │ + .end local v30 # "line":I │ :cond_15 │ invoke-virtual {v4}, Landroid/view/inputmethod/CursorAnchorInfo$Builder;->build()Landroid/view/inputmethod/CursorAnchorInfo; │ │ move-result-object v11 │ │ goto/16 :goto_0 │ .end method │ @@ -980,14 +979,15 @@ │ │ cmpg-float v5, v5, v7 │ │ if-ltz v5, :cond_1 │ │ aget v5, v2, v3 │ │ + .line 55 │ invoke-virtual {v0}, Landroid/view/View;->getWidth()I │ │ move-result v6 │ │ int-to-float v6, v6 │ │ cmpl-float v5, v5, v6 ├── smali/com/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo.smali │ @@ -129,18 +129,20 @@ │ │ iget-object v4, p0, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->mFileAddress:Lorg/smc/inputmethod/indic/AssetFileAddress; │ │ iget-object v4, v4, Lorg/smc/inputmethod/indic/AssetFileAddress;->mFilename:Ljava/lang/String; │ │ invoke-direct {v3, v4}, Ljava/io/File;->(Ljava/lang/String;)V │ │ + .line 81 │ invoke-virtual {v3}, Ljava/io/File;->lastModified()J │ │ move-result-wide v4 │ │ + .line 80 │ invoke-virtual {v2, v4, v5}, Ljava/util/concurrent/TimeUnit;->toSeconds(J)J │ │ move-result-wide v2 │ │ invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v2 ├── smali/com/android/inputmethod/latin/utils/DictionaryInfoUtils.smali │ @@ -405,15 +405,15 @@ │ │ aget-object v2, v1, v2 │ │ goto :goto_0 │ .end method │ │ .method public static getCurrentDictionaryFileNameAndVersionInfo(Landroid/content/Context;)Ljava/util/ArrayList; │ - .locals 22 │ + .locals 19 │ .param p0, "context" # Landroid/content/Context; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Landroid/content/Context;", │ ")", │ "Ljava/util/ArrayList", │ @@ -421,279 +421,259 @@ │ "Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 340 │ - new-instance v6, Ljava/util/ArrayList; │ + new-instance v3, Ljava/util/ArrayList; │ │ - invoke-direct {v6}, Ljava/util/ArrayList;->()V │ + invoke-direct {v3}, Ljava/util/ArrayList;->()V │ │ .line 343 │ - .local v6, "dictList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .local v3, "dictList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-static/range {p0 .. p0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCachedDirectoryList(Landroid/content/Context;)[Ljava/io/File; │ │ - move-result-object v10 │ + move-result-object v7 │ │ .line 344 │ - .local v10, "directoryList":[Ljava/io/File; │ - if-eqz v10, :cond_3 │ + .local v7, "directoryList":[Ljava/io/File; │ + if-eqz v7, :cond_3 │ │ .line 345 │ - move-object v2, v10 │ + array-length v0, v7 │ │ - .local v2, "arr$":[Ljava/io/File; │ - array-length v14, v2 │ + move/from16 v16, v0 │ │ - .local v14, "len$":I │ - const/4 v12, 0x0 │ + const/4 v14, 0x0 │ │ - .local v12, "i$":I │ - move v13, v12 │ + move v15, v14 │ │ - .end local v2 # "arr$":[Ljava/io/File; │ - .end local v12 # "i$":I │ - .end local v14 # "len$":I │ - .local v13, "i$":I │ :goto_0 │ - if-ge v13, v14, :cond_3 │ + move/from16 v0, v16 │ + │ + if-ge v15, v0, :cond_3 │ │ - aget-object v9, v2, v13 │ + aget-object v6, v7, v15 │ │ .line 346 │ - .local v9, "directory":Ljava/io/File; │ - invoke-virtual {v9}, Ljava/io/File;->getName()Ljava/lang/String; │ + .local v6, "directory":Ljava/io/File; │ + invoke-virtual {v6}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v21 │ + move-result-object v14 │ │ - invoke-static/range {v21 .. v21}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v14}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v17 │ + move-result-object v10 │ │ .line 347 │ - .local v17, "localeString":Ljava/lang/String; │ - move-object/from16 v0, v17 │ - │ - move-object/from16 v1, p0 │ + .local v10, "localeString":Ljava/lang/String; │ + move-object/from16 v0, p0 │ │ - invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->getCachedWordLists(Ljava/lang/String;Landroid/content/Context;)[Ljava/io/File; │ + invoke-static {v10, v0}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->getCachedWordLists(Ljava/lang/String;Landroid/content/Context;)[Ljava/io/File; │ │ - move-result-object v8 │ + move-result-object v5 │ │ .line 348 │ - .local v8, "dicts":[Ljava/io/File; │ - move-object v3, v8 │ + .local v5, "dicts":[Ljava/io/File; │ + array-length v0, v5 │ │ - .local v3, "arr$":[Ljava/io/File; │ - array-length v15, v3 │ + move/from16 v17, v0 │ │ - .local v15, "len$":I │ - const/4 v12, 0x0 │ + const/4 v14, 0x0 │ │ - .end local v13 # "i$":I │ - .restart local v12 # "i$":I │ :goto_1 │ - if-ge v12, v15, :cond_2 │ + move/from16 v0, v17 │ + │ + if-ge v14, v0, :cond_2 │ │ - aget-object v5, v3, v12 │ + aget-object v2, v5, v14 │ │ .line 349 │ - .local v5, "dict":Ljava/io/File; │ - invoke-virtual {v5}, Ljava/io/File;->getName()Ljava/lang/String; │ + .local v2, "dict":Ljava/io/File; │ + invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v21 │ + move-result-object v18 │ │ - invoke-static/range {v21 .. v21}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static/range {v18 .. v18}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v20 │ + move-result-object v13 │ │ .line 350 │ - .local v20, "wordListId":Ljava/lang/String; │ - invoke-static/range {v20 .. v20}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->isMainWordListId(Ljava/lang/String;)Z │ + .local v13, "wordListId":Ljava/lang/String; │ + invoke-static {v13}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->isMainWordListId(Ljava/lang/String;)Z │ │ - move-result v21 │ + move-result v18 │ │ - if-nez v21, :cond_1 │ + if-nez v18, :cond_1 │ │ .line 348 │ :cond_0 │ :goto_2 │ - add-int/lit8 v12, v12, 0x1 │ + add-int/lit8 v14, v14, 0x1 │ │ goto :goto_1 │ │ .line 351 │ :cond_1 │ - invoke-static/range {v17 .. v17}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ + invoke-static {v10}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ │ - move-result-object v16 │ + move-result-object v9 │ │ .line 352 │ - .local v16, "locale":Ljava/util/Locale; │ - invoke-static {v5}, Lorg/smc/inputmethod/indic/AssetFileAddress;->makeFromFile(Ljava/io/File;)Lorg/smc/inputmethod/indic/AssetFileAddress; │ + .local v9, "locale":Ljava/util/Locale; │ + invoke-static {v2}, Lorg/smc/inputmethod/indic/AssetFileAddress;->makeFromFile(Ljava/io/File;)Lorg/smc/inputmethod/indic/AssetFileAddress; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - .line 353 │ - .local v11, "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - invoke-static {v11}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->createDictionaryInfoFromFileAddress(Lorg/smc/inputmethod/indic/AssetFileAddress;)Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ + .line 354 │ + .local v8, "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ + invoke-static {v8}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->createDictionaryInfoFromFileAddress(Lorg/smc/inputmethod/indic/AssetFileAddress;)Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 358 │ - .local v7, "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ - if-eqz v7, :cond_0 │ - │ - iget-object v0, v7, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->mLocale:Ljava/util/Locale; │ + .local v4, "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ + if-eqz v4, :cond_0 │ │ - move-object/from16 v21, v0 │ + iget-object v0, v4, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->mLocale:Ljava/util/Locale; │ │ - move-object/from16 v0, v21 │ + move-object/from16 v18, v0 │ │ - move-object/from16 v1, v16 │ + move-object/from16 v0, v18 │ │ - invoke-virtual {v0, v1}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v9}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ - move-result v21 │ + move-result v18 │ │ - if-eqz v21, :cond_0 │ + if-eqz v18, :cond_0 │ │ .line 359 │ - invoke-static {v6, v7}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->addOrUpdateDictInfo(Ljava/util/ArrayList;Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;)V │ + invoke-static {v3, v4}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->addOrUpdateDictInfo(Ljava/util/ArrayList;Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;)V │ │ goto :goto_2 │ │ .line 345 │ - .end local v5 # "dict":Ljava/io/File; │ - .end local v7 # "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ - .end local v11 # "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - .end local v16 # "locale":Ljava/util/Locale; │ - .end local v20 # "wordListId":Ljava/lang/String; │ + .end local v2 # "dict":Ljava/io/File; │ + .end local v4 # "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ + .end local v8 # "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ + .end local v9 # "locale":Ljava/util/Locale; │ + .end local v13 # "wordListId":Ljava/lang/String; │ :cond_2 │ - add-int/lit8 v12, v13, 0x1 │ + add-int/lit8 v14, v15, 0x1 │ │ - move v13, v12 │ + move v15, v14 │ │ - .end local v12 # "i$":I │ - .restart local v13 # "i$":I │ goto :goto_0 │ │ .line 365 │ - .end local v3 # "arr$":[Ljava/io/File; │ - .end local v8 # "dicts":[Ljava/io/File; │ - .end local v9 # "directory":Ljava/io/File; │ - .end local v13 # "i$":I │ - .end local v15 # "len$":I │ - .end local v17 # "localeString":Ljava/lang/String; │ + .end local v5 # "dicts":[Ljava/io/File; │ + .end local v6 # "directory":Ljava/io/File; │ + .end local v10 # "localeString":Ljava/lang/String; │ :cond_3 │ invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v19 │ + move-result-object v12 │ │ .line 366 │ - .local v19, "resources":Landroid/content/res/Resources; │ - invoke-virtual/range {v19 .. v19}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager; │ + .local v12, "resources":Landroid/content/res/Resources; │ + invoke-virtual {v12}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager; │ │ - move-result-object v4 │ + move-result-object v1 │ │ .line 367 │ - .local v4, "assets":Landroid/content/res/AssetManager; │ - invoke-virtual {v4}, Landroid/content/res/AssetManager;->getLocales()[Ljava/lang/String; │ + .local v1, "assets":Landroid/content/res/AssetManager; │ + invoke-virtual {v1}, Landroid/content/res/AssetManager;->getLocales()[Ljava/lang/String; │ + │ + move-result-object v15 │ │ - move-result-object v2 │ + array-length v0, v15 │ │ - .local v2, "arr$":[Ljava/lang/String; │ - array-length v14, v2 │ + move/from16 v16, v0 │ │ - .restart local v14 # "len$":I │ - const/4 v12, 0x0 │ + const/4 v14, 0x0 │ │ - .restart local v12 # "i$":I │ :goto_3 │ - if-ge v12, v14, :cond_6 │ + move/from16 v0, v16 │ │ - aget-object v17, v2, v12 │ + if-ge v14, v0, :cond_6 │ + │ + aget-object v10, v15, v14 │ │ .line 368 │ - .restart local v17 # "localeString":Ljava/lang/String; │ - invoke-static/range {v17 .. v17}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ + .restart local v10 # "localeString":Ljava/lang/String; │ + invoke-static {v10}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ │ - move-result-object v16 │ + move-result-object v9 │ │ - .line 369 │ - .restart local v16 # "locale":Ljava/util/Locale; │ + .line 371 │ + .restart local v9 # "locale":Ljava/util/Locale; │ invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v21 │ - │ - move-object/from16 v0, v21 │ + move-result-object v17 │ │ - move-object/from16 v1, v16 │ + .line 370 │ + move-object/from16 v0, v17 │ │ - invoke-static {v0, v1}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getMainDictionaryResourceIdIfAvailableForLocale(Landroid/content/res/Resources;Ljava/util/Locale;)I │ + invoke-static {v0, v9}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getMainDictionaryResourceIdIfAvailableForLocale(Landroid/content/res/Resources;Ljava/util/Locale;)I │ │ - move-result v18 │ + move-result v11 │ │ .line 372 │ - .local v18, "resourceId":I │ - if-nez v18, :cond_5 │ + .local v11, "resourceId":I │ + if-nez v11, :cond_5 │ │ .line 367 │ :cond_4 │ :goto_4 │ - add-int/lit8 v12, v12, 0x1 │ + add-int/lit8 v14, v14, 0x1 │ │ goto :goto_3 │ │ - .line 373 │ + .line 374 │ :cond_5 │ move-object/from16 v0, p0 │ │ - move/from16 v1, v18 │ - │ - invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->loadFallbackResource(Landroid/content/Context;I)Lorg/smc/inputmethod/indic/AssetFileAddress; │ + invoke-static {v0, v11}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->loadFallbackResource(Landroid/content/Context;I)Lorg/smc/inputmethod/indic/AssetFileAddress; │ │ - move-result-object v11 │ + move-result-object v8 │ │ .line 375 │ - .restart local v11 # "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - invoke-static {v11}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->createDictionaryInfoFromFileAddress(Lorg/smc/inputmethod/indic/AssetFileAddress;)Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ + .restart local v8 # "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ + invoke-static {v8}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->createDictionaryInfoFromFileAddress(Lorg/smc/inputmethod/indic/AssetFileAddress;)Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 379 │ - .restart local v7 # "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ - iget-object v0, v7, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->mLocale:Ljava/util/Locale; │ - │ - move-object/from16 v21, v0 │ + .restart local v4 # "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ + iget-object v0, v4, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->mLocale:Ljava/util/Locale; │ │ - move-object/from16 v0, v21 │ + move-object/from16 v17, v0 │ │ - move-object/from16 v1, v16 │ + move-object/from16 v0, v17 │ │ - invoke-virtual {v0, v1}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v9}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ - move-result v21 │ + move-result v17 │ │ - if-eqz v21, :cond_4 │ + if-eqz v17, :cond_4 │ │ .line 380 │ - invoke-static {v6, v7}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->addOrUpdateDictInfo(Ljava/util/ArrayList;Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;)V │ + invoke-static {v3, v4}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->addOrUpdateDictInfo(Ljava/util/ArrayList;Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;)V │ │ goto :goto_4 │ │ .line 383 │ - .end local v7 # "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ - .end local v11 # "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - .end local v16 # "locale":Ljava/util/Locale; │ - .end local v17 # "localeString":Ljava/lang/String; │ - .end local v18 # "resourceId":I │ + .end local v4 # "dictionaryInfo":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ + .end local v8 # "fileAddress":Lorg/smc/inputmethod/indic/AssetFileAddress; │ + .end local v9 # "locale":Ljava/util/Locale; │ + .end local v10 # "localeString":Ljava/lang/String; │ + .end local v11 # "resourceId":I │ :cond_6 │ - return-object v6 │ + return-object v3 │ .end method │ │ .method public static getDictionaryFileHeaderOrNull(Ljava/io/File;)Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ .locals 4 │ .param p0, "file" # Ljava/io/File; │ │ .prologue │ @@ -717,14 +697,15 @@ │ .param p1, "offset" # J │ .param p3, "length" # J │ │ .prologue │ const/4 v1, 0x0 │ │ .line 293 │ + .line 294 │ :try_start_0 │ invoke-static {p0, p1, p2, p3, p4}, Lcom/android/inputmethod/latin/utils/BinaryDictionaryUtils;->getHeaderWithOffsetAndLength(Ljava/io/File;JJ)Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ :try_end_0 │ .catch Lcom/android/inputmethod/latin/makedict/UnsupportedFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1 │ │ move-result-object v1 │ @@ -763,14 +744,15 @@ │ │ const-string v1, "main:" │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ + .line 283 │ invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/String;->toString()Ljava/lang/String; │ │ move-result-object v1 │ @@ -779,14 +761,15 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 282 │ return-object v0 │ .end method │ │ .method public static getMainDictionaryResourceId(Landroid/content/res/Resources;Ljava/util/Locale;)I │ .locals 4 │ .param p0, "res" # Landroid/content/res/Resources; │ .param p1, "locale" # Ljava/util/Locale; │ @@ -845,14 +828,15 @@ │ │ const-string v4, "main_" │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ + .line 242 │ invoke-virtual {p1}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ sget-object v5, Ljava/util/Locale;->ROOT:Ljava/util/Locale; │ │ invoke-virtual {v4, v5}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ @@ -1026,20 +1010,22 @@ │ :cond_0 │ add-int/lit8 v5, v3, 0x1 │ │ add-int/lit8 v6, v3, 0x1 │ │ add-int/lit8 v6, v6, 0x6 │ │ + .line 156 │ invoke-virtual {p0, v5, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v5 │ │ const/16 v6, 0x10 │ │ + .line 155 │ invoke-static {v5, v6}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I │ │ move-result v1 │ │ .line 157 │ .local v1, "encodedCodePoint":I │ add-int/lit8 v3, v3, 0x6 │ @@ -1339,20 +1325,22 @@ │ │ const-string v5, "%%%1$06x" │ │ new-array v6, v9, [Ljava/lang/Object; │ │ const/4 v7, 0x0 │ │ + .line 123 │ invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v8 │ │ aput-object v8, v6, v7 │ │ + .line 122 │ 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-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_1 ├── smali/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.smali │ @@ -68,20 +68,22 @@ │ .method static constructor ()V │ .locals 1 │ │ .prologue │ .line 48 │ const-class v0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions; │ │ + .line 49 │ invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->TAG:Ljava/lang/String; │ │ + .line 48 │ return-void │ .end method │ │ .method public constructor (Landroid/content/Context;)V │ .locals 2 │ .param p1, "context" # Landroid/content/Context; │ │ @@ -168,14 +170,15 @@ │ │ move-result v12 │ │ .line 245 │ .local v12, "trailingSingleQuotesCount":I │ if-lez v12, :cond_1 │ │ + .line 246 │ invoke-virtual {p1}, Ljava/lang/String;->length()I │ │ move-result v0 │ │ sub-int/2addr v0, v12 │ │ invoke-virtual {p1, v10, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ @@ -216,20 +219,22 @@ │ .line 254 │ iget-object v0, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ sget-object v2, Lcom/android/inputmethod/latin/PrevWordsInfo;->EMPTY_PREV_WORDS_INFO:Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ iget-object v3, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ + .line 255 │ invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/Keyboard;->getProximityInfo()Lcom/android/inputmethod/keyboard/ProximityInfo; │ │ move-result-object v3 │ │ const/4 v5, 0x0 │ │ + .line 254 │ invoke-virtual/range {v0 .. v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSuggestionResults(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion;I)Lcom/android/inputmethod/latin/utils/SuggestionResults; │ │ move-result-object v11 │ │ .line 257 │ .local v11, "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ invoke-virtual {v11}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->isEmpty()Z │ @@ -257,15 +262,15 @@ │ │ .end local v1 # "composer":Lorg/smc/inputmethod/indic/WordComposer; │ .end local v6 # "codePoints":[I │ .end local v7 # "consideredWord":Ljava/lang/String; │ :cond_1 │ move-object v7, p1 │ │ - .line 245 │ + .line 246 │ goto :goto_1 │ │ .line 260 │ .restart local v1 # "composer":Lorg/smc/inputmethod/indic/WordComposer; │ .restart local v6 # "codePoints":[I │ .restart local v7 # "consideredWord":Ljava/lang/String; │ .restart local v8 # "coordinates":[I │ @@ -724,15 +729,15 @@ │ .line 179 │ monitor-exit v7 │ :try_end_4 │ .catchall {:try_start_4 .. :try_end_4} :catchall_0 │ │ goto :goto_0 │ │ - .line 195 │ + .line 196 │ .end local v0 # "e":Ljava/lang/InterruptedException; │ .restart local v1 # "isCachedDistracter":Ljava/lang/Boolean; │ :cond_4 │ invoke-direct {p0, p2}, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->checkDistracterUsingMaxFreqencyOfExactMatches(Ljava/lang/String;)Z │ │ move-result v2 │ │ @@ -760,15 +765,15 @@ │ │ move-result v4 │ │ .line 204 │ .local v4, "isValidWord":Z │ if-nez v4, :cond_0 │ │ - .line 212 │ + .line 213 │ invoke-direct {p0, p2}, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->checkDistracterUsingGetSuggestions(Ljava/lang/String;)Z │ │ move-result v3 │ │ .line 214 │ .local v3, "isDistracterCheckedByGetSuggestion":Z │ if-eqz v3, :cond_0 │ @@ -783,121 +788,119 @@ │ move v5, v6 │ │ .line 217 │ goto/16 :goto_0 │ .end method │ │ .method public updateEnabledSubtypes(Ljava/util/List;)V │ - .locals 6 │ + .locals 5 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/util/List", │ "<", │ "Landroid/view/inputmethod/InputMethodSubtype;", │ ">;)V" │ } │ .end annotation │ │ .prologue │ .line 91 │ .local p1, "enabledSubtypes":Ljava/util/List;, "Ljava/util/List;" │ - new-instance v2, Ljava/util/HashMap; │ + new-instance v1, Ljava/util/HashMap; │ │ - invoke-direct {v2}, Ljava/util/HashMap;->()V │ + invoke-direct {v1}, Ljava/util/HashMap;->()V │ │ .line 92 │ - .local v2, "newLocaleToSubtypeMap":Ljava/util/Map;, "Ljava/util/Map;" │ + .local v1, "newLocaleToSubtypeMap":Ljava/util/Map;, "Ljava/util/Map;" │ if-eqz p1, :cond_1 │ │ .line 93 │ invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v2, Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 94 │ - .local v3, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-static {v3}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/util/Locale; │ + .local v2, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-static {v2}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/util/Locale; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 95 │ - .local v1, "locale":Ljava/util/Locale; │ - invoke-interface {v2, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z │ + .local v0, "locale":Ljava/util/Locale; │ + invoke-interface {v1, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ .line 100 │ - invoke-interface {v2, v1, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v1, v0, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 103 │ - .end local v0 # "i$":Ljava/util/Iterator; │ - .end local v1 # "locale":Ljava/util/Locale; │ - .end local v3 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v0 # "locale":Ljava/util/Locale; │ + .end local v2 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_1 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToSubtypeMap:Ljava/util/Map; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToSubtypeMap:Ljava/util/Map; │ │ - invoke-interface {v4, v2}, Ljava/util/Map;->equals(Ljava/lang/Object;)Z │ + invoke-interface {v3, v1}, Ljava/util/Map;->equals(Ljava/lang/Object;)Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_2 │ + if-eqz v3, :cond_2 │ │ .line 112 │ :goto_1 │ return-void │ │ .line 107 │ :cond_2 │ - iget-object v5, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLock:Ljava/lang/Object; │ + iget-object v4, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLock:Ljava/lang/Object; │ │ - monitor-enter v5 │ + monitor-enter v4 │ │ .line 108 │ :try_start_0 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToSubtypeMap:Ljava/util/Map; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToSubtypeMap:Ljava/util/Map; │ │ - invoke-interface {v4}, Ljava/util/Map;->clear()V │ + invoke-interface {v3}, Ljava/util/Map;->clear()V │ │ .line 109 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToSubtypeMap:Ljava/util/Map; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToSubtypeMap:Ljava/util/Map; │ │ - invoke-interface {v4, v2}, Ljava/util/Map;->putAll(Ljava/util/Map;)V │ + invoke-interface {v3, v1}, Ljava/util/Map;->putAll(Ljava/util/Map;)V │ │ .line 110 │ - iget-object v4, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToKeyboardMap:Ljava/util/Map; │ + iget-object v3, p0, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions;->mLocaleToKeyboardMap:Ljava/util/Map; │ │ - invoke-interface {v4}, Ljava/util/Map;->clear()V │ + invoke-interface {v3}, Ljava/util/Map;->clear()V │ │ .line 111 │ - monitor-exit v5 │ + monitor-exit v4 │ │ goto :goto_1 │ │ :catchall_0 │ - move-exception v4 │ + move-exception v3 │ │ - monitor-exit v5 │ + monitor-exit v4 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v4 │ + throw v3 │ .end method ├── smali/com/android/inputmethod/latin/utils/ExecutorUtils.smali │ @@ -43,15 +43,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 29 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 33 │ return-void │ .end method │ │ .method static synthetic access$000()Ljava/util/concurrent/ConcurrentHashMap; │ .locals 1 │ │ .prologue │ @@ -137,67 +136,67 @@ │ .method public static shutdownAllExecutors()V │ .locals 4 │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ .line 68 │ - sget-object v3, Lcom/android/inputmethod/latin/utils/ExecutorUtils;->sExecutorMap:Ljava/util/concurrent/ConcurrentHashMap; │ + sget-object v2, Lcom/android/inputmethod/latin/utils/ExecutorUtils;->sExecutorMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - monitor-enter v3 │ + monitor-enter v2 │ │ .line 69 │ :try_start_0 │ - sget-object v2, Lcom/android/inputmethod/latin/utils/ExecutorUtils;->sExecutorMap:Ljava/util/concurrent/ConcurrentHashMap; │ + sget-object v1, Lcom/android/inputmethod/latin/utils/ExecutorUtils;->sExecutorMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-virtual {v2}, Ljava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection; │ + invoke-virtual {v1}, Ljava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ + .local v0, "executor":Ljava/util/concurrent/ExecutorService; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v2 │ + move-result v3 │ │ - if-eqz v2, :cond_0 │ + if-eqz v3, :cond_0 │ │ invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ + .end local v0 # "executor":Ljava/util/concurrent/ExecutorService; │ check-cast v0, Ljava/util/concurrent/ExecutorService; │ │ .line 70 │ - .local v0, "executor":Ljava/util/concurrent/ExecutorService; │ - new-instance v2, Lcom/android/inputmethod/latin/utils/ExecutorUtils$1; │ + .restart local v0 # "executor":Ljava/util/concurrent/ExecutorService; │ + new-instance v3, Lcom/android/inputmethod/latin/utils/ExecutorUtils$1; │ │ - invoke-direct {v2, v0}, Lcom/android/inputmethod/latin/utils/ExecutorUtils$1;->(Ljava/util/concurrent/ExecutorService;)V │ + invoke-direct {v3, v0}, Lcom/android/inputmethod/latin/utils/ExecutorUtils$1;->(Ljava/util/concurrent/ExecutorService;)V │ │ - invoke-interface {v0, v2}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ + invoke-interface {v0, v3}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V │ │ goto :goto_0 │ │ .line 78 │ - .end local v0 # "executor":Ljava/util/concurrent/ExecutorService; │ :catchall_0 │ - move-exception v2 │ + move-exception v1 │ │ - monitor-exit v3 │ + monitor-exit v2 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v2 │ + throw v1 │ │ :cond_0 │ :try_start_1 │ - monitor-exit v3 │ + monitor-exit v2 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ .line 79 │ return-void │ .end method ├── smali/com/android/inputmethod/latin/utils/FileUtils.smali │ @@ -11,130 +11,124 @@ │ .line 25 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method public static deleteFilteredFiles(Ljava/io/File;Ljava/io/FilenameFilter;)Z │ - .locals 7 │ + .locals 6 │ .param p0, "dir" # Ljava/io/File; │ .param p1, "fileNameFilter" # Ljava/io/FilenameFilter; │ │ .prologue │ const/4 v3, 0x0 │ │ .line 39 │ invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z │ │ - move-result v6 │ + move-result v4 │ + │ + if-nez v4, :cond_1 │ │ - if-nez v6, :cond_1 │ + move v2, v3 │ │ .line 52 │ :cond_0 │ - return v3 │ + :goto_0 │ + return v2 │ │ .line 42 │ :cond_1 │ invoke-virtual {p0, p1}, Ljava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 43 │ - .local v2, "files":[Ljava/io/File; │ - if-eqz v2, :cond_0 │ + .local v1, "files":[Ljava/io/File; │ + if-nez v1, :cond_2 │ │ - .line 46 │ - const/4 v3, 0x1 │ + move v2, v3 │ │ - .line 47 │ - .local v3, "hasDeletedAllFiles":Z │ - move-object v0, v2 │ + .line 44 │ + goto :goto_0 │ │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v5, v0 │ + .line 46 │ + :cond_2 │ + const/4 v2, 0x1 │ │ - .local v5, "len$":I │ - const/4 v4, 0x0 │ + .line 47 │ + .local v2, "hasDeletedAllFiles":Z │ + array-length v4, v1 │ │ - .local v4, "i$":I │ - :goto_0 │ - if-ge v4, v5, :cond_0 │ + :goto_1 │ + if-ge v3, v4, :cond_0 │ │ - aget-object v1, v0, v4 │ + aget-object v0, v1, v3 │ │ .line 48 │ - .local v1, "file":Ljava/io/File; │ - invoke-static {v1}, Lcom/android/inputmethod/latin/utils/FileUtils;->deleteRecursively(Ljava/io/File;)Z │ + .local v0, "file":Ljava/io/File; │ + invoke-static {v0}, Lcom/android/inputmethod/latin/utils/FileUtils;->deleteRecursively(Ljava/io/File;)Z │ │ - move-result v6 │ + move-result v5 │ │ - if-nez v6, :cond_2 │ + if-nez v5, :cond_3 │ │ .line 49 │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ .line 47 │ - :cond_2 │ - add-int/lit8 v4, v4, 0x1 │ + :cond_3 │ + add-int/lit8 v3, v3, 0x1 │ │ - goto :goto_0 │ + goto :goto_1 │ .end method │ │ .method public static deleteRecursively(Ljava/io/File;)Z │ - .locals 6 │ + .locals 4 │ .param p0, "path" # Ljava/io/File; │ │ .prologue │ .line 27 │ invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z │ │ - move-result v5 │ + move-result v2 │ │ - if-eqz v5, :cond_0 │ + if-eqz v2, :cond_0 │ │ .line 28 │ invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 29 │ - .local v2, "files":[Ljava/io/File; │ - if-eqz v2, :cond_0 │ + .local v1, "files":[Ljava/io/File; │ + if-eqz v1, :cond_0 │ │ .line 30 │ - move-object v0, v2 │ - │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v4, v0 │ + array-length v3, v1 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_0 │ + if-ge v2, v3, :cond_0 │ │ - aget-object v1, v0, v3 │ + aget-object v0, v1, v2 │ │ .line 31 │ - .local v1, "child":Ljava/io/File; │ - invoke-static {v1}, Lcom/android/inputmethod/latin/utils/FileUtils;->deleteRecursively(Ljava/io/File;)Z │ + .local v0, "child":Ljava/io/File; │ + invoke-static {v0}, Lcom/android/inputmethod/latin/utils/FileUtils;->deleteRecursively(Ljava/io/File;)Z │ │ .line 30 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 35 │ - .end local v0 # "arr$":[Ljava/io/File; │ - .end local v1 # "child":Ljava/io/File; │ - .end local v2 # "files":[Ljava/io/File; │ - .end local v3 # "i$":I │ - .end local v4 # "len$":I │ + .end local v0 # "child":Ljava/io/File; │ + .end local v1 # "files":[Ljava/io/File; │ :cond_0 │ invoke-virtual {p0}, Ljava/io/File;->delete()Z │ │ - move-result v5 │ + move-result v2 │ │ - return v5 │ + return v2 │ .end method ├── smali/com/android/inputmethod/latin/utils/ImportantNoticeUtils.smali │ @@ -288,18 +288,20 @@ │ .line 96 │ invoke-interface {v4}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ move-result-object v5 │ │ const-string v6, "timestamp_of_first_important_notice" │ │ + .line 97 │ invoke-interface {v5, v6, p1, p2}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v5 │ │ + .line 98 │ invoke-interface {v5}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 100 │ :cond_0 │ const-string v5, "timestamp_of_first_important_notice" │ │ invoke-interface {v4, v5, p1, p2}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J │ @@ -333,21 +335,23 @@ │ .locals 5 │ .param p0, "context" # Landroid/content/Context; │ │ .prologue │ const/4 v2, 0x0 │ │ .line 58 │ + .line 59 │ :try_start_0 │ invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v3 │ │ const-string v4, "user_setup_complete" │ │ + .line 58 │ invoke-static {v3, v4}, Landroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I │ :try_end_0 │ .catch Landroid/provider/Settings$SettingNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result v1 │ │ .line 60 │ @@ -446,32 +450,36 @@ │ │ .prologue │ .line 125 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/ImportantNoticeUtils;->getImportantNoticePreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ move-result-object v0 │ │ + .line 126 │ invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ move-result-object v0 │ │ const-string v1, "important_notice_version" │ │ + .line 127 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/ImportantNoticeUtils;->getNextImportantNoticeVersion(Landroid/content/Context;)I │ │ move-result v2 │ │ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v0 │ │ const-string v1, "timestamp_of_first_important_notice" │ │ + .line 128 │ invoke-interface {v0, v1}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v0 │ │ + .line 129 │ invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 130 │ return-void │ .end method ├── smali/com/android/inputmethod/latin/utils/InputTypeUtils.smali │ @@ -98,64 +98,61 @@ │ │ and-int/lit16 v0, v0, 0xff │ │ goto :goto_0 │ .end method │ │ .method public static isAutoSpaceFriendlyType(I)Z │ - .locals 8 │ + .locals 7 │ .param p0, "inputType" # I │ │ .prologue │ - const/4 v6, 0x1 │ + const/4 v3, 0x1 │ │ - const/4 v5, 0x0 │ + const/4 v2, 0x0 │ │ .line 99 │ - and-int/lit8 v7, p0, 0xf │ + and-int/lit8 v4, p0, 0xf │ │ - if-eq v6, v7, :cond_1 │ + if-eq v3, v4, :cond_1 │ │ .line 104 │ :cond_0 │ :goto_0 │ - return v5 │ + return v2 │ │ .line 100 │ :cond_1 │ - and-int/lit16 v4, p0, 0xff0 │ + and-int/lit16 v1, p0, 0xff0 │ │ .line 101 │ - .local v4, "variation":I │ - sget-object v0, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->SUPPRESSING_AUTO_SPACES_FIELD_VARIATION:[I │ + .local v1, "variation":I │ + sget-object v5, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->SUPPRESSING_AUTO_SPACES_FIELD_VARIATION:[I │ │ - .local v0, "arr$":[I │ - array-length v3, v0 │ + array-length v6, v5 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ + move v4, v2 │ │ - .local v2, "i$":I │ :goto_1 │ - if-ge v2, v3, :cond_2 │ + if-ge v4, v6, :cond_2 │ │ - aget v1, v0, v2 │ + aget v0, v5, v4 │ │ .line 102 │ - .local v1, "fieldVariation":I │ - if-eq v4, v1, :cond_0 │ + .local v0, "fieldVariation":I │ + if-eq v1, v0, :cond_0 │ │ .line 101 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_1 │ │ - .end local v1 # "fieldVariation":I │ + .end local v0 # "fieldVariation":I │ :cond_2 │ - move v5, v6 │ + move v2, v3 │ │ .line 104 │ goto :goto_0 │ .end method │ │ .method public static isEmailVariation(I)Z │ .locals 1 │ @@ -163,26 +160,29 @@ │ │ .prologue │ .line 72 │ const/16 v0, 0x20 │ │ if-eq p0, v0, :cond_0 │ │ + .line 73 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isWebEmailAddressVariation(I)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 72 │ :goto_0 │ return v0 │ │ + .line 73 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static isNumberPasswordInputType(I)Z │ @@ -224,26 +224,29 @@ │ │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isWebPasswordInputType(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ + .line 88 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isNumberPasswordInputType(I)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ :cond_0 │ const/4 v1, 0x1 │ │ + .line 87 │ :goto_0 │ return v1 │ │ + .line 88 │ :cond_1 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static isTextPasswordInputType(I)Z │ @@ -373,26 +376,29 @@ │ │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isWebPasswordInputType(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ + .line 80 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isWebEmailAddressInputType(I)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ :cond_0 │ const/4 v1, 0x1 │ │ + .line 79 │ :goto_0 │ return v1 │ │ + .line 80 │ :cond_1 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static isWebPasswordInputType(I)Z ├── smali/com/android/inputmethod/latin/utils/JsonUtils.smali │ @@ -288,151 +288,146 @@ │ .prologue │ .line 69 │ .local p0, "list":Ljava/util/List;, "Ljava/util/List;" │ if-eqz p0, :cond_0 │ │ invoke-interface {p0}, Ljava/util/List;->isEmpty()Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_1 │ + if-eqz v3, :cond_1 │ │ .line 70 │ :cond_0 │ - const-string v4, "" │ + const-string v3, "" │ │ .line 91 │ :goto_0 │ - return-object v4 │ + return-object v3 │ │ .line 72 │ :cond_1 │ - new-instance v2, Ljava/io/StringWriter; │ + new-instance v1, Ljava/io/StringWriter; │ │ - invoke-direct {v2}, Ljava/io/StringWriter;->()V │ + invoke-direct {v1}, Ljava/io/StringWriter;->()V │ │ .line 73 │ - .local v2, "sw":Ljava/io/StringWriter; │ - new-instance v3, Landroid/util/JsonWriter; │ + .local v1, "sw":Ljava/io/StringWriter; │ + new-instance v2, Landroid/util/JsonWriter; │ │ - invoke-direct {v3, v2}, Landroid/util/JsonWriter;->(Ljava/io/Writer;)V │ + invoke-direct {v2, v1}, Landroid/util/JsonWriter;->(Ljava/io/Writer;)V │ │ .line 75 │ - .local v3, "writer":Landroid/util/JsonWriter; │ + .local v2, "writer":Landroid/util/JsonWriter; │ :try_start_0 │ - invoke-virtual {v3}, Landroid/util/JsonWriter;->beginArray()Landroid/util/JsonWriter; │ + invoke-virtual {v2}, Landroid/util/JsonWriter;->beginArray()Landroid/util/JsonWriter; │ │ .line 76 │ invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_4 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 77 │ - .local v1, "o":Ljava/lang/Object; │ - invoke-virtual {v3}, Landroid/util/JsonWriter;->beginObject()Landroid/util/JsonWriter; │ + .local v0, "o":Ljava/lang/Object; │ + invoke-virtual {v2}, Landroid/util/JsonWriter;->beginObject()Landroid/util/JsonWriter; │ │ .line 78 │ - instance-of v4, v1, Ljava/lang/Integer; │ + instance-of v4, v0, Ljava/lang/Integer; │ │ if-eqz v4, :cond_3 │ │ .line 79 │ sget-object v4, Lcom/android/inputmethod/latin/utils/JsonUtils;->INTEGER_CLASS_NAME:Ljava/lang/String; │ │ - invoke-virtual {v3, v4}, Landroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter; │ + invoke-virtual {v2, v4}, Landroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter; │ │ move-result-object v4 │ │ - check-cast v1, Ljava/lang/Integer; │ + check-cast v0, Ljava/lang/Integer; │ │ - .end local v1 # "o":Ljava/lang/Object; │ - invoke-virtual {v4, v1}, Landroid/util/JsonWriter;->value(Ljava/lang/Number;)Landroid/util/JsonWriter; │ + .end local v0 # "o":Ljava/lang/Object; │ + invoke-virtual {v4, v0}, Landroid/util/JsonWriter;->value(Ljava/lang/Number;)Landroid/util/JsonWriter; │ │ .line 83 │ :cond_2 │ :goto_2 │ - invoke-virtual {v3}, Landroid/util/JsonWriter;->endObject()Landroid/util/JsonWriter; │ + invoke-virtual {v2}, Landroid/util/JsonWriter;->endObject()Landroid/util/JsonWriter; │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ goto :goto_1 │ │ .line 87 │ - .end local v0 # "i$":Ljava/util/Iterator; │ :catch_0 │ - move-exception v4 │ + move-exception v3 │ │ .line 89 │ - invoke-static {v3}, Lcom/android/inputmethod/latin/utils/JsonUtils;->close(Ljava/io/Closeable;)V │ + invoke-static {v2}, Lcom/android/inputmethod/latin/utils/JsonUtils;->close(Ljava/io/Closeable;)V │ │ .line 91 │ - const-string v4, "" │ + const-string v3, "" │ │ goto :goto_0 │ │ .line 80 │ - .restart local v0 # "i$":Ljava/util/Iterator; │ - .restart local v1 # "o":Ljava/lang/Object; │ + .restart local v0 # "o":Ljava/lang/Object; │ :cond_3 │ :try_start_1 │ - instance-of v4, v1, Ljava/lang/String; │ + instance-of v4, v0, Ljava/lang/String; │ │ if-eqz v4, :cond_2 │ │ .line 81 │ sget-object v4, Lcom/android/inputmethod/latin/utils/JsonUtils;->STRING_CLASS_NAME:Ljava/lang/String; │ │ - invoke-virtual {v3, v4}, Landroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter; │ + invoke-virtual {v2, v4}, Landroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter; │ │ move-result-object v4 │ │ - check-cast v1, Ljava/lang/String; │ + check-cast v0, Ljava/lang/String; │ │ - .end local v1 # "o":Ljava/lang/Object; │ - invoke-virtual {v4, v1}, Landroid/util/JsonWriter;->value(Ljava/lang/String;)Landroid/util/JsonWriter; │ + .end local v0 # "o":Ljava/lang/Object; │ + invoke-virtual {v4, v0}, Landroid/util/JsonWriter;->value(Ljava/lang/String;)Landroid/util/JsonWriter; │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_2 │ │ .line 89 │ - .end local v0 # "i$":Ljava/util/Iterator; │ :catchall_0 │ - move-exception v4 │ + move-exception v3 │ │ - invoke-static {v3}, Lcom/android/inputmethod/latin/utils/JsonUtils;->close(Ljava/io/Closeable;)V │ + invoke-static {v2}, Lcom/android/inputmethod/latin/utils/JsonUtils;->close(Ljava/io/Closeable;)V │ │ - throw v4 │ + throw v3 │ │ .line 85 │ - .restart local v0 # "i$":Ljava/util/Iterator; │ :cond_4 │ :try_start_2 │ - invoke-virtual {v3}, Landroid/util/JsonWriter;->endArray()Landroid/util/JsonWriter; │ + invoke-virtual {v2}, Landroid/util/JsonWriter;->endArray()Landroid/util/JsonWriter; │ │ .line 86 │ - invoke-virtual {v2}, Ljava/io/StringWriter;->toString()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/io/StringWriter;->toString()Ljava/lang/String; │ :try_end_2 │ .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 89 │ - invoke-static {v3}, Lcom/android/inputmethod/latin/utils/JsonUtils;->close(Ljava/io/Closeable;)V │ + invoke-static {v2}, Lcom/android/inputmethod/latin/utils/JsonUtils;->close(Ljava/io/Closeable;)V │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/latin/utils/LanguageModelParam.smali │ @@ -170,14 +170,15 @@ │ │ move-result v1 │ │ const/4 v5, 0x1 │ │ if-ne v1, v5, :cond_0 │ │ + .line 158 │ invoke-virtual {p0}, Lcom/android/inputmethod/latin/PrevWordsInfo;->isValid()Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ if-nez p3, :cond_0 │ @@ -355,15 +356,15 @@ │ │ .line 107 │ sget-object v4, Lcom/android/inputmethod/latin/PrevWordsInfo;->EMPTY_PREV_WORDS_INFO:Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ .line 108 │ goto :goto_1 │ │ - .line 113 │ + .line 114 │ :cond_2 │ invoke-static {v4, v5, p1, p2, p4}, Lcom/android/inputmethod/latin/utils/LanguageModelParam;->detectWhetherVaildWordOrNotAndGetLanguageModelParam(Lcom/android/inputmethod/latin/PrevWordsInfo;Ljava/lang/String;ILorg/smc/inputmethod/indic/DictionaryFacilitator;Lcom/android/inputmethod/latin/utils/DistracterFilter;)Lcom/android/inputmethod/latin/utils/LanguageModelParam; │ │ move-result-object v2 │ │ .line 117 │ .local v2, "languageModelParam":Lcom/android/inputmethod/latin/utils/LanguageModelParam; ├── smali/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.smali │ @@ -199,14 +199,15 @@ │ :cond_5 │ invoke-virtual {p1, v4}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordSeparator(I)Z │ │ move-result v9 │ │ if-nez v9, :cond_6 │ │ + .line 96 │ invoke-virtual {p1, v4}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordConnector(I)Z │ │ move-result v9 │ │ if-eqz v9, :cond_7 │ │ .line 97 ├── smali/com/android/inputmethod/latin/utils/RecapitalizeStatus.smali │ @@ -654,14 +654,15 @@ │ iput v4, p0, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->mCursorStartAfter:I │ │ iput v4, p0, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->mCursorStartBefore:I │ │ .line 188 │ iget-object v4, p0, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->mStringBefore:Ljava/lang/String; │ │ + .line 189 │ invoke-virtual {v4, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v4 │ │ iput-object v4, p0, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->mStringBefore:Ljava/lang/String; │ │ iput-object v4, p0, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->mStringAfter:Ljava/lang/String; ├── smali/com/android/inputmethod/latin/utils/RunInLocale.smali │ @@ -98,15 +98,15 @@ │ :cond_0 │ invoke-virtual {p0, p1}, Lcom/android/inputmethod/latin/utils/RunInLocale;->job(Landroid/content/res/Resources;)Ljava/lang/Object; │ │ move-result-object v2 │ │ monitor-exit v3 │ │ - .line 49 │ + .line 46 │ :goto_0 │ return-object v2 │ │ .line 42 │ :cond_1 │ iget-object v1, v0, Landroid/content/res/Configuration;->locale:Ljava/util/Locale; │ :try_end_0 ├── smali/com/android/inputmethod/latin/utils/ResourceUtils.smali │ @@ -273,74 +273,71 @@ │ } │ .end annotation │ │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ - .line 126 │ .local p0, "keyValuePairs":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ + const/4 v6, 0x0 │ + │ + .line 126 │ if-eqz p1, :cond_0 │ │ if-nez p0, :cond_2 │ │ .line 127 │ :cond_0 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 153 │ :cond_1 │ - return-object v4 │ + return-object v3 │ │ .line 129 │ :cond_2 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 130 │ - .local v4, "foundValue":Ljava/lang/String; │ - move-object v0, p1 │ - │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v6, v0 │ + .local v3, "foundValue":Ljava/lang/String; │ + array-length v7, p1 │ │ - .local v6, "len$":I │ - const/4 v5, 0x0 │ + move v5, v6 │ │ - .local v5, "i$":I │ :goto_0 │ - if-ge v5, v6, :cond_1 │ + if-ge v5, v7, :cond_1 │ │ - aget-object v2, v0, v5 │ + aget-object v1, p1, v5 │ │ .line 131 │ - .local v2, "conditionConstant":Ljava/lang/String; │ + .local v1, "conditionConstant":Ljava/lang/String; │ const/16 v8, 0x2c │ │ - invoke-virtual {v2, v8}, Ljava/lang/String;->indexOf(I)I │ + invoke-virtual {v1, v8}, Ljava/lang/String;->indexOf(I)I │ │ - move-result v7 │ + move-result v4 │ │ .line 132 │ - .local v7, "posComma":I │ - if-gez v7, :cond_4 │ + .local v4, "posComma":I │ + if-gez v4, :cond_4 │ │ .line 133 │ sget-object v8, Lcom/android/inputmethod/latin/utils/ResourceUtils;->TAG:Ljava/lang/String; │ │ new-instance v9, Ljava/lang/StringBuilder; │ │ invoke-direct {v9}, Ljava/lang/StringBuilder;->()V │ │ const-string v10, "Array element has no comma: " │ │ invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ - invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v9, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v9 │ │ @@ -351,23 +348,21 @@ │ :goto_1 │ add-int/lit8 v5, v5, 0x1 │ │ goto :goto_0 │ │ .line 136 │ :cond_4 │ - const/4 v8, 0x0 │ + invoke-virtual {v1, v6, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ - invoke-virtual {v2, v8, v7}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ - │ - move-result-object v1 │ + move-result-object v0 │ │ .line 137 │ - .local v1, "condition":Ljava/lang/String; │ - invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z │ + .local v0, "condition":Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z │ │ move-result v8 │ │ if-eqz v8, :cond_5 │ │ .line 138 │ sget-object v8, Lcom/android/inputmethod/latin/utils/ResourceUtils;->TAG:Ljava/lang/String; │ @@ -378,66 +373,66 @@ │ │ const-string v10, "Array element has no condition: " │ │ invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ - invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v9, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-static {v8, v9}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_1 │ │ .line 142 │ :cond_5 │ :try_start_0 │ - invoke-static {p0, v1}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->fulfillsCondition(Ljava/util/HashMap;Ljava/lang/String;)Z │ + invoke-static {p0, v0}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->fulfillsCondition(Ljava/util/HashMap;Ljava/lang/String;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_3 │ │ .line 144 │ - if-nez v4, :cond_3 │ + if-nez v3, :cond_3 │ │ .line 145 │ - add-int/lit8 v8, v7, 0x1 │ + add-int/lit8 v8, v4, 0x1 │ │ - invoke-virtual {v2, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ + invoke-virtual {v1, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ :try_end_0 │ .catch Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result-object v4 │ + move-result-object v3 │ │ goto :goto_1 │ │ .line 149 │ :catch_0 │ - move-exception v3 │ + move-exception v2 │ │ .line 150 │ - .local v3, "e":Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ + .local v2, "e":Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ sget-object v8, Lcom/android/inputmethod/latin/utils/ResourceUtils;->TAG:Ljava/lang/String; │ │ const-string v9, "Syntax error, ignored" │ │ - invoke-static {v8, v9, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v8, v9, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ goto :goto_1 │ .end method │ │ .method private static fulfillsCondition(Ljava/util/HashMap;Ljava/lang/String;)Z │ - .locals 13 │ + .locals 12 │ .param p1, "condition" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/util/HashMap", │ "<", │ "Ljava/lang/String;", │ @@ -451,143 +446,138 @@ │ .annotation system Ldalvik/annotation/Throws; │ value = { │ Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ } │ .end annotation │ │ .prologue │ - .line 158 │ .local p0, "keyValuePairs":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ - const-string v11, ":" │ + const/4 v9, 0x0 │ │ - invoke-virtual {p1, v11}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + .line 158 │ + const-string v8, ":" │ │ - move-result-object v8 │ + invoke-virtual {p1, v8}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + │ + move-result-object v5 │ │ .line 160 │ - .local v8, "patterns":[Ljava/lang/String; │ - const/4 v5, 0x1 │ + .local v5, "patterns":[Ljava/lang/String; │ + const/4 v2, 0x1 │ │ .line 161 │ - .local v5, "matchedAll":Z │ - move-object v0, v8 │ + .local v2, "matchedAll":Z │ + array-length v10, v5 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v4, v0 │ - │ - .local v4, "len$":I │ - const/4 v2, 0x0 │ + move v8, v9 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v4, :cond_3 │ + if-ge v8, v10, :cond_3 │ │ - aget-object v6, v0, v2 │ + aget-object v3, v5, v8 │ │ .line 162 │ - .local v6, "pattern":Ljava/lang/String; │ + .local v3, "pattern":Ljava/lang/String; │ const/16 v11, 0x3d │ │ - invoke-virtual {v6, v11}, Ljava/lang/String;->indexOf(I)I │ + invoke-virtual {v3, v11}, Ljava/lang/String;->indexOf(I)I │ │ - move-result v9 │ + move-result v6 │ │ .line 163 │ - .local v9, "posEqual":I │ - if-gez v9, :cond_0 │ + .local v6, "posEqual":I │ + if-gez v6, :cond_0 │ │ .line 164 │ - new-instance v11, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ + new-instance v8, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ │ - const-string v12, "Pattern has no \'=\'" │ + const-string v9, "Pattern has no \'=\'" │ │ - invoke-direct {v11, v12, p1}, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError;->(Ljava/lang/String;Ljava/lang/String;)V │ + invoke-direct {v8, v9, p1}, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - throw v11 │ + throw v8 │ │ .line 166 │ :cond_0 │ - const/4 v11, 0x0 │ + invoke-virtual {v3, v9, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ - invoke-virtual {v6, v11, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ - │ - move-result-object v3 │ + move-result-object v1 │ │ .line 167 │ - .local v3, "key":Ljava/lang/String; │ - invoke-virtual {p0, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + .local v1, "key":Ljava/lang/String; │ + invoke-virtual {p0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - check-cast v10, Ljava/lang/String; │ + check-cast v7, Ljava/lang/String; │ │ .line 168 │ - .local v10, "value":Ljava/lang/String; │ - if-nez v10, :cond_1 │ + .local v7, "value":Ljava/lang/String; │ + if-nez v7, :cond_1 │ │ .line 169 │ - new-instance v11, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ + new-instance v8, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ │ - const-string v12, "Unknown key" │ + const-string v9, "Unknown key" │ │ - invoke-direct {v11, v12, p1}, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError;->(Ljava/lang/String;Ljava/lang/String;)V │ + invoke-direct {v8, v9, p1}, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError;->(Ljava/lang/String;Ljava/lang/String;)V │ │ - throw v11 │ + throw v8 │ │ .line 171 │ :cond_1 │ - add-int/lit8 v11, v9, 0x1 │ + add-int/lit8 v11, v6, 0x1 │ │ - invoke-virtual {v6, v11}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ + invoke-virtual {v3, v11}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 173 │ - .local v7, "patternRegexpValue":Ljava/lang/String; │ + .local v4, "patternRegexpValue":Ljava/lang/String; │ :try_start_0 │ - invoke-virtual {v10, v7}, Ljava/lang/String;->matches(Ljava/lang/String;)Z │ + invoke-virtual {v7, v4}, Ljava/lang/String;->matches(Ljava/lang/String;)Z │ :try_end_0 │ .catch Ljava/util/regex/PatternSyntaxException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result v11 │ │ if-nez v11, :cond_2 │ │ .line 174 │ - const/4 v5, 0x0 │ + const/4 v2, 0x0 │ │ .line 161 │ :cond_2 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v8, v8, 0x1 │ │ goto :goto_0 │ │ .line 177 │ :catch_0 │ - move-exception v1 │ + move-exception v0 │ │ .line 178 │ - .local v1, "e":Ljava/util/regex/PatternSyntaxException; │ - new-instance v11, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ + .local v0, "e":Ljava/util/regex/PatternSyntaxException; │ + new-instance v8, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError; │ │ - const-string v12, "Syntax error" │ + const-string v9, "Syntax error" │ │ - invoke-direct {v11, v12, p1, v1}, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V │ + invoke-direct {v8, v9, p1, v0}, Lcom/android/inputmethod/latin/utils/ResourceUtils$DeviceOverridePatternSyntaxError;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V │ │ - throw v11 │ + throw v8 │ │ .line 181 │ - .end local v1 # "e":Ljava/util/regex/PatternSyntaxException; │ - .end local v3 # "key":Ljava/lang/String; │ - .end local v6 # "pattern":Ljava/lang/String; │ - .end local v7 # "patternRegexpValue":Ljava/lang/String; │ - .end local v9 # "posEqual":I │ - .end local v10 # "value":Ljava/lang/String; │ + .end local v0 # "e":Ljava/util/regex/PatternSyntaxException; │ + .end local v1 # "key":Ljava/lang/String; │ + .end local v3 # "pattern":Ljava/lang/String; │ + .end local v4 # "patternRegexpValue":Ljava/lang/String; │ + .end local v6 # "posEqual":I │ + .end local v7 # "value":Ljava/lang/String; │ :cond_3 │ - return v5 │ + return v2 │ .end method │ │ .method public static getDefaultKeyboardHeight(Landroid/content/res/Resources;)I │ .locals 9 │ .param p0, "res" # Landroid/content/res/Resources; │ │ .prologue │ @@ -801,14 +791,15 @@ │ │ const-string v6, "Find override value: resource=" │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ + .line 82 │ invoke-virtual {p0, p1}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ @@ -835,14 +826,15 @@ │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 81 │ invoke-static {v4, v5}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 85 │ sget-object v4, Lcom/android/inputmethod/latin/utils/ResourceUtils;->sDeviceOverrideValueMap:Ljava/util/HashMap; │ │ invoke-virtual {v4, v0, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ├── smali/com/android/inputmethod/latin/utils/ScriptUtils.smali │ @@ -305,14 +305,15 @@ │ │ const-string v3, "We have been called with an unsupported language: \"" │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 188 │ invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 ├── smali/com/android/inputmethod/latin/utils/SubtypeLocaleUtils$2.smali │ @@ -126,14 +126,15 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils$2;->val$subtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ + .line 255 │ invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodSubtype;->getNameResId()I │ │ move-result v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ @@ -142,14 +143,15 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils$2;->val$subtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ + .line 256 │ invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ @@ -158,40 +160,43 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ iget-object v3, p0, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils$2;->val$subtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ + .line 257 │ invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodSubtype;->getExtraValue()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ const-string v3, "\n" │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 258 │ invoke-static {}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->getStackTrace()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 254 │ invoke-static {v1, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 259 │ const-string v1, "" │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/latin/utils/StringUtils.smali │ @@ -64,92 +64,87 @@ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 50 │ return-void │ .end method │ │ .method public static byteArrayToHexString([B)Ljava/lang/String; │ - .locals 9 │ + .locals 8 │ .param p0, "bytes" # [B │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ + const/4 v3, 0x0 │ + │ .line 463 │ if-eqz p0, :cond_0 │ │ - array-length v5, p0 │ + array-length v2, p0 │ │ - if-nez v5, :cond_1 │ + if-nez v2, :cond_1 │ │ .line 464 │ :cond_0 │ - const-string v5, "" │ + const-string v2, "" │ │ .line 470 │ :goto_0 │ - return-object v5 │ + return-object v2 │ │ .line 466 │ :cond_1 │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v1, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ .line 467 │ - .local v4, "sb":Ljava/lang/StringBuilder; │ - move-object v0, p0 │ + .local v1, "sb":Ljava/lang/StringBuilder; │ + array-length v4, p0 │ │ - .local v0, "arr$":[B │ - array-length v3, v0 │ + move v2, v3 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ - │ - .local v2, "i$":I │ :goto_1 │ - if-ge v2, v3, :cond_2 │ + if-ge v2, v4, :cond_2 │ │ - aget-byte v1, v0, v2 │ + aget-byte v0, p0, v2 │ │ .line 468 │ - .local v1, "b":B │ + .local v0, "b":B │ const-string v5, "%02x" │ │ const/4 v6, 0x1 │ │ new-array v6, v6, [Ljava/lang/Object; │ │ - const/4 v7, 0x0 │ - │ - and-int/lit16 v8, v1, 0xff │ + and-int/lit16 v7, v0, 0xff │ │ - invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ + invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - aput-object v8, v6, v7 │ + aput-object v7, v6, v3 │ │ invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v5 │ │ - invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 467 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_1 │ │ .line 470 │ - .end local v1 # "b":B │ + .end local v0 # "b":B │ :cond_2 │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v2 │ │ goto :goto_0 │ .end method │ │ .method public static capitalizeEachWord(Ljava/lang/String;[ILjava/util/Locale;)Ljava/lang/String; │ .locals 8 │ .param p0, "text" # Ljava/lang/String; │ @@ -280,20 +275,21 @@ │ │ .line 154 │ :cond_0 │ invoke-virtual {p0, v4, v3}, Ljava/lang/String;->offsetByCodePoints(II)I │ │ move-result v0 │ │ - .line 155 │ + .line 156 │ .local v0, "cutoff":I │ invoke-virtual {p0, v4, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 155 │ invoke-static {v2, v3, p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfStringForLocale(Ljava/lang/String;ZLjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 157 │ .local v1, "titleCaseFirstLetter":Ljava/lang/String; │ new-instance v2, Ljava/lang/StringBuilder; │ @@ -357,26 +353,29 @@ │ │ .line 139 │ .local v0, "cutoff":I │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ + .line 140 │ invoke-virtual {p0, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 139 │ invoke-static {v2, v3, p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->toUpperCaseOfStringForLocale(Ljava/lang/String;ZLjava/util/Locale;)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 140 │ invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -420,57 +419,47 @@ │ │ .method public static containsInArray(Ljava/lang/String;[Ljava/lang/String;)Z │ .locals 5 │ .param p0, "text" # Ljava/lang/String; │ .param p1, "array" # [Ljava/lang/String; │ │ .prologue │ - .line 68 │ - move-object v0, p1 │ + const/4 v1, 0x0 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v3, v0 │ + .line 68 │ + array-length v3, p1 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ + move v2, v1 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v3, :cond_1 │ + if-ge v2, v3, :cond_0 │ │ - aget-object v1, v0, v2 │ + aget-object v0, p1, v2 │ │ .line 69 │ - .local v1, "element":Ljava/lang/String; │ - invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + .local v0, "element":Ljava/lang/String; │ + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ - if-eqz v4, :cond_0 │ + if-eqz v4, :cond_1 │ │ - const/4 v4, 0x1 │ + const/4 v1, 0x1 │ │ .line 71 │ - .end local v1 # "element":Ljava/lang/String; │ - :goto_1 │ - return v4 │ + .end local v0 # "element":Ljava/lang/String; │ + :cond_0 │ + return v1 │ │ .line 68 │ - .restart local v1 # "element":Ljava/lang/String; │ - :cond_0 │ + .restart local v0 # "element":Ljava/lang/String; │ + :cond_1 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ - │ - .line 71 │ - .end local v1 # "element":Ljava/lang/String; │ - :cond_1 │ - const/4 v4, 0x0 │ - │ - goto :goto_1 │ .end method │ │ .method public static containsInCommaSplittableText(Ljava/lang/String;Ljava/lang/String;)Z │ .locals 1 │ .param p0, "text" # Ljava/lang/String; │ .param p1, "extraValues" # Ljava/lang/String; │ │ @@ -963,14 +952,15 @@ │ │ move-result v4 │ │ shl-int/lit8 v4, v4, 0x4 │ │ add-int/lit8 v5, v2, 0x1 │ │ + .line 489 │ invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C │ │ move-result v5 │ │ invoke-static {v5, v6}, Ljava/lang/Character;->digit(CI)I │ │ move-result v5 │ @@ -1084,14 +1074,15 @@ │ move-result v6 │ │ if-eqz v6, :cond_1 │ │ :cond_0 │ if-nez v3, :cond_2 │ │ + .line 314 │ invoke-static {v0}, Ljava/lang/Character;->isLowerCase(I)Z │ │ move-result v6 │ │ if-nez v6, :cond_2 │ │ .line 321 │ @@ -1650,100 +1641,95 @@ │ :cond_3 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_1 │ .end method │ │ .method public static removeFromCommaSplittableTextIfExists(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ - .locals 7 │ + .locals 6 │ .param p0, "text" # Ljava/lang/String; │ .param p1, "extraValues" # Ljava/lang/String; │ │ .prologue │ .line 91 │ invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v6 │ + move-result v3 │ │ - if-eqz v6, :cond_1 │ + if-eqz v3, :cond_1 │ │ .line 92 │ const-string p1, "" │ │ .line 104 │ .end local p1 # "extraValues":Ljava/lang/String; │ :cond_0 │ :goto_0 │ return-object p1 │ │ .line 94 │ .restart local p1 # "extraValues":Ljava/lang/String; │ :cond_1 │ - const-string v6, "," │ + const-string v3, "," │ │ - invoke-virtual {p1, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {p1, v3}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 95 │ - .local v2, "elements":[Ljava/lang/String; │ - invoke-static {p0, v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->containsInArray(Ljava/lang/String;[Ljava/lang/String;)Z │ + .local v1, "elements":[Ljava/lang/String; │ + invoke-static {p0, v1}, Lcom/android/inputmethod/latin/utils/StringUtils;->containsInArray(Ljava/lang/String;[Ljava/lang/String;)Z │ │ - move-result v6 │ + move-result v3 │ │ - if-eqz v6, :cond_0 │ + if-eqz v3, :cond_0 │ │ .line 98 │ - new-instance v5, Ljava/util/ArrayList; │ + new-instance v2, Ljava/util/ArrayList; │ │ - array-length v6, v2 │ + array-length v3, v1 │ │ - add-int/lit8 v6, v6, -0x1 │ + add-int/lit8 v3, v3, -0x1 │ │ - invoke-direct {v5, v6}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v2, v3}, Ljava/util/ArrayList;->(I)V │ │ .line 99 │ - .local v5, "result":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v0, v2 │ - │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v4, v0 │ + .local v2, "result":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v4, v1 │ │ - .local v4, "len$":I │ const/4 v3, 0x0 │ │ - .local v3, "i$":I │ :goto_1 │ if-ge v3, v4, :cond_3 │ │ - aget-object v1, v0, v3 │ + aget-object v0, v1, v3 │ │ .line 100 │ - .local v1, "element":Ljava/lang/String; │ - invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + .local v0, "element":Ljava/lang/String; │ + invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v5 │ │ - if-nez v6, :cond_2 │ + if-nez v5, :cond_2 │ │ .line 101 │ - invoke-virtual {v5, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 99 │ :cond_2 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_1 │ │ .line 104 │ - .end local v1 # "element":Ljava/lang/String; │ + .end local v0 # "element":Ljava/lang/String; │ :cond_3 │ - const-string v6, "," │ + const-string v3, "," │ │ - invoke-static {v6, v5}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; │ + invoke-static {v3, v2}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; │ │ move-result-object p1 │ │ goto :goto_0 │ .end method │ │ .method public static split(Ljava/lang/CharSequence;Ljava/lang/String;Z)[Ljava/lang/CharSequence; │ @@ -1954,15 +1940,15 @@ │ .line 177 │ sget-object v0, Lcom/android/inputmethod/latin/utils/StringUtils;->EMPTY_CODEPOINTS:[I │ │ .line 183 │ :goto_0 │ return-object v0 │ │ - .line 179 │ + .line 180 │ :cond_0 │ invoke-static {p0, p1, p2}, Ljava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I │ │ move-result v2 │ │ new-array v0, v2, [I │ │ @@ -2036,14 +2022,15 @@ │ │ const/4 v3, 0x1 │ │ if-ne v2, v3, :cond_2 │ │ const/4 v2, 0x0 │ │ + .line 520 │ invoke-virtual {v0, v2}, Ljava/lang/String;->codePointAt(I)I │ │ move-result v2 │ │ goto :goto_0 │ │ :cond_2 ├── smali/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.smali │ @@ -381,14 +381,15 @@ │ │ const-string v4, "KeyboardLayoutSet not found, use QWERTY: locale=" │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ + .line 299 │ invoke-virtual {p0}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()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 │ @@ -407,14 +408,15 @@ │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 298 │ invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 300 │ const-string v1, "qwerty" │ │ .line 302 │ .end local v1 # "keyboardLayoutSet":Ljava/lang/String; │ @@ -470,14 +472,15 @@ │ │ const/16 v1, 0x10 │ │ if-lt v0, v1, :cond_0 │ │ const-string v0, "UntranslatableReplacementStringInSubtypeName" │ │ + .line 223 │ invoke-virtual {p0, v0}, Landroid/view/inputmethod/InputMethodSubtype;->containsExtraValueKey(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ .line 224 │ @@ -549,20 +552,22 @@ │ │ invoke-direct {v0, v1, v2, p0}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils$2;->(ILjava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V │ │ .line 263 │ .local v0, "getSubtypeName":Lcom/android/inputmethod/latin/utils/RunInLocale;, "Lcom/android/inputmethod/latin/utils/RunInLocale;" │ sget-object v3, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->sResources:Landroid/content/res/Resources; │ │ + .line 264 │ invoke-virtual {v0, v3, p1}, Lcom/android/inputmethod/latin/utils/RunInLocale;->runInLocale(Landroid/content/res/Resources;Ljava/util/Locale;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ + .line 263 │ invoke-static {v3, p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->capitalizeFirstCodePoint(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v3 │ │ return-object v3 │ .end method │ │ @@ -798,14 +803,15 @@ │ .line 145 │ sget v2, Landroid/os/Build$VERSION;->SDK_INT:I │ │ const/16 v3, 0x10 │ │ if-lt v2, v3, :cond_0 │ │ + .line 146 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->isExceptionalLocale(Ljava/lang/String;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ .line 147 │ @@ -831,14 +837,15 @@ │ │ invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ + .line 150 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getNoLanguageLayoutKey(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 152 │ .local v0, "key":Ljava/lang/String; │ :goto_1 │ @@ -859,15 +866,15 @@ │ goto :goto_0 │ │ .end local v0 # "key":Ljava/lang/String; │ .end local v1 # "nameId":Ljava/lang/Integer; │ :cond_1 │ move-object v0, p1 │ │ - .line 149 │ + .line 150 │ goto :goto_1 │ │ .line 153 │ .restart local v0 # "key":Ljava/lang/String; │ .restart local v1 # "nameId":Ljava/lang/Integer; │ :cond_2 │ invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I ├── smali/com/android/inputmethod/latin/utils/SuggestionResults.smali │ @@ -2,15 +2,14 @@ │ .super Ljava/util/TreeSet; │ .source "SuggestionResults.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lcom/android/inputmethod/latin/utils/SuggestionResults$1;, │ Lcom/android/inputmethod/latin/utils/SuggestionResults$SuggestedWordInfoComparator; │ } │ .end annotation │ │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Ljava/util/TreeSet", ├── smali/com/android/inputmethod/latin/utils/TextRange.smali │ @@ -33,14 +33,15 @@ │ .line 110 │ if-ltz p2, :cond_0 │ │ if-lt p4, p2, :cond_0 │ │ if-gt p4, p3, :cond_0 │ │ + .line 112 │ invoke-interface {p1}, Ljava/lang/CharSequence;->length()I │ │ move-result v0 │ │ if-le p3, v0, :cond_1 │ │ .line 113 ├── smali/com/android/inputmethod/latin/utils/UncachedInputMethodManagerUtils.smali │ @@ -19,53 +19,52 @@ │ .param p0, "packageName" # Ljava/lang/String; │ .param p1, "imm" # Landroid/view/inputmethod/InputMethodManager; │ │ .prologue │ .line 77 │ invoke-virtual {p1}, Landroid/view/inputmethod/InputMethodManager;->getInputMethodList()Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v0, Landroid/view/inputmethod/InputMethodInfo; │ │ .line 78 │ - .local v1, "imi":Landroid/view/inputmethod/InputMethodInfo; │ - invoke-virtual {v1}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ + .local v0, "imi":Landroid/view/inputmethod/InputMethodInfo; │ + invoke-virtual {v0}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ .line 82 │ - .end local v1 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v0 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ :goto_0 │ - return-object v1 │ + return-object v0 │ │ :cond_1 │ - const/4 v1, 0x0 │ + const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public static isThisImeCurrent(Landroid/content/Context;Landroid/view/inputmethod/InputMethodManager;)Z │ .locals 4 │ .param p0, "context" # Landroid/content/Context; │ @@ -77,22 +76,23 @@ │ │ move-result-object v2 │ │ invoke-static {v2, p1}, Lcom/android/inputmethod/latin/utils/UncachedInputMethodManagerUtils;->getInputMethodInfoOf(Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager;)Landroid/view/inputmethod/InputMethodInfo; │ │ move-result-object v1 │ │ - .line 61 │ + .line 62 │ .local v1, "imi":Landroid/view/inputmethod/InputMethodInfo; │ invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v2 │ │ const-string v3, "default_input_method" │ │ + .line 61 │ invoke-static {v2, v3}, Landroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 63 │ .local v0, "currentImeId":Ljava/lang/String; │ if-eqz v1, :cond_0 │ @@ -123,58 +123,57 @@ │ .param p0, "context" # Landroid/content/Context; │ .param p1, "imm" # Landroid/view/inputmethod/InputMethodManager; │ │ .prologue │ .line 41 │ invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 42 │ - .local v2, "packageName":Ljava/lang/String; │ + .local v1, "packageName":Ljava/lang/String; │ invoke-virtual {p1}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v0, Landroid/view/inputmethod/InputMethodInfo; │ │ .line 43 │ - .local v1, "imi":Landroid/view/inputmethod/InputMethodInfo; │ - invoke-virtual {v1}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ + .local v0, "imi":Landroid/view/inputmethod/InputMethodInfo; │ + invoke-virtual {v0}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ │ move-result-object v3 │ │ - invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ .line 44 │ - const/4 v3, 0x1 │ + const/4 v2, 0x1 │ │ .line 47 │ - .end local v1 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v0 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ :goto_0 │ - return v3 │ + return v2 │ │ :cond_1 │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ goto :goto_0 │ .end method ├── smali/com/android/inputmethod/latin/utils/ViewLayoutUtils.smali │ @@ -72,14 +72,15 @@ │ │ const-string v2, "placer is neither FrameLayout nor RelativeLayout: " │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 43 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v2 │ @@ -216,14 +217,15 @@ │ │ const-string v4, "Layout parameter doesn\'t have gravity: " │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ + .line 90 │ invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v4 ├── smali/com/android/inputmethodcommon/InputMethodSettingsImpl$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$context:Landroid/content/Context; │ │ │ # direct methods │ .method constructor (Lcom/android/inputmethodcommon/InputMethodSettingsImpl;Landroid/content/Context;)V │ .locals 0 │ + .param p1, "this$0" # Lcom/android/inputmethodcommon/InputMethodSettingsImpl; │ │ .prologue │ .line 60 │ iput-object p1, p0, Lcom/android/inputmethodcommon/InputMethodSettingsImpl$1;->this$0:Lcom/android/inputmethodcommon/InputMethodSettingsImpl; │ │ iput-object p2, p0, Lcom/android/inputmethodcommon/InputMethodSettingsImpl$1;->val$context:Landroid/content/Context; ├── smali/com/android/inputmethodcommon/InputMethodSettingsImpl.smali │ @@ -135,20 +135,22 @@ │ │ .line 104 │ :cond_2 │ invoke-virtual {p2}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 105 │ invoke-virtual {p2}, Landroid/view/inputmethod/InputMethodInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo; │ │ move-result-object v6 │ │ iget-object v6, v6, Landroid/content/pm/ServiceInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo; │ │ + .line 104 │ invoke-virtual {v3, p0, v5, v6}, Landroid/view/inputmethod/InputMethodSubtype;->getDisplayName(Landroid/content/Context;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence; │ │ move-result-object v5 │ │ invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; │ │ .line 99 │ @@ -330,14 +332,15 @@ │ .line 59 │ iget-object v0, p0, Lcom/android/inputmethodcommon/InputMethodSettingsImpl;->mSubtypeEnablerPreference:Landroid/preference/Preference; │ │ new-instance v2, Lcom/android/inputmethodcommon/InputMethodSettingsImpl$1; │ │ invoke-direct {v2, p0, p1}, Lcom/android/inputmethodcommon/InputMethodSettingsImpl$1;->(Lcom/android/inputmethodcommon/InputMethodSettingsImpl;Landroid/content/Context;)V │ │ + .line 60 │ invoke-virtual {v0, v2}, Landroid/preference/Preference;->setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V │ │ .line 77 │ iget-object v0, p0, Lcom/android/inputmethodcommon/InputMethodSettingsImpl;->mSubtypeEnablerPreference:Landroid/preference/Preference; │ │ invoke-virtual {p2, v0}, Landroid/preference/PreferenceScreen;->addPreference(Landroid/preference/Preference;)Z ├── smali/org/smc/ime/InputMethod.smali │ @@ -950,63 +950,62 @@ │ .locals 4 │ .param p1, "input" # Ljava/lang/String; │ .param p2, "context" # Ljava/lang/String; │ .param p3, "altGr" # Ljava/lang/Boolean; │ │ .prologue │ .line 162 │ - iget-object v3, p0, Lorg/smc/ime/InputMethod;->patterns:Ljava/util/ArrayList; │ + iget-object v2, p0, Lorg/smc/ime/InputMethod;->patterns:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lorg/smc/ime/InputMethod$InputPattern; │ + check-cast v1, Lorg/smc/ime/InputMethod$InputPattern; │ │ .line 163 │ - .local v2, "pattern":Lorg/smc/ime/InputMethod$InputPattern; │ + .local v1, "pattern":Lorg/smc/ime/InputMethod$InputPattern; │ # getter for: Lorg/smc/ime/InputMethod$InputPattern;->inputPattern:Ljava/util/regex/Pattern; │ - invoke-static {v2}, Lorg/smc/ime/InputMethod$InputPattern;->access$000(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/util/regex/Pattern; │ + invoke-static {v1}, Lorg/smc/ime/InputMethod$InputPattern;->access$000(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/util/regex/Pattern; │ │ move-result-object v3 │ │ invoke-virtual {v3, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 164 │ - .local v1, "inputMatcher":Ljava/util/regex/Matcher; │ - invoke-virtual {v1}, Ljava/util/regex/Matcher;->find()Z │ + .local v0, "inputMatcher":Ljava/util/regex/Matcher; │ + invoke-virtual {v0}, Ljava/util/regex/Matcher;->find()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ .line 165 │ # getter for: Lorg/smc/ime/InputMethod$InputPattern;->contextPattern:Ljava/util/regex/Pattern; │ - invoke-static {v2}, Lorg/smc/ime/InputMethod$InputPattern;->access$100(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/util/regex/Pattern; │ + invoke-static {v1}, Lorg/smc/ime/InputMethod$InputPattern;->access$100(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/util/regex/Pattern; │ │ move-result-object v3 │ │ if-eqz v3, :cond_1 │ │ # getter for: Lorg/smc/ime/InputMethod$InputPattern;->contextPattern:Ljava/util/regex/Pattern; │ - invoke-static {v2}, Lorg/smc/ime/InputMethod$InputPattern;->access$100(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/util/regex/Pattern; │ + invoke-static {v1}, Lorg/smc/ime/InputMethod$InputPattern;->access$100(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/util/regex/Pattern; │ │ move-result-object v3 │ │ invoke-virtual {v3, p2}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; │ │ move-result-object v3 │ │ @@ -1015,33 +1014,33 @@ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ .line 166 │ :cond_1 │ # getter for: Lorg/smc/ime/InputMethod$InputPattern;->altGr:Ljava/lang/Boolean; │ - invoke-static {v2}, Lorg/smc/ime/InputMethod$InputPattern;->access$200(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/lang/Boolean; │ + invoke-static {v1}, Lorg/smc/ime/InputMethod$InputPattern;->access$200(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/lang/Boolean; │ │ move-result-object v3 │ │ if-ne v3, p3, :cond_0 │ │ .line 167 │ # getter for: Lorg/smc/ime/InputMethod$InputPattern;->replacement:Ljava/lang/String; │ - invoke-static {v2}, Lorg/smc/ime/InputMethod$InputPattern;->access$300(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/lang/String; │ + invoke-static {v1}, Lorg/smc/ime/InputMethod$InputPattern;->access$300(Lorg/smc/ime/InputMethod$InputPattern;)Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-direct {p0, v1, p1, v3}, Lorg/smc/ime/InputMethod;->replaceAll(Ljava/util/regex/Matcher;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ + invoke-direct {p0, v0, p1, v2}, Lorg/smc/ime/InputMethod;->replaceAll(Ljava/util/regex/Matcher;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object p1 │ │ .line 172 │ - .end local v1 # "inputMatcher":Ljava/util/regex/Matcher; │ - .end local v2 # "pattern":Lorg/smc/ime/InputMethod$InputPattern; │ + .end local v0 # "inputMatcher":Ljava/util/regex/Matcher; │ + .end local v1 # "pattern":Lorg/smc/ime/InputMethod$InputPattern; │ .end local p1 # "input":Ljava/lang/String; │ :cond_2 │ return-object p1 │ .end method │ │ .method public transliterateAll(Ljava/lang/String;Ljava/util/ArrayList;)Ljava/lang/String; │ .locals 12 ├── smali/org/smc/ime/R.smali │ @@ -15,10 +15,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 9 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 10 │ return-void │ .end method ├── smali/org/smc/inputmethod/accessibility/KeyCodeDescriptionMapper.smali │ @@ -567,14 +567,15 @@ │ │ .line 293 │ .restart local v0 # "baseCode":I │ .restart local v1 # "baseIndex":I │ :cond_2 │ const-string v5, "spoken_accented_letter_%04X" │ │ + .line 294 │ invoke-direct {p0, p1, v0, v5}, Lorg/smc/inputmethod/accessibility/KeyCodeDescriptionMapper;->getSpokenDescriptionId(Landroid/content/Context;ILjava/lang/String;)I │ │ move-result v3 │ │ goto :goto_1 │ │ .line 298 │ @@ -949,14 +950,15 @@ │ .line 119 │ invoke-static {v0}, Ljava/lang/Character;->isDefined(I)Z │ │ move-result v3 │ │ if-eqz v3, :cond_5 │ │ + .line 120 │ invoke-static {v0}, Ljava/lang/Character;->isISOControl(I)Z │ │ move-result v3 │ │ if-nez v3, :cond_5 │ │ const/4 v2, 0x1 │ @@ -973,15 +975,15 @@ │ │ invoke-virtual {p1, v3}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ goto :goto_0 │ │ - .line 119 │ + .line 120 │ .end local v2 # "isDefinedNonCtrl":Z │ :cond_5 │ const/4 v2, 0x0 │ │ goto :goto_1 │ │ .line 124 ├── smali/org/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.smali │ @@ -173,20 +173,22 @@ │ │ .line 328 │ .local v0, "currentSettings":Lorg/smc/inputmethod/indic/settings/SettingsValues; │ iget-object v4, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mKeyCodeDescriptionMapper:Lorg/smc/inputmethod/accessibility/KeyCodeDescriptionMapper; │ │ iget-object v5, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mKeyboardView:Lcom/android/inputmethod/keyboard/KeyboardView; │ │ + .line 329 │ invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/KeyboardView;->getContext()Landroid/content/Context; │ │ move-result-object v5 │ │ iget-object v6, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mKeyboard:Lcom/android/inputmethod/keyboard/Keyboard; │ │ + .line 328 │ invoke-virtual {v4, v5, v6, p1, v3}, Lorg/smc/inputmethod/accessibility/KeyCodeDescriptionMapper;->getDescriptionForKey(Landroid/content/Context;Lcom/android/inputmethod/keyboard/Keyboard;Lcom/android/inputmethod/keyboard/Key;Z)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 330 │ .local v2, "keyCodeDescription":Ljava/lang/String; │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/Key;->getCode()I │ @@ -432,14 +434,15 @@ │ const/4 v9, -0x1 │ │ if-ne p1, v9, :cond_3 │ │ .line 203 │ iget-object v9, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mKeyboardView:Lcom/android/inputmethod/keyboard/KeyboardView; │ │ + .line 204 │ invoke-static {v9}, Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat;->obtain(Landroid/view/View;)Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat; │ │ move-result-object v6 │ │ .line 205 │ .local v6, "rootInfo":Landroid/support/v4/view/accessibility/AccessibilityNodeInfoCompat; │ iget-object v9, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mKeyboardView:Lcom/android/inputmethod/keyboard/KeyboardView; │ @@ -558,24 +561,26 @@ │ invoke-virtual {v9, v0}, Landroid/graphics/Rect;->set(Landroid/graphics/Rect;)V │ │ .line 233 │ iget-object v9, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mTempBoundsInScreen:Landroid/graphics/Rect; │ │ iget-object v10, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mParentLocation:[I │ │ + .line 234 │ invoke-static {v10}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->x([I)I │ │ move-result v10 │ │ iget-object v11, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mParentLocation:[I │ │ invoke-static {v11}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->y([I)I │ │ move-result v11 │ │ + .line 233 │ invoke-virtual {v9, v10, v11}, Landroid/graphics/Rect;->offset(II)V │ │ .line 235 │ iget-object v1, p0, Lorg/smc/inputmethod/accessibility/KeyboardAccessibilityNodeProvider;->mTempBoundsInScreen:Landroid/graphics/Rect; │ │ .line 238 │ .local v1, "boundsInScreen":Landroid/graphics/Rect; ├── smali/org/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.smali │ @@ -160,14 +160,15 @@ │ invoke-direct {v0}, Landroid/graphics/Rect;->()V │ │ iput-object v0, p0, Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate;->mBoundsToIgnoreHoverEvent:Landroid/graphics/Rect; │ │ .line 71 │ new-instance v0, Lorg/smc/inputmethod/accessibility/AccessibilityLongPressTimer; │ │ + .line 72 │ invoke-virtual {p1}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getContext()Landroid/content/Context; │ │ move-result-object v1 │ │ invoke-direct {v0, p0, v1}, Lorg/smc/inputmethod/accessibility/AccessibilityLongPressTimer;->(Lorg/smc/inputmethod/accessibility/AccessibilityLongPressTimer$LongPressTimerCallback;Landroid/content/Context;)V │ │ iput-object v0, p0, Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate;->mAccessibilityLongPressTimer:Lorg/smc/inputmethod/accessibility/AccessibilityLongPressTimer; │ @@ -697,18 +698,20 @@ │ │ move-result-object v3 │ │ iget-object v2, p0, Lorg/smc/inputmethod/accessibility/MainKeyboardAccessibilityDelegate;->mKeyboardView:Lcom/android/inputmethod/keyboard/KeyboardView; │ │ check-cast v2, Lcom/android/inputmethod/keyboard/MainKeyboardView; │ │ + .line 298 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->getContext()Landroid/content/Context; │ │ move-result-object v2 │ │ + .line 297 │ invoke-virtual {v3, v2, v8}, Lorg/smc/inputmethod/accessibility/KeyCodeDescriptionMapper;->getDescriptionForCodePoint(Landroid/content/Context;I)Ljava/lang/String; │ │ move-result-object v10 │ │ .line 299 │ .local v10, "text":Ljava/lang/String; │ if-eqz v10, :cond_0 ├── smali/org/smc/inputmethod/accessibility/AccessibilityUtils.smali │ @@ -53,14 +53,15 @@ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->CLASS:Ljava/lang/String; │ │ .line 43 │ const-class v0, Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ + .line 44 │ invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/Class;->getPackage()Ljava/lang/Package; │ │ move-result-object v0 │ @@ -123,14 +124,15 @@ │ .prologue │ .line 81 │ iput-object p1, p0, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->mContext:Landroid/content/Context; │ │ .line 82 │ const-string v0, "accessibility" │ │ + .line 83 │ invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/view/accessibility/AccessibilityManager; │ │ iput-object v0, p0, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->mAccessibilityManager:Landroid/view/accessibility/AccessibilityManager; ├── smali/org/smc/inputmethod/compat/ActivityManagerCompatUtils.smali │ @@ -77,14 +77,15 @@ │ sget-object v1, Lorg/smc/inputmethod/compat/ActivityManagerCompatUtils;->sBoolean:Ljava/lang/Boolean; │ │ if-nez v1, :cond_0 │ │ .line 38 │ const-string v1, "activity" │ │ + .line 39 │ invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/app/ActivityManager; │ │ .line 40 ├── smali/org/smc/inputmethod/compat/AppWorkaroundsUtils.smali │ @@ -121,46 +121,51 @@ │ │ iget-object v2, p0, Lorg/smc/inputmethod/compat/AppWorkaroundsUtils;->mPackageInfo:Landroid/content/pm/PackageInfo; │ │ iget-object v2, v2, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo; │ │ iget-object v2, v2, Landroid/content/pm/ApplicationInfo;->name:Ljava/lang/String; │ │ + .line 53 │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const-string v2, "\nPackage : " │ │ + .line 54 │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/compat/AppWorkaroundsUtils;->mPackageInfo:Landroid/content/pm/PackageInfo; │ │ iget-object v2, v2, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo; │ │ iget-object v2, v2, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String; │ │ + .line 55 │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const-string v2, "\nTarget app sdk version : " │ │ + .line 56 │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/compat/AppWorkaroundsUtils;->mPackageInfo:Landroid/content/pm/PackageInfo; │ │ iget-object v2, v2, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo; │ │ iget v2, v2, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I │ │ + .line 57 │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ .line 58 │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 ├── smali/org/smc/inputmethod/compat/ConnectivityManagerCompatUtils.smali │ @@ -44,14 +44,15 @@ │ .locals 3 │ .param p0, "manager" # Landroid/net/ConnectivityManager; │ │ .prologue │ const/4 v1, 0x0 │ │ .line 30 │ + .line 33 │ invoke-virtual {p0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/net/NetworkInfo;->getType()I │ │ move-result v0 │ @@ -65,14 +66,15 @@ │ │ move-result-object v0 │ │ sget-object v2, Lorg/smc/inputmethod/compat/ConnectivityManagerCompatUtils;->METHOD_isActiveNetworkMetered:Ljava/lang/reflect/Method; │ │ new-array v1, v1, [Ljava/lang/Object; │ │ + .line 30 │ invoke-static {p0, v0, v2, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Boolean; │ │ invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z │ @@ -80,9 +82,10 @@ │ move-result v0 │ │ return v0 │ │ :cond_0 │ move v0, v1 │ │ + .line 33 │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/compat/DownloadManagerCompatUtils.smali │ @@ -77,20 +77,22 @@ │ │ const/4 v1, 0x1 │ │ new-array v1, v1, [Ljava/lang/Object; │ │ const/4 v2, 0x0 │ │ + .line 32 │ invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ + .line 31 │ invoke-static {p0, p0, v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/app/DownloadManager$Request; │ │ return-object v0 ├── smali/org/smc/inputmethod/compat/CursorAnchorInfoCompatWrapper.smali │ @@ -2,15 +2,14 @@ │ .super Ljava/lang/Object; │ .source "CursorAnchorInfoCompatWrapper.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/smc/inputmethod/compat/CursorAnchorInfoCompatWrapper$1;, │ Lorg/smc/inputmethod/compat/CursorAnchorInfoCompatWrapper$FakeHolder; │ } │ .end annotation │ │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation ├── smali/org/smc/inputmethod/compat/InputMethodManagerCompatWrapper.smali │ @@ -52,20 +52,22 @@ │ │ new-array v2, v5, [Ljava/lang/Class; │ │ const-class v3, Landroid/os/IBinder; │ │ aput-object v3, v2, v4 │ │ + .line 34 │ invoke-static {v0, v1, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper;->METHOD_shouldOfferSwitchingToNextInputMethod:Ljava/lang/reflect/Method; │ │ + .line 33 │ return-void │ .end method │ │ .method public constructor (Landroid/content/Context;)V │ .locals 1 │ .param p1, "context" # Landroid/content/Context; │ │ @@ -146,20 +148,22 @@ │ │ new-array v3, v3, [Ljava/lang/Object; │ │ aput-object p1, v3, v4 │ │ const/4 v4, 0x1 │ │ + .line 45 │ invoke-static {p2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ + .line 44 │ invoke-static {v0, v1, v2, v3}, Lorg/smc/inputmethod/compat/CompatUtils;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Boolean; │ │ invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z ├── smali/org/smc/inputmethod/compat/InputMethodServiceCompatUtils.smali │ @@ -17,20 +17,22 @@ │ │ const-string v1, "enableHardwareAcceleration" │ │ const/4 v2, 0x0 │ │ new-array v2, v2, [Ljava/lang/Class; │ │ + .line 27 │ invoke-static {v0, v1, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/InputMethodServiceCompatUtils;->METHOD_enableHardwareAcceleration:Ljava/lang/reflect/Method; │ │ + .line 26 │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue ├── smali/org/smc/inputmethod/compat/InputMethodSubtypeCompatUtils.smali │ @@ -83,14 +83,15 @@ │ │ const/4 v2, 0x7 │ │ sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ aput-object v3, v1, v2 │ │ + .line 34 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->getConstructor(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/InputMethodSubtypeCompatUtils;->CONSTRUCTOR_INPUT_METHOD_SUBTYPE:Ljava/lang/reflect/Constructor; │ │ .line 38 │ @@ -150,26 +151,29 @@ │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const-string v0, "AsciiCapable" │ │ + .line 69 │ invoke-virtual {p0, v0}, Landroid/view/inputmethod/InputMethodSubtype;->containsExtraValueKey(Ljava/lang/String;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 68 │ :goto_0 │ return v0 │ │ + .line 69 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public static isAsciiCapableWithAPI(Landroid/view/inputmethod/InputMethodSubtype;)Z │ @@ -255,14 +259,15 @@ │ │ const/16 v1, 0x8 │ │ new-array v1, v1, [Ljava/lang/Object; │ │ const/4 v2, 0x0 │ │ + .line 63 │ invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ const/4 v2, 0x1 │ @@ -291,28 +296,30 @@ │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ const/4 v2, 0x6 │ │ + .line 64 │ invoke-static {p6}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ const/4 v2, 0x7 │ │ invoke-static {p7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ + .line 62 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->newInstance(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/view/inputmethod/InputMethodSubtype; │ │ goto :goto_0 ├── smali/org/smc/inputmethod/compat/IntentCompatUtils.smali │ @@ -15,26 +15,29 @@ │ const/4 v2, 0x0 │ │ .line 24 │ const-class v0, Landroid/content/Intent; │ │ const-string v1, "ACTION_USER_INITIALIZE" │ │ + .line 26 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->getField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v0 │ │ + .line 25 │ invoke-static {v2, v2, v0}, Lorg/smc/inputmethod/compat/CompatUtils;->getFieldValue(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/String; │ │ sput-object v0, Lorg/smc/inputmethod/compat/IntentCompatUtils;->ACTION_USER_INITIALIZE:Ljava/lang/String; │ │ + .line 24 │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue ├── smali/org/smc/inputmethod/compat/LocaleSpanCompatUtils.smali │ @@ -168,20 +168,22 @@ │ .param p1, "isStartExclusive" # Z │ .param p2, "isEndExclusive" # Z │ │ .prologue │ .line 204 │ and-int/lit8 v0, p0, -0x34 │ │ + .line 205 │ invoke-static {p1, p2}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->getSpanPointMarkFlag(ZZ)I │ │ move-result v1 │ │ or-int/2addr v0, v1 │ │ + .line 204 │ return v0 │ .end method │ │ .method private static getSpanPointMarkFlag(ZZ)I │ .locals 1 │ .param p0, "isStartExclusive" # Z │ .param p1, "isEndExclusive" # Z │ @@ -404,15 +406,15 @@ │ :cond_5 │ invoke-interface {p1, p0}, Landroid/text/Spannable;->removeSpan(Ljava/lang/Object;)V │ │ goto :goto_0 │ .end method │ │ .method public static updateLocaleSpan(Landroid/text/Spannable;IILjava/util/Locale;)V │ - .locals 27 │ + .locals 25 │ .param p0, "spannable" # Landroid/text/Spannable; │ .param p1, "start" # I │ .param p2, "end" # I │ .param p3, "locale" # Ljava/util/Locale; │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ @@ -421,416 +423,405 @@ │ move/from16 v0, p2 │ │ move/from16 v1, p1 │ │ if-ge v0, v1, :cond_1 │ │ .line 80 │ - sget-object v24, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->TAG:Ljava/lang/String; │ + sget-object v20, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->TAG:Ljava/lang/String; │ │ - new-instance v25, Ljava/lang/StringBuilder; │ + new-instance v21, Ljava/lang/StringBuilder; │ │ - invoke-direct/range {v25 .. v25}, Ljava/lang/StringBuilder;->()V │ + invoke-direct/range {v21 .. v21}, Ljava/lang/StringBuilder;->()V │ │ - const-string v26, "Invalid range: start=" │ + const-string v22, "Invalid range: start=" │ │ - invoke-virtual/range {v25 .. v26}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual/range {v21 .. v22}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v21 │ │ - move-object/from16 v0, v25 │ + move-object/from16 v0, v21 │ │ move/from16 v1, p1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v21 │ │ - const-string v26, " end=" │ + const-string v22, " end=" │ │ - invoke-virtual/range {v25 .. v26}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual/range {v21 .. v22}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v21 │ │ - move-object/from16 v0, v25 │ + move-object/from16 v0, v21 │ │ move/from16 v1, p2 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v21 │ │ - invoke-virtual/range {v25 .. v25}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual/range {v21 .. v21}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v25 │ + move-result-object v21 │ │ - invoke-static/range {v24 .. v25}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static/range {v20 .. v21}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 158 │ :cond_0 │ :goto_0 │ return-void │ │ .line 83 │ :cond_1 │ invoke-static {}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->isLocaleSpanAvailable()Z │ │ - move-result v24 │ + move-result v20 │ │ - if-eqz v24, :cond_0 │ + if-eqz v20, :cond_0 │ │ .line 94 │ - add-int/lit8 v24, p1, -0x1 │ + add-int/lit8 v20, p1, -0x1 │ │ - const/16 v25, 0x0 │ + const/16 v21, 0x0 │ │ - invoke-static/range {v24 .. v25}, Ljava/lang/Math;->max(II)I │ + invoke-static/range {v20 .. v21}, Ljava/lang/Math;->max(II)I │ │ - move-result v20 │ + move-result v16 │ │ .line 95 │ - .local v20, "searchStart":I │ - add-int/lit8 v24, p2, 0x1 │ + .local v16, "searchStart":I │ + add-int/lit8 v20, p2, 0x1 │ │ invoke-interface/range {p0 .. p0}, Landroid/text/Spannable;->length()I │ │ - move-result v25 │ + move-result v21 │ │ - invoke-static/range {v24 .. v25}, Ljava/lang/Math;->min(II)I │ + invoke-static/range {v20 .. v21}, Ljava/lang/Math;->min(II)I │ │ - move-result v19 │ + move-result v15 │ │ .line 97 │ - .local v19, "searchEnd":I │ - sget-object v24, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->LOCALE_SPAN_TYPE:Ljava/lang/Class; │ + .local v15, "searchEnd":I │ + sget-object v20, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->LOCALE_SPAN_TYPE:Ljava/lang/Class; │ │ move-object/from16 v0, p0 │ │ - move/from16 v1, v20 │ + move/from16 v1, v16 │ │ - move/from16 v2, v19 │ + move-object/from16 v2, v20 │ │ - move-object/from16 v3, v24 │ + invoke-interface {v0, v1, v15, v2}, Landroid/text/Spannable;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; │ │ - invoke-interface {v0, v1, v2, v3}, Landroid/text/Spannable;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; │ - │ - move-result-object v7 │ + move-result-object v5 │ │ .line 100 │ - .local v7, "existingLocaleSpans":[Ljava/lang/Object; │ - new-instance v8, Ljava/util/ArrayList; │ + .local v5, "existingLocaleSpans":[Ljava/lang/Object; │ + new-instance v6, Ljava/util/ArrayList; │ │ - invoke-direct {v8}, Ljava/util/ArrayList;->()V │ + invoke-direct {v6}, Ljava/util/ArrayList;->()V │ │ .line 101 │ - .local v8, "existingLocaleSpansToBeMerged":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - const/4 v12, 0x1 │ + .local v6, "existingLocaleSpansToBeMerged":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + const/4 v9, 0x1 │ │ .line 102 │ - .local v12, "isStartExclusive":Z │ - const/4 v11, 0x1 │ + .local v9, "isStartExclusive":Z │ + const/4 v8, 0x1 │ │ .line 103 │ - .local v11, "isEndExclusive":Z │ - move/from16 v17, p1 │ + .local v8, "isEndExclusive":Z │ + move/from16 v13, p1 │ │ .line 104 │ - .local v17, "newStart":I │ - move/from16 v16, p2 │ + .local v13, "newStart":I │ + move/from16 v12, p2 │ │ .line 105 │ - .local v16, "newEnd":I │ - move-object v4, v7 │ + .local v12, "newEnd":I │ + array-length v0, v5 │ │ - .local v4, "arr$":[Ljava/lang/Object; │ - array-length v13, v4 │ + move/from16 v21, v0 │ │ - .local v13, "len$":I │ - const/4 v10, 0x0 │ + const/16 v20, 0x0 │ │ - .local v10, "i$":I │ :goto_1 │ - if-ge v10, v13, :cond_9 │ + move/from16 v0, v20 │ + │ + move/from16 v1, v21 │ + │ + if-ge v0, v1, :cond_9 │ │ - aget-object v6, v4, v10 │ + aget-object v4, v5, v20 │ │ .line 106 │ - .local v6, "existingLocaleSpan":Ljava/lang/Object; │ - invoke-static {v6}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->getLocaleFromLocaleSpan(Ljava/lang/Object;)Ljava/util/Locale; │ + .local v4, "existingLocaleSpan":Ljava/lang/Object; │ + invoke-static {v4}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->getLocaleFromLocaleSpan(Ljava/lang/Object;)Ljava/util/Locale; │ │ - move-result-object v5 │ + move-result-object v3 │ │ .line 107 │ - .local v5, "attachedLocale":Ljava/util/Locale; │ + .local v3, "attachedLocale":Ljava/util/Locale; │ move-object/from16 v0, p3 │ │ - invoke-virtual {v0, v5}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v3}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ - move-result v24 │ + move-result v22 │ │ - if-nez v24, :cond_3 │ + if-nez v22, :cond_3 │ │ .line 111 │ move-object/from16 v0, p0 │ │ move/from16 v1, p1 │ │ move/from16 v2, p2 │ │ - invoke-static {v6, v0, v1, v2}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->removeLocaleSpanFromRange(Ljava/lang/Object;Landroid/text/Spannable;II)V │ + invoke-static {v4, v0, v1, v2}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->removeLocaleSpanFromRange(Ljava/lang/Object;Landroid/text/Spannable;II)V │ │ .line 105 │ :cond_2 │ :goto_2 │ - add-int/lit8 v10, v10, 0x1 │ + add-int/lit8 v20, v20, 0x1 │ │ goto :goto_1 │ │ .line 114 │ :cond_3 │ move-object/from16 v0, p0 │ │ - invoke-interface {v0, v6}, Landroid/text/Spannable;->getSpanStart(Ljava/lang/Object;)I │ + invoke-interface {v0, v4}, Landroid/text/Spannable;->getSpanStart(Ljava/lang/Object;)I │ │ - move-result v23 │ + move-result v19 │ │ .line 115 │ - .local v23, "spanStart":I │ + .local v19, "spanStart":I │ move-object/from16 v0, p0 │ │ - invoke-interface {v0, v6}, Landroid/text/Spannable;->getSpanEnd(Ljava/lang/Object;)I │ + invoke-interface {v0, v4}, Landroid/text/Spannable;->getSpanEnd(Ljava/lang/Object;)I │ │ - move-result v21 │ + move-result v17 │ │ .line 116 │ - .local v21, "spanEnd":I │ - move/from16 v0, v21 │ + .local v17, "spanEnd":I │ + move/from16 v0, v17 │ │ - move/from16 v1, v23 │ + move/from16 v1, v19 │ │ if-ge v0, v1, :cond_4 │ │ .line 117 │ - sget-object v24, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->TAG:Ljava/lang/String; │ + sget-object v22, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->TAG:Ljava/lang/String; │ │ - new-instance v25, Ljava/lang/StringBuilder; │ + new-instance v23, Ljava/lang/StringBuilder; │ │ - invoke-direct/range {v25 .. v25}, Ljava/lang/StringBuilder;->()V │ + invoke-direct/range {v23 .. v23}, Ljava/lang/StringBuilder;->()V │ │ - const-string v26, "Invalid span: spanStart=" │ + const-string v24, "Invalid span: spanStart=" │ │ - invoke-virtual/range {v25 .. v26}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual/range {v23 .. v24}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v23 │ │ - move-object/from16 v0, v25 │ + move-object/from16 v0, v23 │ │ - move/from16 v1, v23 │ + move/from16 v1, v19 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v23 │ │ - const-string v26, " spanEnd=" │ + const-string v24, " spanEnd=" │ │ - invoke-virtual/range {v25 .. v26}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual/range {v23 .. v24}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v23 │ │ - move-object/from16 v0, v25 │ + move-object/from16 v0, v23 │ │ - move/from16 v1, v21 │ + move/from16 v1, v17 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ - move-result-object v25 │ + move-result-object v23 │ │ - invoke-virtual/range {v25 .. v25}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual/range {v23 .. v23}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v25 │ + move-result-object v23 │ │ - invoke-static/range {v24 .. v25}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static/range {v22 .. v23}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_2 │ │ .line 120 │ :cond_4 │ - move/from16 v0, v21 │ + move/from16 v0, v17 │ │ move/from16 v1, p1 │ │ if-lt v0, v1, :cond_2 │ │ move/from16 v0, p2 │ │ - move/from16 v1, v23 │ + move/from16 v1, v19 │ │ if-lt v0, v1, :cond_2 │ │ .line 127 │ move-object/from16 v0, p0 │ │ - invoke-interface {v0, v6}, Landroid/text/Spannable;->getSpanFlags(Ljava/lang/Object;)I │ + invoke-interface {v0, v4}, Landroid/text/Spannable;->getSpanFlags(Ljava/lang/Object;)I │ │ - move-result v22 │ + move-result v18 │ │ .line 128 │ - .local v22, "spanFlag":I │ - move/from16 v0, v23 │ - │ - move/from16 v1, v17 │ + .local v18, "spanFlag":I │ + move/from16 v0, v19 │ │ - if-ge v0, v1, :cond_5 │ + if-ge v0, v13, :cond_5 │ │ .line 129 │ - move/from16 v17, v23 │ + move/from16 v13, v19 │ │ .line 130 │ - and-int/lit8 v24, v22, 0x21 │ + and-int/lit8 v22, v18, 0x21 │ │ - const/16 v25, 0x21 │ + const/16 v23, 0x21 │ │ - move/from16 v0, v24 │ + move/from16 v0, v22 │ │ - move/from16 v1, v25 │ + move/from16 v1, v23 │ │ if-ne v0, v1, :cond_7 │ │ - const/4 v12, 0x1 │ + const/4 v9, 0x1 │ │ .line 133 │ :cond_5 │ :goto_3 │ - move/from16 v0, v16 │ + move/from16 v0, v17 │ │ - move/from16 v1, v21 │ - │ - if-ge v0, v1, :cond_6 │ + if-ge v12, v0, :cond_6 │ │ .line 134 │ - move/from16 v16, v21 │ + move/from16 v12, v17 │ │ .line 135 │ - and-int/lit8 v24, v22, 0x21 │ + and-int/lit8 v22, v18, 0x21 │ │ - const/16 v25, 0x21 │ + const/16 v23, 0x21 │ │ - move/from16 v0, v24 │ + move/from16 v0, v22 │ │ - move/from16 v1, v25 │ + move/from16 v1, v23 │ │ if-ne v0, v1, :cond_8 │ │ - const/4 v11, 0x1 │ + const/4 v8, 0x1 │ │ .line 138 │ :cond_6 │ :goto_4 │ - invoke-virtual {v8, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v6, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_2 │ │ .line 130 │ :cond_7 │ - const/4 v12, 0x0 │ + const/4 v9, 0x0 │ │ goto :goto_3 │ │ .line 135 │ :cond_8 │ - const/4 v11, 0x0 │ + const/4 v8, 0x0 │ │ goto :goto_4 │ │ .line 141 │ - .end local v5 # "attachedLocale":Ljava/util/Locale; │ - .end local v6 # "existingLocaleSpan":Ljava/lang/Object; │ - .end local v21 # "spanEnd":I │ - .end local v22 # "spanFlag":I │ - .end local v23 # "spanStart":I │ + .end local v3 # "attachedLocale":Ljava/util/Locale; │ + .end local v4 # "existingLocaleSpan":Ljava/lang/Object; │ + .end local v17 # "spanEnd":I │ + .end local v18 # "spanFlag":I │ + .end local v19 # "spanStart":I │ :cond_9 │ - const/16 v18, 0x0 │ + const/4 v14, 0x0 │ │ .line 142 │ - .local v18, "originalLocaleSpanFlag":I │ - const/4 v14, 0x0 │ + .local v14, "originalLocaleSpanFlag":I │ + const/4 v10, 0x0 │ │ .line 143 │ - .local v14, "localeSpan":Ljava/lang/Object; │ - invoke-virtual {v8}, Ljava/util/ArrayList;->isEmpty()Z │ + .local v10, "localeSpan":Ljava/lang/Object; │ + invoke-virtual {v6}, Ljava/util/ArrayList;->isEmpty()Z │ │ - move-result v24 │ + move-result v20 │ │ - if-eqz v24, :cond_b │ + if-eqz v20, :cond_b │ │ .line 145 │ invoke-static/range {p3 .. p3}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->newLocaleSpan(Ljava/util/Locale;)Ljava/lang/Object; │ │ - move-result-object v14 │ + move-result-object v10 │ │ .line 155 │ :cond_a │ - move/from16 v0, v18 │ + invoke-static {v14, v9, v8}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->getSpanFlag(IZZ)I │ │ - invoke-static {v0, v12, v11}, Lorg/smc/inputmethod/compat/LocaleSpanCompatUtils;->getSpanFlag(IZZ)I │ - │ - move-result v15 │ + move-result v11 │ │ .line 157 │ - .local v15, "localeSpanFlag":I │ + .local v11, "localeSpanFlag":I │ move-object/from16 v0, p0 │ │ - move/from16 v1, v17 │ - │ - move/from16 v2, v16 │ - │ - invoke-interface {v0, v14, v1, v2, v15}, Landroid/text/Spannable;->setSpan(Ljava/lang/Object;III)V │ + invoke-interface {v0, v10, v13, v12, v11}, Landroid/text/Spannable;->setSpan(Ljava/lang/Object;III)V │ │ goto/16 :goto_0 │ │ .line 148 │ - .end local v15 # "localeSpanFlag":I │ + .end local v11 # "localeSpanFlag":I │ :cond_b │ - const/16 v24, 0x0 │ + const/16 v20, 0x0 │ │ - move/from16 v0, v24 │ + move/from16 v0, v20 │ │ - invoke-virtual {v8, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ + invoke-virtual {v6, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ - move-result-object v14 │ + move-result-object v10 │ │ .line 149 │ move-object/from16 v0, p0 │ │ - invoke-interface {v0, v14}, Landroid/text/Spannable;->getSpanFlags(Ljava/lang/Object;)I │ + invoke-interface {v0, v10}, Landroid/text/Spannable;->getSpanFlags(Ljava/lang/Object;)I │ │ - move-result v18 │ + move-result v14 │ │ .line 151 │ - const/4 v9, 0x1 │ + const/4 v7, 0x1 │ │ - .local v9, "i":I │ + .local v7, "i":I │ :goto_5 │ - invoke-virtual {v8}, Ljava/util/ArrayList;->size()I │ + invoke-virtual {v6}, Ljava/util/ArrayList;->size()I │ │ - move-result v24 │ + move-result v20 │ │ - move/from16 v0, v24 │ + move/from16 v0, v20 │ │ - if-ge v9, v0, :cond_a │ + if-ge v7, v0, :cond_a │ │ .line 152 │ - invoke-virtual {v8, v9}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ + invoke-virtual {v6, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ - move-result-object v24 │ + move-result-object v20 │ │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v24 │ + move-object/from16 v1, v20 │ │ invoke-interface {v0, v1}, Landroid/text/Spannable;->removeSpan(Ljava/lang/Object;)V │ │ .line 151 │ - add-int/lit8 v9, v9, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ goto :goto_5 │ .end method ├── smali/org/smc/inputmethod/compat/NotificationCompatUtils.smali │ @@ -45,14 +45,15 @@ │ │ new-array v3, v6, [Ljava/lang/Class; │ │ sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ aput-object v4, v3, v1 │ │ + .line 28 │ invoke-static {v0, v2, v3}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->METHOD_setColor:Ljava/lang/reflect/Method; │ │ .line 29 │ @@ -62,14 +63,15 @@ │ │ new-array v3, v6, [Ljava/lang/Class; │ │ sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ aput-object v4, v3, v1 │ │ + .line 30 │ invoke-static {v0, v2, v3}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->METHOD_setVisibility:Ljava/lang/reflect/Method; │ │ .line 31 │ @@ -79,14 +81,15 @@ │ │ new-array v3, v6, [Ljava/lang/Class; │ │ const-class v4, Ljava/lang/String; │ │ aput-object v4, v3, v1 │ │ + .line 32 │ invoke-static {v0, v2, v3}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->METHOD_setCategory:Ljava/lang/reflect/Method; │ │ .line 33 │ @@ -96,100 +99,110 @@ │ │ new-array v3, v6, [Ljava/lang/Class; │ │ sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ aput-object v4, v3, v1 │ │ + .line 34 │ invoke-static {v0, v2, v3}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->METHOD_setPriority:Ljava/lang/reflect/Method; │ │ .line 35 │ const-class v0, Landroid/app/Notification$Builder; │ │ const-string v2, "build" │ │ new-array v3, v1, [Ljava/lang/Class; │ │ + .line 36 │ invoke-static {v0, v2, v3}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->METHOD_build:Ljava/lang/reflect/Method; │ │ .line 37 │ const-class v0, Landroid/app/Notification; │ │ const-string v2, "VISIBILITY_SECRET" │ │ + .line 38 │ invoke-static {v0, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_VISIBILITY_SECRET:Ljava/lang/reflect/Field; │ │ .line 39 │ sget-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_VISIBILITY_SECRET:Ljava/lang/reflect/Field; │ │ if-nez v0, :cond_0 │ │ move v0, v1 │ │ + .line 40 │ :goto_0 │ sput v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->VISIBILITY_SECRET:I │ │ .line 42 │ const-class v0, Landroid/app/Notification; │ │ const-string v2, "CATEGORY_RECOMMENDATION" │ │ + .line 43 │ invoke-static {v0, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_CATEGORY_RECOMMENDATION:Ljava/lang/reflect/Field; │ │ .line 44 │ sget-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_CATEGORY_RECOMMENDATION:Ljava/lang/reflect/Field; │ │ if-nez v0, :cond_1 │ │ const-string v0, "" │ │ + .line 45 │ :goto_1 │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->CATEGORY_RECOMMENDATION:Ljava/lang/String; │ │ .line 47 │ const-class v0, Landroid/app/Notification; │ │ const-string v2, "PRIORITY_LOW" │ │ + .line 48 │ invoke-static {v0, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_PRIORITY_LOW:Ljava/lang/reflect/Field; │ │ .line 49 │ sget-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_PRIORITY_LOW:Ljava/lang/reflect/Field; │ │ if-nez v0, :cond_2 │ │ + .line 50 │ :goto_2 │ sput v1, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->PRIORITY_LOW:I │ │ + .line 49 │ return-void │ │ .line 39 │ :cond_0 │ sget-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_VISIBILITY_SECRET:Ljava/lang/reflect/Field; │ │ + .line 40 │ invoke-static {v5, v5, v0}, Lorg/smc/inputmethod/compat/CompatUtils;->getFieldValue(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Integer; │ │ invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I │ @@ -198,26 +211,28 @@ │ │ goto :goto_0 │ │ .line 44 │ :cond_1 │ sget-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_CATEGORY_RECOMMENDATION:Ljava/lang/reflect/Field; │ │ + .line 45 │ invoke-static {v5, v5, v0}, Lorg/smc/inputmethod/compat/CompatUtils;->getFieldValue(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/String; │ │ goto :goto_1 │ │ .line 49 │ :cond_2 │ sget-object v0, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->FIELD_PRIORITY_LOW:Ljava/lang/reflect/Field; │ │ + .line 50 │ invoke-static {v5, v5, v0}, Lorg/smc/inputmethod/compat/CompatUtils;->getFieldValue(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Integer; │ │ invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I ├── smali/org/smc/inputmethod/compat/SuggestionsInfoCompatUtils.smali │ @@ -19,23 +19,25 @@ │ const/4 v2, 0x0 │ │ .line 26 │ const-class v0, Landroid/view/textservice/SuggestionsInfo; │ │ const-string v1, "RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS" │ │ + .line 27 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->getField(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->FIELD_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS:Ljava/lang/reflect/Field; │ │ .line 28 │ sget-object v0, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->FIELD_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS:Ljava/lang/reflect/Field; │ │ + .line 29 │ invoke-static {v2, v2, v0}, Lorg/smc/inputmethod/compat/CompatUtils;->getFieldValue(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/Integer; │ │ sput-object v0, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->OBJ_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS:Ljava/lang/Integer; │ @@ -43,23 +45,26 @@ │ .line 31 │ sget-object v0, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->OBJ_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS:Ljava/lang/Integer; │ │ if-eqz v0, :cond_0 │ │ sget-object v0, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->OBJ_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS:Ljava/lang/Integer; │ │ + .line 33 │ invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I │ │ move-result v0 │ │ :goto_0 │ sput v0, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS:I │ │ + .line 31 │ return-void │ │ + .line 33 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private constructor ()V ├── smali/org/smc/inputmethod/compat/SuggestionSpanUtils.smali │ @@ -91,14 +91,15 @@ │ │ const/4 v2, 0x0 │ │ new-array v3, v7, [Ljava/lang/String; │ │ sget-object v1, Lorg/smc/inputmethod/compat/SuggestionSpanUtils;->OBJ_FLAG_AUTO_CORRECTION:Ljava/lang/Integer; │ │ + .line 61 │ invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I │ │ move-result v4 │ │ const-class v5, Lorg/smc/inputmethod/indic/SuggestionSpanPickedNotificationReceiver; │ │ move-object v1, p0 │ @@ -136,14 +137,15 @@ │ │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/SuggestedWords;->isEmpty()Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ + .line 71 │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/SuggestedWords;->isPrediction()Z │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/SuggestedWords;->isPunctuationSuggestions()Z │ @@ -188,14 +190,15 @@ │ │ .line 89 │ :cond_2 │ new-instance v0, Landroid/text/style/SuggestionSpan; │ │ const/4 v2, 0x0 │ │ + .line 90 │ invoke-virtual {v9}, Ljava/util/ArrayList;->size()I │ │ move-result v1 │ │ new-array v1, v1, [Ljava/lang/String; │ │ invoke-virtual {v9, v1}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; ├── smali/org/smc/inputmethod/compat/TextInfoCompatUtils.smali │ @@ -31,14 +31,15 @@ │ .line 29 │ const-class v0, Landroid/view/textservice/TextInfo; │ │ const-string v1, "getCharSequence" │ │ new-array v2, v3, [Ljava/lang/Class; │ │ + .line 30 │ invoke-static {v0, v1, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/TextInfoCompatUtils;->TEXT_INFO_GET_CHAR_SEQUENCE:Ljava/lang/reflect/Method; │ │ .line 31 │ @@ -72,20 +73,22 @@ │ │ const/4 v2, 0x4 │ │ sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; │ │ aput-object v3, v1, v2 │ │ + .line 32 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->getConstructor(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/TextInfoCompatUtils;->TEXT_INFO_CONSTRUCTOR_FOR_CHAR_SEQUENCE:Ljava/lang/reflect/Constructor; │ │ + .line 31 │ return-void │ .end method │ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ @@ -185,14 +188,15 @@ │ │ const/4 v2, 0x0 │ │ aput-object p0, v1, v2 │ │ const/4 v2, 0x1 │ │ + .line 46 │ invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ const/4 v2, 0x2 │ @@ -215,14 +219,15 @@ │ │ invoke-static {p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ │ aput-object v3, v1, v2 │ │ + .line 45 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/compat/CompatUtils;->newInstance(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/view/textservice/TextInfo; │ │ .line 48 ├── smali/org/smc/inputmethod/compat/TextViewCompatUtils.smali │ @@ -41,20 +41,22 @@ │ │ const/4 v3, 0x3 │ │ const-class v4, Landroid/graphics/drawable/Drawable; │ │ aput-object v4, v2, v3 │ │ + .line 28 │ invoke-static {v0, v1, v2}, Lorg/smc/inputmethod/compat/CompatUtils;->getMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/compat/TextViewCompatUtils;->METHOD_setCompoundDrawablesRelativeWithIntrinsicBounds:Ljava/lang/reflect/Method; │ │ + .line 27 │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$FinishDeleteAction.smali │ @@ -238,14 +238,15 @@ │ │ invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 581 │ :cond_2 │ const-string v4, "url" │ │ + .line 582 │ invoke-virtual {v3, v4}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 587 │ .local v1, "remoteFilename":Ljava/lang/String; │ invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ @@ -269,20 +270,22 @@ │ │ aput-object v7, v6, v8 │ │ iget-object v7, p0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$FinishDeleteAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ iget v7, v7, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ + .line 591 │ invoke-static {v7}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v7 │ │ aput-object v7, v6, v9 │ │ + .line 588 │ invoke-virtual {v0, v4, v5, v6}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I │ │ goto/16 :goto_0 │ │ .line 593 │ :cond_3 │ iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$FinishDeleteAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$ForgetAction.smali │ @@ -298,20 +298,22 @@ │ │ aput-object v6, v5, v8 │ │ iget-object v6, p0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$ForgetAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ iget v6, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ + .line 488 │ invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v5, v7 │ │ + .line 485 │ invoke-virtual {v0, v3, v2, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I │ │ goto/16 :goto_0 │ │ .line 491 │ :cond_4 │ const-string v3, "pendingUpdates" │ @@ -326,17 +328,19 @@ │ │ aput-object v6, v5, v8 │ │ iget-object v6, p0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$ForgetAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ iget v6, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ + .line 494 │ invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v5, v7 │ │ + .line 491 │ invoke-virtual {v0, v3, v4, v5}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I │ │ goto/16 :goto_0 │ .end method ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction.smali │ @@ -41,28 +41,30 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ const-class v1, Lorg/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction; │ │ + .line 184 │ invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction;->TAG:Ljava/lang/String; │ │ + .line 183 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;Landroid/content/ContentValues;)V │ .locals 3 │ .param p1, "clientId" # Ljava/lang/String; │ .param p2, "wordListValues" # Landroid/content/ContentValues; ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction.smali │ @@ -186,21 +186,15 @@ │ │ iget-object v4, v4, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ - const-string v4, "\' " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, " for a makeavailable action. Marking as available anyway." │ + const-string v4, "\' for a makeavailable action. Marking as available anyway." │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$MarkPreInstalledAction.smali │ @@ -41,28 +41,30 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ const-class v1, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MarkPreInstalledAction; │ │ + .line 348 │ invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MarkPreInstalledAction;->TAG:Ljava/lang/String; │ │ + .line 347 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ .locals 3 │ .param p1, "clientId" # Ljava/lang/String; │ .param p2, "wordlist" # Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ @@ -186,21 +188,15 @@ │ │ iget-object v4, v4, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ - const-string v4, "\' " │ - │ - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v3 │ - │ - const-string v4, " for a markpreinstalled action. Marking as preinstalled anyway." │ + const-string v4, "\' for a markpreinstalled action. Marking as preinstalled anyway." │ │ invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction.smali │ @@ -284,14 +284,15 @@ │ │ move-result-wide v14 │ │ invoke-virtual {v13, v14, v15}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ │ + .line 138 │ invoke-static/range {p1 .. p1}, Lcom/android/inputmethod/latin/utils/ApplicationUtils;->getVersionName(Landroid/content/Context;)Ljava/lang/String; │ │ move-result-object v14 │ │ invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ @@ -400,32 +401,36 @@ │ iget-object v13, v13, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mDescription:Ljava/lang/String; │ │ invoke-virtual {v8, v13}, Landroid/app/DownloadManager$Request;->setTitle(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request; │ │ .line 166 │ const v13, 0x7f070012 │ │ + .line 167 │ invoke-virtual {v9, v13}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v13 │ │ if-eqz v13, :cond_5 │ │ const/4 v13, 0x0 │ │ + .line 166 │ :goto_4 │ invoke-virtual {v8, v13}, Landroid/app/DownloadManager$Request;->setNotificationVisibility(I)Landroid/app/DownloadManager$Request; │ │ .line 169 │ const v13, 0x7f070011 │ │ + .line 170 │ invoke-virtual {v9, v13}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v13 │ │ + .line 169 │ invoke-virtual {v8, v13}, Landroid/app/DownloadManager$Request;->setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request; │ │ .line 172 │ move-object/from16 v0, p0 │ │ iget-object v13, v0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ @@ -590,15 +595,15 @@ │ :cond_4 │ const/4 v13, 0x2 │ │ invoke-virtual {v8, v13}, Landroid/app/DownloadManager$Request;->setAllowedNetworkTypes(I)Landroid/app/DownloadManager$Request; │ │ goto/16 :goto_3 │ │ - .line 166 │ + .line 167 │ :cond_5 │ const/4 v13, 0x2 │ │ goto/16 :goto_4 │ │ .line 146 │ nop ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch$UpdateDataAction.smali │ @@ -211,38 +211,41 @@ │ aput-object v4, v2, v3 │ │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 413 │ const-string v2, "pendingid" │ │ + .line 414 │ move-object/from16 v0, v19 │ │ invoke-virtual {v0, v2}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I │ │ move-result v2 │ │ const-string v3, "type" │ │ + .line 415 │ move-object/from16 v0, v19 │ │ invoke-virtual {v0, v3}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I │ │ move-result v3 │ │ const-string v4, "status" │ │ + .line 416 │ move-object/from16 v0, v19 │ │ invoke-virtual {v0, v4}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I │ @@ -265,14 +268,15 @@ │ │ iget-object v7, v0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$UpdateDataAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ iget-object v7, v7, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mDescription:Ljava/lang/String; │ │ const-string v8, "filename" │ │ + .line 418 │ move-object/from16 v0, v19 │ │ invoke-virtual {v0, v8}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v8 │ │ move-object/from16 v0, p0 │ @@ -325,14 +329,15 @@ │ │ move-object/from16 v0, v17 │ │ iget v0, v0, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ │ move/from16 v17, v0 │ │ + .line 413 │ invoke-static/range {v2 .. v17}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->makeContentValues(IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;JII)Landroid/content/ContentValues; │ │ move-result-object v20 │ │ .line 422 │ .local v20, "values":Landroid/content/ContentValues; │ new-instance v2, Ljava/lang/StringBuilder; │ @@ -400,20 +405,22 @@ │ │ move-object/from16 v0, p0 │ │ iget-object v6, v0, Lorg/smc/inputmethod/dictionarypack/ActionBatch$UpdateDataAction;->mWordList:Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ iget v6, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ + .line 427 │ invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ + .line 424 │ move-object/from16 v0, v18 │ │ move-object/from16 v1, v20 │ │ invoke-virtual {v0, v2, v1, v3, v4}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I │ │ goto/16 :goto_0 ├── smali/org/smc/inputmethod/dictionarypack/ActionBatch.smali │ @@ -71,21 +71,20 @@ │ │ .method public append(Lorg/smc/inputmethod/dictionarypack/ActionBatch;)V │ .locals 3 │ .param p1, "that" # Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ │ .prologue │ .line 614 │ - iget-object v2, p1, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->mActions:Ljava/util/Queue; │ + iget-object v1, p1, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->mActions:Ljava/util/Queue; │ │ - invoke-interface {v2}, Ljava/util/Queue;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/Queue;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/org/smc/inputmethod/dictionarypack/ButtonSwitcher$1.smali │ @@ -21,14 +21,15 @@ │ │ .field final synthetic val$newStatus:I │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher;ILandroid/view/View;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher; │ │ .prologue │ .line 131 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher$1;->this$0:Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher; │ │ iput p2, p0, Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher$1;->val$newStatus:I ├── smali/org/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar$UpdaterThread.smali │ @@ -147,15 +147,15 @@ │ .line 130 │ const-string v5, "bytes_so_far" │ │ invoke-interface {v2, v5}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v1 │ │ - .line 132 │ + .line 133 │ .local v1, "columnBytesDownloadedSoFar":I │ invoke-interface {v2, v1}, Landroid/database/Cursor;->getInt(I)I │ │ move-result v0 │ │ .line 134 │ .local v0, "bytesDownloadedSoFar":I ├── smali/org/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar.smali │ @@ -2,15 +2,14 @@ │ .super Landroid/widget/ProgressBar; │ .source "DictionaryDownloadProgressBar.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar$1;, │ Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar$UpdaterThread; │ } │ .end annotation │ │ │ # static fields │ .field private static final NOT_A_DOWNLOADMANAGER_PENDING_ID:I │ @@ -98,15 +97,15 @@ │ │ .prologue │ .line 55 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDb(Landroid/content/Context;Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase; │ │ move-result-object v0 │ │ - .line 56 │ + .line 57 │ .local v0, "db":Landroid/database/sqlite/SQLiteDatabase; │ invoke-static {v0, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getContentValuesOfLatestAvailableWordlistById(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/content/ContentValues; │ │ move-result-object v1 │ │ .line 58 │ .local v1, "wordlistValues":Landroid/content/ContentValues; │ @@ -179,15 +178,15 @@ │ │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;->getVisibility()I │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ - .line 76 │ + .line 77 │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;->getContext()Landroid/content/Context; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;->mClientId:Ljava/lang/String; │ │ iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;->mWordlistId:Ljava/lang/String; │ @@ -209,14 +208,15 @@ │ return-void │ │ .line 84 │ .restart local v0 # "downloadManagerPendingId":I │ :cond_1 │ new-instance v1, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar$UpdaterThread; │ │ + .line 85 │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;->getContext()Landroid/content/Context; │ │ move-result-object v2 │ │ invoke-direct {v1, p0, v2, v0}, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar$UpdaterThread;->(Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;Landroid/content/Context;I)V │ │ .line 86 ├── smali/org/smc/inputmethod/dictionarypack/DictionaryListInterfaceState.smali │ @@ -2,15 +2,14 @@ │ .super Ljava/lang/Object; │ .source "DictionaryListInterfaceState.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$1;, │ Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ } │ .end annotation │ │ │ # instance fields │ .field private mViewCache:Ljava/util/ArrayList; │ @@ -79,92 +78,90 @@ │ .end method │ │ .method public closeAll()V │ .locals 3 │ │ .prologue │ .line 65 │ - iget-object v2, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState;->mWordlistToState:Ljava/util/HashMap; │ + iget-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState;->mWordlistToState:Ljava/util/HashMap; │ │ - invoke-virtual {v2}, Ljava/util/HashMap;->values()Ljava/util/Collection; │ + invoke-virtual {v1}, Ljava/util/HashMap;->values()Ljava/util/Collection; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ + check-cast v0, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ │ .line 66 │ - .local v1, "state":Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ + .local v0, "state":Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ const/4 v2, 0x0 │ │ - iput-boolean v2, v1, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State;->mOpen:Z │ + iput-boolean v2, v0, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State;->mOpen:Z │ │ goto :goto_0 │ │ .line 68 │ - .end local v1 # "state":Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ + .end local v0 # "state":Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState$State; │ :cond_0 │ return-void │ .end method │ │ .method public findFirstOrphanedView()Landroid/view/View; │ .locals 3 │ │ .prologue │ .line 71 │ - iget-object v2, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState;->mViewCache:Ljava/util/ArrayList; │ + iget-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryListInterfaceState;->mViewCache: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 v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Landroid/view/View; │ + check-cast v0, Landroid/view/View; │ │ .line 72 │ - .local v1, "v":Landroid/view/View; │ - invoke-virtual {v1}, Landroid/view/View;->getParent()Landroid/view/ViewParent; │ + .local v0, "v":Landroid/view/View; │ + invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent; │ │ move-result-object v2 │ │ if-nez v2, :cond_0 │ │ .line 74 │ - .end local v1 # "v":Landroid/view/View; │ + .end local v0 # "v":Landroid/view/View; │ :goto_0 │ - return-object v1 │ + return-object v0 │ │ :cond_1 │ - const/4 v1, 0x0 │ + const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public getStatus(Ljava/lang/String;)I │ .locals 2 │ .param p1, "wordlistId" # Ljava/lang/String; ├── smali/org/smc/inputmethod/dictionarypack/DictionaryProvider.smali │ @@ -69,14 +69,15 @@ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->TAG:Ljava/lang/String; │ │ .line 52 │ const-string v0, "content://com.android.inputmethod.dictionarypack.aosp" │ │ + .line 53 │ invoke-static {v0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->CONTENT_URI:Landroid/net/Uri; │ │ .line 66 │ @@ -166,15 +167,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 48 │ invoke-direct {p0}, Landroid/content/ContentProvider;->()V │ │ - .line 109 │ return-void │ .end method │ │ .method private deleteDataFile(Landroid/net/Uri;)I │ .locals 12 │ .param p1, "uri" # Landroid/net/Uri; │ │ @@ -281,14 +281,15 @@ │ │ invoke-static {v10, v0, v7, v5}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->markAsBroken(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;I)V │ │ .line 475 │ :cond_3 │ const-string v10, "filename" │ │ + .line 476 │ invoke-virtual {v6, v10}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 477 │ .local v2, "localFilename":Ljava/lang/String; │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->getContext()Landroid/content/Context; │ @@ -427,15 +428,15 @@ │ │ .prologue │ .line 352 │ invoke-virtual/range {p0 .. p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->getContext()Landroid/content/Context; │ │ move-result-object v3 │ │ - .line 353 │ + .line 354 │ .local v3, "context":Landroid/content/Context; │ move-object/from16 v0, p1 │ │ invoke-static {v3, v0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->queryInstalledOrDeletingOrAvailableDictionaryMetadata(Landroid/content/Context;Ljava/lang/String;)Landroid/database/Cursor; │ │ move-result-object v12 │ │ @@ -444,15 +445,15 @@ │ if-nez v12, :cond_0 │ │ .line 357 │ invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List; │ │ move-result-object v21 │ │ - .line 430 │ + .line 428 │ :goto_0 │ return-object v21 │ │ .line 360 │ :cond_0 │ :try_start_0 │ new-instance v5, Ljava/util/HashMap; │ @@ -479,24 +480,26 @@ │ │ move-result v9 │ │ .line 363 │ .local v9, "localeIndex":I │ const-string v21, "filename" │ │ + .line 364 │ move-object/from16 v0, v21 │ │ invoke-interface {v12, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v8 │ │ .line 365 │ .local v8, "localFileNameIndex":I │ const-string v21, "rawChecksum" │ │ + .line 366 │ move-object/from16 v0, v21 │ │ invoke-interface {v12, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v11 │ │ .line 367 │ @@ -560,14 +563,15 @@ │ │ .line 372 │ .restart local v15 # "wordListId":Ljava/lang/String; │ :cond_4 │ :try_start_1 │ const-string v21, ":" │ │ + .line 373 │ move-object/from16 v0, v21 │ │ invoke-static {v15, v0}, Landroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v16 │ │ .line 375 │ @@ -1121,31 +1125,33 @@ │ │ move-result-object v3 │ │ invoke-static {v3, v0, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->updateClientInfo(Landroid/content/Context;Ljava/lang/String;Landroid/content/ContentValues;)V │ │ goto :goto_0 │ │ - .line 514 │ + .line 516 │ :pswitch_3 │ :try_start_0 │ invoke-static {p2}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->completeWithDefaultValues(Landroid/content/ContentValues;)Landroid/content/ContentValues; │ │ move-result-object v3 │ │ + .line 515 │ invoke-static {v3}, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->createFromContentValues(Landroid/content/ContentValues;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ move-result-object v2 │ │ .line 517 │ .local v2, "newDictionaryMetadata":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ new-instance v3, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MarkPreInstalledAction; │ │ invoke-direct {v3, v0, v2}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MarkPreInstalledAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ │ + .line 518 │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->getContext()Landroid/content/Context; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MarkPreInstalledAction;->execute(Landroid/content/Context;)V │ :try_end_0 │ .catch Lorg/smc/inputmethod/dictionarypack/BadFormatException; {:try_start_0 .. :try_end_0} :catch_0 │ @@ -1355,14 +1361,15 @@ │ goto :goto_0 │ │ .line 323 │ .end local v8 # "afd":Landroid/content/res/AssetFileDescriptor; │ :cond_4 │ const-string v2, "filename" │ │ + .line 324 │ invoke-virtual {v14, v2}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v11 │ │ .line 325 │ .local v11, "localFilename":Ljava/lang/String; │ invoke-virtual/range {p0 .. p0}, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->getContext()Landroid/content/Context; │ @@ -1373,14 +1380,15 @@ │ │ move-result-object v10 │ │ .line 326 │ .local v10, "f":Ljava/io/File; │ const/high16 v2, 0x10000000 │ │ + .line 327 │ invoke-static {v10, v2}, Landroid/os/ParcelFileDescriptor;->open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor; │ │ move-result-object v3 │ │ .line 328 │ .local v3, "pfd":Landroid/os/ParcelFileDescriptor; │ new-instance v2, Landroid/content/res/AssetFileDescriptor; │ @@ -1575,27 +1583,28 @@ │ │ move-result-object v3 │ │ .line 248 │ .local v3, "locale":Ljava/lang/String; │ const-string v7, "mayPrompt" │ │ + .line 249 │ invoke-virtual {p1, v7}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v6 │ │ .line 250 │ .local v6, "mayPromptValue":Ljava/lang/String; │ const-string v7, "true" │ │ invoke-virtual {v7, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ - .line 251 │ + .line 252 │ .local v5, "mayPrompt":Z │ invoke-direct {p0, v1, v3, v5}, Lorg/smc/inputmethod/dictionarypack/DictionaryProvider;->getDictionaryWordListsForLocale(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Collection; │ │ move-result-object v2 │ │ .line 254 │ .local v2, "dictFiles":Ljava/util/Collection;, "Ljava/util/Collection;" ├── smali/org/smc/inputmethod/dictionarypack/DictionaryService$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$startId:I │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionaryService;Lorg/smc/inputmethod/dictionarypack/DictionaryService;Landroid/content/Intent;I)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionaryService; │ │ .prologue │ .line 157 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryService$1;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionaryService; │ │ iput-object p2, p0, Lorg/smc/inputmethod/dictionarypack/DictionaryService$1;->val$self:Lorg/smc/inputmethod/dictionarypack/DictionaryService; ├── smali/org/smc/inputmethod/dictionarypack/DictionaryService.smali │ @@ -293,28 +293,31 @@ │ │ .prologue │ const/4 v5, 0x1 │ │ .line 238 │ const v1, 0x7f0c0522 │ │ + .line 239 │ invoke-virtual {p0, v1}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ new-array v2, v5, [Ljava/lang/Object; │ │ const/4 v3, 0x0 │ │ + .line 240 │ invoke-virtual {p1}, Ljava/util/Locale;->getDisplayName()Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 238 │ invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 241 │ .local v0, "toastText":Ljava/lang/String; │ invoke-static {p0, v0, v5}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; │ @@ -433,18 +436,20 @@ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ .line 149 │ const-string v1, "locale" │ │ + .line 150 │ invoke-virtual {p1, v1}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 149 │ invoke-static {v1}, Lorg/smc/inputmethod/dictionarypack/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ │ move-result-object v1 │ │ invoke-static {p0, v1}, Lorg/smc/inputmethod/dictionarypack/DictionaryService;->showStartDownloadingToast(Landroid/content/Context;Ljava/util/Locale;)V │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment$2.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ .param p2, "x0" # Ljava/lang/String; │ │ .prologue │ .line 158 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$2;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ invoke-direct {p0, p2}, Ljava/lang/Thread;->(Ljava/lang/String;)V ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ .prologue │ .line 73 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$1;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ invoke-direct {p0}, Landroid/content/BroadcastReceiver;->()V ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ .prologue │ .line 173 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$3;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$prefScreen:Landroid/preference/PreferenceGroup; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Landroid/preference/PreferenceGroup;Ljava/util/Collection;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ .prologue │ .line 225 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->val$prefScreen:Landroid/preference/PreferenceGroup; │ │ @@ -41,74 +42,73 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method public run()V │ - .locals 6 │ + .locals 5 │ │ .prologue │ .line 230 │ - iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ + iget-object v3, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ # invokes: Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->refreshNetworkState()V │ - invoke-static {v4}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->access$000(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;)V │ + invoke-static {v3}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->access$000(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;)V │ │ .line 232 │ - iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ + iget-object v3, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ - iget-object v5, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->val$prefScreen:Landroid/preference/PreferenceGroup; │ + iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->val$prefScreen:Landroid/preference/PreferenceGroup; │ │ # invokes: Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->removeAnyDictSettings(Landroid/preference/PreferenceGroup;)V │ - invoke-static {v4, v5}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->access$200(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Landroid/preference/PreferenceGroup;)V │ + invoke-static {v3, v4}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->access$200(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Landroid/preference/PreferenceGroup;)V │ │ .line 233 │ const/4 v0, 0x0 │ │ .line 234 │ .local v0, "i":I │ - iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->val$prefList:Ljava/util/Collection; │ + iget-object v3, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->val$prefList:Ljava/util/Collection; │ │ - invoke-interface {v4}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :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_0 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Landroid/preference/Preference; │ + check-cast v2, Landroid/preference/Preference; │ │ .line 235 │ - .local v3, "preference":Landroid/preference/Preference; │ + .local v2, "preference":Landroid/preference/Preference; │ add-int/lit8 v1, v0, 0x1 │ │ .end local v0 # "i":I │ .local v1, "i":I │ - invoke-virtual {v3, v0}, Landroid/preference/Preference;->setOrder(I)V │ + invoke-virtual {v2, v0}, Landroid/preference/Preference;->setOrder(I)V │ │ .line 236 │ iget-object v4, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$4;->val$prefScreen:Landroid/preference/PreferenceGroup; │ │ - invoke-virtual {v4, v3}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ + invoke-virtual {v4, v2}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ │ move v0, v1 │ │ .line 237 │ .end local v1 # "i":I │ .restart local v0 # "i":I │ goto :goto_0 │ │ .line 238 │ - .end local v3 # "preference":Landroid/preference/Preference; │ + .end local v2 # "preference":Landroid/preference/Preference; │ :cond_0 │ return-void │ .end method ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment$5.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic val$activity:Landroid/app/Activity; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Ljava/lang/String;Landroid/app/Activity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ .param p2, "x0" # Ljava/lang/String; │ │ .prologue │ .line 371 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$5;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ iput-object p3, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$5;->val$activity:Landroid/app/Activity; ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment.smali │ @@ -234,44 +234,49 @@ │ │ invoke-virtual {v2, v5}, Landroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v2 │ │ const v5, 0x7f0c0008 │ │ + .line 272 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v5}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->getString(I)Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v2, v5}, Landroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v2 │ │ + .line 273 │ move-object/from16 v0, p1 │ │ invoke-virtual {v2, v0}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v2 │ │ const-string v5, "list" │ │ + .line 274 │ invoke-virtual {v2, v5}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v2 │ │ const-string v5, "protocol" │ │ const-string v6, "2" │ │ + .line 276 │ invoke-virtual {v2, v5, v6}, Landroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v2 │ │ + .line 277 │ invoke-virtual {v2}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v3 │ │ .line 278 │ .local v3, "contentUri":Landroid/net/Uri; │ invoke-virtual/range {p0 .. p0}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->getActivity()Landroid/app/Activity; │ @@ -304,20 +309,20 @@ │ │ move-result-object v2 │ │ move-object/from16 v0, v27 │ │ invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 348 │ + .line 345 │ .end local v27 # "result":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :goto_1 │ return-object v27 │ │ - .line 279 │ + .line 280 │ .end local v15 # "cursor":Landroid/database/Cursor; │ :cond_0 │ invoke-virtual {v14}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v2 │ │ const/4 v4, 0x0 │ @@ -412,14 +417,15 @@ │ │ move-result v21 │ │ .line 298 │ .local v21, "localeIndex":I │ const-string v2, "description" │ │ + .line 299 │ invoke-interface {v15, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v16 │ │ .line 300 │ .local v16, "descriptionIndex":I │ const-string v2, "status" │ @@ -479,25 +485,25 @@ │ .local v11, "description":Ljava/lang/String; │ move/from16 v0, v28 │ │ invoke-interface {v15, v0}, Landroid/database/Cursor;->getInt(I)I │ │ move-result v12 │ │ - .line 309 │ + .line 310 │ .local v12, "status":I │ move-object/from16 v0, v29 │ │ move-object/from16 v1, v22 │ │ invoke-static {v0, v1}, Lorg/smc/inputmethod/dictionarypack/LocaleUtils;->getMatchLevel(Ljava/lang/String;Ljava/lang/String;)I │ │ move-result v23 │ │ - .line 311 │ + .line 312 │ .local v23, "matchLevel":I │ invoke-static/range {v23 .. v23}, Lorg/smc/inputmethod/dictionarypack/LocaleUtils;->getMatchLevelSortedString(I)Ljava/lang/String; │ │ move-result-object v24 │ │ .line 313 │ .local v24, "matchLevelString":Ljava/lang/String; │ @@ -587,26 +593,28 @@ │ │ move-object/from16 v0, v25 │ │ iget v2, v0, Lorg/smc/inputmethod/dictionarypack/WordListPreference;->mVersion:I │ │ if-ne v2, v9, :cond_6 │ │ + .line 323 │ move-object/from16 v0, v25 │ │ invoke-virtual {v0, v12}, Lorg/smc/inputmethod/dictionarypack/WordListPreference;->hasStatus(I)Z │ │ move-result v2 │ │ if-eqz v2, :cond_6 │ │ move-object/from16 v0, v25 │ │ iget-object v2, v0, Lorg/smc/inputmethod/dictionarypack/WordListPreference;->mLocale:Ljava/util/Locale; │ │ + .line 324 │ invoke-virtual {v2, v10}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_6 │ │ .line 332 │ @@ -822,15 +830,15 @@ │ .local v0, "activity":Landroid/app/Activity; │ if-nez v0, :cond_0 │ │ .line 240 │ :goto_0 │ return-void │ │ - .line 215 │ + .line 216 │ :cond_0 │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v6 │ │ iget-object v7, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mClientId:Ljava/lang/String; │ │ @@ -844,14 +852,15 @@ │ │ move-result-object v4 │ │ .line 218 │ .local v4, "prefScreen":Landroid/preference/PreferenceGroup; │ iget-object v6, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mClientId:Ljava/lang/String; │ │ + .line 219 │ invoke-direct {p0, v6}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->createInstalledDictSettingsCollection(Ljava/lang/String;)Ljava/util/Collection; │ │ move-result-object v1 │ │ .line 221 │ .local v1, "prefList":Ljava/util/Collection;, "Ljava/util/Collection<+Landroid/preference/Preference;>;" │ new-instance v6, Ljava/lang/StringBuilder; │ @@ -872,14 +881,15 @@ │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ const/16 v7, 0x11 │ │ + .line 222 │ invoke-static {v0, v2, v3, v7}, Landroid/text/format/DateUtils;->formatDateTime(Landroid/content/Context;JI)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 │ @@ -1034,14 +1044,15 @@ │ .local v0, "activity":Landroid/app/Activity; │ new-instance v1, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$5; │ │ const-string v2, "updateByHand" │ │ invoke-direct {v1, p0, v2, v0}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$5;->(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Ljava/lang/String;Landroid/app/Activity;)V │ │ + .line 381 │ invoke-virtual {v1}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$5;->start()V │ │ .line 382 │ return-void │ .end method │ │ .method private stopLoadingAnimation()V │ @@ -1099,14 +1110,15 @@ │ :cond_0 │ new-instance v0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$2; │ │ const-string v1, "refreshInterface" │ │ invoke-direct {v0, p0, v1}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$2;->(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Ljava/lang/String;)V │ │ + .line 163 │ invoke-virtual {v0}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$2;->start()V │ │ goto :goto_0 │ .end method │ │ .method public onActivityCreated(Landroid/os/Bundle;)V │ .locals 3 │ @@ -1134,14 +1146,15 @@ │ move-result-object v1 │ │ iput-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mClientId:Ljava/lang/String; │ │ .line 99 │ const-string v1, "connectivity" │ │ + .line 100 │ invoke-virtual {v0, v1}, Landroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/net/ConnectivityManager; │ │ iput-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mConnectivityManager:Landroid/net/ConnectivityManager; │ @@ -1170,14 +1183,15 @@ │ │ .prologue │ const/4 v4, 0x1 │ │ const/4 v3, 0x0 │ │ .line 108 │ + .line 109 │ invoke-virtual {p0}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mClientId:Ljava/lang/String; │ │ invoke-static {v1, v2}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getMetadataUriAsString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ @@ -1191,14 +1205,15 @@ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ .line 113 │ const v1, 0x7f0c001b │ │ + .line 114 │ invoke-interface {p1, v3, v4, v3, v1}, Landroid/view/Menu;->add(IIII)Landroid/view/MenuItem; │ │ move-result-object v1 │ │ iput-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mUpdateNowMenu:Landroid/view/MenuItem; │ │ .line 115 ├── smali/org/smc/inputmethod/dictionarypack/DictionarySettingsFragment$6.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$preferenceView:Landroid/view/View; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;Landroid/view/View;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ .prologue │ .line 403 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$6;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$6;->val$preferenceView:Landroid/view/View; │ │ @@ -69,37 +70,41 @@ │ # getter for: Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->mLoadingView:Landroid/view/View; │ invoke-static {v0}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->access$400(Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;)Landroid/view/View; │ │ move-result-object v0 │ │ iget-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$6;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ + .line 409 │ invoke-virtual {v1}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ const v2, 0x10a0001 │ │ + .line 408 │ invoke-static {v1, v2}, Landroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Landroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V │ │ .line 410 │ iget-object v0, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$6;->val$preferenceView:Landroid/view/View; │ │ iget-object v1, p0, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment$6;->this$0:Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment; │ │ + .line 411 │ invoke-virtual {v1}, Lorg/smc/inputmethod/dictionarypack/DictionarySettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ const/high16 v2, 0x10a0000 │ │ + .line 410 │ invoke-static {v1, v2}, Landroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Landroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V │ │ .line 415 ├── smali/org/smc/inputmethod/dictionarypack/MetadataDbHelper.smali │ @@ -305,14 +305,15 @@ │ │ const-string v1, "pendingUpdates" │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 173 │ invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ const-string v0, "" │ @@ -326,26 +327,27 @@ │ │ move-result-object v0 │ │ const/4 v1, 0x0 │ │ const/16 v2, 0x9 │ │ + .line 172 │ invoke-direct {p0, p1, v0, v1, v2}, Landroid/database/sqlite/SQLiteOpenHelper;->(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V │ │ .line 175 │ iput-object p1, p0, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->mContext:Landroid/content/Context; │ │ .line 176 │ iput-object p2, p0, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->mClientId:Ljava/lang/String; │ │ .line 177 │ return-void │ │ - .line 172 │ + .line 173 │ :cond_0 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ const-string v2, "." │ │ @@ -828,28 +830,30 @@ │ │ const-string v1, "pendingid = ? AND status = ?" │ │ new-array v2, v5, [Ljava/lang/String; │ │ const/4 v3, 0x0 │ │ + .line 986 │ invoke-static {p1, p2}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ const/4 v3, 0x1 │ │ invoke-static {v5}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 985 │ invoke-virtual {p0, v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I │ │ .line 987 │ return-void │ .end method │ │ .method public static deleteEntry(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;I)V │ @@ -870,20 +874,22 @@ │ │ const/4 v3, 0x0 │ │ aput-object p1, v2, v3 │ │ const/4 v3, 0x1 │ │ + .line 1001 │ invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 1000 │ invoke-virtual {p0, v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I │ │ .line 1002 │ return-void │ .end method │ │ .method public static getContentValuesByPendingId(Landroid/database/sqlite/SQLiteDatabase;J)Landroid/content/ContentValues; │ @@ -903,39 +909,40 @@ │ │ const/4 v0, 0x1 │ │ new-array v4, v0, [Ljava/lang/String; │ │ const/4 v0, 0x0 │ │ + .line 580 │ invoke-static {p1, p2}, Ljava/lang/Long;->toString(J)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v0 │ │ move-object v0, p0 │ │ move-object v6, v5 │ │ move-object v7, v5 │ │ + .line 577 │ invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ │ move-result-object v8 │ │ .line 582 │ .local v8, "cursor":Landroid/database/Cursor; │ if-nez v8, :cond_0 │ │ - .line 591 │ + .line 589 │ :goto_0 │ return-object v5 │ │ - .line 589 │ :cond_0 │ :try_start_0 │ invoke-static {v8}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getFirstLineAsContentValues(Landroid/database/Cursor;)Landroid/content/ContentValues; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v5 │ @@ -975,39 +982,40 @@ │ │ const/4 v0, 0x0 │ │ aput-object p1, v4, v0 │ │ const/4 v0, 0x1 │ │ + .line 680 │ invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v0 │ │ move-object v0, p0 │ │ move-object v6, v5 │ │ move-object v7, v5 │ │ + .line 677 │ invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ │ move-result-object v8 │ │ .line 681 │ .local v8, "cursor":Landroid/database/Cursor; │ if-nez v8, :cond_0 │ │ - .line 688 │ + .line 686 │ :goto_0 │ return-object v5 │ │ - .line 686 │ :cond_0 │ :try_start_0 │ invoke-static {v8}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getFirstLineAsContentValues(Landroid/database/Cursor;)Landroid/content/ContentValues; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v5 │ @@ -1060,19 +1068,18 @@ │ │ move-result-object v9 │ │ .line 705 │ .local v9, "cursor":Landroid/database/Cursor; │ if-nez v9, :cond_0 │ │ - .line 712 │ + .line 710 │ :goto_0 │ return-object v5 │ │ - .line 710 │ :cond_0 │ :try_start_0 │ invoke-static {v9}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getFirstLineAsContentValues(Landroid/database/Cursor;)Landroid/content/ContentValues; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v5 │ @@ -1223,15 +1230,15 @@ │ │ invoke-direct {v3, v10, v4}, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->(Ljava/lang/String;Landroid/content/ContentValues;)V │ │ move-object/from16 v0, v16 │ │ invoke-virtual {v0, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ - .line 655 │ + .line 656 │ :cond_2 │ move-object/from16 v0, p0 │ │ invoke-static {v0, v10}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDb(Landroid/content/Context;Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase; │ │ move-result-object v3 │ │ @@ -1428,49 +1435,51 @@ │ │ const/4 v0, 0x0 │ │ aput-object p1, v4, v0 │ │ const/4 v0, 0x1 │ │ + .line 610 │ invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v0 │ │ const/4 v0, 0x2 │ │ const/4 v6, 0x5 │ │ + .line 611 │ invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v0 │ │ move-object v0, p0 │ │ move-object v6, v5 │ │ move-object v7, v5 │ │ + .line 607 │ invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ │ move-result-object v8 │ │ .line 613 │ .local v8, "cursor":Landroid/database/Cursor; │ if-nez v8, :cond_0 │ │ - .line 621 │ + .line 619 │ :goto_0 │ return-object v5 │ │ - .line 619 │ :cond_0 │ :try_start_0 │ invoke-static {v8}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getFirstLineAsContentValues(Landroid/database/Cursor;)Landroid/content/ContentValues; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v5 │ @@ -1631,18 +1640,18 @@ │ if-nez v1, :cond_1 │ │ const-wide/16 v2, 0x0 │ │ .line 399 │ invoke-interface {v9}, Landroid/database/Cursor;->close()V │ │ + .line 397 │ :goto_0 │ return-wide v2 │ │ - .line 397 │ :cond_1 │ const/4 v1, 0x0 │ │ :try_start_1 │ invoke-interface {v9, v1}, Landroid/database/Cursor;->getLong(I)J │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ @@ -1717,18 +1726,18 @@ │ if-nez v1, :cond_0 │ │ const-wide/16 v2, -0x1 │ │ .line 424 │ invoke-interface {v9}, Landroid/database/Cursor;->close()V │ │ + .line 422 │ :goto_0 │ return-wide v2 │ │ - .line 422 │ :cond_0 │ const/4 v1, 0x0 │ │ :try_start_1 │ invoke-interface {v9, v1}, Landroid/database/Cursor;->getInt(I)I │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ @@ -1809,18 +1818,18 @@ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ .line 339 │ invoke-interface {v9}, Landroid/database/Cursor;->close()V │ │ + .line 337 │ :goto_0 │ return-object v5 │ │ - .line 337 │ :cond_0 │ const/4 v1, 0x0 │ │ :try_start_1 │ invoke-interface {v9, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ @@ -1900,14 +1909,15 @@ │ if-nez v1, :cond_0 │ │ const-wide/16 v10, 0x0 │ │ .line 444 │ invoke-interface {v9}, Landroid/database/Cursor;->close()V │ │ + .line 442 │ :goto_0 │ return-wide v10 │ │ .line 435 │ :cond_0 │ const/4 v8, 0x0 │ │ @@ -2171,20 +2181,22 @@ │ │ const/4 v4, 0x0 │ │ aput-object p1, v3, v4 │ │ const/4 v4, 0x1 │ │ + .line 1022 │ invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ + .line 1020 │ invoke-virtual {p0, v1, v0, v2, v3}, Landroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I │ │ .line 1023 │ return-void │ .end method │ │ .method public static markEntryAsAvailable(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;I)V │ @@ -2305,15 +2317,15 @@ │ invoke-static/range {v0 .. v5}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->markEntryAs(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;IIJ)V │ │ .line 1036 │ return-void │ .end method │ │ .method public static markEntryAsFinishedDownloadingAndInstalled(Landroid/database/sqlite/SQLiteDatabase;Landroid/content/ContentValues;)V │ - .locals 14 │ + .locals 13 │ .param p0, "db" # Landroid/database/sqlite/SQLiteDatabase; │ .param p1, "r" # Landroid/content/ContentValues; │ │ .prologue │ .line 918 │ const-string v0, "type" │ │ @@ -2370,48 +2382,52 @@ │ │ new-array v4, v0, [Ljava/lang/String; │ │ const/4 v0, 0x0 │ │ const-string v5, "locale" │ │ + .line 931 │ invoke-virtual {p1, v5}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v4, v0 │ │ const/4 v0, 0x1 │ │ const-string v5, "id" │ │ + .line 932 │ invoke-virtual {p1, v5}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v4, v0 │ │ const/4 v0, 0x2 │ │ const/4 v5, 0x3 │ │ + .line 933 │ invoke-static {v5}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v4, v0 │ │ const/4 v5, 0x0 │ │ const/4 v6, 0x0 │ │ const/4 v7, 0x0 │ │ move-object v0, p0 │ │ + .line 927 │ invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ │ move-result-object v8 │ │ .line 936 │ .local v8, "c":Landroid/database/Cursor; │ :try_start_0 │ @@ -2495,20 +2511,22 @@ │ │ new-array v2, v2, [Ljava/lang/String; │ │ const/4 v3, 0x0 │ │ const-string v4, "id" │ │ + .line 955 │ invoke-virtual {p1, v4}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 953 │ invoke-virtual {p0, v0, v1, v2}, Landroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I │ │ .line 956 │ const-string v0, "pendingUpdates" │ │ const/4 v1, 0x0 │ │ @@ -2519,25 +2537,24 @@ │ │ .line 958 │ invoke-virtual {p0}, Landroid/database/sqlite/SQLiteDatabase;->endTransaction()V │ │ .line 959 │ invoke-interface {v12}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v13 │ + move-result-object v0 │ │ - .local v13, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v13}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v0 │ + move-result v1 │ │ - if-eqz v0, :cond_0 │ + if-eqz v1, :cond_0 │ │ - invoke-interface {v13}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v10 │ │ check-cast v10, Ljava/lang/String; │ │ .line 961 │ .local v10, "filename":Ljava/lang/String; │ @@ -2553,21 +2570,20 @@ │ .catch Ljava/lang/SecurityException; {:try_start_1 .. :try_end_1} :catch_0 │ │ goto :goto_0 │ │ .line 963 │ .end local v9 # "f":Ljava/io/File; │ :catch_0 │ - move-exception v0 │ + move-exception v1 │ │ goto :goto_0 │ │ .line 947 │ .end local v10 # "filename":Ljava/lang/String; │ - .end local v13 # "i$":Ljava/util/Iterator; │ :catchall_0 │ move-exception v0 │ │ invoke-interface {v8}, Landroid/database/Cursor;->close()V │ │ throw v0 │ │ @@ -2766,40 +2782,44 @@ │ │ const-string v3, "status = ? OR status = ? OR status = ?" │ │ new-array v4, v7, [Ljava/lang/String; │ │ const/4 v6, 0x0 │ │ + .line 738 │ invoke-static {v7}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v7 │ │ aput-object v7, v4, v6 │ │ const/4 v6, 0x5 │ │ + .line 739 │ invoke-static {v6}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v9 │ │ const/4 v6, 0x2 │ │ + .line 740 │ invoke-static {v9}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v7 │ │ aput-object v7, v4, v6 │ │ const-string v7, "locale" │ │ move-object v6, v5 │ │ + .line 735 │ invoke-virtual/range {v0 .. v7}, Landroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ │ move-result-object v8 │ │ .line 742 │ .local v8, "results":Landroid/database/Cursor; │ return-object v8 │ @@ -2869,15 +2889,15 @@ │ const/4 v5, 0x0 │ │ :try_start_1 │ invoke-interface {v1, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 894 │ + .line 895 │ .local v0, "clientId":Ljava/lang/String; │ invoke-static {p0, v0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getMetadataUriAsString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v3 │ │ .line 896 │ .local v3, "metadataUri":Ljava/lang/String; │ @@ -3029,15 +3049,15 @@ │ const/4 v5, 0x0 │ │ :try_start_1 │ invoke-interface {v1, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 366 │ + .line 367 │ .local v0, "clientId":Ljava/lang/String; │ invoke-static {p0, v0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getMetadataUriAsString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v3 │ │ .line 368 │ .local v3, "metadataUri":Ljava/lang/String; │ @@ -3113,14 +3133,15 @@ │ │ move-result-object v3 │ │ .line 833 │ .local v3, "valuesMetadataUri":Ljava/lang/String; │ const-string v4, "additionalid" │ │ + .line 834 │ invoke-virtual {p2, v4}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 840 │ .local v2, "valuesMetadataAdditionalId":Ljava/lang/String; │ invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z ├── smali/org/smc/inputmethod/dictionarypack/MetadataHandler.smali │ @@ -79,61 +79,60 @@ │ .local v1, "bestWordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ const/high16 v0, -0x80000000 │ │ .line 134 │ .local v0, "bestFormatVersion":I │ invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_0 │ :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_1 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + check-cast v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ .line 135 │ - .local v3, "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ - iget-object v4, v3, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ + .local v2, "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + iget-object v4, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ │ invoke-virtual {p1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - iget v4, v3, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ + iget v4, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ │ const/4 v5, 0x2 │ │ if-gt v4, v5, :cond_0 │ │ - iget v4, v3, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ + iget v4, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ │ if-le v4, v0, :cond_0 │ │ .line 138 │ - move-object v1, v3 │ + move-object v1, v2 │ │ .line 139 │ - iget v0, v3, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ + iget v0, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ │ goto :goto_0 │ │ .line 143 │ - .end local v3 # "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .end local v2 # "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ :cond_1 │ return-object v1 │ .end method │ │ .method public static getCurrentMetadata(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ .locals 2 │ .param p0, "context" # Landroid/content/Context; │ @@ -168,14 +167,15 @@ │ │ .line 98 │ if-eqz v0, :cond_0 │ │ .line 99 │ invoke-interface {v0}, Landroid/database/Cursor;->close()V │ │ + .line 96 │ :cond_0 │ return-object v1 │ │ .line 98 │ :catchall_0 │ move-exception v1 │ │ @@ -238,14 +238,15 @@ │ │ move-result v28 │ │ .line 50 │ .local v28, "typeColumn":I │ const-string v2, "description" │ │ + .line 51 │ move-object/from16 v0, p0 │ │ invoke-interface {v0, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v20 │ │ .line 52 │ @@ -278,14 +279,15 @@ │ │ move-result v21 │ │ .line 55 │ .local v21, "fileSizeIndex":I │ const-string v2, "rawChecksum" │ │ + .line 56 │ move-object/from16 v0, p0 │ │ invoke-interface {v0, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v26 │ │ .line 57 │ @@ -298,24 +300,26 @@ │ │ move-result v19 │ │ .line 58 │ .local v19, "checksumIndex":I │ const-string v2, "filename" │ │ + .line 59 │ move-object/from16 v0, p0 │ │ invoke-interface {v0, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v24 │ │ .line 60 │ .local v24, "localFilenameIndex":I │ const-string v2, "url" │ │ + .line 61 │ move-object/from16 v0, p0 │ │ invoke-interface {v0, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v27 │ │ .line 62 │ @@ -328,14 +332,15 @@ │ │ move-result v30 │ │ .line 63 │ .local v30, "versionIndex":I │ const-string v2, "formatversion" │ │ + .line 64 │ move-object/from16 v0, p0 │ │ invoke-interface {v0, v2}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ move-result v22 │ │ .line 66 │ @@ -347,106 +352,118 @@ │ │ move/from16 v1, v23 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 67 │ move-object/from16 v0, p0 │ │ move/from16 v1, v28 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I │ │ move-result v4 │ │ + .line 68 │ move-object/from16 v0, p0 │ │ move/from16 v1, v20 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 69 │ move-object/from16 v0, p0 │ │ move/from16 v1, v29 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getLong(I)J │ │ move-result-wide v6 │ │ + .line 70 │ move-object/from16 v0, p0 │ │ move/from16 v1, v21 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getLong(I)J │ │ move-result-wide v8 │ │ + .line 71 │ move-object/from16 v0, p0 │ │ move/from16 v1, v26 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v10 │ │ + .line 72 │ move-object/from16 v0, p0 │ │ move/from16 v1, v19 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v11 │ │ + .line 73 │ move-object/from16 v0, p0 │ │ move/from16 v1, v24 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v12 │ │ + .line 74 │ move-object/from16 v0, p0 │ │ move/from16 v1, v27 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v13 │ │ + .line 75 │ move-object/from16 v0, p0 │ │ move/from16 v1, v30 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I │ │ move-result v14 │ │ + .line 76 │ move-object/from16 v0, p0 │ │ move/from16 v1, v22 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getInt(I)I │ │ move-result v15 │ │ const/16 v16, 0x0 │ │ + .line 77 │ move-object/from16 v0, p0 │ │ move/from16 v1, v25 │ │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v17 │ │ invoke-direct/range {v2 .. v17}, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->(Ljava/lang/String;ILjava/lang/String;JJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V │ │ + .line 66 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 78 │ invoke-interface/range {p0 .. p0}, Landroid/database/Cursor;->moveToNext()Z ├── smali/org/smc/inputmethod/dictionarypack/MetadataParser.smali │ @@ -188,14 +188,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "locale" │ │ + .line 65 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -204,14 +205,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "description" │ │ + .line 66 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -220,14 +222,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "update" │ │ + .line 67 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -236,14 +239,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "filesize" │ │ + .line 68 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -252,14 +256,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "checksum" │ │ + .line 69 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -268,14 +273,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "url" │ │ + .line 70 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -284,14 +290,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "version" │ │ + .line 71 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -300,14 +307,15 @@ │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ const-string v2, "formatversion" │ │ + .line 72 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v2}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/CharSequence; │ @@ -332,110 +340,119 @@ │ │ .line 78 │ :cond_3 │ new-instance v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ const-string v3, "id" │ │ + .line 79 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v3}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ const/4 v4, 0x2 │ │ const-string v5, "description" │ │ + .line 81 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v5}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v5 │ │ check-cast v5, Ljava/lang/String; │ │ const-string v6, "update" │ │ + .line 82 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v6}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v6 │ │ check-cast v6, Ljava/lang/String; │ │ invoke-static {v6}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ │ move-result-wide v6 │ │ const-string v8, "filesize" │ │ + .line 83 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v8}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v8 │ │ check-cast v8, Ljava/lang/String; │ │ invoke-static {v8}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J │ │ move-result-wide v8 │ │ const-string v10, "rawChecksum" │ │ + .line 84 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v10}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v10 │ │ check-cast v10, Ljava/lang/String; │ │ const-string v11, "checksum" │ │ + .line 85 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v11}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v11 │ │ check-cast v11, Ljava/lang/String; │ │ const/4 v12, 0x0 │ │ const-string v13, "url" │ │ + .line 87 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v13}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v13 │ │ check-cast v13, Ljava/lang/String; │ │ const-string v14, "version" │ │ + .line 88 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v14}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v14 │ │ check-cast v14, Ljava/lang/String; │ │ invoke-static {v14}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v14 │ │ const-string v15, "formatversion" │ │ + .line 89 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v15}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v15 │ │ check-cast v15, Ljava/lang/String; │ @@ -444,21 +461,23 @@ │ │ move-result v15 │ │ const/16 v16, 0x0 │ │ const-string v17, "locale" │ │ + .line 90 │ move-object/from16 v0, v18 │ │ move-object/from16 v1, v17 │ │ invoke-virtual {v0, v1}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v17 │ │ check-cast v17, Ljava/lang/String; │ │ invoke-direct/range {v2 .. v17}, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->(Ljava/lang/String;ILjava/lang/String;JJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V │ │ + .line 78 │ return-object v2 │ .end method ├── smali/org/smc/inputmethod/dictionarypack/PrivateLog.smali │ @@ -2,15 +2,14 @@ │ .super Ljava/lang/Object; │ .source "PrivateLog.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/smc/inputmethod/dictionarypack/PrivateLog$1;, │ Lorg/smc/inputmethod/dictionarypack/PrivateLog$DebugHelper; │ } │ .end annotation │ │ │ # static fields │ .field private static final COLUMN_DATE:Ljava/lang/String; = "date" ├── smali/org/smc/inputmethod/dictionarypack/UpdateHandler.smali │ @@ -96,31 +96,32 @@ │ sput-object v0, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ │ .line 111 │ new-instance v0, Ljava/util/LinkedList; │ │ invoke-direct {v0}, Ljava/util/LinkedList;->()V │ │ + .line 112 │ invoke-static {v0}, Ljava/util/Collections;->synchronizedList(Ljava/util/List;)Ljava/util/List; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ │ + .line 111 │ return-void │ .end method │ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 68 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 102 │ return-void │ .end method │ │ .method public static cancelUpdate(Landroid/content/Context;Ljava/lang/String;)V │ .locals 2 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "clientId" # Ljava/lang/String; │ @@ -153,102 +154,100 @@ │ │ .prologue │ const-wide/16 v6, -0x1 │ │ const/4 v8, 0x0 │ │ .line 280 │ - sget-object v5, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ + sget-object v4, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ │ - monitor-enter v5 │ + monitor-enter v4 │ │ - .line 281 │ + .line 282 │ :try_start_0 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getMetadataDownloadIdForURI(Landroid/content/Context;Ljava/lang/String;)J │ │ move-result-wide v2 │ │ .line 283 │ .local v2, "metadataDownloadId":J │ - cmp-long v4, v6, v2 │ + cmp-long v1, v6, v2 │ │ - if-nez v4, :cond_1 │ + if-nez v1, :cond_1 │ │ - monitor-exit v5 │ + monitor-exit v4 │ │ .line 292 │ :cond_0 │ return-void │ │ .line 284 │ :cond_1 │ - const/4 v4, 0x1 │ + const/4 v1, 0x1 │ │ - new-array v4, v4, [J │ + new-array v1, v1, [J │ │ - const/4 v6, 0x0 │ + const/4 v5, 0x0 │ │ - aput-wide v2, v4, v6 │ + aput-wide v2, v1, v5 │ │ - invoke-virtual {p2, v4}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->remove([J)V │ + invoke-virtual {p2, v1}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->remove([J)V │ │ .line 285 │ const-wide/16 v6, -0x1 │ │ invoke-static {p0, p1, v6, v7}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->writeMetadataDownloadId(Landroid/content/Context;Ljava/lang/String;J)V │ │ .line 286 │ - monitor-exit v5 │ + monitor-exit v4 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ .line 289 │ - sget-object v4, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ + sget-object v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ │ - invoke-static {v4}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ + invoke-static {v1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ │ - move-result-object v4 │ + move-result-object v1 │ │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + check-cast v0, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ │ .line 290 │ - .local v1, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ - invoke-interface {v1, v8}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->downloadedMetadata(Z)V │ + .local v0, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + invoke-interface {v0, v8}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->downloadedMetadata(Z)V │ │ goto :goto_0 │ │ .line 286 │ - .end local v0 # "i$":Ljava/util/Iterator; │ - .end local v1 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + .end local v0 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ .end local v2 # "metadataDownloadId":J │ :catchall_0 │ - move-exception v4 │ + move-exception v1 │ │ :try_start_1 │ - monitor-exit v5 │ + monitor-exit v4 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - throw v4 │ + throw v1 │ .end method │ │ .method private static compareMetadataForUpgrade(Landroid/content/Context;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ .locals 15 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "clientId" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ @@ -274,33 +273,33 @@ │ .local p3, "to":Ljava/util/List;, "Ljava/util/List;" │ new-instance v1, Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ │ invoke-direct {v1}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->()V │ │ .line 743 │ .local v1, "actions":Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ - const/4 v12, 0x1 │ + const/4 v11, 0x1 │ │ - new-array v12, v12, [Ljava/lang/Object; │ + new-array v11, v11, [Ljava/lang/Object; │ │ - const/4 v13, 0x0 │ + const/4 v12, 0x0 │ │ - const-string v14, "Comparing dictionaries" │ + const-string v13, "Comparing dictionaries" │ │ - aput-object v14, v12, v13 │ + aput-object v13, v11, v12 │ │ - invoke-static {v12}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ + invoke-static {v11}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 744 │ - new-instance v11, Ljava/util/TreeSet; │ + new-instance v10, Ljava/util/TreeSet; │ │ - invoke-direct {v11}, Ljava/util/TreeSet;->()V │ + invoke-direct {v10}, Ljava/util/TreeSet;->()V │ │ .line 746 │ - .local v11, "wordListIds":Ljava/util/Set;, "Ljava/util/Set;" │ + .local v10, "wordListIds":Ljava/util/Set;, "Ljava/util/Set;" │ if-nez p2, :cond_0 │ │ new-instance p2, Ljava/util/ArrayList; │ │ .end local p2 # "from":Ljava/util/List;, "Ljava/util/List;" │ invoke-direct/range {p2 .. p2}, Ljava/util/ArrayList;->()V │ │ @@ -315,130 +314,129 @@ │ invoke-direct/range {p3 .. p3}, Ljava/util/ArrayList;->()V │ │ .line 748 │ .restart local p3 # "to":Ljava/util/List;, "Ljava/util/List;" │ :cond_1 │ invoke-interface/range {p2 .. p2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v4 │ + move-result-object v11 │ │ - .local v4, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v12 │ │ if-eqz v12, :cond_2 │ │ - invoke-interface {v4}, 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, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + check-cast v9, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ - .local v10, "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ - iget-object v12, v10, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ + .local v9, "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + iget-object v12, v9, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ │ - invoke-interface {v11, v12}, Ljava/util/Set;->add(Ljava/lang/Object;)Z │ + invoke-interface {v10, v12}, Ljava/util/Set;->add(Ljava/lang/Object;)Z │ │ goto :goto_0 │ │ .line 749 │ - .end local v10 # "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .end local v9 # "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ :cond_2 │ invoke-interface/range {p3 .. p3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v4 │ + move-result-object v11 │ │ :goto_1 │ - invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v12 │ │ if-eqz v12, :cond_3 │ │ - invoke-interface {v4}, 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, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + check-cast v9, Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ - .restart local v10 # "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ - iget-object v12, v10, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ + .restart local v9 # "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + iget-object v12, v9, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ │ - invoke-interface {v11, v12}, Ljava/util/Set;->add(Ljava/lang/Object;)Z │ + invoke-interface {v10, v12}, Ljava/util/Set;->add(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ .line 750 │ - .end local v10 # "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .end local v9 # "wlData":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ :cond_3 │ - invoke-interface {v11}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v10}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v4 │ + move-result-object v11 │ │ :cond_4 │ :goto_2 │ - invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v12 │ │ if-eqz v12, :cond_e │ │ - invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - check-cast v5, Ljava/lang/String; │ + check-cast v4, Ljava/lang/String; │ │ .line 751 │ - .local v5, "id":Ljava/lang/String; │ + .local v4, "id":Ljava/lang/String; │ move-object/from16 v0, p2 │ │ - invoke-static {v0, v5}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + invoke-static {v0, v4}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ move-result-object v2 │ │ .line 752 │ .local v2, "currentInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ move-object/from16 v0, p3 │ │ - invoke-static {v0, v5}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + invoke-static {v0, v4}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ - move-result-object v6 │ + move-result-object v5 │ │ .line 755 │ - .local v6, "metadataInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ - if-eqz v6, :cond_5 │ + .local v5, "metadataInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + if-eqz v5, :cond_5 │ │ - iget v12, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ + iget v12, v5, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ │ const/4 v13, 0x2 │ │ if-le v12, v13, :cond_6 │ │ :cond_5 │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ .line 758 │ - .local v7, "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .local v6, "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ :goto_3 │ const/4 v12, 0x4 │ │ new-array v12, v12, [Ljava/lang/Object; │ │ const/4 v13, 0x0 │ │ const-string v14, "Considering updating " │ │ aput-object v14, v12, v13 │ │ const/4 v13, 0x1 │ │ - aput-object v5, v12, v13 │ + aput-object v4, v12, v13 │ │ const/4 v13, 0x2 │ │ const-string v14, "currentInfo =" │ │ aput-object v14, v12, v13 │ │ @@ -447,79 +445,67 @@ │ aput-object v2, v12, v13 │ │ invoke-static {v12}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 760 │ if-nez v2, :cond_8 │ │ - if-nez v7, :cond_8 │ + if-nez v6, :cond_8 │ │ .line 762 │ - if-nez v6, :cond_7 │ + if-nez v5, :cond_7 │ │ .line 764 │ sget-object v12, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->TAG:Ljava/lang/String; │ │ const-string v13, "Got an id for a wordlist that is neither in from nor in to" │ │ invoke-static {v12, v13}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_2 │ │ - .end local v7 # "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .end local v6 # "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ :cond_6 │ - move-object v7, v6 │ + move-object v6, v5 │ │ .line 755 │ goto :goto_3 │ │ .line 767 │ - .restart local v7 # "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .restart local v6 # "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ :cond_7 │ sget-object v12, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->TAG:Ljava/lang/String; │ │ new-instance v13, Ljava/lang/StringBuilder; │ │ invoke-direct {v13}, Ljava/lang/StringBuilder;->()V │ │ const-string v14, "Can\'t handle word list with id \'" │ │ invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ │ - invoke-virtual {v13, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v13 │ - │ - const-string v14, "\' because it has format" │ - │ - invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v13, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ │ - const-string v14, " version " │ + const-string v14, "\' because it has format version " │ │ invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ │ - iget v14, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ + iget v14, v5, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mFormatVersion:I │ │ invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ │ - const-string v14, " and the maximum version" │ - │ - invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v13 │ - │ - const-string v14, " we can handle is " │ + const-string v14, " and the maximum version we can handle is " │ │ invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v13 │ │ const/4 v14, 0x2 │ │ @@ -529,34 +515,34 @@ │ │ invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v13 │ │ invoke-static {v12, v13}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I │ │ - goto/16 :goto_2 │ + goto :goto_2 │ │ .line 772 │ :cond_8 │ if-nez v2, :cond_9 │ │ .line 775 │ new-instance v12, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction; │ │ move-object/from16 v0, p1 │ │ - invoke-direct {v12, v0, v7}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ + invoke-direct {v12, v0, v6}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ │ invoke-virtual {v1, v12}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ goto/16 :goto_2 │ │ .line 776 │ :cond_9 │ - if-nez v7, :cond_a │ + if-nez v6, :cond_a │ │ .line 783 │ new-instance v12, Lorg/smc/inputmethod/dictionarypack/ActionBatch$ForgetAction; │ │ const/4 v13, 0x0 │ │ move-object/from16 v0, p1 │ @@ -571,88 +557,88 @@ │ :cond_a │ invoke-static/range {p0 .. p1}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDb(Landroid/content/Context;Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase; │ │ move-result-object v3 │ │ .line 786 │ .local v3, "db":Landroid/database/sqlite/SQLiteDatabase; │ - iget v12, v7, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ + iget v12, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ iget v13, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ if-ne v12, v13, :cond_b │ │ .line 789 │ new-instance v12, Lorg/smc/inputmethod/dictionarypack/ActionBatch$UpdateDataAction; │ │ move-object/from16 v0, p1 │ │ - invoke-direct {v12, v0, v7}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$UpdateDataAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ + invoke-direct {v12, v0, v6}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$UpdateDataAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ │ invoke-virtual {v1, v12}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ goto/16 :goto_2 │ │ .line 790 │ :cond_b │ - iget v12, v7, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ + iget v12, v6, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ iget v13, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ if-le v12, v13, :cond_4 │ │ .line 793 │ iget-object v12, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mId:Ljava/lang/String; │ │ iget v13, v2, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->mVersion:I │ │ invoke-static {v3, v12, v13}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getContentValuesByWordListId(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;I)Landroid/content/ContentValues; │ │ - move-result-object v9 │ + move-result-object v8 │ │ .line 795 │ - .local v9, "values":Landroid/content/ContentValues; │ + .local v8, "values":Landroid/content/ContentValues; │ const-string v12, "status" │ │ - invoke-virtual {v9, v12}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ + invoke-virtual {v8, v12}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ │ move-result-object v12 │ │ invoke-virtual {v12}, Ljava/lang/Integer;->intValue()I │ │ - move-result v8 │ + move-result v7 │ │ .line 796 │ - .local v8, "status":I │ + .local v7, "status":I │ new-instance v12, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction; │ │ move-object/from16 v0, p1 │ │ - invoke-direct {v12, v0, v7}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ + invoke-direct {v12, v0, v6}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$MakeAvailableAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;)V │ │ invoke-virtual {v1, v12}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ .line 797 │ const/4 v12, 0x3 │ │ - if-eq v8, v12, :cond_c │ + if-eq v7, v12, :cond_c │ │ const/4 v12, 0x4 │ │ - if-ne v8, v12, :cond_d │ + if-ne v7, v12, :cond_d │ │ .line 799 │ :cond_c │ new-instance v12, Lorg/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction; │ │ const/4 v13, 0x0 │ │ move-object/from16 v0, p1 │ │ - invoke-direct {v12, v0, v7, v13}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;Z)V │ + invoke-direct {v12, v0, v6, v13}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;Z)V │ │ invoke-virtual {v1, v12}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ goto/16 :goto_2 │ │ .line 806 │ :cond_d │ @@ -667,19 +653,19 @@ │ invoke-virtual {v1, v12}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ goto/16 :goto_2 │ │ .line 815 │ .end local v2 # "currentInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ .end local v3 # "db":Landroid/database/sqlite/SQLiteDatabase; │ - .end local v5 # "id":Ljava/lang/String; │ - .end local v6 # "metadataInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ - .end local v7 # "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ - .end local v8 # "status":I │ - .end local v9 # "values":Landroid/content/ContentValues; │ + .end local v4 # "id":Ljava/lang/String; │ + .end local v5 # "metadataInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .end local v6 # "newInfo":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ + .end local v7 # "status":I │ + .end local v8 # "values":Landroid/content/ContentValues; │ :cond_e │ return-object v1 │ .end method │ │ .method public static computeUpgradeTo(Landroid/content/Context;Ljava/lang/String;Ljava/util/List;)Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ .locals 2 │ .param p0, "context" # Landroid/content/Context; │ @@ -695,14 +681,15 @@ │ ">;)", │ "Lorg/smc/inputmethod/dictionarypack/ActionBatch;" │ } │ .end annotation │ │ .prologue │ .line 827 │ + .line 828 │ .local p2, "newMetadata":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->getCurrentMetadata(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ │ move-result-object v0 │ │ .line 829 │ .local v0, "currentMetadata":Ljava/util/List;, "Ljava/util/List;" │ @@ -944,33 +931,33 @@ │ .line 454 │ :cond_0 │ :goto_0 │ return-void │ │ .line 422 │ :cond_1 │ - new-instance v9, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper; │ + new-instance v8, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper; │ │ - invoke-direct {v9, p0}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->(Landroid/content/Context;)V │ + invoke-direct {v8, p0}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->(Landroid/content/Context;)V │ │ .line 423 │ - .local v9, "manager":Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper; │ - invoke-static {v9, v2, v3}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->getCompletedDownloadInfo(Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;J)Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo; │ + .local v8, "manager":Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper; │ + invoke-static {v8, v2, v3}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->getCompletedDownloadInfo(Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;J)Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo; │ │ move-result-object v7 │ │ - .line 425 │ + .line 426 │ .local v7, "downloadInfo":Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo; │ invoke-static {p0, v7}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->getDownloadRecordsForCompletedDownloadInfo(Landroid/content/Context;Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;)Ljava/util/ArrayList; │ │ - move-result-object v11 │ + move-result-object v10 │ │ .line 427 │ - .local v11, "recordList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - if-eqz v11, :cond_0 │ + .local v10, "recordList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + if-eqz v10, :cond_0 │ │ .line 428 │ const/4 v0, 0x2 │ │ new-array v0, v0, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ @@ -986,139 +973,138 @@ │ move-result-object v6 │ │ aput-object v6, v0, v5 │ │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 435 │ - invoke-virtual {v11}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v10}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v8 │ + move-result-object v11 │ │ - .local v8, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v0 │ │ if-eqz v0, :cond_5 │ │ - invoke-interface {v8}, 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, Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ + check-cast v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ │ .line 437 │ - .local v10, "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ + .local v9, "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ const/4 v1, 0x0 │ │ .line 439 │ .local v1, "downloadSuccessful":Z │ :try_start_0 │ invoke-virtual {v7}, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->wasSuccessful()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ .line 440 │ - invoke-static {p0, v10, v9, v2, v3}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->handleDownloadedFile(Landroid/content/Context;Lorg/smc/inputmethod/dictionarypack/DownloadRecord;Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;J)Z │ + invoke-static {p0, v9, v8, v2, v3}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->handleDownloadedFile(Landroid/content/Context;Lorg/smc/inputmethod/dictionarypack/DownloadRecord;Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;J)Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result v1 │ │ .line 443 │ :cond_2 │ - invoke-virtual {v10}, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->isMetadata()Z │ + invoke-virtual {v9}, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->isMetadata()Z │ │ move-result v0 │ │ if-eqz v0, :cond_3 │ │ .line 444 │ invoke-static {p0, v1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->publishUpdateMetadataCompleted(Landroid/content/Context;Z)V │ │ goto :goto_1 │ │ .line 446 │ :cond_3 │ - iget-object v0, v10, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ + iget-object v0, v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ │ invoke-static {p0, v0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDb(Landroid/content/Context;Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase; │ │ move-result-object v4 │ │ .line 447 │ .local v4, "db":Landroid/database/sqlite/SQLiteDatabase; │ - iget-object v5, v10, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ + iget-object v5, v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ │ - iget-object v6, v10, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ + iget-object v6, v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ │ move-object v0, p0 │ │ invoke-static/range {v0 .. v6}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->publishUpdateWordListCompleted(Landroid/content/Context;ZJLandroid/database/sqlite/SQLiteDatabase;Landroid/content/ContentValues;Ljava/lang/String;)V │ │ goto :goto_1 │ │ .line 443 │ .end local v4 # "db":Landroid/database/sqlite/SQLiteDatabase; │ :catchall_0 │ move-exception v0 │ │ - move-object v12, v0 │ + move-object v11, v0 │ │ - invoke-virtual {v10}, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->isMetadata()Z │ + invoke-virtual {v9}, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->isMetadata()Z │ │ move-result v0 │ │ if-eqz v0, :cond_4 │ │ .line 444 │ invoke-static {p0, v1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->publishUpdateMetadataCompleted(Landroid/content/Context;Z)V │ │ .line 449 │ :goto_2 │ - throw v12 │ + throw v11 │ │ .line 446 │ :cond_4 │ - iget-object v0, v10, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ + iget-object v0, v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ │ invoke-static {p0, v0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDb(Landroid/content/Context;Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase; │ │ move-result-object v4 │ │ .line 447 │ .restart local v4 # "db":Landroid/database/sqlite/SQLiteDatabase; │ - iget-object v5, v10, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ + iget-object v5, v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ │ - iget-object v6, v10, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ + iget-object v6, v9, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ │ move-object v0, p0 │ │ invoke-static/range {v0 .. v6}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->publishUpdateWordListCompleted(Landroid/content/Context;ZJLandroid/database/sqlite/SQLiteDatabase;Landroid/content/ContentValues;Ljava/lang/String;)V │ │ goto :goto_2 │ │ .line 453 │ .end local v1 # "downloadSuccessful":Z │ .end local v4 # "db":Landroid/database/sqlite/SQLiteDatabase; │ - .end local v10 # "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ + .end local v9 # "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ :cond_5 │ const/4 v0, 0x1 │ │ new-array v0, v0, [J │ │ const/4 v5, 0x0 │ │ aput-wide v2, v0, v5 │ │ - invoke-virtual {v9, v0}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->remove([J)V │ + invoke-virtual {v8, v0}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->remove([J)V │ │ goto :goto_0 │ .end method │ │ .method private static getCompletedDownloadInfo(Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;J)Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo; │ .locals 13 │ .param p0, "manager" # Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper; │ @@ -1157,15 +1143,15 @@ │ │ const/4 v11, 0x0 │ │ const/16 v12, 0x10 │ │ invoke-direct {v10, v11, p1, p2, v12}, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->(Ljava/lang/String;JI)V │ │ - .line 376 │ + .line 374 │ :goto_0 │ return-object v10 │ │ .line 353 │ :cond_0 │ :try_start_0 │ invoke-interface {v4}, Landroid/database/Cursor;->moveToNext()Z │ @@ -1380,94 +1366,93 @@ │ "Lorg/smc/inputmethod/dictionarypack/DownloadRecord;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 383 │ - sget-object v5, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ + sget-object v4, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ │ - monitor-enter v5 │ + monitor-enter v4 │ │ .line 384 │ :try_start_0 │ iget-wide v6, p1, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->mDownloadId:J │ │ + .line 385 │ invoke-static {p0, v6, v7}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDownloadRecordsForDownloadId(Landroid/content/Context;J)Ljava/util/ArrayList; │ │ move-result-object v0 │ │ .line 388 │ .local v0, "downloadRecords":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ const/4 v1, 0x0 │ │ .line 389 │ .local v1, "hasMetadata":Z │ invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v4 │ + move-result v5 │ │ - if-eqz v4, :cond_1 │ + if-eqz v5, :cond_1 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ + check-cast v2, Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ │ .line 390 │ - .local v3, "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ - iget-object v4, v3, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ + .local v2, "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ + iget-object v5, v2, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ │ - if-nez v4, :cond_0 │ + if-nez v5, :cond_0 │ │ .line 391 │ const/4 v1, 0x1 │ │ .line 395 │ - .end local v3 # "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ + .end local v2 # "record":Lorg/smc/inputmethod/dictionarypack/DownloadRecord; │ :cond_1 │ if-eqz v1, :cond_2 │ │ .line 396 │ - iget-object v4, p1, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->mUri:Ljava/lang/String; │ + iget-object v3, p1, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->mUri:Ljava/lang/String; │ │ const-wide/16 v6, -0x1 │ │ - invoke-static {p0, v4, v6, v7}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->writeMetadataDownloadId(Landroid/content/Context;Ljava/lang/String;J)V │ + invoke-static {p0, v3, v6, v7}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->writeMetadataDownloadId(Landroid/content/Context;Ljava/lang/String;J)V │ │ .line 397 │ - iget-object v4, p1, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->mUri:Ljava/lang/String; │ + iget-object v3, p1, Lorg/smc/inputmethod/dictionarypack/CompletedDownloadInfo;->mUri:Ljava/lang/String; │ │ - invoke-static {p0, v4}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->saveLastUpdateTimeOfUri(Landroid/content/Context;Ljava/lang/String;)V │ + invoke-static {p0, v3}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->saveLastUpdateTimeOfUri(Landroid/content/Context;Ljava/lang/String;)V │ │ .line 399 │ :cond_2 │ - monitor-exit v5 │ + monitor-exit v4 │ │ return-object v0 │ │ .line 400 │ .end local v0 # "downloadRecords":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .end local v1 # "hasMetadata":Z │ - .end local v2 # "i$":Ljava/util/Iterator; │ :catchall_0 │ - move-exception v4 │ + move-exception v3 │ │ - monitor-exit v5 │ + monitor-exit v4 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v4 │ + throw v3 │ .end method │ │ .method private static getTempFileName(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ .locals 6 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "locale" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Throws; │ @@ -1587,22 +1572,24 @@ │ aput-object v6, v4, v5 │ │ invoke-static {v4}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 521 │ new-instance v4, Landroid/os/ParcelFileDescriptor$AutoCloseInputStream; │ │ + .line 522 │ invoke-virtual {p2, p3, p4}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->openDownloadedFile(J)Landroid/os/ParcelFileDescriptor; │ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Landroid/os/ParcelFileDescriptor$AutoCloseInputStream;->(Landroid/os/ParcelFileDescriptor;)V │ │ iget-object v5, p1, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mClientId:Ljava/lang/String; │ │ + .line 521 │ invoke-static {p0, v4, v5}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->handleMetadata(Landroid/content/Context;Ljava/io/InputStream;Ljava/lang/String;)V │ │ .line 549 │ :goto_0 │ return v2 │ │ .line 524 │ @@ -1635,20 +1622,22 @@ │ .line 527 │ .local v1, "wordListStatus":I │ if-ne v7, v1, :cond_1 │ │ .line 529 │ new-instance v4, Landroid/os/ParcelFileDescriptor$AutoCloseInputStream; │ │ + .line 530 │ invoke-virtual {p2, p3, p4}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->openDownloadedFile(J)Landroid/os/ParcelFileDescriptor; │ │ move-result-object v5 │ │ invoke-direct {v4, v5}, Landroid/os/ParcelFileDescriptor$AutoCloseInputStream;->(Landroid/os/ParcelFileDescriptor;)V │ │ + .line 529 │ invoke-static {p0, v4, p1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->handleWordList(Landroid/content/Context;Ljava/io/InputStream;Lorg/smc/inputmethod/dictionarypack/DownloadRecord;)V │ :try_end_0 │ .catch Ljava/io/FileNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_1 │ .catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_2 │ .catch Lorg/smc/inputmethod/dictionarypack/BadFormatException; {:try_start_0 .. :try_end_0} :catch_3 │ │ @@ -1905,14 +1894,15 @@ │ │ move-result-object v5 │ │ iget-object v6, p2, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ │ const-string v7, "description" │ │ + .line 622 │ invoke-virtual {v6, v7}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ @@ -1929,21 +1919,23 @@ │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v5 │ │ + .line 621 │ invoke-static {v5}, Lorg/smc/inputmethod/dictionarypack/PrivateLog;->log(Ljava/lang/String;)V │ │ .line 625 │ iget-object v5, p2, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ │ const-string v6, "locale" │ │ + .line 626 │ invoke-virtual {v5, v6}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 627 │ .local v2, "locale":Ljava/lang/String; │ invoke-static {p0, v2}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->getTempFileName(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ @@ -2094,14 +2086,15 @@ │ │ move-result-object v6 │ │ iget-object v7, p2, Lorg/smc/inputmethod/dictionarypack/DownloadRecord;->mAttributes:Landroid/content/ContentValues; │ │ const-string v8, "checksum" │ │ + .line 661 │ invoke-virtual {v7, v8}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)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 │ @@ -2185,48 +2178,51 @@ │ if-nez v8, :cond_0 │ │ .line 917 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getDb(Landroid/content/Context;Ljava/lang/String;)Landroid/database/sqlite/SQLiteDatabase; │ │ move-result-object v3 │ │ - .line 918 │ + .line 919 │ .local v3, "db":Landroid/database/sqlite/SQLiteDatabase; │ invoke-static {v3, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getContentValuesOfLatestAvailableWordlistById(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)Landroid/content/ContentValues; │ │ move-result-object v5 │ │ .line 920 │ .local v5, "installCandidate":Landroid/content/ContentValues; │ const/4 v8, 0x1 │ │ const-string v9, "status" │ │ + .line 921 │ invoke-virtual {v5, v9}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I │ │ move-result v9 │ │ if-ne v8, v9, :cond_0 │ │ .line 930 │ if-eqz p3, :cond_3 │ │ + .line 932 │ invoke-static {p0}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->getDownloadOverMeteredSetting(Landroid/content/Context;)I │ │ move-result v8 │ │ if-nez v8, :cond_3 │ │ .line 933 │ const-string v8, "connectivity" │ │ + .line 934 │ invoke-virtual {p0, v8}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Landroid/net/ConnectivityManager; │ │ .line 935 │ @@ -2249,20 +2245,22 @@ │ │ invoke-direct {v0}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->()V │ │ .line 952 │ .local v0, "actions":Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ new-instance v8, Lorg/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction; │ │ + .line 953 │ invoke-static {v5}, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->createFromContentValues(Landroid/content/ContentValues;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ move-result-object v9 │ │ invoke-direct {v8, p1, v9, v10}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$StartDownloadAction;->(Ljava/lang/String;Lorg/smc/inputmethod/dictionarypack/WordListMetadata;Z)V │ │ + .line 952 │ invoke-virtual {v0, v8}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ .line 954 │ const-string v8, "locale" │ │ invoke-virtual {v5, v8}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ @@ -2359,19 +2357,20 @@ │ .param p1, "clientId" # Ljava/lang/String; │ .param p2, "wordlistId" # Ljava/lang/String; │ .param p3, "version" # I │ .param p4, "status" # I │ │ .prologue │ .line 1078 │ + .line 1079 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->getCurrentMetadata(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ │ move-result-object v1 │ │ - .line 1080 │ + .line 1081 │ .local v1, "currentMetadata":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {v1, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ move-result-object v2 │ │ .line 1082 │ .local v2, "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ @@ -2416,19 +2415,20 @@ │ .param p1, "clientId" # Ljava/lang/String; │ .param p2, "wordlistId" # Ljava/lang/String; │ .param p3, "version" # I │ .param p4, "status" # I │ │ .prologue │ .line 1053 │ + .line 1054 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->getCurrentMetadata(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ │ move-result-object v1 │ │ - .line 1055 │ + .line 1056 │ .local v1, "currentMetadata":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {v1, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ move-result-object v2 │ │ .line 1057 │ .local v2, "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ @@ -2480,19 +2480,20 @@ │ .param p1, "clientId" # Ljava/lang/String; │ .param p2, "wordlistId" # Ljava/lang/String; │ .param p3, "version" # I │ .param p4, "status" # I │ │ .prologue │ .line 1024 │ + .line 1025 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->getCurrentMetadata(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ │ move-result-object v1 │ │ - .line 1026 │ + .line 1027 │ .local v1, "currentMetadata":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {v1, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ │ move-result-object v2 │ │ .line 1028 │ .local v2, "wordList":Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ @@ -2538,14 +2539,15 @@ │ .param p2, "wordlistId" # Ljava/lang/String; │ .param p3, "version" # I │ .param p4, "status" # I │ .param p5, "allowDownloadOnMeteredData" # Z │ │ .prologue │ .line 989 │ + .line 990 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->getCurrentMetadata(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ │ move-result-object v1 │ │ .line 991 │ .local v1, "currentMetadata":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {v1, p2}, Lorg/smc/inputmethod/dictionarypack/MetadataHandler;->findWordListById(Ljava/util/List;Ljava/lang/String;)Lorg/smc/inputmethod/dictionarypack/WordListMetadata; │ @@ -2638,115 +2640,113 @@ │ │ invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_1 │ .end method │ │ .method private static publishUpdateCycleCompletedEvent(Landroid/content/Context;)V │ - .locals 5 │ + .locals 4 │ .param p0, "context" # Landroid/content/Context; │ │ .prologue │ .line 504 │ - const-string v2, "Publishing update cycle completed event" │ + const-string v1, "Publishing update cycle completed event" │ │ - invoke-static {v2}, Lorg/smc/inputmethod/dictionarypack/PrivateLog;->log(Ljava/lang/String;)V │ + invoke-static {v1}, Lorg/smc/inputmethod/dictionarypack/PrivateLog;->log(Ljava/lang/String;)V │ │ .line 505 │ - const/4 v2, 0x1 │ + const/4 v1, 0x1 │ │ - new-array v2, v2, [Ljava/lang/Object; │ + new-array v1, v1, [Ljava/lang/Object; │ │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ - const-string v4, "Publishing update cycle completed event" │ + const-string v3, "Publishing update cycle completed event" │ │ - aput-object v4, v2, v3 │ + aput-object v3, v1, v2 │ │ - invoke-static {v2}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ + invoke-static {v1}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 506 │ - sget-object v2, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ + sget-object v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ │ - invoke-static {v2}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ + invoke-static {v1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + check-cast v0, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ │ .line 507 │ - .local v1, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ - invoke-interface {v1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->updateCycleCompleted()V │ + .local v0, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + invoke-interface {v0}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->updateCycleCompleted()V │ │ goto :goto_0 │ │ .line 509 │ - .end local v1 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + .end local v0 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ :cond_0 │ invoke-static {p0}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->signalNewDictionaryState(Landroid/content/Context;)V │ │ .line 510 │ return-void │ .end method │ │ .method public static publishUpdateMetadataCompleted(Landroid/content/Context;Z)V │ .locals 3 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "downloadSuccessful" # Z │ │ .prologue │ .line 474 │ - sget-object v2, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ + sget-object v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ │ - invoke-static {v2}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ + invoke-static {v1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v1 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + check-cast v0, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ │ .line 475 │ - .local v1, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ - invoke-interface {v1, p1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->downloadedMetadata(Z)V │ + .local v0, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + invoke-interface {v0, p1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->downloadedMetadata(Z)V │ │ goto :goto_0 │ │ .line 477 │ - .end local v1 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + .end local v0 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ :cond_0 │ invoke-static {p0}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->publishUpdateCycleCompletedEvent(Landroid/content/Context;)V │ │ .line 478 │ return-void │ .end method │ │ @@ -2757,109 +2757,106 @@ │ .param p2, "fileId" # J │ .param p4, "db" # Landroid/database/sqlite/SQLiteDatabase; │ .param p5, "downloadedFileRecord" # Landroid/content/ContentValues; │ .param p6, "clientId" # Ljava/lang/String; │ │ .prologue │ .line 484 │ - sget-object v4, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ + sget-object v3, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sSharedIdProtector:Ljava/lang/Object; │ │ - monitor-enter v4 │ + monitor-enter v3 │ │ .line 485 │ if-eqz p1, :cond_0 │ │ .line 486 │ :try_start_0 │ new-instance v0, Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ │ invoke-direct {v0}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->()V │ │ .line 487 │ .local v0, "actions":Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ - new-instance v3, Lorg/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction; │ + new-instance v2, Lorg/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction; │ │ - invoke-direct {v3, p6, p5}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction;->(Ljava/lang/String;Landroid/content/ContentValues;)V │ + invoke-direct {v2, p6, p5}, Lorg/smc/inputmethod/dictionarypack/ActionBatch$InstallAfterDownloadAction;->(Ljava/lang/String;Landroid/content/ContentValues;)V │ │ - invoke-virtual {v0, v3}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ + invoke-virtual {v0, v2}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->add(Lorg/smc/inputmethod/dictionarypack/ActionBatch$Action;)V │ │ .line 489 │ - new-instance v3, Lorg/smc/inputmethod/dictionarypack/LogProblemReporter; │ + new-instance v2, Lorg/smc/inputmethod/dictionarypack/LogProblemReporter; │ │ - sget-object v5, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->TAG:Ljava/lang/String; │ + sget-object v4, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->TAG:Ljava/lang/String; │ │ - invoke-direct {v3, v5}, Lorg/smc/inputmethod/dictionarypack/LogProblemReporter;->(Ljava/lang/String;)V │ + invoke-direct {v2, v4}, Lorg/smc/inputmethod/dictionarypack/LogProblemReporter;->(Ljava/lang/String;)V │ │ - invoke-virtual {v0, p0, v3}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->execute(Landroid/content/Context;Lorg/smc/inputmethod/dictionarypack/ProblemReporter;)V │ + invoke-virtual {v0, p0, v2}, Lorg/smc/inputmethod/dictionarypack/ActionBatch;->execute(Landroid/content/Context;Lorg/smc/inputmethod/dictionarypack/ProblemReporter;)V │ │ .line 493 │ .end local v0 # "actions":Lorg/smc/inputmethod/dictionarypack/ActionBatch; │ :goto_0 │ - monitor-exit v4 │ + monitor-exit v3 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ .line 495 │ - sget-object v3, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ + sget-object v2, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->sUpdateEventListeners:Ljava/util/List; │ │ - invoke-static {v3}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ + invoke-static {v2}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->linkedCopyOfList(Ljava/util/List;)Ljava/util/List; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + check-cast v1, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ │ .line 496 │ - .local v2, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + .local v1, "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ const-string v3, "id" │ │ invoke-virtual {p5, v3}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v3 │ │ - invoke-interface {v2, v3, p1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->wordListDownloadFinished(Ljava/lang/String;Z)V │ + invoke-interface {v1, v3, p1}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;->wordListDownloadFinished(Ljava/lang/String;Z)V │ │ goto :goto_1 │ │ .line 491 │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ + .end local v1 # "listener":Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ :cond_0 │ :try_start_1 │ invoke-static {p4, p2, p3}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->deleteDownloadingEntry(Landroid/database/sqlite/SQLiteDatabase;J)V │ │ goto :goto_0 │ │ .line 493 │ :catchall_0 │ - move-exception v3 │ + move-exception v2 │ │ - monitor-exit v4 │ + monitor-exit v3 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - throw v3 │ + throw v2 │ │ .line 499 │ - .restart local v1 # "i$":Ljava/util/Iterator; │ :cond_1 │ invoke-static {p0}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->publishUpdateCycleCompletedEvent(Landroid/content/Context;)V │ │ .line 500 │ return-void │ .end method │ │ @@ -3044,29 +3041,33 @@ │ invoke-virtual {v1, v10, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; │ │ .line 844 │ const-string v10, "wordlist_to_download" │ │ const-string v11, "id" │ │ + .line 845 │ invoke-virtual {p2, v11}, Landroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v11 │ │ + .line 844 │ invoke-virtual {v1, v10, v11}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; │ │ .line 846 │ const-string v10, "size" │ │ const-string v11, "filesize" │ │ + .line 847 │ invoke-virtual {p2, v11}, Landroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; │ │ move-result-object v11 │ │ + .line 846 │ invoke-virtual {v1, v10, v11}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent; │ │ .line 848 │ const-string v10, "locale" │ │ invoke-virtual {v1, v10, v4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; │ │ @@ -3084,14 +3085,15 @@ │ │ move-result-object v6 │ │ .line 853 │ .local v6, "notificationIntent":Landroid/app/PendingIntent; │ const-string v10, "notification" │ │ + .line 854 │ invoke-virtual {p0, v10}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v7 │ │ check-cast v7, Landroid/app/NotificationManager; │ │ .line 856 │ @@ -3144,70 +3146,79 @@ │ .local v8, "notificationTitle":Ljava/lang/String; │ new-instance v10, Landroid/app/Notification$Builder; │ │ invoke-direct {v10, p0}, Landroid/app/Notification$Builder;->(Landroid/content/Context;)V │ │ const/4 v11, 0x1 │ │ + .line 863 │ invoke-virtual {v10, v11}, Landroid/app/Notification$Builder;->setAutoCancel(Z)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ + .line 864 │ invoke-virtual {v10, v6}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ + .line 865 │ invoke-virtual {v10, v8}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ const v11, 0x7f0c0024 │ │ + .line 866 │ invoke-virtual {p0, v11}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v11 │ │ invoke-virtual {v10, v11}, Landroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ + .line 867 │ invoke-virtual {v10, v8}, Landroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ const/4 v11, 0x0 │ │ + .line 868 │ invoke-virtual {v10, v11}, Landroid/app/Notification$Builder;->setOngoing(Z)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ const/4 v11, 0x1 │ │ + .line 869 │ invoke-virtual {v10, v11}, Landroid/app/Notification$Builder;->setOnlyAlertOnce(Z)Landroid/app/Notification$Builder; │ │ move-result-object v10 │ │ const v11, 0x7f020089 │ │ + .line 870 │ invoke-virtual {v10, v11}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder; │ │ move-result-object v0 │ │ - .line 871 │ + .line 872 │ .local v0, "builder":Landroid/app/Notification$Builder; │ invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ move-result-object v10 │ │ const v11, 0x7f0e0024 │ │ invoke-virtual {v10, v11}, Landroid/content/res/Resources;->getColor(I)I │ │ move-result v10 │ │ + .line 871 │ invoke-static {v0, v10}, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->setColor(Landroid/app/Notification$Builder;I)V │ │ .line 873 │ invoke-static {v0}, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->setPriorityToLow(Landroid/app/Notification$Builder;)V │ │ .line 874 │ invoke-static {v0}, Lorg/smc/inputmethod/compat/NotificationCompatUtils;->setVisibilityToSecret(Landroid/app/Notification$Builder;)V │ @@ -3259,192 +3270,190 @@ │ invoke-virtual {p0, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V │ │ .line 571 │ return-void │ .end method │ │ .method public static tryUpdate(Landroid/content/Context;Z)Z │ - .locals 9 │ + .locals 8 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "updateNow" # Z │ │ .prologue │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 181 │ - new-instance v5, Ljava/util/TreeSet; │ + new-instance v4, Ljava/util/TreeSet; │ │ - invoke-direct {v5}, Ljava/util/TreeSet;->()V │ + invoke-direct {v4}, Ljava/util/TreeSet;->()V │ │ .line 182 │ - .local v5, "uris":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ + .local v4, "uris":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ invoke-static {p0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->queryClientIds(Landroid/content/Context;)Landroid/database/Cursor; │ │ move-result-object v1 │ │ .line 183 │ .local v1, "cursor":Landroid/database/Cursor; │ if-nez v1, :cond_1 │ │ .line 209 │ :cond_0 │ :goto_0 │ - return v4 │ + return v3 │ │ .line 185 │ :cond_1 │ :try_start_0 │ invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - move-result v6 │ + move-result v5 │ │ - if-nez v6, :cond_2 │ + if-nez v5, :cond_2 │ │ .line 195 │ invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ goto :goto_0 │ │ .line 187 │ :cond_2 │ - const/4 v6, 0x0 │ + const/4 v5, 0x0 │ │ :try_start_1 │ - invoke-interface {v1, v6}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ + invoke-interface {v1, v5}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 188 │ + .line 189 │ .local v0, "clientId":Ljava/lang/String; │ invoke-static {p0, v0}, Lorg/smc/inputmethod/dictionarypack/MetadataDbHelper;->getMetadataUriAsString(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 190 │ - .local v3, "metadataUri":Ljava/lang/String; │ - new-instance v6, Ljava/lang/StringBuilder; │ + .local v2, "metadataUri":Ljava/lang/String; │ + new-instance v5, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ - const-string v7, "Update for clientId " │ + const-string v6, "Update for clientId " │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->s(Ljava/lang/Object;)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-static {v6}, Lorg/smc/inputmethod/dictionarypack/PrivateLog;->log(Ljava/lang/String;)V │ + invoke-static {v5}, Lorg/smc/inputmethod/dictionarypack/PrivateLog;->log(Ljava/lang/String;)V │ │ .line 191 │ - const/4 v6, 0x4 │ + const/4 v5, 0x4 │ │ - new-array v6, v6, [Ljava/lang/Object; │ + new-array v5, v5, [Ljava/lang/Object; │ │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ - const-string v8, "Update for clientId" │ + const-string v7, "Update for clientId" │ │ - aput-object v8, v6, v7 │ + aput-object v7, v5, v6 │ │ - const/4 v7, 0x1 │ + const/4 v6, 0x1 │ │ - aput-object v0, v6, v7 │ + aput-object v0, v5, v6 │ │ - const/4 v7, 0x2 │ + const/4 v6, 0x2 │ │ - const-string v8, " which uses URI " │ + const-string v7, " which uses URI " │ │ - aput-object v8, v6, v7 │ + aput-object v7, v5, v6 │ │ - const/4 v7, 0x3 │ + const/4 v6, 0x3 │ │ - aput-object v3, v6, v7 │ + aput-object v2, v5, v6 │ │ - invoke-static {v6}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ + invoke-static {v5}, Lcom/android/inputmethod/latin/utils/DebugLogUtils;->l([Ljava/lang/Object;)V │ │ .line 192 │ - invoke-virtual {v5, v3}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v4, v2}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ │ .line 193 │ invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - move-result v6 │ + move-result v5 │ │ - if-nez v6, :cond_2 │ + if-nez v5, :cond_2 │ │ .line 195 │ invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ .line 197 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 198 │ - .local v4, "started":Z │ - invoke-virtual {v5}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator; │ + .local v3, "started":Z │ + invoke-virtual {v4}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v5 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_3 │ :goto_1 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v6 │ │ if-eqz v6, :cond_0 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - .end local v3 # "metadataUri":Ljava/lang/String; │ - check-cast v3, Ljava/lang/String; │ + .end local v2 # "metadataUri":Ljava/lang/String; │ + check-cast v2, Ljava/lang/String; │ │ .line 199 │ - .restart local v3 # "metadataUri":Ljava/lang/String; │ - invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ + .restart local v2 # "metadataUri":Ljava/lang/String; │ + invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v6 │ │ if-nez v6, :cond_3 │ │ .line 205 │ - invoke-static {p0, p1, v3}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->updateClientsWithMetadataUri(Landroid/content/Context;ZLjava/lang/String;)V │ + invoke-static {p0, p1, v2}, Lorg/smc/inputmethod/dictionarypack/UpdateHandler;->updateClientsWithMetadataUri(Landroid/content/Context;ZLjava/lang/String;)V │ │ .line 206 │ - const/4 v4, 0x1 │ + const/4 v3, 0x1 │ │ goto :goto_1 │ │ .line 195 │ .end local v0 # "clientId":Ljava/lang/String; │ - .end local v2 # "i$":Ljava/util/Iterator; │ - .end local v3 # "metadataUri":Ljava/lang/String; │ - .end local v4 # "started":Z │ + .end local v2 # "metadataUri":Ljava/lang/String; │ + .end local v3 # "started":Z │ :catchall_0 │ - move-exception v6 │ + move-exception v5 │ │ invoke-interface {v1}, Landroid/database/Cursor;->close()V │ │ - throw v6 │ + throw v5 │ .end method │ │ .method public static unregisterUpdateEventListener(Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener;)V │ .locals 1 │ .param p0, "listener" # Lorg/smc/inputmethod/dictionarypack/UpdateHandler$UpdateEventListener; │ │ .prologue │ @@ -3504,14 +3513,15 @@ │ │ move-result-wide v10 │ │ invoke-virtual {v8, v10, v11}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ + .line 226 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/ApplicationUtils;->getVersionName(Landroid/content/Context;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ @@ -3611,14 +3621,15 @@ │ .line 243 │ .end local v0 # "allowedOverMetered":Z │ :cond_1 │ if-eqz p1, :cond_3 │ │ const v8, 0x7f070013 │ │ + .line 244 │ invoke-virtual {v7, v8}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v6 │ │ .line 247 │ .local v6, "notificationVisible":Z │ :goto_1 │ @@ -3637,18 +3648,20 @@ │ │ :goto_2 │ invoke-virtual {v5, v8}, Landroid/app/DownloadManager$Request;->setNotificationVisibility(I)Landroid/app/DownloadManager$Request; │ │ .line 250 │ const v8, 0x7f070014 │ │ + .line 251 │ invoke-virtual {v7, v8}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v8 │ │ + .line 250 │ invoke-virtual {v5, v8}, Landroid/app/DownloadManager$Request;->setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request; │ │ .line 253 │ new-instance v4, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper; │ │ invoke-direct {v4, p0}, Lorg/smc/inputmethod/dictionarypack/DownloadManagerWrapper;->(Landroid/content/Context;)V │ │ @@ -3732,19 +3745,20 @@ │ .line 239 │ const/4 v8, 0x2 │ │ invoke-virtual {v5, v8}, Landroid/app/DownloadManager$Request;->setAllowedNetworkTypes(I)Landroid/app/DownloadManager$Request; │ │ goto :goto_0 │ │ - .line 243 │ + .line 244 │ .end local v0 # "allowedOverMetered":Z │ :cond_3 │ const v8, 0x7f070012 │ │ + .line 245 │ invoke-virtual {v7, v8}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v6 │ │ goto :goto_1 │ │ .line 248 ├── smali/org/smc/inputmethod/dictionarypack/WordListMetadata.smali │ @@ -275,28 +275,30 @@ │ │ move-result-wide v6 │ │ invoke-virtual/range {v18 .. v18}, Ljava/lang/Long;->longValue()J │ │ move-result-wide v8 │ │ + .line 106 │ invoke-virtual/range {v23 .. v23}, Ljava/lang/Integer;->intValue()I │ │ move-result v14 │ │ invoke-virtual/range {v20 .. v20}, Ljava/lang/Integer;->intValue()I │ │ move-result v15 │ │ invoke-virtual/range {v19 .. v19}, Ljava/lang/Integer;->intValue()I │ │ move-result v16 │ │ invoke-direct/range {v2 .. v17}, Lorg/smc/inputmethod/dictionarypack/WordListMetadata;->(Ljava/lang/String;ILjava/lang/String;JJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V │ │ + .line 105 │ return-object v2 │ .end method │ │ │ # virtual methods │ .method public toString()Ljava/lang/String; │ .locals 4 ├── smali/org/smc/inputmethod/dictionarypack/WordListPreference$OnWordListPreferenceClick.smali │ @@ -104,15 +104,15 @@ │ │ .line 263 │ if-eqz v6, :cond_2 │ │ .line 266 │ const/4 v2, -0x1 │ │ - .line 273 │ + .line 274 │ .local v2, "indexToOpen":I │ :goto_0 │ invoke-virtual {v4}, Landroid/widget/ListView;->getLastVisiblePosition()I │ │ move-result v7 │ │ invoke-virtual {v4}, Landroid/widget/ListView;->getFirstVisiblePosition()I │ @@ -132,14 +132,15 @@ │ .line 277 │ invoke-virtual {v4, v1}, Landroid/widget/ListView;->getChildAt(I)Landroid/view/View; │ │ move-result-object v7 │ │ const v8, 0x7f10005f │ │ + .line 278 │ invoke-virtual {v7, v8}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher; │ │ .line 279 ├── smali/org/smc/inputmethod/dictionarypack/WordListPreference.smali │ @@ -2,15 +2,14 @@ │ .super Landroid/preference/Preference; │ .source "WordListPreference.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/smc/inputmethod/dictionarypack/WordListPreference$1;, │ Lorg/smc/inputmethod/dictionarypack/WordListPreference$OnActionButtonClick;, │ Lorg/smc/inputmethod/dictionarypack/WordListPreference$OnWordListPreferenceClick; │ } │ .end annotation │ │ │ # static fields │ @@ -789,14 +788,15 @@ │ const/4 v8, 0x0 │ │ invoke-virtual {v5, v8}, Landroid/view/ViewGroup;->setLayoutTransition(Landroid/animation/LayoutTransition;)V │ │ .line 218 │ const v5, 0x7f10005e │ │ + .line 219 │ invoke-virtual {p1, v5}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v2 │ │ check-cast v2, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar; │ │ .line 220 │ @@ -857,14 +857,15 @@ │ │ :cond_0 │ invoke-virtual {v2, v7}, Lorg/smc/inputmethod/dictionarypack/DictionaryDownloadProgressBar;->setVisibility(I)V │ │ .line 228 │ const v5, 0x7f10005f │ │ + .line 229 │ invoke-virtual {p1, v5}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/dictionarypack/ButtonSwitcher; │ │ .line 232 ├── smali/org/smc/inputmethod/event/CombinerChain.smali │ @@ -60,271 +60,264 @@ │ invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 52 │ return-void │ .end method │ │ .method public varargs constructor (Ljava/lang/String;[Lorg/smc/inputmethod/event/Combiner;)V │ - .locals 6 │ + .locals 4 │ .param p1, "initialText" # Ljava/lang/String; │ .param p2, "combinerList" # [Lorg/smc/inputmethod/event/Combiner; │ │ .prologue │ .line 66 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 67 │ - new-instance v4, Ljava/util/ArrayList; │ + new-instance v1, Ljava/util/ArrayList; │ │ - invoke-direct {v4}, Ljava/util/ArrayList;->()V │ + invoke-direct {v1}, Ljava/util/ArrayList;->()V │ │ - iput-object v4, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ + iput-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ │ .line 69 │ - iget-object v4, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ + iget-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ │ - new-instance v5, Lorg/smc/inputmethod/event/DeadKeyCombiner; │ + new-instance v2, Lorg/smc/inputmethod/event/DeadKeyCombiner; │ │ - invoke-direct {v5}, Lorg/smc/inputmethod/event/DeadKeyCombiner;->()V │ + invoke-direct {v2}, Lorg/smc/inputmethod/event/DeadKeyCombiner;->()V │ │ - invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 70 │ - move-object v0, p2 │ + array-length v2, p2 │ │ - .local v0, "arr$":[Lorg/smc/inputmethod/event/Combiner; │ - array-length v3, v0 │ + const/4 v1, 0x0 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ - │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v3, :cond_0 │ + if-ge v1, v2, :cond_0 │ │ - aget-object v1, v0, v2 │ + aget-object v0, p2, v1 │ │ .line 71 │ - .local v1, "combiner":Lorg/smc/inputmethod/event/Combiner; │ - iget-object v4, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ + .local v0, "combiner":Lorg/smc/inputmethod/event/Combiner; │ + iget-object v3, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ │ - invoke-virtual {v4, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v3, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 70 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ .line 73 │ - .end local v1 # "combiner":Lorg/smc/inputmethod/event/Combiner; │ + .end local v0 # "combiner":Lorg/smc/inputmethod/event/Combiner; │ :cond_0 │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v1, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4, p1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ + invoke-direct {v1, p1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V │ │ - iput-object v4, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombinedText:Ljava/lang/StringBuilder; │ + iput-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombinedText:Ljava/lang/StringBuilder; │ │ .line 74 │ - new-instance v4, Landroid/text/SpannableStringBuilder; │ + new-instance v1, Landroid/text/SpannableStringBuilder; │ │ - invoke-direct {v4}, Landroid/text/SpannableStringBuilder;->()V │ + invoke-direct {v1}, Landroid/text/SpannableStringBuilder;->()V │ │ - iput-object v4, p0, Lorg/smc/inputmethod/event/CombinerChain;->mStateFeedback:Landroid/text/SpannableStringBuilder; │ + iput-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mStateFeedback:Landroid/text/SpannableStringBuilder; │ │ .line 75 │ return-void │ .end method │ │ .method public static createCombiners(Ljava/lang/String;)[Lorg/smc/inputmethod/event/Combiner; │ - .locals 13 │ + .locals 10 │ .param p0, "spec" # Ljava/lang/String; │ │ .prologue │ + const/4 v7, 0x0 │ + │ .line 154 │ invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v10 │ + move-result v8 │ │ - if-eqz v10, :cond_1 │ + if-eqz v8, :cond_1 │ │ .line 155 │ - const/4 v10, 0x0 │ - │ - new-array v4, v10, [Lorg/smc/inputmethod/event/Combiner; │ + new-array v3, v7, [Lorg/smc/inputmethod/event/Combiner; │ │ .line 176 │ :cond_0 │ - return-object v4 │ + return-object v3 │ │ .line 157 │ :cond_1 │ - const-string v10, ";" │ + const-string v8, ";" │ │ - invoke-virtual {p0, v10}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {p0, v8}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 158 │ - .local v3, "combinerDescriptors":[Ljava/lang/String; │ - array-length v10, v3 │ + .local v2, "combinerDescriptors":[Ljava/lang/String; │ + array-length v8, v2 │ │ - new-array v4, v10, [Lorg/smc/inputmethod/event/Combiner; │ + new-array v3, v8, [Lorg/smc/inputmethod/event/Combiner; │ │ .line 159 │ - .local v4, "combiners":[Lorg/smc/inputmethod/event/Combiner; │ - const/4 v6, 0x0 │ + .local v3, "combiners":[Lorg/smc/inputmethod/event/Combiner; │ + const/4 v5, 0x0 │ │ .line 160 │ - .local v6, "i":I │ - move-object v0, v3 │ + .local v5, "i":I │ + array-length v9, v2 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v9, v0 │ + move v8, v7 │ │ - .local v9, "len$":I │ - const/4 v8, 0x0 │ + move v6, v5 │ │ - .local v8, "i$":I │ - move v7, v6 │ - │ - .end local v6 # "i":I │ - .local v7, "i":I │ + .end local v5 # "i":I │ + .local v6, "i":I │ :goto_0 │ if-ge v8, v9, :cond_0 │ │ - aget-object v2, v0, v8 │ + aget-object v1, v2, v8 │ │ .line 161 │ - .local v2, "combinerDescriptor":Ljava/lang/String; │ - sget-object v10, Lorg/smc/inputmethod/event/CombinerChain;->IMPLEMENTED_COMBINERS:Ljava/util/HashMap; │ + .local v1, "combinerDescriptor":Ljava/lang/String; │ + sget-object v7, Lorg/smc/inputmethod/event/CombinerChain;->IMPLEMENTED_COMBINERS:Ljava/util/HashMap; │ │ - invoke-virtual {v10, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + .line 162 │ + invoke-virtual {v7, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Ljava/lang/Class; │ + check-cast v0, Ljava/lang/Class; │ │ .line 163 │ - .local v1, "combinerClass":Ljava/lang/Class;, "Ljava/lang/Class<+Lorg/smc/inputmethod/event/Combiner;>;" │ - if-nez v1, :cond_2 │ + .local v0, "combinerClass":Ljava/lang/Class;, "Ljava/lang/Class<+Lorg/smc/inputmethod/event/Combiner;>;" │ + if-nez v0, :cond_2 │ │ .line 164 │ - new-instance v10, Ljava/lang/RuntimeException; │ + new-instance v7, Ljava/lang/RuntimeException; │ │ - new-instance v11, Ljava/lang/StringBuilder; │ + new-instance v8, Ljava/lang/StringBuilder; │ │ - invoke-direct {v11}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v12, "Unknown combiner descriptor: " │ + const-string v9, "Unknown combiner descriptor: " │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-direct {v10, v11}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ + invoke-direct {v7, v8}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ │ - throw v10 │ + throw v7 │ │ .line 167 │ :cond_2 │ - add-int/lit8 v6, v7, 0x1 │ + add-int/lit8 v5, v6, 0x1 │ │ - .end local v7 # "i":I │ - .restart local v6 # "i":I │ + .end local v6 # "i":I │ + .restart local v5 # "i":I │ :try_start_0 │ - invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; │ + invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - check-cast v10, Lorg/smc/inputmethod/event/Combiner; │ + check-cast v7, Lorg/smc/inputmethod/event/Combiner; │ │ - aput-object v10, v4, v7 │ + aput-object v7, v3, v6 │ :try_end_0 │ .catch Ljava/lang/InstantiationException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 │ │ .line 160 │ - add-int/lit8 v8, v8, 0x1 │ + add-int/lit8 v7, v8, 0x1 │ │ - move v7, v6 │ + move v8, v7 │ │ - .end local v6 # "i":I │ - .restart local v7 # "i":I │ + move v6, v5 │ + │ + .end local v5 # "i":I │ + .restart local v6 # "i":I │ goto :goto_0 │ │ .line 168 │ - .end local v7 # "i":I │ - .restart local v6 # "i":I │ + .end local v6 # "i":I │ + .restart local v5 # "i":I │ :catch_0 │ - move-exception v5 │ + move-exception v4 │ │ .line 169 │ - .local v5, "e":Ljava/lang/InstantiationException; │ - new-instance v10, Ljava/lang/RuntimeException; │ + .local v4, "e":Ljava/lang/InstantiationException; │ + new-instance v7, Ljava/lang/RuntimeException; │ │ - new-instance v11, Ljava/lang/StringBuilder; │ + new-instance v8, Ljava/lang/StringBuilder; │ │ - invoke-direct {v11}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v12, "Unable to instantiate combiner: " │ + const-string v9, "Unable to instantiate combiner: " │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-direct {v10, v11, v5}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ + invoke-direct {v7, v8, v4}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ │ - throw v10 │ + throw v7 │ │ .line 171 │ - .end local v5 # "e":Ljava/lang/InstantiationException; │ + .end local v4 # "e":Ljava/lang/InstantiationException; │ :catch_1 │ - move-exception v5 │ + move-exception v4 │ │ .line 172 │ - .local v5, "e":Ljava/lang/IllegalAccessException; │ - new-instance v10, Ljava/lang/RuntimeException; │ + .local v4, "e":Ljava/lang/IllegalAccessException; │ + new-instance v7, Ljava/lang/RuntimeException; │ │ - new-instance v11, Ljava/lang/StringBuilder; │ + new-instance v8, Ljava/lang/StringBuilder; │ │ - invoke-direct {v11}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v12, "Unable to instantiate combiner: " │ + const-string v9, "Unable to instantiate combiner: " │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-direct {v10, v11, v5}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ + invoke-direct {v7, v8, v4}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V │ │ - throw v10 │ + throw v7 │ .end method │ │ .method private updateStateFeedback()V │ .locals 3 │ │ .prologue │ .line 86 │ @@ -491,47 +484,46 @@ │ │ .annotation runtime Ljavax/annotation/Nonnull; │ .end annotation │ │ .prologue │ .line 101 │ .local p1, "previousEvents":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - new-instance v3, Ljava/util/ArrayList; │ + new-instance v2, Ljava/util/ArrayList; │ │ - invoke-direct {v3, p1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V │ + invoke-direct {v2, p1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V │ │ .line 102 │ - .local v3, "modifiablePreviousEvents":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .local v2, "modifiablePreviousEvents":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ move-object v1, p2 │ │ .line 103 │ .local v1, "event":Lorg/smc/inputmethod/event/Event; │ - iget-object v4, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ + iget-object v3, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners: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_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - 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/smc/inputmethod/event/Combiner; │ │ .line 106 │ .local v0, "combiner":Lorg/smc/inputmethod/event/Combiner; │ - invoke-interface {v0, v3, v1}, Lorg/smc/inputmethod/event/Combiner;->processEvent(Ljava/util/ArrayList;Lorg/smc/inputmethod/event/Event;)Lorg/smc/inputmethod/event/Event; │ + invoke-interface {v0, v2, v1}, Lorg/smc/inputmethod/event/Combiner;->processEvent(Ljava/util/ArrayList;Lorg/smc/inputmethod/event/Event;)Lorg/smc/inputmethod/event/Event; │ │ move-result-object v1 │ │ .line 107 │ invoke-virtual {v1}, Lorg/smc/inputmethod/event/Event;->isConsumed()Z │ │ move-result v4 │ @@ -560,37 +552,36 @@ │ invoke-virtual {v0, p1, p2, p3}, Ljava/lang/StringBuilder;->replace(IILjava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 142 │ return-void │ .end method │ │ .method public reset()V │ - .locals 4 │ + .locals 3 │ │ .prologue │ .line 78 │ - iget-object v2, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombinedText:Ljava/lang/StringBuilder; │ + iget-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombinedText:Ljava/lang/StringBuilder; │ │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->setLength(I)V │ + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->setLength(I)V │ │ .line 79 │ - iget-object v2, p0, Lorg/smc/inputmethod/event/CombinerChain;->mStateFeedback:Landroid/text/SpannableStringBuilder; │ + iget-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mStateFeedback:Landroid/text/SpannableStringBuilder; │ │ - invoke-virtual {v2}, Landroid/text/SpannableStringBuilder;->clear()V │ + invoke-virtual {v1}, Landroid/text/SpannableStringBuilder;->clear()V │ │ .line 80 │ - iget-object v2, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners:Ljava/util/ArrayList; │ + iget-object v1, p0, Lorg/smc/inputmethod/event/CombinerChain;->mCombiners: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; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/org/smc/inputmethod/event/DeadKeyCombiner.smali │ @@ -113,14 +113,15 @@ │ iget-object v3, p0, Lorg/smc/inputmethod/event/DeadKeyCombiner;->mDeadSequence:Ljava/lang/StringBuilder; │ │ invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->setLength(I)V │ │ .line 54 │ iget v3, p2, Lorg/smc/inputmethod/event/Event;->mCodePoint:I │ │ + .line 55 │ invoke-static {v0, v3}, Landroid/view/KeyCharacterMap;->getDeadChar(II)I │ │ move-result v1 │ │ .line 56 │ .local v1, "resultingCodePoint":I │ if-nez v1, :cond_3 ├── smali/org/smc/inputmethod/event/MyanmarReordering.smali │ @@ -126,64 +126,64 @@ │ .restart local v0 # "combinedText":Ljava/lang/CharSequence; │ goto :goto_0 │ │ .line 129 │ :cond_2 │ const/4 v1, 0x0 │ │ + .line 130 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/event/Event;->createSoftwareTextEvent(Ljava/lang/CharSequence;I)Lorg/smc/inputmethod/event/Event; │ │ move-result-object v1 │ │ goto :goto_1 │ .end method │ │ .method private getCharSequence()Ljava/lang/CharSequence; │ .locals 4 │ │ .prologue │ .line 105 │ - new-instance v2, Ljava/lang/StringBuilder; │ + new-instance v1, Ljava/lang/StringBuilder; │ │ - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V │ │ .line 106 │ - .local v2, "s":Ljava/lang/StringBuilder; │ - iget-object v3, p0, Lorg/smc/inputmethod/event/MyanmarReordering;->mCurrentEvents:Ljava/util/ArrayList; │ + .local v1, "s":Ljava/lang/StringBuilder; │ + iget-object v2, p0, Lorg/smc/inputmethod/event/MyanmarReordering;->mCurrentEvents:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/event/Event; │ │ .line 107 │ .local v0, "e":Lorg/smc/inputmethod/event/Event; │ iget v3, v0, Lorg/smc/inputmethod/event/Event;->mCodePoint:I │ │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ + invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ .line 109 │ .end local v0 # "e":Lorg/smc/inputmethod/event/Event; │ :cond_0 │ - return-object v2 │ + return-object v1 │ .end method │ │ .method private getLastEvent()Lorg/smc/inputmethod/event/Event; │ .locals 3 │ │ .prologue │ .line 97 │ @@ -471,14 +471,15 @@ │ │ if-lt v1, v7, :cond_4 │ │ iget-object v7, p0, Lorg/smc/inputmethod/event/MyanmarReordering;->mCurrentEvents:Ljava/util/ArrayList; │ │ add-int/lit8 v8, v1, -0x2 │ │ + .line 161 │ invoke-virtual {v7, v8}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v7 │ │ check-cast v7, Lorg/smc/inputmethod/event/Event; │ │ iget v7, v7, Lorg/smc/inputmethod/event/Event;->mCodePoint:I ├── smali/org/smc/inputmethod/indic/BackupAgent.smali │ @@ -31,14 +31,15 @@ │ │ const/4 v3, 0x0 │ │ new-instance v4, Ljava/lang/StringBuilder; │ │ invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ + .line 29 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/BackupAgent;->getPackageName()Ljava/lang/String; │ │ move-result-object v5 │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ @@ -53,12 +54,13 @@ │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ invoke-direct {v1, p0, v2}, Landroid/app/backup/SharedPreferencesBackupHelper;->(Landroid/content/Context;[Ljava/lang/String;)V │ │ + .line 28 │ invoke-virtual {p0, v0, v1}, Lorg/smc/inputmethod/indic/BackupAgent;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V │ │ .line 30 │ return-void │ .end method ├── smali/org/smc/inputmethod/indic/BinaryDictionaryFileDumper.smali │ @@ -185,15 +185,15 @@ │ │ invoke-static {v0, v1, v2, v3}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getContentUriBuilderForType(Ljava/lang/String;Landroid/content/ContentProviderClient;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ :try_end_0 │ .catch Landroid/os/RemoteException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v31 │ │ - .line 243 │ + .line 244 │ .local v31, "wordListUriBuilder":Landroid/net/Uri$Builder; │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, p4 │ │ @@ -572,15 +572,15 @@ │ invoke-static/range {v16 .. v16}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->closeCloseableAndReportAnyException(Ljava/io/Closeable;)V │ │ .line 253 │ add-int/lit8 v24, v24, 0x1 │ │ goto/16 :goto_0 │ │ - .line 277 │ + .line 278 │ .end local v20 # "e":Ljava/lang/Exception; │ .end local v26 # "outputFile":Ljava/io/File; │ .restart local v25 # "originalSourceStream":Ljava/io/InputStream; │ .restart local v27 # "outputFile":Ljava/io/File; │ :pswitch_0 │ :try_start_8 │ invoke-static/range {v25 .. v25}, Lcom/android/inputmethod/latin/utils/FileTransforms;->getUncompressedStream(Ljava/io/InputStream;)Ljava/io/InputStream; │ @@ -610,15 +610,15 @@ │ invoke-static/range {v19 .. v19}, Lcom/android/inputmethod/latin/utils/FileTransforms;->getUncompressedStream(Ljava/io/InputStream;)Ljava/io/InputStream; │ │ move-result-object v23 │ │ .line 285 │ goto/16 :goto_2 │ │ - .line 287 │ + .line 288 │ :pswitch_2 │ invoke-static/range {v25 .. v25}, Lcom/android/inputmethod/latin/utils/FileTransforms;->getUncompressedStream(Ljava/io/InputStream;)Ljava/io/InputStream; │ │ move-result-object v29 │ │ .line 289 │ invoke-static/range {v29 .. v29}, Lcom/android/inputmethod/latin/utils/FileTransforms;->getDecryptedStream(Ljava/io/InputStream;)Ljava/io/InputStream; │ @@ -969,120 +969,118 @@ │ .param p2, "hasDefaultWordList" # Z │ │ .prologue │ .line 408 │ :try_start_0 │ invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - const-string v6, "" │ + const-string v5, "" │ │ - invoke-static {v6}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ + .line 409 │ + invoke-static {v5}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v6}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ + invoke-virtual {v5}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v5, v6}, Landroid/content/ContentResolver;->acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient; │ + invoke-virtual {v4, v5}, Landroid/content/ContentResolver;->acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient; │ :try_end_0 │ .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 414 │ - .local v4, "providerClient":Landroid/content/ContentProviderClient; │ - if-nez v4, :cond_0 │ + .local v3, "providerClient":Landroid/content/ContentProviderClient; │ + if-nez v3, :cond_0 │ │ .line 415 │ - sget-object v5, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->TAG:Ljava/lang/String; │ + sget-object v4, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->TAG:Ljava/lang/String; │ │ - const-string v6, "Can\'t establish communication with the dictionary provider" │ + const-string v5, "Can\'t establish communication with the dictionary provider" │ │ - invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 427 │ - .end local v4 # "providerClient":Landroid/content/ContentProviderClient; │ + .end local v3 # "providerClient":Landroid/content/ContentProviderClient; │ :goto_0 │ return-void │ │ .line 410 │ :catch_0 │ move-exception v0 │ │ .line 411 │ .local v0, "e":Ljava/lang/SecurityException; │ - sget-object v5, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->TAG:Ljava/lang/String; │ + sget-object v4, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->TAG:Ljava/lang/String; │ │ - const-string v6, "No permission to communicate with the dictionary provider" │ + const-string v5, "No permission to communicate with the dictionary provider" │ │ - invoke-static {v5, v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v4, v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ goto :goto_0 │ │ .line 419 │ .end local v0 # "e":Ljava/lang/SecurityException; │ - .restart local v4 # "providerClient":Landroid/content/ContentProviderClient; │ + .restart local v3 # "providerClient":Landroid/content/ContentProviderClient; │ :cond_0 │ :try_start_1 │ invoke-static {p0, p1, p2}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getWordListWordListInfos(Ljava/util/Locale;Landroid/content/Context;Z)Ljava/util/List; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 421 │ - .local v3, "idList":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v2, "idList":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v4 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_1 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Lorg/smc/inputmethod/indic/WordListInfo; │ + check-cast v1, Lorg/smc/inputmethod/indic/WordListInfo; │ │ .line 422 │ - .local v2, "id":Lorg/smc/inputmethod/indic/WordListInfo; │ - iget-object v5, v2, Lorg/smc/inputmethod/indic/WordListInfo;->mId:Ljava/lang/String; │ + .local v1, "id":Lorg/smc/inputmethod/indic/WordListInfo; │ + iget-object v5, v1, Lorg/smc/inputmethod/indic/WordListInfo;->mId:Ljava/lang/String; │ │ - iget-object v6, v2, Lorg/smc/inputmethod/indic/WordListInfo;->mLocale:Ljava/lang/String; │ + iget-object v6, v1, Lorg/smc/inputmethod/indic/WordListInfo;->mLocale:Ljava/lang/String; │ │ - iget-object v7, v2, Lorg/smc/inputmethod/indic/WordListInfo;->mRawChecksum:Ljava/lang/String; │ + iget-object v7, v1, Lorg/smc/inputmethod/indic/WordListInfo;->mRawChecksum:Ljava/lang/String; │ │ - invoke-static {v5, v6, v7, v4, p1}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->cacheWordList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentProviderClient;Landroid/content/Context;)V │ + invoke-static {v5, v6, v7, v3, p1}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->cacheWordList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentProviderClient;Landroid/content/Context;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_1 │ │ .line 425 │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "id":Lorg/smc/inputmethod/indic/WordListInfo; │ - .end local v3 # "idList":Ljava/util/List;, "Ljava/util/List;" │ + .end local v1 # "id":Lorg/smc/inputmethod/indic/WordListInfo; │ + .end local v2 # "idList":Ljava/util/List;, "Ljava/util/List;" │ :catchall_0 │ - move-exception v5 │ + move-exception v4 │ │ - invoke-virtual {v4}, Landroid/content/ContentProviderClient;->release()Z │ + invoke-virtual {v3}, Landroid/content/ContentProviderClient;->release()Z │ │ - throw v5 │ + throw v4 │ │ - .restart local v1 # "i$":Ljava/util/Iterator; │ - .restart local v3 # "idList":Ljava/util/List;, "Ljava/util/List;" │ + .restart local v2 # "idList":Ljava/util/List;, "Ljava/util/List;" │ :cond_1 │ - invoke-virtual {v4}, Landroid/content/ContentProviderClient;->release()Z │ + invoke-virtual {v3}, Landroid/content/ContentProviderClient;->release()Z │ │ goto :goto_0 │ .end method │ │ .method public static checkMagicAndCopyFileTo(Ljava/io/BufferedInputStream;Ljava/io/BufferedOutputStream;)V │ .locals 7 │ .param p0, "input" # Ljava/io/BufferedInputStream; │ @@ -1327,22 +1325,24 @@ │ │ invoke-virtual {v0, v1}, Landroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v0 │ │ const-string v1, "com.android.inputmethod.dictionarypack.aosp" │ │ + .line 105 │ invoke-virtual {v0, v1}, Landroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v0 │ │ invoke-virtual {v0, p0}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v0 │ │ + .line 104 │ return-object v0 │ .end method │ │ .method private static getWordListWordListInfos(Ljava/util/Locale;Landroid/content/Context;Z)Ljava/util/List; │ .locals 16 │ .param p0, "locale" # Ljava/util/Locale; │ .param p1, "context" # Landroid/content/Context; │ @@ -1374,14 +1374,15 @@ │ .local v8, "clientId":Ljava/lang/String; │ invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v3 │ │ const-string v4, "" │ │ + .line 145 │ invoke-static {v4}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v4 │ @@ -1394,31 +1395,33 @@ │ .local v1, "client":Landroid/content/ContentProviderClient; │ if-nez v1, :cond_0 │ │ invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List; │ │ move-result-object v12 │ │ - .line 193 │ + .line 188 │ :goto_0 │ return-object v12 │ │ .line 147 │ :cond_0 │ const/4 v9, 0x0 │ │ .line 149 │ .local v9, "cursor":Landroid/database/Cursor; │ :try_start_0 │ const-string v3, "dict" │ │ + .line 150 │ invoke-virtual/range {p0 .. p0}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 149 │ invoke-static {v8, v1, v3, v4}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getContentUriBuilderForType(Ljava/lang/String;Landroid/content/ContentProviderClient;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v7 │ │ .line 151 │ .local v7, "builder":Landroid/net/Uri$Builder; │ if-nez p2, :cond_1 │ @@ -1438,18 +1441,20 @@ │ │ .line 156 │ .local v2, "queryUri":Landroid/net/Uri; │ const-string v3, "2" │ │ const-string v4, "protocol" │ │ + .line 157 │ invoke-virtual {v2, v4}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 156 │ invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v11 │ │ .line 159 │ .local v11, "isProtocolV2":Z │ sget-object v3, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->DICTIONARY_PROJECTION:[Ljava/lang/String; │ @@ -1726,14 +1731,15 @@ │ :try_start_0 │ invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v2 │ │ const-string v3, "" │ │ + .line 507 │ invoke-static {v3}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v3 │ @@ -1858,26 +1864,29 @@ │ .local v5, "metadataAdditionalId":Ljava/lang/String; │ invoke-static {p2}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v9 │ │ const-string v10, "metadata" │ │ + .line 469 │ invoke-virtual {v9, v10}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v9 │ │ const-string v10, "protocol" │ │ const-string v11, "2" │ │ + .line 470 │ invoke-virtual {v9, v10, v11}, Landroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v9 │ │ + .line 471 │ invoke-virtual {v9}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v6 │ │ .line 472 │ .local v6, "metadataContentUri":Landroid/net/Uri; │ invoke-virtual {p1, v6, v12, v12}, Landroid/content/ContentProviderClient;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I │ @@ -1909,31 +1918,34 @@ │ .line 481 │ invoke-static {p2}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v9 │ │ const-string v10, "dict" │ │ + .line 482 │ invoke-virtual {v9, v10}, Landroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v9 │ │ const-string v10, "protocol" │ │ const-string v11, "2" │ │ + .line 483 │ invoke-virtual {v9, v10, v11}, Landroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v9 │ │ + .line 484 │ invoke-virtual {v9}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v0 │ │ - .line 485 │ + .line 486 │ .local v0, "dictionaryContentUriBase":Landroid/net/Uri; │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCurrentDictionaryFileNameAndVersionInfo(Landroid/content/Context;)Ljava/util/ArrayList; │ │ move-result-object v1 │ │ .line 487 │ .local v1, "dictionaryList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ @@ -1960,18 +1972,20 @@ │ .local v3, "info":Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo; │ iget-object v9, v3, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->mId:Ljava/lang/String; │ │ invoke-static {v0, v9}, Landroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri; │ │ move-result-object v9 │ │ + .line 491 │ invoke-virtual {v3}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils$DictionaryInfo;->toContentValues()Landroid/content/ContentValues; │ │ move-result-object v10 │ │ + .line 490 │ invoke-virtual {p1, v9, v10}, Landroid/content/ContentProviderClient;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; │ │ .line 488 │ add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 ├── smali/org/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings.smali │ @@ -28,26 +28,28 @@ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 112 │ if-nez p1, :cond_0 │ │ const/4 v0, 0x0 │ │ + .line 113 │ :goto_0 │ iput-object v0, p0, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->mDictPreferences:Landroid/content/SharedPreferences; │ │ .line 115 │ return-void │ │ .line 112 │ :cond_0 │ const-string v0, "LatinImeDictPrefs" │ │ const/4 v1, 0x4 │ │ + .line 113 │ invoke-virtual {p1, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/BinaryDictionaryGetter.smali │ @@ -62,282 +62,245 @@ │ .line 66 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method public static getCachedWordLists(Ljava/lang/String;Landroid/content/Context;)[Ljava/io/File; │ - .locals 23 │ + .locals 19 │ .param p0, "locale" # Ljava/lang/String; │ .param p1, "context" # Landroid/content/Context; │ │ .prologue │ .line 161 │ invoke-static/range {p1 .. p1}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCachedDirectoryList(Landroid/content/Context;)[Ljava/io/File; │ │ - move-result-object v10 │ + move-result-object v6 │ │ .line 162 │ - .local v10, "directoryList":[Ljava/io/File; │ - if-nez v10, :cond_1 │ + .local v6, "directoryList":[Ljava/io/File; │ + if-nez v6, :cond_1 │ │ - sget-object v19, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->EMPTY_FILE_ARRAY:[Ljava/io/File; │ + sget-object v11, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->EMPTY_FILE_ARRAY:[Ljava/io/File; │ │ .line 189 │ :cond_0 │ :goto_0 │ - return-object v19 │ + return-object v11 │ │ .line 163 │ :cond_1 │ - new-instance v5, Ljava/util/HashMap; │ + new-instance v1, Ljava/util/HashMap; │ │ - invoke-direct {v5}, Ljava/util/HashMap;->()V │ + invoke-direct {v1}, Ljava/util/HashMap;->()V │ │ .line 164 │ - .local v5, "cacheFiles":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ - move-object v3, v10 │ - │ - .local v3, "arr$":[Ljava/io/File; │ - array-length v0, v3 │ + .local v1, "cacheFiles":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ + array-length v0, v6 │ │ move/from16 v16, v0 │ │ - .local v16, "len$":I │ - const/4 v12, 0x0 │ + const/4 v14, 0x0 │ │ - .local v12, "i$":I │ - move v13, v12 │ + move v15, v14 │ │ - .end local v3 # "arr$":[Ljava/io/File; │ - .end local v12 # "i$":I │ - .end local v16 # "len$":I │ - .local v13, "i$":I │ :goto_1 │ move/from16 v0, v16 │ │ - if-ge v13, v0, :cond_6 │ + if-ge v15, v0, :cond_6 │ │ - aget-object v9, v3, v13 │ + aget-object v5, v6, v15 │ │ .line 165 │ - .local v9, "directory":Ljava/io/File; │ - invoke-virtual {v9}, Ljava/io/File;->isDirectory()Z │ + .local v5, "directory":Ljava/io/File; │ + invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z │ │ - move-result v22 │ + move-result v14 │ │ - if-nez v22, :cond_3 │ + if-nez v14, :cond_3 │ │ .line 164 │ - .end local v13 # "i$":I │ :cond_2 │ - add-int/lit8 v12, v13, 0x1 │ + add-int/lit8 v14, v15, 0x1 │ │ - .restart local v12 # "i$":I │ - move v13, v12 │ + move v15, v14 │ │ - .end local v12 # "i$":I │ - .restart local v13 # "i$":I │ goto :goto_1 │ │ - .line 166 │ + .line 167 │ :cond_3 │ - invoke-virtual {v9}, Ljava/io/File;->getName()Ljava/lang/String; │ + invoke-virtual {v5}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v22 │ + move-result-object v14 │ │ - invoke-static/range {v22 .. v22}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v14}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v4 │ │ .line 168 │ - .local v8, "dirLocale":Ljava/lang/String; │ + .local v4, "dirLocale":Ljava/lang/String; │ move-object/from16 v0, p0 │ │ - invoke-static {v8, v0}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->getMatchLevel(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v4, v0}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->getMatchLevel(Ljava/lang/String;Ljava/lang/String;)I │ │ - move-result v18 │ + move-result v10 │ │ .line 169 │ - .local v18, "matchLevel":I │ - invoke-static/range {v18 .. v18}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->isMatch(I)Z │ + .local v10, "matchLevel":I │ + invoke-static {v10}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->isMatch(I)Z │ │ - move-result v22 │ + move-result v14 │ │ - if-eqz v22, :cond_2 │ + if-eqz v14, :cond_2 │ │ .line 170 │ - invoke-virtual {v9}, Ljava/io/File;->listFiles()[Ljava/io/File; │ + invoke-virtual {v5}, Ljava/io/File;->listFiles()[Ljava/io/File; │ │ - move-result-object v21 │ + move-result-object v13 │ │ .line 171 │ - .local v21, "wordLists":[Ljava/io/File; │ - if-eqz v21, :cond_2 │ + .local v13, "wordLists":[Ljava/io/File; │ + if-eqz v13, :cond_2 │ │ .line 172 │ - move-object/from16 v4, v21 │ - │ - .local v4, "arr$":[Ljava/io/File; │ - array-length v0, v4 │ + array-length v0, v13 │ │ move/from16 v17, v0 │ │ - .local v17, "len$":I │ - const/4 v12, 0x0 │ + const/4 v14, 0x0 │ │ - .end local v13 # "i$":I │ - .restart local v12 # "i$":I │ :goto_2 │ move/from16 v0, v17 │ │ - if-ge v12, v0, :cond_2 │ + if-ge v14, v0, :cond_2 │ │ - aget-object v20, v4, v12 │ + aget-object v12, v13, v14 │ │ - .line 173 │ - .local v20, "wordList":Ljava/io/File; │ - invoke-virtual/range {v20 .. v20}, Ljava/io/File;->getName()Ljava/lang/String; │ + .line 174 │ + .local v12, "wordList":Ljava/io/File; │ + invoke-virtual {v12}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v22 │ + move-result-object v18 │ │ - invoke-static/range {v22 .. v22}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCategoryFromFileName(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static/range {v18 .. v18}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCategoryFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v2 │ │ .line 175 │ - .local v6, "category":Ljava/lang/String; │ - invoke-virtual {v5, v6}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + .local v2, "category":Ljava/lang/String; │ + invoke-virtual {v1, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v3 │ │ - check-cast v7, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ + check-cast v3, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ │ .line 176 │ - .local v7, "currentBestMatch":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ - if-eqz v7, :cond_4 │ + .local v3, "currentBestMatch":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ + if-eqz v3, :cond_4 │ │ - iget v0, v7, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel;->mMatchLevel:I │ + iget v0, v3, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel;->mMatchLevel:I │ │ - move/from16 v22, v0 │ + move/from16 v18, v0 │ │ - move/from16 v0, v22 │ + move/from16 v0, v18 │ │ - move/from16 v1, v18 │ - │ - if-ge v0, v1, :cond_5 │ + if-ge v0, v10, :cond_5 │ │ .line 177 │ :cond_4 │ - new-instance v22, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ - │ - move-object/from16 v0, v22 │ - │ - move-object/from16 v1, v20 │ + new-instance v18, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ │ - move/from16 v2, v18 │ + move-object/from16 v0, v18 │ │ - invoke-direct {v0, v1, v2}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel;->(Ljava/io/File;I)V │ + invoke-direct {v0, v12, v10}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel;->(Ljava/io/File;I)V │ │ - move-object/from16 v0, v22 │ + move-object/from16 v0, v18 │ │ - invoke-virtual {v5, v6, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v1, v2, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 172 │ :cond_5 │ - add-int/lit8 v12, v12, 0x1 │ + add-int/lit8 v14, v14, 0x1 │ │ goto :goto_2 │ │ .line 183 │ - .end local v4 # "arr$":[Ljava/io/File; │ - .end local v6 # "category":Ljava/lang/String; │ - .end local v7 # "currentBestMatch":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ - .end local v8 # "dirLocale":Ljava/lang/String; │ - .end local v9 # "directory":Ljava/io/File; │ - .end local v12 # "i$":I │ - .end local v17 # "len$":I │ - .end local v18 # "matchLevel":I │ - .end local v20 # "wordList":Ljava/io/File; │ - .end local v21 # "wordLists":[Ljava/io/File; │ - .restart local v13 # "i$":I │ + .end local v2 # "category":Ljava/lang/String; │ + .end local v3 # "currentBestMatch":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ + .end local v4 # "dirLocale":Ljava/lang/String; │ + .end local v5 # "directory":Ljava/io/File; │ + .end local v10 # "matchLevel":I │ + .end local v12 # "wordList":Ljava/io/File; │ + .end local v13 # "wordLists":[Ljava/io/File; │ :cond_6 │ - invoke-virtual {v5}, Ljava/util/HashMap;->isEmpty()Z │ + invoke-virtual {v1}, Ljava/util/HashMap;->isEmpty()Z │ │ - move-result v22 │ + move-result v14 │ │ - if-eqz v22, :cond_7 │ + if-eqz v14, :cond_7 │ │ - sget-object v19, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->EMPTY_FILE_ARRAY:[Ljava/io/File; │ + sget-object v11, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->EMPTY_FILE_ARRAY:[Ljava/io/File; │ │ goto :goto_0 │ │ .line 184 │ :cond_7 │ - invoke-virtual {v5}, Ljava/util/HashMap;->size()I │ - │ - move-result v22 │ + invoke-virtual {v1}, Ljava/util/HashMap;->size()I │ │ - move/from16 v0, v22 │ - │ - new-array v0, v0, [Ljava/io/File; │ + move-result v14 │ │ - move-object/from16 v19, v0 │ + new-array v11, v14, [Ljava/io/File; │ │ .line 185 │ - .local v19, "result":[Ljava/io/File; │ - const/4 v14, 0x0 │ + .local v11, "result":[Ljava/io/File; │ + const/4 v8, 0x0 │ │ .line 186 │ - .local v14, "index":I │ - invoke-virtual {v5}, Ljava/util/HashMap;->values()Ljava/util/Collection; │ + .local v8, "index":I │ + invoke-virtual {v1}, Ljava/util/HashMap;->values()Ljava/util/Collection; │ │ - move-result-object v22 │ + move-result-object v14 │ │ - invoke-interface/range {v22 .. v22}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ + invoke-interface {v14}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ - move-result-object v12 │ + move-result-object v14 │ │ - .end local v13 # "i$":I │ - .local v12, "i$":Ljava/util/Iterator; │ :goto_3 │ - invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v14}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v22 │ + move-result v15 │ │ - if-eqz v22, :cond_0 │ + if-eqz v15, :cond_0 │ │ - invoke-interface {v12}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v14}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v11 │ + move-result-object v7 │ │ - check-cast v11, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ + check-cast v7, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ │ .line 187 │ - .local v11, "entry":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ - add-int/lit8 v15, v14, 0x1 │ + .local v7, "entry":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel; │ + add-int/lit8 v9, v8, 0x1 │ │ - .end local v14 # "index":I │ - .local v15, "index":I │ - iget-object v0, v11, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel;->mFile:Ljava/io/File; │ + .end local v8 # "index":I │ + .local v9, "index":I │ + iget-object v15, v7, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$FileAndMatchLevel;->mFile:Ljava/io/File; │ │ - move-object/from16 v22, v0 │ + aput-object v15, v11, v8 │ │ - aput-object v22, v19, v14 │ - │ - move v14, v15 │ + move v8, v9 │ │ .line 188 │ - .end local v15 # "index":I │ - .restart local v14 # "index":I │ + .end local v9 # "index":I │ + .restart local v8 # "index":I │ goto :goto_3 │ .end method │ │ .method public static getDictionaryFiles(Ljava/util/Locale;Landroid/content/Context;)Ljava/util/ArrayList; │ - .locals 19 │ + .locals 18 │ .param p0, "locale" # Ljava/util/Locale; │ .param p1, "context" # Landroid/content/Context; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/util/Locale;", │ "Landroid/content/Context;", │ @@ -353,222 +316,211 @@ │ .line 268 │ move-object/from16 v0, p1 │ │ move-object/from16 v1, p0 │ │ invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/DictionaryFactory;->isDictionaryAvailable(Landroid/content/Context;Ljava/util/Locale;)Z │ │ - move-result v12 │ + move-result v11 │ │ .line 269 │ - .local v12, "hasDefaultWordList":Z │ + .local v11, "hasDefaultWordList":Z │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ - invoke-static {v0, v1, v12}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->cacheWordListsFromContentProvider(Ljava/util/Locale;Landroid/content/Context;Z)V │ + invoke-static {v0, v1, v11}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->cacheWordListsFromContentProvider(Ljava/util/Locale;Landroid/content/Context;Z)V │ │ .line 271 │ invoke-virtual/range {p0 .. p0}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ - move-result-object v17 │ - │ - move-object/from16 v0, v17 │ + move-result-object v14 │ │ - move-object/from16 v1, p1 │ + move-object/from16 v0, p1 │ │ - invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->getCachedWordLists(Ljava/lang/String;Landroid/content/Context;)[Ljava/io/File; │ + invoke-static {v14, v0}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->getCachedWordLists(Ljava/lang/String;Landroid/content/Context;)[Ljava/io/File; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 272 │ - .local v4, "cachedWordLists":[Ljava/io/File; │ + .local v3, "cachedWordLists":[Ljava/io/File; │ invoke-static/range {p0 .. p0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getMainDictId(Ljava/util/Locale;)Ljava/lang/String; │ │ - move-result-object v15 │ + move-result-object v12 │ │ .line 273 │ - .local v15, "mainDictId":Ljava/lang/String; │ - new-instance v6, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings; │ + .local v12, "mainDictId":Ljava/lang/String; │ + new-instance v5, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings; │ │ move-object/from16 v0, p1 │ │ - invoke-direct {v6, v0}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->(Landroid/content/Context;)V │ + invoke-direct {v5, v0}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->(Landroid/content/Context;)V │ │ .line 275 │ - .local v6, "dictPackSettings":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings; │ - const/4 v11, 0x0 │ + .local v5, "dictPackSettings":Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings; │ + const/4 v10, 0x0 │ │ .line 276 │ - .local v11, "foundMainDict":Z │ - new-instance v10, Ljava/util/ArrayList; │ + .local v10, "foundMainDict":Z │ + new-instance v9, Ljava/util/ArrayList; │ │ - invoke-direct {v10}, Ljava/util/ArrayList;->()V │ + invoke-direct {v9}, Ljava/util/ArrayList;->()V │ │ .line 278 │ - .local v10, "fileList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v3, v4 │ - │ - .local v3, "arr$":[Ljava/io/File; │ - array-length v14, v3 │ + .local v9, "fileList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v15, v3 │ │ - .local v14, "len$":I │ - const/4 v13, 0x0 │ + const/4 v14, 0x0 │ │ - .local v13, "i$":I │ :goto_0 │ - if-ge v13, v14, :cond_5 │ + if-ge v14, v15, :cond_5 │ │ - aget-object v7, v3, v13 │ + aget-object v6, v3, v14 │ │ .line 279 │ - .local v7, "f":Ljava/io/File; │ - invoke-virtual {v7}, Ljava/io/File;->getName()Ljava/lang/String; │ + .local v6, "f":Ljava/io/File; │ + invoke-virtual {v6}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v17 │ + move-result-object v16 │ │ - invoke-static/range {v17 .. v17}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static/range {v16 .. v16}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v16 │ + move-result-object v13 │ │ .line 280 │ - .local v16, "wordListId":Ljava/lang/String; │ - invoke-virtual {v7}, Ljava/io/File;->canRead()Z │ + .local v13, "wordListId":Ljava/lang/String; │ + invoke-virtual {v6}, Ljava/io/File;->canRead()Z │ │ - move-result v17 │ + move-result v16 │ │ - if-eqz v17, :cond_2 │ + if-eqz v16, :cond_2 │ │ move-object/from16 v0, p0 │ │ - invoke-static {v0, v7}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->hackCanUseDictionaryFile(Ljava/util/Locale;Ljava/io/File;)Z │ + invoke-static {v0, v6}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->hackCanUseDictionaryFile(Ljava/util/Locale;Ljava/io/File;)Z │ │ - move-result v17 │ + move-result v16 │ │ - if-eqz v17, :cond_2 │ + if-eqz v16, :cond_2 │ │ - const/4 v5, 0x1 │ + const/4 v4, 0x1 │ │ .line 281 │ - .local v5, "canUse":Z │ + .local v4, "canUse":Z │ :goto_1 │ - if-eqz v5, :cond_0 │ + if-eqz v4, :cond_0 │ │ - invoke-static/range {v16 .. v16}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->isMainWordListId(Ljava/lang/String;)Z │ + invoke-static {v13}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->isMainWordListId(Ljava/lang/String;)Z │ │ - move-result v17 │ + move-result v16 │ │ - if-eqz v17, :cond_0 │ + if-eqz v16, :cond_0 │ │ .line 282 │ - const/4 v11, 0x1 │ + const/4 v10, 0x1 │ │ .line 284 │ :cond_0 │ - move-object/from16 v0, v16 │ - │ - invoke-virtual {v6, v0}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->isWordListActive(Ljava/lang/String;)Z │ + invoke-virtual {v5, v13}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->isWordListActive(Ljava/lang/String;)Z │ │ - move-result v17 │ + move-result v16 │ │ - if-nez v17, :cond_3 │ + if-nez v16, :cond_3 │ │ .line 278 │ :cond_1 │ :goto_2 │ - add-int/lit8 v13, v13, 0x1 │ + add-int/lit8 v14, v14, 0x1 │ │ goto :goto_0 │ │ .line 280 │ - .end local v5 # "canUse":Z │ + .end local v4 # "canUse":Z │ :cond_2 │ - const/4 v5, 0x0 │ + const/4 v4, 0x0 │ │ goto :goto_1 │ │ .line 285 │ - .restart local v5 # "canUse":Z │ + .restart local v4 # "canUse":Z │ :cond_3 │ - if-eqz v5, :cond_4 │ + if-eqz v4, :cond_4 │ │ .line 286 │ - invoke-virtual {v7}, Ljava/io/File;->getPath()Ljava/lang/String; │ + invoke-virtual {v6}, Ljava/io/File;->getPath()Ljava/lang/String; │ │ - move-result-object v17 │ + move-result-object v16 │ │ - invoke-static/range {v17 .. v17}, Lorg/smc/inputmethod/indic/AssetFileAddress;->makeFromFileName(Ljava/lang/String;)Lorg/smc/inputmethod/indic/AssetFileAddress; │ + invoke-static/range {v16 .. v16}, Lorg/smc/inputmethod/indic/AssetFileAddress;->makeFromFileName(Ljava/lang/String;)Lorg/smc/inputmethod/indic/AssetFileAddress; │ │ move-result-object v2 │ │ .line 287 │ .local v2, "afa":Lorg/smc/inputmethod/indic/AssetFileAddress; │ if-eqz v2, :cond_1 │ │ - invoke-virtual {v10, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v9, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_2 │ │ .line 289 │ .end local v2 # "afa":Lorg/smc/inputmethod/indic/AssetFileAddress; │ :cond_4 │ - sget-object v17, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->TAG:Ljava/lang/String; │ + sget-object v16, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->TAG:Ljava/lang/String; │ │ - const-string v18, "Found a cached dictionary file but cannot read or use it" │ + const-string v17, "Found a cached dictionary file but cannot read or use it" │ │ - invoke-static/range {v17 .. v18}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static/range {v16 .. v17}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_2 │ │ .line 293 │ - .end local v5 # "canUse":Z │ - .end local v7 # "f":Ljava/io/File; │ - .end local v16 # "wordListId":Ljava/lang/String; │ + .end local v4 # "canUse":Z │ + .end local v6 # "f":Ljava/io/File; │ + .end local v13 # "wordListId":Ljava/lang/String; │ :cond_5 │ - if-nez v11, :cond_6 │ + if-nez v10, :cond_6 │ │ - invoke-virtual {v6, v15}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->isWordListActive(Ljava/lang/String;)Z │ + invoke-virtual {v5, v12}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter$DictPackSettings;->isWordListActive(Ljava/lang/String;)Z │ │ - move-result v17 │ + move-result v14 │ │ - if-eqz v17, :cond_6 │ + if-eqz v14, :cond_6 │ │ - .line 294 │ + .line 295 │ invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v17 │ - │ - move-object/from16 v0, v17 │ + move-result-object v14 │ │ - move-object/from16 v1, p0 │ + move-object/from16 v0, p0 │ │ - invoke-static {v0, v1}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getMainDictionaryResourceId(Landroid/content/res/Resources;Ljava/util/Locale;)I │ + invoke-static {v14, v0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getMainDictionaryResourceId(Landroid/content/res/Resources;Ljava/util/Locale;)I │ │ - move-result v9 │ + move-result v8 │ │ .line 296 │ - .local v9, "fallbackResId":I │ + .local v8, "fallbackResId":I │ move-object/from16 v0, p1 │ │ - invoke-static {v0, v9}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->loadFallbackResource(Landroid/content/Context;I)Lorg/smc/inputmethod/indic/AssetFileAddress; │ + invoke-static {v0, v8}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->loadFallbackResource(Landroid/content/Context;I)Lorg/smc/inputmethod/indic/AssetFileAddress; │ │ - move-result-object v8 │ + move-result-object v7 │ │ .line 297 │ - .local v8, "fallbackAsset":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - if-eqz v8, :cond_6 │ + .local v7, "fallbackAsset":Lorg/smc/inputmethod/indic/AssetFileAddress; │ + if-eqz v7, :cond_6 │ │ .line 298 │ - invoke-virtual {v10, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v9, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 302 │ - .end local v8 # "fallbackAsset":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - .end local v9 # "fallbackResId":I │ + .end local v7 # "fallbackAsset":Lorg/smc/inputmethod/indic/AssetFileAddress; │ + .end local v8 # "fallbackResId":I │ :cond_6 │ - return-object v10 │ + return-object v9 │ .end method │ │ .method public static getTempFileName(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String; │ .locals 4 │ .param p0, "id" # Ljava/lang/String; │ .param p1, "context" # Landroid/content/Context; │ .annotation system Ldalvik/annotation/Throws; │ @@ -797,19 +749,19 @@ │ move-result-object v2 │ │ invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 95 │ const/4 v1, 0x0 │ │ - .line 105 │ + .line 98 │ :goto_0 │ return-object v1 │ │ - .line 98 │ + .line 99 │ :cond_0 │ :try_start_0 │ invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; │ │ move-result-object v1 │ │ iget-object v1, v1, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String; │ @@ -818,14 +770,15 @@ │ │ move-result-wide v2 │ │ invoke-virtual {v0}, Landroid/content/res/AssetFileDescriptor;->getLength()J │ │ move-result-wide v4 │ │ + .line 98 │ invoke-static {v1, v2, v3, v4, v5}, Lorg/smc/inputmethod/indic/AssetFileAddress;->makeFromFileNameAndOffset(Ljava/lang/String;JJ)Lorg/smc/inputmethod/indic/AssetFileAddress; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v1 │ │ .line 102 │ @@ -860,171 +813,147 @@ │ :catch_1 │ move-exception v2 │ │ goto :goto_1 │ .end method │ │ .method public static removeFilesWithIdExcept(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)V │ - .locals 16 │ + .locals 13 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "id" # Ljava/lang/String; │ .param p2, "fileToKeep" # Ljava/io/File; │ │ .prologue │ + const/4 v8, 0x0 │ + │ .line 202 │ :try_start_0 │ - invoke-virtual/range {p2 .. p2}, Ljava/io/File;->getCanonicalFile()Ljava/io/File; │ + invoke-virtual {p2}, Ljava/io/File;->getCanonicalFile()Ljava/io/File; │ │ - move-result-object v3 │ + move-result-object v0 │ │ .line 203 │ - .local v3, "canonicalFileToKeep":Ljava/io/File; │ - invoke-static/range {p0 .. p0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCachedDirectoryList(Landroid/content/Context;)[Ljava/io/File; │ + .local v0, "canonicalFileToKeep":Ljava/io/File; │ + invoke-static {p0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getCachedDirectoryList(Landroid/content/Context;)[Ljava/io/File; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 204 │ - .local v5, "directoryList":[Ljava/io/File; │ - if-nez v5, :cond_1 │ + .local v2, "directoryList":[Ljava/io/File; │ + if-nez v2, :cond_1 │ │ .line 223 │ - .end local v3 # "canonicalFileToKeep":Ljava/io/File; │ - .end local v5 # "directoryList":[Ljava/io/File; │ + .end local v0 # "canonicalFileToKeep":Ljava/io/File; │ + .end local v2 # "directoryList":[Ljava/io/File; │ :cond_0 │ :goto_0 │ return-void │ │ .line 205 │ - .restart local v3 # "canonicalFileToKeep":Ljava/io/File; │ - .restart local v5 # "directoryList":[Ljava/io/File; │ + .restart local v0 # "canonicalFileToKeep":Ljava/io/File; │ + .restart local v2 # "directoryList":[Ljava/io/File; │ :cond_1 │ - move-object v1, v5 │ - │ - .local v1, "arr$":[Ljava/io/File; │ - array-length v10, v1 │ + array-length v10, v2 │ │ - .local v10, "len$":I │ - const/4 v8, 0x0 │ - │ - .local v8, "i$":I │ move v9, v8 │ │ - .end local v1 # "arr$":[Ljava/io/File; │ - .end local v8 # "i$":I │ - .end local v10 # "len$":I │ - .local v9, "i$":I │ :goto_1 │ if-ge v9, v10, :cond_0 │ │ - aget-object v4, v1, v9 │ + aget-object v1, v2, v9 │ │ .line 207 │ - .local v4, "directory":Ljava/io/File; │ - invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z │ + .local v1, "directory":Ljava/io/File; │ + invoke-virtual {v1}, Ljava/io/File;->isDirectory()Z │ │ - move-result v14 │ + move-result v7 │ │ - if-nez v14, :cond_3 │ + if-nez v7, :cond_3 │ │ .line 205 │ - .end local v9 # "i$":I │ :cond_2 │ - add-int/lit8 v8, v9, 0x1 │ + add-int/lit8 v7, v9, 0x1 │ │ - .restart local v8 # "i$":I │ - move v9, v8 │ + move v9, v7 │ │ - .end local v8 # "i$":I │ - .restart local v9 # "i$":I │ goto :goto_1 │ │ .line 208 │ :cond_3 │ - invoke-virtual {v4}, Ljava/io/File;->listFiles()[Ljava/io/File; │ + invoke-virtual {v1}, Ljava/io/File;->listFiles()[Ljava/io/File; │ │ - move-result-object v13 │ + move-result-object v6 │ │ .line 209 │ - .local v13, "wordLists":[Ljava/io/File; │ - if-eqz v13, :cond_2 │ + .local v6, "wordLists":[Ljava/io/File; │ + if-eqz v6, :cond_2 │ │ .line 210 │ - move-object v2, v13 │ + array-length v11, v6 │ │ - .local v2, "arr$":[Ljava/io/File; │ - array-length v11, v2 │ + move v7, v8 │ │ - .local v11, "len$":I │ - const/4 v8, 0x0 │ - │ - .end local v9 # "i$":I │ - .restart local v8 # "i$":I │ :goto_2 │ - if-ge v8, v11, :cond_2 │ + if-ge v7, v11, :cond_2 │ │ - aget-object v12, v2, v8 │ + aget-object v5, v6, v7 │ │ - .line 211 │ - .local v12, "wordList":Ljava/io/File; │ - invoke-virtual {v12}, Ljava/io/File;->getName()Ljava/lang/String; │ + .line 212 │ + .local v5, "wordList":Ljava/io/File; │ + invoke-virtual {v5}, Ljava/io/File;->getName()Ljava/lang/String; │ │ - move-result-object v14 │ + move-result-object v12 │ │ - invoke-static {v14}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v12}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 213 │ - .local v7, "fileId":Ljava/lang/String; │ - move-object/from16 v0, p1 │ + .local v4, "fileId":Ljava/lang/String; │ + invoke-virtual {v4, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - invoke-virtual {v7, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ - │ - move-result v14 │ + move-result v12 │ │ - if-eqz v14, :cond_4 │ + if-eqz v12, :cond_4 │ │ .line 214 │ - invoke-virtual {v12}, Ljava/io/File;->getCanonicalFile()Ljava/io/File; │ + invoke-virtual {v5}, Ljava/io/File;->getCanonicalFile()Ljava/io/File; │ │ - move-result-object v14 │ + move-result-object v12 │ │ - invoke-virtual {v3, v14}, Ljava/io/File;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v12}, Ljava/io/File;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v12 │ │ - if-nez v14, :cond_4 │ + if-nez v12, :cond_4 │ │ .line 215 │ - invoke-virtual {v12}, Ljava/io/File;->delete()Z │ + invoke-virtual {v5}, Ljava/io/File;->delete()Z │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ │ .line 210 │ :cond_4 │ - add-int/lit8 v8, v8, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ goto :goto_2 │ │ .line 220 │ - .end local v2 # "arr$":[Ljava/io/File; │ - .end local v3 # "canonicalFileToKeep":Ljava/io/File; │ - .end local v4 # "directory":Ljava/io/File; │ - .end local v5 # "directoryList":[Ljava/io/File; │ - .end local v7 # "fileId":Ljava/lang/String; │ - .end local v8 # "i$":I │ - .end local v11 # "len$":I │ - .end local v12 # "wordList":Ljava/io/File; │ - .end local v13 # "wordLists":[Ljava/io/File; │ + .end local v0 # "canonicalFileToKeep":Ljava/io/File; │ + .end local v1 # "directory":Ljava/io/File; │ + .end local v2 # "directoryList":[Ljava/io/File; │ + .end local v4 # "fileId":Ljava/lang/String; │ + .end local v5 # "wordList":Ljava/io/File; │ + .end local v6 # "wordLists":[Ljava/io/File; │ :catch_0 │ - move-exception v6 │ + move-exception v3 │ │ .line 221 │ - .local v6, "e":Ljava/io/IOException; │ - sget-object v14, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->TAG:Ljava/lang/String; │ + .local v3, "e":Ljava/io/IOException; │ + sget-object v7, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->TAG:Ljava/lang/String; │ │ - const-string v15, "IOException trying to cleanup files" │ + const-string v8, "IOException trying to cleanup files" │ │ - invoke-static {v14, v15, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v7, v8, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/Constants.smali │ @@ -409,94 +409,89 @@ │ 0x9 -> :sswitch_e │ 0xa -> :sswitch_f │ 0x20 -> :sswitch_10 │ .end sparse-switch │ .end method │ │ .method public static printableCodes([I)Ljava/lang/String; │ - .locals 8 │ + .locals 6 │ .param p0, "codes" # [I │ │ .prologue │ .line 285 │ - new-instance v5, Ljava/lang/StringBuilder; │ + new-instance v2, Ljava/lang/StringBuilder; │ │ - invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V │ │ .line 286 │ - .local v5, "sb":Ljava/lang/StringBuilder; │ + .local v2, "sb":Ljava/lang/StringBuilder; │ const/4 v0, 0x0 │ │ .line 287 │ .local v0, "addDelimiter":Z │ - move-object v1, p0 │ + array-length v4, p0 │ │ - .local v1, "arr$":[I │ - array-length v4, v1 │ - │ - .local v4, "len$":I │ const/4 v3, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ if-ge v3, v4, :cond_0 │ │ - aget v2, v1, v3 │ + aget v1, p0, v3 │ │ .line 288 │ - .local v2, "code":I │ - const/4 v6, -0x1 │ + .local v1, "code":I │ + const/4 v5, -0x1 │ │ - if-ne v2, v6, :cond_1 │ + if-ne v1, v5, :cond_1 │ │ .line 293 │ - .end local v2 # "code":I │ + .end local v1 # "code":I │ :cond_0 │ - new-instance v6, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - const-string v7, "[" │ + const-string v4, "[" │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - const-string v7, "]" │ + const-string v4, "]" │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - return-object v6 │ + return-object v3 │ │ .line 289 │ - .restart local v2 # "code":I │ + .restart local v1 # "code":I │ :cond_1 │ if-eqz v0, :cond_2 │ │ - const-string v6, ", " │ + const-string v5, ", " │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 290 │ :cond_2 │ - invoke-static {v2}, Lorg/smc/inputmethod/indic/Constants;->printableCode(I)Ljava/lang/String; │ + invoke-static {v1}, Lorg/smc/inputmethod/indic/Constants;->printableCode(I)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 291 │ const/4 v0, 0x1 │ │ .line 287 │ add-int/lit8 v3, v3, 0x1 ├── smali/org/smc/inputmethod/indic/ContactsBinaryDictionary$1$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$1:Lorg/smc/inputmethod/indic/ContactsBinaryDictionary$1; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ContactsBinaryDictionary$1;)V │ .locals 0 │ + .param p1, "this$1" # Lorg/smc/inputmethod/indic/ContactsBinaryDictionary$1; │ │ .prologue │ .line 103 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ContactsBinaryDictionary$1$1;->this$1:Lorg/smc/inputmethod/indic/ContactsBinaryDictionary$1; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/ContactsBinaryDictionary$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ContactsBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ContactsBinaryDictionary;Landroid/os/Handler;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ContactsBinaryDictionary; │ .param p2, "x0" # Landroid/os/Handler; │ │ .prologue │ .line 100 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ContactsBinaryDictionary$1;->this$0:Lorg/smc/inputmethod/indic/ContactsBinaryDictionary; │ │ invoke-direct {p0, p2}, Landroid/database/ContentObserver;->(Landroid/os/Handler;)V ├── smali/org/smc/inputmethod/indic/ContactsBinaryDictionary.smali │ @@ -514,14 +514,15 @@ │ │ if-eq v0, v2, :cond_1 │ │ const/16 v2, 0x27 │ │ if-eq v0, v2, :cond_1 │ │ + .line 268 │ invoke-static {v0}, Ljava/lang/Character;->isLetter(I)Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ .line 272 │ @@ -684,16 +685,18 @@ │ if-eq v0, v1, :cond_5 │ │ .line 314 │ invoke-interface {v7}, Landroid/database/Cursor;->close()V │ │ move v0, v13 │ │ + .line 311 │ goto :goto_0 │ │ + .line 314 │ :cond_5 │ invoke-interface {v7}, Landroid/database/Cursor;->close()V │ │ move v0, v12 │ │ .line 320 │ goto :goto_0 │ @@ -735,14 +738,15 @@ │ │ .prologue │ const/4 v4, 0x0 │ │ .line 133 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/ContactsBinaryDictionary;->mContext:Landroid/content/Context; │ │ + .line 134 │ invoke-static {v0}, Lorg/smc/inputmethod/indic/personalization/AccountUtils;->getDeviceAccountsEmailAddresses(Landroid/content/Context;)Ljava/util/List; │ │ move-result-object v8 │ │ .line 135 │ .local v8, "accountVocabulary":Ljava/util/List;, "Ljava/util/List;" │ if-eqz v8, :cond_0 │ @@ -759,15 +763,14 @@ │ │ .line 138 │ :cond_1 │ invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ move-result-object v9 │ │ - .local v9, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 ├── smali/org/smc/inputmethod/indic/DicTraverseSession.smali │ @@ -28,32 +28,34 @@ │ .prologue │ .line 35 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 36 │ if-eqz p1, :cond_0 │ │ + .line 37 │ invoke-virtual {p1}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 36 │ :goto_0 │ invoke-direct {p0, v0, p4, p5}, Lorg/smc/inputmethod/indic/DicTraverseSession;->createNativeDicTraverseSession(Ljava/lang/String;J)J │ │ move-result-wide v0 │ │ iput-wide v0, p0, Lorg/smc/inputmethod/indic/DicTraverseSession;->mNativeDicTraverseSession:J │ │ .line 38 │ invoke-virtual {p0, p2, p3}, Lorg/smc/inputmethod/indic/DicTraverseSession;->initSession(J)V │ │ .line 39 │ return-void │ │ - .line 36 │ + .line 37 │ :cond_0 │ const-string v0, "" │ │ goto :goto_0 │ .end method │ │ .method private closeInternal()V ├── smali/org/smc/inputmethod/indic/Dictionary.smali │ @@ -2,15 +2,14 @@ │ .super Ljava/lang/Object; │ .source "Dictionary.java" │ │ │ # annotations │ .annotation system Ldalvik/annotation/MemberClasses; │ value = { │ - Lorg/smc/inputmethod/indic/Dictionary$1;, │ Lorg/smc/inputmethod/indic/Dictionary$PhonyDictionary; │ } │ .end annotation │ │ │ # static fields │ .field public static final DICTIONARY_APPLICATION_DEFINED:Lorg/smc/inputmethod/indic/Dictionary; ├── smali/org/smc/inputmethod/indic/DictionaryCollection.smali │ @@ -208,21 +208,20 @@ │ .end method │ │ .method public close()V │ .locals 3 │ │ .prologue │ .line 117 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryCollection;->mDictionaries:Ljava/util/concurrent/CopyOnWriteArrayList; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryCollection;->mDictionaries:Ljava/util/concurrent/CopyOnWriteArrayList; │ │ - invoke-virtual {v2}, Ljava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v1}, Ljava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v1 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 ├── smali/org/smc/inputmethod/indic/DictionaryFacilitator$1.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$locale:Ljava/util/Locale; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/DictionaryFacilitator;Landroid/content/Context;Ljava/util/Locale;Lorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;Ljava/util/concurrent/CountDownLatch;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ .prologue │ .line 300 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$1;->this$0:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$1;->val$context:Landroid/content/Context; │ │ @@ -57,14 +58,15 @@ │ │ .prologue │ .line 303 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$1;->val$context:Landroid/content/Context; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$1;->val$locale:Ljava/util/Locale; │ │ + .line 304 │ invoke-static {v1, v2}, Lorg/smc/inputmethod/indic/DictionaryFactory;->createMainDictionaryFromManager(Landroid/content/Context;Ljava/util/Locale;)Lorg/smc/inputmethod/indic/DictionaryCollection; │ │ move-result-object v0 │ │ .line 305 │ .local v0, "mainDict":Lorg/smc/inputmethod/indic/Dictionary; │ iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$1;->this$0:Lorg/smc/inputmethod/indic/DictionaryFacilitator; ├── smali/org/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries.smali │ @@ -75,64 +75,63 @@ │ │ .prologue │ .line 118 │ .local p3, "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 110 │ - new-instance v2, Ljava/util/concurrent/ConcurrentHashMap; │ + new-instance v1, Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-direct {v2}, Ljava/util/concurrent/ConcurrentHashMap;->()V │ + invoke-direct {v1}, Ljava/util/concurrent/ConcurrentHashMap;->()V │ │ - iput-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mSubDictMap:Ljava/util/concurrent/ConcurrentHashMap; │ + iput-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mSubDictMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ .line 119 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ │ .line 121 │ invoke-virtual {p0, p2}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->setMainDict(Lorg/smc/inputmethod/indic/Dictionary;)V │ │ .line 122 │ invoke-interface {p3}, Ljava/util/Map;->entrySet()Ljava/util/Set; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v2 │ + move-result v1 │ │ - if-eqz v2, :cond_0 │ + if-eqz v1, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/util/Map$Entry; │ │ .line 123 │ .local v0, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Ljava/lang/String; │ + check-cast v1, Ljava/lang/String; │ │ invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + check-cast v2, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ - invoke-direct {p0, v2, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->setSubDict(Ljava/lang/String;Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ + invoke-direct {p0, v1, v2}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->setSubDict(Ljava/lang/String;Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ │ goto :goto_0 │ │ .line 125 │ .end local v0 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;" │ :cond_0 │ return-void ├── smali/org/smc/inputmethod/indic/DictionaryFacilitator.smali │ @@ -193,22 +193,24 @@ │ .line 100 │ sget-object v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ │ sget-object v1, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ │ array-length v1, v1 │ │ + .line 101 │ invoke-static {v0, v3, v1}, Ljava/util/Arrays;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Ljava/lang/String; │ │ sput-object v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->SUB_DICT_TYPES:[Ljava/lang/String; │ │ + .line 100 │ return-void │ .end method │ │ .method public constructor ()V │ .locals 2 │ │ .prologue │ @@ -324,14 +326,15 @@ │ │ .prologue │ const/4 v3, 0x0 │ │ .line 432 │ const-string v1, "history" │ │ + .line 433 │ invoke-virtual {p1, v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getSubDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ move-result-object v0 │ │ .line 434 │ .local v0, "userHistoryDictionary":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ if-nez v0, :cond_1 │ @@ -368,14 +371,15 @@ │ .line 444 │ invoke-virtual {p0, p3, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->isValidWord(Ljava/lang/String;Z)Z │ │ move-result v1 │ │ if-eqz v1, :cond_4 │ │ + .line 445 │ invoke-virtual {p0, v7, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->isValidWord(Ljava/lang/String;Z)Z │ │ move-result v1 │ │ if-nez v1, :cond_4 │ │ .line 451 │ @@ -423,14 +427,15 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_6 │ │ const-string v1, "main" │ │ + .line 463 │ invoke-virtual {p1, v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ │ move-result-object v1 │ │ invoke-virtual {v1, v7}, Lorg/smc/inputmethod/indic/Dictionary;->getFrequency(Ljava/lang/String;)I │ │ move-result v6 │ @@ -446,15 +451,15 @@ │ │ .line 468 │ move-object v2, v7 │ │ .restart local v2 # "secondWord":Ljava/lang/String; │ goto :goto_1 │ │ - .line 462 │ + .line 463 │ .end local v2 # "secondWord":Ljava/lang/String; │ .end local v6 # "lowerCaseFreqInMainDict":I │ :cond_6 │ const/4 v6, -0x1 │ │ goto :goto_2 │ │ @@ -531,101 +536,98 @@ │ │ .line 578 │ :cond_0 │ return-void │ .end method │ │ .method private getFrequencyInternal(Ljava/lang/String;Z)I │ - .locals 9 │ + .locals 8 │ .param p1, "word" # Ljava/lang/String; │ .param p2, "isGettingMaxFrequencyOfExactMatches" # Z │ │ .prologue │ .line 544 │ invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v8 │ + move-result v5 │ │ - if-eqz v8, :cond_1 │ + if-eqz v5, :cond_1 │ │ .line 545 │ - const/4 v6, -0x1 │ + const/4 v3, -0x1 │ │ .line 562 │ :cond_0 │ - return v6 │ + return v3 │ │ .line 547 │ :cond_1 │ - const/4 v6, -0x1 │ + const/4 v3, -0x1 │ │ .line 548 │ - .local v6, "maxFreq":I │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + .local v3, "maxFreq":I │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 549 │ - .local v2, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ - sget-object v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ + .local v1, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + sget-object v6, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v5, v0 │ + array-length v7, v6 │ │ - .local v5, "len$":I │ - const/4 v4, 0x0 │ + const/4 v5, 0x0 │ │ - .local v4, "i$":I │ :goto_0 │ - if-ge v4, v5, :cond_0 │ + if-ge v5, v7, :cond_0 │ │ - aget-object v1, v0, v4 │ + aget-object v0, v6, v5 │ │ .line 550 │ - .local v1, "dictType":Ljava/lang/String; │ - invoke-virtual {v2, v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ + .local v0, "dictType":Ljava/lang/String; │ + invoke-virtual {v1, v0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 551 │ - .local v3, "dictionary":Lorg/smc/inputmethod/indic/Dictionary; │ - if-nez v3, :cond_3 │ + .local v2, "dictionary":Lorg/smc/inputmethod/indic/Dictionary; │ + if-nez v2, :cond_3 │ │ .line 549 │ :cond_2 │ :goto_1 │ - add-int/lit8 v4, v4, 0x1 │ + add-int/lit8 v5, v5, 0x1 │ │ goto :goto_0 │ │ .line 553 │ :cond_3 │ if-eqz p2, :cond_4 │ │ .line 554 │ - invoke-virtual {v3, p1}, Lorg/smc/inputmethod/indic/Dictionary;->getMaxFrequencyOfExactMatches(Ljava/lang/String;)I │ + invoke-virtual {v2, p1}, Lorg/smc/inputmethod/indic/Dictionary;->getMaxFrequencyOfExactMatches(Ljava/lang/String;)I │ │ - move-result v7 │ + move-result v4 │ │ .line 558 │ - .local v7, "tempFreq":I │ + .local v4, "tempFreq":I │ :goto_2 │ - if-lt v7, v6, :cond_2 │ + if-lt v4, v3, :cond_2 │ │ .line 559 │ - move v6, v7 │ + move v3, v4 │ │ goto :goto_1 │ │ .line 556 │ - .end local v7 # "tempFreq":I │ + .end local v4 # "tempFreq":I │ :cond_4 │ - invoke-virtual {v3, p1}, Lorg/smc/inputmethod/indic/Dictionary;->getFrequency(Ljava/lang/String;)I │ + invoke-virtual {v2, p1}, Lorg/smc/inputmethod/indic/Dictionary;->getFrequency(Ljava/lang/String;)I │ │ - move-result v7 │ + move-result v4 │ │ - .restart local v7 # "tempFreq":I │ + .restart local v4 # "tempFreq":I │ goto :goto_2 │ .end method │ │ .method private static getSubDict(Ljava/lang/String;Landroid/content/Context;Ljava/util/Locale;Ljava/io/File;Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ .locals 8 │ .param p0, "dictType" # Ljava/lang/String; │ .param p1, "context" # Landroid/content/Context; │ @@ -635,14 +637,15 @@ │ │ .prologue │ const/4 v4, 0x0 │ │ .line 198 │ sget-object v5, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPE_TO_CLASS:Ljava/util/Map; │ │ + .line 199 │ invoke-interface {v5, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/lang/Class; │ │ .line 200 │ @@ -694,19 +697,19 @@ │ │ move-result-object v0 │ │ .line 208 │ .local v0, "dict":Ljava/lang/Object; │ check-cast v0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ :try_end_0 │ - .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0 │ - .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_1 │ - .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_3 │ - .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_2 │ - .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_4 │ + .catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_2 │ + .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_4 │ + .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0 │ + .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_1 │ + .catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_3 │ │ goto :goto_0 │ │ .line 209 │ .end local v0 # "dict":Ljava/lang/Object; │ .end local v3 # "factoryMethod":Ljava/lang/reflect/Method; │ :catch_0 │ @@ -800,14 +803,15 @@ │ │ .prologue │ .line 598 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ const-string v3, "personalization" │ │ + .line 599 │ invoke-virtual {v2, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getSubDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ move-result-object v1 │ │ .line 600 │ .local v1, "personalizationDict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ if-nez v1, :cond_1 │ @@ -831,14 +835,15 @@ │ │ new-instance v4, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary; │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDistracterFilter:Lcom/android/inputmethod/latin/utils/DistracterFilter; │ │ invoke-direct {v4, v5, v1}, Lcom/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary;->(Lcom/android/inputmethod/latin/utils/DistracterFilter;Lorg/smc/inputmethod/indic/Dictionary;)V │ │ + .line 607 │ invoke-static {v2, v3, p0, p2, v4}, Lcom/android/inputmethod/latin/utils/LanguageModelParam;->createLanguageModelParamsFrom(Ljava/util/List;ILorg/smc/inputmethod/indic/DictionaryFacilitator;Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;Lcom/android/inputmethod/latin/utils/DistracterFilter;)Ljava/util/ArrayList; │ │ move-result-object v0 │ │ .line 613 │ .local v0, "languageModelParams":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ if-eqz v0, :cond_2 │ @@ -874,14 +879,15 @@ │ │ .prologue │ .line 624 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ const-string v4, "contextual" │ │ + .line 625 │ invoke-virtual {v3, v4}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getSubDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ move-result-object v1 │ │ .line 626 │ .local v1, "contextualDict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ if-nez v1, :cond_1 │ @@ -995,14 +1001,15 @@ │ :cond_2 │ new-instance v3, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo; │ │ aget-object v4, p1, v12 │ │ invoke-direct {v3, v4}, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;->(Ljava/lang/CharSequence;)V │ │ + .line 653 │ invoke-virtual {v13, v3}, Lcom/android/inputmethod/latin/PrevWordsInfo;->getNextPrevWordsInfo(Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;)Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ move-result-object v13 │ │ .line 630 │ add-int/lit8 v12, v12, 0x1 │ │ @@ -1064,14 +1071,15 @@ │ invoke-direct/range {v0 .. v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->addWordToUserHistory(Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;Lcom/android/inputmethod/latin/PrevWordsInfo;Ljava/lang/String;ZIZ)V │ │ .line 424 │ new-instance v0, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo; │ │ invoke-direct {v0, v3}, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;->(Ljava/lang/CharSequence;)V │ │ + .line 425 │ invoke-virtual {v2, v0}, Lcom/android/inputmethod/latin/PrevWordsInfo;->getNextPrevWordsInfo(Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;)Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ move-result-object v2 │ │ .line 419 │ add-int/lit8 v7, v7, 0x1 │ │ @@ -1152,88 +1160,79 @@ │ invoke-direct {p0, v0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->clearSubDictionary(Ljava/lang/String;)V │ │ .line 582 │ return-void │ .end method │ │ .method public closeDictionaries()V │ - .locals 7 │ + .locals 5 │ │ .prologue │ .line 352 │ - iget-object v6, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mLock:Ljava/lang/Object; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mLock:Ljava/lang/Object; │ │ - monitor-enter v6 │ + monitor-enter v3 │ │ .line 353 │ :try_start_0 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 354 │ - .local v2, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ - new-instance v5, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + .local v1, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + new-instance v2, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ - invoke-direct {v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->()V │ + invoke-direct {v2}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->()V │ │ - iput-object v5, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iput-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 355 │ - monitor-exit v6 │ + monitor-exit v3 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ .line 356 │ - sget-object v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ + sget-object v3, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v4, v0 │ + array-length v4, v3 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v1, v0, v3 │ + aget-object v0, v3, v2 │ │ .line 357 │ - .local v1, "dictType":Ljava/lang/String; │ - invoke-virtual {v2, v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->closeDict(Ljava/lang/String;)V │ + .local v0, "dictType":Ljava/lang/String; │ + invoke-virtual {v1, v0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->closeDict(Ljava/lang/String;)V │ │ .line 356 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 355 │ - .end local v0 # "arr$":[Ljava/lang/String; │ - .end local v1 # "dictType":Ljava/lang/String; │ - .end local v2 # "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ - .end local v3 # "i$":I │ - .end local v4 # "len$":I │ + .end local v0 # "dictType":Ljava/lang/String; │ + .end local v1 # "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ :catchall_0 │ - move-exception v5 │ + move-exception v2 │ │ :try_start_1 │ - monitor-exit v6 │ + monitor-exit v3 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - throw v5 │ + throw v2 │ │ .line 359 │ - .restart local v0 # "arr$":[Ljava/lang/String; │ - .restart local v2 # "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ - .restart local v3 # "i$":I │ - .restart local v4 # "len$":I │ + .restart local v1 # "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ :cond_0 │ - iget-object v5, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDistracterFilter:Lcom/android/inputmethod/latin/utils/DistracterFilter; │ + iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDistracterFilter:Lcom/android/inputmethod/latin/utils/DistracterFilter; │ │ - invoke-interface {v5}, Lcom/android/inputmethod/latin/utils/DistracterFilter;->close()V │ + invoke-interface {v2}, Lcom/android/inputmethod/latin/utils/DistracterFilter;->close()V │ │ .line 360 │ return-void │ .end method │ │ .method public dumpDictionaryForDebug(Ljava/lang/String;)V │ .locals 4 │ @@ -1264,21 +1263,15 @@ │ │ move-result-object v2 │ │ invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ - const-string v3, ". " │ - │ - invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v2 │ - │ - const-string v3, "The dictionary is not being used for suggestion or cannot be dumped." │ + const-string v3, ". The dictionary is not being used for suggestion or cannot be dumped." │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ @@ -1302,14 +1295,15 @@ │ │ .prologue │ .line 379 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ const-string v2, "personalization" │ │ + .line 380 │ invoke-virtual {v1, v2}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getSubDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ move-result-object v0 │ │ .line 381 │ .local v0, "personalizationDict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ if-eqz v0, :cond_0 │ @@ -1387,122 +1381,123 @@ │ .param p2, "prevWordsInfo" # Lcom/android/inputmethod/latin/PrevWordsInfo; │ .param p3, "proximityInfo" # Lcom/android/inputmethod/keyboard/ProximityInfo; │ .param p4, "settingsValuesForSuggestion" # Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion; │ .param p5, "sessionId" # I │ │ .prologue │ .line 499 │ - iget-object v10, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v9, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 500 │ - .local v10, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ - new-instance v14, Lcom/android/inputmethod/latin/utils/SuggestionResults; │ + .local v9, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + new-instance v11, Lcom/android/inputmethod/latin/utils/SuggestionResults; │ │ - iget-object v2, v10, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ + iget-object v2, v9, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ │ const/16 v3, 0x12 │ │ move-object/from16 v0, p2 │ │ iget-object v4, v0, Lcom/android/inputmethod/latin/PrevWordsInfo;->mPrevWordsInfo:[Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo; │ │ const/4 v5, 0x0 │ │ aget-object v4, v4, v5 │ │ iget-boolean v4, v4, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;->mIsBeginningOfSentence:Z │ │ - invoke-direct {v14, v2, v3, v4}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->(Ljava/util/Locale;IZ)V │ + invoke-direct {v11, v2, v3, v4}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->(Ljava/util/Locale;IZ)V │ │ .line 503 │ - .local v14, "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ + .local v11, "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ const/4 v2, 0x1 │ │ new-array v7, v2, [F │ │ const/4 v2, 0x0 │ │ const/high16 v3, -0x40800000 # -1.0f │ │ aput v3, v7, v2 │ │ .line 504 │ .local v7, "languageWeight":[F │ - sget-object v8, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ + sget-object v13, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ │ - .local v8, "arr$":[Ljava/lang/String; │ - array-length v13, v8 │ + array-length v14, v13 │ │ - .local v13, "len$":I │ - const/4 v12, 0x0 │ + const/4 v2, 0x0 │ + │ + move v12, v2 │ │ - .local v12, "i$":I │ :goto_0 │ - if-ge v12, v13, :cond_2 │ + if-ge v12, v14, :cond_2 │ │ - aget-object v9, v8, v12 │ + aget-object v8, v13, v12 │ │ .line 505 │ - .local v9, "dictType":Ljava/lang/String; │ - invoke-virtual {v10, v9}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ + .local v8, "dictType":Ljava/lang/String; │ + invoke-virtual {v9, v8}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ │ move-result-object v1 │ │ .line 506 │ .local v1, "dictionary":Lorg/smc/inputmethod/indic/Dictionary; │ if-nez v1, :cond_1 │ │ .line 504 │ :cond_0 │ :goto_1 │ - add-int/lit8 v12, v12, 0x1 │ + add-int/lit8 v2, v12, 0x1 │ + │ + move v12, v2 │ │ goto :goto_0 │ │ :cond_1 │ move-object/from16 v2, p1 │ │ move-object/from16 v3, p2 │ │ move-object/from16 v4, p3 │ │ move-object/from16 v5, p4 │ │ move/from16 v6, p5 │ │ - .line 507 │ + .line 508 │ invoke-virtual/range {v1 .. v7}, Lorg/smc/inputmethod/indic/Dictionary;->getSuggestions(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion;I[F)Ljava/util/ArrayList; │ │ - move-result-object v11 │ + move-result-object v10 │ │ .line 510 │ - .local v11, "dictionarySuggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - if-eqz v11, :cond_0 │ + .local v10, "dictionarySuggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + if-eqz v10, :cond_0 │ │ .line 511 │ - invoke-virtual {v14, v11}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->addAll(Ljava/util/Collection;)Z │ + invoke-virtual {v11, v10}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->addAll(Ljava/util/Collection;)Z │ │ .line 512 │ - iget-object v2, v14, Lcom/android/inputmethod/latin/utils/SuggestionResults;->mRawSuggestions:Ljava/util/ArrayList; │ + iget-object v2, v11, Lcom/android/inputmethod/latin/utils/SuggestionResults;->mRawSuggestions:Ljava/util/ArrayList; │ │ if-eqz v2, :cond_0 │ │ .line 513 │ - iget-object v2, v14, Lcom/android/inputmethod/latin/utils/SuggestionResults;->mRawSuggestions:Ljava/util/ArrayList; │ + iget-object v2, v11, Lcom/android/inputmethod/latin/utils/SuggestionResults;->mRawSuggestions:Ljava/util/ArrayList; │ │ - invoke-virtual {v2, v11}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z │ + invoke-virtual {v2, v10}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z │ │ goto :goto_1 │ │ .line 516 │ .end local v1 # "dictionary":Lorg/smc/inputmethod/indic/Dictionary; │ - .end local v9 # "dictType":Ljava/lang/String; │ - .end local v11 # "dictionarySuggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .end local v8 # "dictType":Ljava/lang/String; │ + .end local v10 # "dictionarySuggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_2 │ - return-object v14 │ + return-object v11 │ .end method │ │ .method public hasInitializedMainDictionary()Z │ .locals 3 │ │ .prologue │ .line 370 │ @@ -1563,96 +1558,94 @@ │ │ .method public isValidWord(Ljava/lang/String;Z)Z │ .locals 9 │ .param p1, "word" # Ljava/lang/String; │ .param p2, "ignoreCase" # Z │ │ .prologue │ - const/4 v7, 0x0 │ + const/4 v4, 0x0 │ │ .line 520 │ invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v8 │ + move-result v5 │ │ - if-eqz v8, :cond_1 │ + if-eqz v5, :cond_1 │ │ .line 539 │ :cond_0 │ :goto_0 │ - return v7 │ + return v4 │ │ .line 523 │ :cond_1 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 524 │ - .local v2, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ - iget-object v8, v2, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ + .local v1, "dictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v5, v1, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ │ - if-eqz v8, :cond_0 │ + if-eqz v5, :cond_0 │ │ .line 527 │ - iget-object v8, v2, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ + iget-object v5, v1, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ │ - invoke-virtual {p1, v8}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ + invoke-virtual {p1, v5}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ .line 528 │ - .local v6, "lowerCasedWord":Ljava/lang/String; │ - sget-object v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ + .local v3, "lowerCasedWord":Ljava/lang/String; │ + sget-object v6, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS:[Ljava/lang/String; │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v5, v0 │ + array-length v7, v6 │ │ - .local v5, "len$":I │ - const/4 v4, 0x0 │ + move v5, v4 │ │ - .local v4, "i$":I │ :goto_1 │ - if-ge v4, v5, :cond_0 │ + if-ge v5, v7, :cond_0 │ │ - aget-object v1, v0, v4 │ + aget-object v0, v6, v5 │ │ .line 529 │ - .local v1, "dictType":Ljava/lang/String; │ - invoke-virtual {v2, v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ + .local v0, "dictType":Ljava/lang/String; │ + invoke-virtual {v1, v0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 533 │ - .local v3, "dictionary":Lorg/smc/inputmethod/indic/Dictionary; │ - if-nez v3, :cond_3 │ + .local v2, "dictionary":Lorg/smc/inputmethod/indic/Dictionary; │ + if-nez v2, :cond_3 │ │ .line 528 │ :cond_2 │ - add-int/lit8 v4, v4, 0x1 │ + add-int/lit8 v5, v5, 0x1 │ │ goto :goto_1 │ │ .line 534 │ :cond_3 │ - invoke-virtual {v3, p1}, Lorg/smc/inputmethod/indic/Dictionary;->isValidWord(Ljava/lang/String;)Z │ + invoke-virtual {v2, p1}, Lorg/smc/inputmethod/indic/Dictionary;->isValidWord(Ljava/lang/String;)Z │ │ move-result v8 │ │ if-nez v8, :cond_4 │ │ if-eqz p2, :cond_2 │ │ - invoke-virtual {v3, v6}, Lorg/smc/inputmethod/indic/Dictionary;->isValidWord(Ljava/lang/String;)Z │ + .line 535 │ + invoke-virtual {v2, v3}, Lorg/smc/inputmethod/indic/Dictionary;->isValidWord(Ljava/lang/String;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_2 │ │ .line 536 │ :cond_4 │ - const/4 v7, 0x1 │ + const/4 v4, 0x1 │ │ goto :goto_0 │ .end method │ │ .method public removeWordFromPersonalizedDicts(Ljava/lang/String;)V │ .locals 1 │ .param p1, "word" # Ljava/lang/String; │ @@ -1707,15 +1700,15 @@ │ invoke-virtual/range {v0 .. v7}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->resetDictionariesWithDictNamePrefix(Landroid/content/Context;Ljava/util/Locale;ZZZLorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;Ljava/lang/String;)V │ │ .line 222 │ return-void │ .end method │ │ .method public resetDictionariesForTesting(Landroid/content/Context;Ljava/util/Locale;Ljava/util/ArrayList;Ljava/util/HashMap;Ljava/util/Map;)V │ - .locals 9 │ + .locals 8 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "locale" # Ljava/util/Locale; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Landroid/content/Context;", │ "Ljava/util/Locale;", │ @@ -1743,534 +1736,495 @@ │ .end annotation │ │ .prologue │ .line 325 │ .local p3, "dictionaryTypes":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .local p4, "dictionaryFiles":Ljava/util/HashMap;, "Ljava/util/HashMap;" │ .local p5, "additionalDictAttributes":Ljava/util/Map;, "Ljava/util/Map;>;" │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 326 │ - .local v4, "mainDictionary":Lorg/smc/inputmethod/indic/Dictionary; │ - new-instance v5, Ljava/util/HashMap; │ + .local v3, "mainDictionary":Lorg/smc/inputmethod/indic/Dictionary; │ + new-instance v4, Ljava/util/HashMap; │ │ - invoke-direct {v5}, Ljava/util/HashMap;->()V │ + invoke-direct {v4}, Ljava/util/HashMap;->()V │ │ .line 328 │ - .local v5, "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ + .local v4, "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-virtual {p3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v6 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v6 │ + move-result v5 │ │ - if-eqz v6, :cond_3 │ + if-eqz v5, :cond_3 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/String; │ │ .line 329 │ .local v2, "dictType":Ljava/lang/String; │ - const-string v6, "main" │ + const-string v5, "main" │ │ - invoke-virtual {v2, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v5 │ │ - if-eqz v6, :cond_0 │ + if-eqz v5, :cond_0 │ │ .line 330 │ invoke-static {p1, p2}, Lorg/smc/inputmethod/indic/DictionaryFactory;->createMainDictionaryFromManager(Landroid/content/Context;Ljava/util/Locale;)Lorg/smc/inputmethod/indic/DictionaryCollection; │ │ - move-result-object v4 │ + move-result-object v3 │ │ goto :goto_0 │ │ .line 332 │ :cond_0 │ invoke-virtual {p4, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/io/File; │ │ .line 333 │ .local v1, "dictFile":Ljava/io/File; │ - const-string v6, "" │ + const-string v5, "" │ │ - invoke-static {v2, p1, p2, v1, v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSubDict(Ljava/lang/String;Landroid/content/Context;Ljava/util/Locale;Ljava/io/File;Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + invoke-static {v2, p1, p2, v1, v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSubDict(Ljava/lang/String;Landroid/content/Context;Ljava/util/Locale;Ljava/io/File;Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ move-result-object v0 │ │ .line 335 │ .local v0, "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ invoke-interface {p5, v2}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z │ │ - move-result v6 │ + move-result v5 │ │ - if-eqz v6, :cond_1 │ + if-eqz v5, :cond_1 │ │ - .line 336 │ + .line 337 │ invoke-interface {p5, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - check-cast v6, Ljava/util/Map; │ + check-cast v5, Ljava/util/Map; │ │ - invoke-virtual {v0, v6}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->clearAndFlushDictionaryWithAdditionalAttributes(Ljava/util/Map;)V │ + .line 336 │ + invoke-virtual {v0, v5}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->clearAndFlushDictionaryWithAdditionalAttributes(Ljava/util/Map;)V │ │ .line 339 │ :cond_1 │ if-nez v0, :cond_2 │ │ .line 340 │ - new-instance v6, Ljava/lang/RuntimeException; │ + new-instance v5, Ljava/lang/RuntimeException; │ │ - new-instance v7, Ljava/lang/StringBuilder; │ + new-instance v6, Ljava/lang/StringBuilder; │ │ - invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ - const-string v8, "Unknown dictionary type: " │ + const-string v7, "Unknown dictionary type: " │ │ - invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-direct {v6, v7}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ + invoke-direct {v5, v6}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ │ - throw v6 │ + throw v5 │ │ .line 342 │ :cond_2 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->reloadDictionaryIfRequired()V │ │ .line 343 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->waitAllTasksForTests()V │ │ .line 344 │ - invoke-interface {v5, v2, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v4, v2, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 347 │ .end local v0 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ .end local v1 # "dictFile":Ljava/io/File; │ .end local v2 # "dictType":Ljava/lang/String; │ :cond_3 │ - new-instance v6, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + new-instance v5, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ - invoke-direct {v6, p2, v4, v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->(Ljava/util/Locale;Lorg/smc/inputmethod/indic/Dictionary;Ljava/util/Map;)V │ + invoke-direct {v5, p2, v3, v4}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->(Ljava/util/Locale;Lorg/smc/inputmethod/indic/Dictionary;Ljava/util/Map;)V │ │ - iput-object v6, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iput-object v5, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 348 │ return-void │ .end method │ │ .method public resetDictionariesWithDictNamePrefix(Landroid/content/Context;Ljava/util/Locale;ZZZLorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;Ljava/lang/String;)V │ - .locals 18 │ + .locals 17 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "newLocale" # Ljava/util/Locale; │ .param p3, "useContactsDict" # Z │ .param p4, "usePersonalizedDicts" # Z │ .param p5, "forceReloadMainDictionary" # Z │ .param p6, "listener" # Lorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener; │ .param p7, "dictNamePrefix" # Ljava/lang/String; │ │ .prologue │ .line 229 │ move-object/from16 v0, p0 │ │ - iget-object v0, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v13, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ - move-object/from16 v16, v0 │ - │ - move-object/from16 v0, v16 │ - │ - iget-object v0, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ - │ - move-object/from16 v16, v0 │ + iget-object v13, v13, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mLocale:Ljava/util/Locale; │ │ move-object/from16 v0, p2 │ │ - move-object/from16 v1, v16 │ - │ - invoke-virtual {v0, v1}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v13}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ - move-result v16 │ + move-result v13 │ │ - if-nez v16, :cond_3 │ + if-nez v13, :cond_3 │ │ - const/4 v9, 0x1 │ + const/4 v6, 0x1 │ │ .line 231 │ - .local v9, "localeHasBeenChanged":Z │ + .local v6, "localeHasBeenChanged":Z │ :goto_0 │ - if-nez v9, :cond_0 │ + if-nez v6, :cond_0 │ │ if-eqz p5, :cond_4 │ │ :cond_0 │ - const/4 v13, 0x1 │ + const/4 v10, 0x1 │ │ .line 233 │ - .local v13, "reloadMainDictionary":Z │ + .local v10, "reloadMainDictionary":Z │ :goto_1 │ - new-instance v14, Ljava/util/HashSet; │ + new-instance v11, Ljava/util/HashSet; │ │ - invoke-direct {v14}, Ljava/util/HashSet;->()V │ + invoke-direct {v11}, Ljava/util/HashSet;->()V │ │ .line 234 │ - .local v14, "subDictTypesToUse":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ + .local v11, "subDictTypesToUse":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ if-eqz p3, :cond_1 │ │ .line 235 │ - const-string v16, "contacts" │ - │ - move-object/from16 v0, v16 │ + const-string v13, "contacts" │ │ - invoke-virtual {v14, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v11, v13}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ │ .line 237 │ :cond_1 │ - const-string v16, "user" │ - │ - move-object/from16 v0, v16 │ + const-string v13, "user" │ │ - invoke-virtual {v14, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v11, v13}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ │ .line 238 │ if-eqz p4, :cond_2 │ │ .line 239 │ - const-string v16, "history" │ - │ - move-object/from16 v0, v16 │ + const-string v13, "history" │ │ - invoke-virtual {v14, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v11, v13}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ │ .line 240 │ - const-string v16, "personalization" │ - │ - move-object/from16 v0, v16 │ + const-string v13, "personalization" │ │ - invoke-virtual {v14, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v11, v13}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ │ .line 241 │ - const-string v16, "contextual" │ - │ - move-object/from16 v0, v16 │ + const-string v13, "contextual" │ │ - invoke-virtual {v14, v0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v11, v13}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z │ │ .line 245 │ :cond_2 │ - if-eqz v13, :cond_5 │ + if-eqz v10, :cond_5 │ │ .line 247 │ - const/4 v11, 0x0 │ + const/4 v8, 0x0 │ │ .line 252 │ - .local v11, "newMainDict":Lorg/smc/inputmethod/indic/Dictionary; │ + .local v8, "newMainDict":Lorg/smc/inputmethod/indic/Dictionary; │ :goto_2 │ - new-instance v15, Ljava/util/HashMap; │ + new-instance v12, Ljava/util/HashMap; │ │ - invoke-direct {v15}, Ljava/util/HashMap;->()V │ + invoke-direct {v12}, Ljava/util/HashMap;->()V │ │ .line 253 │ - .local v15, "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ - sget-object v4, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->SUB_DICT_TYPES:[Ljava/lang/String; │ + .local v12, "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ + sget-object v14, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->SUB_DICT_TYPES:[Ljava/lang/String; │ │ - .local v4, "arr$":[Ljava/lang/String; │ - array-length v8, v4 │ + array-length v15, v14 │ │ - .local v8, "len$":I │ - const/4 v7, 0x0 │ + const/4 v13, 0x0 │ │ - .local v7, "i$":I │ :goto_3 │ - if-ge v7, v8, :cond_8 │ + if-ge v13, v15, :cond_8 │ │ - aget-object v6, v4, v7 │ + aget-object v5, v14, v13 │ │ .line 254 │ - .local v6, "dictType":Ljava/lang/String; │ - invoke-virtual {v14, v6}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z │ + .local v5, "dictType":Ljava/lang/String; │ + invoke-virtual {v11, v5}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z │ │ move-result v16 │ │ if-nez v16, :cond_6 │ │ .line 253 │ :goto_4 │ - add-int/lit8 v7, v7, 0x1 │ + add-int/lit8 v13, v13, 0x1 │ │ goto :goto_3 │ │ .line 229 │ - .end local v4 # "arr$":[Ljava/lang/String; │ - .end local v6 # "dictType":Ljava/lang/String; │ - .end local v7 # "i$":I │ - .end local v8 # "len$":I │ - .end local v9 # "localeHasBeenChanged":Z │ - .end local v11 # "newMainDict":Lorg/smc/inputmethod/indic/Dictionary; │ - .end local v13 # "reloadMainDictionary":Z │ - .end local v14 # "subDictTypesToUse":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ - .end local v15 # "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ + .end local v5 # "dictType":Ljava/lang/String; │ + .end local v6 # "localeHasBeenChanged":Z │ + .end local v8 # "newMainDict":Lorg/smc/inputmethod/indic/Dictionary; │ + .end local v10 # "reloadMainDictionary":Z │ + .end local v11 # "subDictTypesToUse":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ + .end local v12 # "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ :cond_3 │ - const/4 v9, 0x0 │ + const/4 v6, 0x0 │ │ goto :goto_0 │ │ .line 231 │ - .restart local v9 # "localeHasBeenChanged":Z │ + .restart local v6 # "localeHasBeenChanged":Z │ :cond_4 │ - const/4 v13, 0x0 │ + const/4 v10, 0x0 │ │ goto :goto_1 │ │ .line 249 │ - .restart local v13 # "reloadMainDictionary":Z │ - .restart local v14 # "subDictTypesToUse":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ + .restart local v10 # "reloadMainDictionary":Z │ + .restart local v11 # "subDictTypesToUse":Ljava/util/HashSet;, "Ljava/util/HashSet;" │ :cond_5 │ move-object/from16 v0, p0 │ │ - iget-object v0, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v13, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ - move-object/from16 v16, v0 │ - │ - const-string v17, "main" │ + const-string v14, "main" │ │ - invoke-virtual/range {v16 .. v17}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ + invoke-virtual {v13, v14}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/Dictionary; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - .restart local v11 # "newMainDict":Lorg/smc/inputmethod/indic/Dictionary; │ + .restart local v8 # "newMainDict":Lorg/smc/inputmethod/indic/Dictionary; │ goto :goto_2 │ │ .line 259 │ - .restart local v4 # "arr$":[Ljava/lang/String; │ - .restart local v6 # "dictType":Ljava/lang/String; │ - .restart local v7 # "i$":I │ - .restart local v8 # "len$":I │ - .restart local v15 # "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ + .restart local v5 # "dictType":Ljava/lang/String; │ + .restart local v12 # "subDicts":Ljava/util/Map;, "Ljava/util/Map;" │ :cond_6 │ - if-nez v9, :cond_7 │ + if-nez v6, :cond_7 │ │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ move-object/from16 v16, v0 │ │ move-object/from16 v0, v16 │ │ - invoke-virtual {v0, v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->hasDict(Ljava/lang/String;)Z │ + invoke-virtual {v0, v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->hasDict(Ljava/lang/String;)Z │ │ move-result v16 │ │ if-eqz v16, :cond_7 │ │ .line 261 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ move-object/from16 v16, v0 │ │ move-object/from16 v0, v16 │ │ - invoke-virtual {v0, v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getSubDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + invoke-virtual {v0, v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->getSubDict(Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 267 │ - .local v5, "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + .local v4, "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ :goto_5 │ - invoke-interface {v15, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v12, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_4 │ │ .line 264 │ - .end local v5 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + .end local v4 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ :cond_7 │ const/16 v16, 0x0 │ │ move-object/from16 v0, p1 │ │ move-object/from16 v1, p2 │ │ move-object/from16 v2, v16 │ │ move-object/from16 v3, p7 │ │ - invoke-static {v6, v0, v1, v2, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSubDict(Ljava/lang/String;Landroid/content/Context;Ljava/util/Locale;Ljava/io/File;Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + invoke-static {v5, v0, v1, v2, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSubDict(Ljava/lang/String;Landroid/content/Context;Ljava/util/Locale;Ljava/io/File;Ljava/lang/String;)Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - .restart local v5 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + .restart local v4 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ goto :goto_5 │ │ .line 271 │ - .end local v5 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ - .end local v6 # "dictType":Ljava/lang/String; │ + .end local v4 # "dict":Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ + .end local v5 # "dictType":Ljava/lang/String; │ :cond_8 │ - new-instance v10, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + new-instance v7, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ move-object/from16 v0, p2 │ │ - invoke-direct {v10, v0, v11, v15}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->(Ljava/util/Locale;Lorg/smc/inputmethod/indic/Dictionary;Ljava/util/Map;)V │ + invoke-direct {v7, v0, v8, v12}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->(Ljava/util/Locale;Lorg/smc/inputmethod/indic/Dictionary;Ljava/util/Map;)V │ │ .line 273 │ - .local v10, "newDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + .local v7, "newDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ move-object/from16 v0, p0 │ │ - iget-object v0, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mLock:Ljava/lang/Object; │ - │ - move-object/from16 v17, v0 │ + iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mLock:Ljava/lang/Object; │ │ - monitor-enter v17 │ + monitor-enter v14 │ │ .line 274 │ :try_start_0 │ move-object/from16 v0, p0 │ │ - iget-object v12, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v9, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 275 │ - .local v12, "oldDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + .local v9, "oldDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ move-object/from16 v0, p0 │ │ - iput-object v10, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iput-object v7, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ .line 276 │ invoke-static/range {p1 .. p1}, Lorg/smc/inputmethod/indic/UserBinaryDictionary;->isEnabled(Landroid/content/Context;)Z │ │ - move-result v16 │ - │ - move/from16 v0, v16 │ + move-result v13 │ │ - move-object/from16 v1, p0 │ + move-object/from16 v0, p0 │ │ - iput-boolean v0, v1, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mIsUserDictEnabled:Z │ + iput-boolean v13, v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mIsUserDictEnabled:Z │ │ .line 277 │ - if-eqz v13, :cond_9 │ + if-eqz v10, :cond_9 │ │ .line 278 │ move-object/from16 v0, p0 │ │ move-object/from16 v1, p1 │ │ move-object/from16 v2, p2 │ │ move-object/from16 v3, p6 │ │ invoke-direct {v0, v1, v2, v3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->asyncReloadMainDictionary(Landroid/content/Context;Ljava/util/Locale;Lorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;)V │ │ .line 280 │ :cond_9 │ - monitor-exit v17 │ + monitor-exit v14 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ .line 281 │ if-eqz p6, :cond_a │ │ .line 282 │ invoke-virtual/range {p0 .. p0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->hasInitializedMainDictionary()Z │ │ - move-result v16 │ + move-result v13 │ │ move-object/from16 v0, p6 │ │ - move/from16 v1, v16 │ - │ - invoke-interface {v0, v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;->onUpdateMainDictionaryAvailability(Z)V │ + invoke-interface {v0, v13}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;->onUpdateMainDictionaryAvailability(Z)V │ │ .line 285 │ :cond_a │ - if-eqz v13, :cond_b │ + if-eqz v10, :cond_b │ │ .line 286 │ - const-string v16, "main" │ - │ - move-object/from16 v0, v16 │ + const-string v13, "main" │ │ - invoke-virtual {v12, v0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->closeDict(Ljava/lang/String;)V │ + invoke-virtual {v9, v13}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->closeDict(Ljava/lang/String;)V │ │ .line 288 │ :cond_b │ - sget-object v4, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->SUB_DICT_TYPES:[Ljava/lang/String; │ + sget-object v14, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->SUB_DICT_TYPES:[Ljava/lang/String; │ │ - array-length v8, v4 │ + array-length v15, v14 │ │ - const/4 v7, 0x0 │ + const/4 v13, 0x0 │ │ :goto_6 │ - if-ge v7, v8, :cond_e │ + if-ge v13, v15, :cond_e │ │ - aget-object v6, v4, v7 │ + aget-object v5, v14, v13 │ │ .line 289 │ - .restart local v6 # "dictType":Ljava/lang/String; │ - if-nez v9, :cond_c │ + .restart local v5 # "dictType":Ljava/lang/String; │ + if-nez v6, :cond_c │ │ - invoke-virtual {v14, v6}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z │ + invoke-virtual {v11, v5}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z │ │ move-result v16 │ │ if-nez v16, :cond_d │ │ .line 290 │ :cond_c │ - invoke-virtual {v12, v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->closeDict(Ljava/lang/String;)V │ + invoke-virtual {v9, v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->closeDict(Ljava/lang/String;)V │ │ .line 288 │ :cond_d │ - add-int/lit8 v7, v7, 0x1 │ + add-int/lit8 v13, v13, 0x1 │ │ goto :goto_6 │ │ .line 280 │ - .end local v6 # "dictType":Ljava/lang/String; │ - .end local v12 # "oldDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + .end local v5 # "dictType":Ljava/lang/String; │ + .end local v9 # "oldDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ :catchall_0 │ - move-exception v16 │ + move-exception v13 │ │ :try_start_1 │ - monitor-exit v17 │ + monitor-exit v14 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ - throw v16 │ + throw v13 │ │ .line 293 │ - .restart local v12 # "oldDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + .restart local v9 # "oldDictionaries":Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ :cond_e │ - iget-object v0, v12, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mSubDictMap:Ljava/util/concurrent/ConcurrentHashMap; │ - │ - move-object/from16 v16, v0 │ + iget-object v13, v9, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mSubDictMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ - invoke-virtual/range {v16 .. v16}, Ljava/util/concurrent/ConcurrentHashMap;->clear()V │ + invoke-virtual {v13}, Ljava/util/concurrent/ConcurrentHashMap;->clear()V │ │ .line 294 │ return-void │ .end method │ │ .method public updateEnabledSubtypes(Ljava/util/List;)V │ .locals 1 │ @@ -2309,29 +2263,28 @@ │ .end annotation │ │ .prologue │ .line 394 │ invoke-virtual {p0, p1, p2, p3}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->waitForLoadingMainDictionary(JLjava/util/concurrent/TimeUnit;)V │ │ .line 395 │ - iget-object v3, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ + iget-object v2, p0, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->mDictionaries:Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries; │ │ - iget-object v1, v3, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mSubDictMap:Ljava/util/concurrent/ConcurrentHashMap; │ + iget-object v1, v2, Lorg/smc/inputmethod/indic/DictionaryFacilitator$Dictionaries;->mSubDictMap:Ljava/util/concurrent/ConcurrentHashMap; │ │ .line 396 │ .local v1, "dictMap":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-interface {v1}, Ljava/util/Map;->values()Ljava/util/Collection; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; │ │ move-result-object v2 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_0 │ invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 ├── smali/org/smc/inputmethod/indic/DictionaryFactory.smali │ @@ -31,44 +31,41 @@ │ .line 38 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ return-void │ .end method │ │ .method public static createDictionaryForTest([Lorg/smc/inputmethod/indic/AssetFileAddress;ZLjava/util/Locale;)Lorg/smc/inputmethod/indic/Dictionary; │ - .locals 14 │ + .locals 13 │ .param p0, "dictionaryList" # [Lorg/smc/inputmethod/indic/AssetFileAddress; │ .param p1, "useFullEditDistance" # Z │ .param p2, "locale" # Ljava/util/Locale; │ .annotation build Lorg/smc/inputmethod/annotations/UsedForTesting; │ .end annotation │ │ .prologue │ .line 192 │ - new-instance v11, Lorg/smc/inputmethod/indic/DictionaryCollection; │ + new-instance v10, Lorg/smc/inputmethod/indic/DictionaryCollection; │ │ const-string v1, "main" │ │ - invoke-direct {v11, v1}, Lorg/smc/inputmethod/indic/DictionaryCollection;->(Ljava/lang/String;)V │ + invoke-direct {v10, v1}, Lorg/smc/inputmethod/indic/DictionaryCollection;->(Ljava/lang/String;)V │ │ .line 194 │ - .local v11, "dictionaryCollection":Lorg/smc/inputmethod/indic/DictionaryCollection; │ - move-object v10, p0 │ + .local v10, "dictionaryCollection":Lorg/smc/inputmethod/indic/DictionaryCollection; │ + array-length v12, p0 │ │ - .local v10, "arr$":[Lorg/smc/inputmethod/indic/AssetFileAddress; │ - array-length v13, v10 │ + const/4 v1, 0x0 │ │ - .local v13, "len$":I │ - const/4 v12, 0x0 │ + move v11, v1 │ │ - .local v12, "i$":I │ :goto_0 │ - if-ge v12, v13, :cond_0 │ + if-ge v11, v12, :cond_0 │ │ - aget-object v9, v10, v12 │ + aget-object v9, p0, v11 │ │ .line 195 │ .local v9, "address":Lorg/smc/inputmethod/indic/AssetFileAddress; │ new-instance v0, Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary; │ │ iget-object v1, v9, Lorg/smc/inputmethod/indic/AssetFileAddress;->mFilename:Ljava/lang/String; │ │ @@ -76,32 +73,34 @@ │ │ iget-wide v4, v9, Lorg/smc/inputmethod/indic/AssetFileAddress;->mLength:J │ │ const-string v8, "main" │ │ move v6, p1 │ │ - move-object/from16 v7, p2 │ + move-object v7, p2 │ │ invoke-direct/range {v0 .. v8}, Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary;->(Ljava/lang/String;JJZLjava/util/Locale;Ljava/lang/String;)V │ │ .line 198 │ .local v0, "readOnlyBinaryDictionary":Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary; │ - invoke-virtual {v11, v0}, Lorg/smc/inputmethod/indic/DictionaryCollection;->addDictionary(Lorg/smc/inputmethod/indic/Dictionary;)V │ + invoke-virtual {v10, v0}, Lorg/smc/inputmethod/indic/DictionaryCollection;->addDictionary(Lorg/smc/inputmethod/indic/Dictionary;)V │ │ .line 194 │ - add-int/lit8 v12, v12, 0x1 │ + add-int/lit8 v1, v11, 0x1 │ + │ + move v11, v1 │ │ goto :goto_0 │ │ .line 200 │ .end local v0 # "readOnlyBinaryDictionary":Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary; │ .end local v9 # "address":Lorg/smc/inputmethod/indic/AssetFileAddress; │ :cond_0 │ - return-object v11 │ + return-object v10 │ .end method │ │ .method public static createMainDictionaryFromManager(Landroid/content/Context;Ljava/util/Locale;)Lorg/smc/inputmethod/indic/DictionaryCollection; │ .locals 1 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "locale" # Ljava/util/Locale; │ │ @@ -140,14 +139,15 @@ │ │ const/4 v3, 0x1 │ │ new-array v3, v3, [Lorg/smc/inputmethod/indic/Dictionary; │ │ const/4 v4, 0x0 │ │ + .line 56 │ invoke-static {p0, p1}, Lorg/smc/inputmethod/indic/DictionaryFactory;->createReadOnlyBinaryDictionary(Landroid/content/Context;Ljava/util/Locale;)Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ invoke-direct {v1, v2, v3}, Lorg/smc/inputmethod/indic/DictionaryCollection;->(Ljava/lang/String;[Lorg/smc/inputmethod/indic/Dictionary;)V │ @@ -158,30 +158,29 @@ │ │ .line 59 │ :cond_0 │ new-instance v10, Ljava/util/LinkedList; │ │ invoke-direct {v10}, Ljava/util/LinkedList;->()V │ │ - .line 60 │ + .line 61 │ .local v10, "dictList":Ljava/util/LinkedList;, "Ljava/util/LinkedList;" │ invoke-static {p1, p0}, Lorg/smc/inputmethod/indic/BinaryDictionaryGetter;->getDictionaryFiles(Ljava/util/Locale;Landroid/content/Context;)Ljava/util/ArrayList; │ │ move-result-object v9 │ │ .line 62 │ .local v9, "assetFileList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ if-eqz v9, :cond_2 │ │ .line 63 │ invoke-virtual {v9}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ move-result-object v12 │ │ - .local v12, "i$":Ljava/util/Iterator; │ :goto_1 │ invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ @@ -230,15 +229,14 @@ │ invoke-static {p0, v11}, Lorg/smc/inputmethod/indic/DictionaryFactory;->killDictionary(Landroid/content/Context;Lorg/smc/inputmethod/indic/AssetFileAddress;)V │ │ goto :goto_1 │ │ .line 80 │ .end local v0 # "readOnlyBinaryDictionary":Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary; │ .end local v11 # "f":Lorg/smc/inputmethod/indic/AssetFileAddress; │ - .end local v12 # "i$":Ljava/util/Iterator; │ :cond_2 │ new-instance v1, Lorg/smc/inputmethod/indic/DictionaryCollection; │ │ const-string v2, "main" │ │ invoke-direct {v1, v2, v10}, Lorg/smc/inputmethod/indic/DictionaryCollection;->(Ljava/lang/String;Ljava/util/Collection;)V │ │ @@ -252,21 +250,22 @@ │ │ .prologue │ const/4 v13, 0x0 │ │ .line 150 │ const/4 v9, 0x0 │ │ - .line 152 │ + .line 153 │ .local v9, "afd":Landroid/content/res/AssetFileDescriptor; │ :try_start_0 │ invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ move-result-object v0 │ │ + .line 152 │ invoke-static {v0, p1}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getMainDictionaryResourceIdIfAvailableForLocale(Landroid/content/res/Resources;Ljava/util/Locale;)I │ :try_end_0 │ .catch Landroid/content/res/Resources$NotFoundException; {:try_start_0 .. :try_end_0} :catch_1 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result v12 │ │ @@ -283,15 +282,15 @@ │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_2 │ │ :cond_0 │ :goto_0 │ move-object v0, v13 │ │ - .line 178 │ + .line 171 │ .end local v12 # "resId":I │ :cond_1 │ :goto_1 │ return-object v0 │ │ .line 155 │ .restart local v12 # "resId":I │ @@ -343,15 +342,15 @@ │ :try_end_3 │ .catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_3 │ │ :cond_3 │ :goto_2 │ move-object v0, v13 │ │ - .line 178 │ + .line 158 │ goto :goto_1 │ │ .line 160 │ :cond_4 │ :try_start_4 │ invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; │ │ @@ -408,15 +407,15 @@ │ :try_end_5 │ .catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_4 │ │ :cond_5 │ :goto_3 │ move-object v0, v13 │ │ - .line 178 │ + .line 165 │ goto :goto_1 │ │ .line 167 │ :cond_6 │ :try_start_6 │ new-instance v0, Lcom/android/inputmethod/latin/ReadOnlyBinaryDictionary; │ │ @@ -483,15 +482,15 @@ │ :try_end_9 │ .catch Ljava/io/IOException; {:try_start_9 .. :try_end_9} :catch_5 │ │ :cond_7 │ :goto_4 │ move-object v0, v13 │ │ - .line 178 │ + .line 171 │ goto/16 :goto_1 │ │ .line 173 │ .end local v10 # "e":Landroid/content/res/Resources$NotFoundException; │ :catchall_0 │ move-exception v0 │ │ @@ -593,22 +592,24 @@ │ :try_start_0 │ invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v3 │ │ const-string v4, "" │ │ + .line 95 │ invoke-static {v4}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->getProviderUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Landroid/net/Uri$Builder;->build()Landroid/net/Uri; │ │ move-result-object v4 │ │ + .line 94 │ invoke-virtual {v3, v4}, Landroid/content/ContentResolver;->acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient; │ :try_end_0 │ .catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 │ │ move-result-object v1 │ │ .line 100 │ @@ -648,14 +649,15 @@ │ :cond_1 │ new-instance v3, Ljava/io/File; │ │ iget-object v4, p1, Lorg/smc/inputmethod/indic/AssetFileAddress;->mFilename:Ljava/lang/String; │ │ invoke-direct {v3, v4}, Ljava/io/File;->(Ljava/lang/String;)V │ │ + .line 105 │ invoke-virtual {v3}, Ljava/io/File;->getName()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-static {v3}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getWordListIdFromFileName(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ @@ -663,15 +665,17 @@ │ .line 106 │ .local v2, "wordlistId":Ljava/lang/String; │ if-eqz v2, :cond_0 │ │ .line 120 │ const v3, 0x7f0c002b │ │ + .line 122 │ invoke-virtual {p0, v3}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 120 │ invoke-static {v1, v3, v2}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->reportBrokenFileToDictionaryProvider(Landroid/content/ContentProviderClient;Ljava/lang/String;Ljava/lang/String;)Z │ │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver.smali │ @@ -65,420 +65,370 @@ │ .line 61 │ return-void │ .end method │ │ │ # virtual methods │ .method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V │ - .locals 17 │ + .locals 15 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "intent" # Landroid/content/Intent; │ │ .prologue │ .line 65 │ invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getAction()Ljava/lang/String; │ │ move-result-object v1 │ │ .line 66 │ .local v1, "action":Ljava/lang/String; │ invoke-virtual/range {p1 .. p1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 69 │ - .local v7, "manager":Landroid/content/pm/PackageManager; │ - const-string v14, "android.intent.action.PACKAGE_ADDED" │ + .local v4, "manager":Landroid/content/pm/PackageManager; │ + const-string v11, "android.intent.action.PACKAGE_ADDED" │ │ - invoke-virtual {v1, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v11 │ │ - if-eqz v14, :cond_3 │ + if-eqz v11, :cond_3 │ │ .line 70 │ - move-object/from16 v0, p0 │ - │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - if-nez v14, :cond_1 │ + if-nez v11, :cond_1 │ │ .line 71 │ - sget-object v14, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ - │ - new-instance v15, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v15}, Ljava/lang/StringBuilder;->()V │ + sget-object v11, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ │ - const-string v16, "Called with intent " │ + new-instance v12, Ljava/lang/StringBuilder; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-direct {v12}, Ljava/lang/StringBuilder;->()V │ │ - move-result-object v15 │ + const-string v13, "Called with intent " │ │ - invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - const-string v16, " but we don\'t know the service: this " │ + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v12 │ │ - move-result-object v15 │ + const-string v13, " but we don\'t know the service: this should never happen" │ │ - const-string v16, "should never happen" │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v12 │ │ - move-result-object v15 │ + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + move-result-object v12 │ │ - move-result-object v15 │ - │ - invoke-static {v14, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 141 │ :cond_0 │ :goto_0 │ return-void │ │ .line 75 │ :cond_1 │ invoke-virtual/range {p2 .. p2}, Landroid/content/Intent;->getData()Landroid/net/Uri; │ │ - move-result-object v11 │ + move-result-object v8 │ │ .line 76 │ - .local v11, "packageUri":Landroid/net/Uri; │ - if-eqz v11, :cond_0 │ + .local v8, "packageUri":Landroid/net/Uri; │ + if-eqz v8, :cond_0 │ │ .line 77 │ - invoke-virtual {v11}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String; │ + invoke-virtual {v8}, Landroid/net/Uri;->getSchemeSpecificPart()Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v7 │ │ .line 78 │ - .local v10, "packageName":Ljava/lang/String; │ - if-eqz v10, :cond_0 │ + .local v7, "packageName":Ljava/lang/String; │ + if-eqz v7, :cond_0 │ │ .line 80 │ - invoke-static {v10}, Lcom/android/inputmethod/latin/utils/TargetPackageInfoGetterTask;->removeCachedPackageInfo(Ljava/lang/String;)V │ + invoke-static {v7}, Lcom/android/inputmethod/latin/utils/TargetPackageInfoGetterTask;->removeCachedPackageInfo(Ljava/lang/String;)V │ │ .line 83 │ - const/16 v14, 0x8 │ + const/16 v11, 0x8 │ │ :try_start_0 │ - invoke-virtual {v7, v10, v14}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; │ + invoke-virtual {v4, v7, v11}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; │ :try_end_0 │ .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 │ │ - move-result-object v9 │ + move-result-object v6 │ │ .line 87 │ - .local v9, "packageInfo":Landroid/content/pm/PackageInfo; │ - iget-object v12, v9, Landroid/content/pm/PackageInfo;->providers:[Landroid/content/pm/ProviderInfo; │ + .local v6, "packageInfo":Landroid/content/pm/PackageInfo; │ + iget-object v9, v6, Landroid/content/pm/PackageInfo;->providers:[Landroid/content/pm/ProviderInfo; │ │ .line 88 │ - .local v12, "providers":[Landroid/content/pm/ProviderInfo; │ - if-eqz v12, :cond_0 │ + .local v9, "providers":[Landroid/content/pm/ProviderInfo; │ + if-eqz v9, :cond_0 │ │ .line 91 │ - move-object v2, v12 │ - │ - .local v2, "arr$":[Landroid/content/pm/ProviderInfo; │ - array-length v6, v2 │ + array-length v12, v9 │ │ - .local v6, "len$":I │ - const/4 v4, 0x0 │ + const/4 v11, 0x0 │ │ - .local v4, "i$":I │ :goto_1 │ - if-ge v4, v6, :cond_0 │ + if-ge v11, v12, :cond_0 │ │ - aget-object v5, v2, v4 │ + aget-object v3, v9, v11 │ │ .line 92 │ - .local v5, "info":Landroid/content/pm/ProviderInfo; │ - const-string v14, "com.android.inputmethod.dictionarypack.aosp" │ + .local v3, "info":Landroid/content/pm/ProviderInfo; │ + const-string v13, "com.android.inputmethod.dictionarypack.aosp" │ │ - iget-object v15, v5, Landroid/content/pm/ProviderInfo;->authority:Ljava/lang/String; │ + iget-object v14, v3, Landroid/content/pm/ProviderInfo;->authority:Ljava/lang/String; │ │ - invoke-virtual {v14, v15}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v13, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v13 │ │ - if-eqz v14, :cond_2 │ + if-eqz v13, :cond_2 │ │ .line 93 │ - move-object/from16 v0, p0 │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ - │ - invoke-virtual {v14}, Lorg/smc/inputmethod/indic/LatinIME;->resetSuggestMainDict()V │ + invoke-virtual {v11}, Lorg/smc/inputmethod/indic/LatinIME;->resetSuggestMainDict()V │ │ goto :goto_0 │ │ .line 84 │ - .end local v2 # "arr$":[Landroid/content/pm/ProviderInfo; │ - .end local v4 # "i$":I │ - .end local v5 # "info":Landroid/content/pm/ProviderInfo; │ - .end local v6 # "len$":I │ - .end local v9 # "packageInfo":Landroid/content/pm/PackageInfo; │ - .end local v12 # "providers":[Landroid/content/pm/ProviderInfo; │ + .end local v3 # "info":Landroid/content/pm/ProviderInfo; │ + .end local v6 # "packageInfo":Landroid/content/pm/PackageInfo; │ + .end local v9 # "providers":[Landroid/content/pm/ProviderInfo; │ :catch_0 │ - move-exception v3 │ + move-exception v2 │ │ .line 85 │ - .local v3, "e":Landroid/content/pm/PackageManager$NameNotFoundException; │ + .local v2, "e":Landroid/content/pm/PackageManager$NameNotFoundException; │ goto :goto_0 │ │ .line 91 │ - .end local v3 # "e":Landroid/content/pm/PackageManager$NameNotFoundException; │ - .restart local v2 # "arr$":[Landroid/content/pm/ProviderInfo; │ - .restart local v4 # "i$":I │ - .restart local v5 # "info":Landroid/content/pm/ProviderInfo; │ - .restart local v6 # "len$":I │ - .restart local v9 # "packageInfo":Landroid/content/pm/PackageInfo; │ - .restart local v12 # "providers":[Landroid/content/pm/ProviderInfo; │ + .end local v2 # "e":Landroid/content/pm/PackageManager$NameNotFoundException; │ + .restart local v3 # "info":Landroid/content/pm/ProviderInfo; │ + .restart local v6 # "packageInfo":Landroid/content/pm/PackageInfo; │ + .restart local v9 # "providers":[Landroid/content/pm/ProviderInfo; │ :cond_2 │ - add-int/lit8 v4, v4, 0x1 │ + add-int/lit8 v11, v11, 0x1 │ │ goto :goto_1 │ │ .line 100 │ - .end local v2 # "arr$":[Landroid/content/pm/ProviderInfo; │ - .end local v4 # "i$":I │ - .end local v5 # "info":Landroid/content/pm/ProviderInfo; │ - .end local v6 # "len$":I │ - .end local v9 # "packageInfo":Landroid/content/pm/PackageInfo; │ - .end local v10 # "packageName":Ljava/lang/String; │ - .end local v11 # "packageUri":Landroid/net/Uri; │ - .end local v12 # "providers":[Landroid/content/pm/ProviderInfo; │ + .end local v3 # "info":Landroid/content/pm/ProviderInfo; │ + .end local v6 # "packageInfo":Landroid/content/pm/PackageInfo; │ + .end local v7 # "packageName":Ljava/lang/String; │ + .end local v8 # "packageUri":Landroid/net/Uri; │ + .end local v9 # "providers":[Landroid/content/pm/ProviderInfo; │ :cond_3 │ - const-string v14, "android.intent.action.PACKAGE_REMOVED" │ + const-string v11, "android.intent.action.PACKAGE_REMOVED" │ │ - invoke-virtual {v1, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v11 │ │ - if-eqz v14, :cond_5 │ + if-eqz v11, :cond_5 │ │ - const-string v14, "android.intent.extra.REPLACING" │ + const-string v11, "android.intent.extra.REPLACING" │ │ - const/4 v15, 0x0 │ + const/4 v12, 0x0 │ │ + .line 101 │ move-object/from16 v0, p2 │ │ - invoke-virtual {v0, v14, v15}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z │ + invoke-virtual {v0, v11, v12}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z │ │ - move-result v14 │ + move-result v11 │ │ - if-nez v14, :cond_5 │ + if-nez v11, :cond_5 │ │ .line 102 │ - move-object/from16 v0, p0 │ - │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - if-nez v14, :cond_4 │ + if-nez v11, :cond_4 │ │ .line 103 │ - sget-object v14, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ - │ - new-instance v15, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v15}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v16, "Called with intent " │ + sget-object v11, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + new-instance v12, Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + invoke-direct {v12}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + const-string v13, "Called with intent " │ │ - move-result-object v15 │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - const-string v16, " but we don\'t know the service: this " │ + move-result-object v12 │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - const-string v16, "should never happen" │ + const-string v13, " but we don\'t know the service: this should never happen" │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - invoke-static {v14, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_0 │ │ .line 116 │ :cond_4 │ - move-object/from16 v0, p0 │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ - │ - invoke-virtual {v14}, Lorg/smc/inputmethod/indic/LatinIME;->resetSuggestMainDict()V │ + invoke-virtual {v11}, Lorg/smc/inputmethod/indic/LatinIME;->resetSuggestMainDict()V │ │ goto :goto_0 │ │ .line 117 │ :cond_5 │ - const-string v14, "com.android.inputmethod.dictionarypack.aosp.newdict" │ + const-string v11, "com.android.inputmethod.dictionarypack.aosp.newdict" │ │ - invoke-virtual {v1, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v11 │ │ - if-eqz v14, :cond_7 │ + if-eqz v11, :cond_7 │ │ .line 118 │ - move-object/from16 v0, p0 │ - │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - if-nez v14, :cond_6 │ + if-nez v11, :cond_6 │ │ .line 119 │ - sget-object v14, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ - │ - new-instance v15, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v15}, Ljava/lang/StringBuilder;->()V │ + sget-object v11, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ │ - const-string v16, "Called with intent " │ + new-instance v12, Ljava/lang/StringBuilder; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-direct {v12}, Ljava/lang/StringBuilder;->()V │ │ - move-result-object v15 │ + const-string v13, "Called with intent " │ │ - invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - const-string v16, " but we don\'t know the service: this " │ + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v12 │ │ - move-result-object v15 │ + const-string v13, " but we don\'t know the service: this should never happen" │ │ - const-string v16, "should never happen" │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + move-result-object v12 │ │ - move-result-object v15 │ + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + move-result-object v12 │ │ - move-result-object v15 │ - │ - invoke-static {v14, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto/16 :goto_0 │ │ .line 123 │ :cond_6 │ - move-object/from16 v0, p0 │ - │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - invoke-virtual {v14}, Lorg/smc/inputmethod/indic/LatinIME;->resetSuggestMainDict()V │ + invoke-virtual {v11}, Lorg/smc/inputmethod/indic/LatinIME;->resetSuggestMainDict()V │ │ goto/16 :goto_0 │ │ .line 124 │ :cond_7 │ - const-string v14, "com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" │ + const-string v11, "com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" │ │ - invoke-virtual {v1, v14}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v11 │ │ - if-eqz v14, :cond_0 │ + if-eqz v11, :cond_0 │ │ .line 125 │ - move-object/from16 v0, p0 │ + iget-object v11, p0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ │ - iget-object v14, v0, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->mService:Lorg/smc/inputmethod/indic/LatinIME; │ - │ - if-eqz v14, :cond_8 │ + if-eqz v11, :cond_8 │ │ .line 129 │ - sget-object v14, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ - │ - new-instance v15, Ljava/lang/StringBuilder; │ - │ - invoke-direct {v15}, Ljava/lang/StringBuilder;->()V │ - │ - const-string v16, "Called with intent " │ + sget-object v11, Lorg/smc/inputmethod/indic/DictionaryPackInstallBroadcastReceiver;->TAG:Ljava/lang/String; │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + new-instance v12, Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + invoke-direct {v12}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v15, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + const-string v13, "Called with intent " │ │ - move-result-object v15 │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - const-string v16, " but we have a reference to the " │ + move-result-object v12 │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v12, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - const-string v16, "service: this should never happen" │ + const-string v13, " but we have a reference to the service: this should never happen" │ │ - invoke-virtual/range {v15 .. v16}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v15 │ + move-result-object v12 │ │ - invoke-static {v14, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto/16 :goto_0 │ │ .line 135 │ :cond_8 │ - const-string v14, "client" │ + const-string v11, "client" │ │ + .line 136 │ move-object/from16 v0, p2 │ │ - invoke-virtual {v0, v14}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String; │ + invoke-virtual {v0, v11}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v13 │ + move-result-object v10 │ │ .line 137 │ - .local v13, "wantedClientId":Ljava/lang/String; │ - const v14, 0x7f0c002b │ + .local v10, "wantedClientId":Ljava/lang/String; │ + const v11, 0x7f0c002b │ │ move-object/from16 v0, p1 │ │ - invoke-virtual {v0, v14}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ + invoke-virtual {v0, v11}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v5 │ │ .line 138 │ - .local v8, "myClientId":Ljava/lang/String; │ - invoke-virtual {v13, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + .local v5, "myClientId":Ljava/lang/String; │ + invoke-virtual {v10, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v14 │ + move-result v11 │ │ - if-eqz v14, :cond_0 │ + if-eqz v11, :cond_0 │ │ .line 139 │ move-object/from16 v0, p1 │ │ - invoke-static {v0, v8}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->initializeClientRecordHelper(Landroid/content/Context;Ljava/lang/String;)V │ + invoke-static {v0, v5}, Lorg/smc/inputmethod/indic/BinaryDictionaryFileDumper;->initializeClientRecordHelper(Landroid/content/Context;Ljava/lang/String;)V │ │ goto/16 :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$10.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$word:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Lcom/android/inputmethod/latin/PrevWordsInfo;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 392 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$10;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$10;->val$prevWordsInfo:Lcom/android/inputmethod/latin/PrevWordsInfo; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$11.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$languageModelParams:Ljava/util/ArrayList; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Ljava/util/ArrayList;Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$AddMultipleDictionaryEntriesCallback;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 420 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$11;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$11;->val$languageModelParams:Ljava/util/ArrayList; │ │ @@ -86,26 +87,29 @@ │ │ move-result-object v1 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$11;->val$languageModelParams:Ljava/util/ArrayList; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$11;->val$languageModelParams:Ljava/util/ArrayList; │ │ + .line 429 │ invoke-virtual {v2}, Ljava/util/ArrayList;->size()I │ │ move-result v2 │ │ new-array v2, v2, [Lcom/android/inputmethod/latin/utils/LanguageModelParam; │ │ + .line 428 │ invoke-virtual {v0, v2}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, [Lcom/android/inputmethod/latin/utils/LanguageModelParam; │ │ + .line 427 │ invoke-virtual {v1, v0}, Lcom/android/inputmethod/latin/BinaryDictionary;->addMultipleDictionaryEntries([Lcom/android/inputmethod/latin/utils/LanguageModelParam;)V │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ .line 431 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$11;->val$callback:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$AddMultipleDictionaryEntriesCallback; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$12.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 601 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$12;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -134,23 +135,25 @@ │ │ if-eqz v0, :cond_3 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$12;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$12;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ + .line 615 │ # getter for: Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mBinaryDictionary:Lcom/android/inputmethod/latin/BinaryDictionary; │ invoke-static {v1}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->access$100(Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)Lcom/android/inputmethod/latin/BinaryDictionary; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lcom/android/inputmethod/latin/BinaryDictionary;->getFormatVersion()I │ │ move-result v1 │ │ + .line 614 │ # invokes: Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->matchesExpectedBinaryDictFormatVersionForThisType(I)Z │ invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->access$900(Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;I)Z │ │ move-result v0 │ │ if-nez v0, :cond_1 ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$14.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$countDownLatch:Ljava/util/concurrent/CountDownLatch; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Ljava/util/concurrent/CountDownLatch;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 653 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$14;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$14;->val$countDownLatch:Ljava/util/concurrent/CountDownLatch; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$15.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 675 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$15;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -148,14 +149,15 @@ │ const/4 v3, 0x0 │ │ .line 689 │ .local v3, "token":I │ :cond_0 │ iget-object v5, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$15;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ + .line 690 │ # getter for: Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mBinaryDictionary:Lcom/android/inputmethod/latin/BinaryDictionary; │ invoke-static {v5}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->access$100(Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)Lcom/android/inputmethod/latin/BinaryDictionary; │ │ move-result-object v5 │ │ invoke-virtual {v5, v3}, Lcom/android/inputmethod/latin/BinaryDictionary;->getNextWordProperty(I)Lcom/android/inputmethod/latin/BinaryDictionary$GetNextWordPropertyResult; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$1.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$task:Ljava/lang/Runnable; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Ljava/util/concurrent/Callable;Ljava/util/concurrent/locks/Lock;Ljava/lang/Runnable;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 182 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$1;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$1;->val$preCheckTask:Ljava/util/concurrent/Callable; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 210 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$2;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$4.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 269 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$4;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 238 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$3;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$6.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$word:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Lcom/android/inputmethod/latin/utils/DistracterFilter;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 308 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$6;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$6;->val$distracterFilter:Lcom/android/inputmethod/latin/utils/DistracterFilter; │ │ @@ -68,19 +69,21 @@ │ │ sget-object v1, Lcom/android/inputmethod/latin/PrevWordsInfo;->EMPTY_PREV_WORDS_INFO:Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$6;->val$word:Ljava/lang/String; │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$6;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ + .line 312 │ # getter for: Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mLocale:Ljava/util/Locale; │ invoke-static {v3}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->access$400(Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)Ljava/util/Locale; │ │ move-result-object v3 │ │ + .line 311 │ invoke-interface {v0, v1, v2, v3}, Lcom/android/inputmethod/latin/utils/DistracterFilter;->isDistracterToWordsInDictionaries(Lcom/android/inputmethod/latin/PrevWordsInfo;Ljava/lang/String;Ljava/util/Locale;)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const/4 v0, 0x1 ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$5.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$mindsBlockByGC:Z │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Z)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 282 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$5;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-boolean p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$5;->val$mindsBlockByGC:Z ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$13.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 635 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$13;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$7.smali │ @@ -34,14 +34,15 @@ │ │ .field final synthetic val$word:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Ljava/lang/String;ILjava/lang/String;IZZI)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 315 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$7;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$7;->val$word:Ljava/lang/String; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$8.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$word:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 342 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$8;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$8;->val$word:Ljava/lang/String; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary$9.smali │ @@ -28,14 +28,15 @@ │ │ .field final synthetic val$word:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;Lcom/android/inputmethod/latin/PrevWordsInfo;Ljava/lang/String;II)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ .prologue │ .line 364 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$9;->this$0:Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary$9;->val$prevWordsInfo:Lcom/android/inputmethod/latin/PrevWordsInfo; ├── smali/org/smc/inputmethod/indic/ExpandableBinaryDictionary.smali │ @@ -450,26 +450,28 @@ │ │ .prologue │ .line 263 │ new-instance v1, Lcom/android/inputmethod/latin/BinaryDictionary; │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mDictFile:Ljava/io/File; │ │ + .line 264 │ invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v2 │ │ const/4 v3, 0x1 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mLocale:Ljava/util/Locale; │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mDictType:Ljava/lang/String; │ │ const-wide/16 v6, 0x192 │ │ + .line 265 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->getHeaderAttributeMap()Ljava/util/Map; │ │ move-result-object v8 │ │ invoke-direct/range {v1 .. v8}, Lcom/android/inputmethod/latin/BinaryDictionary;->(Ljava/lang/String;ZLjava/util/Locale;Ljava/lang/String;JLjava/util/Map;)V │ │ iput-object v1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mBinaryDictionary:Lcom/android/inputmethod/latin/BinaryDictionary; │ @@ -492,14 +494,15 @@ │ :goto_0 │ return-object p2 │ │ .restart local p2 # "dictFile":Ljava/io/File; │ :cond_0 │ new-instance p2, Ljava/io/File; │ │ + .line 157 │ .end local p2 # "dictFile":Ljava/io/File; │ invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File; │ │ move-result-object v0 │ │ new-instance v1, Ljava/lang/StringBuilder; │ │ @@ -621,14 +624,15 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mBinaryDictionary:Lcom/android/inputmethod/latin/BinaryDictionary; │ │ + .line 551 │ invoke-virtual {v1}, Lcom/android/inputmethod/latin/BinaryDictionary;->getFormatVersion()I │ │ move-result v1 │ │ invoke-direct {p0, v1}, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->needsToMigrateDictionary(I)Z │ │ move-result v1 │ @@ -728,14 +732,15 @@ │ const/4 v6, 0x1 │ │ .line 257 │ new-instance v0, Lcom/android/inputmethod/latin/BinaryDictionary; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mDictFile:Ljava/io/File; │ │ + .line 258 │ invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v1 │ │ const-wide/16 v2, 0x0 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mDictFile:Ljava/io/File; │ @@ -1192,44 +1197,50 @@ │ invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 228 │ const-string v1, "version" │ │ sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ │ + .line 229 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v4 │ │ invoke-virtual {v2, v4, v5}, Ljava/util/concurrent/TimeUnit;->toSeconds(J)J │ │ move-result-wide v2 │ │ invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 228 │ invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 230 │ const-string v1, "MAX_UNIGRAM_COUNT" │ │ + .line 231 │ invoke-static {v6}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 230 │ invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 232 │ const-string v1, "MAX_BIGRAM_COUNT" │ │ + .line 233 │ invoke-static {v6}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 232 │ invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 234 │ return-object v0 │ .end method │ │ .method public getMaxFrequencyOfExactMatches(Ljava/lang/String;)I │ @@ -1471,14 +1482,15 @@ │ │ move-object v4, p4 │ │ move v5, p5 │ │ move-object/from16 v6, p6 │ │ + .line 454 │ invoke-virtual/range {v0 .. v6}, Lcom/android/inputmethod/latin/BinaryDictionary;->getSuggestions(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion;I[F)Ljava/util/ArrayList; │ │ move-result-object v9 │ │ .line 456 │ .local v9, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ iget-object v0, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mBinaryDictionary:Lcom/android/inputmethod/latin/BinaryDictionary; │ @@ -1504,21 +1516,15 @@ │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/ExpandableBinaryDictionary;->mDictName:Ljava/lang/String; │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ - const-string v2, ") is corrupted. " │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - const-string v2, "Remove and regenerate it." │ + const-string v2, ") is corrupted. Remove and regenerate it." │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; ├── smali/org/smc/inputmethod/indic/InputAttributes.smali │ @@ -88,14 +88,15 @@ │ .line 58 │ invoke-static {v6}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isPasswordInputType(I)Z │ │ move-result v10 │ │ if-nez v10, :cond_0 │ │ + .line 59 │ invoke-static {v6}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isVisiblePasswordInputType(I)Z │ │ move-result v10 │ │ if-eqz v10, :cond_4 │ │ :cond_0 │ @@ -165,15 +166,15 @@ │ │ .line 55 │ :cond_3 │ const/4 v6, 0x0 │ │ goto :goto_1 │ │ - .line 58 │ + .line 59 │ .restart local v5 # "inputClass":I │ .restart local v6 # "inputType":I │ :cond_4 │ const/4 v10, 0x0 │ │ goto :goto_2 │ │ @@ -201,14 +202,15 @@ │ │ const/4 v12, 0x2 │ │ new-array v12, v12, [Ljava/lang/Object; │ │ const/4 v13, 0x0 │ │ + .line 73 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v14 │ │ aput-object v14, v12, v13 │ │ const/4 v13, 0x1 │ @@ -219,14 +221,15 @@ │ │ invoke-static {v14}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v14 │ │ aput-object v14, v12, v13 │ │ + .line 72 │ invoke-static {v11, v12}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v11 │ │ invoke-static {v10, v11}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_3 │ @@ -281,14 +284,15 @@ │ .line 96 │ .local v1, "flagAutoComplete":Z │ :goto_8 │ iget-boolean v10, p0, Lorg/smc/inputmethod/indic/InputAttributes;->mIsPasswordField:Z │ │ if-nez v10, :cond_8 │ │ + .line 97 │ invoke-static {v9}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isEmailVariation(I)Z │ │ move-result v10 │ │ if-nez v10, :cond_8 │ │ const/16 v10, 0x10 │ @@ -324,24 +328,26 @@ │ iput-boolean v10, p0, Lorg/smc/inputmethod/indic/InputAttributes;->mShouldInsertSpacesAutomatically:Z │ │ .line 106 │ iget-boolean v10, p0, Lorg/smc/inputmethod/indic/InputAttributes;->mIsPasswordField:Z │ │ if-nez v10, :cond_9 │ │ + .line 107 │ invoke-static {v9}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->isEmailVariation(I)Z │ │ move-result v10 │ │ if-nez v10, :cond_9 │ │ const/16 v10, 0x10 │ │ if-eq v10, v9, :cond_9 │ │ + .line 109 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/InputAttributes;->hasNoMicrophoneKeyOption()Z │ │ move-result v10 │ │ if-eqz v10, :cond_12 │ │ :cond_9 │ @@ -452,29 +458,29 @@ │ .line 91 │ .restart local v2 # "flagAutoCorrect":Z │ :cond_f │ const/4 v1, 0x0 │ │ goto :goto_8 │ │ - .line 96 │ + .line 97 │ .restart local v1 # "flagAutoComplete":Z │ :cond_10 │ const/4 v8, 0x0 │ │ goto :goto_9 │ │ .line 102 │ .restart local v8 # "shouldSuppressSuggestions":Z │ :cond_11 │ const/4 v10, 0x0 │ │ goto :goto_a │ │ - .line 106 │ + .line 109 │ :cond_12 │ const/4 v7, 0x0 │ │ goto :goto_b │ │ .line 110 │ .restart local v7 # "noMicrophone":Z │ @@ -1269,28 +1275,30 @@ │ │ const/16 v0, 0x8 │ │ new-array v2, v0, [Ljava/lang/Object; │ │ const/4 v0, 0x0 │ │ + .line 276 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v3 │ │ invoke-virtual {v3}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v3 │ │ aput-object v3, v2, v0 │ │ const/4 v0, 0x1 │ │ iget v3, p0, Lorg/smc/inputmethod/indic/InputAttributes;->mInputType:I │ │ + .line 277 │ invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v3 │ │ aput-object v3, v2, v0 │ │ const/4 v3, 0x2 │ @@ -1350,20 +1358,22 @@ │ │ const/4 v0, 0x7 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/InputAttributes;->mTargetApplicationPackageName:Ljava/lang/String; │ │ aput-object v3, v2, v0 │ │ + .line 275 │ invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v0 │ │ return-object v0 │ │ + .line 277 │ :cond_0 │ const-string v0, "" │ │ goto :goto_0 │ │ :cond_1 │ const-string v0, "" ├── smali/org/smc/inputmethod/indic/InputView$MotionEventForwarder.smali │ @@ -119,14 +119,15 @@ │ │ move-result v1 │ │ if-nez v1, :cond_0 │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/InputView$MotionEventForwarder;->mReceiverView:Landroid/view/View; │ │ + .line 152 │ invoke-virtual {v1}, Landroid/view/View;->getVisibility()I │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ .line 168 ├── smali/org/smc/inputmethod/indic/InputView.smali │ @@ -71,14 +71,15 @@ │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/InputView;->mMainKeyboardView:Lcom/android/inputmethod/keyboard/MainKeyboardView; │ │ + .line 61 │ invoke-virtual {v0}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->isShowingMoreKeysPanel()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ .line 64 │ @@ -99,14 +100,15 @@ │ .method protected onFinishInflate()V │ .locals 3 │ │ .prologue │ .line 45 │ const v1, 0x7f100076 │ │ + .line 46 │ invoke-virtual {p0, v1}, Lorg/smc/inputmethod/indic/InputView;->findViewById(I)Landroid/view/View; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ .line 47 ├── smali/org/smc/inputmethod/indic/LatinIME$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/LatinIME;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/LatinIME; │ │ .prologue │ .line 144 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/LatinIME$1;->this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/LatinIME$3.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/LatinIME;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/LatinIME; │ │ .prologue │ .line 1752 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/LatinIME$3;->this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ invoke-direct {p0}, Landroid/content/BroadcastReceiver;->()V ├── smali/org/smc/inputmethod/indic/LatinIME$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/LatinIME;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/LatinIME; │ │ .prologue │ .line 797 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/LatinIME$2;->this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/LatinIME$4.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$languageSelectionTitle:Ljava/lang/CharSequence; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/LatinIME;Ljava/lang/CharSequence;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/LatinIME; │ │ .prologue │ .line 1789 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/LatinIME$4;->this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/LatinIME$4;->val$languageSelectionTitle:Ljava/lang/CharSequence; │ │ @@ -56,25 +57,27 @@ │ :goto_0 │ return-void │ │ .line 1795 │ :pswitch_0 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME$4;->this$0:Lorg/smc/inputmethod/indic/LatinIME; │ │ + .line 1796 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ invoke-static {v1}, Lorg/smc/inputmethod/indic/LatinIME;->access$1200(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodIdOfThisIme()Ljava/lang/String; │ │ move-result-object v1 │ │ const/high16 v2, 0x14200000 │ │ + .line 1795 │ invoke-static {v1, v2}, Lcom/android/inputmethod/latin/utils/IntentUtils;->getInputLanguageSelectionIntent(Ljava/lang/String;I)Landroid/content/Intent; │ │ move-result-object v0 │ │ .line 1800 │ .local v0, "intent":Landroid/content/Intent; │ const-string v1, "android.intent.extra.TITLE" ├── smali/org/smc/inputmethod/indic/LatinIME$SubtypeState.smali │ @@ -53,14 +53,15 @@ │ │ .prologue │ .line 495 │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; │ │ move-result-object v3 │ │ + .line 496 │ invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodManager;->getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v0 │ │ .line 497 │ .local v0, "currentSubtype":Landroid/view/inputmethod/InputMethodSubtype; │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME$SubtypeState;->mLastActiveSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ @@ -81,20 +82,22 @@ │ │ iput-boolean v3, p0, Lorg/smc/inputmethod/indic/LatinIME$SubtypeState;->mCurrentSubtypeHasBeenUsed:Z │ │ .line 503 │ :cond_0 │ if-eqz v1, :cond_1 │ │ + .line 504 │ invoke-virtual {p2, v2}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->checkIfSubtypeBelongsToThisImeAndEnabled(Landroid/view/inputmethod/InputMethodSubtype;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ + .line 505 │ invoke-virtual {v0, v2}, Landroid/view/inputmethod/InputMethodSubtype;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-nez v3, :cond_1 │ │ .line 506 ├── smali/org/smc/inputmethod/indic/LatinIME$UIHandler.smali │ @@ -222,44 +222,48 @@ │ .line 237 │ :pswitch_1 │ # invokes: Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$200(Lorg/smc/inputmethod/indic/LatinIME;)I │ │ move-result v4 │ │ + .line 238 │ # invokes: Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$300(Lorg/smc/inputmethod/indic/LatinIME;)I │ │ move-result v5 │ │ + .line 237 │ invoke-virtual {v3, v4, v5}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ goto :goto_0 │ │ .line 232 │ :pswitch_2 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->cancelUpdateSuggestionStrip()V │ │ .line 233 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mInputLogic:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$100(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ move-result-object v4 │ │ + .line 234 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$000(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/settings/Settings; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ move-result-object v5 │ │ iget v6, p1, Landroid/os/Message;->arg1:I │ │ + .line 233 │ invoke-virtual {v4, v5, v6}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->performUpdateSuggestionStripSync(Lorg/smc/inputmethod/indic/settings/SettingsValues;I)V │ │ goto :goto_0 │ │ .line 241 │ :pswitch_3 │ iget v4, p1, Landroid/os/Message;->arg1:I │ @@ -302,14 +306,15 @@ │ .line 250 │ :pswitch_4 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mInputLogic:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$100(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ move-result-object v4 │ │ + .line 251 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$000(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/settings/Settings; │ │ move-result-object v7 │ │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ @@ -318,25 +323,28 @@ │ iget v8, p1, Landroid/os/Message;->arg1:I │ │ if-ne v8, v5, :cond_4 │ │ :goto_2 │ iget-object v6, v0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 253 │ invoke-virtual {v6}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getCurrentKeyboardScriptId()I │ │ move-result v6 │ │ + .line 250 │ invoke-virtual {v4, v7, v5, v6}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->restartSuggestionsOnWordTouchedByCursor(Lorg/smc/inputmethod/indic/settings/SettingsValues;ZI)V │ │ goto :goto_0 │ │ :cond_4 │ move v5, v6 │ │ + .line 251 │ goto :goto_2 │ │ .line 258 │ :pswitch_5 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->postWaitForDictionaryLoad()V │ │ .line 259 │ @@ -348,14 +356,15 @@ │ .line 262 │ :pswitch_6 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mInputLogic:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$100(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ move-result-object v5 │ │ + .line 263 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$000(Lorg/smc/inputmethod/indic/LatinIME;)Lorg/smc/inputmethod/indic/settings/Settings; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ @@ -363,14 +372,15 @@ │ │ iget-object v4, p1, Landroid/os/Message;->obj:Ljava/lang/Object; │ │ check-cast v4, Lorg/smc/inputmethod/indic/SuggestedWords; │ │ iget-object v7, v0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 262 │ invoke-virtual {v5, v6, v4, v7}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->onUpdateTailBatchInputCompleted(Lorg/smc/inputmethod/indic/settings/SettingsValues;Lorg/smc/inputmethod/indic/SuggestedWords;Lcom/android/inputmethod/keyboard/KeyboardSwitcher;)V │ │ goto :goto_0 │ │ .line 267 │ :pswitch_7 │ # getter for: Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ @@ -405,24 +415,27 @@ │ .line 273 │ iget-object v4, v0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentInputEditorInfo()Landroid/view/inputmethod/EditorInfo; │ │ move-result-object v5 │ │ + .line 274 │ # invokes: Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$200(Lorg/smc/inputmethod/indic/LatinIME;)I │ │ move-result v6 │ │ + .line 275 │ # invokes: Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ invoke-static {v0}, Lorg/smc/inputmethod/indic/LatinIME;->access$300(Lorg/smc/inputmethod/indic/LatinIME;)I │ │ move-result v7 │ │ + .line 273 │ invoke-virtual {v4, v5, v1, v6, v7}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->loadKeyboard(Landroid/view/inputmethod/EditorInfo;Lorg/smc/inputmethod/indic/settings/SettingsValues;II)V │ │ goto/16 :goto_0 │ │ :cond_5 │ move v5, v6 │ │ @@ -716,14 +729,15 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->mAppliedEditorInfo:Landroid/view/inputmethod/EditorInfo; │ │ + .line 439 │ invoke-static {p1, v1}, Lcom/android/inputmethod/keyboard/KeyboardId;->equivalentEditorInfoForKeyboard(Landroid/view/inputmethod/EditorInfo;Landroid/view/inputmethod/EditorInfo;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ .line 441 │ @@ -1041,14 +1055,15 @@ │ :goto_0 │ const/4 v1, 0x0 │ │ invoke-virtual {p0, v2, v0, v1, p1}, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message; │ │ move-result-object v1 │ │ + .line 365 │ invoke-virtual {v1}, Landroid/os/Message;->sendToTarget()V │ │ .line 366 │ return-void │ │ .line 361 │ .end local v0 # "arg1":I │ @@ -1071,14 +1086,15 @@ │ invoke-virtual {p0, v1}, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->removeMessages(I)V │ │ .line 370 │ invoke-virtual {p0, v1, v0, v0, p1}, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message; │ │ move-result-object v0 │ │ + .line 371 │ invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V │ │ .line 372 │ return-void │ .end method │ │ .method public showTailBatchInputResult(Lorg/smc/inputmethod/indic/SuggestedWords;)V ├── smali/org/smc/inputmethod/indic/LatinIME.smali │ @@ -245,15 +245,15 @@ │ .line 524 │ new-instance v0, Lorg/smc/inputmethod/indic/SpecialKeyDetector; │ │ invoke-direct {v0, p0}, Lorg/smc/inputmethod/indic/SpecialKeyDetector;->(Landroid/content/Context;)V │ │ iput-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSpecialKeyDetector:Lorg/smc/inputmethod/indic/SpecialKeyDetector; │ │ - .line 525 │ + .line 526 │ invoke-static {p0}, Lorg/smc/inputmethod/compat/InputMethodServiceCompatUtils;->enableHardwareAcceleration(Landroid/inputmethodservice/InputMethodService;)Z │ │ move-result v0 │ │ iput-boolean v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mIsHardwareAcceleratedDrawingEnabled:Z │ │ .line 527 │ @@ -753,15 +753,15 @@ │ │ .line 1670 │ :cond_2 │ rem-int/lit8 v2, p2, 0x2 │ │ if-eqz v2, :cond_0 │ │ - .line 1674 │ + .line 1675 │ :cond_3 │ invoke-static {}, Lorg/smc/inputmethod/indic/AudioAndHapticFeedbackManager;->getInstance()Lorg/smc/inputmethod/indic/AudioAndHapticFeedbackManager; │ │ move-result-object v0 │ │ .line 1676 │ .local v0, "feedbackManager":Lorg/smc/inputmethod/indic/AudioAndHapticFeedbackManager; │ @@ -1057,14 +1057,15 @@ │ │ move-object/from16 v0, p1 │ │ iget v0, v0, Landroid/view/inputmethod/EditorInfo;->inputType:I │ │ move/from16 v16, v0 │ │ + .line 878 │ invoke-static/range {v16 .. v16}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v16 │ │ aput-object v16, v14, v15 │ │ const/4 v15, 0x1 │ @@ -1077,26 +1078,28 @@ │ │ invoke-static/range {v16 .. v16}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v16 │ │ aput-object v16, v14, v15 │ │ + .line 877 │ invoke-static {v13, v14}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v13 │ │ invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v12 │ │ invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v12 │ │ + .line 876 │ invoke-static {v11, v12}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 879 │ sget-object v12, Lorg/smc/inputmethod/indic/LatinIME;->TAG:Ljava/lang/String; │ │ new-instance v11, Ljava/lang/StringBuilder; │ │ @@ -1502,14 +1505,15 @@ │ │ .line 967 │ .end local v3 # "currentLocale":Ljava/util/Locale; │ .local v8, "needToCallLoadKeyboardLater":Z │ :goto_6 │ if-nez v6, :cond_9 │ │ + .line 968 │ invoke-virtual/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getResources()Landroid/content/res/Resources; │ │ move-result-object v11 │ │ invoke-virtual {v11}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; │ │ move-result-object v11 │ @@ -1552,18 +1556,20 @@ │ │ .line 980 │ :cond_b │ invoke-direct/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v11 │ │ + .line 981 │ invoke-direct/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v12 │ │ + .line 980 │ move-object/from16 v0, p1 │ │ invoke-virtual {v10, v0, v4, v11, v12}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->loadKeyboard(Landroid/view/inputmethod/EditorInfo;Lorg/smc/inputmethod/indic/settings/SettingsValues;II)V │ │ .line 982 │ if-eqz v8, :cond_c │ │ @@ -1583,18 +1589,20 @@ │ invoke-virtual {v11}, Lorg/smc/inputmethod/indic/LatinIME$UIHandler;->cancelUpdateSuggestionStrip()V │ │ .line 1005 │ move-object/from16 v0, p0 │ │ iget-object v11, v0, Lorg/smc/inputmethod/indic/LatinIME;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ + .line 1006 │ invoke-virtual {v11}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->hasInitializedMainDictionary()Z │ │ move-result v11 │ │ + .line 1005 │ invoke-virtual {v7, v11}, Lcom/android/inputmethod/keyboard/MainKeyboardView;->setMainDictionaryAvailability(Z)V │ │ .line 1007 │ iget-boolean v11, v4, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mKeyPreviewPopupOn:Z │ │ iget v12, v4, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mKeyPreviewPopupDismissDelay:I │ │ @@ -1706,29 +1714,33 @@ │ if-eqz p2, :cond_c │ │ .line 990 │ invoke-direct/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v11 │ │ + .line 991 │ invoke-direct/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v12 │ │ + .line 990 │ invoke-virtual {v10, v11, v12}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->resetKeyboardStateToAlphabet(II)V │ │ .line 996 │ invoke-direct/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v11 │ │ + .line 997 │ invoke-direct/range {p0 .. p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v12 │ │ + .line 996 │ invoke-virtual {v10, v11, v12}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ goto :goto_7 │ .end method │ │ .method private refreshPersonalizationDictionarySession(Lorg/smc/inputmethod/indic/settings/SettingsValues;)V │ .locals 4 │ @@ -1738,18 +1750,20 @@ │ .line 628 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mPersonalizationDictionaryUpdater:Lorg/smc/inputmethod/indic/personalization/PersonalizationDictionaryUpdater; │ │ iget-boolean v2, p1, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mUsePersonalizedDicts:Z │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSubtypeSwitcher:Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ + .line 630 │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes()Z │ │ move-result v3 │ │ + .line 628 │ invoke-virtual {v1, v2, v3}, Lorg/smc/inputmethod/indic/personalization/PersonalizationDictionaryUpdater;->onLoadSettings(ZZ)V │ │ .line 631 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mContextualDictionaryUpdater:Lorg/smc/inputmethod/indic/personalization/ContextualDictionaryUpdater; │ │ iget-boolean v2, p1, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mUsePersonalizedDicts:Z │ │ @@ -1938,27 +1952,28 @@ │ :cond_1 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME;->onEvaluateInputViewShown()Z │ │ move-result v11 │ │ if-eqz v11, :cond_0 │ │ - .line 1507 │ + .line 1508 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/ImportantNoticeUtils;->shouldShowImportantNotice(Landroid/content/Context;)Z │ │ move-result v5 │ │ .line 1509 │ .local v5, "shouldShowImportantNotice":Z │ iget-object v11, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mInputAttributes:Lorg/smc/inputmethod/indic/InputAttributes; │ │ iget-boolean v11, v11, Lorg/smc/inputmethod/indic/InputAttributes;->mShouldShowSuggestions:Z │ │ if-eqz v11, :cond_7 │ │ + .line 1511 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isSuggestionsEnabledPerUserSettings()Z │ │ move-result v11 │ │ if-eqz v11, :cond_7 │ │ move v6, v9 │ @@ -1970,14 +1985,15 @@ │ │ iget-boolean v11, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mShowsVoiceInputKey:Z │ │ if-nez v11, :cond_2 │ │ if-nez v6, :cond_2 │ │ + .line 1515 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isApplicationSpecifiedCompletionsOn()Z │ │ move-result v11 │ │ if-eqz v11, :cond_8 │ │ :cond_2 │ @@ -2006,21 +2022,22 @@ │ move-result v12 │ │ invoke-virtual {v11, v7, v12}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->updateVisibility(ZZ)V │ │ .line 1519 │ if-eqz v7, :cond_0 │ │ - .line 1523 │ + .line 1524 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isApplicationSpecifiedCompletionsOn()Z │ │ move-result v11 │ │ if-eqz v11, :cond_a │ │ + .line 1525 │ invoke-virtual {p1}, Lorg/smc/inputmethod/indic/SuggestedWords;->isEmpty()Z │ │ move-result v11 │ │ if-eqz v11, :cond_a │ │ move v2, v9 │ @@ -2028,14 +2045,15 @@ │ .line 1526 │ .local v2, "isEmptyApplicationSpecifiedCompletions":Z │ :goto_4 │ sget-object v11, Lorg/smc/inputmethod/indic/SuggestedWords;->EMPTY:Lorg/smc/inputmethod/indic/SuggestedWords; │ │ if-eq v11, p1, :cond_3 │ │ + .line 1527 │ invoke-virtual {p1}, Lorg/smc/inputmethod/indic/SuggestedWords;->isPunctuationSuggestions()Z │ │ move-result v11 │ │ if-nez v11, :cond_3 │ │ if-eqz v2, :cond_b │ @@ -2084,79 +2102,82 @@ │ :cond_5 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isSuggestionsEnabledPerUserSettings()Z │ │ move-result v9 │ │ if-nez v9, :cond_6 │ │ + .line 1540 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isApplicationSpecifiedCompletionsOn()Z │ │ move-result v9 │ │ if-nez v9, :cond_6 │ │ if-eqz v3, :cond_0 │ │ .line 1543 │ :cond_6 │ iget-object v9, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSuggestionStripView:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ iget-object v10, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSubtypeSwitcher:Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ + .line 1544 │ invoke-virtual {v10}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->getCurrentSubtype()Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v10 │ │ invoke-static {v10}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->isRtlLanguage(Landroid/view/inputmethod/InputMethodSubtype;)Z │ │ move-result v10 │ │ + .line 1543 │ invoke-virtual {v9, p1, v10}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->setSuggestions(Lorg/smc/inputmethod/indic/SuggestedWords;Z)V │ │ goto/16 :goto_0 │ │ .end local v1 # "isBeginningOfSentencePrediction":Z │ .end local v2 # "isEmptyApplicationSpecifiedCompletions":Z │ .end local v3 # "noSuggestionsFromDictionaries":Z │ .end local v4 # "noSuggestionsToOverrideImportantNotice":Z │ .end local v6 # "shouldShowSuggestionCandidates":Z │ .end local v7 # "shouldShowSuggestionsStrip":Z │ .end local v8 # "shouldShowSuggestionsStripUnlessPassword":Z │ :cond_7 │ move v6, v10 │ │ - .line 1509 │ + .line 1511 │ goto :goto_1 │ │ .restart local v6 # "shouldShowSuggestionCandidates":Z │ :cond_8 │ move v8, v10 │ │ - .line 1512 │ + .line 1515 │ goto :goto_2 │ │ .restart local v8 # "shouldShowSuggestionsStripUnlessPassword":Z │ :cond_9 │ move v7, v10 │ │ .line 1516 │ goto :goto_3 │ │ .restart local v7 # "shouldShowSuggestionsStrip":Z │ :cond_a │ move v2, v10 │ │ - .line 1523 │ + .line 1525 │ goto :goto_4 │ │ .restart local v2 # "isEmptyApplicationSpecifiedCompletions":Z │ :cond_b │ move v3, v10 │ │ - .line 1526 │ + .line 1527 │ goto :goto_5 │ │ .restart local v3 # "noSuggestionsFromDictionaries":Z │ :cond_c │ move v1, v10 │ │ .line 1529 │ @@ -2292,14 +2313,15 @@ │ │ const/4 v6, 0x0 │ │ aput-object v3, v2, v6 │ │ const-class v6, Lorg/smc/inputmethod/indic/settings/SettingsActivity; │ │ + .line 1787 │ invoke-static {p0, v6}, Lcom/android/inputmethod/latin/utils/ApplicationUtils;->getActivityTitleResId(Landroid/content/Context;Ljava/lang/Class;)I │ │ move-result v6 │ │ invoke-virtual {p0, v6}, Lorg/smc/inputmethod/indic/LatinIME;->getString(I)Ljava/lang/String; │ │ move-result-object v6 │ @@ -2312,14 +2334,15 @@ │ │ invoke-direct {v4, p0, v3}, Lorg/smc/inputmethod/indic/LatinIME$4;->(Lorg/smc/inputmethod/indic/LatinIME;Ljava/lang/CharSequence;)V │ │ .line 1809 │ .local v4, "listener":Landroid/content/DialogInterface$OnClickListener; │ new-instance v0, Landroid/app/AlertDialog$Builder; │ │ + .line 1810 │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/DialogUtils;->getPlatformDialogThemeContext(Landroid/content/Context;)Landroid/content/Context; │ │ move-result-object v6 │ │ invoke-direct {v0, v6}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ .line 1811 │ @@ -2418,18 +2441,20 @@ │ :pswitch_1 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v2 │ │ + .line 1636 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v3 │ │ + .line 1635 │ invoke-virtual {v1, v2, v3}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ goto :goto_0 │ │ .line 1645 │ :cond_2 │ iget-object v1, p1, Lorg/smc/inputmethod/event/InputTransaction;->mEvent:Lorg/smc/inputmethod/event/Event; │ @@ -2582,14 +2607,15 @@ │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ const-string v3, "\nContext : " │ │ + .line 1883 │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 1884 │ @@ -2943,24 +2969,26 @@ │ │ invoke-virtual {v7}, Lcom/android/inputmethod/keyboard/Keyboard;->getProximityInfo()Lcom/android/inputmethod/keyboard/ProximityInfo; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 1557 │ invoke-virtual {v3}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v3 │ │ move v4, p1 │ │ move v5, p2 │ │ move-object v6, p3 │ │ + .line 1556 │ invoke-virtual/range {v0 .. v6}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getSuggestedWords(Lorg/smc/inputmethod/indic/settings/SettingsValues;Lcom/android/inputmethod/keyboard/ProximityInfo;IIILorg/smc/inputmethod/indic/Suggest$OnGetSuggestedWordsCallback;)V │ │ goto :goto_0 │ .end method │ │ .method getSuggestedWordsForTest()Lorg/smc/inputmethod/indic/SuggestedWords; │ .locals 1 │ @@ -3102,22 +3130,24 @@ │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ move-result-object v2 │ │ + .line 1619 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v3 │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v4 │ │ + .line 1618 │ invoke-virtual {v0, v1, v2, v3, v4}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->loadKeyboard(Landroid/view/inputmethod/EditorInfo;Lorg/smc/inputmethod/indic/settings/SettingsValues;II)V │ │ .line 1621 │ :cond_0 │ return-void │ .end method │ │ @@ -3140,14 +3170,15 @@ │ │ move-result-object v1 │ │ .line 609 │ .local v1, "editorInfo":Landroid/view/inputmethod/EditorInfo; │ new-instance v2, Lorg/smc/inputmethod/indic/InputAttributes; │ │ + .line 610 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME;->isFullscreenMode()Z │ │ move-result v4 │ │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getPackageName()Ljava/lang/String; │ │ move-result-object v5 │ @@ -3326,32 +3357,36 @@ │ │ .line 1395 │ .local v3, "event":Lorg/smc/inputmethod/event/Event; │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mInputLogic:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ │ + .line 1396 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ move-result-object v2 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 1397 │ invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v4 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 1398 │ invoke-virtual {v5}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getCurrentKeyboardScriptId()I │ │ move-result v5 │ │ iget-object v6, p0, Lorg/smc/inputmethod/indic/LatinIME;->mHandler:Lorg/smc/inputmethod/indic/LatinIME$UIHandler; │ │ + .line 1396 │ invoke-virtual/range {v1 .. v6}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->onCodeInput(Lorg/smc/inputmethod/indic/settings/SettingsValues;Lorg/smc/inputmethod/event/Event;IILorg/smc/inputmethod/indic/LatinIME$UIHandler;)Lorg/smc/inputmethod/event/InputTransaction; │ │ move-result-object v8 │ │ .line 1399 │ .local v8, "completeInputTransaction":Lorg/smc/inputmethod/event/InputTransaction; │ invoke-direct {p0, v8}, Lorg/smc/inputmethod/indic/LatinIME;->updateStateAfterInputTransaction(Lorg/smc/inputmethod/event/InputTransaction;)V │ @@ -3359,18 +3394,20 @@ │ .line 1400 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v2 │ │ + .line 1401 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v4 │ │ + .line 1400 │ invoke-virtual {v1, p1, v2, v4}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->onCodeInput(III)V │ │ .line 1402 │ return-void │ │ .line 1385 │ .end local v3 # "event":Lorg/smc/inputmethod/event/Event; │ @@ -3473,22 +3510,24 @@ │ │ move-result v11 │ │ if-nez v11, :cond_4 │ │ iget-object v11, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSuggestionStripView:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ + .line 1182 │ invoke-virtual {v11}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->getVisibility()I │ │ move-result v11 │ │ if-nez v11, :cond_4 │ │ iget-object v11, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSuggestionStripView:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ + .line 1183 │ invoke-virtual {v11}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->getHeight()I │ │ move-result v3 │ │ .line 1184 │ .local v3, "suggestionsHeight":I │ :goto_1 │ @@ -3564,15 +3603,15 @@ │ goto :goto_0 │ │ .end local v3 # "suggestionsHeight":I │ .end local v9 # "visibleTopY":I │ :cond_4 │ move v3, v10 │ │ - .line 1181 │ + .line 1183 │ goto :goto_1 │ │ .restart local v3 # "suggestionsHeight":I │ .restart local v5 # "touchLeft":I │ .restart local v9 # "visibleTopY":I │ :cond_5 │ move v7, v9 │ @@ -3857,18 +3896,20 @@ │ │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getCombiningRulesExtraValue(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ │ + .line 849 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ move-result-object v2 │ │ + .line 848 │ invoke-virtual {v0, v1, v2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->onSubtypeChanged(Ljava/lang/String;Lorg/smc/inputmethod/indic/settings/SettingsValues;)V │ │ .line 850 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME;->loadKeyboard()V │ │ .line 851 │ return-void │ @@ -4081,15 +4122,15 @@ │ if-nez p1, :cond_2 │ │ .line 1149 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/LatinIME;->setNeutralSuggestionStrip()V │ │ goto :goto_1 │ │ - .line 1153 │ + .line 1154 │ :cond_2 │ invoke-static {p1}, Lorg/smc/inputmethod/indic/SuggestedWords;->getFromApplicationSpecifiedCompletions([Landroid/view/inputmethod/CompletionInfo;)Ljava/util/ArrayList; │ │ move-result-object v1 │ │ .line 1156 │ .local v1, "applicationSuggestedWords":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ @@ -4309,18 +4350,20 @@ │ .line 1468 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v1 │ │ + .line 1469 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v2 │ │ + .line 1468 │ invoke-virtual {v0, v1, v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->onFinishSlidingInput(II)V │ │ .line 1470 │ return-void │ .end method │ │ .method public onKeyDown(ILandroid/view/KeyEvent;)Z │ @@ -4371,18 +4414,20 @@ │ .line 1688 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v1 │ │ + .line 1689 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v2 │ │ + .line 1688 │ invoke-virtual {v0, p1, p3, v1, v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->onPressKey(IZII)V │ │ .line 1690 │ invoke-direct {p0, p1, p2}, Lorg/smc/inputmethod/indic/LatinIME;->hapticAndAudioFeedback(II)V │ │ .line 1691 │ return-void │ @@ -4397,18 +4442,20 @@ │ .line 1697 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v1 │ │ + .line 1698 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v2 │ │ + .line 1697 │ invoke-virtual {v0, p1, p2, v1, v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->onReleaseKey(IZII)V │ │ .line 1699 │ return-void │ .end method │ │ .method public onStartBatchInput()V │ @@ -4478,26 +4525,29 @@ │ │ .line 1425 │ .local v1, "event":Lorg/smc/inputmethod/event/Event; │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME;->mInputLogic:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ │ + .line 1426 │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ move-result-object v3 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 1427 │ invoke-virtual {v4}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v4 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/LatinIME;->mHandler:Lorg/smc/inputmethod/indic/LatinIME$UIHandler; │ │ + .line 1426 │ invoke-virtual {v2, v3, v1, v4, v5}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->onTextInput(Lorg/smc/inputmethod/indic/settings/SettingsValues;Lorg/smc/inputmethod/event/Event;ILorg/smc/inputmethod/indic/LatinIME$UIHandler;)Lorg/smc/inputmethod/event/InputTransaction; │ │ move-result-object v0 │ │ .line 1428 │ .local v0, "completeInputTransaction":Lorg/smc/inputmethod/event/InputTransaction; │ invoke-direct {p0, v0}, Lorg/smc/inputmethod/indic/LatinIME;->updateStateAfterInputTransaction(Lorg/smc/inputmethod/event/InputTransaction;)V │ @@ -4507,18 +4557,20 @@ │ │ const/4 v3, -0x4 │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v4 │ │ + .line 1430 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v5 │ │ + .line 1429 │ invoke-virtual {v2, v3, v4, v5}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->onCodeInput(III)V │ │ .line 1431 │ return-void │ .end method │ │ .method public onUpdateBatchInput(Lorg/smc/inputmethod/indic/InputPointers;)V │ @@ -4738,31 +4790,34 @@ │ │ move v2, p2 │ │ move v3, p3 │ │ move v4, p4 │ │ + .line 1069 │ invoke-virtual/range {v0 .. v5}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->onUpdateSelection(IIIILorg/smc/inputmethod/indic/settings/SettingsValues;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ .line 1071 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentAutoCapsState()I │ │ move-result v1 │ │ + .line 1072 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/LatinIME;->getCurrentRecapitalizeState()I │ │ move-result v2 │ │ + .line 1071 │ invoke-virtual {v0, v1, v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ goto :goto_0 │ .end method │ │ .method public onUserAcknowledgmentOfImportantNoticeDialog(I)V │ .locals 0 │ @@ -4808,34 +4863,38 @@ │ │ .prologue │ .line 1579 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mInputLogic:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mSettings:Lorg/smc/inputmethod/indic/settings/Settings; │ │ + .line 1580 │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/settings/Settings;->getCurrent()Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 1581 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v3 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/LatinIME;->mKeyboardSwitcher:Lcom/android/inputmethod/keyboard/KeyboardSwitcher; │ │ + .line 1582 │ invoke-virtual {v2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getCurrentKeyboardScriptId()I │ │ move-result v4 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/LatinIME;->mHandler:Lorg/smc/inputmethod/indic/LatinIME$UIHandler; │ │ move-object v2, p1 │ │ + .line 1579 │ invoke-virtual/range {v0 .. v5}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->onPickSuggestionManually(Lorg/smc/inputmethod/indic/settings/SettingsValues;Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;IILorg/smc/inputmethod/indic/LatinIME$UIHandler;)Lorg/smc/inputmethod/event/InputTransaction; │ │ move-result-object v6 │ │ .line 1584 │ .local v6, "completeInputTransaction":Lorg/smc/inputmethod/event/InputTransaction; │ invoke-direct {p0, v6}, Lorg/smc/inputmethod/indic/LatinIME;->updateStateAfterInputTransaction(Lorg/smc/inputmethod/event/InputTransaction;)V │ @@ -4923,28 +4982,30 @@ │ │ .line 699 │ .local v7, "settingsValues":Lorg/smc/inputmethod/indic/settings/SettingsValues; │ iget-object v0, p0, Lorg/smc/inputmethod/indic/LatinIME;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/LatinIME;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ + .line 700 │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getLocale()Ljava/util/Locale; │ │ move-result-object v2 │ │ iget-boolean v3, v7, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mUseContactsDict:Z │ │ iget-boolean v4, v7, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mUsePersonalizedDicts:Z │ │ const/4 v5, 0x1 │ │ move-object v1, p0 │ │ move-object v6, p0 │ │ + .line 699 │ invoke-virtual/range {v0 .. v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->resetDictionaries(Landroid/content/Context;Ljava/util/Locale;ZZZLorg/smc/inputmethod/indic/DictionaryFacilitator$DictionaryInitializationListener;)V │ │ .line 702 │ return-void │ .end method │ │ .method public setCandidatesView(Landroid/view/View;)V │ @@ -5266,14 +5327,15 @@ │ │ .method public showSuggestionStrip(Lorg/smc/inputmethod/indic/SuggestedWords;)V │ .locals 3 │ .param p1, "sourceSuggestedWords" # Lorg/smc/inputmethod/indic/SuggestedWords; │ │ .prologue │ .line 1562 │ + .line 1563 │ invoke-virtual {p1}, Lorg/smc/inputmethod/indic/SuggestedWords;->isEmpty()Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ sget-object v0, Lorg/smc/inputmethod/indic/SuggestedWords;->EMPTY:Lorg/smc/inputmethod/indic/SuggestedWords; │ @@ -5301,15 +5363,15 @@ │ .line 1573 │ return-void │ │ .end local v0 # "suggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ :cond_0 │ move-object v0, p1 │ │ - .line 1562 │ + .line 1563 │ goto :goto_0 │ │ .line 1567 │ .restart local v0 # "suggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ :cond_1 │ invoke-direct {p0, v0}, Lorg/smc/inputmethod/indic/LatinIME;->setSuggestedWords(Lorg/smc/inputmethod/indic/SuggestedWords;)V ├── smali/org/smc/inputmethod/indic/PunctuationSuggestions.smali │ @@ -61,60 +61,55 @@ │ │ invoke-direct/range {v0 .. v6}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->(Ljava/lang/String;IILorg/smc/inputmethod/indic/Dictionary;II)V │ │ return-object v0 │ .end method │ │ .method public static newPunctuationSuggestions([Ljava/lang/String;)Lorg/smc/inputmethod/indic/PunctuationSuggestions; │ - .locals 6 │ + .locals 5 │ .param p0, "punctuationSpecs" # [Ljava/lang/String; │ │ .prologue │ .line 52 │ - new-instance v4, Ljava/util/ArrayList; │ + new-instance v1, Ljava/util/ArrayList; │ │ - invoke-direct {v4}, Ljava/util/ArrayList;->()V │ + invoke-direct {v1}, Ljava/util/ArrayList;->()V │ │ .line 53 │ - .local v4, "puncuationsList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v0, p0 │ + .local v1, "puncuationsList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v3, p0 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v2, v0 │ + const/4 v2, 0x0 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ - │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v2, v3, :cond_0 │ │ - aget-object v3, v0, v1 │ + aget-object v0, p0, v2 │ │ .line 54 │ - .local v3, "puncSpec":Ljava/lang/String; │ - invoke-static {v3}, Lorg/smc/inputmethod/indic/PunctuationSuggestions;->newHardCodedWordInfo(Ljava/lang/String;)Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ + .local v0, "puncSpec":Ljava/lang/String; │ + invoke-static {v0}, Lorg/smc/inputmethod/indic/PunctuationSuggestions;->newHardCodedWordInfo(Ljava/lang/String;)Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 53 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 56 │ - .end local v3 # "puncSpec":Ljava/lang/String; │ + .end local v0 # "puncSpec":Ljava/lang/String; │ :cond_0 │ - new-instance v5, Lorg/smc/inputmethod/indic/PunctuationSuggestions; │ + new-instance v2, Lorg/smc/inputmethod/indic/PunctuationSuggestions; │ │ - invoke-direct {v5, v4}, Lorg/smc/inputmethod/indic/PunctuationSuggestions;->(Ljava/util/ArrayList;)V │ + invoke-direct {v2, v1}, Lorg/smc/inputmethod/indic/PunctuationSuggestions;->(Ljava/util/ArrayList;)V │ │ - return-object v5 │ + return-object v2 │ .end method │ │ │ # virtual methods │ .method public getInfo(I)Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ .locals 1 │ .param p1, "index" # I │ @@ -169,21 +164,24 @@ │ │ .line 68 │ .local v0, "code":I │ const/4 v2, -0x4 │ │ if-ne v0, v2, :cond_0 │ │ + .line 69 │ invoke-static {v1}, Lcom/android/inputmethod/keyboard/internal/KeySpecParser;->getOutputText(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 68 │ :goto_0 │ return-object v2 │ │ + .line 70 │ :cond_0 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->newSingleCodePointString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ goto :goto_0 │ .end method │ @@ -211,14 +209,15 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/PunctuationSuggestions;->mSuggestedWordInfoList:Ljava/util/ArrayList; │ │ + .line 106 │ invoke-virtual {v1}, Ljava/util/ArrayList;->toArray()[Ljava/lang/Object; │ │ move-result-object v1 │ │ invoke-static {v1}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ @@ -227,9 +226,10 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 105 │ return-object v0 │ .end method ├── smali/org/smc/inputmethod/indic/R.smali │ @@ -31,10 +31,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 4369 │ return-void │ .end method ├── smali/org/smc/inputmethod/indic/RichInputConnection.smali │ @@ -224,14 +224,15 @@ │ │ iget-object v8, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ │ invoke-direct {v7, v8}, Ljava/lang/StringBuilder;->(Ljava/lang/CharSequence;)V │ │ iget-object v8, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mComposingText:Ljava/lang/StringBuilder; │ │ + .line 127 │ invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ .line 128 │ .local v4, "internal":Ljava/lang/StringBuilder; │ if-eqz v3, :cond_0 │ @@ -291,14 +292,15 @@ │ :goto_1 │ iget v7, v3, Landroid/view/inputmethod/ExtractedText;->selectionStart:I │ │ iget v8, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mExpectedSelStart:I │ │ if-ne v7, v8, :cond_3 │ │ + .line 137 │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v7 │ │ invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v7 │ @@ -337,14 +339,15 @@ │ │ const-string v8, "\nExpected text = " │ │ invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v7 │ │ + .line 140 │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->length()I │ │ move-result v8 │ │ invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v7 │ @@ -361,14 +364,15 @@ │ │ const-string v8, "\nActual text = " │ │ invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v7 │ │ + .line 141 │ invoke-virtual {v6}, Ljava/lang/String;->length()I │ │ move-result v8 │ │ invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v7 │ @@ -393,32 +397,35 @@ │ │ check-cast v7, Lorg/smc/inputmethod/indic/LatinIME; │ │ invoke-virtual {v7, v2}, Lorg/smc/inputmethod/indic/LatinIME;->debugDumpStateAndCrashWithException(Ljava/lang/String;)V │ │ goto/16 :goto_0 │ │ - .line 133 │ + .line 134 │ .end local v2 # "context":Ljava/lang/String; │ .end local v6 # "reference":Ljava/lang/String; │ :cond_4 │ invoke-interface {v1}, Ljava/lang/CharSequence;->length()I │ │ move-result v7 │ │ sub-int/2addr v7, v0 │ │ + .line 135 │ invoke-interface {v1}, Ljava/lang/CharSequence;->length()I │ │ move-result v8 │ │ + .line 134 │ invoke-interface {v1, v7, v8}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; │ │ move-result-object v7 │ │ + .line 135 │ invoke-interface {v7}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v6 │ │ goto :goto_1 │ │ .line 144 │ @@ -555,34 +562,38 @@ │ .line 674 │ invoke-virtual {p1, p0}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordConnector(I)Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ + .line 676 │ invoke-virtual {p1, p0}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordSeparator(I)Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ if-nez p3, :cond_0 │ │ + .line 677 │ invoke-static {p0, p2}, Lcom/android/inputmethod/latin/utils/ScriptUtils;->isLetterPartOfScript(II)Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 674 │ :goto_0 │ return v0 │ │ + .line 677 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private static isSeparator(I[I)Z │ @@ -663,14 +674,15 @@ │ .line 216 │ .end local v0 # "textBeforeCursor":Ljava/lang/CharSequence; │ :cond_0 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mIC:Landroid/view/inputmethod/InputConnection; │ │ const/16 v3, 0x400 │ │ + .line 217 │ invoke-interface {v2, v3, v1}, Landroid/view/inputmethod/InputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence; │ │ move-result-object v0 │ │ goto :goto_0 │ │ .line 226 │ @@ -1640,14 +1652,15 @@ │ .param p1, "n" # I │ .param p2, "flags" # I │ │ .prologue │ .line 423 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ │ + .line 424 │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->length()I │ │ move-result v2 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mComposingText:Ljava/lang/StringBuilder; │ │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I │ @@ -1850,27 +1863,28 @@ │ .restart local v8 # "codePoint":I │ invoke-static {v8, p1, p2, p3}, Lorg/smc/inputmethod/indic/RichInputConnection;->isPartOfCompositionForScript(ILorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;IZ)Z │ │ move-result v0 │ │ if-nez v0, :cond_8 │ │ - .line 726 │ + .line 727 │ .end local v8 # "codePoint":I │ :cond_5 │ invoke-interface {v7}, Ljava/lang/CharSequence;->length()I │ │ move-result v0 │ │ invoke-static {v7, v2, v0}, Lcom/android/inputmethod/latin/utils/SpannableStringUtils;->hasUrlSpans(Ljava/lang/CharSequence;II)Z │ │ move-result v0 │ │ if-nez v0, :cond_6 │ │ + .line 728 │ invoke-static {v6, v1, v9}, Lcom/android/inputmethod/latin/utils/SpannableStringUtils;->hasUrlSpans(Ljava/lang/CharSequence;II)Z │ │ move-result v0 │ │ if-eqz v0, :cond_9 │ │ :cond_6 │ @@ -1885,18 +1899,20 @@ │ │ new-array v4, v4, [Ljava/lang/CharSequence; │ │ aput-object v7, v4, v1 │ │ aput-object v6, v4, v3 │ │ + .line 733 │ invoke-static {v4}, Lcom/android/inputmethod/latin/utils/SpannableStringUtils;->concatWithNonParagraphSuggestionSpansOnly([Ljava/lang/CharSequence;)Ljava/lang/CharSequence; │ │ move-result-object v1 │ │ + .line 734 │ invoke-interface {v7}, Ljava/lang/CharSequence;->length()I │ │ move-result v3 │ │ add-int/2addr v3, v9 │ │ invoke-interface {v7}, Ljava/lang/CharSequence;->length()I │ @@ -1940,15 +1956,15 @@ │ │ goto :goto_2 │ │ .end local v8 # "codePoint":I │ :cond_9 │ move v5, v1 │ │ - .line 726 │ + .line 728 │ goto :goto_3 │ .end method │ │ .method public hasSelection()Z │ .locals 2 │ │ .prologue │ @@ -2093,14 +2109,15 @@ │ .local v1, "codePointAfterCursor":I │ invoke-virtual {p1, v1}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordSeparator(I)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ + .line 766 │ invoke-virtual {p1, v1}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordConnector(I)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ move v2, v3 │ @@ -2193,52 +2210,55 @@ │ move v0, v3 │ │ .line 753 │ :cond_1 │ :goto_2 │ if-eq v3, v0, :cond_4 │ │ + .line 754 │ invoke-virtual {p1, v0}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordSeparator(I)Z │ │ move-result v3 │ │ if-nez v3, :cond_4 │ │ + .line 755 │ invoke-virtual {p1, v0}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordConnector(I)Z │ │ move-result v3 │ │ if-nez v3, :cond_4 │ │ move v3, v4 │ │ :goto_3 │ move v4, v3 │ │ + .line 753 │ goto :goto_0 │ │ - .line 745 │ + .line 746 │ .end local v0 # "consideredCodePoint":I │ :cond_2 │ invoke-virtual {v2, v1}, Ljava/lang/String;->codePointBefore(I)I │ │ move-result v0 │ │ goto :goto_1 │ │ - .line 750 │ + .line 751 │ .restart local v0 # "consideredCodePoint":I │ :cond_3 │ invoke-virtual {v2, v1}, Ljava/lang/String;->codePointBefore(I)I │ │ move-result v0 │ │ goto :goto_2 │ │ - .line 753 │ + .line 755 │ :cond_4 │ const/4 v3, 0x0 │ │ goto :goto_3 │ .end method │ │ .method public isInsideDoubleQuoteOrAfterDigit()Z │ @@ -2621,14 +2641,15 @@ │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ const/16 v4, 0x20 │ │ + .line 814 │ invoke-interface {v1, v2}, Ljava/lang/CharSequence;->charAt(I)C │ │ move-result v5 │ │ if-eq v4, v5, :cond_1 │ │ .line 818 │ @@ -2813,26 +2834,29 @@ │ if-lez v1, :cond_2 │ │ .line 511 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ │ + .line 512 │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->length()I │ │ move-result v2 │ │ add-int/lit8 v2, v2, -0x1 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ │ + .line 513 │ invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I │ │ move-result v3 │ │ + .line 511 │ invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; │ │ .line 518 │ :cond_2 │ :goto_1 │ iget v1, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mExpectedSelStart:I │ │ @@ -2940,14 +2964,15 @@ │ const/4 v4, 0x0 │ │ .line 547 │ sub-int v2, p2, p1 │ │ add-int/lit16 v2, v2, 0x400 │ │ + .line 548 │ invoke-virtual {p0, v2, v4}, Lorg/smc/inputmethod/indic/RichInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence; │ │ move-result-object v1 │ │ .line 549 │ .local v1, "textBeforeCursor":Ljava/lang/CharSequence; │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ @@ -2957,15 +2982,15 @@ │ .line 550 │ invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ - .line 555 │ + .line 556 │ invoke-interface {v1}, Ljava/lang/CharSequence;->length()I │ │ move-result v2 │ │ iget v3, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mExpectedSelStart:I │ │ sub-int/2addr v3, p1 │ @@ -2976,31 +3001,35 @@ │ │ move-result v0 │ │ .line 557 │ .local v0, "indexOfStartOfComposingText":I │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mComposingText:Ljava/lang/StringBuilder; │ │ + .line 558 │ invoke-interface {v1}, Ljava/lang/CharSequence;->length()I │ │ move-result v3 │ │ + .line 557 │ invoke-interface {v1, v0, v3}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; │ │ .line 559 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mCommittedTextBeforeComposingText:Ljava/lang/StringBuilder; │ │ + .line 560 │ invoke-interface {v1, v4, v0}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; │ │ move-result-object v3 │ │ + .line 559 │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; │ │ .line 562 │ .end local v0 # "indexOfStartOfComposingText":I │ :cond_0 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputConnection;->mIC:Landroid/view/inputmethod/InputConnection; ├── smali/org/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache.smali │ @@ -69,125 +69,122 @@ │ │ monitor-exit p0 │ │ throw v0 │ .end method │ │ .method public declared-synchronized get()Landroid/view/inputmethod/InputMethodInfo; │ - .locals 5 │ + .locals 4 │ │ .prologue │ .line 223 │ monitor-enter p0 │ │ :try_start_0 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mCachedValue:Landroid/view/inputmethod/InputMethodInfo; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mCachedValue:Landroid/view/inputmethod/InputMethodInfo; │ │ - if-eqz v2, :cond_0 │ + if-eqz v1, :cond_0 │ │ .line 224 │ - iget-object v1, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mCachedValue:Landroid/view/inputmethod/InputMethodInfo; │ + iget-object v0, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mCachedValue:Landroid/view/inputmethod/InputMethodInfo; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ .line 229 │ :goto_0 │ monitor-exit p0 │ │ - return-object v1 │ + return-object v0 │ │ .line 226 │ :cond_0 │ :try_start_1 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mImm:Landroid/view/inputmethod/InputMethodManager; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mImm:Landroid/view/inputmethod/InputMethodManager; │ │ - invoke-virtual {v2}, Landroid/view/inputmethod/InputMethodManager;->getInputMethodList()Ljava/util/List; │ + invoke-virtual {v1}, Landroid/view/inputmethod/InputMethodManager;->getInputMethodList()Ljava/util/List; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object 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, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v0, Landroid/view/inputmethod/InputMethodInfo; │ │ .line 227 │ - .local v1, "imi":Landroid/view/inputmethod/InputMethodInfo; │ - invoke-virtual {v1}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ + .local v0, "imi":Landroid/view/inputmethod/InputMethodInfo; │ + invoke-virtual {v0}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mImePackageName:Ljava/lang/String; │ │ invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ .line 228 │ - iput-object v1, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mCachedValue:Landroid/view/inputmethod/InputMethodInfo; │ + iput-object v0, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mCachedValue:Landroid/view/inputmethod/InputMethodInfo; │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_0 │ │ .line 223 │ - .end local v0 # "i$":Ljava/util/Iterator; │ - .end local v1 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v0 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ :catchall_0 │ - move-exception v2 │ + move-exception v1 │ │ monitor-exit p0 │ │ - throw v2 │ + throw v1 │ │ .line 232 │ - .restart local v0 # "i$":Ljava/util/Iterator; │ :cond_2 │ :try_start_2 │ - new-instance v2, Ljava/lang/RuntimeException; │ + new-instance v1, Ljava/lang/RuntimeException; │ │ - 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, "Input method id for " │ + const-string v3, "Input method id for " │ │ - 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 │ │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mImePackageName:Ljava/lang/String; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->mImePackageName:Ljava/lang/String; │ │ - 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 │ │ - const-string v4, " not found." │ + const-string v3, " 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}, 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-direct {v2, v3}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ + invoke-direct {v1, v2}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V │ │ - throw v2 │ + throw v1 │ :try_end_2 │ .catchall {:try_start_2 .. :try_end_2} :catchall_0 │ .end method ├── smali/org/smc/inputmethod/indic/RichInputMethodManager.smali │ @@ -527,210 +527,207 @@ │ :cond_1 │ const/4 v2, -0x1 │ │ goto :goto_1 │ .end method │ │ .method private hasMultipleEnabledSubtypes(ZLjava/util/List;)Z │ - .locals 12 │ + .locals 11 │ .param p1, "shouldIncludeAuxiliarySubtypes" # Z │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(Z", │ "Ljava/util/List", │ "<", │ "Landroid/view/inputmethod/InputMethodInfo;", │ ">;)Z" │ } │ .end annotation │ │ .prologue │ .local p2, "imiList":Ljava/util/List;, "Ljava/util/List;" │ - const/4 v9, 0x1 │ + const/4 v7, 0x1 │ │ .line 321 │ const/4 v1, 0x0 │ │ .line 323 │ .local v1, "filteredImisCount":I │ invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v8 │ │ :cond_0 │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_7 │ + if-eqz v9, :cond_7 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v2 │ │ - check-cast v4, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v2, Landroid/view/inputmethod/InputMethodInfo; │ │ .line 325 │ - .local v4, "imi":Landroid/view/inputmethod/InputMethodInfo; │ - if-le v1, v9, :cond_2 │ + .local v2, "imi":Landroid/view/inputmethod/InputMethodInfo; │ + if-le v1, v7, :cond_2 │ │ .line 363 │ - .end local v4 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v2 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ :cond_1 │ :goto_1 │ - return v9 │ + return v7 │ │ .line 326 │ - .restart local v4 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .restart local v2 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ :cond_2 │ - invoke-direct {p0, v4, v9}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ + invoke-direct {p0, v2, v7}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ │ - move-result-object v8 │ + move-result-object v6 │ │ .line 328 │ - .local v8, "subtypes":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface {v8}, Ljava/util/List;->isEmpty()Z │ + .local v6, "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v6}, Ljava/util/List;->isEmpty()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_3 │ + if-eqz v9, :cond_3 │ │ .line 329 │ add-int/lit8 v1, v1, 0x1 │ │ .line 330 │ goto :goto_0 │ │ .line 333 │ :cond_3 │ const/4 v0, 0x0 │ │ .line 334 │ .local v0, "auxCount":I │ - invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v9 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :cond_4 │ :goto_2 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_5 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v5 │ │ - check-cast v7, Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v5, Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 335 │ - .local v7, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-virtual {v7}, Landroid/view/inputmethod/InputMethodSubtype;->isAuxiliary()Z │ + .local v5, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-virtual {v5}, Landroid/view/inputmethod/InputMethodSubtype;->isAuxiliary()Z │ │ move-result v10 │ │ if-eqz v10, :cond_4 │ │ .line 336 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_2 │ │ .line 339 │ - .end local v7 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v5 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_5 │ - invoke-interface {v8}, Ljava/util/List;->size()I │ + invoke-interface {v6}, Ljava/util/List;->size()I │ │ - move-result v10 │ + move-result v9 │ │ - sub-int v6, v10, v0 │ + sub-int v4, v9, v0 │ │ .line 344 │ - .local v6, "nonAuxCount":I │ - if-gtz v6, :cond_6 │ + .local v4, "nonAuxCount":I │ + if-gtz v4, :cond_6 │ │ if-eqz p1, :cond_0 │ │ - if-le v0, v9, :cond_0 │ + if-le v0, v7, :cond_0 │ │ .line 345 │ :cond_6 │ add-int/lit8 v1, v1, 0x1 │ │ .line 346 │ goto :goto_0 │ │ .line 350 │ .end local v0 # "auxCount":I │ - .end local v3 # "i$":Ljava/util/Iterator; │ - .end local v4 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ - .end local v6 # "nonAuxCount":I │ - .end local v8 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + .end local v2 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v4 # "nonAuxCount":I │ + .end local v6 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ :cond_7 │ - if-gt v1, v9, :cond_1 │ + if-gt v1, v7, :cond_1 │ │ .line 353 │ - invoke-virtual {p0, v9}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getMyEnabledInputMethodSubtypeList(Z)Ljava/util/List; │ + invoke-virtual {p0, v7}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getMyEnabledInputMethodSubtypeList(Z)Ljava/util/List; │ │ - move-result-object v8 │ + move-result-object v6 │ │ .line 354 │ - .restart local v8 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ - const/4 v5, 0x0 │ + .restart local v6 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + const/4 v3, 0x0 │ │ .line 358 │ - .local v5, "keyboardCount":I │ - invoke-interface {v8}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v3, "keyboardCount":I │ + invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v8 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_8 │ :goto_3 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_9 │ + if-eqz v9, :cond_9 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v5 │ │ - check-cast v7, Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v5, Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 359 │ - .restart local v7 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - const-string v10, "keyboard" │ + .restart local v5 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + const-string v9, "keyboard" │ │ - invoke-virtual {v7}, Landroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; │ + invoke-virtual {v5}, Landroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v10 │ │ - invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v9, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_8 │ + if-eqz v9, :cond_8 │ │ .line 360 │ - add-int/lit8 v5, v5, 0x1 │ + add-int/lit8 v3, v3, 0x1 │ │ goto :goto_3 │ │ .line 363 │ - .end local v7 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v5 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_9 │ - if-gt v5, v9, :cond_1 │ + if-gt v3, v7, :cond_1 │ │ - const/4 v9, 0x0 │ + const/4 v7, 0x0 │ │ goto :goto_1 │ .end method │ │ .method public static init(Landroid/content/Context;)V │ .locals 1 │ .param p0, "context" # Landroid/content/Context; │ @@ -772,14 +769,15 @@ │ .line 85 │ new-instance v1, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager;->mImmWrapper:Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper; │ │ iget-object v2, v2, Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper;->mImm:Landroid/view/inputmethod/InputMethodManager; │ │ + .line 86 │ invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-direct {v1, v2, v3}, Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache;->(Landroid/view/inputmethod/InputMethodManager;Ljava/lang/String;)V │ │ iput-object v1, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager;->mInputMethodInfoCache:Lorg/smc/inputmethod/indic/RichInputMethodManager$InputMethodInfoCache; │ @@ -919,14 +917,15 @@ │ │ const-string v9, "Can\'t find current IME in enabled IMEs: IME package=" │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ + .line 154 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodInfoOfThisIme()Landroid/view/inputmethod/InputMethodInfo; │ │ move-result-object v9 │ │ invoke-virtual {v9}, Landroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; │ │ move-result-object v9 │ @@ -935,14 +934,15 @@ │ │ move-result-object v8 │ │ invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v8 │ │ + .line 153 │ invoke-static {v7, v8}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 167 │ :goto_0 │ return v6 │ │ .line 157 │ @@ -1047,26 +1047,28 @@ │ │ const-string v9, "Can\'t find current subtype in enabled subtypes: subtype=" │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ + .line 134 │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeNameForLogging(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v9 │ │ invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v8 │ │ invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v8 │ │ + .line 133 │ invoke-static {v7, v8}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 145 │ :cond_0 │ :goto_0 │ return v6 │ │ @@ -1180,20 +1182,21 @@ │ const/4 v2, 0x0 │ │ .line 254 │ invoke-virtual {p0, p1}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->checkIfSubtypeBelongsToThisImeAndEnabled(Landroid/view/inputmethod/InputMethodSubtype;)Z │ │ move-result v0 │ │ - .line 255 │ + .line 256 │ .local v0, "subtypeEnabled":Z │ invoke-virtual {p0, v2}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getMyEnabledInputMethodSubtypeList(Z)Ljava/util/List; │ │ move-result-object v3 │ │ + .line 255 │ invoke-static {p1, v3}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->checkIfSubtypeBelongsToList(Landroid/view/inputmethod/InputMethodSubtype;Ljava/util/List;)Z │ │ move-result v1 │ │ .line 258 │ .local v1, "subtypeExplicitlyEnabled":Z │ if-eqz v0, :cond_0 │ @@ -1273,14 +1276,15 @@ │ │ invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ + .line 374 │ invoke-virtual {p2, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ .line 378 │ @@ -1315,20 +1319,21 @@ │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->init(Landroid/content/Context;)V │ │ .line 96 │ invoke-static {p1}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; │ │ move-result-object v1 │ │ - .line 97 │ + .line 98 │ .local v1, "prefs":Landroid/content/SharedPreferences; │ invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ move-result-object v2 │ │ + .line 97 │ invoke-static {v1, v2}, Lorg/smc/inputmethod/indic/settings/Settings;->readPrefAdditionalSubtypes(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 99 │ .local v0, "prefAdditionalSubtypes":Ljava/lang/String; │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAdditionalSubtypesArray(Ljava/lang/String;)[Landroid/view/inputmethod/InputMethodSubtype; │ @@ -1423,18 +1428,20 @@ │ "Landroid/view/inputmethod/InputMethodSubtype;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 109 │ + .line 110 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodInfoOfThisIme()Landroid/view/inputmethod/InputMethodInfo; │ │ move-result-object v0 │ │ + .line 109 │ invoke-direct {p0, v0, p1}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ @@ -1463,18 +1470,20 @@ │ │ .method public hasMultipleEnabledSubtypesInThisIme(Z)Z │ .locals 2 │ .param p1, "shouldIncludeAuxiliarySubtypes" # Z │ │ .prologue │ .line 313 │ + .line 314 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodInfoOfThisIme()Landroid/view/inputmethod/InputMethodInfo; │ │ move-result-object v1 │ │ + .line 313 │ invoke-static {v1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List; │ │ move-result-object v0 │ │ .line 315 │ .local v0, "imiList":Ljava/util/List;, "Ljava/util/List;" │ invoke-direct {p0, p1, v0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->hasMultipleEnabledSubtypes(ZLjava/util/List;)Z │ @@ -1490,18 +1499,20 @@ │ │ .prologue │ .line 387 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager;->mImmWrapper:Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper; │ │ iget-object v0, v0, Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper;->mImm:Landroid/view/inputmethod/InputMethodManager; │ │ + .line 388 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodIdOfThisIme()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 387 │ invoke-virtual {v0, v1, p1}, Landroid/view/inputmethod/InputMethodManager;->setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V │ │ .line 391 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->clearSubtypeCaches()V │ │ .line 392 │ return-void │ @@ -1514,18 +1525,20 @@ │ │ .prologue │ .line 382 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/RichInputMethodManager;->mImmWrapper:Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper; │ │ iget-object v0, v0, Lorg/smc/inputmethod/compat/InputMethodManagerCompatWrapper;->mImm:Landroid/view/inputmethod/InputMethodManager; │ │ + .line 383 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodIdOfThisIme()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 382 │ invoke-virtual {v0, p1, v1, p2}, Landroid/view/inputmethod/InputMethodManager;->setInputMethodAndSubtype(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V │ │ .line 384 │ return-void │ .end method │ │ .method public shouldOfferSwitchingToNextInputMethod(Landroid/os/IBinder;Z)Z ├── smali/org/smc/inputmethod/indic/SubtypeSwitcher$1.smali │ @@ -36,14 +36,15 @@ │ │ .field final synthetic val$token:Landroid/os/IBinder; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/SubtypeSwitcher;Landroid/view/inputmethod/InputMethodManager;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ .prologue │ .line 206 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher$1;->this$0:Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher$1;->val$imm:Landroid/view/inputmethod/InputMethodManager; ├── smali/org/smc/inputmethod/indic/SubtypeSwitcher.smali │ @@ -82,14 +82,15 @@ │ │ const-string v4, "KeyboardLayoutSet=qwerty,AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable,EmojiCapable" │ │ const v7, -0x221f402d │ │ move v6, v5 │ │ + .line 74 │ invoke-static/range {v0 .. v7}, Lorg/smc/inputmethod/compat/InputMethodSubtypeCompatUtils;->newInputMethodSubtype(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->DUMMY_NO_LANGUAGE_SUBTYPE:Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 86 │ @@ -101,14 +102,15 @@ │ │ const-string v4, "KeyboardLayoutSet=emoji,EmojiCapable" │ │ const v7, -0x2874d130 │ │ move v6, v5 │ │ + .line 87 │ invoke-static/range {v0 .. v7}, Lorg/smc/inputmethod/compat/InputMethodSubtypeCompatUtils;->newInputMethodSubtype(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZI)Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->DUMMY_EMOJI_SUBTYPE:Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 282 │ @@ -261,312 +263,321 @@ │ │ sget-object v1, Landroid/os/AsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor; │ │ const/4 v4, 0x0 │ │ new-array v4, v4, [Ljava/lang/Void; │ │ + .line 212 │ invoke-virtual {v0, v1, v4}, Lorg/smc/inputmethod/indic/SubtypeSwitcher$1;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ goto :goto_0 │ .end method │ │ .method private updateShortcutIME()V │ - .locals 9 │ + .locals 8 │ │ .prologue │ - const/4 v5, 0x0 │ + const/4 v4, 0x0 │ │ .line 136 │ - sget-boolean v4, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->DBG:Z │ + sget-boolean v3, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->DBG:Z │ │ - if-eqz v4, :cond_0 │ + if-eqz v3, :cond_0 │ │ .line 137 │ - sget-object v6, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->TAG:Ljava/lang/String; │ + sget-object v5, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->TAG:Ljava/lang/String; │ │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - const-string v7, "Update shortcut IME from : " │ + const-string v6, "Update shortcut IME from : " │ │ - invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ │ - if-nez v4, :cond_3 │ + if-nez v3, :cond_3 │ │ - const-string v4, "" │ + const-string v3, "" │ │ + .line 139 │ :goto_0 │ - invoke-virtual {v7, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - const-string v7, ", " │ + const-string v6, ", " │ │ - invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ - if-nez v4, :cond_4 │ + if-nez v3, :cond_4 │ │ - const-string v4, "" │ + const-string v3, "" │ │ + .line 141 │ :goto_1 │ - invoke-virtual {v7, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-static {v6, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ + .line 137 │ + invoke-static {v5, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 144 │ :cond_0 │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ - invoke-virtual {v4}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; │ + .line 145 │ + invoke-virtual {v3}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Landroid/view/inputmethod/InputMethodManager;->getShortcutInputMethodsAndSubtypes()Ljava/util/Map; │ + invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodManager;->getShortcutInputMethodsAndSubtypes()Ljava/util/Map; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 146 │ - .local v2, "shortcuts":Ljava/util/Map;, "Ljava/util/Map;>;" │ - iput-object v5, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ + .local v1, "shortcuts":Ljava/util/Map;, "Ljava/util/Map;>;" │ + iput-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ │ .line 147 │ - iput-object v5, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iput-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 148 │ - invoke-interface {v2}, Ljava/util/Map;->keySet()Ljava/util/Set; │ + invoke-interface {v1}, Ljava/util/Map;->keySet()Ljava/util/Set; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "i$":Ljava/util/Iterator; │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v4 │ + move-result v5 │ │ - if-eqz v4, :cond_1 │ + if-eqz v5, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v0, Landroid/view/inputmethod/InputMethodInfo; │ │ .line 149 │ - .local v1, "imi":Landroid/view/inputmethod/InputMethodInfo; │ - invoke-interface {v2, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + .local v0, "imi":Landroid/view/inputmethod/InputMethodInfo; │ + invoke-interface {v1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/util/List; │ + check-cast v2, Ljava/util/List; │ │ .line 152 │ - .local v3, "subtypes":Ljava/util/List;, "Ljava/util/List;" │ - iput-object v1, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ + .local v2, "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + iput-object v0, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ │ .line 155 │ - invoke-interface {v3}, Ljava/util/List;->size()I │ + invoke-interface {v2}, Ljava/util/List;->size()I │ │ - move-result v4 │ + move-result v3 │ │ - if-lez v4, :cond_5 │ + if-lez v3, :cond_5 │ │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ - invoke-interface {v3, v4}, Ljava/util/List;->get(I)Ljava/lang/Object; │ + invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v3, Landroid/view/inputmethod/InputMethodSubtype; │ │ :goto_2 │ - iput-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iput-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 158 │ - .end local v1 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ - .end local v3 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + .end local v0 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v2 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ :cond_1 │ - sget-boolean v4, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->DBG:Z │ + sget-boolean v3, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->DBG:Z │ │ - if-eqz v4, :cond_2 │ + if-eqz v3, :cond_2 │ │ .line 159 │ - sget-object v5, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->TAG:Ljava/lang/String; │ + sget-object v4, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->TAG:Ljava/lang/String; │ │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - const-string v6, "Update shortcut IME to : " │ + const-string v5, "Update shortcut IME to : " │ │ - invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ │ - if-nez v4, :cond_6 │ + if-nez v3, :cond_6 │ │ - const-string v4, "" │ + const-string v3, "" │ │ + .line 161 │ :goto_3 │ - invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - const-string v6, ", " │ + const-string v5, ", " │ │ - invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ - if-nez v4, :cond_7 │ + if-nez v3, :cond_7 │ │ - const-string v4, "" │ + const-string v3, "" │ │ + .line 163 │ :goto_4 │ - invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ + .line 159 │ + invoke-static {v4, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 165 │ :cond_2 │ return-void │ │ .line 137 │ - .end local v0 # "i$":Ljava/util/Iterator; │ - .end local v2 # "shortcuts":Ljava/util/Map;, "Ljava/util/Map;>;" │ + .end local v1 # "shortcuts":Ljava/util/Map;, "Ljava/util/Map;>;" │ :cond_3 │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ │ - invoke-virtual {v4}, Landroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String; │ + .line 139 │ + invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ goto/16 :goto_0 │ │ :cond_4 │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - iget-object v8, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iget-object v7, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ - invoke-virtual {v8}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ + .line 141 │ + invoke-virtual {v7}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - const-string v8, ", " │ + const-string v7, ", " │ │ - invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - iget-object v8, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iget-object v7, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ - invoke-virtual {v8}, Landroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; │ + invoke-virtual {v7}, Landroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ goto/16 :goto_1 │ │ - .restart local v0 # "i$":Ljava/util/Iterator; │ - .restart local v1 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ - .restart local v2 # "shortcuts":Ljava/util/Map;, "Ljava/util/Map;>;" │ - .restart local v3 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + .restart local v0 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .restart local v1 # "shortcuts":Ljava/util/Map;, "Ljava/util/Map;>;" │ + .restart local v2 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ :cond_5 │ - move-object v4, v5 │ + move-object v3, v4 │ │ .line 155 │ goto :goto_2 │ │ .line 159 │ - .end local v1 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ - .end local v3 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + .end local v0 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v2 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ :cond_6 │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutInputMethodInfo:Landroid/view/inputmethod/InputMethodInfo; │ │ - invoke-virtual {v4}, Landroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String; │ + .line 161 │ + invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ goto :goto_3 │ │ :cond_7 │ - new-instance v4, Ljava/lang/StringBuilder; │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - iget-object v7, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iget-object v6, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ - invoke-virtual {v7}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ + .line 163 │ + invoke-virtual {v6}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - const-string v7, ", " │ + const-string v6, ", " │ │ - invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - iget-object v7, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ + iget-object v6, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mShortcutSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ - invoke-virtual {v7}, Landroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; │ + invoke-virtual {v6}, Landroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ goto :goto_4 │ .end method │ │ │ # virtual methods │ .method forceSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V │ @@ -904,149 +915,149 @@ │ goto :goto_0 │ .end method │ │ .method public isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes()Z │ .locals 11 │ │ .prologue │ - const/4 v9, 0x1 │ + const/4 v8, 0x1 │ │ - const/4 v8, 0x0 │ + const/4 v7, 0x0 │ │ .line 258 │ - iget-object v10, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mResources:Landroid/content/res/Resources; │ + iget-object v9, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mResources:Landroid/content/res/Resources; │ │ - invoke-virtual {v10}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; │ + invoke-virtual {v9}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - iget-object v7, v10, Landroid/content/res/Configuration;->locale:Ljava/util/Locale; │ + iget-object v6, v9, Landroid/content/res/Configuration;->locale:Ljava/util/Locale; │ │ .line 259 │ - .local v7, "systemLocale":Ljava/util/Locale; │ + .local v6, "systemLocale":Ljava/util/Locale; │ new-instance v2, Ljava/util/HashSet; │ │ invoke-direct {v2}, Ljava/util/HashSet;->()V │ │ .line 260 │ .local v2, "enabledSubtypesOfEnabledImes":Ljava/util/Set;, "Ljava/util/Set;" │ - iget-object v10, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ + iget-object v9, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ - invoke-virtual {v10}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; │ + invoke-virtual {v9}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - .line 261 │ - .local v5, "inputMethodManager":Landroid/view/inputmethod/InputMethodManager; │ - invoke-virtual {v5}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List; │ + .line 262 │ + .local v4, "inputMethodManager":Landroid/view/inputmethod/InputMethodManager; │ + invoke-virtual {v4}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List; │ │ move-result-object v0 │ │ .line 263 │ .local v0, "enabledInputMethodInfoList":Ljava/util/List;, "Ljava/util/List;" │ invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v9 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_1 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v3, Landroid/view/inputmethod/InputMethodInfo; │ │ - .line 264 │ - .local v4, "info":Landroid/view/inputmethod/InputMethodInfo; │ - invoke-virtual {v5, v4, v9}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ + .line 265 │ + .local v3, "info":Landroid/view/inputmethod/InputMethodInfo; │ + invoke-virtual {v4, v3, v8}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ │ move-result-object v1 │ │ .line 267 │ .local v1, "enabledSubtypes":Ljava/util/List;, "Ljava/util/List;" │ invoke-interface {v1}, Ljava/util/List;->isEmpty()Z │ │ move-result v10 │ │ if-eqz v10, :cond_0 │ │ .line 279 │ .end local v1 # "enabledSubtypes":Ljava/util/List;, "Ljava/util/List;" │ - .end local v4 # "info":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v3 # "info":Landroid/view/inputmethod/InputMethodInfo; │ :goto_1 │ - return v8 │ + return v7 │ │ .line 271 │ .restart local v1 # "enabledSubtypes":Ljava/util/List;, "Ljava/util/List;" │ - .restart local v4 # "info":Landroid/view/inputmethod/InputMethodInfo; │ + .restart local v3 # "info":Landroid/view/inputmethod/InputMethodInfo; │ :cond_0 │ invoke-interface {v2, v1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z │ │ goto :goto_0 │ │ .line 273 │ .end local v1 # "enabledSubtypes":Ljava/util/List;, "Ljava/util/List;" │ - .end local v4 # "info":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v3 # "info":Landroid/view/inputmethod/InputMethodInfo; │ :cond_1 │ invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v9 │ │ :cond_2 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v10 │ │ if-eqz v10, :cond_3 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - check-cast v6, Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v5, Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 274 │ - .local v6, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-virtual {v6}, Landroid/view/inputmethod/InputMethodSubtype;->isAuxiliary()Z │ + .local v5, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-virtual {v5}, Landroid/view/inputmethod/InputMethodSubtype;->isAuxiliary()Z │ │ move-result v10 │ │ if-nez v10, :cond_2 │ │ - invoke-virtual {v6}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ + invoke-virtual {v5}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ │ move-result-object v10 │ │ invoke-virtual {v10}, Ljava/lang/String;->isEmpty()Z │ │ move-result v10 │ │ if-nez v10, :cond_2 │ │ - invoke-static {v6}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/util/Locale; │ + .line 275 │ + invoke-static {v5}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/util/Locale; │ │ move-result-object v10 │ │ - invoke-virtual {v7, v10}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v6, v10}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z │ │ move-result v10 │ │ if-nez v10, :cond_2 │ │ goto :goto_1 │ │ - .end local v6 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v5 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_3 │ - move v8, v9 │ + move v7, v8 │ │ .line 279 │ goto :goto_1 │ .end method │ │ .method public onNetworkStateChanged(Landroid/content/Intent;)V │ .locals 0 │ @@ -1076,26 +1087,28 @@ │ │ const-string v7, "onSubtypeChanged: " │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ + .line 171 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeNameForLogging(Landroid/view/inputmethod/InputMethodSubtype;)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 │ │ + .line 170 │ invoke-static {v5, v6}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 174 │ :cond_0 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/util/Locale; │ │ move-result-object v1 │ @@ -1130,14 +1143,15 @@ │ │ move-result v2 │ │ .line 178 │ .local v2, "sameLanguage":Z │ iget-object v5, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ + .line 179 │ invoke-virtual {v5, p1}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->checkIfSubtypeBelongsToThisImeAndImplicitlyEnabled(Landroid/view/inputmethod/InputMethodSubtype;)Z │ │ move-result v0 │ │ .line 180 │ .local v0, "implicitlyEnabled":Z │ iget-object v6, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mLanguageOnSpacebarHelper:Lcom/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelper; │ @@ -1203,14 +1217,15 @@ │ │ .prologue │ .line 129 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ const/4 v2, 0x1 │ │ + .line 130 │ invoke-virtual {v1, v2}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getMyEnabledInputMethodSubtypeList(Z)Ljava/util/List; │ │ move-result-object v0 │ │ .line 131 │ .local v0, "enabledSubtypesOfThisIme":Ljava/util/List;, "Ljava/util/List;" │ iget-object v1, p0, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->mLanguageOnSpacebarHelper:Lcom/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelper; ├── smali/org/smc/inputmethod/indic/Suggest.smali │ @@ -176,18 +176,20 @@ │ │ move-result-object v1 │ │ check-cast v1, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ iget-object v1, v1, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ + .line 236 │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/WordComposer;->getRejectedBatchModeSuggestion()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 235 │ invoke-static {v1, v3}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ move-result v1 │ │ if-eqz v1, :cond_2 │ │ .line 237 │ @@ -296,14 +298,15 @@ │ │ .line 131 │ .local v17, "trailingSingleQuotesCount":I │ if-lez v17, :cond_3 │ │ const/4 v2, 0x0 │ │ + .line 132 │ invoke-virtual/range {v18 .. v18}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ sub-int v4, v4, v17 │ │ move-object/from16 v0, v18 │ @@ -329,25 +332,25 @@ │ │ move-object/from16 v6, p4 │ │ invoke-virtual/range {v2 .. v7}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSuggestionResults(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion;I)Lcom/android/inputmethod/latin/utils/SuggestionResults; │ │ move-result-object v15 │ │ - .line 138 │ + .line 139 │ .local v15, "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ move-object/from16 v0, p1 │ │ move/from16 v1, v17 │ │ invoke-static {v0, v15, v1}, Lorg/smc/inputmethod/indic/Suggest;->getTransformedSuggestedWordInfoList(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/utils/SuggestionResults;I)Ljava/util/ArrayList; │ │ move-result-object v16 │ │ - .line 141 │ + .line 142 │ .local v16, "suggestionsContainer":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/WordComposer;->getTypedWord()Ljava/lang/String; │ │ move-result-object v2 │ │ move-object/from16 v0, v16 │ │ @@ -372,14 +375,15 @@ │ const/4 v14, 0x1 │ │ .line 149 │ .local v14, "resultsArePredictions":Z │ :goto_1 │ if-nez v19, :cond_0 │ │ + .line 150 │ invoke-virtual {v11}, Ljava/lang/String;->length()I │ │ move-result v2 │ │ const/4 v4, 0x1 │ │ if-le v2, v4, :cond_5 │ @@ -394,26 +398,28 @@ │ :goto_2 │ if-eqz p6, :cond_1 │ │ if-eqz v10, :cond_1 │ │ if-nez v14, :cond_1 │ │ + .line 159 │ invoke-virtual {v15}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->isEmpty()Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/WordComposer;->hasDigits()Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ + .line 160 │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/WordComposer;->isMostlyCaps()Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/WordComposer;->isResumed()Z │ @@ -422,20 +428,22 @@ │ │ if-nez v2, :cond_1 │ │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/Suggest;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ + .line 161 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->hasInitializedMainDictionary()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ + .line 162 │ invoke-virtual {v15}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->first()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ const/4 v4, 0x7 │ @@ -535,48 +543,49 @@ │ .end local v14 # "resultsArePredictions":Z │ .end local v15 # "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ .end local v16 # "suggestionsContainer":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .end local v19 # "whitelistedWord":Ljava/lang/String; │ :cond_3 │ move-object/from16 v11, v18 │ │ - .line 131 │ + .line 132 │ goto/16 :goto_0 │ │ .line 145 │ .restart local v11 # "consideredWord":Ljava/lang/String; │ .restart local v12 # "didRemoveTypedWord":Z │ .restart local v15 # "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ .restart local v16 # "suggestionsContainer":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .restart local v19 # "whitelistedWord":Ljava/lang/String; │ :cond_4 │ const/4 v14, 0x0 │ │ goto/16 :goto_1 │ │ - .line 149 │ + .line 150 │ .restart local v14 # "resultsArePredictions":Z │ :cond_5 │ const/4 v10, 0x0 │ │ goto :goto_2 │ │ - .line 173 │ + .line 174 │ .restart local v10 # "allowsToBeAutoCorrected":Z │ :cond_6 │ invoke-virtual {v15}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->first()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ move-object/from16 v0, p0 │ │ iget v4, v0, Lorg/smc/inputmethod/indic/Suggest;->mAutoCorrectionThreshold:F │ │ + .line 173 │ invoke-static {v2, v11, v4}, Lcom/android/inputmethod/latin/utils/AutoCorrectionUtils;->suggestionExceedsAutoCorrectionThreshold(Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;Ljava/lang/String;F)Z │ │ move-result v13 │ │ .restart local v13 # "hasAutoCorrection":Z │ goto :goto_3 │ │ @@ -665,22 +674,23 @@ │ │ invoke-virtual {p1, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ - .line 273 │ + .line 274 │ .local v0, "cur":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->toString()Ljava/lang/String; │ │ move-result-object v7 │ │ iget v8, v0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mScore:I │ │ + .line 273 │ invoke-static {p0, v7, v8}, Lcom/android/inputmethod/latin/utils/BinaryDictionaryUtils;->calcNormalizedScore(Ljava/lang/String;Ljava/lang/String;I)F │ │ move-result v2 │ │ .line 276 │ .local v2, "normalizedScore":F │ const/4 v7, 0x0 │ @@ -696,14 +706,15 @@ │ │ const/4 v9, 0x3 │ │ new-array v9, v9, [Ljava/lang/Object; │ │ iget v10, v0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mScore:I │ │ + .line 278 │ invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v10 │ │ aput-object v10, v9, v12 │ │ const/4 v10, 0x1 │ @@ -718,14 +729,15 @@ │ │ iget-object v11, v0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mSourceDict:Lorg/smc/inputmethod/indic/Dictionary; │ │ iget-object v11, v11, Lorg/smc/inputmethod/indic/Dictionary;->mDictType:Ljava/lang/String; │ │ aput-object v11, v9, v10 │ │ + .line 277 │ invoke-static {v7, v8, v9}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ .line 283 │ .local v3, "scoreInfoString":Ljava/lang/String; │ :goto_1 │ @@ -796,14 +808,15 @@ │ │ .line 303 │ :goto_0 │ const/4 v0, -0x1 │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ + .line 304 │ invoke-virtual {v1, v2}, Ljava/lang/String;->indexOf(I)I │ │ move-result v1 │ │ if-ne v0, v1, :cond_2 │ │ const/4 v0, 0x0 │ @@ -848,15 +861,15 @@ │ :cond_1 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ invoke-virtual {v9, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ - .line 303 │ + .line 304 │ :cond_2 │ const/4 v0, 0x1 │ │ goto :goto_1 │ │ .line 308 │ .restart local v7 # "i":I │ @@ -905,23 +918,24 @@ │ .line 91 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/WordComposer;->isAllUpperCase()Z │ │ move-result v7 │ │ if-eqz v7, :cond_1 │ │ + .line 92 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/WordComposer;->isResumed()Z │ │ move-result v7 │ │ if-nez v7, :cond_1 │ │ const/4 v2, 0x1 │ │ - .line 93 │ + .line 94 │ .local v2, "shouldMakeSuggestionsAllUpperCase":Z │ :goto_0 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/WordComposer;->isOrWillBeOnlyFirstCharCapitalized()Z │ │ move-result v1 │ │ .line 96 │ @@ -972,15 +986,15 @@ │ invoke-virtual {v3, v0, v5}, Ljava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object; │ │ .line 100 │ add-int/lit8 v0, v0, 0x1 │ │ goto :goto_1 │ │ - .line 91 │ + .line 92 │ .end local v0 # "i":I │ .end local v1 # "isOnlyFirstCharCapitalized":Z │ .end local v2 # "shouldMakeSuggestionsAllUpperCase":Z │ .end local v3 # "suggestionsContainer":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .end local v4 # "suggestionsCount":I │ .end local v5 # "transformedWordInfo":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ .end local v6 # "wordInfo":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; ├── smali/org/smc/inputmethod/indic/SuggestedWords.smali │ @@ -265,14 +265,15 @@ │ "Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;", │ ">;ZZZII)V" │ } │ .end annotation │ │ .prologue │ .line 83 │ + .line 84 │ .local p1, "suggestedWordInfoList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .local p2, "rawSuggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual {p1}, Ljava/util/ArrayList;->isEmpty()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ @@ -299,36 +300,38 @@ │ │ move v6, p5 │ │ move v7, p6 │ │ move/from16 v8, p7 │ │ + .line 83 │ invoke-direct/range {v0 .. v8}, Lorg/smc/inputmethod/indic/SuggestedWords;->(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;ZZZII)V │ │ .line 87 │ return-void │ │ - .line 83 │ + .line 84 │ :cond_1 │ const/4 v0, 0x0 │ │ + .line 85 │ invoke-virtual {p1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ goto :goto_0 │ .end method │ │ .method public static getFromApplicationSpecifiedCompletions([Landroid/view/inputmethod/CompletionInfo;)Ljava/util/ArrayList; │ - .locals 6 │ + .locals 5 │ .param p0, "infos" # [Landroid/view/inputmethod/CompletionInfo; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "([", │ "Landroid/view/inputmethod/CompletionInfo;", │ ")", │ "Ljava/util/ArrayList", │ @@ -336,65 +339,60 @@ │ "Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 180 │ - new-instance v4, Ljava/util/ArrayList; │ + new-instance v1, Ljava/util/ArrayList; │ │ - invoke-direct {v4}, Ljava/util/ArrayList;->()V │ + invoke-direct {v1}, Ljava/util/ArrayList;->()V │ │ .line 181 │ - .local v4, "result":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v0, p0 │ + .local v1, "result":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v3, p0 │ │ - .local v0, "arr$":[Landroid/view/inputmethod/CompletionInfo; │ - array-length v3, v0 │ - │ - .local v3, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v3, :cond_2 │ + if-ge v2, v3, :cond_2 │ │ - aget-object v2, v0, v1 │ + aget-object v0, p0, v2 │ │ .line 182 │ - .local v2, "info":Landroid/view/inputmethod/CompletionInfo; │ - if-eqz v2, :cond_0 │ + .local v0, "info":Landroid/view/inputmethod/CompletionInfo; │ + if-eqz v0, :cond_0 │ │ - invoke-virtual {v2}, Landroid/view/inputmethod/CompletionInfo;->getText()Ljava/lang/CharSequence; │ + invoke-virtual {v0}, Landroid/view/inputmethod/CompletionInfo;->getText()Ljava/lang/CharSequence; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - if-nez v5, :cond_1 │ + if-nez v4, :cond_1 │ │ .line 181 │ :cond_0 │ :goto_1 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 185 │ :cond_1 │ - new-instance v5, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ + new-instance v4, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ - invoke-direct {v5, v2}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->(Landroid/view/inputmethod/CompletionInfo;)V │ + invoke-direct {v4, v0}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->(Landroid/view/inputmethod/CompletionInfo;)V │ │ - invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ .line 187 │ - .end local v2 # "info":Landroid/view/inputmethod/CompletionInfo; │ + .end local v0 # "info":Landroid/view/inputmethod/CompletionInfo; │ :cond_2 │ - return-object v4 │ + return-object v1 │ .end method │ │ .method public static getTypedWordAndPreviousSuggestions(Ljava/lang/String;Lorg/smc/inputmethod/indic/SuggestedWords;)Ljava/util/ArrayList; │ .locals 13 │ .param p0, "typedWord" # Ljava/lang/String; │ .param p1, "previousSuggestions" # Lorg/smc/inputmethod/indic/SuggestedWords; │ .annotation system Ldalvik/annotation/Signature; │ @@ -987,14 +985,15 @@ │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/SuggestedWords;->mSuggestedWordInfoList:Ljava/util/ArrayList; │ │ + .line 175 │ invoke-virtual {v1}, Ljava/util/ArrayList;->toArray()[Ljava/lang/Object; │ │ move-result-object v1 │ │ invoke-static {v1}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ @@ -1003,9 +1002,10 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 171 │ return-object v0 │ .end method ├── smali/org/smc/inputmethod/indic/SuggestionSpanPickedNotificationReceiver.smali │ @@ -13,20 +13,22 @@ │ .method static constructor ()V │ .locals 1 │ │ .prologue │ .line 29 │ const-class v0, Lorg/smc/inputmethod/indic/SuggestionSpanPickedNotificationReceiver; │ │ + .line 30 │ invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/smc/inputmethod/indic/SuggestionSpanPickedNotificationReceiver;->TAG:Ljava/lang/String; │ │ + .line 29 │ return-void │ .end method │ │ .method public constructor ()V │ .locals 0 │ │ .prologue ├── smali/org/smc/inputmethod/indic/SystemBroadcastReceiver.smali │ @@ -112,21 +112,22 @@ │ .line 91 │ .end local v0 # "additionalSubtypes":[Landroid/view/inputmethod/InputMethodSubtype; │ .end local v6 # "richImm":Lorg/smc/inputmethod/indic/RichInputMethodManager; │ :cond_0 │ :goto_0 │ const-string v8, "input_method" │ │ + .line 92 │ invoke-virtual {p1, v8}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Landroid/view/inputmethod/InputMethodManager; │ │ - .line 94 │ + .line 95 │ .local v1, "imm":Landroid/view/inputmethod/InputMethodManager; │ invoke-virtual {v1}, Landroid/view/inputmethod/InputMethodManager;->getInputMethodList()Ljava/util/List; │ │ move-result-object v8 │ │ invoke-interface {v8}, Ljava/util/List;->isEmpty()Z │ │ @@ -137,14 +138,15 @@ │ move v4, v3 │ │ .line 96 │ .local v4, "isInputMethodManagerValidForUserOfThisProcess":Z │ :goto_1 │ if-eqz v4, :cond_6 │ │ + .line 97 │ invoke-static {p1, v1}, Lcom/android/inputmethod/latin/utils/UncachedInputMethodManagerUtils;->isThisImeCurrent(Landroid/content/Context;Landroid/view/inputmethod/InputMethodManager;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_6 │ │ .line 98 │ @@ -256,17 +258,17 @@ │ │ goto :goto_0 │ │ .restart local v1 # "imm":Landroid/view/inputmethod/InputMethodManager; │ :cond_5 │ move v4, v7 │ │ - .line 94 │ + .line 95 │ goto :goto_1 │ │ .restart local v4 # "isInputMethodManagerValidForUserOfThisProcess":Z │ :cond_6 │ move v3, v7 │ │ - .line 96 │ + .line 97 │ goto :goto_2 │ .end method ├── smali/org/smc/inputmethod/indic/UserBinaryDictionary$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/UserBinaryDictionary; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/UserBinaryDictionary;Landroid/os/Handler;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/UserBinaryDictionary; │ .param p2, "x0" # Landroid/os/Handler; │ │ .prologue │ .line 88 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/UserBinaryDictionary$1;->this$0:Lorg/smc/inputmethod/indic/UserBinaryDictionary; │ │ invoke-direct {p0, p2}, Landroid/database/ContentObserver;->(Landroid/os/Handler;)V ├── smali/org/smc/inputmethod/indic/UserBinaryDictionary.smali │ @@ -722,14 +722,15 @@ │ │ .prologue │ const/4 v11, 0x3 │ │ .line 130 │ iget-object v9, p0, Lorg/smc/inputmethod/indic/UserBinaryDictionary;->mLocale:Ljava/lang/String; │ │ + .line 131 │ invoke-static {v9}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v9 │ │ if-eqz v9, :cond_0 │ │ const/4 v9, 0x0 │ @@ -809,15 +810,15 @@ │ invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 138 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_1 │ │ - .line 130 │ + .line 131 │ .end local v1 # "i":I │ .end local v2 # "length":I │ .end local v3 # "localeElements":[Ljava/lang/String; │ .end local v5 # "localeSoFar":Ljava/lang/String; │ .end local v6 # "request":Ljava/lang/StringBuilder; │ :cond_0 │ iget-object v9, p0, Lorg/smc/inputmethod/indic/UserBinaryDictionary;->mLocale:Ljava/lang/String; │ @@ -847,14 +848,15 @@ │ const-string v9, " or (locale like ?)" │ │ invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 160 │ add-int/lit8 v9, v2, 0x1 │ │ + .line 161 │ invoke-static {v3, v9}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object; │ │ move-result-object v4 │ │ check-cast v4, [Ljava/lang/String; │ │ .line 162 ├── smali/org/smc/inputmethod/indic/WordComposer.smali │ @@ -380,14 +380,15 @@ │ │ .line 276 │ :cond_4 │ iget-boolean v0, p0, Lorg/smc/inputmethod/indic/WordComposer;->mIsOnlyFirstCharCapitalized:Z │ │ if-eqz v0, :cond_5 │ │ + .line 277 │ invoke-static {v6}, Ljava/lang/Character;->isUpperCase(I)Z │ │ move-result v0 │ │ if-nez v0, :cond_5 │ │ const/4 v4, 0x1 │ @@ -615,14 +616,15 @@ │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/WordComposer;->mEvents:Ljava/util/ArrayList; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/WordComposer;->mInputPointers:Lorg/smc/inputmethod/indic/InputPointers; │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/WordComposer;->mTypedWordCache:Ljava/lang/CharSequence; │ │ + .line 496 │ invoke-interface {v3}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ iget v7, p0, Lorg/smc/inputmethod/indic/WordComposer;->mCapitalizedMode:I │ │ move-object v4, p2 │ @@ -715,14 +717,15 @@ │ │ .line 160 │ .local v2, "typedWord":Ljava/lang/String; │ invoke-virtual {v2}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ + .line 161 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->getTrailingSingleQuotesCount(Ljava/lang/CharSequence;)I │ │ move-result v5 │ │ sub-int v1, v4, v5 │ │ .line 162 │ @@ -1210,22 +1213,24 @@ │ if-nez v1, :cond_0 │ │ .line 103 │ new-instance v1, Lorg/smc/inputmethod/event/CombinerChain; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/WordComposer;->mCombinerChain:Lorg/smc/inputmethod/event/CombinerChain; │ │ + .line 104 │ invoke-virtual {v2}, Lorg/smc/inputmethod/event/CombinerChain;->getComposingWordWithCombiningFeedback()Ljava/lang/CharSequence; │ │ move-result-object v2 │ │ invoke-interface {v2}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 105 │ invoke-static {v0}, Lorg/smc/inputmethod/event/CombinerChain;->createCombiners(Ljava/lang/String;)[Lorg/smc/inputmethod/event/Combiner; │ │ move-result-object v3 │ │ invoke-direct {v1, v2, v3}, Lorg/smc/inputmethod/event/CombinerChain;->(Ljava/lang/String;[Lorg/smc/inputmethod/event/Combiner;)V │ │ iput-object v1, p0, Lorg/smc/inputmethod/indic/WordComposer;->mCombinerChain:Lorg/smc/inputmethod/event/CombinerChain; │ @@ -1362,15 +1367,15 @@ │ if-ge v1, v2, :cond_0 │ │ .line 346 │ invoke-static {p1, v1}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I │ │ move-result v0 │ │ - .line 349 │ + .line 350 │ .local v0, "codePoint":I │ invoke-static {v0}, Lorg/smc/inputmethod/event/Event;->createEventForCodePointFromUnknownSource(I)Lorg/smc/inputmethod/event/Event; │ │ move-result-object v4 │ │ invoke-virtual {p0, v4}, Lorg/smc/inputmethod/indic/WordComposer;->processEvent(Lorg/smc/inputmethod/event/Event;)Lorg/smc/inputmethod/event/Event; │ │ @@ -1425,22 +1430,25 @@ │ .local v0, "i":I │ :goto_0 │ if-ge v0, v1, :cond_0 │ │ .line 365 │ aget v3, p1, v0 │ │ + .line 367 │ invoke-static {p2, v0}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->xFromArray([II)I │ │ move-result v4 │ │ + .line 368 │ invoke-static {p2, v0}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->yFromArray([II)I │ │ move-result v5 │ │ + .line 366 │ invoke-static {v3, v4, v5}, Lorg/smc/inputmethod/event/Event;->createEventForCodePointFromAlreadyTypedText(III)Lorg/smc/inputmethod/event/Event; │ │ move-result-object v3 │ │ invoke-virtual {p0, v3}, Lorg/smc/inputmethod/indic/WordComposer;->processEvent(Lorg/smc/inputmethod/event/Event;)Lorg/smc/inputmethod/event/Event; │ │ move-result-object v2 ├── smali/org/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug.smali │ @@ -74,205 +74,213 @@ │ .line 47 │ invoke-static {p0, p1, p2}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug;->installFile(Landroid/content/Context;Ljava/io/File;Lcom/android/inputmethod/latin/makedict/DictionaryHeader;)V │ │ return-void │ .end method │ │ .method public static askInstallFile(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Runnable;)V │ - .locals 11 │ + .locals 10 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "dirPath" # Ljava/lang/String; │ .param p2, "fileName" # Ljava/lang/String; │ .param p3, "completeRunnable" # Ljava/lang/Runnable; │ │ .prologue │ .line 102 │ new-instance v0, Ljava/io/File; │ │ invoke-virtual {p2}, Ljava/lang/String;->toString()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-direct {v0, p1, v8}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V │ + invoke-direct {v0, p1, v7}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V │ │ .line 103 │ .local v0, "file":Ljava/io/File; │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getDictionaryFileHeaderOrNull(Ljava/io/File;)Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ │ move-result-object v1 │ │ .line 104 │ .local v1, "header":Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ - new-instance v6, Ljava/lang/StringBuilder; │ + new-instance v5, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ │ .line 105 │ - .local v6, "message":Ljava/lang/StringBuilder; │ + .local v5, "message":Ljava/lang/StringBuilder; │ invoke-virtual {v1}, Lcom/android/inputmethod/latin/makedict/DictionaryHeader;->getLocaleString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ .line 106 │ - .local v5, "locale":Ljava/lang/String; │ - iget-object v8, v1, Lcom/android/inputmethod/latin/makedict/DictionaryHeader;->mDictionaryOptions:Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions; │ + .local v4, "locale":Ljava/lang/String; │ + iget-object v7, v1, Lcom/android/inputmethod/latin/makedict/DictionaryHeader;->mDictionaryOptions:Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions; │ │ - iget-object v8, v8, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ + iget-object v7, v7, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ │ - invoke-virtual {v8}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ + invoke-virtual {v7}, Ljava/util/HashMap;->keySet()Ljava/util/Set; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-interface {v8}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v7}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v8 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v8 │ + move-result v7 │ │ - if-eqz v8, :cond_0 │ + if-eqz v7, :cond_0 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/lang/String; │ + check-cast v2, Ljava/lang/String; │ │ .line 107 │ - .local v3, "key":Ljava/lang/String; │ - new-instance v8, Ljava/lang/StringBuilder; │ + .local v2, "key":Ljava/lang/String; │ + new-instance v7, Ljava/lang/StringBuilder; │ │ - invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v7}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ const-string v9, " = " │ │ - invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v9 │ │ - iget-object v8, v1, Lcom/android/inputmethod/latin/makedict/DictionaryHeader;->mDictionaryOptions:Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions; │ + iget-object v7, v1, Lcom/android/inputmethod/latin/makedict/DictionaryHeader;->mDictionaryOptions:Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions; │ │ - iget-object v8, v8, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ + iget-object v7, v7, Lcom/android/inputmethod/latin/makedict/FormatSpec$DictionaryOptions;->mAttributes:Ljava/util/HashMap; │ │ - invoke-virtual {v8, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {v7, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - check-cast v8, Ljava/lang/String; │ + check-cast v7, Ljava/lang/String; │ │ - invoke-virtual {v9, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v9, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 108 │ - const-string v8, "\n" │ + const-string v7, "\n" │ │ - invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ goto :goto_0 │ │ .line 110 │ - .end local v3 # "key":Ljava/lang/String; │ + .end local v2 # "key":Ljava/lang/String; │ :cond_0 │ - invoke-static {v5}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ + invoke-static {v4}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ │ - move-result-object v8 │ + move-result-object v7 │ │ + .line 111 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - invoke-virtual {v8, v9}, Ljava/util/Locale;->getDisplayName(Ljava/util/Locale;)Ljava/lang/String; │ + invoke-virtual {v7, v8}, Ljava/util/Locale;->getDisplayName(Ljava/util/Locale;)Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 112 │ - .local v4, "languageName":Ljava/lang/String; │ - const v8, 0x7f0c00bc │ + .local v3, "languageName":Ljava/lang/String; │ + const v7, 0x7f0c00bc │ │ - invoke-virtual {p0, v8}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ + .line 113 │ + invoke-virtual {p0, v7}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - const/4 v9, 0x1 │ + const/4 v8, 0x1 │ │ - new-array v9, v9, [Ljava/lang/Object; │ + new-array v8, v8, [Ljava/lang/Object; │ │ - const/4 v10, 0x0 │ + const/4 v9, 0x0 │ │ - aput-object v4, v9, v10 │ + aput-object v3, v8, v9 │ │ - invoke-static {v8, v9}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ + .line 112 │ + invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ .line 115 │ - .local v7, "title":Ljava/lang/String; │ - new-instance v8, Landroid/app/AlertDialog$Builder; │ + .local v6, "title":Ljava/lang/String; │ + new-instance v7, Landroid/app/AlertDialog$Builder; │ │ invoke-static {p0}, Lcom/android/inputmethod/latin/utils/DialogUtils;->getPlatformDialogThemeContext(Landroid/content/Context;)Landroid/content/Context; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - invoke-direct {v8, v9}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ + invoke-direct {v7, v8}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ - invoke-virtual {v8, v7}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ + .line 116 │ + invoke-virtual {v7, v6}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v8, v6}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ + .line 117 │ + invoke-virtual {v7, v5}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - const/high16 v9, 0x1040000 │ + const/high16 v8, 0x1040000 │ │ - new-instance v10, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$5; │ + new-instance v9, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$5; │ │ - invoke-direct {v10, p3}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$5;->(Ljava/lang/Runnable;)V │ + invoke-direct {v9, p3}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$5;->(Ljava/lang/Runnable;)V │ │ - invoke-virtual {v8, v9, v10}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ + .line 118 │ + invoke-virtual {v7, v8, v9}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - const v9, 0x104000a │ + const v8, 0x104000a │ │ - new-instance v10, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$4; │ + new-instance v9, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$4; │ │ - invoke-direct {v10, p0, v0, v1, p3}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$4;->(Landroid/content/Context;Ljava/io/File;Lcom/android/inputmethod/latin/makedict/DictionaryHeader;Ljava/lang/Runnable;)V │ + invoke-direct {v9, p0, v0, v1, p3}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$4;->(Landroid/content/Context;Ljava/io/File;Lcom/android/inputmethod/latin/makedict/DictionaryHeader;Ljava/lang/Runnable;)V │ │ - invoke-virtual {v8, v9, v10}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ + .line 126 │ + invoke-virtual {v7, v8, v9}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - new-instance v9, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$3; │ + new-instance v8, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$3; │ │ - invoke-direct {v9, p3}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$3;->(Ljava/lang/Runnable;)V │ + invoke-direct {v8, p3}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$3;->(Ljava/lang/Runnable;)V │ │ - invoke-virtual {v8, v9}, Landroid/app/AlertDialog$Builder;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)Landroid/app/AlertDialog$Builder; │ + .line 135 │ + invoke-virtual {v7, v8}, Landroid/app/AlertDialog$Builder;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)Landroid/app/AlertDialog$Builder; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v8}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ + .line 143 │ + invoke-virtual {v7}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - invoke-virtual {v8}, Landroid/app/AlertDialog;->show()V │ + invoke-virtual {v7}, Landroid/app/AlertDialog;->show()V │ │ .line 144 │ return-void │ .end method │ │ .method public static chooseAndInstallDictionary(Landroid/content/Context;)V │ .locals 4 │ @@ -322,91 +330,86 @@ │ :cond_1 │ invoke-static {p0, v0}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug;->showChooseFileDialog(Landroid/content/Context;[Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ .method private static findDictionariesInTheDownloadedFolder()[Ljava/lang/String; │ - .locals 9 │ + .locals 8 │ │ .prologue │ + const/4 v5, 0x0 │ + │ .line 52 │ - new-instance v7, Ljava/io/File; │ + new-instance v4, Ljava/io/File; │ │ - sget-object v8, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug;->SOURCE_FOLDER:Ljava/lang/String; │ + sget-object v6, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug;->SOURCE_FOLDER:Ljava/lang/String; │ │ - invoke-direct {v7, v8}, Ljava/io/File;->(Ljava/lang/String;)V │ + invoke-direct {v4, v6}, Ljava/io/File;->(Ljava/lang/String;)V │ │ - invoke-virtual {v7}, Ljava/io/File;->listFiles()[Ljava/io/File; │ + invoke-virtual {v4}, Ljava/io/File;->listFiles()[Ljava/io/File; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 53 │ - .local v3, "files":[Ljava/io/File; │ - new-instance v1, Ljava/util/ArrayList; │ + .local v2, "files":[Ljava/io/File; │ + new-instance v0, Ljava/util/ArrayList; │ │ - invoke-direct {v1}, Ljava/util/ArrayList;->()V │ + invoke-direct {v0}, Ljava/util/ArrayList;->()V │ │ .line 54 │ - .local v1, "eligibleList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v0, v3 │ + .local v0, "eligibleList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v6, v2 │ │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v6, v0 │ + move v4, v5 │ │ - .local v6, "len$":I │ - const/4 v5, 0x0 │ - │ - .local v5, "i$":I │ :goto_0 │ - if-ge v5, v6, :cond_1 │ + if-ge v4, v6, :cond_1 │ │ - aget-object v2, v0, v5 │ + aget-object v1, v2, v4 │ │ .line 55 │ - .local v2, "f":Ljava/io/File; │ - invoke-static {v2}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getDictionaryFileHeaderOrNull(Ljava/io/File;)Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ + .local v1, "f":Ljava/io/File; │ + invoke-static {v1}, Lcom/android/inputmethod/latin/utils/DictionaryInfoUtils;->getDictionaryFileHeaderOrNull(Ljava/io/File;)Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 56 │ - .local v4, "header":Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ - if-nez v4, :cond_0 │ + .local v3, "header":Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ + if-nez v3, :cond_0 │ │ .line 54 │ :goto_1 │ - add-int/lit8 v5, v5, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ .line 57 │ :cond_0 │ - invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String; │ │ move-result-object v7 │ │ - invoke-virtual {v1, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ .line 59 │ - .end local v2 # "f":Ljava/io/File; │ - .end local v4 # "header":Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ + .end local v1 # "f":Ljava/io/File; │ + .end local v3 # "header":Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ :cond_1 │ - const/4 v7, 0x0 │ + new-array v4, v5, [Ljava/lang/String; │ │ - new-array v7, v7, [Ljava/lang/String; │ + invoke-virtual {v0, v4}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ - invoke-virtual {v1, v7}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ - │ - move-result-object v7 │ + move-result-object v4 │ │ - check-cast v7, [Ljava/lang/String; │ + check-cast v4, [Ljava/lang/String; │ │ - return-object v7 │ + return-object v4 │ .end method │ │ .method private static installFile(Landroid/content/Context;Ljava/io/File;Lcom/android/inputmethod/latin/makedict/DictionaryHeader;)V │ .locals 14 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "file" # Ljava/io/File; │ .param p2, "header" # Lcom/android/inputmethod/latin/makedict/DictionaryHeader; │ @@ -560,36 +563,40 @@ │ │ move-result-object v12 │ │ invoke-direct {v11, v12}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ const v12, 0x7f0c00bd │ │ + .line 172 │ invoke-virtual {v11, v12}, Landroid/app/AlertDialog$Builder;->setTitle(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v11 │ │ + .line 173 │ invoke-virtual {v1}, Ljava/io/IOException;->toString()Ljava/lang/String; │ │ move-result-object v12 │ │ invoke-virtual {v11, v12}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v11 │ │ const v12, 0x104000a │ │ new-instance v13, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$6; │ │ invoke-direct {v13}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$6;->()V │ │ + .line 174 │ invoke-virtual {v11, v12, v13}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v11 │ │ + .line 179 │ invoke-virtual {v11}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v11 │ │ invoke-virtual {v11}, Landroid/app/AlertDialog;->show()V │ :try_end_3 │ .catchall {:try_start_3 .. :try_end_3} :catchall_0 │ @@ -780,26 +787,29 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ const v1, 0x7f0c00be │ │ + .line 86 │ invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v0 │ │ new-instance v1, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$2; │ │ invoke-direct {v1, p0, p1}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$2;->(Landroid/content/Context;[Ljava/lang/String;)V │ │ + .line 87 │ invoke-virtual {v0, p1, v1}, Landroid/app/AlertDialog$Builder;->setItems([Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v0 │ │ + .line 94 │ invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V │ │ .line 95 │ @@ -818,28 +828,31 @@ │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ const v1, 0x7f0c00bf │ │ + .line 75 │ invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v0 │ │ const v1, 0x104000a │ │ new-instance v2, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$1; │ │ invoke-direct {v2}, Lorg/smc/inputmethod/indic/debug/ExternalDictionaryGetterForDebug$1;->()V │ │ + .line 76 │ invoke-virtual {v0, v1, v2}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v0 │ │ + .line 81 │ invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V │ │ .line 82 ├── smali/org/smc/inputmethod/indic/inputlogic/InputLogic$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/inputlogic/InputLogic;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ .prologue │ .line 95 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$1;->this$0:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/inputlogic/InputLogic$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$holder:Lcom/android/inputmethod/latin/utils/AsyncResultHolder; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/inputlogic/InputLogic;Lcom/android/inputmethod/latin/utils/AsyncResultHolder;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ .prologue │ .line 1380 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$2;->this$0:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$2;->val$holder:Lcom/android/inputmethod/latin/utils/AsyncResultHolder; ├── smali/org/smc/inputmethod/indic/inputlogic/InputLogic$3.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$shouldIncludeResumedWordInSuggestions:Z │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/inputlogic/InputLogic;Z)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ .prologue │ .line 1506 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$3;->this$0:Lorg/smc/inputmethod/indic/inputlogic/InputLogic; │ │ iput-boolean p2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$3;->val$shouldIncludeResumedWordInSuggestions:Z │ │ @@ -54,15 +55,15 @@ │ │ if-le v1, v2, :cond_0 │ │ iget-boolean v1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$3;->val$shouldIncludeResumedWordInSuggestions:Z │ │ if-nez v1, :cond_0 │ │ - .line 1517 │ + .line 1518 │ invoke-virtual {p1}, Lorg/smc/inputmethod/indic/SuggestedWords;->getSuggestedWordsExcludingTypedWordForRecorrection()Lorg/smc/inputmethod/indic/SuggestedWords; │ │ move-result-object v0 │ │ .line 1526 │ .local v0, "suggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ :goto_0 ├── smali/org/smc/inputmethod/indic/inputlogic/InputLogic.smali │ @@ -249,28 +249,31 @@ │ │ if-eq p0, v0, :cond_0 │ │ const/16 v0, 0x25 │ │ if-eq p0, v0, :cond_0 │ │ + .line 1304 │ invoke-static {p0}, Ljava/lang/Character;->getType(I)I │ │ move-result v0 │ │ const/16 v1, 0x1c │ │ if-ne v0, v1, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 1295 │ :goto_0 │ return v0 │ │ + .line 1304 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private commitChosenWord(Lorg/smc/inputmethod/indic/settings/SettingsValues;Ljava/lang/String;ILjava/lang/String;)V │ @@ -286,34 +289,37 @@ │ .line 2098 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSuggestedWords:Lorg/smc/inputmethod/indic/SuggestedWords; │ │ .line 2099 │ .local v2, "suggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ + .line 2100 │ invoke-static {v3, p2, v2}, Lorg/smc/inputmethod/compat/SuggestionSpanUtils;->getTextWithSuggestionSpan(Landroid/content/Context;Ljava/lang/String;Lorg/smc/inputmethod/indic/SuggestedWords;)Ljava/lang/CharSequence; │ │ move-result-object v0 │ │ .line 2105 │ .local v0, "chosenWordWithSuggestions":Ljava/lang/CharSequence; │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ iget-object v6, p1, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 2106 │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/WordComposer;->isComposingWord()Z │ │ move-result v3 │ │ if-eqz v3, :cond_0 │ │ const/4 v3, 0x2 │ │ + .line 2105 │ :goto_0 │ invoke-virtual {v5, v6, v3}, Lorg/smc/inputmethod/indic/RichInputConnection;->getPrevWordsInfoFromNthPreviousWord(Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;I)Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ move-result-object v1 │ │ .line 2107 │ .local v1, "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ @@ -336,15 +342,15 @@ │ .line 2116 │ return-void │ │ .end local v1 # "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ :cond_0 │ move v3, v4 │ │ - .line 2105 │ + .line 2106 │ goto :goto_0 │ .end method │ │ .method private commitCurrentAutoCorrection(Lorg/smc/inputmethod/indic/settings/SettingsValues;Ljava/lang/String;Lorg/smc/inputmethod/indic/LatinIME$UIHandler;)V │ .locals 7 │ .param p1, "settingsValues" # Lorg/smc/inputmethod/indic/settings/SettingsValues; │ .param p2, "separator" # Ljava/lang/String; │ @@ -433,26 +439,28 @@ │ .line 2081 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ new-instance v4, Landroid/view/inputmethod/CorrectionInfo; │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 2082 │ invoke-virtual {v5}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v5 │ │ invoke-virtual {v0}, Ljava/lang/String;->length()I │ │ move-result v6 │ │ sub-int/2addr v5, v6 │ │ invoke-direct {v4, v5, v2, v0}, Landroid/view/inputmethod/CorrectionInfo;->(ILjava/lang/CharSequence;Ljava/lang/CharSequence;)V │ │ + .line 2081 │ invoke-virtual {v3, v4}, Lorg/smc/inputmethod/indic/RichInputConnection;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V │ │ .line 2086 │ :cond_3 │ return-void │ .end method │ │ @@ -528,18 +536,20 @@ │ .line 1890 │ iget-boolean v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mIsAutoCorrectionIndicatorOn:Z │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ + .line 1891 │ invoke-static {v0, p1}, Lorg/smc/inputmethod/compat/SuggestionSpanUtils;->getTextWithAutoCorrectionIndicatorUnderline(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/CharSequence; │ │ move-result-object p1 │ │ + .line 1890 │ .end local p1 # "text":Ljava/lang/String; │ :cond_0 │ return-object p1 │ .end method │ │ .method private handleBackspaceEvent(Lorg/smc/inputmethod/event/Event;Lorg/smc/inputmethod/event/InputTransaction;I)V │ .locals 10 │ @@ -556,15 +566,15 @@ │ .line 1023 │ iget v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mDeleteCount:I │ │ add-int/lit8 v7, v7, 0x1 │ │ iput v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mDeleteCount:I │ │ - .line 1032 │ + .line 1033 │ invoke-virtual {p1}, Lorg/smc/inputmethod/event/Event;->isKeyRepeat()Z │ │ move-result v7 │ │ if-eqz v7, :cond_3 │ │ iget-object v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ @@ -596,20 +606,22 @@ │ │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v7 │ │ iget-object v8, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1041 │ invoke-virtual {v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v8 │ │ const/4 v9, 0x1 │ │ + .line 1040 │ invoke-direct {p0, v7, v8, v9}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->resetEntireInputState(IIZ)V │ │ .line 1044 │ :cond_0 │ iget-object v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/WordComposer;->isComposingWord()Z │ @@ -689,15 +701,15 @@ │ invoke-virtual {p2}, Lorg/smc/inputmethod/event/InputTransaction;->setRequiresUpdateSuggestions()V │ │ .line 1158 │ :cond_2 │ :goto_3 │ return-void │ │ - .line 1032 │ + .line 1033 │ .end local v6 # "shiftUpdateKind":I │ :cond_3 │ const/4 v6, 0x1 │ │ goto :goto_0 │ │ .line 1053 │ @@ -838,14 +850,15 @@ │ │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v7 │ │ iget-object v8, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1099 │ invoke-virtual {v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v8 │ │ sub-int v4, v7, v8 │ │ .line 1100 │ @@ -856,18 +869,20 @@ │ │ invoke-virtual {v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v8 │ │ iget-object v9, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1101 │ invoke-virtual {v9}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v9 │ │ + .line 1100 │ invoke-virtual {v7, v8, v9}, Lorg/smc/inputmethod/indic/RichInputConnection;->setSelection(II)Z │ │ .line 1102 │ iget-object v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ const/4 v8, 0x0 │ │ @@ -875,14 +890,15 @@ │ │ .line 1148 │ .end local v4 # "numCharsDeleted":I │ :cond_b │ :goto_4 │ iget-object v7, p2, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ + .line 1149 │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isSuggestionsEnabledPerUserSettings()Z │ │ move-result v7 │ │ if-eqz v7, :cond_2 │ │ iget-object v7, p2, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ @@ -895,14 +911,15 @@ │ │ iget-object v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ iget-object v8, p2, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ iget-object v8, v8, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ + .line 1152 │ invoke-virtual {v7, v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->isCursorFollowedByWordCharacter(Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;)Z │ │ move-result v7 │ │ if-nez v7, :cond_2 │ │ .line 1154 │ @@ -943,14 +960,15 @@ │ │ if-nez v7, :cond_e │ │ iget-object v7, p2, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ iget-object v7, v7, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mInputAttributes:Lorg/smc/inputmethod/indic/InputAttributes; │ │ + .line 1110 │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/InputAttributes;->isTypeNull()Z │ │ move-result v7 │ │ if-eqz v7, :cond_f │ │ .line 1118 │ @@ -994,15 +1012,15 @@ │ │ const/4 v9, 0x0 │ │ invoke-virtual {v7, v8, v9}, Lorg/smc/inputmethod/indic/RichInputConnection;->deleteSurroundingText(II)V │ │ goto/16 :goto_3 │ │ - .line 1134 │ + .line 1135 │ :cond_10 │ invoke-static {v0}, Ljava/lang/Character;->isSupplementaryCodePoint(I)Z │ │ move-result v7 │ │ if-eqz v7, :cond_11 │ │ @@ -1023,14 +1041,15 @@ │ const/16 v8, 0x14 │ │ if-le v7, v8, :cond_b │ │ .line 1138 │ iget-object v7, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1139 │ invoke-virtual {v7}, Lorg/smc/inputmethod/indic/RichInputConnection;->getCodePointBeforeCursor()I │ │ move-result v1 │ │ .line 1140 │ .local v1, "codePointBeforeCursorToDeleteAgain":I │ const/4 v7, -0x1 │ @@ -1053,15 +1072,15 @@ │ │ const/4 v8, 0x0 │ │ invoke-virtual {v7, v3, v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->deleteSurroundingText(II)V │ │ goto/16 :goto_4 │ │ - .line 1134 │ + .line 1135 │ .end local v1 # "codePointBeforeCursorToDeleteAgain":I │ .end local v2 # "lengthToDelete":I │ .end local v3 # "lengthToDeleteAgain":I │ :cond_11 │ const/4 v2, 0x1 │ │ goto :goto_5 │ @@ -1247,18 +1266,20 @@ │ │ iget v2, p1, Lorg/smc/inputmethod/event/Event;->mKeyCode:I │ │ iget v3, p1, Lorg/smc/inputmethod/event/Event;->mX:I │ │ iget v4, p1, Lorg/smc/inputmethod/event/Event;->mY:I │ │ + .line 729 │ invoke-virtual {p1}, Lorg/smc/inputmethod/event/Event;->isKeyRepeat()Z │ │ move-result v5 │ │ + .line 728 │ invoke-static {v1, v2, v3, v4, v5}, Lorg/smc/inputmethod/event/Event;->createSoftwareKeypressEvent(IIIIZ)Lorg/smc/inputmethod/event/Event; │ │ move-result-object v0 │ │ .line 730 │ .local v0, "tmpEvent":Lorg/smc/inputmethod/event/Event; │ invoke-direct {p0, v0, p2, p4}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->handleNonSpecialCharacterEvent(Lorg/smc/inputmethod/event/Event;Lorg/smc/inputmethod/event/InputTransaction;Lorg/smc/inputmethod/indic/LatinIME$UIHandler;)V │ @@ -1327,15 +1348,15 @@ │ │ .line 756 │ :pswitch_0 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentInputEditorInfo()Landroid/view/inputmethod/EditorInfo; │ │ move-result-object v0 │ │ - .line 757 │ + .line 758 │ .local v0, "editorInfo":Landroid/view/inputmethod/EditorInfo; │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/InputTypeUtils;->getImeOptionsActionIdFromEditorInfo(Landroid/view/inputmethod/EditorInfo;)I │ │ move-result v1 │ │ .line 759 │ .local v1, "imeOptionsActionId":I │ @@ -1402,14 +1423,15 @@ │ .local v1, "isComposingWord":Z │ const/4 v5, 0x4 │ │ iget v6, p3, Lorg/smc/inputmethod/event/InputTransaction;->mSpaceState:I │ │ if-ne v5, v6, :cond_1 │ │ + .line 847 │ invoke-virtual {p2, v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isWordConnector(I)Z │ │ move-result v5 │ │ if-nez v5, :cond_1 │ │ .line 848 │ @@ -1443,43 +1465,48 @@ │ │ invoke-virtual {v5}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v5 │ │ iget-object v6, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 859 │ invoke-virtual {v6}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v6 │ │ + .line 858 │ invoke-direct {p0, v5, v6, v3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->resetEntireInputState(IIZ)V │ │ .line 860 │ const/4 v1, 0x0 │ │ .line 866 │ :cond_2 │ if-nez v1, :cond_4 │ │ + .line 869 │ invoke-virtual {p2, v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isWordCodePoint(I)Z │ │ move-result v5 │ │ if-eqz v5, :cond_4 │ │ + .line 871 │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->needsToLookupSuggestions()Z │ │ move-result v5 │ │ if-eqz v5, :cond_4 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ iget-object v6, p2, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ + .line 874 │ invoke-virtual {v5, v6}, Lorg/smc/inputmethod/indic/RichInputConnection;->isCursorTouchingWord(Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_3 │ │ iget-object v5, p2, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ @@ -1643,14 +1670,15 @@ │ │ invoke-virtual {v1, v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isWordSeparator(I)Z │ │ move-result v1 │ │ if-nez v1, :cond_1 │ │ + .line 812 │ invoke-static {v0}, Ljava/lang/Character;->getType(I)I │ │ move-result v1 │ │ const/16 v2, 0x1c │ │ if-ne v1, v2, :cond_2 │ @@ -1685,20 +1713,22 @@ │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 820 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v2 │ │ const/4 v3, 0x1 │ │ + .line 819 │ invoke-direct {p0, v1, v2, v3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->resetEntireInputState(IIZ)V │ │ .line 825 │ :cond_3 │ :goto_1 │ iget-object v1, p2, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ @@ -1771,20 +1801,22 @@ │ │ invoke-virtual {v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v8 │ │ iget-object v9, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 926 │ invoke-virtual {v9}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v9 │ │ const/4 v10, 0x1 │ │ + .line 925 │ invoke-direct {p0, v8, v9, v10}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->resetEntireInputState(IIZ)V │ │ .line 929 │ :cond_0 │ iget-object v8, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ invoke-virtual {v8}, Lorg/smc/inputmethod/indic/WordComposer;->isComposingWord()Z │ @@ -1823,14 +1855,15 @@ │ .local v6, "swapWeakSpace":Z │ const/16 v8, 0x22 │ │ if-ne v8, v0, :cond_7 │ │ iget-object v8, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 945 │ invoke-virtual {v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->isInsideDoubleQuoteOrAfterDigit()Z │ │ move-result v8 │ │ if-eqz v8, :cond_7 │ │ const/4 v1, 0x1 │ @@ -1887,34 +1920,35 @@ │ .end local v5 # "shouldAvoidSendingCode":Z │ .end local v6 # "swapWeakSpace":Z │ :cond_4 │ const/4 v5, 0x0 │ │ goto :goto_0 │ │ - .line 931 │ + .line 932 │ .restart local v5 # "shouldAvoidSendingCode":Z │ :cond_5 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->newSingleCodePointString(I)Ljava/lang/String; │ │ move-result-object v3 │ │ goto :goto_1 │ │ - .line 936 │ + .line 937 │ :cond_6 │ invoke-static {v0}, Lcom/android/inputmethod/latin/utils/StringUtils;->newSingleCodePointString(I)Ljava/lang/String; │ │ move-result-object v8 │ │ + .line 936 │ invoke-virtual {p0, v4, v8}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->commitTyped(Lorg/smc/inputmethod/indic/settings/SettingsValues;Ljava/lang/String;)V │ │ goto :goto_2 │ │ - .line 944 │ + .line 945 │ .restart local v6 # "swapWeakSpace":Z │ :cond_7 │ const/4 v1, 0x0 │ │ goto :goto_3 │ │ .line 950 │ @@ -1949,18 +1983,20 @@ │ │ if-eqz v8, :cond_b │ │ iget-object v8, v4, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ iget-object v9, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 956 │ invoke-virtual {v9}, Lorg/smc/inputmethod/indic/RichInputConnection;->getCodePointBeforeCursor()I │ │ move-result v9 │ │ + .line 955 │ invoke-virtual {v8, v9}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isClusteringSymbol(I)Z │ │ move-result v8 │ │ if-eqz v8, :cond_b │ │ .line 957 │ @@ -2055,14 +2091,15 @@ │ :cond_11 │ const/4 v8, 0x4 │ │ iget v9, p2, Lorg/smc/inputmethod/event/InputTransaction;->mSpaceState:I │ │ if-ne v8, v9, :cond_12 │ │ + .line 987 │ invoke-virtual {v4, v0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isUsuallyFollowedBySpace(I)Z │ │ move-result v8 │ │ if-nez v8, :cond_13 │ │ :cond_12 │ @@ -2164,14 +2201,15 @@ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ .line 1352 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 1353 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/WordComposer;->wasAutoCapitalized()Z │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ @@ -2185,18 +2223,20 @@ │ const/4 v2, 0x1 │ │ .line 1354 │ .local v2, "wasAutoCapitalized":Z │ :goto_1 │ sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; │ │ + .line 1355 │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ │ move-result-wide v6 │ │ + .line 1354 │ invoke-virtual {v0, v6, v7}, Ljava/util/concurrent/TimeUnit;->toSeconds(J)J │ │ move-result-wide v0 │ │ long-to-int v4, v0 │ │ .line 1356 │ @@ -2209,15 +2249,15 @@ │ │ move-object v3, p3 │ │ invoke-virtual/range {v0 .. v5}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->addToUserHistory(Ljava/lang/String;ZLcom/android/inputmethod/latin/PrevWordsInfo;IZ)V │ │ goto :goto_0 │ │ - .line 1352 │ + .line 1353 │ .end local v2 # "wasAutoCapitalized":Z │ .end local v4 # "timeStampInSeconds":I │ :cond_2 │ const/4 v2, 0x0 │ │ goto :goto_1 │ .end method │ @@ -2298,24 +2338,26 @@ │ │ move-result v0 │ │ if-eqz v0, :cond_2 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mRecapitalizeStatus:Lcom/android/inputmethod/latin/utils/RecapitalizeStatus; │ │ + .line 1325 │ invoke-virtual {v0, v1, v2}, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->isSetAt(II)Z │ │ move-result v0 │ │ if-nez v0, :cond_3 │ │ .line 1326 │ :cond_2 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1327 │ invoke-virtual {v0, v8}, Lorg/smc/inputmethod/indic/RichInputConnection;->getSelectedText(I)Ljava/lang/CharSequence; │ │ move-result-object v7 │ │ .line 1328 │ .local v7, "selectedText":Ljava/lang/CharSequence; │ invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ @@ -2384,18 +2426,20 @@ │ │ invoke-virtual {v3}, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->getNewCursorStart()I │ │ move-result v3 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mRecapitalizeStatus:Lcom/android/inputmethod/latin/utils/RecapitalizeStatus; │ │ + .line 1341 │ invoke-virtual {v4}, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->getNewCursorEnd()I │ │ move-result v4 │ │ + .line 1340 │ invoke-virtual {v0, v3, v4}, Lorg/smc/inputmethod/indic/RichInputConnection;->setSelection(II)Z │ │ goto :goto_0 │ .end method │ │ .method private performSpecificTldProcessingOnTextInput(Ljava/lang/String;)Ljava/lang/String; │ .locals 5 │ @@ -2417,14 +2461,15 @@ │ │ invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C │ │ move-result v1 │ │ if-ne v1, v4, :cond_0 │ │ + .line 1790 │ invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C │ │ move-result v1 │ │ invoke-static {v1}, Ljava/lang/Character;->isLetter(C)Z │ │ move-result v1 │ @@ -2477,14 +2522,15 @@ │ │ iget-boolean v0, v0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mCurrentLanguageHasSpaces:Z │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1957 │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/RichInputConnection;->textBeforeCursorLooksLikeURL()Z │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ .line 1958 │ @@ -2565,23 +2611,24 @@ │ .param p1, "typedWord" # Ljava/lang/String; │ .param p2, "previousSuggestedWords" # Lorg/smc/inputmethod/indic/SuggestedWords; │ │ .prologue │ const/4 v3, 0x0 │ │ .line 1861 │ + .line 1862 │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/SuggestedWords;->isPunctuationSuggestions()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ sget-object v7, Lorg/smc/inputmethod/indic/SuggestedWords;->EMPTY:Lorg/smc/inputmethod/indic/SuggestedWords; │ │ - .line 1864 │ + .line 1865 │ .local v7, "oldSuggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ :goto_0 │ invoke-static {p1, v7}, Lorg/smc/inputmethod/indic/SuggestedWords;->getTypedWordAndPreviousSuggestions(Ljava/lang/String;Lorg/smc/inputmethod/indic/SuggestedWords;)Ljava/util/ArrayList; │ │ move-result-object v1 │ │ .line 1866 │ @@ -2601,725 +2648,720 @@ │ return-object v0 │ │ .end local v1 # "typedWordAndPreviousSuggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ .end local v7 # "oldSuggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ :cond_0 │ move-object v7, p2 │ │ - .line 1861 │ + .line 1862 │ goto :goto_0 │ .end method │ │ .method private revertCommit(Lorg/smc/inputmethod/event/InputTransaction;Lorg/smc/inputmethod/indic/settings/SettingsValues;)V │ - .locals 34 │ + .locals 30 │ .param p1, "inputTransaction" # Lorg/smc/inputmethod/event/InputTransaction; │ .param p2, "settingsValues" # Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ .prologue │ .line 1553 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLastComposedWord:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ - move-object/from16 v30, v0 │ - │ - move-object/from16 v0, v30 │ + move-object/from16 v24, v0 │ │ - iget-object v0, v0, Lorg/smc/inputmethod/indic/LastComposedWord;->mTypedWord:Ljava/lang/String; │ + move-object/from16 v0, v24 │ │ - move-object/from16 v18, v0 │ + iget-object v12, v0, Lorg/smc/inputmethod/indic/LastComposedWord;->mTypedWord:Ljava/lang/String; │ │ .line 1554 │ - .local v18, "originallyTypedWord":Ljava/lang/CharSequence; │ - if-eqz v18, :cond_2 │ + .local v12, "originallyTypedWord":Ljava/lang/CharSequence; │ + if-eqz v12, :cond_2 │ │ - invoke-interface/range {v18 .. v18}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ + .line 1555 │ + invoke-interface {v12}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ - move-result-object v19 │ + move-result-object v13 │ │ .line 1556 │ - .local v19, "originallyTypedWordString":Ljava/lang/String; │ + .local v13, "originallyTypedWordString":Ljava/lang/String; │ :goto_0 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLastComposedWord:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ - iget-object v9, v0, Lorg/smc/inputmethod/indic/LastComposedWord;->mCommittedWord:Ljava/lang/CharSequence; │ + iget-object v7, v0, Lorg/smc/inputmethod/indic/LastComposedWord;->mCommittedWord:Ljava/lang/CharSequence; │ │ .line 1557 │ - .local v9, "committedWord":Ljava/lang/CharSequence; │ - invoke-interface {v9}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ + .local v7, "committedWord":Ljava/lang/CharSequence; │ + invoke-interface {v7}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v8 │ │ .line 1558 │ - .local v10, "committedWordString":Ljava/lang/String; │ - invoke-interface {v9}, Ljava/lang/CharSequence;->length()I │ + .local v8, "committedWordString":Ljava/lang/String; │ + invoke-interface {v7}, Ljava/lang/CharSequence;->length()I │ │ - move-result v7 │ + move-result v5 │ │ .line 1559 │ - .local v7, "cancelLength":I │ + .local v5, "cancelLength":I │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLastComposedWord:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ - move-object/from16 v30, v0 │ - │ - move-object/from16 v0, v30 │ + move-object/from16 v24, v0 │ │ - iget-object v0, v0, Lorg/smc/inputmethod/indic/LastComposedWord;->mSeparatorString:Ljava/lang/String; │ + move-object/from16 v0, v24 │ │ - move-object/from16 v21, v0 │ + iget-object v15, v0, Lorg/smc/inputmethod/indic/LastComposedWord;->mSeparatorString:Ljava/lang/String; │ │ .line 1561 │ - .local v21, "separatorString":Ljava/lang/String; │ - invoke-virtual/range {v21 .. v21}, Ljava/lang/String;->length()I │ + .local v15, "separatorString":Ljava/lang/String; │ + invoke-virtual {v15}, Ljava/lang/String;->length()I │ │ - move-result v20 │ + move-result v14 │ │ .line 1563 │ - .local v20, "separatorLength":I │ - add-int v12, v7, v20 │ + .local v14, "separatorLength":I │ + add-int v10, v5, v14 │ │ .line 1576 │ - .local v12, "deleteLength":I │ + .local v10, "deleteLength":I │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - const/16 v31, 0x0 │ + const/16 v25, 0x0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ - move/from16 v1, v31 │ + move/from16 v1, v25 │ │ - invoke-virtual {v0, v12, v1}, Lorg/smc/inputmethod/indic/RichInputConnection;->deleteSurroundingText(II)V │ + invoke-virtual {v0, v10, v1}, Lorg/smc/inputmethod/indic/RichInputConnection;->deleteSurroundingText(II)V │ │ .line 1577 │ - invoke-static {v9}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ + invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v30 │ + move-result v24 │ │ - if-nez v30, :cond_0 │ + if-nez v24, :cond_0 │ │ .line 1578 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ - invoke-virtual {v0, v10}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->removeWordFromPersonalizedDicts(Ljava/lang/String;)V │ + invoke-virtual {v0, v8}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->removeWordFromPersonalizedDicts(Ljava/lang/String;)V │ │ .line 1580 │ :cond_0 │ - new-instance v30, Ljava/lang/StringBuilder; │ - │ - invoke-direct/range {v30 .. v30}, Ljava/lang/StringBuilder;->()V │ - │ - move-object/from16 v0, v30 │ + new-instance v24, Ljava/lang/StringBuilder; │ │ - move-object/from16 v1, v18 │ + invoke-direct/range {v24 .. v24}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ + move-object/from16 v0, v24 │ │ - move-result-object v30 │ + invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ - move-object/from16 v0, v30 │ + move-result-object v24 │ │ - move-object/from16 v1, v21 │ + move-object/from16 v0, v24 │ │ - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v0, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v30 │ + move-result-object v24 │ │ - invoke-virtual/range {v30 .. v30}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual/range {v24 .. v24}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v25 │ + move-result-object v19 │ │ .line 1581 │ - .local v25, "stringToCommit":Ljava/lang/String; │ - new-instance v29, Landroid/text/SpannableString; │ + .local v19, "stringToCommit":Ljava/lang/String; │ + new-instance v23, Landroid/text/SpannableString; │ │ - move-object/from16 v0, v29 │ + move-object/from16 v0, v23 │ │ - move-object/from16 v1, v25 │ + move-object/from16 v1, v19 │ │ invoke-direct {v0, v1}, Landroid/text/SpannableString;->(Ljava/lang/CharSequence;)V │ │ .line 1582 │ - .local v29, "textToCommit":Landroid/text/SpannableString; │ - instance-of v0, v9, Landroid/text/SpannableString; │ + .local v23, "textToCommit":Landroid/text/SpannableString; │ + instance-of v0, v7, Landroid/text/SpannableString; │ │ - move/from16 v30, v0 │ + move/from16 v24, v0 │ │ - if-eqz v30, :cond_7 │ + if-eqz v24, :cond_7 │ │ - move-object v11, v9 │ + move-object v9, v7 │ │ .line 1583 │ - check-cast v11, Landroid/text/SpannableString; │ + check-cast v9, Landroid/text/SpannableString; │ │ .line 1584 │ - .local v11, "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ - const/16 v30, 0x0 │ + .local v9, "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ + const/16 v24, 0x0 │ │ - invoke-interface {v9}, Ljava/lang/CharSequence;->length()I │ + .line 1585 │ + invoke-interface {v7}, Ljava/lang/CharSequence;->length()I │ │ - move-result v31 │ + move-result v25 │ │ - const-class v32, Ljava/lang/Object; │ + const-class v26, Ljava/lang/Object; │ │ - move/from16 v0, v30 │ + .line 1584 │ + move/from16 v0, v24 │ │ - move/from16 v1, v31 │ + move/from16 v1, v25 │ │ - move-object/from16 v2, v32 │ + move-object/from16 v2, v26 │ │ - invoke-virtual {v11, v0, v1, v2}, Landroid/text/SpannableString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; │ + invoke-virtual {v9, v0, v1, v2}, Landroid/text/SpannableString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; │ │ - move-result-object v24 │ + move-result-object v18 │ │ .line 1586 │ - .local v24, "spans":[Ljava/lang/Object; │ - invoke-virtual/range {v29 .. v29}, Landroid/text/SpannableString;->length()I │ + .local v18, "spans":[Ljava/lang/Object; │ + invoke-virtual/range {v23 .. v23}, Landroid/text/SpannableString;->length()I │ │ - move-result v30 │ + move-result v24 │ │ - add-int/lit8 v15, v30, -0x1 │ + add-int/lit8 v11, v24, -0x1 │ │ .line 1588 │ - .local v15, "lastCharIndex":I │ - new-instance v28, Ljava/util/ArrayList; │ + .local v11, "lastCharIndex":I │ + new-instance v22, Ljava/util/ArrayList; │ │ - invoke-direct/range {v28 .. v28}, Ljava/util/ArrayList;->()V │ + invoke-direct/range {v22 .. v22}, Ljava/util/ArrayList;->()V │ │ .line 1590 │ - .local v28, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object/from16 v0, v28 │ + .local v22, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + move-object/from16 v0, v22 │ │ - invoke-virtual {v0, v10}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 1591 │ - move-object/from16 v5, v24 │ + move-object/from16 v0, v18 │ │ - .local v5, "arr$":[Ljava/lang/Object; │ - array-length v0, v5 │ + array-length v0, v0 │ │ - move/from16 v16, v0 │ + move/from16 v26, v0 │ │ - .local v16, "len$":I │ - const/4 v13, 0x0 │ + const/16 v24, 0x0 │ │ - .local v13, "i$":I │ - move v14, v13 │ + move/from16 v25, v24 │ │ - .end local v5 # "arr$":[Ljava/lang/Object; │ - .end local v13 # "i$":I │ - .end local v16 # "len$":I │ - .local v14, "i$":I │ :goto_1 │ - move/from16 v0, v16 │ + move/from16 v0, v25 │ │ - if-ge v14, v0, :cond_6 │ + move/from16 v1, v26 │ │ - aget-object v23, v5, v14 │ + if-ge v0, v1, :cond_6 │ + │ + aget-object v17, v18, v25 │ │ .line 1595 │ - .local v23, "span":Ljava/lang/Object; │ - move-object/from16 v0, v23 │ + .local v17, "span":Ljava/lang/Object; │ + move-object/from16 v0, v17 │ │ instance-of v0, v0, Landroid/text/style/SuggestionSpan; │ │ - move/from16 v30, v0 │ + move/from16 v24, v0 │ │ - if-eqz v30, :cond_5 │ + if-eqz v24, :cond_5 │ │ - move-object/from16 v27, v23 │ + move-object/from16 v21, v17 │ │ .line 1596 │ - check-cast v27, Landroid/text/style/SuggestionSpan; │ + check-cast v21, Landroid/text/style/SuggestionSpan; │ │ .line 1597 │ - .local v27, "suggestionSpan":Landroid/text/style/SuggestionSpan; │ - invoke-virtual/range {v27 .. v27}, Landroid/text/style/SuggestionSpan;->getLocale()Ljava/lang/String; │ + .local v21, "suggestionSpan":Landroid/text/style/SuggestionSpan; │ + invoke-virtual/range {v21 .. v21}, Landroid/text/style/SuggestionSpan;->getLocale()Ljava/lang/String; │ │ - move-result-object v30 │ + move-result-object v24 │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ - move-object/from16 v31, v0 │ + move-object/from16 v27, v0 │ │ - move-object/from16 v0, v31 │ + move-object/from16 v0, v27 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mLocale:Ljava/util/Locale; │ │ - move-object/from16 v31, v0 │ + move-object/from16 v27, v0 │ │ - invoke-virtual/range {v31 .. v31}, Ljava/util/Locale;->toString()Ljava/lang/String; │ + .line 1598 │ + invoke-virtual/range {v27 .. v27}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ - move-result-object v31 │ + move-result-object v27 │ │ - invoke-virtual/range {v30 .. v31}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + .line 1597 │ + move-object/from16 v0, v24 │ + │ + move-object/from16 v1, v27 │ │ - move-result v30 │ + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + │ + move-result v24 │ │ - if-nez v30, :cond_3 │ + if-nez v24, :cond_3 │ │ .line 1591 │ - .end local v14 # "i$":I │ - .end local v27 # "suggestionSpan":Landroid/text/style/SuggestionSpan; │ + .end local v21 # "suggestionSpan":Landroid/text/style/SuggestionSpan; │ :cond_1 │ :goto_2 │ - add-int/lit8 v13, v14, 0x1 │ + add-int/lit8 v24, v25, 0x1 │ │ - .restart local v13 # "i$":I │ - move v14, v13 │ + move/from16 v25, v24 │ │ - .end local v13 # "i$":I │ - .restart local v14 # "i$":I │ goto :goto_1 │ │ - .line 1554 │ - .end local v7 # "cancelLength":I │ - .end local v9 # "committedWord":Ljava/lang/CharSequence; │ - .end local v10 # "committedWordString":Ljava/lang/String; │ - .end local v11 # "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ - .end local v12 # "deleteLength":I │ - .end local v14 # "i$":I │ - .end local v15 # "lastCharIndex":I │ - .end local v19 # "originallyTypedWordString":Ljava/lang/String; │ - .end local v20 # "separatorLength":I │ - .end local v21 # "separatorString":Ljava/lang/String; │ - .end local v23 # "span":Ljava/lang/Object; │ - .end local v24 # "spans":[Ljava/lang/Object; │ - .end local v25 # "stringToCommit":Ljava/lang/String; │ - .end local v28 # "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - .end local v29 # "textToCommit":Landroid/text/SpannableString; │ + .line 1555 │ + .end local v5 # "cancelLength":I │ + .end local v7 # "committedWord":Ljava/lang/CharSequence; │ + .end local v8 # "committedWordString":Ljava/lang/String; │ + .end local v9 # "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ + .end local v10 # "deleteLength":I │ + .end local v11 # "lastCharIndex":I │ + .end local v13 # "originallyTypedWordString":Ljava/lang/String; │ + .end local v14 # "separatorLength":I │ + .end local v15 # "separatorString":Ljava/lang/String; │ + .end local v17 # "span":Ljava/lang/Object; │ + .end local v18 # "spans":[Ljava/lang/Object; │ + .end local v19 # "stringToCommit":Ljava/lang/String; │ + .end local v22 # "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .end local v23 # "textToCommit":Landroid/text/SpannableString; │ :cond_2 │ - const-string v19, "" │ + const-string v13, "" │ │ goto/16 :goto_0 │ │ .line 1601 │ - .restart local v7 # "cancelLength":I │ - .restart local v9 # "committedWord":Ljava/lang/CharSequence; │ - .restart local v10 # "committedWordString":Ljava/lang/String; │ - .restart local v11 # "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ - .restart local v12 # "deleteLength":I │ - .restart local v14 # "i$":I │ - .restart local v15 # "lastCharIndex":I │ - .restart local v19 # "originallyTypedWordString":Ljava/lang/String; │ - .restart local v20 # "separatorLength":I │ - .restart local v21 # "separatorString":Ljava/lang/String; │ - .restart local v23 # "span":Ljava/lang/Object; │ - .restart local v24 # "spans":[Ljava/lang/Object; │ - .restart local v25 # "stringToCommit":Ljava/lang/String; │ - .restart local v27 # "suggestionSpan":Landroid/text/style/SuggestionSpan; │ - .restart local v28 # "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - .restart local v29 # "textToCommit":Landroid/text/SpannableString; │ + .restart local v5 # "cancelLength":I │ + .restart local v7 # "committedWord":Ljava/lang/CharSequence; │ + .restart local v8 # "committedWordString":Ljava/lang/String; │ + .restart local v9 # "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ + .restart local v10 # "deleteLength":I │ + .restart local v11 # "lastCharIndex":I │ + .restart local v13 # "originallyTypedWordString":Ljava/lang/String; │ + .restart local v14 # "separatorLength":I │ + .restart local v15 # "separatorString":Ljava/lang/String; │ + .restart local v17 # "span":Ljava/lang/Object; │ + .restart local v18 # "spans":[Ljava/lang/Object; │ + .restart local v19 # "stringToCommit":Ljava/lang/String; │ + .restart local v21 # "suggestionSpan":Landroid/text/style/SuggestionSpan; │ + .restart local v22 # "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .restart local v23 # "textToCommit":Landroid/text/SpannableString; │ :cond_3 │ - invoke-virtual/range {v27 .. v27}, Landroid/text/style/SuggestionSpan;->getSuggestions()[Ljava/lang/String; │ + invoke-virtual/range {v21 .. v21}, Landroid/text/style/SuggestionSpan;->getSuggestions()[Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v27 │ │ - .local v6, "arr$":[Ljava/lang/String; │ - array-length v0, v6 │ + move-object/from16 v0, v27 │ │ - move/from16 v17, v0 │ + array-length v0, v0 │ │ - .local v17, "len$":I │ - const/4 v13, 0x0 │ + move/from16 v28, v0 │ + │ + const/16 v24, 0x0 │ │ - .end local v14 # "i$":I │ - .restart local v13 # "i$":I │ :goto_3 │ - move/from16 v0, v17 │ + move/from16 v0, v24 │ │ - if-ge v13, v0, :cond_1 │ + move/from16 v1, v28 │ │ - aget-object v26, v6, v13 │ + if-ge v0, v1, :cond_1 │ + │ + aget-object v20, v27, v24 │ │ .line 1602 │ - .local v26, "suggestion":Ljava/lang/String; │ - move-object/from16 v0, v26 │ + .local v20, "suggestion":Ljava/lang/String; │ + move-object/from16 v0, v20 │ │ - invoke-virtual {v0, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v0, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v30 │ + move-result v29 │ │ - if-nez v30, :cond_4 │ + if-nez v29, :cond_4 │ │ .line 1603 │ - move-object/from16 v0, v28 │ + move-object/from16 v0, v22 │ │ - move-object/from16 v1, v26 │ + move-object/from16 v1, v20 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 1601 │ :cond_4 │ - add-int/lit8 v13, v13, 0x1 │ + add-int/lit8 v24, v24, 0x1 │ │ goto :goto_3 │ │ .line 1608 │ - .end local v6 # "arr$":[Ljava/lang/String; │ - .end local v13 # "i$":I │ - .end local v17 # "len$":I │ - .end local v26 # "suggestion":Ljava/lang/String; │ - .end local v27 # "suggestionSpan":Landroid/text/style/SuggestionSpan; │ - .restart local v14 # "i$":I │ + .end local v20 # "suggestion":Ljava/lang/String; │ + .end local v21 # "suggestionSpan":Landroid/text/style/SuggestionSpan; │ :cond_5 │ - const/16 v30, 0x0 │ + const/16 v24, 0x0 │ │ - move-object/from16 v0, v23 │ + .line 1609 │ + move-object/from16 v0, v17 │ │ - invoke-virtual {v11, v0}, Landroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I │ + invoke-virtual {v9, v0}, Landroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I │ │ - move-result v31 │ + move-result v27 │ │ - move-object/from16 v0, v29 │ + .line 1608 │ + move-object/from16 v0, v23 │ │ - move-object/from16 v1, v23 │ + move-object/from16 v1, v17 │ │ - move/from16 v2, v30 │ + move/from16 v2, v24 │ │ - move/from16 v3, v31 │ + move/from16 v3, v27 │ │ - invoke-virtual {v0, v1, v2, v15, v3}, Landroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V │ + invoke-virtual {v0, v1, v2, v11, v3}, Landroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V │ │ goto :goto_2 │ │ .line 1613 │ - .end local v23 # "span":Ljava/lang/Object; │ + .end local v17 # "span":Ljava/lang/Object; │ :cond_6 │ - new-instance v31, Landroid/text/style/SuggestionSpan; │ + new-instance v25, Landroid/text/style/SuggestionSpan; │ │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mLocale:Ljava/util/Locale; │ │ - move-object/from16 v32, v0 │ + move-object/from16 v26, v0 │ │ - invoke-virtual/range {v28 .. v28}, Ljava/util/ArrayList;->size()I │ + .line 1614 │ + invoke-virtual/range {v22 .. v22}, Ljava/util/ArrayList;->size()I │ │ - move-result v30 │ + move-result v24 │ │ - move/from16 v0, v30 │ + move/from16 v0, v24 │ │ new-array v0, v0, [Ljava/lang/String; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v0, v28 │ + move-object/from16 v0, v22 │ │ - move-object/from16 v1, v30 │ + move-object/from16 v1, v24 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ - move-result-object v30 │ + move-result-object v24 │ │ - check-cast v30, [Ljava/lang/String; │ + check-cast v24, [Ljava/lang/String; │ │ - const/16 v33, 0x0 │ + const/16 v27, 0x0 │ │ - move-object/from16 v0, v31 │ + move-object/from16 v0, v25 │ │ - move-object/from16 v1, v32 │ + move-object/from16 v1, v26 │ │ - move-object/from16 v2, v30 │ + move-object/from16 v2, v24 │ │ - move/from16 v3, v33 │ + move/from16 v3, v27 │ │ invoke-direct {v0, v1, v2, v3}, Landroid/text/style/SuggestionSpan;->(Ljava/util/Locale;[Ljava/lang/String;I)V │ │ - const/16 v30, 0x0 │ + const/16 v24, 0x0 │ │ - const/16 v32, 0x0 │ + const/16 v26, 0x0 │ │ - move-object/from16 v0, v29 │ + .line 1613 │ + move-object/from16 v0, v23 │ │ - move-object/from16 v1, v31 │ + move-object/from16 v1, v25 │ │ - move/from16 v2, v30 │ + move/from16 v2, v24 │ │ - move/from16 v3, v32 │ + move/from16 v3, v26 │ │ - invoke-virtual {v0, v1, v2, v15, v3}, Landroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V │ + invoke-virtual {v0, v1, v2, v11, v3}, Landroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V │ │ .line 1618 │ - .end local v11 # "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ - .end local v14 # "i$":I │ - .end local v15 # "lastCharIndex":I │ - .end local v24 # "spans":[Ljava/lang/Object; │ - .end local v28 # "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .end local v9 # "committedWordWithSuggestionSpans":Landroid/text/SpannableString; │ + .end local v11 # "lastCharIndex":I │ + .end local v18 # "spans":[Ljava/lang/Object; │ + .end local v22 # "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :cond_7 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLastComposedWord:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ + .line 1619 │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v30 │ + move-object/from16 v1, v24 │ │ move-object/from16 v2, p2 │ │ invoke-direct {v0, v1, v2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->shouldShowAddToDictionaryForTypedWord(Lorg/smc/inputmethod/indic/LastComposedWord;Lorg/smc/inputmethod/indic/settings/SettingsValues;)Z │ │ - move-result v22 │ + move-result v16 │ │ .line 1621 │ - .local v22, "shouldShowAddToDictionaryForTypedWord":Z │ + .local v16, "shouldShowAddToDictionaryForTypedWord":Z │ move-object/from16 v0, p1 │ │ iget-object v0, v0, Lorg/smc/inputmethod/event/InputTransaction;->mSettingsValues:Lorg/smc/inputmethod/indic/settings/SettingsValues; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ iget-boolean v0, v0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mCurrentLanguageHasSpaces:Z │ │ - move/from16 v30, v0 │ + move/from16 v24, v0 │ │ - if-eqz v30, :cond_a │ + if-eqz v24, :cond_a │ │ .line 1625 │ - if-eqz v22, :cond_9 │ + if-eqz v16, :cond_9 │ │ .line 1626 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - const/16 v31, 0x1 │ + const/16 v25, 0x1 │ │ move-object/from16 v0, p2 │ │ iget v0, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mTextHighlightColorForAddToDictionaryIndicator:I │ │ - move/from16 v32, v0 │ + move/from16 v26, v0 │ │ - invoke-virtual/range {v19 .. v19}, Ljava/lang/String;->length()I │ + .line 1628 │ + invoke-virtual {v13}, Ljava/lang/String;->length()I │ │ - move-result v33 │ + move-result v27 │ │ - move-object/from16 v0, v30 │ + .line 1626 │ + move-object/from16 v0, v24 │ │ - move-object/from16 v1, v29 │ + move-object/from16 v1, v23 │ │ - move/from16 v2, v31 │ + move/from16 v2, v25 │ │ - move/from16 v3, v32 │ + move/from16 v3, v26 │ │ - move/from16 v4, v33 │ + move/from16 v4, v27 │ │ invoke-virtual {v0, v1, v2, v3, v4}, Lorg/smc/inputmethod/indic/RichInputConnection;->commitTextWithBackgroundColor(Ljava/lang/CharSequence;III)V │ │ .line 1647 │ :goto_4 │ - sget-object v30, Lorg/smc/inputmethod/indic/LastComposedWord;->NOT_A_COMPOSED_WORD:Lorg/smc/inputmethod/indic/LastComposedWord; │ + sget-object v24, Lorg/smc/inputmethod/indic/LastComposedWord;->NOT_A_COMPOSED_WORD:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ move-object/from16 v1, p0 │ │ iput-object v0, v1, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLastComposedWord:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ .line 1649 │ - if-eqz v22, :cond_c │ + if-eqz v16, :cond_c │ │ .line 1654 │ - invoke-static/range {v21 .. v21}, Lcom/android/inputmethod/latin/utils/StringUtils;->hasLineBreakCharacter(Ljava/lang/String;)Z │ + invoke-static {v15}, Lcom/android/inputmethod/latin/utils/StringUtils;->hasLineBreakCharacter(Ljava/lang/String;)Z │ │ - move-result v30 │ + move-result v24 │ │ - if-nez v30, :cond_8 │ + if-nez v24, :cond_8 │ │ .line 1655 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mTextDecorator:Lcom/android/inputmethod/keyboard/TextDecorator; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ - move-object/from16 v31, v0 │ + move-object/from16 v25, v0 │ │ - invoke-virtual/range {v31 .. v31}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ + .line 1656 │ + invoke-virtual/range {v25 .. v25}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ - move-result v31 │ + move-result v25 │ │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ - move-object/from16 v32, v0 │ + move-object/from16 v26, v0 │ │ - invoke-virtual/range {v32 .. v32}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ + .line 1657 │ + invoke-virtual/range {v26 .. v26}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ - move-result v32 │ + move-result v26 │ │ - move-object/from16 v0, v30 │ - │ - move-object/from16 v1, v19 │ + .line 1655 │ + move-object/from16 v0, v24 │ │ - move/from16 v2, v31 │ + move/from16 v1, v25 │ │ - move/from16 v3, v32 │ + move/from16 v2, v26 │ │ - invoke-virtual {v0, v1, v2, v3}, Lcom/android/inputmethod/keyboard/TextDecorator;->showAddToDictionaryIndicator(Ljava/lang/String;II)V │ + invoke-virtual {v0, v13, v1, v2}, Lcom/android/inputmethod/keyboard/TextDecorator;->showAddToDictionaryIndicator(Ljava/lang/String;II)V │ │ .line 1659 │ :cond_8 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSuggestionStripViewAccessor:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripViewAccessor; │ │ - move-object/from16 v30, v0 │ - │ - move-object/from16 v0, v30 │ + move-object/from16 v24, v0 │ │ - move-object/from16 v1, v19 │ + move-object/from16 v0, v24 │ │ - invoke-interface {v0, v1}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripViewAccessor;->showAddToDictionaryHint(Ljava/lang/String;)V │ + invoke-interface {v0, v13}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripViewAccessor;->showAddToDictionaryHint(Ljava/lang/String;)V │ │ .line 1664 │ :goto_5 │ return-void │ │ .line 1630 │ :cond_9 │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ - const/16 v31, 0x1 │ + const/16 v25, 0x1 │ │ - move-object/from16 v0, v30 │ + move-object/from16 v0, v24 │ │ - move-object/from16 v1, v29 │ + move-object/from16 v1, v23 │ │ - move/from16 v2, v31 │ + move/from16 v2, v25 │ │ invoke-virtual {v0, v1, v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->commitText(Ljava/lang/CharSequence;I)V │ │ goto :goto_4 │ │ .line 1635 │ :cond_a │ - invoke-static/range {v25 .. v25}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ + invoke-static/range {v19 .. v19}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ - move-result-object v8 │ + move-result-object v6 │ │ .line 1636 │ - .local v8, "codePoints":[I │ + .local v6, "codePoints":[I │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ - move-object/from16 v30, v0 │ + move-object/from16 v24, v0 │ │ move-object/from16 v0, p0 │ │ iget-object v0, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ - move-object/from16 v31, v0 │ + move-object/from16 v25, v0 │ │ - move-object/from16 v0, v31 │ + .line 1637 │ + move-object/from16 v0, v25 │ │ - invoke-virtual {v0, v8}, Lorg/smc/inputmethod/indic/LatinIME;->getCoordinatesForCurrentKeyboard([I)[I │ + invoke-virtual {v0, v6}, Lorg/smc/inputmethod/indic/LatinIME;->getCoordinatesForCurrentKeyboard([I)[I │ │ - move-result-object v31 │ + move-result-object v25 │ │ - move-object/from16 v0, v30 │ + .line 1636 │ + move-object/from16 v0, v24 │ │ - move-object/from16 v1, v31 │ + move-object/from16 v1, v25 │ │ - invoke-virtual {v0, v8, v1}, Lorg/smc/inputmethod/indic/WordComposer;->setComposingWord([I[I)V │ + invoke-virtual {v0, v6, v1}, Lorg/smc/inputmethod/indic/WordComposer;->setComposingWord([I[I)V │ │ .line 1638 │ - if-eqz v22, :cond_b │ + if-eqz v16, :cond_b │ │ .line 1639 │ - const/16 v30, 0x1 │ + const/16 v24, 0x1 │ │ move-object/from16 v0, p2 │ │ iget v0, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mTextHighlightColorForAddToDictionaryIndicator:I │ │ - move/from16 v31, v0 │ + move/from16 v25, v0 │ │ - invoke-virtual/range {v19 .. v19}, Ljava/lang/String;->length()I │ + .line 1641 │ + invoke-virtual {v13}, Ljava/lang/String;->length()I │ │ - move-result v32 │ + move-result v26 │ │ + .line 1639 │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v29 │ + move-object/from16 v1, v23 │ │ - move/from16 v2, v30 │ + move/from16 v2, v24 │ │ - move/from16 v3, v31 │ + move/from16 v3, v25 │ │ - move/from16 v4, v32 │ + move/from16 v4, v26 │ │ invoke-direct {v0, v1, v2, v3, v4}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->setComposingTextInternalWithBackgroundColor(Ljava/lang/CharSequence;III)V │ │ goto/16 :goto_4 │ │ .line 1643 │ :cond_b │ - const/16 v30, 0x1 │ + const/16 v24, 0x1 │ │ move-object/from16 v0, p0 │ │ - move-object/from16 v1, v29 │ + move-object/from16 v1, v23 │ │ - move/from16 v2, v30 │ + move/from16 v2, v24 │ │ invoke-direct {v0, v1, v2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->setComposingTextInternal(Ljava/lang/CharSequence;I)V │ │ goto/16 :goto_4 │ │ .line 1662 │ - .end local v8 # "codePoints":[I │ + .end local v6 # "codePoints":[I │ :cond_c │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/event/InputTransaction;->setRequiresUpdateSuggestions()V │ │ goto :goto_5 │ .end method │ │ .method private sendDownUpKeyEvent(I)V │ @@ -3480,18 +3522,20 @@ │ .param p1, "newComposingText" # Ljava/lang/CharSequence; │ .param p2, "newCursorPosition" # I │ │ .prologue │ .line 2190 │ const/4 v0, 0x0 │ │ + .line 2191 │ invoke-interface {p1}, Ljava/lang/CharSequence;->length()I │ │ move-result v1 │ │ + .line 2190 │ invoke-direct {p0, p1, p2, v0, v1}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->setComposingTextInternalWithBackgroundColor(Ljava/lang/CharSequence;III)V │ │ .line 2192 │ return-void │ .end method │ │ .method private setComposingTextInternalWithBackgroundColor(Ljava/lang/CharSequence;III)V │ @@ -3651,45 +3695,50 @@ │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ const/16 v2, 0xa │ │ + .line 276 │ invoke-virtual {p1, v2}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->isKindOf(I)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ :cond_0 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ iget-object v3, p1, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ + .line 277 │ invoke-virtual {v2, v3, v0}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->isValidWord(Ljava/lang/String;Z)Z │ │ move-result v2 │ │ if-nez v2, :cond_1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mDictionaryFacilitator:Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ + .line 278 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->isUserDictionaryEnabled()Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ + .line 275 │ :goto_0 │ return v0 │ │ :cond_1 │ move v0, v1 │ │ + .line 278 │ goto :goto_0 │ .end method │ │ .method private tryPerformDoubleSpacePeriod(Lorg/smc/inputmethod/event/Event;Lorg/smc/inputmethod/event/InputTransaction;)Z │ .locals 9 │ .param p1, "event" # Lorg/smc/inputmethod/event/Event; │ .param p2, "inputTransaction" # Lorg/smc/inputmethod/event/InputTransaction; │ @@ -3708,14 +3757,15 @@ │ │ if-eqz v6, :cond_0 │ │ iget v6, p1, Lorg/smc/inputmethod/event/Event;->mCodePoint:I │ │ if-ne v8, v6, :cond_0 │ │ + .line 1253 │ invoke-virtual {p0, p2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->isDoubleSpacePeriodCountdownActive(Lorg/smc/inputmethod/event/InputTransaction;)Z │ │ move-result v6 │ │ if-nez v6, :cond_1 │ │ .line 1278 │ @@ -3753,15 +3803,15 @@ │ │ invoke-interface {v1, v6}, Ljava/lang/CharSequence;->charAt(I)C │ │ move-result v6 │ │ if-ne v6, v8, :cond_0 │ │ - .line 1265 │ + .line 1266 │ invoke-interface {v1, v4}, Ljava/lang/CharSequence;->charAt(I)C │ │ move-result v6 │ │ invoke-interface {v1, v5}, Ljava/lang/CharSequence;->charAt(I)C │ │ move-result v7 │ @@ -3770,14 +3820,15 @@ │ │ move-result v6 │ │ if-eqz v6, :cond_2 │ │ add-int/lit8 v6, v2, -0x3 │ │ + .line 1267 │ invoke-static {v1, v6}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I │ │ move-result v0 │ │ .line 1268 │ .local v0, "firstCodePoint":I │ :goto_1 │ @@ -3815,15 +3866,15 @@ │ invoke-virtual {p2}, Lorg/smc/inputmethod/event/InputTransaction;->setRequiresUpdateSuggestions()V │ │ move v4, v5 │ │ .line 1276 │ goto :goto_0 │ │ - .line 1265 │ + .line 1267 │ .end local v0 # "firstCodePoint":I │ .end local v3 # "textToInsert":Ljava/lang/String; │ :cond_2 │ add-int/lit8 v6, v2, -0x2 │ │ invoke-interface {v1, v6}, Ljava/lang/CharSequence;->charAt(I)C │ │ @@ -4225,24 +4276,27 @@ │ │ if-eqz v0, :cond_0 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mRecapitalizeStatus:Lcom/android/inputmethod/latin/utils/RecapitalizeStatus; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1713 │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1714 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v2 │ │ + .line 1713 │ invoke-virtual {v0, v1, v2}, Lcom/android/inputmethod/latin/utils/RecapitalizeStatus;->isSetAt(II)Z │ │ move-result v0 │ │ if-nez v0, :cond_1 │ │ .line 1716 │ @@ -4301,14 +4355,15 @@ │ │ new-instance v1, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLastComposedWord:Lorg/smc/inputmethod/indic/LastComposedWord; │ │ iget-object v2, v2, Lorg/smc/inputmethod/indic/LastComposedWord;->mCommittedWord:Ljava/lang/CharSequence; │ │ + .line 1747 │ invoke-interface {v2}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-direct {v1, v2}, Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;->(Ljava/lang/CharSequence;)V │ │ invoke-direct {v0, v1}, Lcom/android/inputmethod/latin/PrevWordsInfo;->(Lcom/android/inputmethod/latin/PrevWordsInfo$WordInfo;)V │ @@ -4325,37 +4380,41 @@ │ .param p5, "sequenceNumber" # I │ .param p6, "callback" # Lorg/smc/inputmethod/indic/Suggest$OnGetSuggestedWordsCallback; │ │ .prologue │ .line 2159 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 2160 │ invoke-direct {p0, p1, p3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getActualCapsMode(Lorg/smc/inputmethod/indic/settings/SettingsValues;I)I │ │ move-result v1 │ │ + .line 2159 │ invoke-virtual {v0, v1}, Lorg/smc/inputmethod/indic/WordComposer;->adviseCapitalizedModeBeforeFetchingSuggestions(I)V │ │ .line 2161 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSuggest:Lorg/smc/inputmethod/indic/Suggest; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ iget-object v3, p1, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 2167 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/WordComposer;->isComposingWord()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ const/4 v2, 0x2 │ │ + .line 2162 │ :goto_0 │ invoke-virtual {p0, v3, v2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getPrevWordsInfoFromNthPreviousWordForSuggestion(Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;I)Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ move-result-object v2 │ │ new-instance v4, Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion; │ │ @@ -4373,20 +4432,21 @@ │ │ move v6, p4 │ │ move v7, p5 │ │ move-object v8, p6 │ │ + .line 2161 │ invoke-virtual/range {v0 .. v8}, Lorg/smc/inputmethod/indic/Suggest;->getSuggestedWords(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion;ZIILorg/smc/inputmethod/indic/Suggest$OnGetSuggestedWordsCallback;)V │ │ .line 2174 │ return-void │ │ - .line 2161 │ + .line 2167 │ :cond_0 │ const/4 v2, 0x1 │ │ goto :goto_0 │ .end method │ │ .method public isDoubleSpacePeriodCountdownActive(Lorg/smc/inputmethod/event/InputTransaction;)Z │ @@ -4475,20 +4535,22 @@ │ │ move-result-object v3 │ │ .line 455 │ .local v3, "processedEvent":Lorg/smc/inputmethod/event/Event; │ new-instance v1, Lorg/smc/inputmethod/event/InputTransaction; │ │ + .line 456 │ invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J │ │ move-result-wide v4 │ │ iget v6, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSpaceState:I │ │ + .line 457 │ invoke-direct {p0, p1, p3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getActualCapsMode(Lorg/smc/inputmethod/indic/settings/SettingsValues;I)I │ │ move-result v7 │ │ move-object v2, p1 │ │ invoke-direct/range {v1 .. v7}, Lorg/smc/inputmethod/event/InputTransaction;->(Lorg/smc/inputmethod/indic/settings/SettingsValues;Lorg/smc/inputmethod/event/Event;JII)V │ @@ -4774,14 +4836,15 @@ │ │ move-result-object v3 │ │ .line 307 │ .restart local v3 # "event":Lorg/smc/inputmethod/event/Event; │ new-instance v1, Lorg/smc/inputmethod/event/InputTransaction; │ │ + .line 308 │ invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J │ │ move-result-wide v4 │ │ iget v6, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSpaceState:I │ │ move-object v2, p1 │ @@ -4810,14 +4873,15 @@ │ │ move-result v2 │ │ if-lez v2, :cond_2 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 316 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/WordComposer;->isBatchMode()Z │ │ move-result v2 │ │ if-nez v2, :cond_2 │ │ .line 317 │ @@ -4831,14 +4895,15 @@ │ .local v8, "firstChar":I │ invoke-virtual {p1, v8}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isWordSeparator(I)Z │ │ move-result v2 │ │ if-eqz v2, :cond_1 │ │ + .line 319 │ invoke-virtual {p1, v8}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isUsuallyPrecededBySpace(I)Z │ │ move-result v2 │ │ if-eqz v2, :cond_2 │ │ .line 320 │ @@ -5007,26 +5072,28 @@ │ .local v1, "codePointBeforeCursor":I │ invoke-static {v1}, Ljava/lang/Character;->isLetterOrDigit(I)Z │ │ move-result v3 │ │ if-nez v3, :cond_0 │ │ + .line 531 │ invoke-virtual {p1, v1}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isUsuallyFollowedBySpace(I)Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ .line 532 │ :cond_0 │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v3 │ │ + .line 533 │ invoke-virtual {p0, p1}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentAutoCapsState(Lorg/smc/inputmethod/indic/settings/SettingsValues;)I │ │ move-result v4 │ │ if-eq v3, v4, :cond_5 │ │ .line 534 │ @@ -5040,38 +5107,42 @@ │ if-nez v0, :cond_1 │ │ .line 541 │ invoke-virtual {p0, p1}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentAutoCapsState(Lorg/smc/inputmethod/indic/settings/SettingsValues;)I │ │ move-result v2 │ │ + .line 542 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentRecapitalizeState()I │ │ move-result v3 │ │ + .line 541 │ invoke-virtual {p2, v2, v3}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ .line 545 │ .end local v0 # "autoShiftHasBeenOverriden":Z │ :cond_1 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->endBatchEdit()V │ │ .line 546 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 547 │ invoke-virtual {p2}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v3 │ │ invoke-direct {p0, p1, v3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getActualCapsMode(Lorg/smc/inputmethod/indic/settings/SettingsValues;I)I │ │ move-result v3 │ │ + .line 546 │ invoke-virtual {v2, v3}, Lorg/smc/inputmethod/indic/WordComposer;->setCapitalizedModeAtStartComposingTime(I)V │ │ .line 548 │ return-void │ │ .line 510 │ .end local v1 # "codePointBeforeCursor":I │ @@ -5089,18 +5160,20 @@ │ │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v3 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 514 │ invoke-virtual {v4}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v4 │ │ + .line 513 │ invoke-direct {p0, v3, v4, v0}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->resetEntireInputState(IIZ)V │ │ goto :goto_0 │ │ .line 515 │ :cond_3 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ @@ -5126,15 +5199,15 @@ │ │ goto :goto_0 │ │ .restart local v1 # "codePointBeforeCursor":I │ :cond_5 │ move v0, v2 │ │ - .line 532 │ + .line 533 │ goto :goto_1 │ .end method │ │ .method public onSubtypeChanged(Ljava/lang/String;Lorg/smc/inputmethod/indic/settings/SettingsValues;)V │ .locals 0 │ .param p1, "combiningSpec" # Ljava/lang/String; │ .param p2, "settingsValues" # Lorg/smc/inputmethod/indic/settings/SettingsValues; │ @@ -5169,20 +5242,22 @@ │ │ move-result-object v0 │ │ .line 243 │ .local v0, "rawText":Ljava/lang/String; │ new-instance v1, Lorg/smc/inputmethod/event/InputTransaction; │ │ + .line 244 │ invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J │ │ move-result-wide v4 │ │ iget v6, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSpaceState:I │ │ + .line 245 │ invoke-direct {p0, p1, p3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getActualCapsMode(Lorg/smc/inputmethod/indic/settings/SettingsValues;I)I │ │ move-result v7 │ │ move-object v2, p1 │ │ move-object v3, p2 │ @@ -5333,32 +5408,35 @@ │ invoke-virtual {v2, v3, v5}, Lorg/smc/inputmethod/indic/RichInputConnection;->commitText(Ljava/lang/CharSequence;I)V │ │ .line 580 │ const/4 v2, 0x4 │ │ iput v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSpaceState:I │ │ - .line 581 │ + .line 582 │ invoke-virtual {p0, p1}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentAutoCapsState(Lorg/smc/inputmethod/indic/settings/SettingsValues;)I │ │ move-result v2 │ │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentRecapitalizeState()I │ │ move-result v3 │ │ + .line 581 │ invoke-virtual {p3, v2, v3}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ .line 583 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 584 │ invoke-virtual {p3}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->getKeyboardShiftMode()I │ │ move-result v3 │ │ + .line 583 │ invoke-direct {p0, p1, v3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getActualCapsMode(Lorg/smc/inputmethod/indic/settings/SettingsValues;I)I │ │ move-result v3 │ │ invoke-virtual {v2, v3}, Lorg/smc/inputmethod/indic/WordComposer;->setCapitalizedModeAtStartComposingTime(I)V │ │ .line 585 │ @@ -5443,14 +5521,15 @@ │ .line 382 │ if-ne p1, p3, :cond_1 │ │ if-ne p2, p4, :cond_1 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 384 │ invoke-virtual {v5}, Lorg/smc/inputmethod/indic/WordComposer;->isComposingWord()Z │ │ move-result v5 │ │ if-nez v5, :cond_4 │ │ :cond_1 │ @@ -5481,14 +5560,15 @@ │ │ if-eqz v5, :cond_3 │ │ if-eqz v2, :cond_6 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 397 │ invoke-virtual {v5, v1}, Lorg/smc/inputmethod/indic/WordComposer;->moveCursorByAndReturnIfInsideComposingWord(I)Z │ │ move-result v5 │ │ if-nez v5, :cond_6 │ │ .line 412 │ @@ -5530,15 +5610,15 @@ │ │ .end local v0 # "hasOrHadSelection":Z │ .end local v1 # "moveAmount":I │ .end local v2 # "selectionChangedOrSafeToReset":Z │ :cond_4 │ move v2, v3 │ │ - .line 382 │ + .line 384 │ goto :goto_1 │ │ .restart local v2 # "selectionChangedOrSafeToReset":Z │ :cond_5 │ move v0, v3 │ │ .line 385 │ @@ -5648,15 +5728,15 @@ │ │ invoke-virtual {v1, v6, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6, v7}, Lorg/smc/inputmethod/indic/RichInputConnection;->commitText(Ljava/lang/CharSequence;I)V │ │ - .line 1987 │ + .line 1988 │ invoke-virtual {p2}, Lorg/smc/inputmethod/indic/SuggestedWords;->getSuggestedWordsForLastWordOfPhraseGesture()Lorg/smc/inputmethod/indic/SuggestedWords; │ │ move-result-object v4 │ │ .line 1989 │ .local v4, "suggestedWordsForLastWordOfPhraseGesture":Lorg/smc/inputmethod/indic/SuggestedWords; │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ @@ -5691,18 +5771,20 @@ │ iput v8, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mSpaceState:I │ │ .line 2001 │ invoke-virtual {p0, p1}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentAutoCapsState(Lorg/smc/inputmethod/indic/settings/SettingsValues;)I │ │ move-result v5 │ │ + .line 2002 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getCurrentRecapitalizeState()I │ │ move-result v6 │ │ + .line 2001 │ invoke-virtual {p3, v5, v6}, Lcom/android/inputmethod/keyboard/KeyboardSwitcher;->requestUpdatingShiftState(II)V │ │ goto :goto_1 │ │ .line 1995 │ :cond_4 │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ @@ -5841,15 +5923,15 @@ │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->closeDictionaries()V │ │ .line 226 │ return-void │ .end method │ │ .method public restartSuggestionsOnWordTouchedByCursor(Lorg/smc/inputmethod/indic/settings/SettingsValues;ZI)V │ - .locals 29 │ + .locals 24 │ .param p1, "settingsValues" # Lorg/smc/inputmethod/indic/settings/SettingsValues; │ .param p2, "shouldIncludeResumedWordInSuggestions" # Z │ .param p3, "currentKeyboardScriptId" # I │ │ .prologue │ .line 1420 │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isBrokenByRecorrection()Z │ @@ -5862,44 +5944,48 @@ │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ iget-boolean v2, v2, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mCurrentLanguageHasSpaces:Z │ │ if-eqz v2, :cond_0 │ │ + .line 1425 │ invoke-virtual/range {p1 .. p1}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->needsToLookupSuggestions()Z │ │ move-result v2 │ │ if-eqz v2, :cond_0 │ │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mInputLogicHandler:Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler; │ │ + .line 1429 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler;->isInBatchInput()Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1431 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->hasSelection()Z │ │ move-result v2 │ │ if-nez v2, :cond_0 │ │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 1433 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v2 │ │ if-gez v2, :cond_2 │ │ .line 1434 │ @@ -5919,18 +6005,18 @@ │ :cond_2 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ - move-result v18 │ + move-result v16 │ │ .line 1438 │ - .local v18, "expectedCursorPosition":I │ + .local v16, "expectedCursorPosition":I │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ move-object/from16 v0, p1 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ @@ -5977,22 +6063,22 @@ │ │ iget-boolean v7, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->isTransliteration:Z │ │ move/from16 v0, p3 │ │ invoke-virtual {v2, v4, v0, v7}, Lorg/smc/inputmethod/indic/RichInputConnection;->getWordRangeAtCursor(Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;IZ)Lcom/android/inputmethod/latin/utils/TextRange; │ │ - move-result-object v26 │ + move-result-object v20 │ │ .line 1446 │ - .local v26, "range":Lcom/android/inputmethod/latin/utils/TextRange; │ - if-eqz v26, :cond_1 │ + .local v20, "range":Lcom/android/inputmethod/latin/utils/TextRange; │ + if-eqz v20, :cond_1 │ │ .line 1447 │ - invoke-virtual/range {v26 .. v26}, Lcom/android/inputmethod/latin/utils/TextRange;->length()I │ + invoke-virtual/range {v20 .. v20}, Lcom/android/inputmethod/latin/utils/TextRange;->length()I │ │ move-result v2 │ │ if-gtz v2, :cond_4 │ │ .line 1449 │ move-object/from16 v0, p0 │ @@ -6001,41 +6087,41 @@ │ │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/LatinIME;->setNeutralSuggestionStrip()V │ │ goto :goto_0 │ │ .line 1454 │ :cond_4 │ - move-object/from16 v0, v26 │ + move-object/from16 v0, v20 │ │ iget-boolean v2, v0, Lcom/android/inputmethod/latin/utils/TextRange;->mHasUrlSpans:Z │ │ if-nez v2, :cond_1 │ │ .line 1458 │ - invoke-virtual/range {v26 .. v26}, Lcom/android/inputmethod/latin/utils/TextRange;->getNumberOfCharsInWordBeforeCursor()I │ + invoke-virtual/range {v20 .. v20}, Lcom/android/inputmethod/latin/utils/TextRange;->getNumberOfCharsInWordBeforeCursor()I │ │ - move-result v24 │ + move-result v18 │ │ .line 1459 │ - .local v24, "numberOfCharsInWordBeforeCursor":I │ - move/from16 v0, v24 │ + .local v18, "numberOfCharsInWordBeforeCursor":I │ + move/from16 v0, v18 │ │ - move/from16 v1, v18 │ + move/from16 v1, v16 │ │ if-gt v0, v1, :cond_1 │ │ .line 1460 │ - new-instance v28, Ljava/util/ArrayList; │ + new-instance v22, Ljava/util/ArrayList; │ │ - invoke-direct/range {v28 .. v28}, Ljava/util/ArrayList;->()V │ + invoke-direct/range {v22 .. v22}, Ljava/util/ArrayList;->()V │ │ .line 1461 │ - .local v28, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object/from16 v0, v26 │ + .local v22, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + move-object/from16 v0, v20 │ │ iget-object v2, v0, Lcom/android/inputmethod/latin/utils/TextRange;->mWord:Ljava/lang/CharSequence; │ │ invoke-interface {v2}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v3 │ │ @@ -6054,15 +6140,15 @@ │ │ const/4 v7, -0x1 │ │ const/4 v8, -0x1 │ │ invoke-direct/range {v2 .. v8}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->(Ljava/lang/String;IILorg/smc/inputmethod/indic/Dictionary;II)V │ │ - move-object/from16 v0, v28 │ + move-object/from16 v0, v22 │ │ invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 1469 │ :cond_5 │ move-object/from16 v0, p1 │ │ @@ -6079,205 +6165,182 @@ │ │ invoke-interface {v2}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripViewAccessor;->setNeutralSuggestionStrip()V │ │ goto/16 :goto_0 │ │ .line 1473 │ :cond_6 │ - const/16 v19, 0x0 │ + const/16 v17, 0x0 │ │ .line 1474 │ - .local v19, "i":I │ - invoke-virtual/range {v26 .. v26}, Lcom/android/inputmethod/latin/utils/TextRange;->getSuggestionSpansAtWord()[Landroid/text/style/SuggestionSpan; │ - │ - move-result-object v15 │ + .local v17, "i":I │ + invoke-virtual/range {v20 .. v20}, Lcom/android/inputmethod/latin/utils/TextRange;->getSuggestionSpansAtWord()[Landroid/text/style/SuggestionSpan; │ │ - .local v15, "arr$":[Landroid/text/style/SuggestionSpan; │ - array-length v0, v15 │ + move-result-object v12 │ │ - move/from16 v22, v0 │ + array-length v13, v12 │ │ - .local v22, "len$":I │ - const/16 v20, 0x0 │ + const/4 v2, 0x0 │ │ - .local v20, "i$":I │ - move/from16 v21, v20 │ + move v11, v2 │ │ - .end local v15 # "arr$":[Landroid/text/style/SuggestionSpan; │ - .end local v20 # "i$":I │ - .end local v22 # "len$":I │ - .local v21, "i$":I │ :goto_1 │ - move/from16 v0, v21 │ - │ - move/from16 v1, v22 │ + if-ge v11, v13, :cond_9 │ │ - if-ge v0, v1, :cond_9 │ - │ - aget-object v27, v15, v21 │ + aget-object v21, v12, v11 │ │ .line 1475 │ - .local v27, "span":Landroid/text/style/SuggestionSpan; │ - invoke-virtual/range {v27 .. v27}, Landroid/text/style/SuggestionSpan;->getSuggestions()[Ljava/lang/String; │ - │ - move-result-object v16 │ + .local v21, "span":Landroid/text/style/SuggestionSpan; │ + invoke-virtual/range {v21 .. v21}, Landroid/text/style/SuggestionSpan;->getSuggestions()[Ljava/lang/String; │ │ - .local v16, "arr$":[Ljava/lang/String; │ - move-object/from16 v0, v16 │ + move-result-object v14 │ │ - array-length v0, v0 │ + array-length v0, v14 │ │ move/from16 v23, v0 │ │ - .local v23, "len$":I │ - const/16 v20, 0x0 │ + const/4 v2, 0x0 │ │ - .end local v21 # "i$":I │ - .restart local v20 # "i$":I │ :goto_2 │ - move/from16 v0, v20 │ + move/from16 v0, v23 │ │ - move/from16 v1, v23 │ + if-ge v2, v0, :cond_8 │ │ - if-ge v0, v1, :cond_8 │ - │ - aget-object v5, v16, v20 │ + aget-object v5, v14, v2 │ │ .line 1476 │ .local v5, "s":Ljava/lang/String; │ - add-int/lit8 v19, v19, 0x1 │ + add-int/lit8 v17, v17, 0x1 │ │ .line 1477 │ invoke-static {v5, v3}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z │ │ - move-result v2 │ + move-result v4 │ │ - if-nez v2, :cond_7 │ + if-nez v4, :cond_7 │ │ .line 1478 │ new-instance v4, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ - rsub-int/lit8 v6, v19, 0x12 │ + rsub-int/lit8 v6, v17, 0x12 │ │ const/16 v7, 0x9 │ │ sget-object v8, Lorg/smc/inputmethod/indic/Dictionary;->DICTIONARY_RESUMED:Lorg/smc/inputmethod/indic/Dictionary; │ │ const/4 v9, -0x1 │ │ const/4 v10, -0x1 │ │ invoke-direct/range {v4 .. v10}, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->(Ljava/lang/String;IILorg/smc/inputmethod/indic/Dictionary;II)V │ │ - move-object/from16 v0, v28 │ + move-object/from16 v0, v22 │ │ invoke-virtual {v0, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 1475 │ :cond_7 │ - add-int/lit8 v20, v20, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_2 │ │ .line 1474 │ .end local v5 # "s":Ljava/lang/String; │ :cond_8 │ - add-int/lit8 v20, v21, 0x1 │ + add-int/lit8 v2, v11, 0x1 │ │ - move/from16 v21, v20 │ + move v11, v2 │ │ - .end local v20 # "i$":I │ - .restart local v21 # "i$":I │ goto :goto_1 │ │ .line 1487 │ - .end local v16 # "arr$":[Ljava/lang/String; │ - .end local v23 # "len$":I │ - .end local v27 # "span":Landroid/text/style/SuggestionSpan; │ + .end local v21 # "span":Landroid/text/style/SuggestionSpan; │ :cond_9 │ invoke-static {v3}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ - move-result-object v17 │ + move-result-object v15 │ │ .line 1491 │ - .local v17, "codePoints":[I │ + .local v15, "codePoints":[I │ move-object/from16 v0, p1 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ - if-nez v24, :cond_a │ + if-nez v18, :cond_a │ │ const/4 v2, 0x1 │ │ :goto_3 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v4, v2}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getPrevWordsInfoFromNthPreviousWordForSuggestion(Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;I)Lcom/android/inputmethod/latin/PrevWordsInfo; │ │ - move-result-object v25 │ + move-result-object v19 │ │ .line 1494 │ - .local v25, "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ + .local v19, "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mLatinIME:Lorg/smc/inputmethod/indic/LatinIME; │ │ - move-object/from16 v0, v17 │ - │ - invoke-virtual {v4, v0}, Lorg/smc/inputmethod/indic/LatinIME;->getCoordinatesForCurrentKeyboard([I)[I │ + .line 1495 │ + invoke-virtual {v4, v15}, Lorg/smc/inputmethod/indic/LatinIME;->getCoordinatesForCurrentKeyboard([I)[I │ │ move-result-object v4 │ │ - move-object/from16 v0, v17 │ - │ - invoke-virtual {v2, v0, v4}, Lorg/smc/inputmethod/indic/WordComposer;->setComposingWord([I[I)V │ + .line 1494 │ + invoke-virtual {v2, v15, v4}, Lorg/smc/inputmethod/indic/WordComposer;->setComposingWord([I[I)V │ │ .line 1496 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ const/4 v4, 0x0 │ │ - move/from16 v0, v24 │ + .line 1497 │ + move/from16 v0, v18 │ │ invoke-virtual {v3, v4, v0}, Ljava/lang/String;->codePointCount(II)I │ │ move-result v4 │ │ + .line 1496 │ invoke-virtual {v2, v4}, Lorg/smc/inputmethod/indic/WordComposer;->setCursorPositionWithinWord(I)V │ │ .line 1498 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/RichInputConnection;->maybeMoveTheCursorAroundAndRestoreToWorkaroundABug()V │ │ .line 1499 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ - sub-int v4, v18, v24 │ + sub-int v4, v16, v18 │ │ - invoke-virtual/range {v26 .. v26}, Lcom/android/inputmethod/latin/utils/TextRange;->getNumberOfCharsInWordAfterCursor()I │ + .line 1500 │ + invoke-virtual/range {v20 .. v20}, Lcom/android/inputmethod/latin/utils/TextRange;->getNumberOfCharsInWordAfterCursor()I │ │ move-result v7 │ │ - add-int v7, v7, v18 │ + add-int v7, v7, v16 │ │ + .line 1499 │ invoke-virtual {v2, v4, v7}, Lorg/smc/inputmethod/indic/RichInputConnection;->setComposingRegion(II)V │ │ .line 1501 │ - invoke-virtual/range {v28 .. v28}, Ljava/util/ArrayList;->size()I │ + invoke-virtual/range {v22 .. v22}, Ljava/util/ArrayList;->size()I │ │ move-result v4 │ │ if-eqz p2, :cond_b │ │ const/4 v2, 0x1 │ │ @@ -6302,22 +6365,22 @@ │ invoke-direct {v8, v0, v1}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic$3;->(Lorg/smc/inputmethod/indic/inputlogic/InputLogic;Z)V │ │ invoke-virtual {v2, v4, v7, v8}, Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler;->getSuggestedWords(IILorg/smc/inputmethod/indic/Suggest$OnGetSuggestedWordsCallback;)V │ │ goto/16 :goto_0 │ │ .line 1491 │ - .end local v25 # "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ + .end local v19 # "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ :cond_a │ const/4 v2, 0x2 │ │ goto :goto_3 │ │ .line 1501 │ - .restart local v25 # "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ + .restart local v19 # "prevWordsInfo":Lcom/android/inputmethod/latin/PrevWordsInfo; │ :cond_b │ const/4 v2, 0x0 │ │ goto :goto_4 │ │ .line 1534 │ :cond_c │ @@ -6331,15 +6394,15 @@ │ │ const/4 v12, 0x0 │ │ const/4 v13, 0x5 │ │ const/4 v14, -0x1 │ │ - move-object/from16 v7, v28 │ + move-object/from16 v7, v22 │ │ move-object v9, v3 │ │ invoke-direct/range {v6 .. v14}, Lorg/smc/inputmethod/indic/SuggestedWords;->(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;ZZZII)V │ │ .line 1538 │ .local v6, "suggestedWords":Lorg/smc/inputmethod/indic/SuggestedWords; │ @@ -6379,14 +6442,15 @@ │ │ move-result v3 │ │ if-nez v3, :cond_0 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 2135 │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/RichInputConnection;->isCursorPositionKnown()Z │ │ move-result v3 │ │ if-nez v3, :cond_1 │ │ :cond_0 │ @@ -6395,24 +6459,26 @@ │ .line 2136 │ .local v0, "shouldFinishComposition":Z │ :goto_0 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ + .line 2137 │ invoke-virtual {v4}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionStart()I │ │ move-result v4 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ invoke-virtual {v5}, Lorg/smc/inputmethod/indic/RichInputConnection;->getExpectedSelectionEnd()I │ │ move-result v5 │ │ + .line 2136 │ invoke-virtual {v3, v4, v5, v0}, Lorg/smc/inputmethod/indic/RichInputConnection;->resetCachesUponCursorMoveAndReturnSuccess(IIZ)Z │ │ move-result v3 │ │ if-nez v3, :cond_2 │ │ .line 2139 │ @@ -6427,15 +6493,15 @@ │ :goto_1 │ return v1 │ │ .end local v0 # "shouldFinishComposition":Z │ :cond_1 │ move v0, v1 │ │ - .line 2134 │ + .line 2135 │ goto :goto_0 │ │ .line 2146 │ .restart local v0 # "shouldFinishComposition":Z │ :cond_2 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mConnection:Lorg/smc/inputmethod/indic/RichInputConnection; │ │ @@ -6509,26 +6575,28 @@ │ .local v1, "newAutoCorrectionIndicator":Z │ iget-boolean v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mIsAutoCorrectionIndicatorOn:Z │ │ if-eq v3, v1, :cond_1 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 625 │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/WordComposer;->isComposingWord()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ .line 626 │ iput-boolean v1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mIsAutoCorrectionIndicatorOn:Z │ │ .line 627 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->mWordComposer:Lorg/smc/inputmethod/indic/WordComposer; │ │ + .line 628 │ invoke-virtual {v3}, Lorg/smc/inputmethod/indic/WordComposer;->getTypedWord()Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-direct {p0, v3}, Lorg/smc/inputmethod/indic/inputlogic/InputLogic;->getTextWithUnderline(Ljava/lang/String;)Ljava/lang/CharSequence; │ │ move-result-object v2 ├── smali/org/smc/inputmethod/indic/inputlogic/InputLogicHandler$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$isTailBatchInput:Z │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler;Z)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler; │ │ .prologue │ .line 138 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler$2;->this$0:Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler; │ │ iput-boolean p2, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler$2;->val$isTailBatchInput:Z ├── smali/org/smc/inputmethod/indic/inputlogic/InputLogicHandler.smali │ @@ -85,14 +85,15 @@ │ iput-object v1, p0, Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler;->mLock:Ljava/lang/Object; │ │ .line 71 │ new-instance v0, Landroid/os/HandlerThread; │ │ const-class v1, Lorg/smc/inputmethod/indic/inputlogic/InputLogicHandler; │ │ + .line 72 │ invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-direct {v0, v1}, Landroid/os/HandlerThread;->(Ljava/lang/String;)V │ │ .line 73 │ @@ -240,14 +241,15 @@ │ │ const/4 v1, 0x1 │ │ invoke-virtual {v0, v1, p1, p2, p3}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message; │ │ move-result-object v0 │ │ + .line 211 │ invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V │ │ .line 212 │ return-void │ .end method │ │ .method public handleMessage(Landroid/os/Message;)Z ├── smali/org/smc/inputmethod/indic/personalization/AccountUtils.smali │ @@ -44,82 +44,79 @@ │ "<", │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ + const/4 v4, 0x0 │ + │ .line 38 │ - new-instance v5, Ljava/util/ArrayList; │ + new-instance v2, Ljava/util/ArrayList; │ │ - invoke-direct {v5}, Ljava/util/ArrayList;->()V │ + invoke-direct {v2}, Ljava/util/ArrayList;->()V │ │ .line 39 │ - .local v5, "retval":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .local v2, "retval":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-static {p0}, Lorg/smc/inputmethod/indic/personalization/AccountUtils;->getAccounts(Landroid/content/Context;)[Landroid/accounts/Account; │ │ - move-result-object v1 │ + move-result-object v5 │ │ - .local v1, "arr$":[Landroid/accounts/Account; │ - array-length v3, v1 │ + array-length v6, v5 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ + move v3, v4 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v3, :cond_1 │ + if-ge v3, v6, :cond_1 │ │ - aget-object v0, v1, v2 │ + aget-object v0, v5, v3 │ │ .line 40 │ .local v0, "account":Landroid/accounts/Account; │ - iget-object v4, v0, Landroid/accounts/Account;->name:Ljava/lang/String; │ + iget-object v1, v0, Landroid/accounts/Account;->name:Ljava/lang/String; │ │ .line 41 │ - .local v4, "name":Ljava/lang/String; │ - sget-object v6, Landroid/util/Patterns;->EMAIL_ADDRESS:Ljava/util/regex/Pattern; │ + .local v1, "name":Ljava/lang/String; │ + sget-object v7, Landroid/util/Patterns;->EMAIL_ADDRESS:Ljava/util/regex/Pattern; │ │ - invoke-virtual {v6, v4}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; │ + invoke-virtual {v7, v1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; │ │ - move-result-object v6 │ + move-result-object v7 │ │ - invoke-virtual {v6}, Ljava/util/regex/Matcher;->matches()Z │ + invoke-virtual {v7}, Ljava/util/regex/Matcher;->matches()Z │ │ - move-result v6 │ + move-result v7 │ │ - if-eqz v6, :cond_0 │ + if-eqz v7, :cond_0 │ │ .line 42 │ - invoke-virtual {v5, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 43 │ - const-string v6, "@" │ - │ - invoke-virtual {v4, v6}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + const-string v7, "@" │ │ - move-result-object v6 │ + invoke-virtual {v1, v7}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - const/4 v7, 0x0 │ + move-result-object v7 │ │ - aget-object v6, v6, v7 │ + aget-object v7, v7, v4 │ │ - invoke-virtual {v5, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 39 │ :cond_0 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 46 │ .end local v0 # "account":Landroid/accounts/Account; │ - .end local v4 # "name":Ljava/lang/String; │ + .end local v1 # "name":Ljava/lang/String; │ :cond_1 │ - return-object v5 │ + return-object v2 │ .end method │ │ .method public static getDeviceAccountsWithDomain(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List; │ .locals 8 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "domain" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ @@ -133,87 +130,84 @@ │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 57 │ - new-instance v5, Ljava/util/ArrayList; │ + new-instance v2, Ljava/util/ArrayList; │ │ - invoke-direct {v5}, Ljava/util/ArrayList;->()V │ + invoke-direct {v2}, Ljava/util/ArrayList;->()V │ │ .line 58 │ - .local v5, "retval":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - new-instance v6, Ljava/lang/StringBuilder; │ + .local v2, "retval":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + new-instance v3, Ljava/lang/StringBuilder; │ │ - invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V │ │ - const-string v7, "@" │ + const-string v4, "@" │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - sget-object v7, Ljava/util/Locale;->ROOT:Ljava/util/Locale; │ + sget-object v4, Ljava/util/Locale;->ROOT:Ljava/util/Locale; │ │ - invoke-virtual {p1, v7}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ + invoke-virtual {p1, v4}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v4 │ │ - invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 59 │ - .local v2, "atDomain":Ljava/lang/String; │ + .local v1, "atDomain":Ljava/lang/String; │ invoke-static {p0}, Lorg/smc/inputmethod/indic/personalization/AccountUtils;->getAccounts(Landroid/content/Context;)[Landroid/accounts/Account; │ │ - move-result-object v1 │ + move-result-object v4 │ │ - .local v1, "arr$":[Landroid/accounts/Account; │ - array-length v4, v1 │ + array-length v5, v4 │ │ - .local v4, "len$":I │ const/4 v3, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_1 │ + if-ge v3, v5, :cond_1 │ │ - aget-object v0, v1, v3 │ + aget-object v0, v4, v3 │ │ .line 60 │ .local v0, "account":Landroid/accounts/Account; │ iget-object v6, v0, Landroid/accounts/Account;->name:Ljava/lang/String; │ │ sget-object v7, Ljava/util/Locale;->ROOT:Ljava/util/Locale; │ │ invoke-virtual {v6, v7}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v6 │ │ - invoke-virtual {v6, v2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z │ + invoke-virtual {v6, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z │ │ move-result v6 │ │ if-eqz v6, :cond_0 │ │ .line 61 │ iget-object v6, v0, Landroid/accounts/Account;->name:Ljava/lang/String; │ │ - invoke-virtual {v5, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 59 │ :cond_0 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 64 │ .end local v0 # "account":Landroid/accounts/Account; │ :cond_1 │ - return-object v5 │ + return-object v2 │ .end method ├── smali/org/smc/inputmethod/indic/personalization/PersonalizationHelper.smali │ @@ -86,15 +86,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 31 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 150 │ return-void │ .end method │ │ .method public static currentTimeChangedForTesting(I)V │ .locals 4 │ .param p0, "currentTimestamp" # I │ │ @@ -155,14 +154,15 @@ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ .line 98 │ sget-object v3, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper;->sLangPersonalizationDictCache:Ljava/util/concurrent/ConcurrentHashMap; │ │ + .line 99 │ invoke-virtual {v3, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/ref/SoftReference; │ │ .line 100 │ @@ -258,14 +258,15 @@ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ .line 44 │ sget-object v3, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper;->sLangUserHistoryDictCache:Ljava/util/concurrent/ConcurrentHashMap; │ │ + .line 45 │ invoke-virtual {v3, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/ref/SoftReference; │ │ .line 46 │ @@ -335,15 +336,15 @@ │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ throw v3 │ .end method │ │ .method private static removeAllDictionaries(Landroid/content/Context;Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/String;)V │ - .locals 7 │ + .locals 6 │ .param p0, "context" # Landroid/content/Context; │ .param p2, "dictNamePrefix" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ @@ -363,51 +364,50 @@ │ .local p1, "dictionaryMap":Ljava/util/concurrent/ConcurrentHashMap;, "Ljava/util/concurrent/ConcurrentHashMap;>;" │ monitor-enter p1 │ │ .line 129 │ :try_start_0 │ invoke-virtual {p1}, Ljava/util/concurrent/ConcurrentHashMap;->entrySet()Ljava/util/Set; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-interface {v4}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v3 │ + move-result-object v4 │ │ - .local v3, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_1 │ + if-eqz v3, :cond_1 │ │ - invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/util/Map$Entry; │ │ .line 130 │ .local v1, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;>;" │ invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - if-eqz v4, :cond_0 │ + if-eqz v3, :cond_0 │ │ .line 131 │ invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - check-cast v4, Ljava/lang/ref/SoftReference; │ + check-cast v3, Ljava/lang/ref/SoftReference; │ │ - invoke-virtual {v4}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ + invoke-virtual {v3}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase; │ │ .line 132 │ .local v0, "dict":Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase; │ @@ -417,101 +417,101 @@ │ invoke-virtual {v0}, Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase;->clear()V │ │ goto :goto_0 │ │ .line 147 │ .end local v0 # "dict":Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase; │ .end local v1 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;>;" │ - .end local v3 # "i$":Ljava/util/Iterator; │ :catchall_0 │ - move-exception v4 │ + move-exception v3 │ │ monitor-exit p1 │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - throw v4 │ + throw v3 │ │ .line 137 │ - .restart local v3 # "i$":Ljava/util/Iterator; │ :cond_1 │ :try_start_1 │ invoke-virtual {p1}, Ljava/util/concurrent/ConcurrentHashMap;->clear()V │ │ .line 138 │ invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File; │ │ move-result-object v2 │ │ .line 139 │ .local v2, "filesDir":Ljava/io/File; │ if-nez v2, :cond_2 │ │ .line 140 │ - sget-object v4, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper;->TAG:Ljava/lang/String; │ + sget-object v3, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper;->TAG:Ljava/lang/String; │ │ - const-string v5, "context.getFilesDir() returned null." │ + const-string v4, "context.getFilesDir() returned null." │ │ - invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 141 │ monitor-exit p1 │ │ .line 148 │ :goto_1 │ return-void │ │ .line 143 │ :cond_2 │ - new-instance v4, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper$DictFilter; │ + new-instance v3, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper$DictFilter; │ │ - invoke-direct {v4, p2}, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper$DictFilter;->(Ljava/lang/String;)V │ + invoke-direct {v3, p2}, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper$DictFilter;->(Ljava/lang/String;)V │ │ - invoke-static {v2, v4}, Lcom/android/inputmethod/latin/utils/FileUtils;->deleteFilteredFiles(Ljava/io/File;Ljava/io/FilenameFilter;)Z │ + invoke-static {v2, v3}, Lcom/android/inputmethod/latin/utils/FileUtils;->deleteFilteredFiles(Ljava/io/File;Ljava/io/FilenameFilter;)Z │ │ - move-result v4 │ + move-result v3 │ │ - if-nez v4, :cond_3 │ + if-nez v3, :cond_3 │ │ .line 144 │ - sget-object v4, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper;->TAG:Ljava/lang/String; │ + sget-object v3, Lorg/smc/inputmethod/indic/personalization/PersonalizationHelper;->TAG:Ljava/lang/String; │ │ - new-instance v5, Ljava/lang/StringBuilder; │ + new-instance v4, Ljava/lang/StringBuilder; │ │ - invoke-direct {v5}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v4}, Ljava/lang/StringBuilder;->()V │ │ - const-string v6, "Cannot remove all existing dictionary files. filesDir: " │ + const-string v5, "Cannot remove all existing dictionary files. filesDir: " │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ + .line 145 │ invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - const-string v6, ", dictNamePrefix: " │ + const-string v5, ", dictNamePrefix: " │ │ - invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v5, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ + .line 144 │ + invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 147 │ :cond_3 │ monitor-exit p1 │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ @@ -566,43 +566,42 @@ │ .end annotation │ │ .prologue │ .line 83 │ .local p0, "dictionaryMap":Ljava/util/concurrent/ConcurrentHashMap;, "Ljava/util/concurrent/ConcurrentHashMap;>;" │ invoke-virtual {p0}, Ljava/util/concurrent/ConcurrentHashMap;->entrySet()Ljava/util/Set; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v3 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v3 │ + move-result v2 │ │ - if-eqz v3, :cond_1 │ + if-eqz v2, :cond_1 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Ljava/util/Map$Entry; │ │ .line 84 │ .local v1, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;>;" │ invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Ljava/lang/ref/SoftReference; │ + check-cast v2, Ljava/lang/ref/SoftReference; │ │ - invoke-virtual {v3}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ + invoke-virtual {v2}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase; │ │ .line 85 │ .local v0, "dict":Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase; │ @@ -613,17 +612,17 @@ │ │ goto :goto_0 │ │ .line 88 │ :cond_0 │ invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - invoke-virtual {p0, v3}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-virtual {p0, v2}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ │ .line 91 │ .end local v0 # "dict":Lorg/smc/inputmethod/indic/personalization/DecayingExpandableBinaryDictionaryBase; │ .end local v1 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry;>;" │ :cond_1 ├── smali/org/smc/inputmethod/indic/personalization/UserHistoryDictionary.smali │ @@ -80,14 +80,15 @@ │ │ const/16 v1, 0x30 │ │ if-gt v0, v1, :cond_0 │ │ if-eqz v9, :cond_1 │ │ + .line 67 │ invoke-interface {v9}, Ljava/lang/CharSequence;->length()I │ │ move-result v0 │ │ const/16 v1, 0x30 │ │ if-le v0, v1, :cond_1 ├── smali/org/smc/inputmethod/indic/settings/AdvancedSettingsFragment$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$res:Landroid/content/res/Resources; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;Landroid/content/SharedPreferences;Landroid/content/res/Resources;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment; │ │ .prologue │ .line 158 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment$1;->this$0:Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment$1;->val$prefs:Landroid/content/SharedPreferences; ├── smali/org/smc/inputmethod/indic/settings/AdvancedSettingsFragment$2.smali │ @@ -30,14 +30,15 @@ │ │ .field final synthetic val$res:Landroid/content/res/Resources; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;Landroid/content/SharedPreferences;Landroid/content/res/Resources;Landroid/media/AudioManager;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment; │ │ .prologue │ .line 203 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment$2;->this$0:Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment$2;->val$prefs:Landroid/content/SharedPreferences; │ │ @@ -88,18 +89,20 @@ │ │ .prologue │ .line 244 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment$2;->val$am:Landroid/media/AudioManager; │ │ const/4 v1, 0x5 │ │ + .line 245 │ invoke-direct {p0, p1}, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment$2;->getValueFromPercentage(I)F │ │ move-result v2 │ │ + .line 244 │ invoke-virtual {v0, v1, v2}, Landroid/media/AudioManager;->playSoundEffect(IF)V │ │ .line 246 │ return-void │ .end method │ │ .method public getValueText(I)Ljava/lang/String; ├── smali/org/smc/inputmethod/indic/settings/AdvancedSettingsFragment.smali │ @@ -29,27 +29,31 @@ │ │ move-result-object v1 │ │ .line 144 │ .local v1, "res":Landroid/content/res/Resources; │ const-string v2, "pref_vibration_duration_settings" │ │ + .line 145 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/settings/Settings;->readVibrationEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v3 │ │ + .line 144 │ invoke-virtual {p0, v2, v3}, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 146 │ const-string v2, "pref_keypress_sound_volume" │ │ + .line 147 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeypressSoundEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v3 │ │ + .line 146 │ invoke-virtual {p0, v2, v3}, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 148 │ return-void │ .end method │ │ .method private setupKeypressSoundVolumeSettings()V │ @@ -285,14 +289,15 @@ │ .line 114 │ return-void │ │ .line 74 │ :cond_3 │ const-string v5, "pref_key_preview_popup_dismiss_delay" │ │ + .line 75 │ invoke-virtual {p0, v5}, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ move-result-object v1 │ │ check-cast v1, Landroid/preference/ListPreference; │ │ .line 76 │ @@ -309,28 +314,31 @@ │ │ .line 78 │ .local v2, "popupDismissDelayDefaultValue":Ljava/lang/String; │ new-array v5, v9, [Ljava/lang/String; │ │ const v6, 0x7f0c004e │ │ + .line 79 │ invoke-virtual {v4, v6}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v5, v7 │ │ const v6, 0x7f0c004c │ │ + .line 80 │ invoke-virtual {v4, v6}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v5, v8 │ │ + .line 78 │ invoke-virtual {v1, v5}, Landroid/preference/ListPreference;->setEntries([Ljava/lang/CharSequence;)V │ │ .line 82 │ new-array v5, v9, [Ljava/lang/String; │ │ const-string v6, "0" │ │ @@ -346,20 +354,21 @@ │ move-result-object v5 │ │ if-nez v5, :cond_4 │ │ .line 87 │ invoke-virtual {v1, v2}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V │ │ - .line 89 │ + .line 90 │ :cond_4 │ invoke-static {v3, v4}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeyPreviewPopupEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v5 │ │ + .line 89 │ invoke-virtual {v1, v5}, Landroid/preference/ListPreference;->setEnabled(Z)V │ │ goto :goto_0 │ .end method │ │ .method public bridge synthetic onDestroy()V │ .locals 0 │ @@ -387,14 +396,15 @@ │ │ move-result-object v0 │ │ .line 120 │ .local v0, "prefs":Landroid/content/SharedPreferences; │ const-string v2, "pref_show_setup_wizard_icon" │ │ + .line 121 │ invoke-virtual {p0, v2}, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ move-result-object v1 │ │ check-cast v1, Landroid/preference/TwoStatePreference; │ │ .line 122 │ @@ -442,18 +452,20 @@ │ move-result v1 │ │ if-eqz v1, :cond_1 │ │ .line 132 │ const-string v1, "pref_key_preview_popup_dismiss_delay" │ │ + .line 133 │ invoke-static {p1, v0}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeyPreviewPopupEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v2 │ │ + .line 132 │ invoke-virtual {p0, v1, v2}, Lorg/smc/inputmethod/indic/settings/AdvancedSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 137 │ :cond_0 │ :goto_0 │ const-string v1, "pref_key_preview_popup_dismiss_delay" ├── smali/org/smc/inputmethod/indic/settings/AppearanceSettingsFragment.smali │ @@ -59,18 +59,20 @@ │ .prologue │ .line 36 │ invoke-super {p0}, Lorg/smc/inputmethod/indic/settings/SubScreenFragment;->onResume()V │ │ .line 37 │ const-string v0, "custom_input_styles" │ │ + .line 38 │ invoke-virtual {p0, v0}, Lorg/smc/inputmethod/indic/settings/AppearanceSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ move-result-object v0 │ │ + .line 37 │ invoke-static {v0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->updateCustomInputStylesSummary(Landroid/preference/Preference;)V │ │ .line 39 │ const-string v0, "screen_theme" │ │ invoke-virtual {p0, v0}, Lorg/smc/inputmethod/indic/settings/AppearanceSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; ├── smali/org/smc/inputmethod/indic/settings/CorrectionSettingsFragment.smali │ @@ -71,29 +71,31 @@ │ │ move-result-object v2 │ │ .line 101 │ .local v2, "currentSetting":Ljava/lang/String; │ const-string v4, "next_word_prediction" │ │ + .line 102 │ invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ if-nez v3, :cond_0 │ │ const/4 v3, 0x1 │ │ + .line 101 │ :goto_0 │ invoke-virtual {p0, v4, v3}, Lorg/smc/inputmethod/indic/settings/CorrectionSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 103 │ return-void │ │ - .line 101 │ + .line 102 │ :cond_0 │ const/4 v3, 0x0 │ │ goto :goto_0 │ .end method │ │ .method private overwriteUserDictionaryPreference(Landroid/preference/Preference;)V │ @@ -235,14 +237,15 @@ │ const-string v5, "configure_dictionaries_key" │ │ invoke-virtual {p0, v5}, Lorg/smc/inputmethod/indic/settings/CorrectionSettingsFragment;->removePreference(Ljava/lang/String;)V │ │ .line 79 │ const-string v5, "edit_personal_dictionary" │ │ + .line 80 │ invoke-virtual {p0, v5}, Lorg/smc/inputmethod/indic/settings/CorrectionSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ move-result-object v1 │ │ .line 81 │ .local v1, "editPersonalDictionary":Landroid/preference/Preference; │ invoke-virtual {v1}, Landroid/preference/Preference;->getIntent()Landroid/content/Intent; │ @@ -270,14 +273,15 @@ │ return-void │ │ .line 82 │ .end local v4 # "ri":Landroid/content/pm/ResolveInfo; │ :cond_1 │ const/high16 v5, 0x10000 │ │ + .line 83 │ invoke-virtual {v3, v2, v5}, Landroid/content/pm/PackageManager;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo; │ │ move-result-object v4 │ │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ .prologue │ .line 484 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$1;->this$0:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ .prologue │ .line 562 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$2;->this$0:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -41,25 +42,27 @@ │ .param p1, "dialog" # Landroid/content/DialogInterface; │ .param p2, "which" # I │ │ .prologue │ .line 565 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$2;->this$0:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; │ │ + .line 566 │ # getter for: Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mRichImm:Lorg/smc/inputmethod/indic/RichInputMethodManager; │ invoke-static {v1}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->access$200(Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;)Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodIdOfThisIme()Ljava/lang/String; │ │ move-result-object v1 │ │ const/high16 v2, 0x14200000 │ │ + .line 565 │ invoke-static {v1, v2}, Lcom/android/inputmethod/latin/utils/IntentUtils;->getInputLanguageSelectionIntent(Ljava/lang/String;I)Landroid/content/Intent; │ │ move-result-object v0 │ │ .line 573 │ .local v0, "intent":Landroid/content/Intent; │ iget-object v1, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$2;->this$0:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment; ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetAdapter.smali │ @@ -26,60 +26,58 @@ │ # direct methods │ .method public constructor (Landroid/content/Context;)V │ .locals 6 │ .param p1, "context" # Landroid/content/Context; │ │ .prologue │ .line 149 │ - const v5, 0x1090008 │ + const v2, 0x1090008 │ │ - invoke-direct {p0, p1, v5}, Landroid/widget/ArrayAdapter;->(Landroid/content/Context;I)V │ + invoke-direct {p0, p1, v2}, Landroid/widget/ArrayAdapter;->(Landroid/content/Context;I)V │ │ .line 150 │ - const v5, 0x1090009 │ + const v2, 0x1090009 │ │ - invoke-virtual {p0, v5}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetAdapter;->setDropDownViewResource(I)V │ + invoke-virtual {p0, v2}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetAdapter;->setDropDownViewResource(I)V │ │ .line 153 │ invoke-static {}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getPredefinedKeyboardLayoutSet()[Ljava/lang/String; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v3, v0 │ + array-length v4, v3 │ │ - .local v3, "len$":I │ - const/4 v1, 0x0 │ + const/4 v2, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v3, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v2, v0, v1 │ + aget-object v0, v3, v2 │ │ .line 155 │ - .local v2, "layout":Ljava/lang/String; │ + .local v0, "layout":Ljava/lang/String; │ const-string v5, "en_US" │ │ - invoke-static {v5, v2}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createDummyAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ + .line 156 │ + invoke-static {v5, v0}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createDummyAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ │ - move-result-object v4 │ + move-result-object v1 │ │ .line 158 │ - .local v4, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .local v1, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ new-instance v5, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem; │ │ - invoke-direct {v5, v4}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem;->(Landroid/view/inputmethod/InputMethodSubtype;)V │ + invoke-direct {v5, v1}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem;->(Landroid/view/inputmethod/InputMethodSubtype;)V │ │ invoke-virtual {p0, v5}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetAdapter;->add(Ljava/lang/Object;)V │ │ .line 153 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 160 │ - .end local v2 # "layout":Ljava/lang/String; │ - .end local v4 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v0 # "layout":Ljava/lang/String; │ + .end local v1 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_0 │ return-void │ .end method ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem.smali │ @@ -31,18 +31,20 @@ │ │ .prologue │ .line 137 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetName(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 138 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetDisplayName(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 137 │ invoke-direct {p0, v0, v1}, Landroid/util/Pair;->(Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 139 │ return-void │ .end method ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleAdapter.smali │ @@ -68,14 +68,15 @@ │ │ .line 107 │ .local v3, "items":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ invoke-static {}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInstance()Lorg/smc/inputmethod/indic/RichInputMethodManager; │ │ move-result-object v5 │ │ + .line 108 │ invoke-virtual {v5}, Lorg/smc/inputmethod/indic/RichInputMethodManager;->getInputMethodInfoOfThisIme()Landroid/view/inputmethod/InputMethodInfo; │ │ move-result-object v2 │ │ .line 109 │ .local v2, "imi":Landroid/view/inputmethod/InputMethodInfo; │ invoke-virtual {v2}, Landroid/view/inputmethod/InputMethodInfo;->getSubtypeCount()I ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleItem.smali │ @@ -34,18 +34,20 @@ │ # direct methods │ .method public constructor (Ljava/lang/String;)V │ .locals 1 │ .param p1, "localeString" # Ljava/lang/String; │ │ .prologue │ .line 83 │ + .line 84 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeLocaleDisplayNameInSystemLocale(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ + .line 83 │ invoke-direct {p0, p1, v0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleItem;->(Ljava/lang/String;Ljava/lang/String;)V │ │ .line 85 │ return-void │ .end method │ │ .method public constructor (Ljava/lang/String;Ljava/lang/String;)V ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference.smali │ @@ -301,24 +301,26 @@ │ const/4 v0, 0x1 │ │ .line 294 │ .local v0, "isEditing":Z │ :goto_1 │ iget-object v4, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->mSubtypeLocaleSpinner:Landroid/widget/Spinner; │ │ + .line 295 │ invoke-virtual {v4}, Landroid/widget/Spinner;->getSelectedItem()Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleItem; │ │ .line 296 │ .local v2, "locale":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleItem; │ iget-object v4, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->mKeyboardLayoutSetSpinner:Landroid/widget/Spinner; │ │ + .line 297 │ invoke-virtual {v4}, Landroid/widget/Spinner;->getSelectedItem()Ljava/lang/Object; │ │ move-result-object v1 │ │ check-cast v1, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem; │ │ .line 298 │ @@ -327,14 +329,15 @@ │ │ check-cast v4, Ljava/lang/String; │ │ iget-object v5, v1, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem;->first:Ljava/lang/Object; │ │ check-cast v5, Ljava/lang/String; │ │ + .line 299 │ invoke-static {v4, v5}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAsciiEmojiCapableAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v3 │ │ .line 301 │ .local v3, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ invoke-virtual {p0, v3}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->setSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V │ @@ -492,43 +495,48 @@ │ .line 255 │ const v3, 0x7f0c0002 │ │ invoke-virtual {p1, v3, p0}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v3 │ │ + .line 256 │ invoke-virtual {v3, v4, p0}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ .line 267 │ :goto_0 │ return-void │ │ .line 258 │ :cond_0 │ const v3, 0x7f0c00c1 │ │ invoke-virtual {p1, v3, p0}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v3 │ │ + .line 259 │ invoke-virtual {v3, v4, p0}, Landroid/app/AlertDialog$Builder;->setNeutralButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v3 │ │ const v4, 0x7f0c00c0 │ │ + .line 260 │ invoke-virtual {v3, v4, p0}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ .line 261 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->mSubtype:Landroid/view/inputmethod/InputMethodSubtype; │ │ + .line 262 │ invoke-virtual {v3}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 261 │ invoke-static {v0, v3}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleAdapter;->createItem(Landroid/content/Context;Ljava/lang/String;)Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleItem; │ │ move-result-object v2 │ │ .line 263 │ .local v2, "localeItem":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeLocaleItem; │ new-instance v1, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetItem; │ @@ -717,15 +725,15 @@ │ │ invoke-virtual {p0, v1}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->setKey(Ljava/lang/String;)V │ │ .line 224 │ :goto_0 │ return-void │ │ - .line 217 │ + .line 218 │ :cond_0 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeDisplayNameInSystemLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 219 │ .local v0, "displayName":Ljava/lang/String; │ @@ -755,26 +763,28 @@ │ │ const-string v2, "_" │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 222 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getKeyboardLayoutSetName(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 221 │ invoke-virtual {p0, v1}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->setKey(Ljava/lang/String;)V │ │ goto :goto_0 │ .end method │ │ .method public show()V │ .locals 1 ├── smali/org/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment.smali │ @@ -196,14 +196,15 @@ │ .method private createDialog()Landroid/app/AlertDialog; │ .locals 4 │ │ .prologue │ .line 557 │ new-instance v0, Landroid/app/AlertDialog$Builder; │ │ + .line 558 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/DialogUtils;->getPlatformDialogThemeContext(Landroid/content/Context;)Landroid/content/Context; │ │ move-result-object v1 │ @@ -216,32 +217,35 @@ │ │ invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const v2, 0x7f0c001f │ │ + .line 560 │ invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setMessage(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const v2, 0x7f0c00a6 │ │ const/4 v3, 0x0 │ │ + .line 561 │ invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const v2, 0x7f0c0036 │ │ new-instance v3, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$2; │ │ invoke-direct {v3, p0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$2;->(Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;)V │ │ + .line 562 │ invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ .line 577 │ invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v1 │ │ @@ -363,69 +367,64 @@ │ │ check-cast v6, [Landroid/view/inputmethod/InputMethodSubtype; │ │ return-object v6 │ .end method │ │ .method private setPrefSubtypes(Ljava/lang/String;Landroid/content/Context;)V │ - .locals 8 │ + .locals 7 │ .param p1, "prefSubtypes" # Ljava/lang/String; │ .param p2, "context" # Landroid/content/Context; │ │ .prologue │ .line 581 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->getPreferenceScreen()Landroid/preference/PreferenceScreen; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 582 │ - .local v1, "group":Landroid/preference/PreferenceGroup; │ - invoke-virtual {v1}, Landroid/preference/PreferenceGroup;->removeAll()V │ + .local v0, "group":Landroid/preference/PreferenceGroup; │ + invoke-virtual {v0}, Landroid/preference/PreferenceGroup;->removeAll()V │ │ - .line 583 │ + .line 584 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAdditionalSubtypesArray(Ljava/lang/String;)[Landroid/view/inputmethod/InputMethodSubtype; │ │ - move-result-object v6 │ + move-result-object v3 │ │ .line 585 │ - .local v6, "subtypesArray":[Landroid/view/inputmethod/InputMethodSubtype; │ - move-object v0, v6 │ - │ - .local v0, "arr$":[Landroid/view/inputmethod/InputMethodSubtype; │ - array-length v3, v0 │ + .local v3, "subtypesArray":[Landroid/view/inputmethod/InputMethodSubtype; │ + array-length v5, v3 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ + const/4 v4, 0x0 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v3, :cond_0 │ + if-ge v4, v5, :cond_0 │ │ - aget-object v5, v0, v2 │ + aget-object v2, v3, v4 │ │ .line 586 │ - .local v5, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - new-instance v4, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ + .local v2, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + new-instance v1, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ │ - iget-object v7, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mSubtypeProxy:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy; │ + iget-object v6, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mSubtypeProxy:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy; │ │ - invoke-direct {v4, p2, v5, v7}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->(Landroid/content/Context;Landroid/view/inputmethod/InputMethodSubtype;Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy;)V │ + invoke-direct {v1, p2, v2, v6}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->(Landroid/content/Context;Landroid/view/inputmethod/InputMethodSubtype;Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy;)V │ │ .line 588 │ - .local v4, "pref":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ - invoke-virtual {v1, v4}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ + .local v1, "pref":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ + invoke-virtual {v0, v1}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ │ .line 585 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ .line 590 │ - .end local v4 # "pref":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ - .end local v5 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v1 # "pref":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ + .end local v2 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_0 │ return-void │ .end method │ │ .method private showSubtypeAlreadyExistsToast(Landroid/view/inputmethod/InputMethodSubtype;)V │ .locals 7 │ .param p1, "subtype" # Landroid/view/inputmethod/InputMethodSubtype; │ @@ -448,20 +447,22 @@ │ .local v2, "res":Landroid/content/res/Resources; │ const v3, 0x7f0c001e │ │ const/4 v4, 0x1 │ │ new-array v4, v4, [Ljava/lang/Object; │ │ + .line 545 │ invoke-static {p1}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeDisplayNameInSystemLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v4, v6 │ │ + .line 544 │ invoke-virtual {v2, v3, v4}, Landroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 546 │ .local v1, "message":Ljava/lang/String; │ invoke-static {v0, v1, v6}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; │ @@ -471,97 +472,92 @@ │ invoke-virtual {v3}, Landroid/widget/Toast;->show()V │ │ .line 547 │ return-void │ .end method │ │ .method static updateCustomInputStylesSummary(Landroid/preference/Preference;)V │ - .locals 10 │ + .locals 9 │ .param p0, "pref" # Landroid/preference/Preference; │ │ .prologue │ .line 404 │ invoke-virtual {p0}, Landroid/preference/Preference;->getContext()Landroid/content/Context; │ │ - move-result-object v9 │ + move-result-object v6 │ │ - invoke-static {v9}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->init(Landroid/content/Context;)V │ + invoke-static {v6}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->init(Landroid/content/Context;)V │ │ .line 406 │ invoke-virtual {p0}, Landroid/preference/Preference;->getContext()Landroid/content/Context; │ │ - move-result-object v9 │ + move-result-object v6 │ │ - invoke-virtual {v9}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ + invoke-virtual {v6}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 407 │ - .local v5, "res":Landroid/content/res/Resources; │ + .local v2, "res":Landroid/content/res/Resources; │ invoke-virtual {p0}, Landroid/preference/Preference;->getSharedPreferences()Landroid/content/SharedPreferences; │ │ - move-result-object v4 │ + move-result-object v1 │ │ .line 408 │ - .local v4, "prefs":Landroid/content/SharedPreferences; │ - invoke-static {v4, v5}, Lorg/smc/inputmethod/indic/settings/Settings;->readPrefAdditionalSubtypes(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Ljava/lang/String; │ + .local v1, "prefs":Landroid/content/SharedPreferences; │ + invoke-static {v1, v2}, Lorg/smc/inputmethod/indic/settings/Settings;->readPrefAdditionalSubtypes(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Ljava/lang/String; │ │ - move-result-object v3 │ + move-result-object v0 │ │ - .line 409 │ - .local v3, "prefSubtype":Ljava/lang/String; │ - invoke-static {v3}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAdditionalSubtypesArray(Ljava/lang/String;)[Landroid/view/inputmethod/InputMethodSubtype; │ + .line 410 │ + .local v0, "prefSubtype":Ljava/lang/String; │ + invoke-static {v0}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createAdditionalSubtypesArray(Ljava/lang/String;)[Landroid/view/inputmethod/InputMethodSubtype; │ │ - move-result-object v8 │ + move-result-object v5 │ │ .line 411 │ - .local v8, "subtypes":[Landroid/view/inputmethod/InputMethodSubtype; │ - new-instance v7, Ljava/util/ArrayList; │ + .local v5, "subtypes":[Landroid/view/inputmethod/InputMethodSubtype; │ + new-instance v4, Ljava/util/ArrayList; │ │ - invoke-direct {v7}, Ljava/util/ArrayList;->()V │ + invoke-direct {v4}, Ljava/util/ArrayList;->()V │ │ .line 412 │ - .local v7, "subtypeNames":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - move-object v0, v8 │ + .local v4, "subtypeNames":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + array-length v7, v5 │ │ - .local v0, "arr$":[Landroid/view/inputmethod/InputMethodSubtype; │ - array-length v2, v0 │ - │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + const/4 v6, 0x0 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v6, v7, :cond_0 │ │ - aget-object v6, v0, v1 │ + aget-object v3, v5, v6 │ │ .line 413 │ - .local v6, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-static {v6}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeDisplayNameInSystemLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ + .local v3, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-static {v3}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->getSubtypeDisplayNameInSystemLocale(Landroid/view/inputmethod/InputMethodSubtype;)Ljava/lang/String; │ │ - move-result-object v9 │ + move-result-object v8 │ │ - invoke-virtual {v7, v9}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v4, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 412 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v6, v6, 0x1 │ │ goto :goto_0 │ │ .line 416 │ - .end local v6 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v3 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ :cond_0 │ - const-string v9, ", " │ + const-string v6, ", " │ │ - invoke-static {v9, v7}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; │ + invoke-static {v6, v4}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; │ │ - move-result-object v9 │ + move-result-object v6 │ │ - invoke-virtual {p0, v9}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V │ + invoke-virtual {p0, v6}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V │ │ .line 417 │ return-void │ .end method │ │ │ # virtual methods │ @@ -589,14 +585,15 @@ │ invoke-direct {v3, v0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetAdapter;->(Landroid/content/Context;)V │ │ iput-object v3, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mKeyboardLayoutSetAdapter:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$KeyboardLayoutSetAdapter; │ │ .line 446 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mPrefs:Landroid/content/SharedPreferences; │ │ + .line 447 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->getResources()Landroid/content/res/Resources; │ │ move-result-object v4 │ │ invoke-static {v3, v4}, Lorg/smc/inputmethod/indic/settings/Settings;->readPrefAdditionalSubtypes(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Ljava/lang/String; │ │ move-result-object v1 │ @@ -606,14 +603,15 @@ │ invoke-direct {p0, v1, v0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->setPrefSubtypes(Ljava/lang/String;Landroid/content/Context;)V │ │ .line 450 │ if-eqz p1, :cond_2 │ │ const-string v3, "is_adding_new_subtype" │ │ + .line 451 │ invoke-virtual {p1, v3}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ const/4 v3, 0x1 │ @@ -629,18 +627,20 @@ │ .line 453 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->getPreferenceScreen()Landroid/preference/PreferenceScreen; │ │ move-result-object v3 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mSubtypeProxy:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy; │ │ + .line 454 │ invoke-static {v0, v4}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->newIncompleteSubtypePreference(Landroid/content/Context;Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy;)Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ │ move-result-object v4 │ │ + .line 453 │ invoke-virtual {v3, v4}, Landroid/preference/PreferenceScreen;->addPreference(Landroid/preference/Preference;)Z │ │ .line 457 │ :cond_0 │ invoke-super {p0, p1}, Landroid/preference/PreferenceFragment;->onActivityCreated(Landroid/os/Bundle;)V │ │ .line 459 │ @@ -686,15 +686,15 @@ │ invoke-virtual {v3}, Landroid/app/AlertDialog;->show()V │ │ .line 468 │ .end local v2 # "subtypePref":Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ :cond_1 │ return-void │ │ - .line 450 │ + .line 451 │ :cond_2 │ const/4 v3, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public onCreate(Landroid/os/Bundle;)V │ @@ -795,15 +795,15 @@ │ │ .line 629 │ .local v0, "itemId":I │ const v3, 0x7f1000a4 │ │ if-ne v0, v3, :cond_0 │ │ - .line 630 │ + .line 631 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v3 │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mSubtypeProxy:Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy; │ │ invoke-static {v3, v4}, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference;->newIncompleteSubtypePreference(Landroid/content/Context;Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypeDialogProxy;)Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment$SubtypePreference; │ @@ -917,14 +917,15 @@ │ :cond_0 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mSubtypeEnablerNotificationDialog:Landroid/app/AlertDialog; │ │ if-eqz v0, :cond_1 │ │ iget-object v0, p0, Lorg/smc/inputmethod/indic/settings/CustomInputStyleSettingsFragment;->mSubtypeEnablerNotificationDialog:Landroid/app/AlertDialog; │ │ + .line 477 │ invoke-virtual {v0}, Landroid/app/AlertDialog;->isShowing()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ .line 478 ├── smali/org/smc/inputmethod/indic/settings/DebugSettingsFragment$1.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$res:Landroid/content/res/Resources; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;Landroid/content/SharedPreferences;Landroid/content/res/Resources;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment; │ │ .prologue │ .line 175 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$1;->this$0:Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$1;->val$prefs:Landroid/content/SharedPreferences; ├── smali/org/smc/inputmethod/indic/settings/DebugSettingsFragment$2.smali │ @@ -30,14 +30,15 @@ │ │ .field final synthetic val$res:Landroid/content/res/Resources; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;Landroid/content/SharedPreferences;FLandroid/content/res/Resources;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment; │ │ .prologue │ .line 213 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$2;->this$0:Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$2;->val$prefs:Landroid/content/SharedPreferences; │ │ @@ -157,18 +158,20 @@ │ │ .prologue │ .line 236 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$2;->val$prefs:Landroid/content/SharedPreferences; │ │ iget v1, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$2;->val$defaultValue:F │ │ + .line 237 │ invoke-static {v0, p1, v1}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeyPreviewAnimationScale(Landroid/content/SharedPreferences;Ljava/lang/String;F)F │ │ move-result v0 │ │ + .line 236 │ invoke-direct {p0, v0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$2;->getPercentageFromValue(F)I │ │ move-result v0 │ │ return v0 │ .end method ├── smali/org/smc/inputmethod/indic/settings/DebugSettingsFragment$3.smali │ @@ -26,14 +26,15 @@ │ │ .field final synthetic val$res:Landroid/content/res/Resources; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;Landroid/content/SharedPreferences;ILandroid/content/res/Resources;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment; │ │ .prologue │ .line 265 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$3;->this$0:Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$3;->val$prefs:Landroid/content/SharedPreferences; ├── smali/org/smc/inputmethod/indic/settings/DebugSettingsFragment.smali │ @@ -39,15 +39,14 @@ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/settings/SubScreenFragment;->()V │ │ .line 51 │ const/4 v0, 0x0 │ │ iput-boolean v0, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mServiceNeedsRestart:Z │ │ - .line 100 │ return-void │ .end method │ │ .method private setupKeyLongpressTimeoutSettings()V │ .locals 4 │ │ .prologue │ @@ -196,24 +195,26 @@ │ │ const/4 v3, 0x1 │ │ new-array v3, v3, [Ljava/lang/Object; │ │ const/4 v4, 0x0 │ │ + .line 157 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v5 │ │ invoke-static {v5}, Lcom/android/inputmethod/latin/utils/ApplicationUtils;->getVersionName(Landroid/content/Context;)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ + .line 156 │ invoke-virtual {p0, v2, v3}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->getString(I[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 158 │ .local v1, "version":Ljava/lang/String; │ if-nez v0, :cond_0 │ @@ -263,196 +264,200 @@ │ .line 45 │ invoke-super {p0, p1}, Lorg/smc/inputmethod/indic/settings/SubScreenFragment;->addPreferencesFromResource(I)V │ │ return-void │ .end method │ │ .method public onCreate(Landroid/os/Bundle;)V │ - .locals 9 │ + .locals 8 │ .param p1, "icicle" # Landroid/os/Bundle; │ │ .prologue │ .line 57 │ invoke-super {p0, p1}, Lorg/smc/inputmethod/indic/settings/SubScreenFragment;->onCreate(Landroid/os/Bundle;)V │ │ .line 58 │ - const v7, 0x7f050095 │ + const v6, 0x7f050095 │ │ - invoke-virtual {p0, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->addPreferencesFromResource(I)V │ + invoke-virtual {p0, v6}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->addPreferencesFromResource(I)V │ │ .line 60 │ - sget-boolean v7, Lorg/smc/inputmethod/indic/settings/Settings;->HAS_UI_TO_ACCEPT_TYPED_WORD:Z │ + sget-boolean v6, Lorg/smc/inputmethod/indic/settings/Settings;->HAS_UI_TO_ACCEPT_TYPED_WORD:Z │ │ - if-nez v7, :cond_0 │ + if-nez v6, :cond_0 │ │ .line 61 │ - const-string v7, "pref_show_ui_to_accept_typed_word" │ + const-string v6, "pref_show_ui_to_accept_typed_word" │ │ - invoke-virtual {p0, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->removePreference(Ljava/lang/String;)V │ + invoke-virtual {p0, v6}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->removePreference(Ljava/lang/String;)V │ │ .line 64 │ :cond_0 │ - const-string v7, "read_external_dictionary" │ + const-string v6, "read_external_dictionary" │ │ - invoke-virtual {p0, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ + invoke-virtual {p0, v6}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - iput-object v7, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mReadExternalDictionaryPref:Landroid/preference/Preference; │ + iput-object v6, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mReadExternalDictionaryPref:Landroid/preference/Preference; │ │ .line 65 │ - iget-object v7, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mReadExternalDictionaryPref:Landroid/preference/Preference; │ + iget-object v6, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mReadExternalDictionaryPref:Landroid/preference/Preference; │ │ - if-eqz v7, :cond_1 │ + if-eqz v6, :cond_1 │ │ .line 66 │ - iget-object v7, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mReadExternalDictionaryPref:Landroid/preference/Preference; │ + iget-object v6, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mReadExternalDictionaryPref:Landroid/preference/Preference; │ │ - invoke-virtual {v7, p0}, Landroid/preference/Preference;->setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V │ + invoke-virtual {v6, p0}, Landroid/preference/Preference;->setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V │ │ .line 69 │ :cond_1 │ - const-string v7, "pref_key_dump_dictionaries" │ + const-string v6, "pref_key_dump_dictionaries" │ │ - invoke-virtual {p0, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ + .line 70 │ + invoke-virtual {p0, v6}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ move-result-object v2 │ │ check-cast v2, Landroid/preference/PreferenceGroup; │ │ .line 71 │ .local v2, "dictDumpPreferenceGroup":Landroid/preference/PreferenceGroup; │ - sget-object v7, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPE_TO_CLASS:Ljava/util/Map; │ + sget-object v6, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->DICT_TYPE_TO_CLASS:Ljava/util/Map; │ │ - invoke-interface {v7}, Ljava/util/Map;->keySet()Ljava/util/Set; │ + invoke-interface {v6}, Ljava/util/Map;->keySet()Ljava/util/Set; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - invoke-interface {v7}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ + invoke-interface {v6}, Ljava/util/Set;->iterator()Ljava/util/Iterator; │ │ - move-result-object v4 │ + move-result-object v6 │ │ - .local v4, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v7 │ │ if-eqz v7, :cond_2 │ │ - invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ .line 72 │ .local v3, "dictName":Ljava/lang/String; │ - new-instance v5, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$DictDumpPreference; │ + new-instance v4, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$DictDumpPreference; │ │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v7 │ │ - invoke-direct {v5, v7, v3}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$DictDumpPreference;->(Landroid/content/Context;Ljava/lang/String;)V │ + invoke-direct {v4, v7, v3}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment$DictDumpPreference;->(Landroid/content/Context;Ljava/lang/String;)V │ │ .line 73 │ - .local v5, "pref":Landroid/preference/Preference; │ - invoke-virtual {v5, p0}, Landroid/preference/Preference;->setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V │ + .local v4, "pref":Landroid/preference/Preference; │ + invoke-virtual {v4, p0}, Landroid/preference/Preference;->setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V │ │ .line 74 │ - invoke-virtual {v2, v5}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ + invoke-virtual {v2, v4}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ │ goto :goto_0 │ │ .line 76 │ .end local v3 # "dictName":Ljava/lang/String; │ - .end local v5 # "pref":Landroid/preference/Preference; │ + .end local v4 # "pref":Landroid/preference/Preference; │ :cond_2 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->getResources()Landroid/content/res/Resources; │ │ - move-result-object v6 │ + move-result-object v5 │ │ .line 77 │ - .local v6, "res":Landroid/content/res/Resources; │ + .local v5, "res":Landroid/content/res/Resources; │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyLongpressTimeoutSettings()V │ │ .line 78 │ - const-string v7, "pref_key_preview_show_up_duration" │ + const-string v6, "pref_key_preview_show_up_duration" │ │ - const v8, 0x7f09001f │ + const v7, 0x7f09001f │ │ - invoke-virtual {v6, v8}, Landroid/content/res/Resources;->getInteger(I)I │ + .line 79 │ + invoke-virtual {v5, v7}, Landroid/content/res/Resources;->getInteger(I)I │ │ - move-result v8 │ + move-result v7 │ │ - invoke-direct {p0, v7, v8}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationDuration(Ljava/lang/String;I)V │ + .line 78 │ + invoke-direct {p0, v6, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationDuration(Ljava/lang/String;I)V │ │ .line 80 │ - const-string v7, "pref_key_preview_dismiss_duration" │ + const-string v6, "pref_key_preview_dismiss_duration" │ │ - const v8, 0x7f09001d │ + const v7, 0x7f09001d │ │ - invoke-virtual {v6, v8}, Landroid/content/res/Resources;->getInteger(I)I │ + .line 81 │ + invoke-virtual {v5, v7}, Landroid/content/res/Resources;->getInteger(I)I │ │ - move-result v8 │ + move-result v7 │ │ - invoke-direct {p0, v7, v8}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationDuration(Ljava/lang/String;I)V │ + .line 80 │ + invoke-direct {p0, v6, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationDuration(Ljava/lang/String;I)V │ │ .line 82 │ - const v7, 0x7f0b0022 │ + const v6, 0x7f0b0022 │ │ - invoke-static {v6, v7}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getFloatFromFraction(Landroid/content/res/Resources;I)F │ + invoke-static {v5, v6}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getFloatFromFraction(Landroid/content/res/Resources;I)F │ │ move-result v1 │ │ .line 84 │ .local v1, "defaultKeyPreviewShowUpStartScale":F │ - const v7, 0x7f0b0021 │ + const v6, 0x7f0b0021 │ │ - invoke-static {v6, v7}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getFloatFromFraction(Landroid/content/res/Resources;I)F │ + invoke-static {v5, v6}, Lcom/android/inputmethod/latin/utils/ResourceUtils;->getFloatFromFraction(Landroid/content/res/Resources;I)F │ │ move-result v0 │ │ .line 86 │ .local v0, "defaultKeyPreviewDismissEndScale":F │ - const-string v7, "pref_key_preview_show_up_start_x_scale" │ + const-string v6, "pref_key_preview_show_up_start_x_scale" │ │ - invoke-direct {p0, v7, v1}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ + invoke-direct {p0, v6, v1}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ │ .line 88 │ - const-string v7, "pref_key_preview_show_up_start_y_scale" │ + const-string v6, "pref_key_preview_show_up_start_y_scale" │ │ - invoke-direct {p0, v7, v1}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ + invoke-direct {p0, v6, v1}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ │ .line 90 │ - const-string v7, "pref_key_preview_dismiss_end_x_scale" │ + const-string v6, "pref_key_preview_dismiss_end_x_scale" │ │ - invoke-direct {p0, v7, v0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ + invoke-direct {p0, v6, v0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ │ .line 92 │ - const-string v7, "pref_key_preview_dismiss_end_y_scale" │ + const-string v6, "pref_key_preview_dismiss_end_y_scale" │ │ - invoke-direct {p0, v7, v0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ + invoke-direct {p0, v6, v0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->setupKeyPreviewAnimationScale(Ljava/lang/String;F)V │ │ .line 95 │ - const/4 v7, 0x0 │ + const/4 v6, 0x0 │ │ - iput-boolean v7, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mServiceNeedsRestart:Z │ + iput-boolean v6, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mServiceNeedsRestart:Z │ │ .line 96 │ - const-string v7, "debug_mode" │ + const-string v6, "debug_mode" │ │ - invoke-virtual {p0, v7}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ + invoke-virtual {p0, v6}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference; │ │ - move-result-object v7 │ + move-result-object v6 │ │ - check-cast v7, Landroid/preference/TwoStatePreference; │ + check-cast v6, Landroid/preference/TwoStatePreference; │ │ - iput-object v7, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mDebugMode:Landroid/preference/TwoStatePreference; │ + iput-object v6, p0, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->mDebugMode:Landroid/preference/TwoStatePreference; │ │ .line 97 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/settings/DebugSettingsFragment;->updateDebugMode()V │ │ .line 98 │ return-void │ .end method │ @@ -584,14 +589,15 @@ │ │ move-result v0 │ │ if-nez v0, :cond_2 │ │ const-string v0, "force_physical_keyboard_special_key" │ │ + .line 148 │ invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ .line 149 ├── smali/org/smc/inputmethod/indic/settings/PreferencesSettingsFragment.smali │ @@ -29,27 +29,31 @@ │ │ move-result-object v1 │ │ .line 95 │ .local v1, "res":Landroid/content/res/Resources; │ const-string v2, "pref_vibration_duration_settings" │ │ + .line 96 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/settings/Settings;->readVibrationEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v3 │ │ + .line 95 │ invoke-virtual {p0, v2, v3}, Lorg/smc/inputmethod/indic/settings/PreferencesSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 97 │ const-string v2, "pref_keypress_sound_volume" │ │ + .line 98 │ invoke-static {v0, v1}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeypressSoundEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v3 │ │ + .line 97 │ invoke-virtual {p0, v2, v3}, Lorg/smc/inputmethod/indic/settings/PreferencesSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 99 │ return-void │ .end method │ │ │ @@ -175,14 +179,15 @@ │ if-eqz v1, :cond_0 │ │ .line 74 │ invoke-static {}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->getInstance()Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ move-result-object v2 │ │ + .line 75 │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->isShortcutImeEnabled()Z │ │ move-result v0 │ │ .line 76 │ .local v0, "isShortcutImeEnabled":Z │ invoke-virtual {v1, v0}, Landroid/preference/Preference;->setEnabled(Z)V │ @@ -201,14 +206,15 @@ │ return-void │ │ .line 77 │ .restart local v0 # "isShortcutImeEnabled":Z │ :cond_1 │ const v2, 0x7f0c0543 │ │ + .line 78 │ invoke-virtual {p0, v2}, Lorg/smc/inputmethod/indic/settings/PreferencesSettingsFragment;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v2 │ │ goto :goto_0 │ .end method │ │ @@ -232,18 +238,20 @@ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ .line 86 │ const-string v1, "pref_key_preview_popup_dismiss_delay" │ │ + .line 87 │ invoke-static {p1, v0}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeyPreviewPopupEnabled(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ │ move-result v2 │ │ + .line 86 │ invoke-virtual {p0, v1, v2}, Lorg/smc/inputmethod/indic/settings/PreferencesSettingsFragment;->setPreferenceEnabled(Ljava/lang/String;Z)V │ │ .line 89 │ :cond_0 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/settings/PreferencesSettingsFragment;->refreshEnablingsOfKeypressSoundAndVibrationSettings()V │ │ .line 90 ├── smali/org/smc/inputmethod/indic/settings/RadioButtonPreference$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/settings/RadioButtonPreference; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/RadioButtonPreference;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/RadioButtonPreference; │ │ .prologue │ .line 43 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/RadioButtonPreference$1;->this$0:Lorg/smc/inputmethod/indic/settings/RadioButtonPreference; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/settings/SeekBarDialogPreference.smali │ @@ -362,20 +362,22 @@ │ │ invoke-virtual {p1, v0, p0}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v0 │ │ const/high16 v1, 0x1040000 │ │ + .line 108 │ invoke-virtual {v0, v1, p0}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v0 │ │ const v1, 0x7f0c0017 │ │ + .line 109 │ invoke-virtual {v0, v1, p0}, Landroid/app/AlertDialog$Builder;->setNeutralButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ .line 110 │ return-void │ .end method │ │ .method public onProgressChanged(Landroid/widget/SeekBar;IZ)V ├── smali/org/smc/inputmethod/indic/settings/Settings$1.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic val$prefs:Landroid/content/SharedPreferences; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/Settings;Landroid/content/Context;Landroid/content/SharedPreferences;Lorg/smc/inputmethod/indic/InputAttributes;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/Settings; │ │ .prologue │ .line 180 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/Settings$1;->this$0:Lorg/smc/inputmethod/indic/settings/Settings; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/settings/Settings$1;->val$context:Landroid/content/Context; ├── smali/org/smc/inputmethod/indic/settings/Settings.smali │ @@ -357,18 +357,20 @@ │ │ .prologue │ .line 232 │ const-string v0, "pref_key_block_potentially_offensive" │ │ const v1, 0x7f07000a │ │ + .line 233 │ invoke-virtual {p1, v1}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v1 │ │ + .line 232 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -489,23 +491,26 @@ │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ const-string v1, "gesture_input" │ │ + .line 243 │ invoke-interface {p0, v1, v0}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ + .line 242 │ :goto_0 │ return v0 │ │ + .line 243 │ :cond_0 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public static readHasHardwareKeyboard(Landroid/content/res/Configuration;)Z │ @@ -554,14 +559,15 @@ │ .local v0, "milliseconds":I │ if-eq v0, v2, :cond_0 │ │ .end local v0 # "milliseconds":I │ :goto_0 │ return v0 │ │ + .line 319 │ .restart local v0 # "milliseconds":I │ :cond_0 │ invoke-static {p1}, Lorg/smc/inputmethod/indic/settings/Settings;->readDefaultKeyLongpressTimeout(Landroid/content/res/Resources;)I │ │ move-result v0 │ │ goto :goto_0 │ @@ -634,22 +640,24 @@ │ │ .prologue │ .line 268 │ const-string v0, "pref_key_preview_popup_dismiss_delay" │ │ const v1, 0x7f09001e │ │ + .line 269 │ invoke-virtual {p1, v1}, Landroid/content/res/Resources;->getInteger(I)I │ │ move-result v1 │ │ invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 268 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I │ │ move-result v0 │ @@ -701,18 +709,20 @@ │ │ .prologue │ .line 212 │ const-string v0, "sound_on" │ │ const v1, 0x7f070003 │ │ + .line 213 │ invoke-virtual {p1, v1}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v1 │ │ + .line 212 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -737,14 +747,15 @@ │ │ if-eqz v1, :cond_0 │ │ .end local v0 # "volume":F │ :goto_0 │ return v0 │ │ + .line 302 │ .restart local v0 # "volume":F │ :cond_0 │ invoke-static {p1}, Lorg/smc/inputmethod/indic/settings/Settings;->readDefaultKeypressSoundVolume(Landroid/content/res/Resources;)F │ │ move-result v0 │ │ goto :goto_0 │ @@ -769,14 +780,15 @@ │ .local v0, "milliseconds":I │ if-eq v0, v2, :cond_0 │ │ .end local v0 # "milliseconds":I │ :goto_0 │ return v0 │ │ + .line 331 │ .restart local v0 # "milliseconds":I │ :cond_0 │ invoke-static {p1}, Lorg/smc/inputmethod/indic/settings/Settings;->readDefaultKeypressVibrationDuration(Landroid/content/res/Resources;)I │ │ move-result v0 │ │ goto :goto_0 │ @@ -841,18 +853,20 @@ │ │ .prologue │ .line 248 │ const-string v0, "pref_gesture_space_aware" │ │ const v1, 0x7f07000c │ │ + .line 249 │ invoke-virtual {p1, v1}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v1 │ │ + .line 248 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ return v0 │ .end method │ │ @@ -861,18 +875,20 @@ │ .param p0, "prefs" # Landroid/content/SharedPreferences; │ .param p1, "res" # Landroid/content/res/Resources; │ │ .prologue │ .line 287 │ const v1, 0x7f0a0017 │ │ + .line 288 │ invoke-virtual {p1, v1}, Landroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 287 │ invoke-static {v1}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createPrefSubtypes([Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 289 │ .local v0, "predefinedPrefSubtypes":Ljava/lang/String; │ const-string v1, "custom_input_styles" │ @@ -1072,18 +1088,20 @@ │ .local v0, "hasVibrator":Z │ if-eqz v0, :cond_0 │ │ const-string v1, "vibrate_on" │ │ const v2, 0x7f07000d │ │ + .line 220 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getBoolean(I)Z │ │ move-result v2 │ │ + .line 219 │ invoke-interface {p0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v1 │ │ if-eqz v1, :cond_0 │ │ const/4 v1, 0x1 ├── smali/org/smc/inputmethod/indic/settings/SettingsFragment.smali │ @@ -53,26 +53,27 @@ │ invoke-virtual {p0, v2}, Lorg/smc/inputmethod/indic/settings/SettingsFragment;->addPreferencesFromResource(I)V │ │ .line 50 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/SettingsFragment;->getPreferenceScreen()Landroid/preference/PreferenceScreen; │ │ move-result-object v1 │ │ - .line 51 │ + .line 52 │ .local v1, "preferenceScreen":Landroid/preference/PreferenceScreen; │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/SettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v2 │ │ const-class v3, Lorg/smc/inputmethod/indic/settings/SettingsActivity; │ │ invoke-static {v2, v3}, Lcom/android/inputmethod/latin/utils/ApplicationUtils;->getActivityTitleResId(Landroid/content/Context;Ljava/lang/Class;)I │ │ move-result v2 │ │ + .line 51 │ invoke-virtual {v1, v2}, Landroid/preference/PreferenceScreen;->setTitle(I)V │ │ .line 53 │ sget-boolean v2, Lorg/smc/inputmethod/indic/settings/Settings;->SHOW_MULTILINGUAL_SETTINGS:Z │ │ if-nez v2, :cond_0 │ │ @@ -143,24 +144,25 @@ │ const/4 v4, 0x1 │ │ .line 73 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/SettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ - .line 74 │ + .line 75 │ .local v1, "activity":Landroid/app/Activity; │ invoke-virtual {v1}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; │ │ move-result-object v5 │ │ const-string v6, "user_setup_complete" │ │ const/4 v7, 0x0 │ │ + .line 74 │ invoke-static {v5, v6, v7}, Landroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I │ │ move-result v3 │ │ .line 78 │ .local v3, "setupStatus":I │ if-nez v3, :cond_0 ├── smali/org/smc/inputmethod/indic/settings/SettingsValues.smali │ @@ -161,14 +161,15 @@ │ iget-object v4, v4, Landroid/content/res/Configuration;->locale:Ljava/util/Locale; │ │ iput-object v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mLocale:Ljava/util/Locale; │ │ .line 116 │ const v4, 0x7f090009 │ │ + .line 117 │ invoke-virtual {p3, v4}, Landroid/content/res/Resources;->getInteger(I)I │ │ move-result v4 │ │ iput v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mDelayInMillisecondsToUpdateOldSuggestions:I │ │ .line 118 │ @@ -182,14 +183,15 @@ │ if-nez p4, :cond_0 │ │ .line 122 │ new-instance v4, Lorg/smc/inputmethod/indic/InputAttributes; │ │ const/4 v7, 0x0 │ │ + .line 123 │ invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String; │ │ move-result-object v8 │ │ invoke-direct {v4, v7, v6, v8}, Lorg/smc/inputmethod/indic/InputAttributes;->(Landroid/view/inputmethod/EditorInfo;ZLjava/lang/String;)V │ │ iput-object v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mInputAttributes:Lorg/smc/inputmethod/indic/InputAttributes; │ @@ -243,14 +245,15 @@ │ │ iget-object v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mInputAttributes:Lorg/smc/inputmethod/indic/InputAttributes; │ │ iget-boolean v4, v4, Lorg/smc/inputmethod/indic/InputAttributes;->mShouldShowVoiceInputKey:Z │ │ if-eqz v4, :cond_1 │ │ + .line 137 │ invoke-static {}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->getInstance()Lorg/smc/inputmethod/indic/SubtypeSwitcher; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/smc/inputmethod/indic/SubtypeSwitcher;->isShortcutImeEnabled()Z │ │ move-result v4 │ @@ -263,42 +266,46 @@ │ iput-boolean v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mShowsVoiceInputKey:Z │ │ .line 138 │ const-string v4, "auto_correction_threshold" │ │ const v7, 0x7f0c000f │ │ + .line 140 │ invoke-virtual {p3, v7}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v7 │ │ + .line 138 │ invoke-interface {p2, v4, v7}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 141 │ .local v0, "autoCorrectionThresholdRawValue":Ljava/lang/String; │ sget-boolean v4, Lorg/smc/inputmethod/indic/settings/Settings;->ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS:Z │ │ if-eqz v4, :cond_2 │ │ const-string v4, "pref_include_other_imes_in_language_switch_list" │ │ + .line 142 │ invoke-interface {p2, v4, v6}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v4 │ │ :goto_2 │ iput-boolean v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mIncludesOtherImesInLanguageSwitchList:Z │ │ .line 144 │ sget-boolean v4, Lorg/smc/inputmethod/indic/settings/Settings;->ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS:Z │ │ if-eqz v4, :cond_3 │ │ + .line 145 │ invoke-static {p2}, Lorg/smc/inputmethod/indic/settings/Settings;->readShowsLanguageSwitchKey(Landroid/content/SharedPreferences;)Z │ │ move-result v4 │ │ :goto_3 │ iput-boolean v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mShowsLanguageSwitchKey:Z │ │ @@ -393,14 +400,15 @@ │ .line 156 │ sget-boolean v4, Lorg/smc/inputmethod/indic/settings/Settings;->HAS_UI_TO_ACCEPT_TYPED_WORD:Z │ │ if-eqz v4, :cond_5 │ │ const-string v4, "pref_show_ui_to_accept_typed_word" │ │ + .line 157 │ invoke-interface {p2, v4, v5}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v4 │ │ if-eqz v4, :cond_5 │ │ move v4, v5 │ @@ -529,33 +537,37 @@ │ iput-boolean v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mHasCustomKeyPreviewAnimationParams:Z │ │ .line 180 │ const-string v4, "pref_key_preview_show_up_duration" │ │ const v7, 0x7f09001f │ │ + .line 182 │ invoke-virtual {p3, v7}, Landroid/content/res/Resources;->getInteger(I)I │ │ move-result v7 │ │ + .line 180 │ invoke-static {p2, v4, v7}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeyPreviewAnimationDuration(Landroid/content/SharedPreferences;Ljava/lang/String;I)I │ │ move-result v4 │ │ iput v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mKeyPreviewShowUpDuration:I │ │ .line 183 │ const-string v4, "pref_key_preview_dismiss_duration" │ │ const v7, 0x7f09001d │ │ + .line 185 │ invoke-virtual {p3, v7}, Landroid/content/res/Resources;->getInteger(I)I │ │ move-result v7 │ │ + .line 183 │ invoke-static {p2, v4, v7}, Lorg/smc/inputmethod/indic/settings/Settings;->readKeyPreviewAnimationDuration(Landroid/content/SharedPreferences;Ljava/lang/String;I)I │ │ move-result v4 │ │ iput v4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mKeyPreviewDismissDuration:I │ │ .line 186 │ @@ -661,40 +673,40 @@ │ iput-object p4, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mInputAttributes:Lorg/smc/inputmethod/indic/InputAttributes; │ │ goto/16 :goto_0 │ │ :cond_1 │ move v4, v6 │ │ - .line 135 │ + .line 137 │ goto/16 :goto_1 │ │ .restart local v0 # "autoCorrectionThresholdRawValue":Ljava/lang/String; │ :cond_2 │ move v4, v5 │ │ - .line 141 │ + .line 142 │ goto/16 :goto_2 │ │ :cond_3 │ move v4, v5 │ │ - .line 144 │ + .line 145 │ goto/16 :goto_3 │ │ :cond_4 │ move v4, v6 │ │ .line 148 │ goto/16 :goto_4 │ │ :cond_5 │ move v4, v6 │ │ - .line 156 │ + .line 157 │ goto/16 :goto_5 │ │ :cond_6 │ move v4, v6 │ │ .line 170 │ goto/16 :goto_6 │ @@ -714,14 +726,15 @@ │ │ iget-object v7, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mInputAttributes:Lorg/smc/inputmethod/indic/InputAttributes; │ │ iget-object v7, v7, Lorg/smc/inputmethod/indic/InputAttributes;->mTargetApplicationPackageName:Ljava/lang/String; │ │ aput-object v7, v5, v6 │ │ + .line 210 │ invoke-virtual {v4, v5}, Lcom/android/inputmethod/latin/utils/TargetPackageInfoGetterTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ goto :goto_7 │ .end method │ │ .method private static needsToShowVoiceInputKey(Landroid/content/SharedPreferences;Landroid/content/res/Resources;)Z │ .locals 5 │ @@ -763,24 +776,27 @@ │ .local v0, "shouldShowVoiceInputKey":Z │ invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ move-result-object v3 │ │ const-string v4, "pref_voice_input_key" │ │ + .line 345 │ invoke-interface {v3, v4, v0}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v3 │ │ const-string v4, "voice_mode" │ │ + .line 347 │ invoke-interface {v3, v4}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v3 │ │ + .line 348 │ invoke-interface {v3}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 350 │ .end local v0 # "shouldShowVoiceInputKey":Z │ .end local v1 # "voiceMode":Ljava/lang/String; │ .end local v2 # "voiceModeMain":Ljava/lang/String; │ :cond_0 │ @@ -910,26 +926,28 @@ │ │ const-string v7, ", autoCorrectionThresholdValues: " │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ + .line 329 │ invoke-static {v2}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)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 │ │ + .line 326 │ invoke-static {v5, v6, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ .line 330 │ const v1, 0x7f7fffff # Float.MAX_VALUE │ │ goto :goto_0 │ .end method │ @@ -975,59 +993,64 @@ │ .line 288 │ const-string v1, "2" │ │ const-string v3, "show_suggestions_setting" │ │ const/4 v4, 0x0 │ │ + .line 289 │ invoke-interface {p0, v3, v4}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 288 │ invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v0 │ │ .line 290 │ .local v0, "alwaysHide":Z │ invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; │ │ move-result-object v1 │ │ const-string v3, "show_suggestions_setting" │ │ + .line 291 │ invoke-interface {v1, v3}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v3 │ │ const-string v4, "show_suggestions" │ │ if-nez v0, :cond_1 │ │ move v1, v2 │ │ + .line 292 │ :goto_0 │ invoke-interface {v3, v4, v1}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; │ │ move-result-object v1 │ │ + .line 293 │ invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V │ │ .line 295 │ .end local v0 # "alwaysHide":Z │ :cond_0 │ const-string v1, "show_suggestions" │ │ invoke-interface {p0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v1 │ │ return v1 │ │ - .line 290 │ + .line 291 │ .restart local v0 # "alwaysHide":Z │ :cond_1 │ const/4 v1, 0x0 │ │ goto :goto_0 │ .end method │ │ @@ -2248,14 +2271,15 @@ │ .line 273 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mAppWorkarounds:Lcom/android/inputmethod/latin/utils/AsyncResultHolder; │ │ const/4 v2, 0x0 │ │ const-wide/16 v4, 0x5 │ │ + .line 274 │ invoke-virtual {v1, v2, v4, v5}, Lcom/android/inputmethod/latin/utils/AsyncResultHolder;->get(Ljava/lang/Object;J)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/compat/AppWorkaroundsUtils; │ │ .line 275 │ @@ -2282,14 +2306,15 @@ │ .line 279 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mAppWorkarounds:Lcom/android/inputmethod/latin/utils/AsyncResultHolder; │ │ const/4 v2, 0x0 │ │ const-wide/16 v4, 0x5 │ │ + .line 280 │ invoke-virtual {v1, v2, v4, v5}, Lcom/android/inputmethod/latin/utils/AsyncResultHolder;->get(Ljava/lang/Object;J)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/compat/AppWorkaroundsUtils; │ │ .line 281 │ @@ -2423,26 +2448,29 @@ │ │ move-result v0 │ │ if-nez v0, :cond_0 │ │ const/16 v0, 0x8 │ │ + .line 237 │ invoke-static {p1}, Ljava/lang/Character;->getType(I)I │ │ move-result v1 │ │ if-ne v0, v1, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 236 │ :goto_0 │ return v0 │ │ + .line 237 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public isWordConnector(I)Z │ @@ -2486,26 +2514,29 @@ │ │ if-eqz v0, :cond_1 │ │ iget-boolean v0, p0, Lorg/smc/inputmethod/indic/settings/SettingsValues;->mAutoCorrectionEnabledPerUserSettings:Z │ │ if-nez v0, :cond_0 │ │ + .line 220 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/SettingsValues;->isSuggestionsEnabledPerUserSettings()Z │ │ move-result v0 │ │ if-eqz v0, :cond_1 │ │ :cond_0 │ const/4 v0, 0x1 │ │ + .line 219 │ :goto_0 │ return v0 │ │ + .line 220 │ :cond_1 │ const/4 v0, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public shouldInsertSpacesAutomatically()Z ├── smali/org/smc/inputmethod/indic/settings/SpacingAndPunctuations.smali │ @@ -39,70 +39,80 @@ │ │ .line 45 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ .line 47 │ const v2, 0x7f0c051f │ │ + .line 48 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 47 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toSortedCodePointArray(Ljava/lang/String;)[I │ │ move-result-object v2 │ │ iput-object v2, p0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mSortedSymbolsPrecededBySpace:[I │ │ .line 50 │ const v2, 0x7f0c051e │ │ + .line 51 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 50 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toSortedCodePointArray(Ljava/lang/String;)[I │ │ move-result-object v2 │ │ iput-object v2, p0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mSortedSymbolsFollowedBySpace:[I │ │ .line 52 │ const v2, 0x7f0c051d │ │ + .line 53 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 52 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toSortedCodePointArray(Ljava/lang/String;)[I │ │ move-result-object v2 │ │ iput-object v2, p0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mSortedSymbolsClusteringTogether:[I │ │ .line 55 │ const v2, 0x7f0c0520 │ │ + .line 56 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 55 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toSortedCodePointArray(Ljava/lang/String;)[I │ │ move-result-object v2 │ │ iput-object v2, p0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mSortedWordConnectors:[I │ │ .line 57 │ const v2, 0x7f0c0521 │ │ + .line 58 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 57 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/StringUtils;->toSortedCodePointArray(Ljava/lang/String;)[I │ │ move-result-object v2 │ │ iput-object v2, p0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mSortedWordSeparators:[I │ │ .line 59 │ @@ -183,18 +193,20 @@ │ move-result v2 │ │ iput-boolean v2, p0, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->mUsesGermanRules:Z │ │ .line 68 │ const/high16 v2, 0x7f0c0000 │ │ + .line 69 │ invoke-virtual {p1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 68 │ invoke-static {v2}, Lcom/android/inputmethod/keyboard/internal/MoreKeySpec;->splitKeySpecs(Ljava/lang/String;)[Ljava/lang/String; │ │ move-result-object v1 │ │ .line 70 │ .local v1, "suggestPuncsSpec":[Ljava/lang/String; │ invoke-static {v1}, Lorg/smc/inputmethod/indic/PunctuationSuggestions;->newPunctuationSuggestions([Ljava/lang/String;)Lorg/smc/inputmethod/indic/PunctuationSuggestions; ├── smali/org/smc/inputmethod/indic/settings/SubScreenFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/settings/SubScreenFragment; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/settings/SubScreenFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/settings/SubScreenFragment; │ │ .prologue │ .line 92 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/settings/SubScreenFragment$1;->this$0:Lorg/smc/inputmethod/indic/settings/SubScreenFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/settings/SubScreenFragment.smali │ @@ -128,19 +128,20 @@ │ .locals 1 │ .param p1, "preferencesResId" # I │ │ .prologue │ .line 84 │ invoke-super {p0, p1}, Landroid/preference/PreferenceFragment;->addPreferencesFromResource(I)V │ │ - .line 85 │ + .line 86 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/SubScreenFragment;->getPreferenceScreen()Landroid/preference/PreferenceScreen; │ │ move-result-object v0 │ │ + .line 85 │ invoke-static {v0}, Lorg/smc/inputmethod/indic/settings/TwoStatePreferenceHelper;->replaceCheckBoxPreferencesBySwitchPreferences(Landroid/preference/PreferenceGroup;)V │ │ .line 87 │ return-void │ .end method │ │ .method final getSharedPreferences()Landroid/content/SharedPreferences; ├── smali/org/smc/inputmethod/indic/settings/ThemeSettingsFragment.smali │ @@ -22,15 +22,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 34 │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/settings/SubScreenFragment;->()V │ │ - .line 38 │ return-void │ .end method │ │ .method static updateKeyboardThemeSummary(Landroid/preference/Preference;)V │ .locals 8 │ .param p0, "pref" # Landroid/preference/Preference; │ │ @@ -243,14 +242,15 @@ │ array-length v8, v3 │ │ if-ge v0, v8, :cond_0 │ │ .line 72 │ new-instance v4, Lorg/smc/inputmethod/indic/settings/ThemeSettingsFragment$KeyboardThemePreference; │ │ + .line 73 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/settings/ThemeSettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v8 │ │ aget-object v9, v3, v0 │ │ aget-object v10, v2, v0 ├── smali/org/smc/inputmethod/indic/setup/SetupStartIndicatorView$LabelView.smali │ @@ -56,66 +56,63 @@ │ :cond_0 │ return-void │ .end method │ │ │ # virtual methods │ .method protected drawableStateChanged()V │ - .locals 5 │ + .locals 6 │ │ .prologue │ + const/4 v2, 0x0 │ + │ .line 58 │ invoke-super {p0}, Landroid/widget/TextView;->drawableStateChanged()V │ │ .line 59 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/setup/SetupStartIndicatorView$LabelView;->getDrawableState()[I │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[I │ - array-length v2, v0 │ + array-length v4, v3 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + move v1, v2 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_1 │ + if-ge v1, v4, :cond_1 │ │ - aget v3, v0, v1 │ + aget v0, v3, v1 │ │ .line 60 │ - .local v3, "state":I │ - const v4, 0x10100a7 │ + .local v0, "state":I │ + const v5, 0x10100a7 │ │ - if-ne v3, v4, :cond_0 │ + if-ne v0, v5, :cond_0 │ │ .line 61 │ - const/4 v4, 0x1 │ + const/4 v1, 0x1 │ │ - invoke-direct {p0, v4}, Lorg/smc/inputmethod/indic/setup/SetupStartIndicatorView$LabelView;->updateIndicatorView(Z)V │ + invoke-direct {p0, v1}, Lorg/smc/inputmethod/indic/setup/SetupStartIndicatorView$LabelView;->updateIndicatorView(Z)V │ │ .line 66 │ - .end local v3 # "state":I │ + .end local v0 # "state":I │ :goto_1 │ return-void │ │ .line 59 │ - .restart local v3 # "state":I │ + .restart local v0 # "state":I │ :cond_0 │ add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ .line 65 │ - .end local v3 # "state":I │ + .end local v0 # "state":I │ :cond_1 │ - const/4 v4, 0x0 │ - │ - invoke-direct {p0, v4}, Lorg/smc/inputmethod/indic/setup/SetupStartIndicatorView$LabelView;->updateIndicatorView(Z)V │ + invoke-direct {p0, v2}, Lorg/smc/inputmethod/indic/setup/SetupStartIndicatorView$LabelView;->updateIndicatorView(Z)V │ │ goto :goto_1 │ .end method │ │ .method public setIndicatorView(Landroid/view/View;)V │ .locals 0 │ .param p1, "indicatorView" # Landroid/view/View; ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$handler:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SettingsPoolingHandler; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SettingsPoolingHandler;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ .prologue │ .line 146 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$1;->this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ iput-object p2, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$1;->val$handler:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SettingsPoolingHandler; ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ .prologue │ .line 173 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$3;->this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ .prologue │ .line 160 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$2;->this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity$4.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ .prologue │ .line 186 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$4;->this$0:Lorg/smc/inputmethod/indic/setup/SetupWizardActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep.smali │ @@ -115,22 +115,24 @@ │ invoke-virtual {v3, v4}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 409 │ if-nez p6, :cond_0 │ │ const/4 v4, 0x0 │ │ + .line 410 │ :goto_0 │ iput-object v4, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->mInstruction:Ljava/lang/String; │ │ .line 411 │ if-nez p7, :cond_1 │ │ const/4 v4, 0x0 │ │ + .line 412 │ :goto_1 │ iput-object v4, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->mFinishedInstruction:Ljava/lang/String; │ │ .line 414 │ iget-object v4, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->mStepView:Landroid/view/View; │ │ const v5, 0x7f100081 │ @@ -185,14 +187,15 @@ │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ aput-object p2, v4, v5 │ │ + .line 410 │ invoke-virtual {v2, p6, v4}, Landroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v4 │ │ goto :goto_0 │ │ .line 411 │ @@ -201,38 +204,41 @@ │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ aput-object p2, v4, v5 │ │ + .line 412 │ move/from16 v0, p7 │ │ invoke-virtual {v2, v0, v4}, Landroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v4 │ │ goto :goto_1 │ │ .line 420 │ :cond_2 │ iget-object v4, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->mActionLabel:Landroid/widget/TextView; │ │ + .line 421 │ move/from16 v0, p8 │ │ invoke-virtual {v2, v0}, Landroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; │ │ move-result-object v5 │ │ const/4 v6, 0x0 │ │ const/4 v7, 0x0 │ │ const/4 v8, 0x0 │ │ + .line 420 │ invoke-static {v4, v5, v6, v7, v8}, Lorg/smc/inputmethod/compat/TextViewCompatUtils;->setCompoundDrawablesRelativeWithIntrinsicBounds(Landroid/widget/TextView;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V │ │ goto :goto_2 │ .end method │ │ │ # virtual methods ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup.smali │ @@ -65,69 +65,68 @@ │ invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 458 │ return-void │ .end method │ │ .method public enableStep(IZ)V │ - .locals 5 │ + .locals 4 │ .param p1, "enableStepNo" # I │ .param p2, "isStepActionAlreadyDone" # Z │ │ .prologue │ .line 461 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup;->mGroup:Ljava/util/ArrayList; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup;->mGroup: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 v0 │ + move-result-object v2 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v2 │ + move-result v1 │ │ - if-eqz v2, :cond_1 │ + if-eqz v1, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ + check-cast v0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ │ .line 462 │ - .local v1, "step":Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ - iget v2, v1, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->mStepNo:I │ + .local v0, "step":Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ + iget v1, v0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->mStepNo:I │ │ - if-ne v2, p1, :cond_0 │ + if-ne v1, p1, :cond_0 │ │ - const/4 v2, 0x1 │ + const/4 v1, 0x1 │ │ :goto_1 │ - invoke-virtual {v1, v2, p2}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->setEnabled(ZZ)V │ + invoke-virtual {v0, v1, p2}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep;->setEnabled(ZZ)V │ │ goto :goto_0 │ │ :cond_0 │ - const/4 v2, 0x0 │ + const/4 v1, 0x0 │ │ goto :goto_1 │ │ .line 464 │ - .end local v1 # "step":Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ + .end local v0 # "step":Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ :cond_1 │ - iget-object v2, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup;->mIndicatorView:Lorg/smc/inputmethod/indic/setup/SetupStepIndicatorView; │ + iget-object v1, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup;->mIndicatorView:Lorg/smc/inputmethod/indic/setup/SetupStepIndicatorView; │ │ - add-int/lit8 v3, p1, -0x1 │ + add-int/lit8 v2, p1, -0x1 │ │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup;->mGroup:Ljava/util/ArrayList; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStepGroup;->mGroup:Ljava/util/ArrayList; │ │ - invoke-virtual {v4}, Ljava/util/ArrayList;->size()I │ + invoke-virtual {v3}, Ljava/util/ArrayList;->size()I │ │ - move-result v4 │ + move-result v3 │ │ - invoke-virtual {v2, v3, v4}, Lorg/smc/inputmethod/indic/setup/SetupStepIndicatorView;->setIndicatorPosition(II)V │ + invoke-virtual {v1, v2, v3}, Lorg/smc/inputmethod/indic/setup/SetupStepIndicatorView;->setIndicatorPosition(II)V │ │ .line 465 │ return-void │ .end method ├── smali/org/smc/inputmethod/indic/setup/SetupWizardActivity.smali │ @@ -82,15 +82,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 40 │ invoke-direct {p0}, Landroid/app/Activity;->()V │ │ - .line 448 │ return-void │ .end method │ │ .method private determineSetupStepNumber()I │ .locals 1 │ │ .prologue │ @@ -439,14 +438,15 @@ │ .method invokeSubtypeEnablerOfThisIme()V │ .locals 5 │ │ .prologue │ const/4 v4, 0x1 │ │ .line 264 │ + .line 265 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->getPackageName()Ljava/lang/String; │ │ move-result-object v2 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->mImm:Landroid/view/inputmethod/InputMethodManager; │ │ invoke-static {v2, v3}, Lcom/android/inputmethod/latin/utils/UncachedInputMethodManagerUtils;->getInputMethodInfoOf(Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager;)Landroid/view/inputmethod/InputMethodInfo; │ @@ -791,14 +791,15 @@ │ move-object/from16 v0, v19 │ │ invoke-virtual {v0, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 134 │ const v3, 0x7f100087 │ │ + .line 135 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v3}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v18 │ │ check-cast v18, Lorg/smc/inputmethod/indic/setup/SetupStepIndicatorView; │ @@ -846,14 +847,15 @@ │ │ move-object/from16 v0, p0 │ │ iget-object v5, v0, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->mStep1Bullet:Landroid/widget/TextView; │ │ const v8, 0x7f100089 │ │ + .line 141 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v8}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v6 │ │ const v7, 0x7f0c00d2 │ @@ -898,14 +900,15 @@ │ .line 155 │ new-instance v5, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ │ const/4 v6, 0x2 │ │ const v3, 0x7f100084 │ │ + .line 156 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v3}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v8 │ │ check-cast v8, Landroid/widget/TextView; │ @@ -952,14 +955,15 @@ │ .line 168 │ new-instance v6, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ │ const/4 v7, 0x3 │ │ const v3, 0x7f100085 │ │ + .line 169 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v3}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v9 │ │ check-cast v9, Landroid/widget/TextView; │ @@ -1006,14 +1010,15 @@ │ .line 181 │ new-instance v7, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity$SetupStep; │ │ const/4 v8, 0x4 │ │ const v3, 0x7f100086 │ │ + .line 182 │ move-object/from16 v0, p0 │ │ invoke-virtual {v0, v3}, Lorg/smc/inputmethod/indic/setup/SetupWizardActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v10 │ │ check-cast v10, Landroid/widget/TextView; ├── smali/org/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService$DictionaryFacilitatorLruCache.smali │ @@ -139,26 +139,21 @@ │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ - const-string v2, " has been evicted due to cache size limit." │ - │ - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ - │ - move-result-object v1 │ - │ - const-string v2, " size: " │ + const-string v2, " has been evicted due to cache size limit. size: " │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 100 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService$DictionaryFacilitatorLruCache;->size()I │ │ move-result v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -177,13 +172,14 @@ │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 98 │ invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 103 │ :cond_1 │ return-void │ .end method ├── smali/org/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService.smali │ @@ -241,20 +241,21 @@ │ │ .line 307 │ .local v2, "script":I │ invoke-static {v2}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getKeyboardLayoutNameForScript(I)Ljava/lang/String; │ │ move-result-object v0 │ │ - .line 308 │ + .line 309 │ .local v0, "keyboardLayoutName":Ljava/lang/String; │ invoke-virtual {p1}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 308 │ invoke-static {v4, v0}, Lcom/android/inputmethod/latin/utils/AdditionalSubtypeUtils;->createDummyAdditionalSubtype(Ljava/lang/String;Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype; │ │ move-result-object v3 │ │ .line 310 │ .local v3, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ invoke-direct {p0, v3}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->createKeyboardSetForSpellChecker(Landroid/view/inputmethod/InputMethodSubtype;)Lcom/android/inputmethod/keyboard/KeyboardLayoutSet; │ @@ -322,14 +323,15 @@ │ .locals 2 │ .param p1, "locale" # Ljava/util/Locale; │ │ .prologue │ .line 245 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mDictionaryFacilitatorCache:Landroid/util/LruCache; │ │ + .line 246 │ invoke-virtual {v1, p1}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ .line 247 │ @@ -646,33 +648,35 @@ │ │ move-object v0, v2 │ │ check-cast v0, Ljava/lang/Integer; │ │ move-object v7, v0 │ │ - .line 221 │ + .line 222 │ invoke-direct {p0, p1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getDictionaryFacilitatorForLocaleLocked(Ljava/util/Locale;)Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ move-result-object v1 │ │ .line 223 │ .local v1, "dictionaryFacilitatorForLocale":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ iget-object v5, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSettingsValuesForSuggestion:Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion; │ │ + .line 224 │ invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I │ │ move-result v6 │ │ move-object v2, p2 │ │ move-object v3, p3 │ │ move-object v4, p4 │ │ + .line 223 │ invoke-virtual/range {v1 .. v6}, Lorg/smc/inputmethod/indic/DictionaryFacilitator;->getSuggestionResults(Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;Lorg/smc/inputmethod/indic/settings/SettingsValuesForSuggestion;I)Lcom/android/inputmethod/latin/utils/SuggestionResults; │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v2 │ │ .line 226 │ @@ -685,14 +689,15 @@ │ │ .line 229 │ :cond_0 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v3}, Ljava/util/concurrent/Semaphore;->release()V │ │ + .line 223 │ return-object v2 │ │ .line 226 │ .end local v1 # "dictionaryFacilitatorForLocale":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ :catchall_0 │ move-exception v2 │ │ @@ -718,15 +723,15 @@ │ │ .prologue │ .line 234 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v1}, Ljava/util/concurrent/Semaphore;->acquireUninterruptibly()V │ │ - .line 236 │ + .line 237 │ :try_start_0 │ invoke-direct {p0, p1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getDictionaryFacilitatorForLocaleLocked(Ljava/util/Locale;)Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ move-result-object v0 │ │ .line 238 │ .local v0, "dictionaryFacilitator":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ @@ -737,16 +742,18 @@ │ move-result v1 │ │ .line 240 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v2}, Ljava/util/concurrent/Semaphore;->release()V │ │ + .line 238 │ return v1 │ │ + .line 240 │ .end local v0 # "dictionaryFacilitator":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ :catchall_0 │ move-exception v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v2}, Ljava/util/concurrent/Semaphore;->release()V │ @@ -761,15 +768,15 @@ │ │ .prologue │ .line 205 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v1}, Ljava/util/concurrent/Semaphore;->acquireUninterruptibly()V │ │ - .line 207 │ + .line 208 │ :try_start_0 │ invoke-direct {p0, p1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getDictionaryFacilitatorForLocaleLocked(Ljava/util/Locale;)Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ move-result-object v0 │ │ .line 209 │ .local v0, "dictionaryFacilitatorForLocale":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ @@ -782,16 +789,18 @@ │ move-result v1 │ │ .line 211 │ iget-object v2, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v2}, Ljava/util/concurrent/Semaphore;->release()V │ │ + .line 209 │ return v1 │ │ + .line 211 │ .end local v0 # "dictionaryFacilitatorForLocale":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ :catchall_0 │ move-exception v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ invoke-virtual {v2}, Ljava/util/concurrent/Semaphore;->release()V │ @@ -805,14 +814,15 @@ │ .prologue │ .line 133 │ invoke-super {p0}, Landroid/service/textservice/SpellCheckerService;->onCreate()V │ │ .line 134 │ const v1, 0x7f0c00ea │ │ + .line 135 │ invoke-virtual {p0, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F │ │ move-result v1 │ @@ -834,119 +844,117 @@ │ invoke-virtual {p0, v0, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V │ │ .line 139 │ return-void │ .end method │ │ .method public onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V │ - .locals 7 │ + .locals 6 │ .param p1, "prefs" # Landroid/content/SharedPreferences; │ .param p2, "key" # Ljava/lang/String; │ │ .prologue │ - const/4 v6, 0x2 │ + const/4 v5, 0x2 │ │ .line 160 │ - const-string v4, "pref_spellcheck_use_contacts" │ + const-string v3, "pref_spellcheck_use_contacts" │ │ - invoke-virtual {v4, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v3, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v4 │ + move-result v3 │ │ - if-nez v4, :cond_1 │ + if-nez v3, :cond_1 │ │ .line 176 │ :cond_0 │ :goto_0 │ return-void │ │ .line 161 │ :cond_1 │ - const-string v4, "pref_spellcheck_use_contacts" │ + const-string v3, "pref_spellcheck_use_contacts" │ │ - const/4 v5, 0x1 │ + const/4 v4, 0x1 │ │ - invoke-interface {p1, v4, v5}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ + invoke-interface {p1, v3, v4}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ - move-result v3 │ + move-result v2 │ │ .line 162 │ - .local v3, "useContactsDictionary":Z │ - iget-boolean v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mUseContactsDictionary:Z │ + .local v2, "useContactsDictionary":Z │ + iget-boolean v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mUseContactsDictionary:Z │ │ - if-eq v3, v4, :cond_0 │ + if-eq v2, v3, :cond_0 │ │ .line 163 │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ - invoke-virtual {v4, v6}, Ljava/util/concurrent/Semaphore;->acquireUninterruptibly(I)V │ + invoke-virtual {v3, v5}, Ljava/util/concurrent/Semaphore;->acquireUninterruptibly(I)V │ │ .line 165 │ :try_start_0 │ - iput-boolean v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mUseContactsDictionary:Z │ + iput-boolean v2, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mUseContactsDictionary:Z │ │ .line 166 │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mCachedLocales:Ljava/util/HashSet; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mCachedLocales:Ljava/util/HashSet; │ │ - invoke-virtual {v4}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v3}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_2 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Ljava/util/Locale; │ + check-cast v1, Ljava/util/Locale; │ │ .line 167 │ - .local v2, "locale":Ljava/util/Locale; │ + .local v1, "locale":Ljava/util/Locale; │ iget-object v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mDictionaryFacilitatorCache:Landroid/util/LruCache; │ │ - invoke-virtual {v4, v2}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object; │ + .line 168 │ + invoke-virtual {v4, v1}, Landroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ │ .line 169 │ .local v0, "dictionaryFacilitator":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ iget-boolean v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mUseContactsDictionary:Z │ │ - invoke-static {p0, v0, v2, v4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->resetDictionariesForLocale(Landroid/content/Context;Lorg/smc/inputmethod/indic/DictionaryFacilitator;Ljava/util/Locale;Z)V │ + invoke-static {p0, v0, v1, v4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->resetDictionariesForLocale(Landroid/content/Context;Lorg/smc/inputmethod/indic/DictionaryFacilitator;Ljava/util/Locale;Z)V │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ goto :goto_1 │ │ .line 173 │ .end local v0 # "dictionaryFacilitator":Lorg/smc/inputmethod/indic/DictionaryFacilitator; │ - .end local v1 # "i$":Ljava/util/Iterator; │ - .end local v2 # "locale":Ljava/util/Locale; │ + .end local v1 # "locale":Ljava/util/Locale; │ :catchall_0 │ - move-exception v4 │ + move-exception v3 │ │ - iget-object v5, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ + iget-object v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ - invoke-virtual {v5, v6}, Ljava/util/concurrent/Semaphore;->release(I)V │ + invoke-virtual {v4, v5}, Ljava/util/concurrent/Semaphore;->release(I)V │ │ - throw v4 │ + throw v3 │ │ - .restart local v1 # "i$":Ljava/util/Iterator; │ :cond_2 │ - iget-object v4, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ + iget-object v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->mSemaphore:Ljava/util/concurrent/Semaphore; │ │ - invoke-virtual {v4, v6}, Ljava/util/concurrent/Semaphore;->release(I)V │ + invoke-virtual {v3, v5}, Ljava/util/concurrent/Semaphore;->release(I)V │ │ goto :goto_0 │ .end method │ │ .method public onUnbind(Landroid/content/Intent;)Z │ .locals 3 │ .param p1, "intent" # Landroid/content/Intent; ├── smali/org/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerSession.smali │ @@ -644,14 +644,15 @@ │ .local v0, "i":I │ :goto_1 │ if-ge v0, v1, :cond_1 │ │ .line 177 │ aget-object v10, p1, v0 │ │ + .line 178 │ invoke-virtual {v7, v10}, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter;->getSplitWords(Landroid/view/textservice/TextInfo;)Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceTextInfoParams; │ │ move-result-object v9 │ │ .line 179 │ .local v9, "textInfoParams":Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceTextInfoParams; │ iget-object v5, v9, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceTextInfoParams;->mItems:Ljava/util/ArrayList; │ @@ -690,18 +691,20 @@ │ │ goto :goto_2 │ │ .line 186 │ :cond_5 │ const/4 v10, 0x1 │ │ + .line 187 │ invoke-virtual {p0, v8, p2, v10}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerSession;->onGetSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)[Landroid/view/textservice/SuggestionsInfo; │ │ move-result-object v10 │ │ + .line 186 │ invoke-static {v9, v10}, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter;->reconstructSuggestions(Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceTextInfoParams;[Landroid/view/textservice/SuggestionsInfo;)Landroid/view/textservice/SentenceSuggestionsInfo; │ │ move-result-object v10 │ │ aput-object v10, v6, v0 │ │ .line 176 │ @@ -748,14 +751,15 @@ │ if-ge v0, v3, :cond_0 │ │ .line 132 │ aget-object v3, p1, v0 │ │ aget-object v4, v1, v0 │ │ + .line 133 │ invoke-direct {p0, v3, v4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerSession;->fixWronglyInvalidatedWordWithSingleQuote(Landroid/view/textservice/TextInfo;Landroid/view/textservice/SentenceSuggestionsInfo;)Landroid/view/textservice/SentenceSuggestionsInfo; │ │ move-result-object v2 │ │ .line 134 │ .local v2, "tempSsi":Landroid/view/textservice/SentenceSuggestionsInfo; │ if-eqz v2, :cond_2 │ @@ -805,15 +809,15 @@ │ if-lez v0, :cond_1 │ │ .line 203 │ add-int/lit8 v10, v0, -0x1 │ │ aget-object v4, p1, v10 │ │ - .line 204 │ + .line 205 │ .local v4, "prevTextInfo":Landroid/view/textservice/TextInfo; │ invoke-static {v4}, Lorg/smc/inputmethod/compat/TextInfoCompatUtils;->getCharSequenceOrString(Landroid/view/textservice/TextInfo;)Ljava/lang/CharSequence; │ │ move-result-object v6 │ │ .line 208 │ .local v6, "prevWordCandidate":Ljava/lang/CharSequence; │ @@ -891,16 +895,18 @@ │ goto :goto_1 │ │ .line 220 │ .end local v5 # "prevWord":Ljava/lang/CharSequence; │ :cond_2 │ invoke-static {v2, v3}, Landroid/os/Binder;->restoreCallingIdentity(J)V │ │ + .line 218 │ return-object v8 │ │ + .line 220 │ .end local v0 # "i":I │ .end local v1 # "length":I │ .end local v8 # "retval":[Landroid/view/textservice/SuggestionsInfo; │ :catchall_0 │ move-exception v10 │ │ invoke-static {v2, v3}, Landroid/os/Binder;->restoreCallingIdentity(J)V ├── smali/org/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;Landroid/os/Handler;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession; │ .param p2, "x0" # Landroid/os/Handler; │ │ .prologue │ .line 109 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$1;->this$0:Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession; │ │ invoke-direct {p0, p2}, Landroid/database/ContentObserver;->(Landroid/os/Handler;)V ├── smali/org/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache.smali │ @@ -165,19 +165,21 @@ │ :goto_0 │ return-void │ │ .line 96 │ :cond_1 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache;->mUnigramSuggestionsInfoCache:Landroid/util/LruCache; │ │ + .line 97 │ invoke-static {p1, p2}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache;->generateKey(Ljava/lang/String;Lcom/android/inputmethod/latin/PrevWordsInfo;)Ljava/lang/String; │ │ move-result-object v1 │ │ new-instance v2, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ │ invoke-direct {v2, p3, p4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams;->([Ljava/lang/String;I)V │ │ + .line 96 │ invoke-virtual {v0, v1, v2}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession.smali │ @@ -248,199 +248,199 @@ │ │ move v5, v6 │ │ goto :goto_0 │ .end method │ │ .method private static getResult(ILjava/util/Locale;IFLjava/lang/String;Lcom/android/inputmethod/latin/utils/SuggestionResults;)Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ - .locals 13 │ + .locals 11 │ .param p0, "capitalizeType" # I │ .param p1, "locale" # Ljava/util/Locale; │ .param p2, "suggestionsLimit" # I │ .param p3, "recommendedThreshold" # F │ .param p4, "originalText" # Ljava/lang/String; │ .param p5, "suggestionResults" # Lcom/android/inputmethod/latin/utils/SuggestionResults; │ │ .prologue │ .line 340 │ invoke-virtual/range {p5 .. p5}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->isEmpty()Z │ │ - move-result v10 │ + move-result v8 │ │ - if-nez v10, :cond_0 │ + if-nez v8, :cond_0 │ │ if-gtz p2, :cond_1 │ │ .line 341 │ :cond_0 │ - new-instance v10, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ + new-instance v8, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ │ - const/4 v11, 0x0 │ + const/4 v9, 0x0 │ │ - const/4 v12, 0x0 │ + const/4 v10, 0x0 │ │ - invoke-direct {v10, v11, v12}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->([Ljava/lang/String;Z)V │ + invoke-direct {v8, v9, v10}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->([Ljava/lang/String;Z)V │ │ .line 380 │ :goto_0 │ - return-object v10 │ + return-object v8 │ │ .line 349 │ :cond_1 │ - new-instance v9, Ljava/util/ArrayList; │ + new-instance v7, Ljava/util/ArrayList; │ │ - invoke-direct {v9}, Ljava/util/ArrayList;->()V │ + invoke-direct {v7}, Ljava/util/ArrayList;->()V │ │ .line 350 │ - .local v9, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .local v7, "suggestions":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual/range {p5 .. p5}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->iterator()Ljava/util/Iterator; │ │ - move-result-object v5 │ + move-result-object v8 │ │ - .local v5, "i$":Ljava/util/Iterator; │ :goto_1 │ - invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z │ │ - move-result v10 │ + move-result v9 │ │ - if-eqz v10, :cond_4 │ + if-eqz v9, :cond_4 │ │ - invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v7 │ + move-result-object v5 │ │ - check-cast v7, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ + check-cast v5, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ .line 352 │ - .local v7, "suggestedWordInfo":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ - const/4 v10, 0x2 │ + .local v5, "suggestedWordInfo":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ + const/4 v9, 0x2 │ │ - if-ne v10, p0, :cond_2 │ + if-ne v9, p0, :cond_2 │ │ .line 353 │ - iget-object v10, v7, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ + iget-object v9, v5, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ - invoke-virtual {v10, p1}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; │ + invoke-virtual {v9, p1}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v6 │ │ .line 360 │ - .local v8, "suggestion":Ljava/lang/String; │ + .local v6, "suggestion":Ljava/lang/String; │ :goto_2 │ - invoke-virtual {v9, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v7, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ goto :goto_1 │ │ .line 354 │ - .end local v8 # "suggestion":Ljava/lang/String; │ + .end local v6 # "suggestion":Ljava/lang/String; │ :cond_2 │ - const/4 v10, 0x1 │ + const/4 v9, 0x1 │ │ - if-ne v10, p0, :cond_3 │ + if-ne v9, p0, :cond_3 │ │ .line 355 │ - iget-object v10, v7, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ + iget-object v9, v5, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ - invoke-static {v10, p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->capitalizeFirstCodePoint(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; │ + invoke-static {v9, p1}, Lcom/android/inputmethod/latin/utils/StringUtils;->capitalizeFirstCodePoint(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v6 │ │ - .restart local v8 # "suggestion":Ljava/lang/String; │ + .restart local v6 # "suggestion":Ljava/lang/String; │ goto :goto_2 │ │ .line 358 │ - .end local v8 # "suggestion":Ljava/lang/String; │ + .end local v6 # "suggestion":Ljava/lang/String; │ :cond_3 │ - iget-object v8, v7, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ + iget-object v6, v5, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mWord:Ljava/lang/String; │ │ - .restart local v8 # "suggestion":Ljava/lang/String; │ + .restart local v6 # "suggestion":Ljava/lang/String; │ goto :goto_2 │ │ .line 362 │ - .end local v7 # "suggestedWordInfo":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ - .end local v8 # "suggestion":Ljava/lang/String; │ + .end local v5 # "suggestedWordInfo":Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ + .end local v6 # "suggestion":Ljava/lang/String; │ :cond_4 │ - invoke-static {v9}, Lcom/android/inputmethod/latin/utils/StringUtils;->removeDupes(Ljava/util/ArrayList;)V │ + invoke-static {v7}, Lcom/android/inputmethod/latin/utils/StringUtils;->removeDupes(Ljava/util/ArrayList;)V │ │ .line 365 │ - const/4 v10, 0x0 │ + const/4 v8, 0x0 │ │ - invoke-virtual {v9}, Ljava/util/ArrayList;->size()I │ + .line 366 │ + invoke-virtual {v7}, Ljava/util/ArrayList;->size()I │ │ - move-result v11 │ + move-result v9 │ │ - invoke-static {v11, p2}, Ljava/lang/Math;->min(II)I │ + invoke-static {v9, p2}, Ljava/lang/Math;->min(II)I │ │ - move-result v11 │ + move-result v9 │ │ - invoke-virtual {v9, v10, v11}, Ljava/util/ArrayList;->subList(II)Ljava/util/List; │ + invoke-virtual {v7, v8, v9}, Ljava/util/ArrayList;->subList(II)Ljava/util/List; │ │ - move-result-object v10 │ + move-result-object v8 │ │ - sget-object v11, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->EMPTY_STRING_ARRAY:[Ljava/lang/String; │ + sget-object v9, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->EMPTY_STRING_ARRAY:[Ljava/lang/String; │ │ - invoke-interface {v10, v11}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ + .line 367 │ + invoke-interface {v8, v9}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, [Ljava/lang/String; │ + check-cast v2, [Ljava/lang/String; │ │ .line 369 │ - .local v3, "gatheredSuggestions":[Ljava/lang/String; │ + .local v2, "gatheredSuggestions":[Ljava/lang/String; │ invoke-virtual/range {p5 .. p5}, Lcom/android/inputmethod/latin/utils/SuggestionResults;->first()Ljava/lang/Object; │ │ - move-result-object v10 │ + move-result-object v8 │ │ - check-cast v10, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ + check-cast v8, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo; │ │ - iget v1, v10, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mScore:I │ + iget v0, v8, Lorg/smc/inputmethod/indic/SuggestedWords$SuggestedWordInfo;->mScore:I │ │ .line 370 │ - .local v1, "bestScore":I │ - const/4 v10, 0x0 │ - │ - invoke-virtual {v9, v10}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ + .local v0, "bestScore":I │ + const/4 v8, 0x0 │ │ - move-result-object v2 │ + invoke-virtual {v7, v8}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ - check-cast v2, Ljava/lang/String; │ + move-result-object v1 │ │ - .line 371 │ - .local v2, "bestSuggestion":Ljava/lang/String; │ - invoke-virtual {v2}, Ljava/lang/String;->toString()Ljava/lang/String; │ + check-cast v1, Ljava/lang/String; │ │ - move-result-object v10 │ + .line 372 │ + .local v1, "bestSuggestion":Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/String;->toString()Ljava/lang/String; │ │ - move-object/from16 v0, p4 │ + move-result-object v8 │ │ - invoke-static {v0, v10, v1}, Lcom/android/inputmethod/latin/utils/BinaryDictionaryUtils;->calcNormalizedScore(Ljava/lang/String;Ljava/lang/String;I)F │ + .line 371 │ + invoke-static {p4, v8, v0}, Lcom/android/inputmethod/latin/utils/BinaryDictionaryUtils;->calcNormalizedScore(Ljava/lang/String;Ljava/lang/String;I)F │ │ - move-result v6 │ + move-result v4 │ │ .line 373 │ - .local v6, "normalizedScore":F │ - cmpl-float v10, v6, p3 │ + .local v4, "normalizedScore":F │ + cmpl-float v8, v4, p3 │ │ - if-lez v10, :cond_5 │ + if-lez v8, :cond_5 │ │ - const/4 v4, 0x1 │ + const/4 v3, 0x1 │ │ .line 380 │ - .local v4, "hasRecommendedSuggestions":Z │ + .local v3, "hasRecommendedSuggestions":Z │ :goto_3 │ - new-instance v10, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ + new-instance v8, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ │ - invoke-direct {v10, v3, v4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->([Ljava/lang/String;Z)V │ + invoke-direct {v8, v2, v3}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->([Ljava/lang/String;Z)V │ │ goto :goto_0 │ │ .line 373 │ - .end local v4 # "hasRecommendedSuggestions":Z │ + .end local v3 # "hasRecommendedSuggestions":Z │ :cond_5 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ goto :goto_3 │ .end method │ │ .method private isInDictForAnyCapitalization(Ljava/lang/String;I)Z │ .locals 5 │ .param p1, "text" # Ljava/lang/String; │ @@ -506,18 +506,20 @@ │ :cond_3 │ iget-object v1, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ + .line 212 │ invoke-static {v0, v3}, Lcom/android/inputmethod/latin/utils/StringUtils;->capitalizeFirstAndDowncaseRest(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 211 │ invoke-virtual {v1, v2, v3}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->isValidWord(Ljava/util/Locale;Ljava/lang/String;)Z │ │ move-result v1 │ │ goto :goto_0 │ .end method │ │ @@ -609,302 +611,295 @@ │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ move-result-object v2 │ │ .line 397 │ invoke-static {v0, v1}, Landroid/os/Binder;->restoreCallingIdentity(J)V │ │ + .line 395 │ return-object v2 │ │ + .line 397 │ :catchall_0 │ move-exception v2 │ │ invoke-static {v0, v1}, Landroid/os/Binder;->restoreCallingIdentity(J)V │ │ throw v2 │ .end method │ │ .method protected onGetSuggestionsInternal(Landroid/view/textservice/TextInfo;Lcom/android/inputmethod/latin/PrevWordsInfo;I)Landroid/view/textservice/SuggestionsInfo; │ - .locals 29 │ + .locals 26 │ .param p1, "textInfo" # Landroid/view/textservice/TextInfo; │ .param p2, "prevWordsInfo" # Lcom/android/inputmethod/latin/PrevWordsInfo; │ .param p3, "suggestionsLimit" # I │ │ .prologue │ .line 230 │ :try_start_0 │ invoke-virtual/range {p1 .. p1}, Landroid/view/textservice/TextInfo;->getText()Ljava/lang/String; │ │ - move-result-object v18 │ + move-result-object v16 │ │ .line 231 │ - .local v18, "inText":Ljava/lang/String; │ + .local v16, "inText":Ljava/lang/String; │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mSuggestionsCache:Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache; │ │ - move-object/from16 v0, v18 │ + .line 232 │ + move-object/from16 v0, v16 │ │ move-object/from16 v1, p2 │ │ invoke-virtual {v3, v0, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache;->getSuggestionsFromCache(Ljava/lang/String;Lcom/android/inputmethod/latin/PrevWordsInfo;)Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ │ - move-result-object v10 │ + move-result-object v9 │ │ .line 233 │ - .local v10, "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ - if-eqz v10, :cond_0 │ + .local v9, "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ + if-eqz v9, :cond_0 │ │ .line 237 │ new-instance v3, Landroid/view/textservice/SuggestionsInfo; │ │ - iget v4, v10, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams;->mFlags:I │ + iget v4, v9, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams;->mFlags:I │ │ - iget-object v5, v10, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams;->mSuggestions:[Ljava/lang/String; │ + iget-object v5, v9, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams;->mSuggestions:[Ljava/lang/String; │ │ invoke-direct {v3, v4, v5}, Landroid/view/textservice/SuggestionsInfo;->(I[Ljava/lang/String;)V │ │ .line 321 │ - .end local v10 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ - .end local v18 # "inText":Ljava/lang/String; │ + .end local v9 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ + .end local v16 # "inText":Ljava/lang/String; │ :goto_0 │ return-object v3 │ │ .line 240 │ - .restart local v10 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ - .restart local v18 # "inText":Ljava/lang/String; │ + .restart local v9 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ + .restart local v16 # "inText":Ljava/lang/String; │ :cond_0 │ move-object/from16 v0, p0 │ │ iget v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mScript:I │ │ - move-object/from16 v0, v18 │ + move-object/from16 v0, v16 │ │ invoke-static {v0, v3}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->getCheckabilityInScript(Ljava/lang/String;I)I │ │ - move-result v11 │ + move-result v10 │ │ .line 241 │ - .local v11, "checkability":I │ - if-eqz v11, :cond_6 │ + .local v10, "checkability":I │ + if-eqz v10, :cond_6 │ │ .line 242 │ const/4 v3, 0x2 │ │ - if-ne v3, v11, :cond_3 │ + if-ne v3, v10, :cond_3 │ │ .line 243 │ const-string v3, "\\." │ │ - move-object/from16 v0, v18 │ + move-object/from16 v0, v16 │ │ invoke-virtual {v0, v3}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v25 │ + move-result-object v22 │ │ .line 244 │ - .local v25, "splitText":[Ljava/lang/String; │ + .local v22, "splitText":[Ljava/lang/String; │ const/4 v8, 0x1 │ │ .line 245 │ .local v8, "allWordsAreValid":Z │ - move-object/from16 v9, v25 │ - │ - .local v9, "arr$":[Ljava/lang/String; │ - array-length v0, v9 │ + move-object/from16 v0, v22 │ │ - move/from16 v21, v0 │ + array-length v4, v0 │ │ - .local v21, "len$":I │ - const/16 v17, 0x0 │ + const/4 v3, 0x0 │ │ - .local v17, "i$":I │ :goto_1 │ - move/from16 v0, v17 │ - │ - move/from16 v1, v21 │ + if-ge v3, v4, :cond_1 │ │ - if-ge v0, v1, :cond_1 │ - │ - aget-object v26, v9, v17 │ + aget-object v23, v22, v3 │ │ .line 246 │ - .local v26, "word":Ljava/lang/String; │ + .local v23, "word":Ljava/lang/String; │ move-object/from16 v0, p0 │ │ - iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ + iget-object v5, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ │ move-object/from16 v0, p0 │ │ - iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ + iget-object v0, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ - move-object/from16 v0, v26 │ + move-object/from16 v24, v0 │ │ - invoke-virtual {v3, v4, v0}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->isValidWord(Ljava/util/Locale;Ljava/lang/String;)Z │ + move-object/from16 v0, v24 │ │ - move-result v3 │ + move-object/from16 v1, v23 │ + │ + invoke-virtual {v5, v0, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->isValidWord(Ljava/util/Locale;Ljava/lang/String;)Z │ + │ + move-result v5 │ │ - if-nez v3, :cond_2 │ + if-nez v5, :cond_2 │ │ .line 247 │ const/4 v8, 0x0 │ │ .line 251 │ - .end local v26 # "word":Ljava/lang/String; │ + .end local v23 # "word":Ljava/lang/String; │ :cond_1 │ if-eqz v8, :cond_3 │ │ .line 252 │ new-instance v3, Landroid/view/textservice/SuggestionsInfo; │ │ const/4 v4, 0x6 │ │ const/4 v5, 0x1 │ │ new-array v5, v5, [Ljava/lang/String; │ │ - const/16 v27, 0x0 │ + const/16 v24, 0x0 │ │ - const-string v28, " " │ + const-string v25, " " │ │ - move-object/from16 v0, v28 │ + .line 255 │ + move-object/from16 v0, v25 │ │ - move-object/from16 v1, v25 │ + move-object/from16 v1, v22 │ │ invoke-static {v0, v1}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String; │ │ - move-result-object v28 │ + move-result-object v25 │ │ - aput-object v28, v5, v27 │ + aput-object v25, v5, v24 │ │ invoke-direct {v3, v4, v5}, Landroid/view/textservice/SuggestionsInfo;->(I[Ljava/lang/String;)V │ :try_end_0 │ .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0 │ │ goto :goto_0 │ │ .line 315 │ .end local v8 # "allWordsAreValid":Z │ - .end local v9 # "arr$":[Ljava/lang/String; │ - .end local v10 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ - .end local v11 # "checkability":I │ - .end local v17 # "i$":I │ - .end local v18 # "inText":Ljava/lang/String; │ - .end local v21 # "len$":I │ - .end local v25 # "splitText":[Ljava/lang/String; │ + .end local v9 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ + .end local v10 # "checkability":I │ + .end local v16 # "inText":Ljava/lang/String; │ + .end local v22 # "splitText":[Ljava/lang/String; │ :catch_0 │ - move-exception v15 │ + move-exception v14 │ │ .line 320 │ - .local v15, "e":Ljava/lang/RuntimeException; │ + .local v14, "e":Ljava/lang/RuntimeException; │ sget-object v3, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->TAG:Ljava/lang/String; │ │ const-string v4, "Exception while spellcheking" │ │ - invoke-static {v3, v4, v15}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v3, v4, v14}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ .line 321 │ const/4 v3, 0x0 │ │ invoke-static {v3}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getNotInDictEmptySuggestions(Z)Landroid/view/textservice/SuggestionsInfo; │ │ move-result-object v3 │ │ goto :goto_0 │ │ .line 245 │ - .end local v15 # "e":Ljava/lang/RuntimeException; │ + .end local v14 # "e":Ljava/lang/RuntimeException; │ .restart local v8 # "allWordsAreValid":Z │ - .restart local v9 # "arr$":[Ljava/lang/String; │ - .restart local v10 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ - .restart local v11 # "checkability":I │ - .restart local v17 # "i$":I │ - .restart local v18 # "inText":Ljava/lang/String; │ - .restart local v21 # "len$":I │ - .restart local v25 # "splitText":[Ljava/lang/String; │ - .restart local v26 # "word":Ljava/lang/String; │ + .restart local v9 # "cachedSuggestionsParams":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsParams; │ + .restart local v10 # "checkability":I │ + .restart local v16 # "inText":Ljava/lang/String; │ + .restart local v22 # "splitText":[Ljava/lang/String; │ + .restart local v23 # "word":Ljava/lang/String; │ :cond_2 │ - add-int/lit8 v17, v17, 0x1 │ + add-int/lit8 v3, v3, 0x1 │ │ goto :goto_1 │ │ .line 258 │ .end local v8 # "allWordsAreValid":Z │ - .end local v9 # "arr$":[Ljava/lang/String; │ - .end local v17 # "i$":I │ - .end local v21 # "len$":I │ - .end local v25 # "splitText":[Ljava/lang/String; │ - .end local v26 # "word":Ljava/lang/String; │ + .end local v22 # "splitText":[Ljava/lang/String; │ + .end local v23 # "word":Ljava/lang/String; │ :cond_3 │ :try_start_1 │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ - move-object/from16 v0, v18 │ + move-object/from16 v0, v16 │ │ invoke-virtual {v3, v4, v0}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->isValidWord(Ljava/util/Locale;Ljava/lang/String;)Z │ │ move-result v3 │ │ if-eqz v3, :cond_4 │ │ + .line 259 │ invoke-static {}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getInDictEmptySuggestions()Landroid/view/textservice/SuggestionsInfo; │ │ move-result-object v3 │ │ goto :goto_0 │ │ :cond_4 │ const/4 v3, 0x2 │ │ - if-ne v3, v11, :cond_5 │ + if-ne v3, v10, :cond_5 │ │ const/4 v3, 0x1 │ │ + .line 260 │ :goto_2 │ invoke-static {v3}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getNotInDictEmptySuggestions(Z)Landroid/view/textservice/SuggestionsInfo; │ │ move-result-object v3 │ │ - goto/16 :goto_0 │ + goto :goto_0 │ │ + .line 259 │ :cond_5 │ const/4 v3, 0x0 │ │ goto :goto_2 │ │ .line 263 │ :cond_6 │ const-string v3, "\u2019" │ │ const-string v4, "\'" │ │ - move-object/from16 v0, v18 │ + move-object/from16 v0, v16 │ │ invoke-virtual {v0, v3, v4}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v6 │ │ .line 265 │ .local v6, "text":Ljava/lang/String; │ invoke-static {v6}, Lcom/android/inputmethod/latin/utils/StringUtils;->getCapitalizationType(Ljava/lang/String;)I │ │ move-result v2 │ │ .line 266 │ .local v2, "capitalizeType":I │ - const/16 v19, 0x1 │ + const/16 v17, 0x1 │ │ .line 267 │ - .local v19, "isInDict":Z │ + .local v17, "isInDict":Z │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ @@ -932,186 +927,186 @@ │ │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ invoke-virtual {v3, v4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getKeyboardForLocale(Ljava/util/Locale;)Lcom/android/inputmethod/keyboard/Keyboard; │ │ - move-result-object v20 │ + move-result-object v18 │ │ .line 272 │ - .local v20, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ - new-instance v13, Lorg/smc/inputmethod/indic/WordComposer; │ + .local v18, "keyboard":Lcom/android/inputmethod/keyboard/Keyboard; │ + new-instance v12, Lorg/smc/inputmethod/indic/WordComposer; │ │ - invoke-direct {v13}, Lorg/smc/inputmethod/indic/WordComposer;->()V │ + invoke-direct {v12}, Lorg/smc/inputmethod/indic/WordComposer;->()V │ │ .line 273 │ - .local v13, "composer":Lorg/smc/inputmethod/indic/WordComposer; │ + .local v12, "composer":Lorg/smc/inputmethod/indic/WordComposer; │ invoke-static {v6}, Lcom/android/inputmethod/latin/utils/StringUtils;->toCodePointArray(Ljava/lang/CharSequence;)[I │ │ - move-result-object v12 │ + move-result-object v11 │ │ .line 276 │ - .local v12, "codePoints":[I │ - if-nez v20, :cond_8 │ + .local v11, "codePoints":[I │ + if-nez v18, :cond_8 │ │ .line 277 │ - array-length v3, v12 │ + array-length v3, v11 │ │ const/4 v4, -0x1 │ │ const/4 v5, -0x1 │ │ invoke-static {v3, v4, v5}, Lcom/android/inputmethod/latin/utils/CoordinateUtils;->newCoordinateArray(III)[I │ │ - move-result-object v14 │ + move-result-object v13 │ │ .line 279 │ - .local v14, "coordinates":[I │ - const/16 v22, 0x0 │ + .local v13, "coordinates":[I │ + const/16 v19, 0x0 │ │ .line 284 │ - .local v22, "proximityInfo":Lcom/android/inputmethod/keyboard/ProximityInfo; │ + .local v19, "proximityInfo":Lcom/android/inputmethod/keyboard/ProximityInfo; │ :goto_3 │ - invoke-virtual {v13, v12, v14}, Lorg/smc/inputmethod/indic/WordComposer;->setComposingWord([I[I)V │ + invoke-virtual {v12, v11, v13}, Lorg/smc/inputmethod/indic/WordComposer;->setComposingWord([I[I)V │ │ .line 286 │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ move-object/from16 v0, p2 │ │ - move-object/from16 v1, v22 │ + move-object/from16 v1, v19 │ │ - invoke-virtual {v3, v4, v13, v0, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getSuggestionResults(Ljava/util/Locale;Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;)Lcom/android/inputmethod/latin/utils/SuggestionResults; │ + invoke-virtual {v3, v4, v12, v0, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getSuggestionResults(Ljava/util/Locale;Lorg/smc/inputmethod/indic/WordComposer;Lcom/android/inputmethod/latin/PrevWordsInfo;Lcom/android/inputmethod/keyboard/ProximityInfo;)Lcom/android/inputmethod/latin/utils/SuggestionResults; │ │ move-result-object v7 │ │ .line 288 │ .local v7, "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mLocale:Ljava/util/Locale; │ │ move-object/from16 v0, p0 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mService:Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService; │ │ + .line 289 │ invoke-virtual {v4}, Lorg/smc/inputmethod/indic/spellcheck/AndroidSpellCheckerService;->getRecommendedThreshold()F │ │ move-result v5 │ │ move/from16 v4, p3 │ │ + .line 288 │ invoke-static/range {v2 .. v7}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->getResult(ILjava/util/Locale;IFLjava/lang/String;Lcom/android/inputmethod/latin/utils/SuggestionResults;)Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ │ - move-result-object v23 │ + move-result-object v20 │ │ .line 290 │ - .local v23, "result":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ + .local v20, "result":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ move-object/from16 v0, p0 │ │ invoke-direct {v0, v6, v2}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->isInDictForAnyCapitalization(Ljava/lang/String;I)Z │ │ - move-result v19 │ + move-result v17 │ │ .line 304 │ - if-eqz v19, :cond_9 │ + if-eqz v17, :cond_9 │ │ const/4 v3, 0x1 │ │ move v4, v3 │ │ :goto_4 │ - move-object/from16 v0, v23 │ + move-object/from16 v0, v20 │ │ iget-boolean v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->mHasRecommendedSuggestions:Z │ │ if-eqz v3, :cond_a │ │ + .line 309 │ invoke-static {}, Lorg/smc/inputmethod/compat/SuggestionsInfoCompatUtils;->getValueOf_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS()I │ │ move-result v3 │ │ :goto_5 │ - or-int v16, v4, v3 │ + or-int v15, v4, v3 │ │ .line 311 │ - .local v16, "flags":I │ - new-instance v24, Landroid/view/textservice/SuggestionsInfo; │ + .local v15, "flags":I │ + new-instance v21, Landroid/view/textservice/SuggestionsInfo; │ │ - move-object/from16 v0, v23 │ + move-object/from16 v0, v20 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->mSuggestions:[Ljava/lang/String; │ │ - move-object/from16 v0, v24 │ - │ - move/from16 v1, v16 │ + move-object/from16 v0, v21 │ │ - invoke-direct {v0, v1, v3}, Landroid/view/textservice/SuggestionsInfo;->(I[Ljava/lang/String;)V │ + invoke-direct {v0, v15, v3}, Landroid/view/textservice/SuggestionsInfo;->(I[Ljava/lang/String;)V │ │ .line 312 │ - .local v24, "retval":Landroid/view/textservice/SuggestionsInfo; │ + .local v21, "retval":Landroid/view/textservice/SuggestionsInfo; │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession;->mSuggestionsCache:Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache; │ │ - move-object/from16 v0, v23 │ + move-object/from16 v0, v20 │ │ iget-object v4, v0, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result;->mSuggestions:[Ljava/lang/String; │ │ move-object/from16 v0, p2 │ │ - move/from16 v1, v16 │ + invoke-virtual {v3, v6, v0, v4, v15}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache;->putSuggestionsToCache(Ljava/lang/String;Lcom/android/inputmethod/latin/PrevWordsInfo;[Ljava/lang/String;I)V │ │ - invoke-virtual {v3, v6, v0, v4, v1}, Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$SuggestionsCache;->putSuggestionsToCache(Ljava/lang/String;Lcom/android/inputmethod/latin/PrevWordsInfo;[Ljava/lang/String;I)V │ - │ - move-object/from16 v3, v24 │ + move-object/from16 v3, v21 │ │ .line 314 │ goto/16 :goto_0 │ │ .line 281 │ .end local v7 # "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ - .end local v14 # "coordinates":[I │ - .end local v16 # "flags":I │ - .end local v22 # "proximityInfo":Lcom/android/inputmethod/keyboard/ProximityInfo; │ - .end local v23 # "result":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ - .end local v24 # "retval":Landroid/view/textservice/SuggestionsInfo; │ + .end local v13 # "coordinates":[I │ + .end local v15 # "flags":I │ + .end local v19 # "proximityInfo":Lcom/android/inputmethod/keyboard/ProximityInfo; │ + .end local v20 # "result":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ + .end local v21 # "retval":Landroid/view/textservice/SuggestionsInfo; │ :cond_8 │ - move-object/from16 v0, v20 │ + move-object/from16 v0, v18 │ │ - invoke-virtual {v0, v12}, Lcom/android/inputmethod/keyboard/Keyboard;->getCoordinates([I)[I │ + invoke-virtual {v0, v11}, Lcom/android/inputmethod/keyboard/Keyboard;->getCoordinates([I)[I │ │ - move-result-object v14 │ + move-result-object v13 │ │ .line 282 │ - .restart local v14 # "coordinates":[I │ - invoke-virtual/range {v20 .. v20}, Lcom/android/inputmethod/keyboard/Keyboard;->getProximityInfo()Lcom/android/inputmethod/keyboard/ProximityInfo; │ + .restart local v13 # "coordinates":[I │ + invoke-virtual/range {v18 .. v18}, Lcom/android/inputmethod/keyboard/Keyboard;->getProximityInfo()Lcom/android/inputmethod/keyboard/ProximityInfo; │ :try_end_1 │ .catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1} :catch_0 │ │ - move-result-object v22 │ + move-result-object v19 │ │ - .restart local v22 # "proximityInfo":Lcom/android/inputmethod/keyboard/ProximityInfo; │ + .restart local v19 # "proximityInfo":Lcom/android/inputmethod/keyboard/ProximityInfo; │ goto :goto_3 │ │ .line 304 │ .restart local v7 # "suggestionResults":Lcom/android/inputmethod/latin/utils/SuggestionResults; │ - .restart local v23 # "result":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ + .restart local v20 # "result":Lorg/smc/inputmethod/indic/spellcheck/AndroidWordLevelSpellCheckerSession$Result; │ :cond_9 │ const/4 v3, 0x2 │ │ move v4, v3 │ │ goto :goto_4 │ │ + .line 309 │ :cond_a │ const/4 v3, 0x0 │ │ goto :goto_5 │ .end method ├── smali/org/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator$1.smali │ @@ -26,14 +26,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator; │ │ .prologue │ .line 80 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator$1;->this$0:Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator; │ │ invoke-direct {p0}, Lcom/android/inputmethod/latin/utils/RunInLocale;->()V ├── smali/org/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator.smali │ @@ -162,31 +162,33 @@ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ .line 97 │ if-ne v5, v0, :cond_0 │ │ - .line 98 │ + .line 99 │ invoke-static {v5}, Ljava/lang/Character;->charCount(I)I │ │ move-result v3 │ │ add-int v1, p2, v3 │ │ .line 100 │ .local v1, "indexOfNextCodePoint":I │ if-ge v1, v2, :cond_2 │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator;->mSpacingAndPunctuations:Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations; │ │ + .line 102 │ invoke-static {p1, v1}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I │ │ move-result v4 │ │ + .line 101 │ invoke-virtual {v3, v4}, Lorg/smc/inputmethod/indic/settings/SpacingAndPunctuations;->isWordSeparator(I)Z │ │ move-result v3 │ │ if-eqz v3, :cond_2 │ │ .line 111 ├── smali/org/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter.smali │ @@ -102,14 +102,15 @@ │ │ move-result v6 │ │ .line 171 │ .local v6, "originalCookie":I │ iget-object v11, p0, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceTextInfoParams;->mOriginalTextInfo:Landroid/view/textservice/TextInfo; │ │ + .line 172 │ invoke-virtual {v11}, Landroid/view/textservice/TextInfo;->getSequence()I │ │ move-result v7 │ │ .line 174 │ .local v7, "originalSequence":I │ iget v8, p0, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceTextInfoParams;->mSize:I │ @@ -241,15 +242,15 @@ │ │ .prologue │ const/4 v13, -0x1 │ │ .line 137 │ iget-object v8, p0, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter;->mWordIterator:Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator; │ │ - .line 138 │ + .line 139 │ .local v8, "wordIterator":Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$WordIterator; │ invoke-static {p1}, Lorg/smc/inputmethod/compat/TextInfoCompatUtils;->getCharSequenceOrString(Landroid/view/textservice/TextInfo;)Ljava/lang/CharSequence; │ │ move-result-object v2 │ │ .line 140 │ .local v2, "originalText":Ljava/lang/CharSequence; │ @@ -308,22 +309,24 @@ │ │ move-result-object v4 │ │ .line 149 │ .local v4, "subSequence":Ljava/lang/CharSequence; │ const/4 v10, 0x0 │ │ + .line 150 │ invoke-interface {v4}, Ljava/lang/CharSequence;->length()I │ │ move-result v11 │ │ invoke-virtual {v4}, Ljava/lang/Object;->hashCode()I │ │ move-result v12 │ │ + .line 149 │ invoke-static {v4, v10, v11, v0, v12}, Lorg/smc/inputmethod/compat/TextInfoCompatUtils;->newInstance(Ljava/lang/CharSequence;IIII)Landroid/view/textservice/TextInfo; │ │ move-result-object v5 │ │ .line 151 │ .local v5, "ti":Landroid/view/textservice/TextInfo; │ new-instance v10, Lorg/smc/inputmethod/indic/spellcheck/SentenceLevelAdapter$SentenceWordItem; ├── smali/org/smc/inputmethod/indic/spellcheck/SpellCheckerSettingsFragment.smali │ @@ -30,22 +30,23 @@ │ invoke-virtual {p0, v1}, Lorg/smc/inputmethod/indic/spellcheck/SpellCheckerSettingsFragment;->addPreferencesFromResource(I)V │ │ .line 35 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/spellcheck/SpellCheckerSettingsFragment;->getPreferenceScreen()Landroid/preference/PreferenceScreen; │ │ move-result-object v0 │ │ - .line 36 │ + .line 37 │ .local v0, "preferenceScreen":Landroid/preference/PreferenceScreen; │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/spellcheck/SpellCheckerSettingsFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ const-class v2, Lorg/smc/inputmethod/indic/spellcheck/SpellCheckerSettingsActivity; │ │ + .line 36 │ invoke-static {v1, v2}, Lcom/android/inputmethod/latin/utils/ApplicationUtils;->getActivityTitleResId(Landroid/content/Context;Ljava/lang/Class;)I │ │ move-result v1 │ │ invoke-virtual {v0, v1}, Landroid/preference/PreferenceScreen;->setTitle(I)V │ │ .line 38 ├── smali/org/smc/inputmethod/indic/suggestions/MoreSuggestions$Builder.smali │ @@ -286,14 +286,15 @@ │ │ check-cast v1, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam; │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$Builder;->mPaneView:Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView; │ │ const/4 v3, 0x0 │ │ + .line 199 │ invoke-virtual {v2, v3}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView;->newLabelPaint(Lcom/android/inputmethod/keyboard/Key;)Landroid/graphics/Paint; │ │ move-result-object v7 │ │ iget-object v8, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$Builder;->mResources:Landroid/content/res/Resources; │ │ move-object v2, p1 │ @@ -302,14 +303,15 @@ │ │ move v4, p3 │ │ move v5, p4 │ │ move/from16 v6, p5 │ │ + .line 198 │ invoke-virtual/range {v1 .. v8}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->layout(Lorg/smc/inputmethod/indic/SuggestedWords;IIIILandroid/graphics/Paint;Landroid/content/res/Resources;)I │ │ move-result v9 │ │ .line 200 │ .local v9, "count":I │ iput p2, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$Builder;->mFromIndex:I ├── smali/org/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionKey.smali │ @@ -32,14 +32,15 @@ │ │ const/4 v5, -0x4 │ │ const/4 v8, 0x0 │ │ const/4 v9, 0x1 │ │ + .line 245 │ move-object/from16 v0, p4 │ │ move/from16 v1, p3 │ │ invoke-virtual {v0, v1}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->getX(I)I │ │ move-result v10 │ @@ -76,14 +77,15 @@ │ │ move-object/from16 v3, p1 │ │ move-object/from16 v6, p1 │ │ move-object/from16 v7, p2 │ │ + .line 243 │ invoke-direct/range {v2 .. v15}, Lcom/android/inputmethod/keyboard/Key;->(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;IIIIIIII)V │ │ .line 247 │ move/from16 v0, p3 │ │ move-object/from16 v1, p0 ├── smali/org/smc/inputmethod/indic/suggestions/MoreSuggestionsView.smali │ @@ -137,14 +137,15 @@ │ │ const-string v5, "Expected key is MoreSuggestionKey, but found " │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ + .line 88 │ invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v5 │ @@ -153,14 +154,15 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 87 │ invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ .line 109 │ .end local p1 # "key":Lcom/android/inputmethod/keyboard/Key; │ :goto_0 │ return-void │ │ @@ -186,14 +188,15 @@ │ │ const-string v5, "Expected keyboard is MoreSuggestions, but found " │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ + .line 94 │ invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v5 │ @@ -202,14 +205,15 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 93 │ invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_0 │ │ .line 97 │ :cond_1 │ check-cast v1, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions; │ @@ -279,14 +283,15 @@ │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ iget-object v5, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView;->mListener:Lcom/android/inputmethod/keyboard/KeyboardActionListener; │ │ + .line 105 │ invoke-virtual {v5}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v5 │ @@ -295,14 +300,15 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 104 │ invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I │ │ goto :goto_0 │ │ .line 108 │ :cond_4 │ iget-object v3, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView;->mListener:Lcom/android/inputmethod/keyboard/KeyboardActionListener; ├── smali/org/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper.smali │ @@ -354,20 +354,22 @@ │ │ .line 150 │ invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V │ │ .line 152 │ const v4, 0x7f080027 │ │ + .line 153 │ invoke-virtual {v2, v4}, Landroid/content/res/Resources;->getDimension(I)F │ │ move-result v4 │ │ iget v5, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->mColorAutoCorrect:I │ │ + .line 152 │ invoke-static {v2, v4, v5}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->getMoreSuggestionsHint(Landroid/content/res/Resources;FI)Landroid/graphics/drawable/Drawable; │ │ move-result-object v4 │ │ iput-object v4, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->mMoreSuggestionsHint:Landroid/graphics/drawable/Drawable; │ │ .line 155 │ @@ -411,15 +413,15 @@ │ .param p0, "stripView" # Landroid/view/ViewGroup; │ .param p1, "dividerView" # Landroid/view/View; │ │ .prologue │ .line 347 │ invoke-virtual {p0, p1}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V │ │ - .line 348 │ + .line 349 │ invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; │ │ move-result-object v0 │ │ check-cast v0, Landroid/widget/LinearLayout$LayoutParams; │ │ .line 350 │ @@ -1434,18 +1436,20 @@ │ │ move-result v3 │ │ .line 471 │ .local v3, "y":I │ sub-int v4, p3, v2 │ │ + .line 472 │ invoke-virtual {v1}, Landroid/widget/TextView;->getMeasuredHeight()I │ │ move-result v5 │ │ + .line 471 │ invoke-static {v1, v4, v3, v2, v5}, Lcom/android/inputmethod/latin/utils/ViewLayoutUtils;->placeViewAt(Landroid/view/View;IIII)V │ │ goto :goto_0 │ .end method │ │ .method private layoutPunctuationsAndReturnStartIndexOfMoreSuggestions(Lorg/smc/inputmethod/indic/PunctuationSuggestions;Landroid/view/ViewGroup;)I │ .locals 8 │ @@ -1664,27 +1668,29 @@ │ .line 454 │ invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v4 │ │ if-eqz v4, :cond_0 │ │ + .line 455 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v4 │ │ invoke-virtual {v4}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isTouchExplorationEnabled()Z │ │ move-result v4 │ │ if-eqz v4, :cond_3 │ │ :cond_0 │ const/4 v4, 0x1 │ │ + .line 454 │ :goto_2 │ invoke-virtual {v3, v4}, Landroid/widget/TextView;->setEnabled(Z)V │ │ .line 456 │ return-object v3 │ │ .line 441 │ @@ -1699,15 +1705,15 @@ │ :cond_2 │ invoke-interface {v2}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ goto :goto_1 │ │ - .line 454 │ + .line 455 │ .restart local v0 # "scaleX":F │ .restart local v1 # "text":Ljava/lang/CharSequence; │ :cond_3 │ const/4 v4, 0x0 │ │ goto :goto_2 │ .end method │ @@ -1794,26 +1800,25 @@ │ :cond_0 │ const/4 v0, 0x0 │ │ .line 504 │ .local v0, "count":I │ const/4 v1, 0x0 │ │ - .line 505 │ .local v1, "indexInSuggestedWords":I │ :goto_1 │ invoke-virtual {p1}, Lorg/smc/inputmethod/indic/SuggestedWords;->size()I │ │ move-result v4 │ │ if-ge v1, v4, :cond_2 │ │ if-ge v0, p2, :cond_2 │ │ - .line 506 │ + .line 507 │ invoke-direct {p0, v1, p1}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->getPositionInSuggestionStrip(ILorg/smc/inputmethod/indic/SuggestedWords;)I │ │ move-result v2 │ │ .line 508 │ if-gez v2, :cond_1 │ │ @@ -2247,27 +2252,28 @@ │ .line 585 │ .local v10, "isRtlLanguage":Z │ :goto_3 │ if-eqz v10, :cond_4 │ │ const-string v3, "\u2192" │ │ - .line 586 │ + .line 587 │ .local v3, "arrow":Ljava/lang/String; │ :goto_4 │ invoke-virtual {v12}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; │ │ move-result-object v21 │ │ move-object/from16 v0, v21 │ │ iget-object v0, v0, Landroid/content/res/Configuration;->locale:Ljava/util/Locale; │ │ move-object/from16 v21, v0 │ │ + .line 586 │ invoke-static/range {v21 .. v21}, Lcom/android/inputmethod/latin/utils/SubtypeLocaleUtils;->isRtlLanguage(Ljava/util/Locale;)Z │ │ move-result v11 │ │ .line 588 │ .local v11, "isRtlSystem":Z │ const v21, 0x7f0c0047 │ @@ -2449,18 +2455,20 @@ │ │ if-eq v11, v12, :cond_2 │ │ invoke-virtual {v1}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence; │ │ move-result-object v11 │ │ + .line 375 │ invoke-virtual {v1}, Landroid/widget/TextView;->getPaint()Landroid/text/TextPaint; │ │ move-result-object v12 │ │ + .line 374 │ invoke-static {v11, v0, v12}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->getTextScaleX(Ljava/lang/CharSequence;ILandroid/text/TextPaint;)F │ │ move-result v11 │ │ const v12, 0x3f333333 # 0.7f │ │ cmpg-float v11, v11, v12 │ @@ -2664,14 +2672,15 @@ │ │ invoke-virtual {v1}, Landroid/widget/TextView;->getPaddingLeft()I │ │ move-result v4 │ │ sub-int/2addr v3, v4 │ │ + .line 606 │ invoke-virtual {v1}, Landroid/widget/TextView;->getPaddingRight()I │ │ move-result v4 │ │ sub-int v2, v3, v4 │ │ .line 607 ├── smali/org/smc/inputmethod/indic/suggestions/SuggestionStripView$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ .prologue │ .line 289 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView$1;->this$0:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ invoke-direct {p0}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView$MoreSuggestionsListener;->()V ├── smali/org/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam.smali │ @@ -502,14 +502,15 @@ │ .local v1, "columnWidth":I │ const/4 v9, 0x3 │ │ if-gt v3, v9, :cond_0 │ │ add-int/lit8 v9, v2, 0x1 │ │ + .line 84 │ invoke-direct {p0, v6, v9, v1}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->fitInWidth(III)Z │ │ move-result v9 │ │ if-nez v9, :cond_4 │ │ .line 85 │ @@ -532,19 +533,20 @@ │ aput v10, v9, v5 │ │ .line 97 │ add-int/lit8 v9, v5, 0x1 │ │ iput v9, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->mNumRows:I │ │ - .line 98 │ + .line 99 │ invoke-direct {p0, p2, v2}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->calcurateMaxRowWidth(II)I │ │ move-result v9 │ │ + .line 98 │ invoke-static {p4, v9}, Ljava/lang/Math;->max(II)I │ │ move-result v9 │ │ iput v9, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->mOccupiedWidth:I │ │ iput v9, p0, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$MoreSuggestionsParam;->mBaseWidth:I ├── smali/org/smc/inputmethod/indic/suggestions/SuggestionStripView$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ .prologue │ .line 303 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView$2;->this$0:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/suggestions/SuggestionStripView$3.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ .prologue │ .line 384 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView$3;->this$0:Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView; │ │ invoke-direct {p0}, Landroid/view/GestureDetector$SimpleOnGestureListener;->()V ├── smali/org/smc/inputmethod/indic/suggestions/SuggestionStripView.smali │ @@ -430,14 +430,15 @@ │ .line 180 │ move-object/from16 v0, p0 │ │ iget-object v3, v0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->mMoreSuggestionsContainer:Landroid/view/View; │ │ const v4, 0x7f100079 │ │ + .line 181 │ invoke-virtual {v3, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v3 │ │ check-cast v3, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView; │ │ move-object/from16 v0, p0 │ @@ -541,52 +542,51 @@ │ .end method │ │ .method private removeAllDebugInfoViews()V │ .locals 4 │ │ .prologue │ .line 281 │ - iget-object v3, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->mDebugInfoViews:Ljava/util/ArrayList; │ + iget-object v2, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->mDebugInfoViews:Ljava/util/ArrayList; │ │ - invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_0 │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v3 │ │ if-eqz v3, :cond_1 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/view/View; │ │ .line 282 │ .local v0, "debugInfoView":Landroid/view/View; │ invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 283 │ - .local v2, "parent":Landroid/view/ViewParent; │ - instance-of v3, v2, Landroid/view/ViewGroup; │ + .local v1, "parent":Landroid/view/ViewParent; │ + instance-of v3, v1, Landroid/view/ViewGroup; │ │ if-eqz v3, :cond_0 │ │ .line 284 │ - check-cast v2, Landroid/view/ViewGroup; │ + check-cast v1, Landroid/view/ViewGroup; │ │ - .end local v2 # "parent":Landroid/view/ViewParent; │ - invoke-virtual {v2, v0}, Landroid/view/ViewGroup;->removeView(Landroid/view/View;)V │ + .end local v1 # "parent":Landroid/view/ViewParent; │ + invoke-virtual {v1, v0}, Landroid/view/ViewGroup;->removeView(Landroid/view/View;)V │ │ goto :goto_0 │ │ .line 287 │ .end local v0 # "debugInfoView":Landroid/view/View; │ :cond_1 │ return-void │ @@ -723,19 +723,20 @@ │ :cond_1 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->getWidth()I │ │ move-result v2 │ │ if-lez v2, :cond_0 │ │ - .line 258 │ + .line 259 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->getContext()Landroid/content/Context; │ │ move-result-object v2 │ │ + .line 258 │ invoke-static {v2}, Lcom/android/inputmethod/latin/utils/ImportantNoticeUtils;->getNextImportantNoticeTitle(Landroid/content/Context;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 260 │ .local v0, "importantNoticeTitle":Ljava/lang/String; │ invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ @@ -1003,15 +1004,15 @@ │ │ sub-int/2addr v6, v3 │ │ iget v7, p0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->mMoreSuggestionsModalTolerance:I │ │ if-lt v6, v7, :cond_3 │ │ - .line 412 │ + .line 413 │ :cond_2 │ invoke-static {}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->getInstance()Lorg/smc/inputmethod/accessibility/AccessibilityUtils; │ │ move-result-object v6 │ │ invoke-virtual {v6}, Lorg/smc/inputmethod/accessibility/AccessibilityUtils;->isTouchExplorationEnabled()Z │ │ @@ -1483,18 +1484,20 @@ │ │ iget v6, v0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->mMinMoreSuggestionsWidth:F │ │ mul-float/2addr v5, v6 │ │ float-to-int v5, v5 │ │ + .line 356 │ invoke-virtual/range {v16 .. v16}, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripLayoutHelper;->getMaxMoreSuggestionsRow()I │ │ move-result v6 │ │ + .line 354 │ invoke-virtual/range {v1 .. v7}, Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$Builder;->layout(Lorg/smc/inputmethod/indic/SuggestedWords;IIIILcom/android/inputmethod/keyboard/Keyboard;)Lorg/smc/inputmethod/indic/suggestions/MoreSuggestions$Builder; │ │ .line 357 │ move-object/from16 v0, p0 │ │ iget-object v2, v0, Lorg/smc/inputmethod/indic/suggestions/SuggestionStripView;->mMoreSuggestionsView:Lorg/smc/inputmethod/indic/suggestions/MoreSuggestionsView; ├── smali/org/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents.smali │ @@ -384,14 +384,15 @@ │ if-nez v6, :cond_2 │ │ .line 214 │ if-eqz v6, :cond_0 │ │ invoke-interface {v6}, Landroid/database/Cursor;->close()V │ │ + .line 212 │ :cond_0 │ :goto_1 │ return v8 │ │ .line 206 │ .end local v6 # "cursor":Landroid/database/Cursor; │ :cond_1 │ @@ -440,20 +441,20 @@ │ if-eqz v6, :cond_3 │ │ invoke-interface {v6}, Landroid/database/Cursor;->close()V │ │ :cond_3 │ move v8, v0 │ │ + .line 212 │ goto :goto_1 │ │ :cond_4 │ move v0, v8 │ │ - .line 212 │ goto :goto_2 │ │ .line 214 │ :catchall_0 │ move-exception v0 │ │ if-eqz v6, :cond_5 │ @@ -637,32 +638,35 @@ │ │ move-result-object v5 │ │ const/16 v6, 0xfa │ │ iget-object v7, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ + .line 186 │ invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ move-result v7 │ │ if-eqz v7, :cond_8 │ │ + .line 185 │ :goto_2 │ invoke-static {p1, v5, v6, v0, v4}, Lorg/smc/inputmethod/compat/UserDictionaryCompatUtils;->addWord(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;Ljava/util/Locale;)V │ │ .line 189 │ const/4 v4, 0x0 │ │ goto :goto_1 │ │ - .line 185 │ + .line 186 │ :cond_8 │ iget-object v4, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ + .line 187 │ invoke-static {v4}, Lcom/android/inputmethod/latin/utils/LocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; │ │ move-result-object v4 │ │ goto :goto_2 │ .end method │ │ @@ -710,15 +714,15 @@ │ .line 281 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ return-object v0 │ .end method │ │ .method public getLocalesList(Landroid/app/Activity;)Ljava/util/ArrayList; │ - .locals 7 │ + .locals 6 │ .param p1, "activity" # Landroid/app/Activity; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Landroid/app/Activity;", │ ")", │ "Ljava/util/ArrayList", │ @@ -728,119 +732,118 @@ │ } │ .end annotation │ │ .prologue │ .line 254 │ invoke-static {p1}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->getUserDictionaryLocalesSet(Landroid/app/Activity;)Ljava/util/TreeSet; │ │ - move-result-object v2 │ + move-result-object v1 │ │ .line 256 │ - .local v2, "locales":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ - iget-object v5, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ + .local v1, "locales":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ + iget-object v4, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ - invoke-virtual {v2, v5}, Ljava/util/TreeSet;->remove(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v4}, Ljava/util/TreeSet;->remove(Ljava/lang/Object;)Z │ │ .line 257 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ - move-result-object v5 │ + move-result-object v4 │ │ - invoke-virtual {v5}, Ljava/util/Locale;->toString()Ljava/lang/String; │ + invoke-virtual {v4}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 259 │ - .local v4, "systemLocale":Ljava/lang/String; │ - invoke-virtual {v2, v4}, Ljava/util/TreeSet;->remove(Ljava/lang/Object;)Z │ + .local v3, "systemLocale":Ljava/lang/String; │ + invoke-virtual {v1, v3}, Ljava/util/TreeSet;->remove(Ljava/lang/Object;)Z │ │ .line 260 │ - const-string v5, "" │ + const-string v4, "" │ │ - invoke-virtual {v2, v5}, Ljava/util/TreeSet;->remove(Ljava/lang/Object;)Z │ + invoke-virtual {v1, v4}, Ljava/util/TreeSet;->remove(Ljava/lang/Object;)Z │ │ .line 261 │ - new-instance v3, Ljava/util/ArrayList; │ + new-instance v2, Ljava/util/ArrayList; │ │ - invoke-direct {v3}, Ljava/util/ArrayList;->()V │ + invoke-direct {v2}, Ljava/util/ArrayList;->()V │ │ .line 264 │ - .local v3, "localesList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ - iget-object v5, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ + .local v2, "localesList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + iget-object v4, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ - invoke-static {p1, v3, v5}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ + invoke-static {p1, v2, v4}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ │ .line 265 │ - iget-object v5, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ + iget-object v4, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ - invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_0 │ + if-nez v4, :cond_0 │ │ .line 266 │ - invoke-static {p1, v3, v4}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ + invoke-static {p1, v2, v3}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ │ .line 268 │ :cond_0 │ - invoke-virtual {v2}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v1}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v0 │ + move-result-object v4 │ │ - .local v0, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_1 │ │ - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - check-cast v1, Ljava/lang/String; │ + check-cast v0, Ljava/lang/String; │ │ .line 270 │ - .local v1, "l":Ljava/lang/String; │ - invoke-static {p1, v3, v1}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ + .local v0, "l":Ljava/lang/String; │ + invoke-static {p1, v2, v0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ │ goto :goto_0 │ │ .line 272 │ - .end local v1 # "l":Ljava/lang/String; │ + .end local v0 # "l":Ljava/lang/String; │ :cond_1 │ - const-string v5, "" │ + const-string v4, "" │ │ - iget-object v6, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ + iget-object v5, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->mLocale:Ljava/lang/String; │ │ - invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_2 │ + if-nez v4, :cond_2 │ │ .line 274 │ - const-string v5, "" │ + const-string v4, "" │ │ - invoke-static {p1, v3, v5}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ + invoke-static {p1, v2, v4}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->addLocaleDisplayNameToList(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/String;)V │ │ .line 276 │ :cond_2 │ - new-instance v5, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents$LocaleRenderer; │ + new-instance v4, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents$LocaleRenderer; │ │ - const/4 v6, 0x0 │ + const/4 v5, 0x0 │ │ - invoke-direct {v5, p1, v6}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents$LocaleRenderer;->(Landroid/content/Context;Ljava/lang/String;)V │ + invoke-direct {v4, p1, v5}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents$LocaleRenderer;->(Landroid/content/Context;Ljava/lang/String;)V │ │ - invoke-virtual {v3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ │ .line 277 │ - return-object v3 │ + return-object v2 │ .end method │ │ .method saveStateIntoBundle(Landroid/os/Bundle;)V │ .locals 2 │ .param p1, "outState" # Landroid/os/Bundle; │ │ .prologue ├── smali/org/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordFragment.smali │ @@ -54,24 +54,26 @@ │ │ .line 135 │ .local v2, "localesList":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ iget-object v3, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordFragment;->mRootView:Landroid/view/View; │ │ const v4, 0x7f1000a3 │ │ + .line 136 │ invoke-virtual {v3, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/Spinner; │ │ .line 137 │ .local v1, "localeSpinner":Landroid/widget/Spinner; │ new-instance v0, Landroid/widget/ArrayAdapter; │ │ + .line 138 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v3 │ │ const v4, 0x1090008 │ │ invoke-direct {v0, v3, v4, v2}, Landroid/widget/ArrayAdapter;->(Landroid/content/Context;ILjava/util/List;)V │ @@ -144,14 +146,15 @@ │ │ invoke-interface {p1, v4, v2, v4, v3}, Landroid/view/Menu;->add(IIII)Landroid/view/MenuItem; │ │ move-result-object v2 │ │ const v3, 0x7f020088 │ │ + .line 94 │ invoke-interface {v2, v3}, Landroid/view/MenuItem;->setIcon(I)Landroid/view/MenuItem; │ │ move-result-object v0 │ │ .line 95 │ .local v0, "actionItemAdd":Landroid/view/MenuItem; │ invoke-interface {v0, v5}, Landroid/view/MenuItem;->setShowAsAction(I)V │ @@ -163,14 +166,15 @@ │ │ invoke-interface {p1, v4, v2, v4, v3}, Landroid/view/Menu;->add(IIII)Landroid/view/MenuItem; │ │ move-result-object v2 │ │ const v3, 0x108003c │ │ + .line 98 │ invoke-interface {v2, v3}, Landroid/view/MenuItem;->setIcon(I)Landroid/view/MenuItem; │ │ move-result-object v1 │ │ .line 99 │ .local v1, "actionItemDelete":Landroid/view/MenuItem; │ invoke-interface {v1, v5}, Landroid/view/MenuItem;->setShowAsAction(I)V │ @@ -226,24 +230,26 @@ │ │ move-result-object v0 │ │ invoke-virtual {v0}, Landroid/app/Activity;->getActionBar()Landroid/app/ActionBar; │ │ move-result-object v0 │ │ + .line 87 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v1 │ │ iget-object v2, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordFragment;->mContents:Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents; │ │ invoke-virtual {v2}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryAddWordContents;->getCurrentUserDictionaryLocale()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 86 │ invoke-static {v1, v2}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettingsUtils;->getLocaleDisplayName(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Landroid/app/ActionBar;->setSubtitle(Ljava/lang/CharSequence;)V │ │ .line 88 ├── smali/org/smc/inputmethod/indic/userdictionary/UserDictionaryList.smali │ @@ -15,15 +15,15 @@ │ .line 44 │ invoke-direct {p0}, Landroid/preference/PreferenceFragment;->()V │ │ return-void │ .end method │ │ .method public static getUserDictionaryLocalesSet(Landroid/app/Activity;)Ljava/util/TreeSet; │ - .locals 18 │ + .locals 15 │ .param p0, "activity" # Landroid/app/Activity; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Landroid/app/Activity;", │ ")", │ "Ljava/util/TreeSet", │ @@ -31,342 +31,339 @@ │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 56 │ - invoke-virtual/range {p0 .. p0}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; │ + invoke-virtual {p0}, Landroid/app/Activity;->getContentResolver()Landroid/content/ContentResolver; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - sget-object v2, Landroid/provider/UserDictionary$Words;->CONTENT_URI:Landroid/net/Uri; │ + sget-object v1, Landroid/provider/UserDictionary$Words;->CONTENT_URI:Landroid/net/Uri; │ │ - const/4 v3, 0x1 │ + const/4 v2, 0x1 │ │ - new-array v3, v3, [Ljava/lang/String; │ + new-array v2, v2, [Ljava/lang/String; │ │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ + │ + const-string v4, "locale" │ │ - const-string v5, "locale" │ + aput-object v4, v2, v3 │ │ - aput-object v5, v3, v4 │ + const/4 v3, 0x0 │ │ const/4 v4, 0x0 │ │ const/4 v5, 0x0 │ │ - const/4 v6, 0x0 │ + invoke-virtual/range {v0 .. v5}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ │ - invoke-virtual/range {v1 .. v6}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; │ - │ - move-result-object v8 │ + move-result-object v7 │ │ .line 59 │ - .local v8, "cursor":Landroid/database/Cursor; │ - new-instance v15, Ljava/util/TreeSet; │ + .local v7, "cursor":Landroid/database/Cursor; │ + new-instance v12, Ljava/util/TreeSet; │ │ - invoke-direct {v15}, Ljava/util/TreeSet;->()V │ + invoke-direct {v12}, Ljava/util/TreeSet;->()V │ │ .line 60 │ - .local v15, "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ - if-nez v8, :cond_1 │ + .local v12, "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ + if-nez v7, :cond_1 │ │ .line 62 │ - const/4 v15, 0x0 │ + const/4 v12, 0x0 │ │ .line 104 │ - .end local v15 # "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ + .end local v12 # "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ :cond_0 │ :goto_0 │ - return-object v15 │ + return-object v12 │ │ .line 65 │ - .restart local v15 # "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ + .restart local v12 # "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ :cond_1 │ :try_start_0 │ - invoke-interface {v8}, Landroid/database/Cursor;->moveToFirst()Z │ + invoke-interface {v7}, Landroid/database/Cursor;->moveToFirst()Z │ │ - move-result v1 │ + move-result v0 │ │ - if-eqz v1, :cond_3 │ + if-eqz v0, :cond_3 │ │ .line 66 │ - const-string v1, "locale" │ + const-string v0, "locale" │ │ - invoke-interface {v8, v1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ + invoke-interface {v7, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I │ │ - move-result v7 │ + move-result v6 │ │ .line 68 │ - .local v7, "columnIndex":I │ + .local v6, "columnIndex":I │ :cond_2 │ - invoke-interface {v8, v7}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ + invoke-interface {v7, v6}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ - move-result-object v14 │ + move-result-object v11 │ │ .line 69 │ - .local v14, "locale":Ljava/lang/String; │ - if-eqz v14, :cond_7 │ + .local v11, "locale":Ljava/lang/String; │ + if-eqz v11, :cond_7 │ │ - .end local v14 # "locale":Ljava/lang/String; │ + .end local v11 # "locale":Ljava/lang/String; │ :goto_1 │ - invoke-virtual {v15, v14}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v12, v11}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ │ .line 70 │ - invoke-interface {v8}, Landroid/database/Cursor;->moveToNext()Z │ + invoke-interface {v7}, Landroid/database/Cursor;->moveToNext()Z │ :try_end_0 │ .catchall {:try_start_0 .. :try_end_0} :catchall_0 │ │ - move-result v1 │ + move-result v0 │ │ - if-nez v1, :cond_2 │ + if-nez v0, :cond_2 │ │ .line 73 │ - .end local v7 # "columnIndex":I │ + .end local v6 # "columnIndex":I │ :cond_3 │ - invoke-interface {v8}, Landroid/database/Cursor;->close()V │ + invoke-interface {v7}, Landroid/database/Cursor;->close()V │ │ .line 75 │ - sget-boolean v1, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->IS_SHORTCUT_API_SUPPORTED:Z │ + sget-boolean v0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->IS_SHORTCUT_API_SUPPORTED:Z │ │ - if-nez v1, :cond_4 │ + if-nez v0, :cond_4 │ │ .line 78 │ - const-string v1, "" │ + const-string v0, "" │ │ - invoke-virtual {v15, v1}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v12, v0}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ │ .line 81 │ :cond_4 │ - const-string v1, "input_method" │ - │ - move-object/from16 v0, p0 │ + const-string v0, "input_method" │ │ - invoke-virtual {v0, v1}, Landroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ + .line 82 │ + invoke-virtual {p0, v0}, Landroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ - move-result-object v13 │ + move-result-object v10 │ │ - check-cast v13, Landroid/view/inputmethod/InputMethodManager; │ + check-cast v10, Landroid/view/inputmethod/InputMethodManager; │ │ .line 83 │ - .local v13, "imm":Landroid/view/inputmethod/InputMethodManager; │ - invoke-virtual {v13}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List; │ + .local v10, "imm":Landroid/view/inputmethod/InputMethodManager; │ + invoke-virtual {v10}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List; │ │ - move-result-object v12 │ + move-result-object v9 │ │ .line 84 │ - .local v12, "imis":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface {v12}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v9, "imis":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v9}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v9 │ + move-result-object v0 │ │ :cond_5 │ - invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v1 │ │ if-eqz v1, :cond_8 │ │ - invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - check-cast v11, Landroid/view/inputmethod/InputMethodInfo; │ + check-cast v8, Landroid/view/inputmethod/InputMethodInfo; │ │ .line 85 │ - .local v11, "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .local v8, "imi":Landroid/view/inputmethod/InputMethodInfo; │ const/4 v1, 0x1 │ │ - invoke-virtual {v13, v11, v1}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ + .line 86 │ + invoke-virtual {v10, v8, v1}, Landroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; │ │ - move-result-object v17 │ + move-result-object v14 │ │ .line 88 │ - .local v17, "subtypes":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface/range {v17 .. v17}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v14, "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v14}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v10 │ + move-result-object v1 │ │ - .local v10, "i$":Ljava/util/Iterator; │ :cond_6 │ :goto_2 │ - invoke-interface {v10}, 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 {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v16 │ + move-result-object v13 │ │ - check-cast v16, Landroid/view/inputmethod/InputMethodSubtype; │ + check-cast v13, Landroid/view/inputmethod/InputMethodSubtype; │ │ .line 89 │ - .local v16, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - invoke-virtual/range {v16 .. v16}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ + .local v13, "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + invoke-virtual {v13}, Landroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; │ │ - move-result-object v14 │ + move-result-object v11 │ │ .line 90 │ - .restart local v14 # "locale":Ljava/lang/String; │ - invoke-static {v14}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ + .restart local v11 # "locale":Ljava/lang/String; │ + invoke-static {v11}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z │ │ - move-result v1 │ + move-result v2 │ │ - if-nez v1, :cond_6 │ + if-nez v2, :cond_6 │ │ .line 91 │ - invoke-virtual {v15, v14}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v12, v11}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ │ goto :goto_2 │ │ .line 69 │ - .end local v10 # "i$":Ljava/util/Iterator; │ - .end local v11 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ - .end local v12 # "imis":Ljava/util/List;, "Ljava/util/List;" │ - .end local v13 # "imm":Landroid/view/inputmethod/InputMethodManager; │ - .end local v16 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ - .end local v17 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ - .restart local v7 # "columnIndex":I │ + .end local v8 # "imi":Landroid/view/inputmethod/InputMethodInfo; │ + .end local v9 # "imis":Ljava/util/List;, "Ljava/util/List;" │ + .end local v10 # "imm":Landroid/view/inputmethod/InputMethodManager; │ + .end local v13 # "subtype":Landroid/view/inputmethod/InputMethodSubtype; │ + .end local v14 # "subtypes":Ljava/util/List;, "Ljava/util/List;" │ + .restart local v6 # "columnIndex":I │ :cond_7 │ :try_start_1 │ - const-string v14, "" │ + const-string v11, "" │ :try_end_1 │ .catchall {:try_start_1 .. :try_end_1} :catchall_0 │ │ goto :goto_1 │ │ .line 73 │ - .end local v7 # "columnIndex":I │ - .end local v14 # "locale":Ljava/lang/String; │ + .end local v6 # "columnIndex":I │ + .end local v11 # "locale":Ljava/lang/String; │ :catchall_0 │ - move-exception v1 │ + move-exception v0 │ │ - invoke-interface {v8}, Landroid/database/Cursor;->close()V │ + invoke-interface {v7}, Landroid/database/Cursor;->close()V │ │ - throw v1 │ + throw v0 │ │ .line 100 │ - .restart local v12 # "imis":Ljava/util/List;, "Ljava/util/List;" │ - .restart local v13 # "imm":Landroid/view/inputmethod/InputMethodManager; │ + .restart local v9 # "imis":Ljava/util/List;, "Ljava/util/List;" │ + .restart local v10 # "imm":Landroid/view/inputmethod/InputMethodManager; │ :cond_8 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - invoke-virtual {v1}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - invoke-virtual {v1}, Ljava/lang/String;->toString()Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/lang/String;->toString()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - invoke-virtual {v15, v1}, Ljava/util/TreeSet;->contains(Ljava/lang/Object;)Z │ + invoke-virtual {v12, v0}, Ljava/util/TreeSet;->contains(Ljava/lang/Object;)Z │ │ - move-result v1 │ + move-result v0 │ │ - if-nez v1, :cond_0 │ + if-nez v0, :cond_0 │ │ .line 101 │ invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - invoke-virtual {v1}, Ljava/util/Locale;->toString()Ljava/lang/String; │ + invoke-virtual {v0}, Ljava/util/Locale;->toString()Ljava/lang/String; │ │ - move-result-object v1 │ + move-result-object v0 │ │ - invoke-virtual {v15, v1}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v12, v0}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ │ goto/16 :goto_0 │ .end method │ │ │ # virtual methods │ .method protected createUserDictSettings(Landroid/preference/PreferenceGroup;)V │ - .locals 6 │ + .locals 5 │ .param p1, "userDictGroup" # Landroid/preference/PreferenceGroup; │ │ .prologue │ .line 112 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->getActivity()Landroid/app/Activity; │ │ move-result-object v0 │ │ .line 113 │ .local v0, "activity":Landroid/app/Activity; │ invoke-virtual {p1}, Landroid/preference/PreferenceGroup;->removeAll()V │ │ - .line 114 │ + .line 115 │ invoke-static {v0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->getUserDictionaryLocalesSet(Landroid/app/Activity;)Ljava/util/TreeSet; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 117 │ - .local v3, "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ - invoke-virtual {v3}, Ljava/util/TreeSet;->size()I │ + .local v2, "localeSet":Ljava/util/TreeSet;, "Ljava/util/TreeSet;" │ + invoke-virtual {v2}, Ljava/util/TreeSet;->size()I │ │ - move-result v4 │ + move-result v3 │ │ - const/4 v5, 0x1 │ + const/4 v4, 0x1 │ │ - if-le v4, v5, :cond_0 │ + if-le v3, v4, :cond_0 │ │ .line 120 │ - const-string v4, "" │ + const-string v3, "" │ │ - invoke-virtual {v3, v4}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v2, v3}, Ljava/util/TreeSet;->add(Ljava/lang/Object;)Z │ │ .line 123 │ :cond_0 │ - invoke-virtual {v3}, Ljava/util/TreeSet;->isEmpty()Z │ + invoke-virtual {v2}, Ljava/util/TreeSet;->isEmpty()Z │ │ - move-result v4 │ + move-result v3 │ │ - if-eqz v4, :cond_2 │ + if-eqz v3, :cond_2 │ │ .line 124 │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ - invoke-virtual {p0, v4, v0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->createUserDictionaryPreference(Ljava/lang/String;Landroid/app/Activity;)Landroid/preference/Preference; │ + invoke-virtual {p0, v3, v0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->createUserDictionaryPreference(Ljava/lang/String;Landroid/app/Activity;)Landroid/preference/Preference; │ │ - move-result-object v4 │ + move-result-object v3 │ │ - invoke-virtual {p1, v4}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ + invoke-virtual {p1, v3}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ │ .line 130 │ :cond_1 │ return-void │ │ .line 126 │ :cond_2 │ - invoke-virtual {v3}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator; │ + invoke-virtual {v2}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v3 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :goto_0 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v4 │ │ if-eqz v4, :cond_1 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Ljava/lang/String; │ + check-cast v1, Ljava/lang/String; │ │ .line 127 │ - .local v2, "locale":Ljava/lang/String; │ - invoke-virtual {p0, v2, v0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->createUserDictionaryPreference(Ljava/lang/String;Landroid/app/Activity;)Landroid/preference/Preference; │ + .local v1, "locale":Ljava/lang/String; │ + invoke-virtual {p0, v1, v0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionaryList;->createUserDictionaryPreference(Ljava/lang/String;Landroid/app/Activity;)Landroid/preference/Preference; │ │ move-result-object v4 │ │ invoke-virtual {p1, v4}, Landroid/preference/PreferenceGroup;->addPreference(Landroid/preference/Preference;)Z │ │ goto :goto_0 │ .end method ├── smali/org/smc/inputmethod/indic/userdictionary/UserDictionarySettings$MyAdapter$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings$MyAdapter; │ │ │ # direct methods │ .method constructor (Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings$MyAdapter;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings$MyAdapter; │ │ .prologue │ .line 289 │ iput-object p1, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings$MyAdapter$1;->this$0:Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings$MyAdapter; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/smc/inputmethod/indic/userdictionary/UserDictionarySettings.smali │ @@ -215,15 +215,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 49 │ invoke-direct {p0}, Landroid/app/ListFragment;->()V │ │ - .line 285 │ return-void │ .end method │ │ .method private createAdapter()Landroid/widget/ListAdapter; │ .locals 7 │ │ .prologue │ @@ -446,18 +445,20 @@ │ .line 265 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->mCursor:Landroid/database/Cursor; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->mCursor:Landroid/database/Cursor; │ │ const-string v2, "shortcut" │ │ + .line 266 │ invoke-interface {v1, v2}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I │ │ move-result v1 │ │ + .line 265 │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ @@ -496,18 +497,20 @@ │ .line 254 │ iget-object v0, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->mCursor:Landroid/database/Cursor; │ │ iget-object v1, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->mCursor:Landroid/database/Cursor; │ │ const-string v2, "word" │ │ + .line 255 │ invoke-interface {v1, v2}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I │ │ move-result v1 │ │ + .line 254 │ invoke-interface {v0, v1}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; │ │ move-result-object v0 │ │ goto :goto_0 │ .end method │ │ @@ -550,15 +553,15 @@ │ .line 241 │ const-string v1, "locale" │ │ iget-object v3, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->mLocale:Ljava/lang/String; │ │ invoke-virtual {v2, v1, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V │ │ - .line 242 │ + .line 243 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->getActivity()Landroid/app/Activity; │ │ move-result-object v0 │ │ check-cast v0, Landroid/preference/PreferenceActivity; │ │ .line 244 │ @@ -694,24 +697,26 @@ │ │ move-result-object v7 │ │ invoke-virtual {v7}, Landroid/app/Activity;->getActionBar()Landroid/app/ActionBar; │ │ move-result-object v7 │ │ + .line 160 │ invoke-virtual {p0}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->getActivity()Landroid/app/Activity; │ │ move-result-object v8 │ │ iget-object v9, p0, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettings;->mLocale:Ljava/lang/String; │ │ invoke-static {v8, v9}, Lorg/smc/inputmethod/indic/userdictionary/UserDictionarySettingsUtils;->getLocaleDisplayName(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v8 │ │ + .line 159 │ invoke-virtual {v7, v8}, Landroid/app/ActionBar;->setSubtitle(Ljava/lang/CharSequence;)V │ │ .line 161 │ return-void │ │ .line 126 │ .end local v0 # "arguments":Landroid/os/Bundle; │ @@ -719,26 +724,28 @@ │ .end local v3 # "listView":Landroid/widget/ListView; │ .end local v4 # "locale":Ljava/lang/String; │ .end local v5 # "localeFromArguments":Ljava/lang/String; │ .end local v6 # "localeFromIntent":Ljava/lang/String; │ :cond_0 │ const-string v8, "locale" │ │ + .line 127 │ invoke-virtual {v2, v8}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v6 │ │ goto :goto_0 │ │ .line 130 │ .restart local v0 # "arguments":Landroid/os/Bundle; │ .restart local v6 # "localeFromIntent":Ljava/lang/String; │ :cond_1 │ const-string v7, "locale" │ │ + .line 131 │ invoke-virtual {v0, v7}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v5 │ │ goto :goto_1 │ │ .line 136 │ @@ -839,20 +846,22 @@ │ │ .line 213 │ :cond_0 │ const/4 v2, 0x1 │ │ const v3, 0x7f0c0531 │ │ + .line 214 │ invoke-interface {p1, v4, v2, v4, v3}, Landroid/view/Menu;->add(IIII)Landroid/view/MenuItem; │ │ move-result-object v2 │ │ const v3, 0x7f020088 │ │ + .line 215 │ invoke-interface {v2, v3}, Landroid/view/MenuItem;->setIcon(I)Landroid/view/MenuItem; │ │ move-result-object v0 │ │ .line 216 │ .local v0, "actionItem":Landroid/view/MenuItem; │ const/4 v2, 0x5