diff --git a/README.md b/README.md
index aebd303..c8f6d38 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
+
# Pegasus Spyware Samples Decompiled & Recompiled
+# Pegasus Spyware Product Manual 2013
## Author: Jonathan Scott @jonathandata1
-### CURRENT VERSION 3.5
+### CURRENT VERSION 4.0
## About Jonathan Scott
@@ -14,8 +16,9 @@ source: https://lgsecurity.lge.com/bulletins/mobile#updateDetails
## Description:
-## Operating System: AndroidOS
-### Samples 1-5.1 are executable and functional. I am still working on cleaning up Sample #6, but most the XML data can be read.
+
+> ### Operating System: AndroidOS
+> ### Samples 1-5.1 are executable and functional. I am still working on cleaning up Sample #6, but most the XML data can be read.
## Steps To Install & Research The Spyware Samples
@@ -42,16 +45,38 @@ source: https://lgsecurity.lge.com/bulletins/mobile#updateDetails
| Sample 5 | 7c3ad8fec33465fed6563bbfabb5b13d |
| Sample 5.1 | 3474625e63d0893fc8f83034e835472d95195254e1e4bdf99153b7c74eb44d86 |
| Sample 6 | 530b4f4d139f3ef987d661b2a9f74f5f |
-
+| Product Manual 2013 | f6f0170d41075766b5ea18508453fa68dc946b8c58eaea4281b36207a32c7ade|
+
## Acknowledgements
### @vxunderground for providing the samples
-### @recordedfuture for validation
+### @recordedfuture for sample validation
+### @silascutler - Silas Cutler - Security Researcher (Malware / Reverse Engineering / Exploitation) Formerly CrowdStrike/Dell SecureWorks, Chronicle, Google) - Document Reference
+### @botherder Claudio Guarnieri - (Head of Security Lab at Amnesty International) - 2013 Product Manual
![PEGASUS SPYWARE 5.1](https://i.postimg.cc/tJ9QtqvQ/pegaus-sample-5-1.jpg)
+## Product Manual: 2013 Edition
+### Author: Guy Molho - Former NSO Director, Product Management
+### Author LinkedIn: https://www.linkedin.com/in/guymolho/
+
+**Document Hash:** f6f0170d41075766b5ea18508453fa68dc946b8c58eaea4281b36207a32c7ade
+https://www.virustotal.com/gui/file/f6f0170d41075766b5ea18508453fa68dc946b8c58eaea4281b36207a32c7ade
+
+## Author Validation:
+`exiftool 2013-NSO-Pegasus.pdf
+Creator Tool : Adobe Acrobat 8.0 Combine Files
+Create Date : 2013:12:23 14:53:39-06:00
+Metadata Date : 2013:12:23 14:53:39-06:00
+Producer : Adobe Acrobat 8.0
+Creator : Guy Molho
+Format : application/pdf`
+
+
+![PEGASUS SPYWARE User Manual](https://i.postimg.cc/tgKwFtP4/Untitled-design-Max-Quality-2022-01-12-T170128-993.jpg)
+
![PEGASUS SPYWARE RAW DECOMPILED](https://i.postimg.cc/mZd92vqK/pegasus-spyware-android.jpg)
diff --git a/product-manual/2013-NSO-Pegasus.pdf b/product-manual/2013-NSO-Pegasus.pdf
new file mode 100644
index 0000000..f4a2131
Binary files /dev/null and b/product-manual/2013-NSO-Pegasus.pdf differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/AndroidManifest.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/AndroidManifest.xml
new file mode 100644
index 0000000..82bf1d8
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/AndroidManifest.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/CERT.RSA b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/CERT.RSA
new file mode 100644
index 0000000..6192ab6
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/CERT.RSA differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/CERT.SF b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/CERT.SF
new file mode 100644
index 0000000..ed021d8
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/CERT.SF
@@ -0,0 +1,544 @@
+Signature-Version: 1.0
+Created-By: 1.0 (Android SignApk)
+SHA1-Digest-Manifest: yCfEoEG7uMyrRM63JaFCGmq77zQ=
+
+Name: res/drawable-hdpi/gui_unlock_pressed.png
+SHA1-Digest: yr4hImUbLFJAMP77NpHKdMBFKxA=
+
+Name: res/drawable-hdpi/checkbox_off.png
+SHA1-Digest: KSgYKItp/ug2PiJ5dk5j0BmgOKM=
+
+Name: res/drawable/gui_listselector.xml
+SHA1-Digest: gP+Nq53GFy+fupncUIhlis5URyg=
+
+Name: res/drawable/set.xml
+SHA1-Digest: KReyE8chxTYmjIS142swu2uFZ3c=
+
+Name: res/drawable-hdpi/dialog_bg_bottom.9.png
+SHA1-Digest: uKUvCPTcn6Er8HhAH2xNnelOoBY=
+
+Name: res/drawable-hdpi/dialog_center.9.png
+SHA1-Digest: E7AmxAFlhStCibUJBymEBdv5hgU=
+
+Name: res/drawable-hdpi/gui_icon_img.png
+SHA1-Digest: nL/ZTal5ZLt2WIfrJxJ+ZWoSnhU=
+
+Name: res/drawable/signbtn_bg.xml
+SHA1-Digest: do0K/2fSzH4LCP8qFWvRxwK7BsU=
+
+Name: res/drawable-hdpi/gui_title_bg.png
+SHA1-Digest: WT0OZqTHpJRkv5Nb80hs+G+AGdQ=
+
+Name: res/drawable/green_btn.xml
+SHA1-Digest: 5yb5iVuyMbXkTiBwpOdA6ie7qZM=
+
+Name: res/drawable-hdpi/home_page_healthcheckup_button_normal.9.png
+SHA1-Digest: /1C94jso6DuTD4Xb/dKP7pqlWk0=
+
+Name: res/anim/movetoleft.xml
+SHA1-Digest: n0iqwpdE89dF5nMCK01zZEHKU3Y=
+
+Name: res/layout/gui_normalfile_activity.xml
+SHA1-Digest: U7+E0wFQ9+s1H4TyUB9NdAkFFXA=
+
+Name: res/layout/gui_privatefile_activity.xml
+SHA1-Digest: Z31oqxon0SUdFIml9fzZci+j0qY=
+
+Name: res/layout/image_browser.xml
+SHA1-Digest: NwhcAa6t34ClEIEjc7w5g2L4tNU=
+
+Name: res/drawable-hdpi/gui_load_big.png
+SHA1-Digest: R7lQhsjKNT077NaC7xk46hGGehk=
+
+Name: res/drawable-hdpi/btn_set_2pwd_click.9.png
+SHA1-Digest: Ygjvm00XFp2Vf5vtzqDq77ixsFE=
+
+Name: res/drawable-hdpi/back_pressed.png
+SHA1-Digest: 8w+Go3MjVClYAMj5RpOJ+7sk8W8=
+
+Name: res/drawable-hdpi/btn_off.png
+SHA1-Digest: pnpS9n2AZprlSATt5qLHcKy6hk4=
+
+Name: res/drawable/exit_selector_en.xml
+SHA1-Digest: TtFvdOdvJhy0O/olfg+hZSaEB1I=
+
+Name: res/drawable/home_page_button_healthcheckup_color_selector.xml
+SHA1-Digest: lcOWLYgiycj96Kw+rvmfamzX2Wo=
+
+Name: res/drawable-hdpi/gui_more.png
+SHA1-Digest: /Laae9OSDaebsg4SW5TT7WkqmIA=
+
+Name: res/layout/simple_list_item.xml
+SHA1-Digest: bUPFPo+uDt+kjHxoqKj8AYF4Lh0=
+
+Name: res/drawable-hdpi/exit_normal.9.png
+SHA1-Digest: 4K0a15zizzE9qeC+eaq1rwZdi5k=
+
+Name: assets/busybox
+SHA1-Digest: QT6XfYkhEBakB3zLr4hpEcp+g6Y=
+
+Name: res/drawable-hdpi/gui_add_btn.9.png
+SHA1-Digest: MazGtF6NBTHFO1kyJt8Dw40a4gs=
+
+Name: res/anim/movetoright.xml
+SHA1-Digest: 0mLD3P9A/J6IMCtE6CcAkVVp9cg=
+
+Name: res/drawable-hdpi/exit_pressed.9.png
+SHA1-Digest: H1loh5UTbYP/Mx2M4ypgcdQ4DII=
+
+Name: res/drawable/exit_selector.xml
+SHA1-Digest: FIjqtIRSXu6h8yctxqvVUnN1i28=
+
+Name: res/drawable-hdpi/gui_tab_normal.png
+SHA1-Digest: ZNBn0sI79U1vV2HOmunv0M9+RlI=
+
+Name: res/layout/sus_download_notification.xml
+SHA1-Digest: 4VfIOHizTb3tPFw3MMddBVMjeo0=
+
+Name: res/layout/gui_selectapp_activity.xml
+SHA1-Digest: KqrqWYS3I/Z2HX+Ev51npCPKKCI=
+
+Name: res/drawable-hdpi/key_bg_pressed.png
+SHA1-Digest: t7fZtxDpVEFWeD2jbnaDQspUpB0=
+
+Name: res/drawable-hdpi/btn_on.png
+SHA1-Digest: ZJu4pqdq7u1HUg0+oy/mwPwHZ+Q=
+
+Name: res/drawable-hdpi/checkbox_on.png
+SHA1-Digest: pX3zZ2tPPgbibY/HWCCWE6VUQZk=
+
+Name: res/drawable-hdpi/key_bg_normal.png
+SHA1-Digest: O0wTntXPup4/iIJPijY8EP1MsiQ=
+
+Name: res/drawable-hdpi/list.png
+SHA1-Digest: dsv2+cAg+w93toEDIDe45wlq+YI=
+
+Name: res/drawable-hdpi/dialog_title_bg.9.png
+SHA1-Digest: XwZEJPBEecGGXYhcOf9nZ/8h/Rg=
+
+Name: res/drawable/shape_line.xml
+SHA1-Digest: OBSS899R4WjRjdPfDVcuHuQ70S0=
+
+Name: res/drawable-hdpi/btn_skip_2pwd_normal.9.png
+SHA1-Digest: H8CRgg2pT33jxs/pHij16lL8FGA=
+
+Name: res/drawable/key_selector.xml
+SHA1-Digest: vl/dSblEVmxWHExRsliqqnnD1rc=
+
+Name: res/layout/sus_updateinfo_dialog.xml
+SHA1-Digest: 8F3y9vyeGZZNloQFf4niTxGuSsY=
+
+Name: res/drawable-hdpi/sus_notify_bg.png
+SHA1-Digest: dqQrjsic2pTe8ZnbPRk9cWsEQ4g=
+
+Name: res/drawable/gui_mybtn_bottom_selector.xml
+SHA1-Digest: lph4hF+KG1uBoIbFOOUlJXOBS9U=
+
+Name: res/layout/title.xml
+SHA1-Digest: i7kqiSxaFKEXVWomkXyHr1NBv9E=
+
+Name: assets/cover.img
+SHA1-Digest: cIo9Kz3UBdr4TvvgsmvNJqyNb1o=
+
+Name: res/layout/lockedscreen.xml
+SHA1-Digest: gJyMTvEmGnlLbk6NLmf3ggM4oB8=
+
+Name: res/drawable-hdpi/title_bg.png
+SHA1-Digest: KOeq6PiehTCal55R1bDv1S1vbRA=
+
+Name: res/drawable-hdpi/visit_control_icon.png
+SHA1-Digest: E0CVzOcCFpN2av/cxhbnuNXniNk=
+
+Name: res/drawable-hdpi/gui_video_null.png
+SHA1-Digest: 72amFL663vM1R7qnbJ5JazuCQNE=
+
+Name: resources.arsc
+SHA1-Digest: PB8fSHyB01hEeA+GE0eSSyPIVlc=
+
+Name: res/layout/title_editor.xml
+SHA1-Digest: q/8Ii/Ptwity/AJ9u3oErspS0IQ=
+
+Name: res/layout/gui_listview_temp_list.xml
+SHA1-Digest: RXcvzuwaBX6QmqdxmVdtwMxm6N4=
+
+Name: res/drawable-hdpi/back_icon.png
+SHA1-Digest: 9gCRm7M2KiUfBImv6+mTSO1rzDw=
+
+Name: AndroidManifest.xml
+SHA1-Digest: tdTkXJwNtSnjdt8amOG9Qu+vYls=
+
+Name: res/drawable-hdpi/list_normal.png
+SHA1-Digest: JIVEBunqcGHsHW39lxmhOIBzjDk=
+
+Name: res/drawable-hdpi/icon_img.png
+SHA1-Digest: mxP0T2Ukhg1lupMAw6mYTJE7BX8=
+
+Name: res/drawable-hdpi/gui_list_normal.9.png
+SHA1-Digest: 4h08HdelrnD54D2Azc40bNy+LiY=
+
+Name: res/drawable-hdpi/sus_downloadicon.png
+SHA1-Digest: Dt90oAQCjwC7q6s6ucTCBngjzMA=
+
+Name: res/layout/gui_test.xml
+SHA1-Digest: rr/0PMhoi/CePUiXMCncFo8qV2s=
+
+Name: res/drawable/media_uncheck.png
+SHA1-Digest: CkVASOfI1r/EaZYwHvMsnQidYzM=
+
+Name: res/drawable-hdpi/gui_tab_diverd.png
+SHA1-Digest: 0vG9AXWQQBogyf948BhYhFoxu7s=
+
+Name: res/drawable-hdpi/notify_bg.png
+SHA1-Digest: kva+PA4U351VhQ8IHckAScAVMp4=
+
+Name: res/drawable-hdpi/gui_check_normal.png
+SHA1-Digest: OgXrZVT/buxpE8Eum6oi+Djnca0=
+
+Name: res/layout/main_list_activity.xml
+SHA1-Digest: fC2S/VMp8N8svHFgFfsN8vzsou8=
+
+Name: res/drawable-hdpi/home_page_healthcheckup_button_selected.9.png
+SHA1-Digest: on1CN065WcuwZ/I+nFIuTwh1HLU=
+
+Name: res/drawable-hdpi/app_empty.png
+SHA1-Digest: 3w1KOtn8h2r6jj6RqQ5JQOAjTGg=
+
+Name: res/drawable/trans_edit_text.xml
+SHA1-Digest: 7wXFqN/12psV5Gucg/LtmhbT8D8=
+
+Name: res/drawable/gui_checkbox_click_selector.xml
+SHA1-Digest: oZ4jQW/jIWK9B6X1E47aLA23gks=
+
+Name: res/drawable-hdpi/clean_normal_en.9.png
+SHA1-Digest: BaugebaarZrGF7zqfbovBCCvT6c=
+
+Name: res/drawable-hdpi/lockscreen_bg.9.png
+SHA1-Digest: /GGuipmrJEUx4YA6jGPaRpE0sxo=
+
+Name: res/drawable-hdpi/restore_icon.png
+SHA1-Digest: QMggHjhsBXObEJROF2mWRCF0D4o=
+
+Name: res/layout/gui_imgfolder_activity.xml
+SHA1-Digest: KXhMGY61Lq1/np4X5QoKuCDbxf4=
+
+Name: res/layout/dialog.xml
+SHA1-Digest: r/EGvDQd3+6oT8iDXtPk0IsJRAM=
+
+Name: res/drawable-hdpi/edit_button.9.png
+SHA1-Digest: 3tKnolAH/iahckTEQ6iZ3VbhYns=
+
+Name: classes.dex
+SHA1-Digest: mzLFt+u9bpeybIMtUSph2VCu8t8=
+
+Name: res/drawable-hdpi/back_normal.png
+SHA1-Digest: 9VF9WATygpRuOcoI01voYDpPRXE=
+
+Name: res/layout/setting_item.xml
+SHA1-Digest: DjTaWYYD4eMvRkSaIEuxvTsId6w=
+
+Name: res/drawable-hdpi/exit_normal_en.9.png
+SHA1-Digest: uByYFx+RKA5VSVL+yNRKF+vecvY=
+
+Name: res/drawable-hdpi/gui_locked_pressed.png
+SHA1-Digest: 3fFqAFaPPJ8WPP6yscWkWPP8FZg=
+
+Name: res/drawable/btn_gray.xml
+SHA1-Digest: OGMXOBgRzUOdrI+5REtntN2tCnA=
+
+Name: res/drawable-hdpi/btn_set_2pwd_normal.9.png
+SHA1-Digest: SZ//szWAswHZBYqzh72nBuE5uMI=
+
+Name: res/drawable-hdpi/gui_editor_pressed.png
+SHA1-Digest: FpumBgCUaGdoWE3q4paRMbYy4Gk=
+
+Name: res/drawable-hdpi/gui_load_folder_en.png
+SHA1-Digest: IlOkKCGKkQmuuM8UgKSQnlkIQlY=
+
+Name: res/drawable-hdpi/gui_video.png
+SHA1-Digest: 5W+PJDYDcuH7smZxxxD7bQE0bJM=
+
+Name: res/layout/gui_priimage_item.xml
+SHA1-Digest: eVPrtok9mKHHuQOdWpgDx78muE4=
+
+Name: res/drawable-hdpi/clean_pressed.9.png
+SHA1-Digest: P9jjt3riBehG1YHC4Qxye+vkIG0=
+
+Name: res/drawable-hdpi/gui_media_bg.png
+SHA1-Digest: 6YzgSF11AEcNqGlVwqhqDQ8VP4k=
+
+Name: res/drawable-hdpi/btn_gray_pressed.9.png
+SHA1-Digest: qySvI4nLDylWqOJHALXbi+LsVwE=
+
+Name: res/drawable-hdpi/gui_locked_normal.png
+SHA1-Digest: It5wdwq/yJx72z0LJjjAwVd5KoI=
+
+Name: res/drawable-hdpi/select_all_icon.png
+SHA1-Digest: Mqdg29R1Y1hhpmZuSGR2dpFUSWw=
+
+Name: res/drawable-hdpi/complete_icon.png
+SHA1-Digest: VdlYgJxTCo0/UX3E/aLxM7Z0IxU=
+
+Name: res/drawable/gui_media_check_selector.xml
+SHA1-Digest: TMMijrJQ4y0t7/YdbTXZ5QTCGR8=
+
+Name: res/anim/cycle_7.xml
+SHA1-Digest: p/A7F8decVHMV78wME4Wa97qWBk=
+
+Name: res/drawable-hdpi/edit_icon.png
+SHA1-Digest: eLaceMPUBkTLT/5e/N7PaiGq3Cc=
+
+Name: assets/toolbox
+SHA1-Digest: 6jPAqYqtuPTMHhhFSLC8lUE82oU=
+
+Name: res/drawable-hdpi/gui_img.png
+SHA1-Digest: +7ftqFMdzMFrVObrZiwOTcjmiCY=
+
+Name: res/drawable-hdpi/edit_button_complete.9.png
+SHA1-Digest: SW6ujn+QLSY5G4Gpi0xNS9KaLmc=
+
+Name: res/drawable-hdpi/antispamlog.png
+SHA1-Digest: 3lXvyBcSbcwWiYDq/Hyiz1i2KSI=
+
+Name: res/layout/gui_privatemedia_activity.xml
+SHA1-Digest: tGzOOEeKf7fMNrwUIU9MM6s/BwU=
+
+Name: res/drawable-hdpi/gui_img_null_en.png
+SHA1-Digest: gnqQS1WAxtJkgMFVz2YKLBguYYc=
+
+Name: res/drawable/clean_selector.xml
+SHA1-Digest: ECgvGe3uquCG/gmNYboViXMwB4w=
+
+Name: res/drawable-hdpi/gui_folder.png
+SHA1-Digest: WyAurvPATN9/z6VeecBnzB9Hs/M=
+
+Name: res/drawable-hdpi/exit_pressed_en.9.png
+SHA1-Digest: 6vWs55nVtadYBJEqf1oIIegfdSY=
+
+Name: res/drawable-hdpi/gui_check_pressed.png
+SHA1-Digest: aNOePmQc7Ia4TtDvtcaMyTSMycE=
+
+Name: res/drawable-hdpi/signnormal.9.png
+SHA1-Digest: Xj0APGwr7pqFwKiPQ47l5A33X6E=
+
+Name: res/anim/shake.xml
+SHA1-Digest: 4LdRVDvIQqPBp5ChlTsI9nWAa9E=
+
+Name: res/drawable-hdpi/gui_tab_select.png
+SHA1-Digest: ivCEzGq+VSXUC7t+X7eVbrXJxXw=
+
+Name: res/drawable-hdpi/icon_file.png
+SHA1-Digest: /c5LttHhV9tQaOE5RUysSk/yXMs=
+
+Name: res/layout/visit_activity.xml
+SHA1-Digest: neDHmBOSTZnY/6/CB+mOcoOmf48=
+
+Name: res/layout/title_set.xml
+SHA1-Digest: +Eu9GEnRwMLXh5Kuoo7s1IQBKAg=
+
+Name: res/drawable-hdpi/gui_editor.png
+SHA1-Digest: hz4g6OO3diEp1h9FP+nQtVXh6Ps=
+
+Name: res/layout/text_item.xml
+SHA1-Digest: CzspiEkaUcTNucbjY5rk1184PxQ=
+
+Name: res/drawable-hdpi/set_normal.png
+SHA1-Digest: AzO/Ok3FJKqG9jKhmCculpmh8S0=
+
+Name: res/drawable-hdpi/signselect.9.png
+SHA1-Digest: iuS+T1jUdyH9yBOtGbHwNoZ6Ja8=
+
+Name: res/drawable-hdpi/btn_skip_2pwd_click.9.png
+SHA1-Digest: WTYw3x0zM/JE7C7xZD0UbJ6Ymvo=
+
+Name: res/drawable-hdpi/invalid_img.png
+SHA1-Digest: rN7Foo5s28T8vNSha99s7vuSN7Y=
+
+Name: res/drawable-hdpi/gui_unlock_normal.png
+SHA1-Digest: UJj0ERw4KdBhcwnYtVMJ1p2KejY=
+
+Name: res/drawable-hdpi/gui_icon_video.png
+SHA1-Digest: 9L4OOSjTpEX5WTw3nYQ3be6VfJQ=
+
+Name: res/drawable-hdpi/list_pressed.png
+SHA1-Digest: mSbXh9Oc4MREUyzTzEam+vK+0rM=
+
+Name: res/drawable/scrollbar_handle_vertical.9.png
+SHA1-Digest: zhp5Gz6OJmiu1x3m2No7JJ0ecvY=
+
+Name: res/drawable-hdpi/listview_bg.9.png
+SHA1-Digest: 6fvbTVJE4ONhBr5aiy70SW1WEe0=
+
+Name: res/layout/input_password_content.xml
+SHA1-Digest: LyPFUtwKXCXYBWWsbkLFICeY6Cg=
+
+Name: res/drawable-hdpi/gui_editor1.png
+SHA1-Digest: v8Md6RYpnnR3Q75cpdIUxGn4IMk=
+
+Name: res/drawable-hdpi/gui_info_bar.9.png
+SHA1-Digest: QutETWWoflsVvg4pTYEdrJc07f4=
+
+Name: res/drawable-hdpi/clean_normal.9.png
+SHA1-Digest: PWrwSr4ZMvq+LKINxrJOmYnZt2I=
+
+Name: res/drawable-hdpi/input_bg.9.png
+SHA1-Digest: TTKWhu+eFrI0VudsZw74kz7R0/A=
+
+Name: res/drawable-hdpi/gui_img_load.png
+SHA1-Digest: e5un/v8+6nUGCpjivHWPfaNA5FY=
+
+Name: res/drawable-hdpi/gui_file.png
+SHA1-Digest: SbBD7rBehoq3HeDgZ9S5GeavIe4=
+
+Name: res/drawable-hdpi/gui_checkbox_off.png
+SHA1-Digest: QoB6usO/5ItTVpHPP+QH7uC9ArU=
+
+Name: res/drawable-hdpi/dele_icon.png
+SHA1-Digest: Q3bd141bg05faU7KNvKTAmgFov0=
+
+Name: res/drawable/media_checked.png
+SHA1-Digest: crAUxkKxIcycwKLGQUFT4zlpjLU=
+
+Name: res/drawable-hdpi/btn_gray_normal.9.png
+SHA1-Digest: PxsuwOBkAyMQ06TKVR8dc6M/kfE=
+
+Name: res/drawable-hdpi/gui_app_locked.png
+SHA1-Digest: dQGyHe7/rr1+gX1tc6MnLCYePHI=
+
+Name: res/drawable-hdpi/gui_more_pressed.png
+SHA1-Digest: IF2SRcUvrHCYMK1I0C3rBBZir5U=
+
+Name: res/layout/gui_priimage_folder.xml
+SHA1-Digest: Ko7NBu8Ma5xSGHKiVvfN2xsIQCg=
+
+Name: res/layout/gui_selectapp_item.xml
+SHA1-Digest: kt9oe1jNRBSGgv65gEzul0h/CIc=
+
+Name: res/drawable-hdpi/home_page_drawer_splitline_horizontal.png
+SHA1-Digest: XvNPz1IhEsu3+bLWThrjaiCb1RA=
+
+Name: res/drawable-hdpi/gui_folder_bg.png
+SHA1-Digest: dRR9P7CaoYAzUw0ZiMGtkX0P3y0=
+
+Name: res/drawable-hdpi/icon_video.png
+SHA1-Digest: PXAuBYLPEkCqd22VM3ina00iK7I=
+
+Name: res/drawable-hdpi/gui_load_small.png
+SHA1-Digest: vfp6yp3b1Zqvn5GR3M8sdBL+YAU=
+
+Name: res/drawable-hdpi/gui_load_folder.png
+SHA1-Digest: dlL0UsjuTrD5skPoY3tQtVAvRKg=
+
+Name: res/drawable-hdpi/gui_img_null.png
+SHA1-Digest: BpdC4uoHuS4Bmn4uxYdvb3L1Wss=
+
+Name: res/drawable-hdpi/set_pressed.png
+SHA1-Digest: 91TK2TR6FEAkXe7ZBRAebpKYPyA=
+
+Name: res/drawable-hdpi/gui_return.png
+SHA1-Digest: MED5rgMIGgHKoa1wdgGJcaxoEBI=
+
+Name: res/layout/main_list_item.xml
+SHA1-Digest: UGzXeU+5FBui4d4vYfLsjNZ0kyo=
+
+Name: res/drawable-hdpi/dialog_bg_top.9.png
+SHA1-Digest: D5OlAQaytg6vVRbTxawHF7FMty0=
+
+Name: res/layout/page_view_item.xml
+SHA1-Digest: SAIG86RVegTN41FpX85iWx0cY1M=
+
+Name: res/drawable-hdpi/gui_list_pressed.9.png
+SHA1-Digest: Px0kYrysNwhWUk4t1nmtZHq+hSE=
+
+Name: res/drawable-hdpi/gui_add_btn1.9.png
+SHA1-Digest: +f/OILpvLVCYsZ3AuLCJISpQQZw=
+
+Name: res/drawable/clean_selector_en.xml
+SHA1-Digest: e6snSBtb1L6MagO3M7j3Eh3jxp8=
+
+Name: res/drawable-hdpi/gui_folder_locked.png
+SHA1-Digest: QI8muIdIXB1UbCYHIL718tREiD0=
+
+Name: res/drawable/gui_title_editor_selector.xml
+SHA1-Digest: Cwo9dYJgrmAjE0E+z00BKEsdjng=
+
+Name: res/drawable-hdpi/gui_bottom_bg.png
+SHA1-Digest: ArfNnZBdgX+MOcZ8o2Zz6s2jqQM=
+
+Name: res/drawable/applock_list_click_selector.xml
+SHA1-Digest: 8Hliau91wBFqpRjr1WGrfBXVCO4=
+
+Name: res/drawable/media_check_selector.xml
+SHA1-Digest: M4beG4M6YMrS+8AdppV6uLcjtWU=
+
+Name: res/drawable-hdpi/main_list_item_bg.png
+SHA1-Digest: 3agHArNycfvLPsGUNwUwYWiXNYM=
+
+Name: res/drawable/home_page_button_healthcheckup_selector.xml
+SHA1-Digest: qCoI9dEFij3bskovnPLT8IDsaC8=
+
+Name: res/drawable-hdpi/keyboard_bg.9.png
+SHA1-Digest: S9M0TV8aCcEfdPBVcSSUErvMdYs=
+
+Name: res/drawable-hdpi/app_list_item_on.9.png
+SHA1-Digest: X7sKu4+5r8eNRks7MrTImzKsvYo=
+
+Name: res/drawable-hdpi/tv_path_image.png
+SHA1-Digest: jHA1KGPo69DuwO85X2OspMAJX4U=
+
+Name: res/drawable-hdpi/del_key_pressed.png
+SHA1-Digest: RzJJnP/etUXEEbWlo4bYpTwrGQU=
+
+Name: res/drawable/gui_set_more_selector.xml
+SHA1-Digest: C+I0F3WKZ9biIw2nqd9YprRr9sA=
+
+Name: res/drawable-hdpi/logo_bar.png
+SHA1-Digest: 3mf040PDWWSGvM4YdrZdgpnbmaY=
+
+Name: res/drawable-hdpi/gui_checkbox_on.png
+SHA1-Digest: eItWjeSyJHEVcgEpiK5jZtve6As=
+
+Name: res/layout/gui_selectmedia_activity.xml
+SHA1-Digest: //uG0T0Ud+eSAcb8Mhc/QFd2asY=
+
+Name: res/drawable/gui_back.xml
+SHA1-Digest: CtiWB1rkZ3sH0eHaCpd3SpHG5LE=
+
+Name: res/drawable-hdpi/clean_pressed_en.9.png
+SHA1-Digest: BLUro0Cmn1n5MdivlpYpmBfVCWQ=
+
+Name: res/layout/gui_lockedscreen.xml
+SHA1-Digest: VxW8AbkGSjIB7MUBDOfbLGO1wvo=
+
+Name: res/drawable-hdpi/gui_img_load_big.png
+SHA1-Digest: ZmgXT8YpdmS9ibPb17cGKhPBSZY=
+
+Name: res/drawable-hdpi/del_key.png
+SHA1-Digest: b2DFPeY8P6dy6/zh9yeUG0ZUw2g=
+
+Name: res/drawable-hdpi/gui_file_null.png
+SHA1-Digest: xayfrgaK9mc5pdLzl8al850rtzY=
+
+Name: res/drawable-hdpi/gui_video_null_en.png
+SHA1-Digest: EriMLEGlP1RxHX7H5qXfqOzXGak=
+
+Name: res/drawable-hdpi/gui_file_null_en.png
+SHA1-Digest: kmERc4x8dU7Iaul2fY+dHPzTJ2E=
+
+Name: res/drawable-hdpi/gui_big_lock.png
+SHA1-Digest: 6AvD7vkod5kTyPmbOBB9dBQ03eo=
+
+Name: res/drawable-hdpi/encrypt_icon.png
+SHA1-Digest: r9HR74Ht0jW1cAUZ1JQUUZ+cZKY=
+
+Name: res/drawable-hdpi/list_bottom_line.png
+SHA1-Digest: SoAx0Qhv7pG8gP7PjjJ1m3OgV9k=
+
+Name: res/drawable-hdpi/gui_app_unlock.png
+SHA1-Digest: NoxwfCyXrDdPzKyYCATJX217g8I=
+
+Name: res/drawable-hdpi/icon.png
+SHA1-Digest: RmJuSu10Inxj5WaaPx5khBjomhY=
+
+Name: res/drawable-hdpi/gui_file_locked.png
+SHA1-Digest: OPbvRaCyqssbqeOjkbBJdqvnmlY=
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/MANIFEST.MF b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..281c62f
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,543 @@
+Manifest-Version: 1.0
+Created-By: 1.0 (Android SignApk)
+
+Name: res/drawable/gui_listselector.xml
+SHA1-Digest: ahDifv7DwsW//p0DYEMbmrCkYs8=
+
+Name: res/drawable-hdpi/checkbox_off.png
+SHA1-Digest: 9S6mnUeEu/YG5VUsiEoBMNnmAtQ=
+
+Name: res/drawable-hdpi/gui_unlock_pressed.png
+SHA1-Digest: JDVocwUv76mz6qXu/Gvt1HDSvs4=
+
+Name: res/drawable/set.xml
+SHA1-Digest: dlUZS9aP3QmwvTcvd6gBDJjXIn8=
+
+Name: res/drawable-hdpi/dialog_bg_bottom.9.png
+SHA1-Digest: paq/i8dXVPlwgIPNQuWQZ1nwN+8=
+
+Name: res/drawable-hdpi/dialog_center.9.png
+SHA1-Digest: M3+ADTJPH5JuVrTagbLnwLgTzR4=
+
+Name: res/drawable-hdpi/gui_icon_img.png
+SHA1-Digest: we8NKcnWZx9J5la+Jt+nV/sQ6vA=
+
+Name: res/drawable/signbtn_bg.xml
+SHA1-Digest: 02IQTxybUU8c7gP2KykcK2dQsyU=
+
+Name: res/drawable-hdpi/gui_title_bg.png
+SHA1-Digest: ZP77vH+W2mPENgU/Mf7CHxi0d+I=
+
+Name: res/drawable/green_btn.xml
+SHA1-Digest: COjTLFwO0GwL9MDfKDwn6Vsq92g=
+
+Name: res/drawable-hdpi/home_page_healthcheckup_button_normal.9.png
+SHA1-Digest: WDSL3Jaoq1COAT/pOgguRPVZ+mA=
+
+Name: res/anim/movetoleft.xml
+SHA1-Digest: 7J464RGmtJcAM1YfQqsmRrT3To8=
+
+Name: res/layout/gui_normalfile_activity.xml
+SHA1-Digest: ploceolWQzBu1eVB/jIDrZOUpMI=
+
+Name: res/layout/gui_privatefile_activity.xml
+SHA1-Digest: T/Pg7nwAqKpI8TEppfIhz81mB0I=
+
+Name: res/layout/image_browser.xml
+SHA1-Digest: HWur/TE1HUJTwdut99jv5gF7a5M=
+
+Name: res/drawable-hdpi/gui_load_big.png
+SHA1-Digest: LcTTnoqWnuzPhGdshGfQPXF7X64=
+
+Name: res/drawable-hdpi/btn_set_2pwd_click.9.png
+SHA1-Digest: klidO2KzgPOVM2g86thd9/k0sLQ=
+
+Name: res/drawable-hdpi/back_pressed.png
+SHA1-Digest: 3FULK06zRHZP/KbJFKeTqfK4pq0=
+
+Name: res/drawable-hdpi/btn_off.png
+SHA1-Digest: 6ZP5OVQn4fK6zB21CMYautXzXj4=
+
+Name: res/drawable/exit_selector_en.xml
+SHA1-Digest: GGaeUk9u/VnkuDCmcVFJa4vqDHc=
+
+Name: res/drawable/home_page_button_healthcheckup_color_selector.xml
+SHA1-Digest: 8A855mV8jgxh4LfFzKfMNVB4JBU=
+
+Name: res/drawable-hdpi/gui_more.png
+SHA1-Digest: FuBWiOuVwQZQOWzWrz6dbxvU8SY=
+
+Name: res/layout/simple_list_item.xml
+SHA1-Digest: mCy70Mba3bSiw/esV4DjWyLgXYg=
+
+Name: res/drawable-hdpi/exit_normal.9.png
+SHA1-Digest: M1JqO5KExX3SMyb1y6R8/0NA8Qc=
+
+Name: assets/busybox
+SHA1-Digest: 9DEwiXQwuO32zlVPRJxCP5Ws8B0=
+
+Name: res/drawable-hdpi/gui_add_btn.9.png
+SHA1-Digest: Cc8P1Hxz8J4kUREmKWuffsrOE+8=
+
+Name: res/anim/movetoright.xml
+SHA1-Digest: LhvR/9Zp4zr0858q02E+rrhHXiA=
+
+Name: res/drawable-hdpi/exit_pressed.9.png
+SHA1-Digest: hRybvrm3nnp09ofbV+opyVbl81I=
+
+Name: res/drawable/exit_selector.xml
+SHA1-Digest: K42It87mlDaX24pfOxKW9LVrIls=
+
+Name: res/layout/sus_download_notification.xml
+SHA1-Digest: VoqrPyGMXm2UlUg5rKdiKtuaFuw=
+
+Name: res/drawable-hdpi/gui_tab_normal.png
+SHA1-Digest: H0eq1xy73s8KqBOxcoJxYeI8uEc=
+
+Name: res/layout/gui_selectapp_activity.xml
+SHA1-Digest: bGHapWOFcopk8lYglCtVU8aNEFg=
+
+Name: res/drawable-hdpi/key_bg_pressed.png
+SHA1-Digest: vJ1OeYmhZOYiAwgjrgzP4fS5UrE=
+
+Name: res/drawable-hdpi/btn_on.png
+SHA1-Digest: VUaAauzYLblyyrAY75lUrMlihiY=
+
+Name: res/drawable-hdpi/checkbox_on.png
+SHA1-Digest: AVTC/eiZwLSSwR2fu0ibmEs2U50=
+
+Name: res/drawable-hdpi/key_bg_normal.png
+SHA1-Digest: gh9cqM7K90glHA5F1vC9PhF47yY=
+
+Name: res/drawable-hdpi/list.png
+SHA1-Digest: 4LxxI+jQMIkLusB+cgb9gpKfAPI=
+
+Name: res/drawable/shape_line.xml
+SHA1-Digest: O4HvRchKuPPmvdCXpeV74d2kyPw=
+
+Name: res/drawable-hdpi/dialog_title_bg.9.png
+SHA1-Digest: EHDXT/KsLBdKE9ibFyO3Ps7kb0g=
+
+Name: res/drawable/key_selector.xml
+SHA1-Digest: Fumhi+kz6vM+TROO1dazjhqqaHE=
+
+Name: res/drawable-hdpi/btn_skip_2pwd_normal.9.png
+SHA1-Digest: oD/XJXrcxwf0Ob7JcPZBxgPz0ew=
+
+Name: res/layout/sus_updateinfo_dialog.xml
+SHA1-Digest: U0bNaW69MapZuu2fxAUM+YgycF0=
+
+Name: res/drawable-hdpi/sus_notify_bg.png
+SHA1-Digest: Qr1tHwSq76a1uXk9Q5SKMSAQyEo=
+
+Name: res/drawable/gui_mybtn_bottom_selector.xml
+SHA1-Digest: gmYtdWn1ir4yAz/ikIMDh/ulCrs=
+
+Name: res/layout/title.xml
+SHA1-Digest: 9DxN9/bCzgcL7APumeSwcAcKOQ8=
+
+Name: assets/cover.img
+SHA1-Digest: 2EirH2ZzKzrdt5HP+Rzc7WA+Ofc=
+
+Name: res/layout/lockedscreen.xml
+SHA1-Digest: imqtsoY5X9Mns5VccYYZlZhNkto=
+
+Name: res/drawable-hdpi/visit_control_icon.png
+SHA1-Digest: x5yVoiH3JIDRdAfHlwLxJanZ+Sc=
+
+Name: res/drawable-hdpi/title_bg.png
+SHA1-Digest: C5OwQNs3dyr9ZEu5lLoD1wBvVHc=
+
+Name: res/drawable-hdpi/gui_video_null.png
+SHA1-Digest: FjOmo7C/KVLby4KhjwGa5tFpi2k=
+
+Name: resources.arsc
+SHA1-Digest: UOExfXnrWJ2l4fqB2yNdpXBGZfE=
+
+Name: res/layout/title_editor.xml
+SHA1-Digest: 9DxN9/bCzgcL7APumeSwcAcKOQ8=
+
+Name: res/layout/gui_listview_temp_list.xml
+SHA1-Digest: 9RJogGV8Zhg3gBH78a0Yc6BQlec=
+
+Name: res/drawable-hdpi/back_icon.png
+SHA1-Digest: t196ac977rft6iV2tAGGxuhEVGY=
+
+Name: AndroidManifest.xml
+SHA1-Digest: IRTQ6UD+0S1YPoUGyUXB5bSkem8=
+
+Name: res/drawable-hdpi/list_normal.png
+SHA1-Digest: J+ZhEF29HGoqlG0HgETveY2drWU=
+
+Name: res/drawable-hdpi/icon_img.png
+SHA1-Digest: 4NQIsBd5A8PKXyxmcAoajoDIH6Q=
+
+Name: res/drawable-hdpi/gui_list_normal.9.png
+SHA1-Digest: qjlqGUgnm4C+lwFNeq0yCdIJXnc=
+
+Name: res/drawable-hdpi/sus_downloadicon.png
+SHA1-Digest: rgX23yh8629bEyIaG7O5Yv1+0Lo=
+
+Name: res/layout/gui_test.xml
+SHA1-Digest: 18Kmq87ZignCFv1mFeltnJUieEc=
+
+Name: res/drawable/media_uncheck.png
+SHA1-Digest: xKC4Jwrm2R2YXUoHrmCjIWvV0Hs=
+
+Name: res/drawable-hdpi/gui_tab_diverd.png
+SHA1-Digest: lmO3b8IAJ5lvI6fmgGkwGPY6SY4=
+
+Name: res/drawable-hdpi/notify_bg.png
+SHA1-Digest: Qr1tHwSq76a1uXk9Q5SKMSAQyEo=
+
+Name: res/drawable-hdpi/gui_check_normal.png
+SHA1-Digest: RBiDZyhyTsbwpgBZFVmnX0h26rQ=
+
+Name: res/layout/main_list_activity.xml
+SHA1-Digest: Ojt45aeoouZ7NB7yVlsRAL+SKwo=
+
+Name: res/drawable-hdpi/home_page_healthcheckup_button_selected.9.png
+SHA1-Digest: SLuwNO08e0vbwkKyPhIGPFISECM=
+
+Name: res/drawable-hdpi/app_empty.png
+SHA1-Digest: wZ7C146gifQQZR4RHqTsRCok8ik=
+
+Name: res/drawable/trans_edit_text.xml
+SHA1-Digest: 5uPowXteXn/dDVv5HZWfSjrrQig=
+
+Name: res/drawable/gui_checkbox_click_selector.xml
+SHA1-Digest: A6fRh/9lxd9ohKz+i4anHO2Fwk0=
+
+Name: res/drawable-hdpi/clean_normal_en.9.png
+SHA1-Digest: ytZT3AEaFRdw+pjIglQXCw3vLTE=
+
+Name: res/drawable-hdpi/lockscreen_bg.9.png
+SHA1-Digest: l3cpSsyilyjUWSMK5hY+Kwflkfk=
+
+Name: res/drawable-hdpi/restore_icon.png
+SHA1-Digest: b9zzgTS7vxvuAf2AIgmENgtvBT0=
+
+Name: res/layout/gui_imgfolder_activity.xml
+SHA1-Digest: +LjeXGvXO3Jb/+nM54+/53xRv7k=
+
+Name: res/layout/dialog.xml
+SHA1-Digest: bkIq5U/6HGw7ovRt14HjCIkqrH4=
+
+Name: res/drawable-hdpi/edit_button.9.png
+SHA1-Digest: J6y9BMYu+wYoki0tSmQ855pHrhw=
+
+Name: classes.dex
+SHA1-Digest: ker+qqH20X8CJ9CHdtsM3I6Csgw=
+
+Name: res/drawable-hdpi/back_normal.png
+SHA1-Digest: jjkOYKZO7ucUU/uu0VhmneufAbE=
+
+Name: res/layout/setting_item.xml
+SHA1-Digest: clOLj5bvE0ak0LJEbL3EbY2UWnI=
+
+Name: res/drawable-hdpi/exit_normal_en.9.png
+SHA1-Digest: wf5Wx7bGsPUXzpxmXv1/uHlROb0=
+
+Name: res/drawable-hdpi/gui_locked_pressed.png
+SHA1-Digest: xBPZ9UImvKNH7pOqfycrC6lg3q0=
+
+Name: res/drawable/btn_gray.xml
+SHA1-Digest: T11mIu2HFiiaqUbM4oq4ERH/nTI=
+
+Name: res/drawable-hdpi/btn_set_2pwd_normal.9.png
+SHA1-Digest: uhLyOgh0AZpaPq+LDn6sfFcC57w=
+
+Name: res/drawable-hdpi/gui_editor_pressed.png
+SHA1-Digest: yv2RgC4PRQIyXbto5sMO7n1zF6c=
+
+Name: res/drawable-hdpi/gui_load_folder_en.png
+SHA1-Digest: fYQiol8ZcdOMBw17PLEcMDiA25E=
+
+Name: res/drawable-hdpi/gui_video.png
+SHA1-Digest: OgwtTPM+Wy97KnLHoWp2NEtGgDc=
+
+Name: res/layout/gui_priimage_item.xml
+SHA1-Digest: H5XI0kGMZLLmlMRuvBgLOg4Yd0M=
+
+Name: res/drawable-hdpi/clean_pressed.9.png
+SHA1-Digest: xyiIQpEszT7Mob7yciKS7YrFLJY=
+
+Name: res/drawable-hdpi/gui_media_bg.png
+SHA1-Digest: daY9q7UtF5wEt7OS3+gPN9tXF1Q=
+
+Name: res/drawable-hdpi/btn_gray_pressed.9.png
+SHA1-Digest: B4Jvu1hv6GY9kYSu1X+SR2KR1Bg=
+
+Name: res/drawable-hdpi/gui_locked_normal.png
+SHA1-Digest: fscZVMdMmVgv0u+83c9zh4Qk9C0=
+
+Name: res/drawable-hdpi/select_all_icon.png
+SHA1-Digest: C44ry0Yp+xat2AXQRQbp9txOwOI=
+
+Name: res/drawable-hdpi/complete_icon.png
+SHA1-Digest: IolCw3Xuij2UMmhN5hSYIH0biPs=
+
+Name: res/drawable/gui_media_check_selector.xml
+SHA1-Digest: dJhgjYM1Xci/i8W7GWeN1ojLU4o=
+
+Name: res/anim/cycle_7.xml
+SHA1-Digest: xiTRVIYIsab+cNmvZE5kpPp3nHI=
+
+Name: res/drawable-hdpi/edit_icon.png
+SHA1-Digest: 8THL1mUGuuid29Lxqke/Pjfe0Uo=
+
+Name: assets/toolbox
+SHA1-Digest: 1dh/iT8MFr/+y50P1SbRGbNJ+6o=
+
+Name: res/drawable-hdpi/edit_button_complete.9.png
+SHA1-Digest: jREWbAwiKBCYjJw+XaHpbozL9YY=
+
+Name: res/drawable-hdpi/gui_img.png
+SHA1-Digest: ICArWirum3EJHtB0RLvNbtde11M=
+
+Name: res/drawable-hdpi/antispamlog.png
+SHA1-Digest: SiUvg5GqcvTPir8LMqFcubiOyS4=
+
+Name: res/layout/gui_privatemedia_activity.xml
+SHA1-Digest: e88pIDAI8VazBsjk4cvVXeG69Jc=
+
+Name: res/drawable/clean_selector.xml
+SHA1-Digest: 3RZliC+0WrqtYcobHH6PbrVGvOc=
+
+Name: res/drawable-hdpi/gui_img_null_en.png
+SHA1-Digest: Ui9PF7HxhGhrZWNBtzYaxX4DLBo=
+
+Name: res/drawable-hdpi/gui_folder.png
+SHA1-Digest: zNNpRFEBsSzbFPjW9Gxv+jMyA3U=
+
+Name: res/drawable-hdpi/exit_pressed_en.9.png
+SHA1-Digest: w/DPcJzmhmvedLq/WnapGkNScok=
+
+Name: res/drawable-hdpi/signnormal.9.png
+SHA1-Digest: a5VGRWkCEPZ4dvU98ztJyv4Webc=
+
+Name: res/drawable-hdpi/gui_check_pressed.png
+SHA1-Digest: V+EwmoQQDIoLMI9hYYuNNy3P4d8=
+
+Name: res/anim/shake.xml
+SHA1-Digest: EcpK4GLkRJdJj8AgD6vp0sddLxo=
+
+Name: res/drawable-hdpi/icon_file.png
+SHA1-Digest: O4yuGgaubIllR3FG+GdIVKQ7ohk=
+
+Name: res/drawable-hdpi/gui_tab_select.png
+SHA1-Digest: XUYR8pR6kDsMAap9bVhyPhvgPF0=
+
+Name: res/layout/visit_activity.xml
+SHA1-Digest: U9rP8tcb/hAOh4lKA+huJVWxMXk=
+
+Name: res/layout/title_set.xml
+SHA1-Digest: Lhnbd8GfEB1WIRxkS7x1esH8WDU=
+
+Name: res/drawable-hdpi/gui_editor.png
+SHA1-Digest: qgVCFYzqZ/5c/LANi6dK6Lcv4JU=
+
+Name: res/layout/text_item.xml
+SHA1-Digest: CfxvE0WRo0rHPilLKagREReOiYA=
+
+Name: res/drawable-hdpi/signselect.9.png
+SHA1-Digest: n9qYtkvv4kiIWAgcUvP3I7Nwmfs=
+
+Name: res/drawable-hdpi/set_normal.png
+SHA1-Digest: 6kQmMCwExTdj4V9HNOVwVtDuGWo=
+
+Name: res/drawable-hdpi/btn_skip_2pwd_click.9.png
+SHA1-Digest: 0vRBjed8+wPNcfHFgryOtfLvytA=
+
+Name: res/drawable-hdpi/invalid_img.png
+SHA1-Digest: 4NQIsBd5A8PKXyxmcAoajoDIH6Q=
+
+Name: res/drawable-hdpi/gui_unlock_normal.png
+SHA1-Digest: bVBwpNP51+4EcNMsC4PLJfkqITc=
+
+Name: res/drawable-hdpi/list_pressed.png
+SHA1-Digest: tMn9K4C0zTYm8pBnR4pT2otdEwY=
+
+Name: res/drawable-hdpi/gui_icon_video.png
+SHA1-Digest: q3msmbZaxWzPL1RHT3gkqIYV5kI=
+
+Name: res/drawable/scrollbar_handle_vertical.9.png
+SHA1-Digest: q1+bFY+wnzltDQq3F6fVsRGA3Hs=
+
+Name: res/drawable-hdpi/listview_bg.9.png
+SHA1-Digest: Isu1IA4zPXjXnf626rK6BTB+Gwg=
+
+Name: res/layout/input_password_content.xml
+SHA1-Digest: M3McfvC+WbwqoNgBrrE6ZR7Cbdg=
+
+Name: res/drawable-hdpi/gui_editor1.png
+SHA1-Digest: yv2RgC4PRQIyXbto5sMO7n1zF6c=
+
+Name: res/drawable-hdpi/input_bg.9.png
+SHA1-Digest: Jq3HvKA4zIk7EtxxRzgd3RjMzQc=
+
+Name: res/drawable-hdpi/clean_normal.9.png
+SHA1-Digest: tp5drZ3XJYaQC1EN0Y7lPFEDKm0=
+
+Name: res/drawable-hdpi/gui_info_bar.9.png
+SHA1-Digest: IFo8LR+sZ3E05MkoTGqry4e1/Ag=
+
+Name: res/drawable-hdpi/gui_checkbox_off.png
+SHA1-Digest: r5P9uyV2Ec9osUZ3uJlNm+kchCk=
+
+Name: res/drawable-hdpi/gui_file.png
+SHA1-Digest: J6fZy58LHvSDCsheOcBuJfoeKEU=
+
+Name: res/drawable-hdpi/gui_img_load.png
+SHA1-Digest: 42nejCt37xORdpUyRx8FtJp5Brw=
+
+Name: res/drawable/media_checked.png
+SHA1-Digest: 36b5HEGLTBfu3FaRp9YcGQGjFf8=
+
+Name: res/drawable-hdpi/dele_icon.png
+SHA1-Digest: z56ya2I/lbsLns0xOKNSdqDxh38=
+
+Name: res/drawable-hdpi/btn_gray_normal.9.png
+SHA1-Digest: xmolZCqMcSz4onxW/lZofk9X6fQ=
+
+Name: res/drawable-hdpi/gui_app_locked.png
+SHA1-Digest: NqxLvgFJCP4heNOEyENa0Hc8qsY=
+
+Name: res/drawable-hdpi/gui_more_pressed.png
+SHA1-Digest: gsxoNemgI0UzG4rr+HpGN0+iTZM=
+
+Name: res/layout/gui_priimage_folder.xml
+SHA1-Digest: EEPsKQKIS7GA0nLPtAF6hH3fOmM=
+
+Name: res/layout/gui_selectapp_item.xml
+SHA1-Digest: XgzrgTu6Jov6ThpQje6HYWIP0nY=
+
+Name: res/drawable-hdpi/home_page_drawer_splitline_horizontal.png
+SHA1-Digest: i2md9FWHqKUhssxhnYU9Q1+HqH4=
+
+Name: res/drawable-hdpi/icon_video.png
+SHA1-Digest: mZWMGANQLw9F7S6qe4SY11r3jzU=
+
+Name: res/drawable-hdpi/gui_folder_bg.png
+SHA1-Digest: OkRGUjKHATCV30p8N0/pNSKtnUA=
+
+Name: res/drawable-hdpi/gui_img_null.png
+SHA1-Digest: C8dD7ELxnPEZ6XXRl2Bbm2iCU1o=
+
+Name: res/drawable-hdpi/gui_load_folder.png
+SHA1-Digest: LcTTnoqWnuzPhGdshGfQPXF7X64=
+
+Name: res/drawable-hdpi/gui_load_small.png
+SHA1-Digest: 42nejCt37xORdpUyRx8FtJp5Brw=
+
+Name: res/drawable-hdpi/set_pressed.png
+SHA1-Digest: cHu8fjykdqYT5gf/LL8gIdbh8M0=
+
+Name: res/drawable-hdpi/gui_return.png
+SHA1-Digest: ykxuejb+tYdU+mDc712hwob1f1o=
+
+Name: res/layout/main_list_item.xml
+SHA1-Digest: KXdG7lzGNFUeYXcLCFe6rUs9KFc=
+
+Name: res/layout/page_view_item.xml
+SHA1-Digest: /BUAmSZhPeFKHoDXTiPmZSVBQH0=
+
+Name: res/drawable-hdpi/dialog_bg_top.9.png
+SHA1-Digest: zcUJXC8mMUd5yLKVE9j3vAti3pM=
+
+Name: res/drawable/clean_selector_en.xml
+SHA1-Digest: HgRqlU9qdXSBCnaWq3zknEyAvEA=
+
+Name: res/drawable-hdpi/gui_add_btn1.9.png
+SHA1-Digest: n9qYtkvv4kiIWAgcUvP3I7Nwmfs=
+
+Name: res/drawable-hdpi/gui_list_pressed.9.png
+SHA1-Digest: FlJ860NAp4ZQ9dgqrC9nmMsn2gU=
+
+Name: res/drawable/gui_title_editor_selector.xml
+SHA1-Digest: YoVzeujIZ1S7e3bUpAqZN7YkMz8=
+
+Name: res/drawable-hdpi/gui_folder_locked.png
+SHA1-Digest: WYjPbi4DiBTs9GVWR/QYkGnzY+k=
+
+Name: res/drawable-hdpi/gui_bottom_bg.png
+SHA1-Digest: 1tLk/2dDBE1F6HrN8AbbmPQI3VI=
+
+Name: res/drawable/applock_list_click_selector.xml
+SHA1-Digest: VkdE2oJa+on3Cq3K/MpKnNT0L80=
+
+Name: res/drawable/media_check_selector.xml
+SHA1-Digest: GD0mmc4RoP72y1NW1Cg1EHZKm/U=
+
+Name: res/drawable/home_page_button_healthcheckup_selector.xml
+SHA1-Digest: hwif4xUoFHKDjr/62zbhUN1m0PY=
+
+Name: res/drawable-hdpi/main_list_item_bg.png
+SHA1-Digest: LAqjgtb7jlJIbaOIEKwReag5Z5s=
+
+Name: res/drawable-hdpi/keyboard_bg.9.png
+SHA1-Digest: 6J2MAlqcMys69Y2H2kvm7BJmDd8=
+
+Name: res/drawable-hdpi/app_list_item_on.9.png
+SHA1-Digest: +G70JuVnJyp7LdIzVCfQCfpwuzU=
+
+Name: res/drawable-hdpi/tv_path_image.png
+SHA1-Digest: VcMxx46uy1UbGN2l6+OZI9BKpd4=
+
+Name: res/drawable/gui_set_more_selector.xml
+SHA1-Digest: N48o0IV8W0YzLJRmcMAwg4UWFe0=
+
+Name: res/drawable-hdpi/del_key_pressed.png
+SHA1-Digest: 6QLhekYM9BtCYWYZ7BAm6kDGtZc=
+
+Name: res/drawable-hdpi/logo_bar.png
+SHA1-Digest: x/s8DtnMzcTI21A9WUlCmCvUHpk=
+
+Name: res/drawable-hdpi/gui_checkbox_on.png
+SHA1-Digest: wWCJ8YafBGtzoM8h6iTvEjqAyAc=
+
+Name: res/layout/gui_selectmedia_activity.xml
+SHA1-Digest: sO/o7GtqGy8TrIpa4ZHgFnu4kVA=
+
+Name: res/drawable/gui_back.xml
+SHA1-Digest: 3sdKSTcco62ozISDwawSOdimi24=
+
+Name: res/layout/gui_lockedscreen.xml
+SHA1-Digest: hZzl3kJHRUjAhAlslvmJiqL87bw=
+
+Name: res/drawable-hdpi/clean_pressed_en.9.png
+SHA1-Digest: 8xrSJ7A/BgO+CYZ4dZlgYvEJ0jI=
+
+Name: res/drawable-hdpi/del_key.png
+SHA1-Digest: 7QiJQZmK2U5OAjcL7VGoFUrTy50=
+
+Name: res/drawable-hdpi/gui_img_load_big.png
+SHA1-Digest: LcTTnoqWnuzPhGdshGfQPXF7X64=
+
+Name: res/drawable-hdpi/gui_file_null.png
+SHA1-Digest: O4vP+dzpEXkIiLELmKngAFg3vts=
+
+Name: res/drawable-hdpi/list_bottom_line.png
+SHA1-Digest: BSEVJZ9hYAPeHZqpVQo5hufRri8=
+
+Name: res/drawable-hdpi/encrypt_icon.png
+SHA1-Digest: R4jXqJBZnA/MgWdPNylrlpTiqtM=
+
+Name: res/drawable-hdpi/gui_big_lock.png
+SHA1-Digest: UM+sriawwba3j0E3NJy284miN8o=
+
+Name: res/drawable-hdpi/gui_file_null_en.png
+SHA1-Digest: EvOvgcSu/ZpsIWgMxyHFKj0iU8g=
+
+Name: res/drawable-hdpi/gui_video_null_en.png
+SHA1-Digest: hdISE/g+5whqKt+zas+NuM2PbvU=
+
+Name: res/drawable-hdpi/icon.png
+SHA1-Digest: GPYZ3kJKufOK6jBrFup7axBVzd0=
+
+Name: res/drawable-hdpi/gui_app_unlock.png
+SHA1-Digest: zQ3PxTV564rd/oE5rAoeV22XXCk=
+
+Name: res/drawable-hdpi/gui_file_locked.png
+SHA1-Digest: OcYJrK80Xpx56tS8WmcJxuoLOto=
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/assets/busybox b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/assets/busybox
new file mode 100644
index 0000000..4d0e8c1
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/assets/busybox differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/assets/toolbox b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/assets/toolbox
new file mode 100644
index 0000000..d36ddd4
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/assets/toolbox differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/classes.dex b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/classes.dex
new file mode 100644
index 0000000..9874037
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/classes.dex differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/cycle_7.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/cycle_7.xml
new file mode 100644
index 0000000..aac18dd
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/cycle_7.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/movetoleft.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/movetoleft.xml
new file mode 100644
index 0000000..af8752b
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/movetoleft.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/movetoright.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/movetoright.xml
new file mode 100644
index 0000000..dfc4d49
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/movetoright.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/shake.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/shake.xml
new file mode 100644
index 0000000..0bc0e7d
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/anim/shake.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/antispamlog.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/antispamlog.png
new file mode 100644
index 0000000..9bb2cc3
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/antispamlog.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/app_empty.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/app_empty.png
new file mode 100644
index 0000000..1ac2537
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/app_empty.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/app_list_item_on.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/app_list_item_on.png
new file mode 100644
index 0000000..44578aa
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/app_list_item_on.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_icon.png
new file mode 100644
index 0000000..7725678
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_normal.png
new file mode 100644
index 0000000..007129f
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_pressed.png
new file mode 100644
index 0000000..b3b2674
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/back_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_gray_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_gray_normal.png
new file mode 100644
index 0000000..ad5667c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_gray_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_gray_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_gray_pressed.png
new file mode 100644
index 0000000..cf53690
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_gray_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_off.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_off.png
new file mode 100644
index 0000000..e155184
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_off.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_on.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_on.png
new file mode 100644
index 0000000..0dac88c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_on.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_set_2pwd_click.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_set_2pwd_click.png
new file mode 100644
index 0000000..393bbcc
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_set_2pwd_click.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_set_2pwd_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_set_2pwd_normal.png
new file mode 100644
index 0000000..a8e4afc
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_set_2pwd_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_skip_2pwd_click.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_skip_2pwd_click.png
new file mode 100644
index 0000000..0f542ed
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_skip_2pwd_click.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_skip_2pwd_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_skip_2pwd_normal.png
new file mode 100644
index 0000000..17dacdd
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/btn_skip_2pwd_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/checkbox_off.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/checkbox_off.png
new file mode 100644
index 0000000..793ea6d
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/checkbox_off.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/checkbox_on.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/checkbox_on.png
new file mode 100644
index 0000000..89744a7
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/checkbox_on.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_normal.png
new file mode 100644
index 0000000..3fdbf2c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_normal_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_normal_en.png
new file mode 100644
index 0000000..55ab299
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_normal_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_pressed.png
new file mode 100644
index 0000000..6730759
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_pressed_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_pressed_en.png
new file mode 100644
index 0000000..960c0ed
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/clean_pressed_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/complete_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/complete_icon.png
new file mode 100644
index 0000000..3b6d3a2
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/complete_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/del_key.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/del_key.png
new file mode 100644
index 0000000..99bf74f
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/del_key.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/del_key_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/del_key_pressed.png
new file mode 100644
index 0000000..1605b2f
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/del_key_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dele_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dele_icon.png
new file mode 100644
index 0000000..f96f998
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dele_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_bg_bottom.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_bg_bottom.png
new file mode 100644
index 0000000..1b895bb
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_bg_bottom.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_bg_top.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_bg_top.png
new file mode 100644
index 0000000..bc809cf
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_bg_top.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_center.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_center.png
new file mode 100644
index 0000000..ea0677c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_center.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_title_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_title_bg.png
new file mode 100644
index 0000000..c845a85
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/dialog_title_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_button.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_button.png
new file mode 100644
index 0000000..2881ed2
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_button.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_button_complete.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_button_complete.png
new file mode 100644
index 0000000..d9cbe00
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_button_complete.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_icon.png
new file mode 100644
index 0000000..be0d6fa
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/edit_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/encrypt_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/encrypt_icon.png
new file mode 100644
index 0000000..a20c337
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/encrypt_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_normal.png
new file mode 100644
index 0000000..0b64a48
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_normal_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_normal_en.png
new file mode 100644
index 0000000..c29bb3c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_normal_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_pressed.png
new file mode 100644
index 0000000..61d93ae
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_pressed_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_pressed_en.png
new file mode 100644
index 0000000..390bf26
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/exit_pressed_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_add_btn.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_add_btn.png
new file mode 100644
index 0000000..c8f2464
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_add_btn.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_add_btn1.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_add_btn1.png
new file mode 100644
index 0000000..c01443c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_add_btn1.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_app_locked.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_app_locked.png
new file mode 100644
index 0000000..dcaab51
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_app_locked.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_app_unlock.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_app_unlock.png
new file mode 100644
index 0000000..4682848
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_app_unlock.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_big_lock.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_big_lock.png
new file mode 100644
index 0000000..79fe9a6
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_big_lock.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_bottom_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_bottom_bg.png
new file mode 100644
index 0000000..1d3091c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_bottom_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_check_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_check_normal.png
new file mode 100644
index 0000000..c0ddccb
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_check_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_check_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_check_pressed.png
new file mode 100644
index 0000000..da7caac
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_check_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_checkbox_off.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_checkbox_off.png
new file mode 100644
index 0000000..91b2097
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_checkbox_off.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_checkbox_on.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_checkbox_on.png
new file mode 100644
index 0000000..a013d68
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_checkbox_on.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor.png
new file mode 100644
index 0000000..091e8d6
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor1.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor1.png
new file mode 100644
index 0000000..f463c64
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor1.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor_pressed.png
new file mode 100644
index 0000000..f463c64
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_editor_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file.png
new file mode 100644
index 0000000..62f0e2b
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_locked.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_locked.png
new file mode 100644
index 0000000..266d583
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_locked.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_null.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_null.png
new file mode 100644
index 0000000..c88e902
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_null.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_null_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_null_en.png
new file mode 100644
index 0000000..a1dc52e
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_file_null_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder.png
new file mode 100644
index 0000000..05ae707
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder_bg.png
new file mode 100644
index 0000000..91d0f3b
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder_locked.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder_locked.png
new file mode 100644
index 0000000..4fe720f
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_folder_locked.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_icon_img.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_icon_img.png
new file mode 100644
index 0000000..9877a5b
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_icon_img.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_icon_video.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_icon_video.png
new file mode 100644
index 0000000..34e610d
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_icon_video.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img.png
new file mode 100644
index 0000000..3ef2883
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_load.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_load.png
new file mode 100644
index 0000000..6e2ada1
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_load.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_load_big.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_load_big.png
new file mode 100644
index 0000000..4fd506e
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_load_big.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_null.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_null.png
new file mode 100644
index 0000000..a2a7685
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_null.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_null_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_null_en.png
new file mode 100644
index 0000000..872ada4
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_img_null_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_info_bar.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_info_bar.png
new file mode 100644
index 0000000..0188423
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_info_bar.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_list_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_list_normal.png
new file mode 100644
index 0000000..bf645da
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_list_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_list_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_list_pressed.png
new file mode 100644
index 0000000..538cd01
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_list_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_big.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_big.png
new file mode 100644
index 0000000..4fd506e
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_big.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_folder.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_folder.png
new file mode 100644
index 0000000..4fd506e
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_folder.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_folder_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_folder_en.png
new file mode 100644
index 0000000..e189a53
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_folder_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_small.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_small.png
new file mode 100644
index 0000000..6e2ada1
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_load_small.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_locked_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_locked_normal.png
new file mode 100644
index 0000000..227a151
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_locked_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_locked_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_locked_pressed.png
new file mode 100644
index 0000000..54a4379
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_locked_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_media_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_media_bg.png
new file mode 100644
index 0000000..cf2ab9c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_media_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_more.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_more.png
new file mode 100644
index 0000000..119c9f0
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_more.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_more_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_more_pressed.png
new file mode 100644
index 0000000..12cc360
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_more_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_return.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_return.png
new file mode 100644
index 0000000..331951e
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_return.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_diverd.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_diverd.png
new file mode 100644
index 0000000..e768e5b
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_diverd.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_normal.png
new file mode 100644
index 0000000..80a14d3
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_select.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_select.png
new file mode 100644
index 0000000..e03985d
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_tab_select.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_title_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_title_bg.png
new file mode 100644
index 0000000..463aa69
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_title_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_unlock_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_unlock_normal.png
new file mode 100644
index 0000000..771e9a4
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_unlock_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_unlock_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_unlock_pressed.png
new file mode 100644
index 0000000..968e0ab
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_unlock_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video.png
new file mode 100644
index 0000000..6ad7727
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video_null.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video_null.png
new file mode 100644
index 0000000..3d5d02b
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video_null.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video_null_en.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video_null_en.png
new file mode 100644
index 0000000..fab07d7
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/gui_video_null_en.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_drawer_splitline_horizontal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_drawer_splitline_horizontal.png
new file mode 100644
index 0000000..826efc3
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_drawer_splitline_horizontal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_healthcheckup_button_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_healthcheckup_button_normal.png
new file mode 100644
index 0000000..c9913a8
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_healthcheckup_button_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_healthcheckup_button_selected.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_healthcheckup_button_selected.png
new file mode 100644
index 0000000..5a7eb15
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/home_page_healthcheckup_button_selected.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon.png
new file mode 100644
index 0000000..841af74
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_file.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_file.png
new file mode 100644
index 0000000..a8bb358
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_file.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_img.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_img.png
new file mode 100644
index 0000000..24ecce2
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_img.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_video.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_video.png
new file mode 100644
index 0000000..2793d6c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/icon_video.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/input_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/input_bg.png
new file mode 100644
index 0000000..c11f1b9
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/input_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/invalid_img.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/invalid_img.png
new file mode 100644
index 0000000..24ecce2
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/invalid_img.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/key_bg_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/key_bg_normal.png
new file mode 100644
index 0000000..721e575
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/key_bg_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/key_bg_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/key_bg_pressed.png
new file mode 100644
index 0000000..369dec6
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/key_bg_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/keyboard_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/keyboard_bg.png
new file mode 100644
index 0000000..183d818
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/keyboard_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list.png
new file mode 100644
index 0000000..ca05b1b
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_bottom_line.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_bottom_line.png
new file mode 100644
index 0000000..f5e5519
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_bottom_line.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_normal.png
new file mode 100644
index 0000000..b1cf60a
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_pressed.png
new file mode 100644
index 0000000..2ad25bf
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/list_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/listview_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/listview_bg.png
new file mode 100644
index 0000000..d00f8bb
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/listview_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/lockscreen_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/lockscreen_bg.png
new file mode 100644
index 0000000..2de92f4
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/lockscreen_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/logo_bar.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/logo_bar.png
new file mode 100644
index 0000000..832dcef
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/logo_bar.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/main_list_item_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/main_list_item_bg.png
new file mode 100644
index 0000000..7fc77eb
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/main_list_item_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/notify_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/notify_bg.png
new file mode 100644
index 0000000..64346d1
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/notify_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/restore_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/restore_icon.png
new file mode 100644
index 0000000..7e620a3
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/restore_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/select_all_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/select_all_icon.png
new file mode 100644
index 0000000..9e11e82
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/select_all_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/set_normal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/set_normal.png
new file mode 100644
index 0000000..a80c1bc
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/set_normal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/set_pressed.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/set_pressed.png
new file mode 100644
index 0000000..e65dbe8
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/set_pressed.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/signnormal.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/signnormal.png
new file mode 100644
index 0000000..c0ce334
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/signnormal.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/signselect.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/signselect.png
new file mode 100644
index 0000000..c01443c
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/signselect.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/sus_downloadicon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/sus_downloadicon.png
new file mode 100644
index 0000000..6d3096d
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/sus_downloadicon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/sus_notify_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/sus_notify_bg.png
new file mode 100644
index 0000000..64346d1
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/sus_notify_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/title_bg.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/title_bg.png
new file mode 100644
index 0000000..81dc3a4
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/title_bg.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/tv_path_image.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/tv_path_image.png
new file mode 100644
index 0000000..628bbd4
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/tv_path_image.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/visit_control_icon.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/visit_control_icon.png
new file mode 100644
index 0000000..3c61f5a
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable-hdpi-v4/visit_control_icon.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/applock_list_click_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/applock_list_click_selector.xml
new file mode 100644
index 0000000..e804ee8
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/applock_list_click_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/btn_gray.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/btn_gray.xml
new file mode 100644
index 0000000..4298f99
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/btn_gray.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/clean_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/clean_selector.xml
new file mode 100644
index 0000000..1585db6
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/clean_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/clean_selector_en.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/clean_selector_en.xml
new file mode 100644
index 0000000..965707f
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/clean_selector_en.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/exit_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/exit_selector.xml
new file mode 100644
index 0000000..9f3be0d
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/exit_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/exit_selector_en.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/exit_selector_en.xml
new file mode 100644
index 0000000..e1e6c0d
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/exit_selector_en.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/green_btn.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/green_btn.xml
new file mode 100644
index 0000000..529c109
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/green_btn.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_back.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_back.xml
new file mode 100644
index 0000000..c28e09f
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_back.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_checkbox_click_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_checkbox_click_selector.xml
new file mode 100644
index 0000000..f324461
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_checkbox_click_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_listselector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_listselector.xml
new file mode 100644
index 0000000..f0af138
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_listselector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_media_check_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_media_check_selector.xml
new file mode 100644
index 0000000..a9c7bc2
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_media_check_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_mybtn_bottom_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_mybtn_bottom_selector.xml
new file mode 100644
index 0000000..3c68eaf
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_mybtn_bottom_selector.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_set_more_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_set_more_selector.xml
new file mode 100644
index 0000000..398a620
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_set_more_selector.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_title_editor_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_title_editor_selector.xml
new file mode 100644
index 0000000..7d9dd3d
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/gui_title_editor_selector.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/home_page_button_healthcheckup_color_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/home_page_button_healthcheckup_color_selector.xml
new file mode 100644
index 0000000..3cb64c4
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/home_page_button_healthcheckup_color_selector.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/home_page_button_healthcheckup_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/home_page_button_healthcheckup_selector.xml
new file mode 100644
index 0000000..4651936
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/home_page_button_healthcheckup_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/key_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/key_selector.xml
new file mode 100644
index 0000000..0ff0b97
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/key_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_check_selector.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_check_selector.xml
new file mode 100644
index 0000000..7498e94
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_check_selector.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_checked.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_checked.png
new file mode 100644
index 0000000..8339cf7
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_checked.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_uncheck.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_uncheck.png
new file mode 100644
index 0000000..89ca68d
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/media_uncheck.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/scrollbar_handle_vertical.png b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/scrollbar_handle_vertical.png
new file mode 100644
index 0000000..f10026e
Binary files /dev/null and b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/scrollbar_handle_vertical.png differ
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/set.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/set.xml
new file mode 100644
index 0000000..c43d06a
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/set.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/shape_line.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/shape_line.xml
new file mode 100644
index 0000000..015359f
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/shape_line.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/signbtn_bg.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/signbtn_bg.xml
new file mode 100644
index 0000000..b68f0be
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/signbtn_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/trans_edit_text.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/trans_edit_text.xml
new file mode 100644
index 0000000..8187ed1
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/drawable/trans_edit_text.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/dialog.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/dialog.xml
new file mode 100644
index 0000000..f89f34c
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/dialog.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_imgfolder_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_imgfolder_activity.xml
new file mode 100644
index 0000000..c241a9e
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_imgfolder_activity.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_listview_temp_list.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_listview_temp_list.xml
new file mode 100644
index 0000000..5bdccc7
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_listview_temp_list.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_lockedscreen.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_lockedscreen.xml
new file mode 100644
index 0000000..98ba807
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_lockedscreen.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_normalfile_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_normalfile_activity.xml
new file mode 100644
index 0000000..cadc5db
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_normalfile_activity.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_priimage_folder.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_priimage_folder.xml
new file mode 100644
index 0000000..7917ce3
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_priimage_folder.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_priimage_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_priimage_item.xml
new file mode 100644
index 0000000..72b1ba8
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_priimage_item.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_privatefile_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_privatefile_activity.xml
new file mode 100644
index 0000000..b93ad21
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_privatefile_activity.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_privatemedia_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_privatemedia_activity.xml
new file mode 100644
index 0000000..664c301
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_privatemedia_activity.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectapp_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectapp_activity.xml
new file mode 100644
index 0000000..7ff9664
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectapp_activity.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectapp_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectapp_item.xml
new file mode 100644
index 0000000..8c63a68
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectapp_item.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectmedia_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectmedia_activity.xml
new file mode 100644
index 0000000..baa29d8
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_selectmedia_activity.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_test.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_test.xml
new file mode 100644
index 0000000..22ba6f0
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/gui_test.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/image_browser.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/image_browser.xml
new file mode 100644
index 0000000..89b291e
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/image_browser.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/input_password_content.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/input_password_content.xml
new file mode 100644
index 0000000..a70fd70
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/input_password_content.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/lockedscreen.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/lockedscreen.xml
new file mode 100644
index 0000000..57c4a44
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/lockedscreen.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/main_list_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/main_list_activity.xml
new file mode 100644
index 0000000..9a6d94c
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/main_list_activity.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/main_list_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/main_list_item.xml
new file mode 100644
index 0000000..f6738cc
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/main_list_item.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/page_view_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/page_view_item.xml
new file mode 100644
index 0000000..9e93683
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/page_view_item.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/setting_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/setting_item.xml
new file mode 100644
index 0000000..1733864
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/setting_item.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/simple_list_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/simple_list_item.xml
new file mode 100644
index 0000000..3d39cb9
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/simple_list_item.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/sus_download_notification.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/sus_download_notification.xml
new file mode 100644
index 0000000..6e4e5e7
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/sus_download_notification.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/sus_updateinfo_dialog.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/sus_updateinfo_dialog.xml
new file mode 100644
index 0000000..c396375
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/sus_updateinfo_dialog.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/text_item.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/text_item.xml
new file mode 100644
index 0000000..710167e
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/text_item.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title.xml
new file mode 100644
index 0000000..297e8cf
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title_editor.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title_editor.xml
new file mode 100644
index 0000000..297e8cf
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title_editor.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title_set.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title_set.xml
new file mode 100644
index 0000000..5541f7d
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/title_set.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/visit_activity.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/visit_activity.xml
new file mode 100644
index 0000000..664ea72
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/layout/visit_activity.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-hdpi-v4/drawables.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-hdpi-v4/drawables.xml
new file mode 100644
index 0000000..045e125
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-hdpi-v4/drawables.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-zh-rCN/strings.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..9baccab
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-zh-rCN/strings.xml
@@ -0,0 +1,180 @@
+
+
+ 文件保险箱
+ 私密保险箱
+ 新版本下载成功,请确认安装!
+ 图片
+ 视频
+ 文件
+ 退出
+ sdcard未挂载或空间不足,请检查后使用。
+ Sd卡存储空间不足,请整理sd卡存储空间后重新加密。
+ 原路径存在同名文件,无法还原,请重命名或删除原路径文件。
+ 被还原至/sdcard/lesaferecovery
+ 系统按键已被锁定,退回桌面请按退出键。
+ 被加密重新命名为
+ 乐安全服务异常,请重启手机。
+ 请输入6位乐安全密码
+ 输入密码
+ 输入密码为空,请重新输入
+ 密码错误,请重新输入
+ 当前已经是第一张了
+ 当前已经是最后一张了
+ 无法打开该图片
+ 添加图片
+ 编 辑
+ 当前没有图片
+ 当前没有视频
+ 点击进入文件夹选择图片
+ 点击进入文件夹选择视频
+ 勾选需要移入保险箱的图片
+ 勾选需要移入保险箱的视频
+ 勾选需要移入保险箱的文件
+ 已加密保护的图片(
+ 已加密保护的视频(
+ 已加密保护的文件(
+ )
+ (
+ 未加锁
+ 已加锁
+ 乐安全版本过低,已解锁所有应用。
+ 访问限制
+ 开启访问限制
+ 停用访问限制
+ 隐藏个人信息
+ 锁定敏感应用(
+ 隐藏联系人、通话及短信记录
+ 隐私再无后顾之忧
+ 点此添加隐私资料
+ 请选择要加密的类型
+ 程序锁
+ 添加程序
+ 添加私密图片
+ 添加视频
+ 添加私密视频
+ 添加私密视频(空)
+ 未检测到SD卡上有视频
+ 添加文件及文件夹
+ 添加文件
+ 添加账号信息
+ 私密媒体文件
+ 全选
+ 还原
+ 销毁
+ 编辑
+ 销毁
+ 返回
+ 取消
+ 原始路径
+ 请选择存储卡路径:
+ 密码本
+ 占位图
+ /
+ 5/16
+ 添加私密程序
+ 已锁定应用
+ 请选择图片所在位置
+ 自动扫描图片
+ 手动选择图片
+ 请选择视频所在位置
+ 自动扫描视频
+ 手动选择视频
+ 添加私密图片
+ 添加私密图片(空)
+ 未检测到SD卡上有图片
+ 全选
+ 取消全选
+ 加密
+ 常规文件
+ 返回上一级
+ 大小:
+ 文件夹
+ 私密图片
+ 私密视频
+ 私密文件
+ 未知文件
+ 请选择:
+ 成功提示:
+ 已成功加密
+ 个图片,私密图片
+ 个视频,私密视频
+ 个文件,私密文件
+ 后续只能进入私密空间查看,请放心使用。
+ 完成
+ 继续添加
+ 请耐心等待,不要退出
+ 退出提示
+ 您确定退出保险箱吗?
+ 您确定退出程序锁吗?
+ 确定
+ 请输入密码
+ 密码错误
+ 销毁提示
+ 您确定销毁选定文件吗?
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 0
+
+ 重新输入
+ 点击以选中
+ 成功解密并还原
+ 个文件
+ 个图片
+ 个视频文件
+ 系统应用
+ 个人应用
+ 程序加锁失败
+ 打开
+ 解除锁定
+ 已加入保护程序列表
+ 已将应用成功解锁
+ 移除被锁定应用失败!
+ 正在扫描sd卡上的图片并加载...
+ 正在扫描sd卡上的视频并加载...
+ 密码输入不正确
+ 设置
+ 密码设置
+ 程序相关
+ 继续
+ 重试
+ 请设置您的保险箱密码
+ 程序开关
+ 更改密码
+ 设置安全问题
+ 设置伪密码
+ 切换到无图标版
+ 意见反馈
+ 版本信息
+ 两次密码不一致,请重新输入
+ 重设密码成功!
+ 文件保险箱密码设置
+ 注意:您输入的密码不够6位,请重新输入!
+ 乐安全保护中
+ 被乐安全锁定
+ 该应用被乐安全锁定
+ 请输入密码
+ 解锁
+ 输入6位密码
+ 再次输入密码
+ 乐安全密码是用于进入“手机防盗、访客/儿童模式”的唯一密码,请牢记
+ 可在 超级工具/密码设置/设置乐安全密码 里进行修改
+ 确定
+ 开启保险箱密码
+ 开启卸载自保护
+ 程序相关开关
+ 正在执行
+ 正在开启
+ 正在关闭
+ 已锁定
+ 个应用
+ 当前没有锁定任何应用
+ 警告
+ 当前任务正在进行,确认要终止吗?
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-zh-rTW/strings.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..d4a9087
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values-zh-rTW/strings.xml
@@ -0,0 +1,180 @@
+
+
+ 文件保險箱
+ 私密保險箱
+ 新版本下載成功,請確認安裝!
+ 圖片
+ 視頻
+ 文件
+ 退出
+ sdcard未掛載或空間不足,請檢查後使用。
+ Sd卡存儲空間不足,請整理sd卡存儲空間後重新加密。
+ 原路徑存在同名檔,無法還原,請重命名或刪除原路徑檔。
+ 被還原至/sdcard/lesaferecovery
+ 系統按鍵已被鎖定,退回桌面請按逸出鍵。
+ 被加密重新命名為
+ 樂安全服務異常,請重啟手機。
+ 請輸入6位元樂安全密碼
+ 輸入密碼
+ 輸入密碼為空,請重新輸入
+ 密碼錯誤,請重新輸入
+ 當前已經是第一張了
+ 當前已經是最後一張了
+ 無法打開該圖片
+ 添加圖片
+ 編 輯
+ 當前沒有圖片
+ 當前沒有視頻
+ 點擊進入檔夾選擇圖片
+ 點擊進入檔夾選擇視頻
+ 勾選需要移入保險箱的圖片
+ 勾選需要移入保險箱的視頻
+ 勾選需要移入保險箱的檔
+ 已加密保護的圖片(
+ 已加密保護的視頻(
+ 已加密保護的檔(
+ )
+ (
+ 未加鎖
+ 已加鎖
+ 樂安全版本過低,已解鎖所有應用。
+ 訪問限制
+ 開啟訪問限制
+ 停用訪問限制
+ 隱藏個人資訊
+ 鎖定敏感應用(
+ 隱藏聯繫人、通話及短信記錄
+ 隱私再無後顧之憂
+ 點此添加隱私資料
+ 請選擇要加密的類型
+ 程式鎖
+ 添加程式
+ 添加私密圖片
+ 添加視頻
+ 添加私密視頻
+ 添加私密視頻(空)
+ 未檢測到SD卡上有視頻
+ 添加文件及文件夾
+ 添加文件
+ 添加帳號信息
+ 私密媒體文件
+ 全選
+ 還原
+ 銷毀
+ 編輯
+ 銷毀
+ 返回
+ 取消
+ 原始路徑
+ 請選擇存儲卡路徑:
+ 密碼本
+ 占點陣圖
+ /
+ 5/16
+ 添加私密程式
+ 已鎖定應用
+ 請選擇圖片所在位置
+ 自動掃描圖片
+ 手動選擇圖片
+ 請選擇視頻所在位置
+ 自動掃描視頻
+ 手動選擇視頻
+ 添加私密圖片
+ 添加私密圖片(空)
+ 未檢測到SD卡上有圖片
+ 全選
+ 取消全選
+ 加密
+ 常規檔
+ 返回上一級
+ 大小:
+ 文件夾
+ 私密圖片
+ 私密視頻
+ 私密文件
+ 未知文件
+ 請選擇:
+ 成功提示:
+ 已成功加密
+ 個圖片,私密圖片
+ 個視頻,私密視頻
+ 個文件,私密文件
+ 後續只能進入私密空間查看,請放心使用。
+ 完成
+ 繼續添加
+ 請耐心等待,不要退出
+ 退出提示
+ 您確定退出保險箱嗎?
+ 您確定退出程式鎖嗎?
+ 確定
+ 請輸入密碼
+ 密碼錯誤
+ 銷毀提示
+ 您確定銷毀選定檔嗎?
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 0
+
+ 重新輸入
+ 點擊以選中
+ 成功解密並還原
+ 個文件
+ 個圖片
+ 個視頻檔
+ 系統應用
+ 個人應用
+ 程式加鎖失敗
+ 打開
+ 解除鎖定
+ 已加入保護程式列表
+ 已將應用成功解鎖
+ 移除被鎖定應用失敗!
+ 正在掃描sd卡上的圖片並載入...
+ 正在掃描sd卡上的視頻並載入...
+ 密碼輸入不正確
+ 設置
+ 密碼設置
+ 程式相關
+ 繼續
+ 重試
+ 請設置您的保險箱密碼
+ 程式開關
+ 更改密碼
+ 設置安全問題
+ 設置偽密碼
+ 切換到無圖示版
+ 意見回饋
+ 版本資訊
+ 兩次密碼不一致,請重新輸入
+ 重設密碼成功!
+ 檔保險箱密碼設置
+ 注意:您輸入的密碼不夠6位元,請重新輸入!
+ 樂安全保護中
+ 被樂安全鎖定
+ 該應用被樂安全鎖定
+ 請輸入密碼
+ 解鎖
+ 輸入6位元密碼
+ 再次輸入密碼
+ 樂安全密碼是用於進入“手機防盜、訪客/兒童模式”的唯一密碼,請牢記
+ 可在 超級工具/密碼設置/設置樂安全密碼 裏進行修改
+ 確定
+ 開啟保險箱密碼
+ 開啟卸載自保護
+ 程式相關開關
+ 正在執行
+ 正在開啟
+ 正在關閉
+ 已鎖定
+ 個應用
+ 當前沒有鎖定任何應用
+ 警告
+ 當前任務正在進行,確認要終止嗎?
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/colors.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/colors.xml
new file mode 100644
index 0000000..4a640fe
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/colors.xml
@@ -0,0 +1,47 @@
+
+
+ #00000000
+ #ff000000
+ #ff123456
+ #1188c6
+ #4a4a4a
+ #ff58616d
+ #ff9fd524
+ #ff888888
+ #80000000
+ #a0000000
+ #ff081c52
+ #ff339900
+ #fffb0000
+ #ffff7800
+ #fff7ba00
+ #ff53c400
+ #ff0bb7fe
+ #ffeeeeee
+ #ffe6e6e6
+ #ffededed
+ #ff9c9c9c
+ #ff4b4b4b
+ #00000000
+ #2b2b2b
+ #454545
+ #7a7a7a
+ #606060
+ #878787
+ #29b1ef
+ #ffffff
+ #ff6600
+ #888888
+ #4a4a4a
+ #ee3b3b
+ #7ccd7c
+ #22b800
+ #f0a70a
+ #ffffffff
+ #ffffe9a1
+ #ffffe9a1
+ #ffecf1f4
+ #ffffe9a1
+ #ffdee2e6
+ #ff103667
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/drawables.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/drawables.xml
new file mode 100644
index 0000000..2fc3c70
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/drawables.xml
@@ -0,0 +1,7 @@
+
+
+ #696969
+ #ffd700
+ #050505
+ #ee3b3b
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/public.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/public.xml
new file mode 100644
index 0000000..51cba3f
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/public.xml
@@ -0,0 +1,547 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/strings.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/strings.xml
new file mode 100644
index 0000000..08e76ae
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/strings.xml
@@ -0,0 +1,195 @@
+
+
+ Safe Box
+ Private Safe Box
+ The new version is downloaded,please confirm and install.
+ Images
+ Videos
+ Files
+ quit
+ No sdcard or space is not enough, please check first.
+ Sdcard\'s space is not enough, please organize sdcard before encrypting.
+ Restore failed. There is duplicate file name in original path. Please rename or delete the file in original path.
+ file is restored to /sdcard/lesaferecovery
+ Functional Key is locked, please click Home key to quit.
+ is encrypted as
+ Safecenter\'s service is not running correctly. Please reboot phone.
+ Please input safecenter\'s password (6 numbers)
+ input password
+ password inputed is empty, please input again.
+ password inputed is error, please input again.
+ It\'s the first image already.
+ It\'s the last image already.
+ Invalid image.
+ Add Images
+ Edit
+ No Image
+ No Video
+ click and enter image folder
+ click and enter video folder
+ check boxes to select images
+ check boxes to select videos
+ check boxes to select files
+ encrypted images(
+ encrypted videos(
+ encrypted files(
+ )
+ (
+ Unlocked
+ Locked
+ Safecenter need update, safebox has unlocked all applicaitons.
+ Access Restrict
+ start access restrict
+ stop access restrict
+ hide private information
+ lock private applications(
+ hide phone book, phone call and sms record.
+ no troubles to private information
+ click to add private data
+ choose encryption type
+ Application Lock
+ Add applications
+ Add Private Images
+ add videos
+ Add Private Videos
+ Add Private Videos(No videos)
+ no video in sdcard
+ Add Files or Folders
+ add files
+ Add account information
+ Private Media Files
+ add all
+ restore
+ delete
+ Edit
+ delete
+ back
+ cancel
+ original path
+ please choose storage:
+ password
+ holdplace
+ /
+ 5/16
+ Add Private Applications
+ locked applications
+ please choose images\' location
+ Auto scan images
+ Select images manually
+ please choose videos\' location
+ Auto scan videos
+ Select videos manually
+ Add Private Images
+ Add Private Images(No image)
+ no image in sdcard
+ add all
+ cancel
+ encrypt
+ All Files
+ back
+ Size:
+ Folder
+ Private Images
+ Private Videos
+ Private Files
+ Unknown file
+ Please choose:
+ Success prompt:
+ Encrypt
+ images successfully. Private images
+ videos successfully. Private videos
+ files successfully. Private files
+ can only be checked in private space.
+ OK
+ continue
+ Please wait to finish.
+ quit prompt
+ Do you confirm to quit safebox?
+ Do you confirm to quit application box?
+ confirm
+ please input password
+ password error
+ Deleting warnning:
+ Are you sure to delete?
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 0
+
+ input again
+ click to choose
+ restore
+ files successfully
+ images successfully
+ videos successfully
+ System Application
+ Other Application
+ Lock application failed
+ open
+ is unlocked.
+ is added to protect list.
+ unlock application successfully
+ unlock application failed
+ Scanning images...
+ Scanning videos...
+ password incorrect
+ setting
+ password setting
+ application information
+ continue
+ try again
+ please set password for safebox
+ application switch
+ change password
+ set security question
+ set fake password
+ switch to no-icon version
+ feedback
+ version
+ Passwords do not match, please input again.
+ Reset password successfully!
+ Safebox password setting
+ Note:The password you entered is less than 6 numbers, please input again!
+ Safecenter guarding
+ is being protected.
+ The application is locked by Safecenter
+ Input password
+ unlock
+ input 6 number
+ input password again
+ 乐安全密码是用于进入“手机防盗、访客/儿童模式”的唯一密码,请牢记
+ 可在 超级工具/密码设置/设置乐安全密码 里进行修改
+ ok
+ 开启保险箱密码
+ 开启卸载自保护
+ 程序相关开关
+ executing...
+ Mode is starting...
+ Mode is stopping...
+ is locked
+ application
+ No locked application
+ warnning
+ Task is running. Are you sure to terminate it?
+ 不再提醒
+ 检测到新版本!
+ 版本名:
+ 版本大小:
+ 若流量有限,建议用WLAN下载!
+ 更新
+ 取消
+ 乐安全保险箱正在下载..
+ 已经是最新版本!
+ 已经是最新版本!
+ 下载完成,请安装。
+ 下载正在进行..
+ 当前网络不可用
+ 更新失败,请重试!
+ 0%
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/styles.xml b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/styles.xml
new file mode 100644
index 0000000..f7bcb23
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/resources/res/values/styles.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/annotation/SuppressLint.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/annotation/SuppressLint.java
new file mode 100644
index 0000000..fa6ec45
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/annotation/SuppressLint.java
@@ -0,0 +1,12 @@
+package android.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE})
+@Retention(RetentionPolicy.CLASS)
+/* loaded from: classes.dex */
+public @interface SuppressLint {
+ String[] value();
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/annotation/TargetApi.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/annotation/TargetApi.java
new file mode 100644
index 0000000..7067783
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/annotation/TargetApi.java
@@ -0,0 +1,12 @@
+package android.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR})
+@Retention(RetentionPolicy.CLASS)
+/* loaded from: classes.dex */
+public @interface TargetApi {
+ int value();
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java
new file mode 100644
index 0000000..7481dbe
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.java
@@ -0,0 +1,156 @@
+package android.support.v4.accessibilityservice;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.content.pm.ResolveInfo;
+import android.os.Build;
+/* loaded from: classes.dex */
+public class AccessibilityServiceInfoCompat {
+ public static final int FEEDBACK_ALL_MASK = -1;
+ private static final AccessibilityServiceInfoVersionImpl IMPL;
+
+ /* loaded from: classes.dex */
+ interface AccessibilityServiceInfoVersionImpl {
+ boolean getCanRetrieveWindowContent(AccessibilityServiceInfo accessibilityServiceInfo);
+
+ String getDescription(AccessibilityServiceInfo accessibilityServiceInfo);
+
+ String getId(AccessibilityServiceInfo accessibilityServiceInfo);
+
+ ResolveInfo getResolveInfo(AccessibilityServiceInfo accessibilityServiceInfo);
+
+ String getSettingsActivityName(AccessibilityServiceInfo accessibilityServiceInfo);
+ }
+
+ /* loaded from: classes.dex */
+ static class AccessibilityServiceInfoStubImpl implements AccessibilityServiceInfoVersionImpl {
+ AccessibilityServiceInfoStubImpl() {
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public boolean getCanRetrieveWindowContent(AccessibilityServiceInfo info) {
+ return false;
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public String getDescription(AccessibilityServiceInfo info) {
+ return null;
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public String getId(AccessibilityServiceInfo info) {
+ return null;
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public ResolveInfo getResolveInfo(AccessibilityServiceInfo info) {
+ return null;
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public String getSettingsActivityName(AccessibilityServiceInfo info) {
+ return null;
+ }
+ }
+
+ /* loaded from: classes.dex */
+ static class AccessibilityServiceInfoIcsImpl extends AccessibilityServiceInfoStubImpl {
+ AccessibilityServiceInfoIcsImpl() {
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl, android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public boolean getCanRetrieveWindowContent(AccessibilityServiceInfo info) {
+ return AccessibilityServiceInfoCompatIcs.getCanRetrieveWindowContent(info);
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl, android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public String getDescription(AccessibilityServiceInfo info) {
+ return AccessibilityServiceInfoCompatIcs.getDescription(info);
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl, android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public String getId(AccessibilityServiceInfo info) {
+ return AccessibilityServiceInfoCompatIcs.getId(info);
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl, android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public ResolveInfo getResolveInfo(AccessibilityServiceInfo info) {
+ return AccessibilityServiceInfoCompatIcs.getResolveInfo(info);
+ }
+
+ @Override // android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl, android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoVersionImpl
+ public String getSettingsActivityName(AccessibilityServiceInfo info) {
+ return AccessibilityServiceInfoCompatIcs.getSettingsActivityName(info);
+ }
+ }
+
+ static {
+ if (Build.VERSION.SDK_INT >= 14) {
+ IMPL = new AccessibilityServiceInfoIcsImpl();
+ } else {
+ IMPL = new AccessibilityServiceInfoStubImpl();
+ }
+ }
+
+ private AccessibilityServiceInfoCompat() {
+ }
+
+ public static String getId(AccessibilityServiceInfo info) {
+ return IMPL.getId(info);
+ }
+
+ public static ResolveInfo getResolveInfo(AccessibilityServiceInfo info) {
+ return IMPL.getResolveInfo(info);
+ }
+
+ public static String getSettingsActivityName(AccessibilityServiceInfo info) {
+ return IMPL.getSettingsActivityName(info);
+ }
+
+ public static boolean getCanRetrieveWindowContent(AccessibilityServiceInfo info) {
+ return IMPL.getCanRetrieveWindowContent(info);
+ }
+
+ public static String getDescription(AccessibilityServiceInfo info) {
+ return IMPL.getDescription(info);
+ }
+
+ public static String feedbackTypeToString(int feedbackType) {
+ StringBuilder builder = new StringBuilder();
+ builder.append("[");
+ while (feedbackType > 0) {
+ int feedbackTypeFlag = 1 << Integer.numberOfTrailingZeros(feedbackType);
+ feedbackType &= feedbackTypeFlag ^ -1;
+ if (builder.length() > 1) {
+ builder.append(", ");
+ }
+ switch (feedbackTypeFlag) {
+ case 1:
+ builder.append("FEEDBACK_SPOKEN");
+ break;
+ case 2:
+ builder.append("FEEDBACK_HAPTIC");
+ break;
+ case 4:
+ builder.append("FEEDBACK_AUDIBLE");
+ break;
+ case 8:
+ builder.append("FEEDBACK_VISUAL");
+ break;
+ case 16:
+ builder.append("FEEDBACK_GENERIC");
+ break;
+ }
+ }
+ builder.append("]");
+ return builder.toString();
+ }
+
+ public static String flagToString(int flag) {
+ switch (flag) {
+ case 1:
+ return "DEFAULT";
+ default:
+ return null;
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java
new file mode 100644
index 0000000..5f3ddbc
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.java
@@ -0,0 +1,29 @@
+package android.support.v4.accessibilityservice;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.content.pm.ResolveInfo;
+/* loaded from: classes.dex */
+class AccessibilityServiceInfoCompatIcs {
+ AccessibilityServiceInfoCompatIcs() {
+ }
+
+ public static boolean getCanRetrieveWindowContent(AccessibilityServiceInfo info) {
+ return info.getCanRetrieveWindowContent();
+ }
+
+ public static String getDescription(AccessibilityServiceInfo info) {
+ return info.getDescription();
+ }
+
+ public static String getId(AccessibilityServiceInfo info) {
+ return info.getId();
+ }
+
+ public static ResolveInfo getResolveInfo(AccessibilityServiceInfo info) {
+ return info.getResolveInfo();
+ }
+
+ public static String getSettingsActivityName(AccessibilityServiceInfo info) {
+ return info.getSettingsActivityName();
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ActivityCompat.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ActivityCompat.java
new file mode 100644
index 0000000..83b2946
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ActivityCompat.java
@@ -0,0 +1,15 @@
+package android.support.v4.app;
+
+import android.app.Activity;
+import android.os.Build;
+import android.support.v4.content.ContextCompat;
+/* loaded from: classes.dex */
+public class ActivityCompat extends ContextCompat {
+ public static boolean invalidateOptionsMenu(Activity activity) {
+ if (Build.VERSION.SDK_INT < 11) {
+ return false;
+ }
+ ActivityCompatHoneycomb.invalidateOptionsMenu(activity);
+ return true;
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ActivityCompatHoneycomb.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ActivityCompatHoneycomb.java
new file mode 100644
index 0000000..ad0d65c
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ActivityCompatHoneycomb.java
@@ -0,0 +1,19 @@
+package android.support.v4.app;
+
+import android.app.Activity;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+/* loaded from: classes.dex */
+class ActivityCompatHoneycomb {
+ ActivityCompatHoneycomb() {
+ }
+
+ /* JADX INFO: Access modifiers changed from: package-private */
+ public static void invalidateOptionsMenu(Activity activity) {
+ activity.invalidateOptionsMenu();
+ }
+
+ static void dump(Activity activity, String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
+ activity.dump(prefix, fd, writer, args);
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/BackStackRecord.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/BackStackRecord.java
new file mode 100644
index 0000000..2a2123c
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/BackStackRecord.java
@@ -0,0 +1,595 @@
+package android.support.v4.app;
+
+import android.support.v4.app.FragmentManager;
+import android.util.Log;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+/* loaded from: classes.dex */
+public final class BackStackRecord extends FragmentTransaction implements FragmentManager.BackStackEntry, Runnable {
+ static final int OP_ADD = 1;
+ static final int OP_ATTACH = 7;
+ static final int OP_DETACH = 6;
+ static final int OP_HIDE = 4;
+ static final int OP_NULL = 0;
+ static final int OP_REMOVE = 3;
+ static final int OP_REPLACE = 2;
+ static final int OP_SHOW = 5;
+ static final String TAG = "BackStackEntry";
+ boolean mAddToBackStack;
+ boolean mAllowAddToBackStack = true;
+ int mBreadCrumbShortTitleRes;
+ CharSequence mBreadCrumbShortTitleText;
+ int mBreadCrumbTitleRes;
+ CharSequence mBreadCrumbTitleText;
+ boolean mCommitted;
+ int mEnterAnim;
+ int mExitAnim;
+ Op mHead;
+ int mIndex;
+ final FragmentManagerImpl mManager;
+ String mName;
+ int mNumOp;
+ int mPopEnterAnim;
+ int mPopExitAnim;
+ Op mTail;
+ int mTransition;
+ int mTransitionStyle;
+
+ /* loaded from: classes.dex */
+ public static final class Op {
+ int cmd;
+ int enterAnim;
+ int exitAnim;
+ Fragment fragment;
+ Op next;
+ int popEnterAnim;
+ int popExitAnim;
+ Op prev;
+ ArrayList removed;
+ }
+
+ public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
+ writer.print(prefix);
+ writer.print("mName=");
+ writer.print(this.mName);
+ writer.print(" mIndex=");
+ writer.print(this.mIndex);
+ writer.print(" mCommitted=");
+ writer.println(this.mCommitted);
+ if (this.mTransition != 0) {
+ writer.print(prefix);
+ writer.print("mTransition=#");
+ writer.print(Integer.toHexString(this.mTransition));
+ writer.print(" mTransitionStyle=#");
+ writer.println(Integer.toHexString(this.mTransitionStyle));
+ }
+ if (!(this.mEnterAnim == 0 && this.mExitAnim == 0)) {
+ writer.print(prefix);
+ writer.print("mEnterAnim=#");
+ writer.print(Integer.toHexString(this.mEnterAnim));
+ writer.print(" mExitAnim=#");
+ writer.println(Integer.toHexString(this.mExitAnim));
+ }
+ if (!(this.mPopEnterAnim == 0 && this.mPopExitAnim == 0)) {
+ writer.print(prefix);
+ writer.print("mPopEnterAnim=#");
+ writer.print(Integer.toHexString(this.mPopEnterAnim));
+ writer.print(" mPopExitAnim=#");
+ writer.println(Integer.toHexString(this.mPopExitAnim));
+ }
+ if (!(this.mBreadCrumbTitleRes == 0 && this.mBreadCrumbTitleText == null)) {
+ writer.print(prefix);
+ writer.print("mBreadCrumbTitleRes=#");
+ writer.print(Integer.toHexString(this.mBreadCrumbTitleRes));
+ writer.print(" mBreadCrumbTitleText=");
+ writer.println(this.mBreadCrumbTitleText);
+ }
+ if (!(this.mBreadCrumbShortTitleRes == 0 && this.mBreadCrumbShortTitleText == null)) {
+ writer.print(prefix);
+ writer.print("mBreadCrumbShortTitleRes=#");
+ writer.print(Integer.toHexString(this.mBreadCrumbShortTitleRes));
+ writer.print(" mBreadCrumbShortTitleText=");
+ writer.println(this.mBreadCrumbShortTitleText);
+ }
+ if (this.mHead != null) {
+ writer.print(prefix);
+ writer.println("Operations:");
+ String innerPrefix = prefix + " ";
+ for (Op op = this.mHead; op != null; op = op.next) {
+ writer.print(prefix);
+ writer.print(" Op #");
+ writer.print(0);
+ writer.println(":");
+ writer.print(innerPrefix);
+ writer.print("cmd=");
+ writer.print(op.cmd);
+ writer.print(" fragment=");
+ writer.println(op.fragment);
+ if (!(op.enterAnim == 0 && op.exitAnim == 0)) {
+ writer.print(prefix);
+ writer.print("enterAnim=#");
+ writer.print(Integer.toHexString(op.enterAnim));
+ writer.print(" exitAnim=#");
+ writer.println(Integer.toHexString(op.exitAnim));
+ }
+ if (!(op.popEnterAnim == 0 && op.popExitAnim == 0)) {
+ writer.print(prefix);
+ writer.print("popEnterAnim=#");
+ writer.print(Integer.toHexString(op.popEnterAnim));
+ writer.print(" popExitAnim=#");
+ writer.println(Integer.toHexString(op.popExitAnim));
+ }
+ if (op.removed != null && op.removed.size() > 0) {
+ for (int i = 0; i < op.removed.size(); i++) {
+ writer.print(innerPrefix);
+ if (op.removed.size() == 1) {
+ writer.print("Removed: ");
+ } else {
+ writer.println("Removed:");
+ writer.print(innerPrefix);
+ writer.print(" #");
+ writer.print(0);
+ writer.print(": ");
+ }
+ writer.println(op.removed.get(i));
+ }
+ }
+ }
+ }
+ }
+
+ public BackStackRecord(FragmentManagerImpl manager) {
+ this.mManager = manager;
+ }
+
+ @Override // android.support.v4.app.FragmentManager.BackStackEntry
+ public int getId() {
+ return this.mIndex;
+ }
+
+ @Override // android.support.v4.app.FragmentManager.BackStackEntry
+ public int getBreadCrumbTitleRes() {
+ return this.mBreadCrumbTitleRes;
+ }
+
+ @Override // android.support.v4.app.FragmentManager.BackStackEntry
+ public int getBreadCrumbShortTitleRes() {
+ return this.mBreadCrumbShortTitleRes;
+ }
+
+ @Override // android.support.v4.app.FragmentManager.BackStackEntry
+ public CharSequence getBreadCrumbTitle() {
+ if (this.mBreadCrumbTitleRes != 0) {
+ return this.mManager.mActivity.getText(this.mBreadCrumbTitleRes);
+ }
+ return this.mBreadCrumbTitleText;
+ }
+
+ @Override // android.support.v4.app.FragmentManager.BackStackEntry
+ public CharSequence getBreadCrumbShortTitle() {
+ if (this.mBreadCrumbShortTitleRes != 0) {
+ return this.mManager.mActivity.getText(this.mBreadCrumbShortTitleRes);
+ }
+ return this.mBreadCrumbShortTitleText;
+ }
+
+ public void addOp(Op op) {
+ if (this.mHead == null) {
+ this.mTail = op;
+ this.mHead = op;
+ } else {
+ op.prev = this.mTail;
+ this.mTail.next = op;
+ this.mTail = op;
+ }
+ op.enterAnim = this.mEnterAnim;
+ op.exitAnim = this.mExitAnim;
+ op.popEnterAnim = this.mPopEnterAnim;
+ op.popExitAnim = this.mPopExitAnim;
+ this.mNumOp++;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction add(Fragment fragment, String tag) {
+ doAddOp(0, fragment, tag, 1);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction add(int containerViewId, Fragment fragment) {
+ doAddOp(containerViewId, fragment, null, 1);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction add(int containerViewId, Fragment fragment, String tag) {
+ doAddOp(containerViewId, fragment, tag, 1);
+ return this;
+ }
+
+ private void doAddOp(int containerViewId, Fragment fragment, String tag, int opcmd) {
+ fragment.mFragmentManager = this.mManager;
+ if (tag != null) {
+ if (fragment.mTag == null || tag.equals(fragment.mTag)) {
+ fragment.mTag = tag;
+ } else {
+ throw new IllegalStateException("Can't change tag of fragment " + fragment + ": was " + fragment.mTag + " now " + tag);
+ }
+ }
+ if (containerViewId != 0) {
+ if (fragment.mFragmentId == 0 || fragment.mFragmentId == containerViewId) {
+ fragment.mFragmentId = containerViewId;
+ fragment.mContainerId = containerViewId;
+ } else {
+ throw new IllegalStateException("Can't change container ID of fragment " + fragment + ": was " + fragment.mFragmentId + " now " + containerViewId);
+ }
+ }
+ Op op = new Op();
+ op.cmd = opcmd;
+ op.fragment = fragment;
+ addOp(op);
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction replace(int containerViewId, Fragment fragment) {
+ return replace(containerViewId, fragment, null);
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction replace(int containerViewId, Fragment fragment, String tag) {
+ if (containerViewId == 0) {
+ throw new IllegalArgumentException("Must use non-zero containerViewId");
+ }
+ doAddOp(containerViewId, fragment, tag, 2);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction remove(Fragment fragment) {
+ Op op = new Op();
+ op.cmd = 3;
+ op.fragment = fragment;
+ addOp(op);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction hide(Fragment fragment) {
+ Op op = new Op();
+ op.cmd = 4;
+ op.fragment = fragment;
+ addOp(op);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction show(Fragment fragment) {
+ Op op = new Op();
+ op.cmd = 5;
+ op.fragment = fragment;
+ addOp(op);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction detach(Fragment fragment) {
+ Op op = new Op();
+ op.cmd = 6;
+ op.fragment = fragment;
+ addOp(op);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction attach(Fragment fragment) {
+ Op op = new Op();
+ op.cmd = 7;
+ op.fragment = fragment;
+ addOp(op);
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setCustomAnimations(int enter, int exit) {
+ return setCustomAnimations(enter, exit, 0, 0);
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setCustomAnimations(int enter, int exit, int popEnter, int popExit) {
+ this.mEnterAnim = enter;
+ this.mExitAnim = exit;
+ this.mPopEnterAnim = popEnter;
+ this.mPopExitAnim = popExit;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setTransition(int transition) {
+ this.mTransition = transition;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setTransitionStyle(int styleRes) {
+ this.mTransitionStyle = styleRes;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction addToBackStack(String name) {
+ if (!this.mAllowAddToBackStack) {
+ throw new IllegalStateException("This FragmentTransaction is not allowed to be added to the back stack.");
+ }
+ this.mAddToBackStack = true;
+ this.mName = name;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public boolean isAddToBackStackAllowed() {
+ return this.mAllowAddToBackStack;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction disallowAddToBackStack() {
+ if (this.mAddToBackStack) {
+ throw new IllegalStateException("This transaction is already being added to the back stack");
+ }
+ this.mAllowAddToBackStack = false;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setBreadCrumbTitle(int res) {
+ this.mBreadCrumbTitleRes = res;
+ this.mBreadCrumbTitleText = null;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setBreadCrumbTitle(CharSequence text) {
+ this.mBreadCrumbTitleRes = 0;
+ this.mBreadCrumbTitleText = text;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setBreadCrumbShortTitle(int res) {
+ this.mBreadCrumbShortTitleRes = res;
+ this.mBreadCrumbShortTitleText = null;
+ return this;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public FragmentTransaction setBreadCrumbShortTitle(CharSequence text) {
+ this.mBreadCrumbShortTitleRes = 0;
+ this.mBreadCrumbShortTitleText = text;
+ return this;
+ }
+
+ public void bumpBackStackNesting(int amt) {
+ if (this.mAddToBackStack) {
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "Bump nesting in " + this + " by " + amt);
+ }
+ for (Op op = this.mHead; op != null; op = op.next) {
+ if (op.fragment != null) {
+ op.fragment.mBackStackNesting += amt;
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "Bump nesting of " + op.fragment + " to " + op.fragment.mBackStackNesting);
+ }
+ }
+ if (op.removed != null) {
+ for (int i = op.removed.size() - 1; i >= 0; i--) {
+ Fragment r = op.removed.get(i);
+ r.mBackStackNesting += amt;
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "Bump nesting of " + r + " to " + r.mBackStackNesting);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public int commit() {
+ return commitInternal(false);
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public int commitAllowingStateLoss() {
+ return commitInternal(true);
+ }
+
+ int commitInternal(boolean allowStateLoss) {
+ if (this.mCommitted) {
+ throw new IllegalStateException("commit already called");
+ }
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "Commit: " + this);
+ }
+ this.mCommitted = true;
+ if (this.mAddToBackStack) {
+ this.mIndex = this.mManager.allocBackStackIndex(this);
+ } else {
+ this.mIndex = -1;
+ }
+ this.mManager.enqueueAction(this, allowStateLoss);
+ return this.mIndex;
+ }
+
+ @Override // java.lang.Runnable
+ public void run() {
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "Run: " + this);
+ }
+ if (!this.mAddToBackStack || this.mIndex >= 0) {
+ bumpBackStackNesting(1);
+ for (Op op = this.mHead; op != null; op = op.next) {
+ switch (op.cmd) {
+ case 1:
+ Fragment f = op.fragment;
+ f.mNextAnim = op.enterAnim;
+ this.mManager.addFragment(f, false);
+ break;
+ case 2:
+ Fragment f2 = op.fragment;
+ if (this.mManager.mAdded != null) {
+ for (int i = 0; i < this.mManager.mAdded.size(); i++) {
+ Fragment old = this.mManager.mAdded.get(i);
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "OP_REPLACE: adding=" + f2 + " old=" + old);
+ }
+ if (f2 == null || old.mContainerId == f2.mContainerId) {
+ if (old == f2) {
+ f2 = null;
+ op.fragment = null;
+ } else {
+ if (op.removed == null) {
+ op.removed = new ArrayList<>();
+ }
+ op.removed.add(old);
+ old.mNextAnim = op.exitAnim;
+ if (this.mAddToBackStack) {
+ old.mBackStackNesting++;
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "Bump nesting of " + old + " to " + old.mBackStackNesting);
+ }
+ }
+ this.mManager.removeFragment(old, this.mTransition, this.mTransitionStyle);
+ }
+ }
+ }
+ }
+ if (f2 != null) {
+ f2.mNextAnim = op.enterAnim;
+ this.mManager.addFragment(f2, false);
+ break;
+ } else {
+ break;
+ }
+ case 3:
+ Fragment f3 = op.fragment;
+ f3.mNextAnim = op.exitAnim;
+ this.mManager.removeFragment(f3, this.mTransition, this.mTransitionStyle);
+ break;
+ case 4:
+ Fragment f4 = op.fragment;
+ f4.mNextAnim = op.exitAnim;
+ this.mManager.hideFragment(f4, this.mTransition, this.mTransitionStyle);
+ break;
+ case 5:
+ Fragment f5 = op.fragment;
+ f5.mNextAnim = op.enterAnim;
+ this.mManager.showFragment(f5, this.mTransition, this.mTransitionStyle);
+ break;
+ case 6:
+ Fragment f6 = op.fragment;
+ f6.mNextAnim = op.exitAnim;
+ this.mManager.detachFragment(f6, this.mTransition, this.mTransitionStyle);
+ break;
+ case 7:
+ Fragment f7 = op.fragment;
+ f7.mNextAnim = op.enterAnim;
+ this.mManager.attachFragment(f7, this.mTransition, this.mTransitionStyle);
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown cmd: " + op.cmd);
+ }
+ }
+ this.mManager.moveToState(this.mManager.mCurState, this.mTransition, this.mTransitionStyle, true);
+ if (this.mAddToBackStack) {
+ this.mManager.addBackStackState(this);
+ return;
+ }
+ return;
+ }
+ throw new IllegalStateException("addToBackStack() called after commit()");
+ }
+
+ public void popFromBackStack(boolean doStateMove) {
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "popFromBackStack: " + this);
+ }
+ bumpBackStackNesting(-1);
+ for (Op op = this.mTail; op != null; op = op.prev) {
+ switch (op.cmd) {
+ case 1:
+ Fragment f = op.fragment;
+ f.mNextAnim = op.popExitAnim;
+ this.mManager.removeFragment(f, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
+ break;
+ case 2:
+ Fragment f2 = op.fragment;
+ if (f2 != null) {
+ f2.mNextAnim = op.popExitAnim;
+ this.mManager.removeFragment(f2, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
+ }
+ if (op.removed != null) {
+ for (int i = 0; i < op.removed.size(); i++) {
+ Fragment old = op.removed.get(i);
+ old.mNextAnim = op.popEnterAnim;
+ this.mManager.addFragment(old, false);
+ }
+ break;
+ } else {
+ break;
+ }
+ case 3:
+ Fragment f3 = op.fragment;
+ f3.mNextAnim = op.popEnterAnim;
+ this.mManager.addFragment(f3, false);
+ break;
+ case 4:
+ Fragment f4 = op.fragment;
+ f4.mNextAnim = op.popEnterAnim;
+ this.mManager.showFragment(f4, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
+ break;
+ case 5:
+ Fragment f5 = op.fragment;
+ f5.mNextAnim = op.popExitAnim;
+ this.mManager.hideFragment(f5, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
+ break;
+ case 6:
+ Fragment f6 = op.fragment;
+ f6.mNextAnim = op.popEnterAnim;
+ this.mManager.attachFragment(f6, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
+ break;
+ case 7:
+ Fragment f7 = op.fragment;
+ f7.mNextAnim = op.popEnterAnim;
+ this.mManager.detachFragment(f7, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle);
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown cmd: " + op.cmd);
+ }
+ }
+ if (doStateMove) {
+ this.mManager.moveToState(this.mManager.mCurState, FragmentManagerImpl.reverseTransit(this.mTransition), this.mTransitionStyle, true);
+ }
+ if (this.mIndex >= 0) {
+ this.mManager.freeBackStackIndex(this.mIndex);
+ this.mIndex = -1;
+ }
+ }
+
+ @Override // android.support.v4.app.FragmentManager.BackStackEntry
+ public String getName() {
+ return this.mName;
+ }
+
+ public int getTransition() {
+ return this.mTransition;
+ }
+
+ public int getTransitionStyle() {
+ return this.mTransitionStyle;
+ }
+
+ @Override // android.support.v4.app.FragmentTransaction
+ public boolean isEmpty() {
+ return this.mNumOp == 0;
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/BackStackState.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/BackStackState.java
new file mode 100644
index 0000000..d38aecf
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/BackStackState.java
@@ -0,0 +1,175 @@
+package android.support.v4.app;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.support.v4.app.BackStackRecord;
+import android.text.TextUtils;
+import android.util.Log;
+import java.util.ArrayList;
+/* JADX INFO: Access modifiers changed from: package-private */
+/* compiled from: BackStackRecord.java */
+/* loaded from: classes.dex */
+public final class BackStackState implements Parcelable {
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { // from class: android.support.v4.app.BackStackState.1
+ /* JADX WARN: Can't rename method to resolve collision */
+ @Override // android.os.Parcelable.Creator
+ public BackStackState createFromParcel(Parcel in) {
+ return new BackStackState(in);
+ }
+
+ /* JADX WARN: Can't rename method to resolve collision */
+ @Override // android.os.Parcelable.Creator
+ public BackStackState[] newArray(int size) {
+ return new BackStackState[size];
+ }
+ };
+ final int mBreadCrumbShortTitleRes;
+ final CharSequence mBreadCrumbShortTitleText;
+ final int mBreadCrumbTitleRes;
+ final CharSequence mBreadCrumbTitleText;
+ final int mIndex;
+ final String mName;
+ final int[] mOps;
+ final int mTransition;
+ final int mTransitionStyle;
+
+ public BackStackState(FragmentManagerImpl fm, BackStackRecord bse) {
+ int pos;
+ int numRemoved = 0;
+ for (BackStackRecord.Op op = bse.mHead; op != null; op = op.next) {
+ if (op.removed != null) {
+ numRemoved += op.removed.size();
+ }
+ }
+ this.mOps = new int[(bse.mNumOp * 7) + numRemoved];
+ if (!bse.mAddToBackStack) {
+ throw new IllegalStateException("Not on back stack");
+ }
+ BackStackRecord.Op op2 = bse.mHead;
+ int pos2 = 0;
+ while (op2 != null) {
+ int pos3 = pos2 + 1;
+ this.mOps[pos2] = op2.cmd;
+ int pos4 = pos3 + 1;
+ this.mOps[pos3] = op2.fragment != null ? op2.fragment.mIndex : -1;
+ int pos5 = pos4 + 1;
+ this.mOps[pos4] = op2.enterAnim;
+ int pos6 = pos5 + 1;
+ this.mOps[pos5] = op2.exitAnim;
+ int pos7 = pos6 + 1;
+ this.mOps[pos6] = op2.popEnterAnim;
+ int pos8 = pos7 + 1;
+ this.mOps[pos7] = op2.popExitAnim;
+ if (op2.removed != null) {
+ int N = op2.removed.size();
+ this.mOps[pos8] = N;
+ int i = 0;
+ int pos9 = pos8 + 1;
+ while (i < N) {
+ this.mOps[pos9] = op2.removed.get(i).mIndex;
+ i++;
+ pos9++;
+ }
+ pos = pos9;
+ } else {
+ pos = pos8 + 1;
+ this.mOps[pos8] = 0;
+ }
+ op2 = op2.next;
+ pos2 = pos;
+ }
+ this.mTransition = bse.mTransition;
+ this.mTransitionStyle = bse.mTransitionStyle;
+ this.mName = bse.mName;
+ this.mIndex = bse.mIndex;
+ this.mBreadCrumbTitleRes = bse.mBreadCrumbTitleRes;
+ this.mBreadCrumbTitleText = bse.mBreadCrumbTitleText;
+ this.mBreadCrumbShortTitleRes = bse.mBreadCrumbShortTitleRes;
+ this.mBreadCrumbShortTitleText = bse.mBreadCrumbShortTitleText;
+ }
+
+ public BackStackState(Parcel in) {
+ this.mOps = in.createIntArray();
+ this.mTransition = in.readInt();
+ this.mTransitionStyle = in.readInt();
+ this.mName = in.readString();
+ this.mIndex = in.readInt();
+ this.mBreadCrumbTitleRes = in.readInt();
+ this.mBreadCrumbTitleText = (CharSequence) TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
+ this.mBreadCrumbShortTitleRes = in.readInt();
+ this.mBreadCrumbShortTitleText = (CharSequence) TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
+ }
+
+ public BackStackRecord instantiate(FragmentManagerImpl fm) {
+ BackStackRecord bse = new BackStackRecord(fm);
+ int pos = 0;
+ while (pos < this.mOps.length) {
+ BackStackRecord.Op op = new BackStackRecord.Op();
+ int pos2 = pos + 1;
+ op.cmd = this.mOps[pos];
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v("FragmentManager", "BSE " + bse + " set base fragment #" + this.mOps[pos2]);
+ }
+ int pos3 = pos2 + 1;
+ int findex = this.mOps[pos2];
+ if (findex >= 0) {
+ op.fragment = fm.mActive.get(findex);
+ } else {
+ op.fragment = null;
+ }
+ int pos4 = pos3 + 1;
+ op.enterAnim = this.mOps[pos3];
+ int pos5 = pos4 + 1;
+ op.exitAnim = this.mOps[pos4];
+ int pos6 = pos5 + 1;
+ op.popEnterAnim = this.mOps[pos5];
+ int pos7 = pos6 + 1;
+ op.popExitAnim = this.mOps[pos6];
+ int pos8 = pos7 + 1;
+ int N = this.mOps[pos7];
+ if (N > 0) {
+ op.removed = new ArrayList<>(N);
+ int i = 0;
+ while (i < N) {
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v("FragmentManager", "BSE " + bse + " set remove fragment #" + this.mOps[pos8]);
+ }
+ op.removed.add(fm.mActive.get(this.mOps[pos8]));
+ i++;
+ pos8++;
+ }
+ }
+ pos = pos8;
+ bse.addOp(op);
+ }
+ bse.mTransition = this.mTransition;
+ bse.mTransitionStyle = this.mTransitionStyle;
+ bse.mName = this.mName;
+ bse.mIndex = this.mIndex;
+ bse.mAddToBackStack = true;
+ bse.mBreadCrumbTitleRes = this.mBreadCrumbTitleRes;
+ bse.mBreadCrumbTitleText = this.mBreadCrumbTitleText;
+ bse.mBreadCrumbShortTitleRes = this.mBreadCrumbShortTitleRes;
+ bse.mBreadCrumbShortTitleText = this.mBreadCrumbShortTitleText;
+ bse.bumpBackStackNesting(1);
+ return bse;
+ }
+
+ @Override // android.os.Parcelable
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override // android.os.Parcelable
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeIntArray(this.mOps);
+ dest.writeInt(this.mTransition);
+ dest.writeInt(this.mTransitionStyle);
+ dest.writeString(this.mName);
+ dest.writeInt(this.mIndex);
+ dest.writeInt(this.mBreadCrumbTitleRes);
+ TextUtils.writeToParcel(this.mBreadCrumbTitleText, dest, 0);
+ dest.writeInt(this.mBreadCrumbShortTitleRes);
+ TextUtils.writeToParcel(this.mBreadCrumbShortTitleText, dest, 0);
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/DialogFragment.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/DialogFragment.java
new file mode 100644
index 0000000..6b54f54
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/DialogFragment.java
@@ -0,0 +1,253 @@
+package android.support.v4.app;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+/* loaded from: classes.dex */
+public class DialogFragment extends Fragment implements DialogInterface.OnCancelListener, DialogInterface.OnDismissListener {
+ private static final String SAVED_BACK_STACK_ID = "android:backStackId";
+ private static final String SAVED_CANCELABLE = "android:cancelable";
+ private static final String SAVED_DIALOG_STATE_TAG = "android:savedDialogState";
+ private static final String SAVED_SHOWS_DIALOG = "android:showsDialog";
+ private static final String SAVED_STYLE = "android:style";
+ private static final String SAVED_THEME = "android:theme";
+ public static final int STYLE_NORMAL = 0;
+ public static final int STYLE_NO_FRAME = 2;
+ public static final int STYLE_NO_INPUT = 3;
+ public static final int STYLE_NO_TITLE = 1;
+ Dialog mDialog;
+ boolean mDismissed;
+ boolean mShownByMe;
+ boolean mViewDestroyed;
+ int mStyle = 0;
+ int mTheme = 0;
+ boolean mCancelable = true;
+ boolean mShowsDialog = true;
+ int mBackStackId = -1;
+
+ public void setStyle(int style, int theme) {
+ this.mStyle = style;
+ if (this.mStyle == 2 || this.mStyle == 3) {
+ this.mTheme = 16973913;
+ }
+ if (theme != 0) {
+ this.mTheme = theme;
+ }
+ }
+
+ public void show(FragmentManager manager, String tag) {
+ this.mDismissed = false;
+ this.mShownByMe = true;
+ FragmentTransaction ft = manager.beginTransaction();
+ ft.add(this, tag);
+ ft.commit();
+ }
+
+ public int show(FragmentTransaction transaction, String tag) {
+ this.mDismissed = false;
+ this.mShownByMe = true;
+ transaction.add(this, tag);
+ this.mViewDestroyed = false;
+ this.mBackStackId = transaction.commit();
+ return this.mBackStackId;
+ }
+
+ public void dismiss() {
+ dismissInternal(false);
+ }
+
+ public void dismissAllowingStateLoss() {
+ dismissInternal(true);
+ }
+
+ void dismissInternal(boolean allowStateLoss) {
+ if (!this.mDismissed) {
+ this.mDismissed = true;
+ this.mShownByMe = false;
+ if (this.mDialog != null) {
+ this.mDialog.dismiss();
+ this.mDialog = null;
+ }
+ this.mViewDestroyed = true;
+ if (this.mBackStackId >= 0) {
+ getFragmentManager().popBackStack(this.mBackStackId, 1);
+ this.mBackStackId = -1;
+ return;
+ }
+ FragmentTransaction ft = getFragmentManager().beginTransaction();
+ ft.remove(this);
+ if (allowStateLoss) {
+ ft.commitAllowingStateLoss();
+ } else {
+ ft.commit();
+ }
+ }
+ }
+
+ public Dialog getDialog() {
+ return this.mDialog;
+ }
+
+ public int getTheme() {
+ return this.mTheme;
+ }
+
+ public void setCancelable(boolean cancelable) {
+ this.mCancelable = cancelable;
+ if (this.mDialog != null) {
+ this.mDialog.setCancelable(cancelable);
+ }
+ }
+
+ public boolean isCancelable() {
+ return this.mCancelable;
+ }
+
+ public void setShowsDialog(boolean showsDialog) {
+ this.mShowsDialog = showsDialog;
+ }
+
+ public boolean getShowsDialog() {
+ return this.mShowsDialog;
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ if (!this.mShownByMe) {
+ this.mDismissed = false;
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onDetach() {
+ super.onDetach();
+ if (!this.mShownByMe && !this.mDismissed) {
+ this.mDismissed = true;
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ this.mShowsDialog = this.mContainerId == 0;
+ if (savedInstanceState != null) {
+ this.mStyle = savedInstanceState.getInt(SAVED_STYLE, 0);
+ this.mTheme = savedInstanceState.getInt(SAVED_THEME, 0);
+ this.mCancelable = savedInstanceState.getBoolean(SAVED_CANCELABLE, true);
+ this.mShowsDialog = savedInstanceState.getBoolean(SAVED_SHOWS_DIALOG, this.mShowsDialog);
+ this.mBackStackId = savedInstanceState.getInt(SAVED_BACK_STACK_ID, -1);
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) {
+ if (!this.mShowsDialog) {
+ return super.getLayoutInflater(savedInstanceState);
+ }
+ this.mDialog = onCreateDialog(savedInstanceState);
+ switch (this.mStyle) {
+ case 3:
+ this.mDialog.getWindow().addFlags(24);
+ case 1:
+ case 2:
+ this.mDialog.requestWindowFeature(1);
+ break;
+ }
+ if (this.mDialog != null) {
+ return (LayoutInflater) this.mDialog.getContext().getSystemService("layout_inflater");
+ }
+ return (LayoutInflater) this.mActivity.getSystemService("layout_inflater");
+ }
+
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ return new Dialog(getActivity(), getTheme());
+ }
+
+ @Override // android.content.DialogInterface.OnCancelListener
+ public void onCancel(DialogInterface dialog) {
+ }
+
+ @Override // android.content.DialogInterface.OnDismissListener
+ public void onDismiss(DialogInterface dialog) {
+ if (!this.mViewDestroyed) {
+ dismissInternal(true);
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onActivityCreated(Bundle savedInstanceState) {
+ Bundle dialogState;
+ super.onActivityCreated(savedInstanceState);
+ if (this.mShowsDialog) {
+ View view = getView();
+ if (view != null) {
+ if (view.getParent() != null) {
+ throw new IllegalStateException("DialogFragment can not be attached to a container view");
+ }
+ this.mDialog.setContentView(view);
+ }
+ this.mDialog.setOwnerActivity(getActivity());
+ this.mDialog.setCancelable(this.mCancelable);
+ this.mDialog.setOnCancelListener(this);
+ this.mDialog.setOnDismissListener(this);
+ if (savedInstanceState != null && (dialogState = savedInstanceState.getBundle(SAVED_DIALOG_STATE_TAG)) != null) {
+ this.mDialog.onRestoreInstanceState(dialogState);
+ }
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onStart() {
+ super.onStart();
+ if (this.mDialog != null) {
+ this.mViewDestroyed = false;
+ this.mDialog.show();
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onSaveInstanceState(Bundle outState) {
+ Bundle dialogState;
+ super.onSaveInstanceState(outState);
+ if (!(this.mDialog == null || (dialogState = this.mDialog.onSaveInstanceState()) == null)) {
+ outState.putBundle(SAVED_DIALOG_STATE_TAG, dialogState);
+ }
+ if (this.mStyle != 0) {
+ outState.putInt(SAVED_STYLE, this.mStyle);
+ }
+ if (this.mTheme != 0) {
+ outState.putInt(SAVED_THEME, this.mTheme);
+ }
+ if (!this.mCancelable) {
+ outState.putBoolean(SAVED_CANCELABLE, this.mCancelable);
+ }
+ if (!this.mShowsDialog) {
+ outState.putBoolean(SAVED_SHOWS_DIALOG, this.mShowsDialog);
+ }
+ if (this.mBackStackId != -1) {
+ outState.putInt(SAVED_BACK_STACK_ID, this.mBackStackId);
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onStop() {
+ super.onStop();
+ if (this.mDialog != null) {
+ this.mDialog.hide();
+ }
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onDestroyView() {
+ super.onDestroyView();
+ if (this.mDialog != null) {
+ this.mViewDestroyed = true;
+ this.mDialog.dismiss();
+ this.mDialog = null;
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/Fragment.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/Fragment.java
new file mode 100644
index 0000000..bb2e7bc
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/Fragment.java
@@ -0,0 +1,650 @@
+package android.support.v4.app;
+
+import android.app.Activity;
+import android.content.ComponentCallbacks;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.support.v4.util.DebugUtils;
+import android.util.AttributeSet;
+import android.util.SparseArray;
+import android.view.ContextMenu;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.Animation;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.HashMap;
+/* loaded from: classes.dex */
+public class Fragment implements ComponentCallbacks, View.OnCreateContextMenuListener {
+ static final int ACTIVITY_CREATED = 2;
+ static final int CREATED = 1;
+ static final int INITIALIZING = 0;
+ static final int RESUMED = 5;
+ static final int STARTED = 4;
+ static final int STOPPED = 3;
+ private static final HashMap> sClassMap = new HashMap<>();
+ FragmentActivity mActivity;
+ boolean mAdded;
+ View mAnimatingAway;
+ Bundle mArguments;
+ int mBackStackNesting;
+ boolean mCalled;
+ boolean mCheckedForLoaderManager;
+ ViewGroup mContainer;
+ int mContainerId;
+ boolean mDeferStart;
+ boolean mDetached;
+ int mFragmentId;
+ FragmentManagerImpl mFragmentManager;
+ boolean mFromLayout;
+ boolean mHasMenu;
+ boolean mHidden;
+ boolean mInLayout;
+ View mInnerView;
+ LoaderManagerImpl mLoaderManager;
+ boolean mLoadersStarted;
+ int mNextAnim;
+ boolean mRemoving;
+ boolean mRestored;
+ boolean mResumed;
+ boolean mRetainInstance;
+ boolean mRetaining;
+ Bundle mSavedFragmentState;
+ SparseArray mSavedViewState;
+ int mStateAfterAnimating;
+ String mTag;
+ Fragment mTarget;
+ int mTargetRequestCode;
+ View mView;
+ String mWho;
+ int mState = 0;
+ int mIndex = -1;
+ int mTargetIndex = -1;
+ boolean mMenuVisible = true;
+ boolean mUserVisibleHint = true;
+
+ /* loaded from: classes.dex */
+ public static class SavedState implements Parcelable {
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { // from class: android.support.v4.app.Fragment.SavedState.1
+ @Override // android.os.Parcelable.Creator
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in, null);
+ }
+
+ @Override // android.os.Parcelable.Creator
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ final Bundle mState;
+
+ public SavedState(Bundle state) {
+ this.mState = state;
+ }
+
+ SavedState(Parcel in, ClassLoader loader) {
+ this.mState = in.readBundle();
+ if (loader != null && this.mState != null) {
+ this.mState.setClassLoader(loader);
+ }
+ }
+
+ @Override // android.os.Parcelable
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override // android.os.Parcelable
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeBundle(this.mState);
+ }
+ }
+
+ /* loaded from: classes.dex */
+ public static class InstantiationException extends RuntimeException {
+ public InstantiationException(String msg, Exception cause) {
+ super(msg, cause);
+ }
+ }
+
+ public static Fragment instantiate(Context context, String fname) {
+ return instantiate(context, fname, null);
+ }
+
+ public static Fragment instantiate(Context context, String fname, Bundle args) {
+ try {
+ Class> clazz = sClassMap.get(fname);
+ if (clazz == null) {
+ clazz = context.getClassLoader().loadClass(fname);
+ sClassMap.put(fname, clazz);
+ }
+ Fragment f = (Fragment) clazz.newInstance();
+ if (args != null) {
+ args.setClassLoader(f.getClass().getClassLoader());
+ f.mArguments = args;
+ }
+ return f;
+ } catch (ClassNotFoundException e) {
+ throw new InstantiationException("Unable to instantiate fragment " + fname + ": make sure class name exists, is public, and has an empty constructor that is public", e);
+ } catch (IllegalAccessException e2) {
+ throw new InstantiationException("Unable to instantiate fragment " + fname + ": make sure class name exists, is public, and has an empty constructor that is public", e2);
+ } catch (InstantiationException e3) {
+ throw new InstantiationException("Unable to instantiate fragment " + fname + ": make sure class name exists, is public, and has an empty constructor that is public", e3);
+ }
+ }
+
+ public final void restoreViewState() {
+ if (this.mSavedViewState != null) {
+ this.mInnerView.restoreHierarchyState(this.mSavedViewState);
+ this.mSavedViewState = null;
+ }
+ }
+
+ public final void setIndex(int index) {
+ this.mIndex = index;
+ this.mWho = "android:fragment:" + this.mIndex;
+ }
+
+ public final boolean isInBackStack() {
+ return this.mBackStackNesting > 0;
+ }
+
+ @Override // java.lang.Object
+ public final boolean equals(Object o) {
+ return super.equals(o);
+ }
+
+ @Override // java.lang.Object
+ public final int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override // java.lang.Object
+ public String toString() {
+ StringBuilder sb = new StringBuilder(128);
+ DebugUtils.buildShortClassTag(this, sb);
+ if (this.mIndex >= 0) {
+ sb.append(" #");
+ sb.append(this.mIndex);
+ }
+ if (this.mFragmentId != 0) {
+ sb.append(" id=0x");
+ sb.append(Integer.toHexString(this.mFragmentId));
+ }
+ if (this.mTag != null) {
+ sb.append(" ");
+ sb.append(this.mTag);
+ }
+ sb.append('}');
+ return sb.toString();
+ }
+
+ public final int getId() {
+ return this.mFragmentId;
+ }
+
+ public final String getTag() {
+ return this.mTag;
+ }
+
+ public void setArguments(Bundle args) {
+ if (this.mIndex >= 0) {
+ throw new IllegalStateException("Fragment already active");
+ }
+ this.mArguments = args;
+ }
+
+ public final Bundle getArguments() {
+ return this.mArguments;
+ }
+
+ public void setInitialSavedState(SavedState state) {
+ if (this.mIndex >= 0) {
+ throw new IllegalStateException("Fragment already active");
+ }
+ this.mSavedFragmentState = (state == null || state.mState == null) ? null : state.mState;
+ }
+
+ public void setTargetFragment(Fragment fragment, int requestCode) {
+ this.mTarget = fragment;
+ this.mTargetRequestCode = requestCode;
+ }
+
+ public final Fragment getTargetFragment() {
+ return this.mTarget;
+ }
+
+ public final int getTargetRequestCode() {
+ return this.mTargetRequestCode;
+ }
+
+ public final FragmentActivity getActivity() {
+ return this.mActivity;
+ }
+
+ public final Resources getResources() {
+ if (this.mActivity != null) {
+ return this.mActivity.getResources();
+ }
+ throw new IllegalStateException("Fragment " + this + " not attached to Activity");
+ }
+
+ public final CharSequence getText(int resId) {
+ return getResources().getText(resId);
+ }
+
+ public final String getString(int resId) {
+ return getResources().getString(resId);
+ }
+
+ public final String getString(int resId, Object... formatArgs) {
+ return getResources().getString(resId, formatArgs);
+ }
+
+ public final FragmentManager getFragmentManager() {
+ return this.mFragmentManager;
+ }
+
+ public final boolean isAdded() {
+ return this.mActivity != null && this.mAdded;
+ }
+
+ public final boolean isDetached() {
+ return this.mDetached;
+ }
+
+ public final boolean isRemoving() {
+ return this.mRemoving;
+ }
+
+ public final boolean isInLayout() {
+ return this.mInLayout;
+ }
+
+ public final boolean isResumed() {
+ return this.mResumed;
+ }
+
+ public final boolean isVisible() {
+ return isAdded() && !isHidden() && this.mView != null && this.mView.getWindowToken() != null && this.mView.getVisibility() == 0;
+ }
+
+ public final boolean isHidden() {
+ return this.mHidden;
+ }
+
+ public void onHiddenChanged(boolean hidden) {
+ }
+
+ public void setRetainInstance(boolean retain) {
+ this.mRetainInstance = retain;
+ }
+
+ public final boolean getRetainInstance() {
+ return this.mRetainInstance;
+ }
+
+ public void setHasOptionsMenu(boolean hasMenu) {
+ if (this.mHasMenu != hasMenu) {
+ this.mHasMenu = hasMenu;
+ if (isAdded() && !isHidden()) {
+ this.mActivity.supportInvalidateOptionsMenu();
+ }
+ }
+ }
+
+ public void setMenuVisibility(boolean menuVisible) {
+ if (this.mMenuVisible != menuVisible) {
+ this.mMenuVisible = menuVisible;
+ if (this.mHasMenu && isAdded() && !isHidden()) {
+ this.mActivity.supportInvalidateOptionsMenu();
+ }
+ }
+ }
+
+ public void setUserVisibleHint(boolean isVisibleToUser) {
+ if (!this.mUserVisibleHint && isVisibleToUser && this.mState < 4) {
+ this.mFragmentManager.performPendingDeferredStart(this);
+ }
+ this.mUserVisibleHint = isVisibleToUser;
+ this.mDeferStart = !isVisibleToUser;
+ }
+
+ public boolean getUserVisibleHint() {
+ return this.mUserVisibleHint;
+ }
+
+ public LoaderManager getLoaderManager() {
+ if (this.mLoaderManager != null) {
+ return this.mLoaderManager;
+ }
+ if (this.mActivity == null) {
+ throw new IllegalStateException("Fragment " + this + " not attached to Activity");
+ }
+ this.mCheckedForLoaderManager = true;
+ this.mLoaderManager = this.mActivity.getLoaderManager(this.mIndex, this.mLoadersStarted, true);
+ return this.mLoaderManager;
+ }
+
+ public void startActivity(Intent intent) {
+ if (this.mActivity == null) {
+ throw new IllegalStateException("Fragment " + this + " not attached to Activity");
+ }
+ this.mActivity.startActivityFromFragment(this, intent, -1);
+ }
+
+ public void startActivityForResult(Intent intent, int requestCode) {
+ if (this.mActivity == null) {
+ throw new IllegalStateException("Fragment " + this + " not attached to Activity");
+ }
+ this.mActivity.startActivityFromFragment(this, intent, requestCode);
+ }
+
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ }
+
+ public LayoutInflater getLayoutInflater(Bundle savedInstanceState) {
+ return this.mActivity.getLayoutInflater();
+ }
+
+ public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) {
+ this.mCalled = true;
+ }
+
+ public void onAttach(Activity activity) {
+ this.mCalled = true;
+ }
+
+ public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
+ return null;
+ }
+
+ public void onCreate(Bundle savedInstanceState) {
+ this.mCalled = true;
+ }
+
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return null;
+ }
+
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ }
+
+ public View getView() {
+ return this.mView;
+ }
+
+ public void onActivityCreated(Bundle savedInstanceState) {
+ this.mCalled = true;
+ }
+
+ public void onStart() {
+ this.mCalled = true;
+ if (!this.mLoadersStarted) {
+ this.mLoadersStarted = true;
+ if (!this.mCheckedForLoaderManager) {
+ this.mCheckedForLoaderManager = true;
+ this.mLoaderManager = this.mActivity.getLoaderManager(this.mIndex, this.mLoadersStarted, false);
+ }
+ if (this.mLoaderManager != null) {
+ this.mLoaderManager.doStart();
+ }
+ }
+ }
+
+ public void onResume() {
+ this.mCalled = true;
+ }
+
+ public void onSaveInstanceState(Bundle outState) {
+ }
+
+ @Override // android.content.ComponentCallbacks
+ public void onConfigurationChanged(Configuration newConfig) {
+ this.mCalled = true;
+ }
+
+ public void onPause() {
+ this.mCalled = true;
+ }
+
+ public void onStop() {
+ this.mCalled = true;
+ }
+
+ @Override // android.content.ComponentCallbacks
+ public void onLowMemory() {
+ this.mCalled = true;
+ }
+
+ public void onDestroyView() {
+ this.mCalled = true;
+ }
+
+ public void onDestroy() {
+ this.mCalled = true;
+ if (!this.mCheckedForLoaderManager) {
+ this.mCheckedForLoaderManager = true;
+ this.mLoaderManager = this.mActivity.getLoaderManager(this.mIndex, this.mLoadersStarted, false);
+ }
+ if (this.mLoaderManager != null) {
+ this.mLoaderManager.doDestroy();
+ }
+ }
+
+ public void initState() {
+ this.mIndex = -1;
+ this.mWho = null;
+ this.mAdded = false;
+ this.mRemoving = false;
+ this.mResumed = false;
+ this.mFromLayout = false;
+ this.mInLayout = false;
+ this.mRestored = false;
+ this.mBackStackNesting = 0;
+ this.mFragmentManager = null;
+ this.mActivity = null;
+ this.mFragmentId = 0;
+ this.mContainerId = 0;
+ this.mTag = null;
+ this.mHidden = false;
+ this.mDetached = false;
+ this.mRetaining = false;
+ this.mLoaderManager = null;
+ this.mLoadersStarted = false;
+ this.mCheckedForLoaderManager = false;
+ }
+
+ public void onDetach() {
+ this.mCalled = true;
+ }
+
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ }
+
+ public void onPrepareOptionsMenu(Menu menu) {
+ }
+
+ public void onDestroyOptionsMenu() {
+ }
+
+ public boolean onOptionsItemSelected(MenuItem item) {
+ return false;
+ }
+
+ public void onOptionsMenuClosed(Menu menu) {
+ }
+
+ @Override // android.view.View.OnCreateContextMenuListener
+ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+ getActivity().onCreateContextMenu(menu, v, menuInfo);
+ }
+
+ public void registerForContextMenu(View view) {
+ view.setOnCreateContextMenuListener(this);
+ }
+
+ public void unregisterForContextMenu(View view) {
+ view.setOnCreateContextMenuListener(null);
+ }
+
+ public boolean onContextItemSelected(MenuItem item) {
+ return false;
+ }
+
+ public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
+ writer.print(prefix);
+ writer.print("mFragmentId=#");
+ writer.print(Integer.toHexString(this.mFragmentId));
+ writer.print(" mContainerId=#");
+ writer.print(Integer.toHexString(this.mContainerId));
+ writer.print(" mTag=");
+ writer.println(this.mTag);
+ writer.print(prefix);
+ writer.print("mState=");
+ writer.print(this.mState);
+ writer.print(" mIndex=");
+ writer.print(this.mIndex);
+ writer.print(" mWho=");
+ writer.print(this.mWho);
+ writer.print(" mBackStackNesting=");
+ writer.println(this.mBackStackNesting);
+ writer.print(prefix);
+ writer.print("mAdded=");
+ writer.print(this.mAdded);
+ writer.print(" mRemoving=");
+ writer.print(this.mRemoving);
+ writer.print(" mResumed=");
+ writer.print(this.mResumed);
+ writer.print(" mFromLayout=");
+ writer.print(this.mFromLayout);
+ writer.print(" mInLayout=");
+ writer.println(this.mInLayout);
+ writer.print(prefix);
+ writer.print("mHidden=");
+ writer.print(this.mHidden);
+ writer.print(" mDetached=");
+ writer.print(this.mDetached);
+ writer.print(" mMenuVisible=");
+ writer.print(this.mMenuVisible);
+ writer.print(" mHasMenu=");
+ writer.println(this.mHasMenu);
+ writer.print(prefix);
+ writer.print("mRetainInstance=");
+ writer.print(this.mRetainInstance);
+ writer.print(" mRetaining=");
+ writer.print(this.mRetaining);
+ writer.print(" mUserVisibleHint=");
+ writer.println(this.mUserVisibleHint);
+ if (this.mFragmentManager != null) {
+ writer.print(prefix);
+ writer.print("mFragmentManager=");
+ writer.println(this.mFragmentManager);
+ }
+ if (this.mActivity != null) {
+ writer.print(prefix);
+ writer.print("mActivity=");
+ writer.println(this.mActivity);
+ }
+ if (this.mArguments != null) {
+ writer.print(prefix);
+ writer.print("mArguments=");
+ writer.println(this.mArguments);
+ }
+ if (this.mSavedFragmentState != null) {
+ writer.print(prefix);
+ writer.print("mSavedFragmentState=");
+ writer.println(this.mSavedFragmentState);
+ }
+ if (this.mSavedViewState != null) {
+ writer.print(prefix);
+ writer.print("mSavedViewState=");
+ writer.println(this.mSavedViewState);
+ }
+ if (this.mTarget != null) {
+ writer.print(prefix);
+ writer.print("mTarget=");
+ writer.print(this.mTarget);
+ writer.print(" mTargetRequestCode=");
+ writer.println(this.mTargetRequestCode);
+ }
+ if (this.mNextAnim != 0) {
+ writer.print(prefix);
+ writer.print("mNextAnim=");
+ writer.println(this.mNextAnim);
+ }
+ if (this.mContainer != null) {
+ writer.print(prefix);
+ writer.print("mContainer=");
+ writer.println(this.mContainer);
+ }
+ if (this.mView != null) {
+ writer.print(prefix);
+ writer.print("mView=");
+ writer.println(this.mView);
+ }
+ if (this.mInnerView != null) {
+ writer.print(prefix);
+ writer.print("mInnerView=");
+ writer.println(this.mView);
+ }
+ if (this.mAnimatingAway != null) {
+ writer.print(prefix);
+ writer.print("mAnimatingAway=");
+ writer.println(this.mAnimatingAway);
+ writer.print(prefix);
+ writer.print("mStateAfterAnimating=");
+ writer.println(this.mStateAfterAnimating);
+ }
+ if (this.mLoaderManager != null) {
+ writer.print(prefix);
+ writer.println("Loader Manager:");
+ this.mLoaderManager.dump(prefix + " ", fd, writer, args);
+ }
+ }
+
+ public void performStart() {
+ onStart();
+ if (this.mLoaderManager != null) {
+ this.mLoaderManager.doReportStart();
+ }
+ }
+
+ public void performStop() {
+ onStop();
+ }
+
+ public void performReallyStop() {
+ if (this.mLoadersStarted) {
+ this.mLoadersStarted = false;
+ if (!this.mCheckedForLoaderManager) {
+ this.mCheckedForLoaderManager = true;
+ this.mLoaderManager = this.mActivity.getLoaderManager(this.mIndex, this.mLoadersStarted, false);
+ }
+ if (this.mLoaderManager == null) {
+ return;
+ }
+ if (!this.mActivity.mRetaining) {
+ this.mLoaderManager.doStop();
+ } else {
+ this.mLoaderManager.doRetain();
+ }
+ }
+ }
+
+ public void performDestroyView() {
+ onDestroyView();
+ if (this.mLoaderManager != null) {
+ this.mLoaderManager.doReportNextStart();
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentActivity.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentActivity.java
new file mode 100644
index 0000000..7de0e1e
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentActivity.java
@@ -0,0 +1,522 @@
+package android.support.v4.app;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.TypedArray;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.Parcelable;
+import android.support.v4.util.SparseArrayCompat;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+/* loaded from: classes.dex */
+public class FragmentActivity extends Activity {
+ private static final String FRAGMENTS_TAG = "android:support:fragments";
+ private static final int HONEYCOMB = 11;
+ static final int MSG_REALLY_STOPPED = 1;
+ static final int MSG_RESUME_PENDING = 2;
+ private static final String TAG = "FragmentActivity";
+ SparseArrayCompat mAllLoaderManagers;
+ boolean mCheckedForLoaderManager;
+ boolean mCreated;
+ LoaderManagerImpl mLoaderManager;
+ boolean mLoadersStarted;
+ boolean mOptionsMenuInvalidated;
+ boolean mReallyStopped;
+ boolean mResumed;
+ boolean mRetaining;
+ boolean mStopped;
+ final Handler mHandler = new Handler() { // from class: android.support.v4.app.FragmentActivity.1
+ @Override // android.os.Handler
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case 1:
+ if (FragmentActivity.this.mStopped) {
+ FragmentActivity.this.doReallyStop(false);
+ return;
+ }
+ return;
+ case 2:
+ FragmentActivity.this.onResumeFragments();
+ FragmentActivity.this.mFragments.execPendingActions();
+ return;
+ default:
+ super.handleMessage(msg);
+ return;
+ }
+ }
+ };
+ final FragmentManagerImpl mFragments = new FragmentManagerImpl();
+
+ /* loaded from: classes.dex */
+ static final class NonConfigurationInstances {
+ Object activity;
+ HashMap children;
+ Object custom;
+ ArrayList fragments;
+ SparseArrayCompat loaders;
+
+ NonConfigurationInstances() {
+ }
+ }
+
+ /* loaded from: classes.dex */
+ static class FragmentTag {
+ public static final int[] Fragment = {16842755, 16842960, 16842961};
+ public static final int Fragment_id = 1;
+ public static final int Fragment_name = 0;
+ public static final int Fragment_tag = 2;
+
+ FragmentTag() {
+ }
+ }
+
+ @Override // android.app.Activity
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ int index = requestCode >> 16;
+ if (index != 0) {
+ int index2 = index - 1;
+ if (this.mFragments.mActive == null || index2 < 0 || index2 >= this.mFragments.mActive.size()) {
+ Log.w(TAG, "Activity result fragment index out of range: 0x" + Integer.toHexString(requestCode));
+ return;
+ }
+ Fragment frag = this.mFragments.mActive.get(index2);
+ if (frag == null) {
+ Log.w(TAG, "Activity result no fragment exists for index: 0x" + Integer.toHexString(requestCode));
+ } else {
+ frag.onActivityResult(65535 & requestCode, resultCode, data);
+ }
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+
+ @Override // android.app.Activity
+ public void onBackPressed() {
+ if (!this.mFragments.popBackStackImmediate()) {
+ finish();
+ }
+ }
+
+ @Override // android.app.Activity, android.content.ComponentCallbacks
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ this.mFragments.dispatchConfigurationChanged(newConfig);
+ }
+
+ @Override // android.app.Activity
+ protected void onCreate(Bundle savedInstanceState) {
+ this.mFragments.attachActivity(this);
+ if (getLayoutInflater().getFactory() == null) {
+ getLayoutInflater().setFactory(this);
+ }
+ super.onCreate(savedInstanceState);
+ NonConfigurationInstances nc = (NonConfigurationInstances) getLastNonConfigurationInstance();
+ if (nc != null) {
+ this.mAllLoaderManagers = nc.loaders;
+ }
+ if (savedInstanceState != null) {
+ this.mFragments.restoreAllState(savedInstanceState.getParcelable(FRAGMENTS_TAG), nc != null ? nc.fragments : null);
+ }
+ this.mFragments.dispatchCreate();
+ }
+
+ @Override // android.app.Activity, android.view.Window.Callback
+ public boolean onCreatePanelMenu(int featureId, Menu menu) {
+ if (featureId != 0) {
+ return super.onCreatePanelMenu(featureId, menu);
+ }
+ boolean show = super.onCreatePanelMenu(featureId, menu) | this.mFragments.dispatchCreateOptionsMenu(menu, getMenuInflater());
+ if (Build.VERSION.SDK_INT >= HONEYCOMB) {
+ return show;
+ }
+ return true;
+ }
+
+ @Override // android.app.Activity, android.view.LayoutInflater.Factory
+ public View onCreateView(String name, Context context, AttributeSet attrs) {
+ Fragment fragment = null;
+ int containerId = 0;
+ if (!"fragment".equals(name)) {
+ return super.onCreateView(name, context, attrs);
+ }
+ String fname = attrs.getAttributeValue(null, "class");
+ TypedArray a = context.obtainStyledAttributes(attrs, FragmentTag.Fragment);
+ if (fname == null) {
+ fname = a.getString(0);
+ }
+ int id = a.getResourceId(1, -1);
+ String tag = a.getString(2);
+ a.recycle();
+ View parent = null;
+ if (0 != 0) {
+ containerId = parent.getId();
+ }
+ if (containerId == -1 && id == -1 && tag == null) {
+ throw new IllegalArgumentException(attrs.getPositionDescription() + ": Must specify unique android:id, android:tag, or have a parent with an id for " + fname);
+ }
+ if (id != -1) {
+ fragment = this.mFragments.findFragmentById(id);
+ }
+ if (fragment == null && tag != null) {
+ fragment = this.mFragments.findFragmentByTag(tag);
+ }
+ if (fragment == null && containerId != -1) {
+ fragment = this.mFragments.findFragmentById(containerId);
+ }
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v(TAG, "onCreateView: id=0x" + Integer.toHexString(id) + " fname=" + fname + " existing=" + fragment);
+ }
+ if (fragment == null) {
+ fragment = Fragment.instantiate(this, fname);
+ fragment.mFromLayout = true;
+ fragment.mFragmentId = id != 0 ? id : containerId;
+ fragment.mContainerId = containerId;
+ fragment.mTag = tag;
+ fragment.mInLayout = true;
+ fragment.mFragmentManager = this.mFragments;
+ fragment.onInflate(this, attrs, fragment.mSavedFragmentState);
+ this.mFragments.addFragment(fragment, true);
+ } else if (fragment.mInLayout) {
+ throw new IllegalArgumentException(attrs.getPositionDescription() + ": Duplicate id 0x" + Integer.toHexString(id) + ", tag " + tag + ", or parent id 0x" + Integer.toHexString(containerId) + " with another fragment for " + fname);
+ } else {
+ fragment.mInLayout = true;
+ if (!fragment.mRetaining) {
+ fragment.onInflate(this, attrs, fragment.mSavedFragmentState);
+ }
+ this.mFragments.moveToState(fragment);
+ }
+ if (fragment.mView == null) {
+ throw new IllegalStateException("Fragment " + fname + " did not create a view.");
+ }
+ if (id != 0) {
+ fragment.mView.setId(id);
+ }
+ if (fragment.mView.getTag() == null) {
+ fragment.mView.setTag(tag);
+ }
+ return fragment.mView;
+ }
+
+ @Override // android.app.Activity
+ protected void onDestroy() {
+ super.onDestroy();
+ doReallyStop(false);
+ this.mFragments.dispatchDestroy();
+ if (this.mLoaderManager != null) {
+ this.mLoaderManager.doDestroy();
+ }
+ }
+
+ @Override // android.app.Activity, android.view.KeyEvent.Callback
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (Build.VERSION.SDK_INT >= 5 || keyCode != 4 || event.getRepeatCount() != 0) {
+ return super.onKeyDown(keyCode, event);
+ }
+ onBackPressed();
+ return true;
+ }
+
+ @Override // android.app.Activity, android.content.ComponentCallbacks
+ public void onLowMemory() {
+ super.onLowMemory();
+ this.mFragments.dispatchLowMemory();
+ }
+
+ @Override // android.app.Activity, android.view.Window.Callback
+ public boolean onMenuItemSelected(int featureId, MenuItem item) {
+ if (super.onMenuItemSelected(featureId, item)) {
+ return true;
+ }
+ switch (featureId) {
+ case 0:
+ return this.mFragments.dispatchOptionsItemSelected(item);
+ case 6:
+ return this.mFragments.dispatchContextItemSelected(item);
+ default:
+ return false;
+ }
+ }
+
+ @Override // android.app.Activity, android.view.Window.Callback
+ public void onPanelClosed(int featureId, Menu menu) {
+ switch (featureId) {
+ case 0:
+ this.mFragments.dispatchOptionsMenuClosed(menu);
+ break;
+ }
+ super.onPanelClosed(featureId, menu);
+ }
+
+ @Override // android.app.Activity
+ protected void onPause() {
+ super.onPause();
+ this.mResumed = false;
+ if (this.mHandler.hasMessages(2)) {
+ this.mHandler.removeMessages(2);
+ onResumeFragments();
+ }
+ this.mFragments.dispatchPause();
+ }
+
+ @Override // android.app.Activity
+ protected void onResume() {
+ super.onResume();
+ this.mHandler.sendEmptyMessage(2);
+ this.mResumed = true;
+ this.mFragments.execPendingActions();
+ }
+
+ @Override // android.app.Activity
+ protected void onPostResume() {
+ super.onPostResume();
+ this.mHandler.removeMessages(2);
+ onResumeFragments();
+ this.mFragments.execPendingActions();
+ }
+
+ protected void onResumeFragments() {
+ this.mFragments.dispatchResume();
+ }
+
+ @Override // android.app.Activity, android.view.Window.Callback
+ public boolean onPreparePanel(int featureId, View view, Menu menu) {
+ if (featureId != 0 || menu == null) {
+ return super.onPreparePanel(featureId, view, menu);
+ }
+ if (this.mOptionsMenuInvalidated) {
+ this.mOptionsMenuInvalidated = false;
+ menu.clear();
+ onCreatePanelMenu(featureId, menu);
+ }
+ if ((!super.onPreparePanel(featureId, view, menu) && !this.mFragments.dispatchPrepareOptionsMenu(menu)) || !menu.hasVisibleItems()) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override // android.app.Activity
+ public final Object onRetainNonConfigurationInstance() {
+ if (this.mStopped) {
+ doReallyStop(true);
+ }
+ Object custom = onRetainCustomNonConfigurationInstance();
+ ArrayList fragments = this.mFragments.retainNonConfig();
+ boolean retainLoaders = false;
+ if (this.mAllLoaderManagers != null) {
+ for (int i = this.mAllLoaderManagers.size() - 1; i >= 0; i--) {
+ LoaderManagerImpl lm = this.mAllLoaderManagers.valueAt(i);
+ if (lm.mRetaining) {
+ retainLoaders = true;
+ } else {
+ lm.doDestroy();
+ this.mAllLoaderManagers.removeAt(i);
+ }
+ }
+ }
+ if (fragments == null && !retainLoaders && custom == null) {
+ return null;
+ }
+ NonConfigurationInstances nci = new NonConfigurationInstances();
+ nci.activity = null;
+ nci.custom = custom;
+ nci.children = null;
+ nci.fragments = fragments;
+ nci.loaders = this.mAllLoaderManagers;
+ return nci;
+ }
+
+ @Override // android.app.Activity
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ Parcelable p = this.mFragments.saveAllState();
+ if (p != null) {
+ outState.putParcelable(FRAGMENTS_TAG, p);
+ }
+ }
+
+ @Override // android.app.Activity
+ protected void onStart() {
+ super.onStart();
+ this.mStopped = false;
+ this.mReallyStopped = false;
+ this.mHandler.removeMessages(1);
+ if (!this.mCreated) {
+ this.mCreated = true;
+ this.mFragments.dispatchActivityCreated();
+ }
+ this.mFragments.noteStateNotSaved();
+ this.mFragments.execPendingActions();
+ if (!this.mLoadersStarted) {
+ this.mLoadersStarted = true;
+ if (this.mLoaderManager != null) {
+ this.mLoaderManager.doStart();
+ } else if (!this.mCheckedForLoaderManager) {
+ this.mLoaderManager = getLoaderManager(-1, this.mLoadersStarted, false);
+ }
+ this.mCheckedForLoaderManager = true;
+ }
+ this.mFragments.dispatchStart();
+ if (this.mAllLoaderManagers != null) {
+ for (int i = this.mAllLoaderManagers.size() - 1; i >= 0; i--) {
+ LoaderManagerImpl lm = this.mAllLoaderManagers.valueAt(i);
+ lm.finishRetain();
+ lm.doReportStart();
+ }
+ }
+ }
+
+ @Override // android.app.Activity
+ protected void onStop() {
+ super.onStop();
+ this.mStopped = true;
+ this.mHandler.sendEmptyMessage(1);
+ this.mFragments.dispatchStop();
+ }
+
+ public Object onRetainCustomNonConfigurationInstance() {
+ return null;
+ }
+
+ public Object getLastCustomNonConfigurationInstance() {
+ NonConfigurationInstances nc = (NonConfigurationInstances) getLastNonConfigurationInstance();
+ if (nc != null) {
+ return nc.custom;
+ }
+ return null;
+ }
+
+ public void supportInvalidateOptionsMenu() {
+ if (Build.VERSION.SDK_INT >= HONEYCOMB) {
+ ActivityCompatHoneycomb.invalidateOptionsMenu(this);
+ } else {
+ this.mOptionsMenuInvalidated = true;
+ }
+ }
+
+ @Override // android.app.Activity
+ public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
+ if (Build.VERSION.SDK_INT >= HONEYCOMB) {
+ }
+ writer.print(prefix);
+ writer.print("Local FragmentActivity ");
+ writer.print(Integer.toHexString(System.identityHashCode(this)));
+ writer.println(" State:");
+ String innerPrefix = prefix + " ";
+ writer.print(innerPrefix);
+ writer.print("mCreated=");
+ writer.print(this.mCreated);
+ writer.print("mResumed=");
+ writer.print(this.mResumed);
+ writer.print(" mStopped=");
+ writer.print(this.mStopped);
+ writer.print(" mReallyStopped=");
+ writer.println(this.mReallyStopped);
+ writer.print(innerPrefix);
+ writer.print("mLoadersStarted=");
+ writer.println(this.mLoadersStarted);
+ if (this.mLoaderManager != null) {
+ writer.print(prefix);
+ writer.print("Loader Manager ");
+ writer.print(Integer.toHexString(System.identityHashCode(this.mLoaderManager)));
+ writer.println(":");
+ this.mLoaderManager.dump(prefix + " ", fd, writer, args);
+ }
+ this.mFragments.dump(prefix, fd, writer, args);
+ }
+
+ void doReallyStop(boolean retaining) {
+ if (!this.mReallyStopped) {
+ this.mReallyStopped = true;
+ this.mRetaining = retaining;
+ this.mHandler.removeMessages(1);
+ onReallyStop();
+ }
+ }
+
+ void onReallyStop() {
+ if (this.mLoadersStarted) {
+ this.mLoadersStarted = false;
+ if (this.mLoaderManager != null) {
+ if (!this.mRetaining) {
+ this.mLoaderManager.doStop();
+ } else {
+ this.mLoaderManager.doRetain();
+ }
+ }
+ }
+ this.mFragments.dispatchReallyStop();
+ }
+
+ public void onAttachFragment(Fragment fragment) {
+ }
+
+ public FragmentManager getSupportFragmentManager() {
+ return this.mFragments;
+ }
+
+ @Override // android.app.Activity
+ public void startActivityForResult(Intent intent, int requestCode) {
+ if (requestCode == -1 || (-65536 & requestCode) == 0) {
+ super.startActivityForResult(intent, requestCode);
+ return;
+ }
+ throw new IllegalArgumentException("Can only use lower 16 bits for requestCode");
+ }
+
+ public void startActivityFromFragment(Fragment fragment, Intent intent, int requestCode) {
+ if (requestCode == -1) {
+ super.startActivityForResult(intent, -1);
+ } else if ((-65536 & requestCode) != 0) {
+ throw new IllegalArgumentException("Can only use lower 16 bits for requestCode");
+ } else {
+ super.startActivityForResult(intent, ((fragment.mIndex + 1) << 16) + (65535 & requestCode));
+ }
+ }
+
+ public void invalidateSupportFragmentIndex(int index) {
+ LoaderManagerImpl lm;
+ if (this.mAllLoaderManagers != null && (lm = this.mAllLoaderManagers.get(index)) != null && !lm.mRetaining) {
+ lm.doDestroy();
+ this.mAllLoaderManagers.remove(index);
+ }
+ }
+
+ public LoaderManager getSupportLoaderManager() {
+ if (this.mLoaderManager != null) {
+ return this.mLoaderManager;
+ }
+ this.mCheckedForLoaderManager = true;
+ this.mLoaderManager = getLoaderManager(-1, this.mLoadersStarted, true);
+ return this.mLoaderManager;
+ }
+
+ public LoaderManagerImpl getLoaderManager(int index, boolean started, boolean create) {
+ if (this.mAllLoaderManagers == null) {
+ this.mAllLoaderManagers = new SparseArrayCompat<>();
+ }
+ LoaderManagerImpl lm = this.mAllLoaderManagers.get(index);
+ if (lm != null) {
+ lm.updateActivity(this);
+ return lm;
+ } else if (!create) {
+ return lm;
+ } else {
+ LoaderManagerImpl lm2 = new LoaderManagerImpl(this, started);
+ this.mAllLoaderManagers.put(index, lm2);
+ return lm2;
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManager.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManager.java
new file mode 100644
index 0000000..92e6c27
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManager.java
@@ -0,0 +1,75 @@
+package android.support.v4.app;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+/* loaded from: classes.dex */
+public abstract class FragmentManager {
+ public static final int POP_BACK_STACK_INCLUSIVE = 1;
+
+ /* loaded from: classes.dex */
+ public interface BackStackEntry {
+ CharSequence getBreadCrumbShortTitle();
+
+ int getBreadCrumbShortTitleRes();
+
+ CharSequence getBreadCrumbTitle();
+
+ int getBreadCrumbTitleRes();
+
+ int getId();
+
+ String getName();
+ }
+
+ /* loaded from: classes.dex */
+ public interface OnBackStackChangedListener {
+ void onBackStackChanged();
+ }
+
+ public abstract void addOnBackStackChangedListener(OnBackStackChangedListener onBackStackChangedListener);
+
+ public abstract FragmentTransaction beginTransaction();
+
+ public abstract void dump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, String[] strArr);
+
+ public abstract boolean executePendingTransactions();
+
+ public abstract Fragment findFragmentById(int i);
+
+ public abstract Fragment findFragmentByTag(String str);
+
+ public abstract BackStackEntry getBackStackEntryAt(int i);
+
+ public abstract int getBackStackEntryCount();
+
+ public abstract Fragment getFragment(Bundle bundle, String str);
+
+ public abstract void popBackStack();
+
+ public abstract void popBackStack(int i, int i2);
+
+ public abstract void popBackStack(String str, int i);
+
+ public abstract boolean popBackStackImmediate();
+
+ public abstract boolean popBackStackImmediate(int i, int i2);
+
+ public abstract boolean popBackStackImmediate(String str, int i);
+
+ public abstract void putFragment(Bundle bundle, String str, Fragment fragment);
+
+ public abstract void removeOnBackStackChangedListener(OnBackStackChangedListener onBackStackChangedListener);
+
+ public abstract Fragment.SavedState saveFragmentInstanceState(Fragment fragment);
+
+ @Deprecated
+ public FragmentTransaction openTransaction() {
+ return beginTransaction();
+ }
+
+ public static void enableDebugLogging(boolean enabled) {
+ FragmentManagerImpl.DEBUG = enabled;
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManagerImpl.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManagerImpl.java
new file mode 100644
index 0000000..91672cc
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManagerImpl.java
@@ -0,0 +1,1413 @@
+package android.support.v4.app;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Parcelable;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.util.DebugUtils;
+import android.support.v4.util.LogWriter;
+import android.util.Log;
+import android.util.SparseArray;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.AlphaAnimation;
+import android.view.animation.Animation;
+import android.view.animation.AnimationSet;
+import android.view.animation.AnimationUtils;
+import android.view.animation.DecelerateInterpolator;
+import android.view.animation.Interpolator;
+import android.view.animation.ScaleAnimation;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+/* compiled from: FragmentManager.java */
+/* loaded from: classes.dex */
+public final class FragmentManagerImpl extends FragmentManager {
+ static final Interpolator ACCELERATE_CUBIC;
+ static final Interpolator ACCELERATE_QUINT;
+ static final int ANIM_DUR = 220;
+ public static final int ANIM_STYLE_CLOSE_ENTER = 3;
+ public static final int ANIM_STYLE_CLOSE_EXIT = 4;
+ public static final int ANIM_STYLE_FADE_ENTER = 5;
+ public static final int ANIM_STYLE_FADE_EXIT = 6;
+ public static final int ANIM_STYLE_OPEN_ENTER = 1;
+ public static final int ANIM_STYLE_OPEN_EXIT = 2;
+ static boolean DEBUG = false;
+ static final Interpolator DECELERATE_CUBIC;
+ static final Interpolator DECELERATE_QUINT;
+ static final boolean HONEYCOMB;
+ static final String TAG = "FragmentManager";
+ static final String TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state";
+ static final String TARGET_STATE_TAG = "android:target_state";
+ static final String USER_VISIBLE_HINT_TAG = "android:user_visible_hint";
+ static final String VIEW_STATE_TAG = "android:view_state";
+ ArrayList mActive;
+ FragmentActivity mActivity;
+ ArrayList mAdded;
+ ArrayList mAvailBackStackIndices;
+ ArrayList mAvailIndices;
+ ArrayList mBackStack;
+ ArrayList mBackStackChangeListeners;
+ ArrayList mBackStackIndices;
+ ArrayList mCreatedMenus;
+ boolean mDestroyed;
+ boolean mExecutingActions;
+ boolean mHavePendingDeferredStart;
+ boolean mNeedMenuInvalidate;
+ String mNoTransactionsBecause;
+ ArrayList mPendingActions;
+ boolean mStateSaved;
+ Runnable[] mTmpActions;
+ int mCurState = 0;
+ Bundle mStateBundle = null;
+ SparseArray mStateArray = null;
+ Runnable mExecCommit = new Runnable() { // from class: android.support.v4.app.FragmentManagerImpl.1
+ @Override // java.lang.Runnable
+ public void run() {
+ FragmentManagerImpl.this.execPendingActions();
+ }
+ };
+
+ static {
+ boolean z = HONEYCOMB;
+ DEBUG = HONEYCOMB;
+ if (Build.VERSION.SDK_INT >= 11) {
+ z = true;
+ }
+ HONEYCOMB = z;
+ DECELERATE_QUINT = new DecelerateInterpolator(2.5f);
+ DECELERATE_CUBIC = new DecelerateInterpolator(1.5f);
+ ACCELERATE_QUINT = new AccelerateInterpolator(2.5f);
+ ACCELERATE_CUBIC = new AccelerateInterpolator(1.5f);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public FragmentTransaction beginTransaction() {
+ return new BackStackRecord(this);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public boolean executePendingTransactions() {
+ return execPendingActions();
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void popBackStack() {
+ enqueueAction(new Runnable() { // from class: android.support.v4.app.FragmentManagerImpl.2
+ @Override // java.lang.Runnable
+ public void run() {
+ FragmentManagerImpl.this.popBackStackState(FragmentManagerImpl.this.mActivity.mHandler, null, -1, 0);
+ }
+ }, HONEYCOMB);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public boolean popBackStackImmediate() {
+ checkStateLoss();
+ executePendingTransactions();
+ return popBackStackState(this.mActivity.mHandler, null, -1, 0);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void popBackStack(final String name, final int flags) {
+ enqueueAction(new Runnable() { // from class: android.support.v4.app.FragmentManagerImpl.3
+ @Override // java.lang.Runnable
+ public void run() {
+ FragmentManagerImpl.this.popBackStackState(FragmentManagerImpl.this.mActivity.mHandler, name, -1, flags);
+ }
+ }, HONEYCOMB);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public boolean popBackStackImmediate(String name, int flags) {
+ checkStateLoss();
+ executePendingTransactions();
+ return popBackStackState(this.mActivity.mHandler, name, -1, flags);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void popBackStack(final int id, final int flags) {
+ if (id < 0) {
+ throw new IllegalArgumentException("Bad id: " + id);
+ }
+ enqueueAction(new Runnable() { // from class: android.support.v4.app.FragmentManagerImpl.4
+ @Override // java.lang.Runnable
+ public void run() {
+ FragmentManagerImpl.this.popBackStackState(FragmentManagerImpl.this.mActivity.mHandler, null, id, flags);
+ }
+ }, HONEYCOMB);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public boolean popBackStackImmediate(int id, int flags) {
+ checkStateLoss();
+ executePendingTransactions();
+ if (id >= 0) {
+ return popBackStackState(this.mActivity.mHandler, null, id, flags);
+ }
+ throw new IllegalArgumentException("Bad id: " + id);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public int getBackStackEntryCount() {
+ if (this.mBackStack != null) {
+ return this.mBackStack.size();
+ }
+ return 0;
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public FragmentManager.BackStackEntry getBackStackEntryAt(int index) {
+ return this.mBackStack.get(index);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener) {
+ if (this.mBackStackChangeListeners == null) {
+ this.mBackStackChangeListeners = new ArrayList<>();
+ }
+ this.mBackStackChangeListeners.add(listener);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void removeOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener) {
+ if (this.mBackStackChangeListeners != null) {
+ this.mBackStackChangeListeners.remove(listener);
+ }
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void putFragment(Bundle bundle, String key, Fragment fragment) {
+ if (fragment.mIndex < 0) {
+ throw new IllegalStateException("Fragment " + fragment + " is not currently in the FragmentManager");
+ }
+ bundle.putInt(key, fragment.mIndex);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public Fragment getFragment(Bundle bundle, String key) {
+ int index = bundle.getInt(key, -1);
+ if (index == -1) {
+ return null;
+ }
+ if (index >= this.mActive.size()) {
+ throw new IllegalStateException("Fragement no longer exists for key " + key + ": index " + index);
+ }
+ Fragment f = this.mActive.get(index);
+ if (f != null) {
+ return f;
+ }
+ throw new IllegalStateException("Fragement no longer exists for key " + key + ": index " + index);
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public Fragment.SavedState saveFragmentInstanceState(Fragment fragment) {
+ Bundle result;
+ if (fragment.mIndex < 0) {
+ throw new IllegalStateException("Fragment " + fragment + " is not currently in the FragmentManager");
+ } else if (fragment.mState <= 0 || (result = saveFragmentBasicState(fragment)) == null) {
+ return null;
+ } else {
+ return new Fragment.SavedState(result);
+ }
+ }
+
+ public String toString() {
+ StringBuilder sb = new StringBuilder(128);
+ sb.append("FragmentManager{");
+ sb.append(Integer.toHexString(System.identityHashCode(this)));
+ sb.append(" in ");
+ DebugUtils.buildShortClassTag(this.mActivity, sb);
+ sb.append("}}");
+ return sb.toString();
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
+ int N;
+ int N2;
+ int N3;
+ int N4;
+ int N5;
+ int N6;
+ String innerPrefix = prefix + " ";
+ if (this.mActive != null && (N6 = this.mActive.size()) > 0) {
+ writer.print(prefix);
+ writer.print("Active Fragments in ");
+ writer.print(Integer.toHexString(System.identityHashCode(this)));
+ writer.println(":");
+ for (int i = 0; i < N6; i++) {
+ Fragment f = this.mActive.get(i);
+ writer.print(prefix);
+ writer.print(" #");
+ writer.print(i);
+ writer.print(": ");
+ writer.println(f);
+ if (f != null) {
+ f.dump(innerPrefix, fd, writer, args);
+ }
+ }
+ }
+ if (this.mAdded != null && (N5 = this.mAdded.size()) > 0) {
+ writer.print(prefix);
+ writer.println("Added Fragments:");
+ for (int i2 = 0; i2 < N5; i2++) {
+ writer.print(prefix);
+ writer.print(" #");
+ writer.print(i2);
+ writer.print(": ");
+ writer.println(this.mAdded.get(i2).toString());
+ }
+ }
+ if (this.mCreatedMenus != null && (N4 = this.mCreatedMenus.size()) > 0) {
+ writer.print(prefix);
+ writer.println("Fragments Created Menus:");
+ for (int i3 = 0; i3 < N4; i3++) {
+ writer.print(prefix);
+ writer.print(" #");
+ writer.print(i3);
+ writer.print(": ");
+ writer.println(this.mCreatedMenus.get(i3).toString());
+ }
+ }
+ if (this.mBackStack != null && (N3 = this.mBackStack.size()) > 0) {
+ writer.print(prefix);
+ writer.println("Back Stack:");
+ for (int i4 = 0; i4 < N3; i4++) {
+ BackStackRecord bs = this.mBackStack.get(i4);
+ writer.print(prefix);
+ writer.print(" #");
+ writer.print(i4);
+ writer.print(": ");
+ writer.println(bs.toString());
+ bs.dump(innerPrefix, fd, writer, args);
+ }
+ }
+ synchronized (this) {
+ if (this.mBackStackIndices != null && (N2 = this.mBackStackIndices.size()) > 0) {
+ writer.print(prefix);
+ writer.println("Back Stack Indices:");
+ for (int i5 = 0; i5 < N2; i5++) {
+ writer.print(prefix);
+ writer.print(" #");
+ writer.print(i5);
+ writer.print(": ");
+ writer.println(this.mBackStackIndices.get(i5));
+ }
+ }
+ if (this.mAvailBackStackIndices != null && this.mAvailBackStackIndices.size() > 0) {
+ writer.print(prefix);
+ writer.print("mAvailBackStackIndices: ");
+ writer.println(Arrays.toString(this.mAvailBackStackIndices.toArray()));
+ }
+ }
+ if (this.mPendingActions != null && (N = this.mPendingActions.size()) > 0) {
+ writer.print(prefix);
+ writer.println("Pending Actions:");
+ for (int i6 = 0; i6 < N; i6++) {
+ writer.print(prefix);
+ writer.print(" #");
+ writer.print(i6);
+ writer.print(": ");
+ writer.println(this.mPendingActions.get(i6));
+ }
+ }
+ writer.print(prefix);
+ writer.println("FragmentManager misc state:");
+ writer.print(prefix);
+ writer.print(" mCurState=");
+ writer.print(this.mCurState);
+ writer.print(" mStateSaved=");
+ writer.print(this.mStateSaved);
+ writer.print(" mDestroyed=");
+ writer.println(this.mDestroyed);
+ if (this.mNeedMenuInvalidate) {
+ writer.print(prefix);
+ writer.print(" mNeedMenuInvalidate=");
+ writer.println(this.mNeedMenuInvalidate);
+ }
+ if (this.mNoTransactionsBecause != null) {
+ writer.print(prefix);
+ writer.print(" mNoTransactionsBecause=");
+ writer.println(this.mNoTransactionsBecause);
+ }
+ if (this.mAvailIndices != null && this.mAvailIndices.size() > 0) {
+ writer.print(prefix);
+ writer.print(" mAvailIndices: ");
+ writer.println(Arrays.toString(this.mAvailIndices.toArray()));
+ }
+ }
+
+ static Animation makeOpenCloseAnimation(Context context, float startScale, float endScale, float startAlpha, float endAlpha) {
+ AnimationSet set = new AnimationSet(HONEYCOMB);
+ ScaleAnimation scale = new ScaleAnimation(startScale, endScale, startScale, endScale, 1, 0.5f, 1, 0.5f);
+ scale.setInterpolator(DECELERATE_QUINT);
+ scale.setDuration(220);
+ set.addAnimation(scale);
+ AlphaAnimation alpha = new AlphaAnimation(startAlpha, endAlpha);
+ alpha.setInterpolator(DECELERATE_CUBIC);
+ alpha.setDuration(220);
+ set.addAnimation(alpha);
+ return set;
+ }
+
+ static Animation makeFadeAnimation(Context context, float start, float end) {
+ AlphaAnimation anim = new AlphaAnimation(start, end);
+ anim.setInterpolator(DECELERATE_CUBIC);
+ anim.setDuration(220);
+ return anim;
+ }
+
+ Animation loadAnimation(Fragment fragment, int transit, boolean enter, int transitionStyle) {
+ int styleIndex;
+ Animation anim;
+ Animation animObj = fragment.onCreateAnimation(transit, enter, fragment.mNextAnim);
+ if (animObj != null) {
+ return animObj;
+ }
+ if (fragment.mNextAnim != 0 && (anim = AnimationUtils.loadAnimation(this.mActivity, fragment.mNextAnim)) != null) {
+ return anim;
+ }
+ if (transit != 0 && (styleIndex = transitToStyleIndex(transit, enter)) >= 0) {
+ switch (styleIndex) {
+ case 1:
+ return makeOpenCloseAnimation(this.mActivity, 1.125f, 1.0f, 0.0f, 1.0f);
+ case 2:
+ return makeOpenCloseAnimation(this.mActivity, 1.0f, 0.975f, 1.0f, 0.0f);
+ case 3:
+ return makeOpenCloseAnimation(this.mActivity, 0.975f, 1.0f, 0.0f, 1.0f);
+ case 4:
+ return makeOpenCloseAnimation(this.mActivity, 1.0f, 1.075f, 1.0f, 0.0f);
+ case 5:
+ return makeFadeAnimation(this.mActivity, 0.0f, 1.0f);
+ case 6:
+ return makeFadeAnimation(this.mActivity, 1.0f, 0.0f);
+ default:
+ if (transitionStyle == 0 && this.mActivity.getWindow() != null) {
+ transitionStyle = this.mActivity.getWindow().getAttributes().windowAnimations;
+ }
+ return transitionStyle == 0 ? null : null;
+ }
+ }
+ return null;
+ }
+
+ public void performPendingDeferredStart(Fragment f) {
+ if (!f.mDeferStart) {
+ return;
+ }
+ if (this.mExecutingActions) {
+ this.mHavePendingDeferredStart = true;
+ return;
+ }
+ f.mDeferStart = HONEYCOMB;
+ moveToState(f, this.mCurState, 0, 0, HONEYCOMB);
+ }
+
+ /* JADX WARN: Removed duplicated region for block: B:102:0x0225 */
+ /* JADX WARN: Removed duplicated region for block: B:111:0x026d */
+ /* JADX WARN: Removed duplicated region for block: B:125:0x02cb */
+ /* JADX WARN: Removed duplicated region for block: B:145:0x0332 */
+ /* JADX WARN: Removed duplicated region for block: B:154:0x037a */
+ /* JADX WARN: Removed duplicated region for block: B:160:0x039c */
+ /* JADX WARN: Removed duplicated region for block: B:65:0x0142 */
+ /*
+ Code decompiled incorrectly, please refer to instructions dump.
+ To view partially-correct add '--show-bad-code' argument
+ */
+ void moveToState(final android.support.v4.app.Fragment r11, int r12, int r13, int r14, boolean r15) {
+ /*
+ Method dump skipped, instructions count: 1236
+ To view this dump add '--comments-level debug' option
+ */
+ throw new UnsupportedOperationException("Method not decompiled: android.support.v4.app.FragmentManagerImpl.moveToState(android.support.v4.app.Fragment, int, int, int, boolean):void");
+ }
+
+ public void moveToState(Fragment f) {
+ moveToState(f, this.mCurState, 0, 0, HONEYCOMB);
+ }
+
+ void moveToState(int newState, boolean always) {
+ moveToState(newState, 0, 0, always);
+ }
+
+ public void moveToState(int newState, int transit, int transitStyle, boolean always) {
+ if (this.mActivity == null && newState != 0) {
+ throw new IllegalStateException("No activity");
+ } else if (always || this.mCurState != newState) {
+ this.mCurState = newState;
+ if (this.mActive != null) {
+ boolean loadersRunning = HONEYCOMB;
+ for (int i = 0; i < this.mActive.size(); i++) {
+ Fragment f = this.mActive.get(i);
+ if (f != null) {
+ moveToState(f, newState, transit, transitStyle, HONEYCOMB);
+ if (f.mLoaderManager != null) {
+ loadersRunning |= f.mLoaderManager.hasRunningLoaders();
+ }
+ }
+ }
+ if (!loadersRunning) {
+ startPendingDeferredFragments();
+ }
+ if (this.mNeedMenuInvalidate && this.mActivity != null && this.mCurState == 5) {
+ this.mActivity.supportInvalidateOptionsMenu();
+ this.mNeedMenuInvalidate = HONEYCOMB;
+ }
+ }
+ }
+ }
+
+ public void startPendingDeferredFragments() {
+ if (this.mActive != null) {
+ for (int i = 0; i < this.mActive.size(); i++) {
+ Fragment f = this.mActive.get(i);
+ if (f != null) {
+ performPendingDeferredStart(f);
+ }
+ }
+ }
+ }
+
+ void makeActive(Fragment f) {
+ if (f.mIndex < 0) {
+ if (this.mAvailIndices == null || this.mAvailIndices.size() <= 0) {
+ if (this.mActive == null) {
+ this.mActive = new ArrayList<>();
+ }
+ f.setIndex(this.mActive.size());
+ this.mActive.add(f);
+ } else {
+ f.setIndex(this.mAvailIndices.remove(this.mAvailIndices.size() - 1).intValue());
+ this.mActive.set(f.mIndex, f);
+ }
+ if (DEBUG) {
+ Log.v(TAG, "Allocated fragment index " + f);
+ }
+ }
+ }
+
+ void makeInactive(Fragment f) {
+ if (f.mIndex >= 0) {
+ if (DEBUG) {
+ Log.v(TAG, "Freeing fragment index " + f);
+ }
+ this.mActive.set(f.mIndex, null);
+ if (this.mAvailIndices == null) {
+ this.mAvailIndices = new ArrayList<>();
+ }
+ this.mAvailIndices.add(Integer.valueOf(f.mIndex));
+ this.mActivity.invalidateSupportFragmentIndex(f.mIndex);
+ f.initState();
+ }
+ }
+
+ public void addFragment(Fragment fragment, boolean moveToStateNow) {
+ if (this.mAdded == null) {
+ this.mAdded = new ArrayList<>();
+ }
+ if (DEBUG) {
+ Log.v(TAG, "add: " + fragment);
+ }
+ makeActive(fragment);
+ if (!fragment.mDetached) {
+ this.mAdded.add(fragment);
+ fragment.mAdded = true;
+ fragment.mRemoving = HONEYCOMB;
+ if (fragment.mHasMenu && fragment.mMenuVisible) {
+ this.mNeedMenuInvalidate = true;
+ }
+ if (moveToStateNow) {
+ moveToState(fragment);
+ }
+ }
+ }
+
+ public void removeFragment(Fragment fragment, int transition, int transitionStyle) {
+ boolean inactive;
+ int i;
+ if (DEBUG) {
+ Log.v(TAG, "remove: " + fragment + " nesting=" + fragment.mBackStackNesting);
+ }
+ if (!fragment.isInBackStack()) {
+ inactive = true;
+ } else {
+ inactive = false;
+ }
+ if (!fragment.mDetached || inactive) {
+ if (this.mAdded != null) {
+ this.mAdded.remove(fragment);
+ }
+ if (fragment.mHasMenu && fragment.mMenuVisible) {
+ this.mNeedMenuInvalidate = true;
+ }
+ fragment.mAdded = HONEYCOMB;
+ fragment.mRemoving = true;
+ if (inactive) {
+ i = 0;
+ } else {
+ i = 1;
+ }
+ moveToState(fragment, i, transition, transitionStyle, HONEYCOMB);
+ }
+ }
+
+ public void hideFragment(Fragment fragment, int transition, int transitionStyle) {
+ if (DEBUG) {
+ Log.v(TAG, "hide: " + fragment);
+ }
+ if (!fragment.mHidden) {
+ fragment.mHidden = true;
+ if (fragment.mView != null) {
+ Animation anim = loadAnimation(fragment, transition, true, transitionStyle);
+ if (anim != null) {
+ fragment.mView.startAnimation(anim);
+ }
+ fragment.mView.setVisibility(8);
+ }
+ if (fragment.mAdded && fragment.mHasMenu && fragment.mMenuVisible) {
+ this.mNeedMenuInvalidate = true;
+ }
+ fragment.onHiddenChanged(true);
+ }
+ }
+
+ public void showFragment(Fragment fragment, int transition, int transitionStyle) {
+ if (DEBUG) {
+ Log.v(TAG, "show: " + fragment);
+ }
+ if (fragment.mHidden) {
+ fragment.mHidden = HONEYCOMB;
+ if (fragment.mView != null) {
+ Animation anim = loadAnimation(fragment, transition, true, transitionStyle);
+ if (anim != null) {
+ fragment.mView.startAnimation(anim);
+ }
+ fragment.mView.setVisibility(0);
+ }
+ if (fragment.mAdded && fragment.mHasMenu && fragment.mMenuVisible) {
+ this.mNeedMenuInvalidate = true;
+ }
+ fragment.onHiddenChanged(HONEYCOMB);
+ }
+ }
+
+ public void detachFragment(Fragment fragment, int transition, int transitionStyle) {
+ if (DEBUG) {
+ Log.v(TAG, "detach: " + fragment);
+ }
+ if (!fragment.mDetached) {
+ fragment.mDetached = true;
+ if (fragment.mAdded) {
+ if (this.mAdded != null) {
+ this.mAdded.remove(fragment);
+ }
+ if (fragment.mHasMenu && fragment.mMenuVisible) {
+ this.mNeedMenuInvalidate = true;
+ }
+ fragment.mAdded = HONEYCOMB;
+ moveToState(fragment, 1, transition, transitionStyle, HONEYCOMB);
+ }
+ }
+ }
+
+ public void attachFragment(Fragment fragment, int transition, int transitionStyle) {
+ if (DEBUG) {
+ Log.v(TAG, "attach: " + fragment);
+ }
+ if (fragment.mDetached) {
+ fragment.mDetached = HONEYCOMB;
+ if (!fragment.mAdded) {
+ if (this.mAdded == null) {
+ this.mAdded = new ArrayList<>();
+ }
+ this.mAdded.add(fragment);
+ fragment.mAdded = true;
+ if (fragment.mHasMenu && fragment.mMenuVisible) {
+ this.mNeedMenuInvalidate = true;
+ }
+ moveToState(fragment, this.mCurState, transition, transitionStyle, HONEYCOMB);
+ }
+ }
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public Fragment findFragmentById(int id) {
+ if (this.mAdded != null) {
+ for (int i = this.mAdded.size() - 1; i >= 0; i--) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && f.mFragmentId == id) {
+ return f;
+ }
+ }
+ }
+ if (this.mActive != null) {
+ for (int i2 = this.mActive.size() - 1; i2 >= 0; i2--) {
+ Fragment f2 = this.mActive.get(i2);
+ if (f2 != null && f2.mFragmentId == id) {
+ return f2;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override // android.support.v4.app.FragmentManager
+ public Fragment findFragmentByTag(String tag) {
+ if (!(this.mAdded == null || tag == null)) {
+ for (int i = this.mAdded.size() - 1; i >= 0; i--) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && tag.equals(f.mTag)) {
+ return f;
+ }
+ }
+ }
+ if (!(this.mActive == null || tag == null)) {
+ for (int i2 = this.mActive.size() - 1; i2 >= 0; i2--) {
+ Fragment f2 = this.mActive.get(i2);
+ if (f2 != null && tag.equals(f2.mTag)) {
+ return f2;
+ }
+ }
+ }
+ return null;
+ }
+
+ public Fragment findFragmentByWho(String who) {
+ if (!(this.mActive == null || who == null)) {
+ for (int i = this.mActive.size() - 1; i >= 0; i--) {
+ Fragment f = this.mActive.get(i);
+ if (f != null && who.equals(f.mWho)) {
+ return f;
+ }
+ }
+ }
+ return null;
+ }
+
+ private void checkStateLoss() {
+ if (this.mStateSaved) {
+ throw new IllegalStateException("Can not perform this action after onSaveInstanceState");
+ } else if (this.mNoTransactionsBecause != null) {
+ throw new IllegalStateException("Can not perform this action inside of " + this.mNoTransactionsBecause);
+ }
+ }
+
+ public void enqueueAction(Runnable action, boolean allowStateLoss) {
+ if (!allowStateLoss) {
+ checkStateLoss();
+ }
+ synchronized (this) {
+ if (this.mActivity == null) {
+ throw new IllegalStateException("Activity has been destroyed");
+ }
+ if (this.mPendingActions == null) {
+ this.mPendingActions = new ArrayList<>();
+ }
+ this.mPendingActions.add(action);
+ if (this.mPendingActions.size() == 1) {
+ this.mActivity.mHandler.removeCallbacks(this.mExecCommit);
+ this.mActivity.mHandler.post(this.mExecCommit);
+ }
+ }
+ }
+
+ public int allocBackStackIndex(BackStackRecord bse) {
+ synchronized (this) {
+ if (this.mAvailBackStackIndices == null || this.mAvailBackStackIndices.size() <= 0) {
+ if (this.mBackStackIndices == null) {
+ this.mBackStackIndices = new ArrayList<>();
+ }
+ int index = this.mBackStackIndices.size();
+ if (DEBUG) {
+ Log.v(TAG, "Setting back stack index " + index + " to " + bse);
+ }
+ this.mBackStackIndices.add(bse);
+ return index;
+ }
+ int index2 = this.mAvailBackStackIndices.remove(this.mAvailBackStackIndices.size() - 1).intValue();
+ if (DEBUG) {
+ Log.v(TAG, "Adding back stack index " + index2 + " with " + bse);
+ }
+ this.mBackStackIndices.set(index2, bse);
+ return index2;
+ }
+ }
+
+ public void setBackStackIndex(int index, BackStackRecord bse) {
+ synchronized (this) {
+ if (this.mBackStackIndices == null) {
+ this.mBackStackIndices = new ArrayList<>();
+ }
+ int N = this.mBackStackIndices.size();
+ if (index < N) {
+ if (DEBUG) {
+ Log.v(TAG, "Setting back stack index " + index + " to " + bse);
+ }
+ this.mBackStackIndices.set(index, bse);
+ } else {
+ while (N < index) {
+ this.mBackStackIndices.add(null);
+ if (this.mAvailBackStackIndices == null) {
+ this.mAvailBackStackIndices = new ArrayList<>();
+ }
+ if (DEBUG) {
+ Log.v(TAG, "Adding available back stack index " + N);
+ }
+ this.mAvailBackStackIndices.add(Integer.valueOf(N));
+ N++;
+ }
+ if (DEBUG) {
+ Log.v(TAG, "Adding back stack index " + index + " with " + bse);
+ }
+ this.mBackStackIndices.add(bse);
+ }
+ }
+ }
+
+ public void freeBackStackIndex(int index) {
+ synchronized (this) {
+ this.mBackStackIndices.set(index, null);
+ if (this.mAvailBackStackIndices == null) {
+ this.mAvailBackStackIndices = new ArrayList<>();
+ }
+ if (DEBUG) {
+ Log.v(TAG, "Freeing back stack index " + index);
+ }
+ this.mAvailBackStackIndices.add(Integer.valueOf(index));
+ }
+ }
+
+ /* JADX WARN: Code restructure failed: missing block: B:35:0x0081, code lost:
+ r8.mExecutingActions = true;
+ r2 = 0;
+ */
+ /* JADX WARN: Code restructure failed: missing block: B:36:0x0085, code lost:
+ if (r2 >= r4) goto L_0x0099;
+ */
+ /* JADX WARN: Code restructure failed: missing block: B:37:0x0087, code lost:
+ r8.mTmpActions[r2].run();
+ r8.mTmpActions[r2] = null;
+ r2 = r2 + 1;
+ */
+ /*
+ Code decompiled incorrectly, please refer to instructions dump.
+ To view partially-correct add '--show-bad-code' argument
+ */
+ public boolean execPendingActions() {
+ /*
+ r8 = this;
+ r7 = 0
+ boolean r5 = r8.mExecutingActions
+ if (r5 == 0) goto L_0x000d
+ java.lang.IllegalStateException r5 = new java.lang.IllegalStateException
+ java.lang.String r6 = "Recursive entry to executePendingTransactions"
+ r5.(r6)
+ throw r5
+ L_0x000d:
+ android.os.Looper r5 = android.os.Looper.myLooper()
+ android.support.v4.app.FragmentActivity r6 = r8.mActivity
+ android.os.Handler r6 = r6.mHandler
+ android.os.Looper r6 = r6.getLooper()
+ if (r5 == r6) goto L_0x0023
+ java.lang.IllegalStateException r5 = new java.lang.IllegalStateException
+ java.lang.String r6 = "Must be called from main thread of process"
+ r5.(r6)
+ throw r5
+ L_0x0023:
+ r0 = 0
+ L_0x0024:
+ monitor-enter(r8)
+ java.util.ArrayList r5 = r8.mPendingActions // Catch: all -> 0x0096
+ if (r5 == 0) goto L_0x0031
+ java.util.ArrayList r5 = r8.mPendingActions // Catch: all -> 0x0096
+ int r5 = r5.size() // Catch: all -> 0x0096
+ if (r5 != 0) goto L_0x0058
+ L_0x0031:
+ monitor-exit(r8) // Catch: all -> 0x0096
+ boolean r5 = r8.mHavePendingDeferredStart
+ if (r5 == 0) goto L_0x00a4
+ r3 = 0
+ r2 = 0
+ L_0x0038:
+ java.util.ArrayList r5 = r8.mActive
+ int r5 = r5.size()
+ if (r2 >= r5) goto L_0x009d
+ java.util.ArrayList r5 = r8.mActive
+ java.lang.Object r1 = r5.get(r2)
+ android.support.v4.app.Fragment r1 = (android.support.v4.app.Fragment) r1
+ if (r1 == 0) goto L_0x0055
+ android.support.v4.app.LoaderManagerImpl r5 = r1.mLoaderManager
+ if (r5 == 0) goto L_0x0055
+ android.support.v4.app.LoaderManagerImpl r5 = r1.mLoaderManager
+ boolean r5 = r5.hasRunningLoaders()
+ r3 = r3 | r5
+ L_0x0055:
+ int r2 = r2 + 1
+ goto L_0x0038
+ L_0x0058:
+ java.util.ArrayList r5 = r8.mPendingActions // Catch: all -> 0x0096
+ int r4 = r5.size() // Catch: all -> 0x0096
+ java.lang.Runnable[] r5 = r8.mTmpActions // Catch: all -> 0x0096
+ if (r5 == 0) goto L_0x0067
+ java.lang.Runnable[] r5 = r8.mTmpActions // Catch: all -> 0x0096
+ int r5 = r5.length // Catch: all -> 0x0096
+ if (r5 >= r4) goto L_0x006b
+ L_0x0067:
+ java.lang.Runnable[] r5 = new java.lang.Runnable[r4] // Catch: all -> 0x0096
+ r8.mTmpActions = r5 // Catch: all -> 0x0096
+ L_0x006b:
+ java.util.ArrayList r5 = r8.mPendingActions // Catch: all -> 0x0096
+ java.lang.Runnable[] r6 = r8.mTmpActions // Catch: all -> 0x0096
+ r5.toArray(r6) // Catch: all -> 0x0096
+ java.util.ArrayList r5 = r8.mPendingActions // Catch: all -> 0x0096
+ r5.clear() // Catch: all -> 0x0096
+ android.support.v4.app.FragmentActivity r5 = r8.mActivity // Catch: all -> 0x0096
+ android.os.Handler r5 = r5.mHandler // Catch: all -> 0x0096
+ java.lang.Runnable r6 = r8.mExecCommit // Catch: all -> 0x0096
+ r5.removeCallbacks(r6) // Catch: all -> 0x0096
+ monitor-exit(r8) // Catch: all -> 0x0096
+ r5 = 1
+ r8.mExecutingActions = r5
+ r2 = 0
+ L_0x0085:
+ if (r2 >= r4) goto L_0x0099
+ java.lang.Runnable[] r5 = r8.mTmpActions
+ r5 = r5[r2]
+ r5.run()
+ java.lang.Runnable[] r5 = r8.mTmpActions
+ r6 = 0
+ r5[r2] = r6
+ int r2 = r2 + 1
+ goto L_0x0085
+ L_0x0096:
+ r5 = move-exception
+ monitor-exit(r8) // Catch: all -> 0x0096
+ throw r5
+ L_0x0099:
+ r8.mExecutingActions = r7
+ r0 = 1
+ goto L_0x0024
+ L_0x009d:
+ if (r3 != 0) goto L_0x00a4
+ r8.mHavePendingDeferredStart = r7
+ r8.startPendingDeferredFragments()
+ L_0x00a4:
+ return r0
+ */
+ throw new UnsupportedOperationException("Method not decompiled: android.support.v4.app.FragmentManagerImpl.execPendingActions():boolean");
+ }
+
+ void reportBackStackChanged() {
+ if (this.mBackStackChangeListeners != null) {
+ for (int i = 0; i < this.mBackStackChangeListeners.size(); i++) {
+ this.mBackStackChangeListeners.get(i).onBackStackChanged();
+ }
+ }
+ }
+
+ public void addBackStackState(BackStackRecord state) {
+ if (this.mBackStack == null) {
+ this.mBackStack = new ArrayList<>();
+ }
+ this.mBackStack.add(state);
+ reportBackStackChanged();
+ }
+
+ boolean popBackStackState(Handler handler, String name, int id, int flags) {
+ boolean z;
+ if (this.mBackStack == null) {
+ return HONEYCOMB;
+ }
+ if (name == null && id < 0 && (flags & 1) == 0) {
+ int last = this.mBackStack.size() - 1;
+ if (last < 0) {
+ return HONEYCOMB;
+ }
+ this.mBackStack.remove(last).popFromBackStack(true);
+ reportBackStackChanged();
+ } else {
+ int index = -1;
+ if (name != null || id >= 0) {
+ index = this.mBackStack.size() - 1;
+ while (index >= 0) {
+ BackStackRecord bss = this.mBackStack.get(index);
+ if ((name != null && name.equals(bss.getName())) || (id >= 0 && id == bss.mIndex)) {
+ break;
+ }
+ index--;
+ }
+ if (index < 0) {
+ return HONEYCOMB;
+ }
+ if ((flags & 1) != 0) {
+ index--;
+ while (index >= 0) {
+ BackStackRecord bss2 = this.mBackStack.get(index);
+ if ((name == null || !name.equals(bss2.getName())) && (id < 0 || id != bss2.mIndex)) {
+ break;
+ }
+ index--;
+ }
+ }
+ }
+ if (index == this.mBackStack.size() - 1) {
+ return HONEYCOMB;
+ }
+ ArrayList states = new ArrayList<>();
+ for (int i = this.mBackStack.size() - 1; i > index; i--) {
+ states.add(this.mBackStack.remove(i));
+ }
+ int LAST = states.size() - 1;
+ for (int i2 = 0; i2 <= LAST; i2++) {
+ if (DEBUG) {
+ Log.v(TAG, "Popping back stack state: " + states.get(i2));
+ }
+ BackStackRecord backStackRecord = states.get(i2);
+ if (i2 == LAST) {
+ z = true;
+ } else {
+ z = false;
+ }
+ backStackRecord.popFromBackStack(z);
+ }
+ reportBackStackChanged();
+ }
+ return true;
+ }
+
+ public ArrayList retainNonConfig() {
+ ArrayList fragments = null;
+ if (this.mActive != null) {
+ for (int i = 0; i < this.mActive.size(); i++) {
+ Fragment f = this.mActive.get(i);
+ if (f != null && f.mRetainInstance) {
+ if (fragments == null) {
+ fragments = new ArrayList<>();
+ }
+ fragments.add(f);
+ f.mRetaining = true;
+ f.mTargetIndex = f.mTarget != null ? f.mTarget.mIndex : -1;
+ if (DEBUG) {
+ Log.v(TAG, "retainNonConfig: keeping retained " + f);
+ }
+ }
+ }
+ }
+ return fragments;
+ }
+
+ void saveFragmentViewState(Fragment f) {
+ if (f.mInnerView != null) {
+ if (this.mStateArray == null) {
+ this.mStateArray = new SparseArray<>();
+ } else {
+ this.mStateArray.clear();
+ }
+ f.mInnerView.saveHierarchyState(this.mStateArray);
+ if (this.mStateArray.size() > 0) {
+ f.mSavedViewState = this.mStateArray;
+ this.mStateArray = null;
+ }
+ }
+ }
+
+ Bundle saveFragmentBasicState(Fragment f) {
+ Bundle result = null;
+ if (this.mStateBundle == null) {
+ this.mStateBundle = new Bundle();
+ }
+ f.onSaveInstanceState(this.mStateBundle);
+ if (!this.mStateBundle.isEmpty()) {
+ result = this.mStateBundle;
+ this.mStateBundle = null;
+ }
+ if (f.mView != null) {
+ saveFragmentViewState(f);
+ }
+ if (f.mSavedViewState != null) {
+ if (result == null) {
+ result = new Bundle();
+ }
+ result.putSparseParcelableArray(VIEW_STATE_TAG, f.mSavedViewState);
+ }
+ if (!f.mUserVisibleHint) {
+ if (result == null) {
+ result = new Bundle();
+ }
+ result.putBoolean(USER_VISIBLE_HINT_TAG, f.mUserVisibleHint);
+ }
+ return result;
+ }
+
+ public Parcelable saveAllState() {
+ int N;
+ int N2;
+ execPendingActions();
+ if (HONEYCOMB) {
+ this.mStateSaved = true;
+ }
+ if (this.mActive == null || this.mActive.size() <= 0) {
+ return null;
+ }
+ int N3 = this.mActive.size();
+ FragmentState[] active = new FragmentState[N3];
+ boolean haveFragments = HONEYCOMB;
+ for (int i = 0; i < N3; i++) {
+ Fragment f = this.mActive.get(i);
+ if (f != null) {
+ if (f.mIndex < 0) {
+ String msg = "Failure saving state: active " + f + " has cleared index: " + f.mIndex;
+ Log.e(TAG, msg);
+ dump(" ", null, new PrintWriter(new LogWriter(TAG)), new String[0]);
+ throw new IllegalStateException(msg);
+ }
+ haveFragments = true;
+ FragmentState fs = new FragmentState(f);
+ active[i] = fs;
+ if (f.mState <= 0 || fs.mSavedFragmentState != null) {
+ fs.mSavedFragmentState = f.mSavedFragmentState;
+ } else {
+ fs.mSavedFragmentState = saveFragmentBasicState(f);
+ if (f.mTarget != null) {
+ if (f.mTarget.mIndex < 0) {
+ String msg2 = "Failure saving state: " + f + " has target not in fragment manager: " + f.mTarget;
+ Log.e(TAG, msg2);
+ dump(" ", null, new PrintWriter(new LogWriter(TAG)), new String[0]);
+ throw new IllegalStateException(msg2);
+ }
+ if (fs.mSavedFragmentState == null) {
+ fs.mSavedFragmentState = new Bundle();
+ }
+ putFragment(fs.mSavedFragmentState, TARGET_STATE_TAG, f.mTarget);
+ if (f.mTargetRequestCode != 0) {
+ fs.mSavedFragmentState.putInt(TARGET_REQUEST_CODE_STATE_TAG, f.mTargetRequestCode);
+ }
+ }
+ }
+ if (DEBUG) {
+ Log.v(TAG, "Saved state of " + f + ": " + fs.mSavedFragmentState);
+ }
+ }
+ }
+ if (haveFragments) {
+ int[] added = null;
+ BackStackState[] backStack = null;
+ if (this.mAdded != null && (N2 = this.mAdded.size()) > 0) {
+ added = new int[N2];
+ for (int i2 = 0; i2 < N2; i2++) {
+ added[i2] = this.mAdded.get(i2).mIndex;
+ if (added[i2] < 0) {
+ String msg3 = "Failure saving state: active " + this.mAdded.get(i2) + " has cleared index: " + added[i2];
+ Log.e(TAG, msg3);
+ dump(" ", null, new PrintWriter(new LogWriter(TAG)), new String[0]);
+ throw new IllegalStateException(msg3);
+ }
+ if (DEBUG) {
+ Log.v(TAG, "saveAllState: adding fragment #" + i2 + ": " + this.mAdded.get(i2));
+ }
+ }
+ }
+ if (this.mBackStack != null && (N = this.mBackStack.size()) > 0) {
+ backStack = new BackStackState[N];
+ for (int i3 = 0; i3 < N; i3++) {
+ backStack[i3] = new BackStackState(this, this.mBackStack.get(i3));
+ if (DEBUG) {
+ Log.v(TAG, "saveAllState: adding back stack #" + i3 + ": " + this.mBackStack.get(i3));
+ }
+ }
+ }
+ FragmentManagerState fms = new FragmentManagerState();
+ fms.mActive = active;
+ fms.mAdded = added;
+ fms.mBackStack = backStack;
+ return fms;
+ } else if (!DEBUG) {
+ return null;
+ } else {
+ Log.v(TAG, "saveAllState: no fragments!");
+ return null;
+ }
+ }
+
+ public void restoreAllState(Parcelable state, ArrayList nonConfig) {
+ if (state != null) {
+ FragmentManagerState fms = (FragmentManagerState) state;
+ if (fms.mActive != null) {
+ if (nonConfig != null) {
+ for (int i = 0; i < nonConfig.size(); i++) {
+ Fragment f = nonConfig.get(i);
+ if (DEBUG) {
+ Log.v(TAG, "restoreAllState: re-attaching retained " + f);
+ }
+ FragmentState fs = fms.mActive[f.mIndex];
+ fs.mInstance = f;
+ f.mSavedViewState = null;
+ f.mBackStackNesting = 0;
+ f.mInLayout = HONEYCOMB;
+ f.mAdded = HONEYCOMB;
+ f.mTarget = null;
+ if (fs.mSavedFragmentState != null) {
+ fs.mSavedFragmentState.setClassLoader(this.mActivity.getClassLoader());
+ f.mSavedViewState = fs.mSavedFragmentState.getSparseParcelableArray(VIEW_STATE_TAG);
+ }
+ }
+ }
+ this.mActive = new ArrayList<>(fms.mActive.length);
+ if (this.mAvailIndices != null) {
+ this.mAvailIndices.clear();
+ }
+ for (int i2 = 0; i2 < fms.mActive.length; i2++) {
+ FragmentState fs2 = fms.mActive[i2];
+ if (fs2 != null) {
+ Fragment f2 = fs2.instantiate(this.mActivity);
+ if (DEBUG) {
+ Log.v(TAG, "restoreAllState: adding #" + i2 + ": " + f2);
+ }
+ this.mActive.add(f2);
+ fs2.mInstance = null;
+ } else {
+ if (DEBUG) {
+ Log.v(TAG, "restoreAllState: adding #" + i2 + ": (null)");
+ }
+ this.mActive.add(null);
+ if (this.mAvailIndices == null) {
+ this.mAvailIndices = new ArrayList<>();
+ }
+ if (DEBUG) {
+ Log.v(TAG, "restoreAllState: adding avail #" + i2);
+ }
+ this.mAvailIndices.add(Integer.valueOf(i2));
+ }
+ }
+ if (nonConfig != null) {
+ for (int i3 = 0; i3 < nonConfig.size(); i3++) {
+ Fragment f3 = nonConfig.get(i3);
+ if (f3.mTargetIndex >= 0) {
+ if (f3.mTargetIndex < this.mActive.size()) {
+ f3.mTarget = this.mActive.get(f3.mTargetIndex);
+ } else {
+ Log.w(TAG, "Re-attaching retained fragment " + f3 + " target no longer exists: " + f3.mTargetIndex);
+ f3.mTarget = null;
+ }
+ }
+ }
+ }
+ if (fms.mAdded != null) {
+ this.mAdded = new ArrayList<>(fms.mAdded.length);
+ for (int i4 = 0; i4 < fms.mAdded.length; i4++) {
+ Fragment f4 = this.mActive.get(fms.mAdded[i4]);
+ if (f4 == null) {
+ throw new IllegalStateException("No instantiated fragment for index #" + fms.mAdded[i4]);
+ }
+ f4.mAdded = true;
+ if (DEBUG) {
+ Log.v(TAG, "restoreAllState: making added #" + i4 + ": " + f4);
+ }
+ this.mAdded.add(f4);
+ }
+ } else {
+ this.mAdded = null;
+ }
+ if (fms.mBackStack != null) {
+ this.mBackStack = new ArrayList<>(fms.mBackStack.length);
+ for (int i5 = 0; i5 < fms.mBackStack.length; i5++) {
+ BackStackRecord bse = fms.mBackStack[i5].instantiate(this);
+ if (DEBUG) {
+ Log.v(TAG, "restoreAllState: adding bse #" + i5 + " (index " + bse.mIndex + "): " + bse);
+ }
+ this.mBackStack.add(bse);
+ if (bse.mIndex >= 0) {
+ setBackStackIndex(bse.mIndex, bse);
+ }
+ }
+ return;
+ }
+ this.mBackStack = null;
+ }
+ }
+ }
+
+ public void attachActivity(FragmentActivity activity) {
+ if (this.mActivity != null) {
+ throw new IllegalStateException();
+ }
+ this.mActivity = activity;
+ }
+
+ public void noteStateNotSaved() {
+ this.mStateSaved = HONEYCOMB;
+ }
+
+ public void dispatchCreate() {
+ this.mStateSaved = HONEYCOMB;
+ moveToState(1, HONEYCOMB);
+ }
+
+ public void dispatchActivityCreated() {
+ this.mStateSaved = HONEYCOMB;
+ moveToState(2, HONEYCOMB);
+ }
+
+ public void dispatchStart() {
+ this.mStateSaved = HONEYCOMB;
+ moveToState(4, HONEYCOMB);
+ }
+
+ public void dispatchResume() {
+ this.mStateSaved = HONEYCOMB;
+ moveToState(5, HONEYCOMB);
+ }
+
+ public void dispatchPause() {
+ moveToState(4, HONEYCOMB);
+ }
+
+ public void dispatchStop() {
+ this.mStateSaved = true;
+ moveToState(3, HONEYCOMB);
+ }
+
+ public void dispatchReallyStop() {
+ moveToState(2, HONEYCOMB);
+ }
+
+ public void dispatchDestroy() {
+ this.mDestroyed = true;
+ execPendingActions();
+ moveToState(0, HONEYCOMB);
+ this.mActivity = null;
+ }
+
+ public void dispatchConfigurationChanged(Configuration newConfig) {
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null) {
+ f.onConfigurationChanged(newConfig);
+ }
+ }
+ }
+ }
+
+ public void dispatchLowMemory() {
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null) {
+ f.onLowMemory();
+ }
+ }
+ }
+ }
+
+ public boolean dispatchCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ boolean show = HONEYCOMB;
+ ArrayList newMenus = null;
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible) {
+ show = true;
+ f.onCreateOptionsMenu(menu, inflater);
+ if (newMenus == null) {
+ newMenus = new ArrayList<>();
+ }
+ newMenus.add(f);
+ }
+ }
+ }
+ if (this.mCreatedMenus != null) {
+ for (int i2 = 0; i2 < this.mCreatedMenus.size(); i2++) {
+ Fragment f2 = this.mCreatedMenus.get(i2);
+ if (newMenus == null || !newMenus.contains(f2)) {
+ f2.onDestroyOptionsMenu();
+ }
+ }
+ }
+ this.mCreatedMenus = newMenus;
+ return show;
+ }
+
+ public boolean dispatchPrepareOptionsMenu(Menu menu) {
+ boolean show = HONEYCOMB;
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible) {
+ show = true;
+ f.onPrepareOptionsMenu(menu);
+ }
+ }
+ }
+ return show;
+ }
+
+ public boolean dispatchOptionsItemSelected(MenuItem item) {
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f.onOptionsItemSelected(item)) {
+ return true;
+ }
+ }
+ }
+ return HONEYCOMB;
+ }
+
+ public boolean dispatchContextItemSelected(MenuItem item) {
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && !f.mHidden && f.mUserVisibleHint && f.onContextItemSelected(item)) {
+ return true;
+ }
+ }
+ }
+ return HONEYCOMB;
+ }
+
+ public void dispatchOptionsMenuClosed(Menu menu) {
+ if (this.mAdded != null) {
+ for (int i = 0; i < this.mAdded.size(); i++) {
+ Fragment f = this.mAdded.get(i);
+ if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible) {
+ f.onOptionsMenuClosed(menu);
+ }
+ }
+ }
+ }
+
+ public static int reverseTransit(int transit) {
+ switch (transit) {
+ case FragmentTransaction.TRANSIT_FRAGMENT_OPEN /* 4097 */:
+ return FragmentTransaction.TRANSIT_FRAGMENT_CLOSE;
+ case FragmentTransaction.TRANSIT_FRAGMENT_FADE /* 4099 */:
+ return FragmentTransaction.TRANSIT_FRAGMENT_FADE;
+ case FragmentTransaction.TRANSIT_FRAGMENT_CLOSE /* 8194 */:
+ return FragmentTransaction.TRANSIT_FRAGMENT_OPEN;
+ default:
+ return 0;
+ }
+ }
+
+ public static int transitToStyleIndex(int transit, boolean enter) {
+ switch (transit) {
+ case FragmentTransaction.TRANSIT_FRAGMENT_OPEN /* 4097 */:
+ return enter ? 1 : 2;
+ case FragmentTransaction.TRANSIT_FRAGMENT_FADE /* 4099 */:
+ return enter ? 5 : 6;
+ case FragmentTransaction.TRANSIT_FRAGMENT_CLOSE /* 8194 */:
+ return enter ? 3 : 4;
+ default:
+ return -1;
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManagerState.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManagerState.java
new file mode 100644
index 0000000..848d63b
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentManagerState.java
@@ -0,0 +1,46 @@
+package android.support.v4.app;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+/* JADX INFO: Access modifiers changed from: package-private */
+/* compiled from: FragmentManager.java */
+/* loaded from: classes.dex */
+public final class FragmentManagerState implements Parcelable {
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { // from class: android.support.v4.app.FragmentManagerState.1
+ /* JADX WARN: Can't rename method to resolve collision */
+ @Override // android.os.Parcelable.Creator
+ public FragmentManagerState createFromParcel(Parcel in) {
+ return new FragmentManagerState(in);
+ }
+
+ /* JADX WARN: Can't rename method to resolve collision */
+ @Override // android.os.Parcelable.Creator
+ public FragmentManagerState[] newArray(int size) {
+ return new FragmentManagerState[size];
+ }
+ };
+ FragmentState[] mActive;
+ int[] mAdded;
+ BackStackState[] mBackStack;
+
+ public FragmentManagerState() {
+ }
+
+ public FragmentManagerState(Parcel in) {
+ this.mActive = (FragmentState[]) in.createTypedArray(FragmentState.CREATOR);
+ this.mAdded = in.createIntArray();
+ this.mBackStack = (BackStackState[]) in.createTypedArray(BackStackState.CREATOR);
+ }
+
+ @Override // android.os.Parcelable
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override // android.os.Parcelable
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeTypedArray(this.mActive, flags);
+ dest.writeIntArray(this.mAdded);
+ dest.writeTypedArray(this.mBackStack, flags);
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentPagerAdapter.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentPagerAdapter.java
new file mode 100644
index 0000000..1e90e2b
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentPagerAdapter.java
@@ -0,0 +1,102 @@
+package android.support.v4.app;
+
+import android.os.Parcelable;
+import android.support.v4.view.PagerAdapter;
+import android.view.View;
+import android.view.ViewGroup;
+/* loaded from: classes.dex */
+public abstract class FragmentPagerAdapter extends PagerAdapter {
+ private static final boolean DEBUG = false;
+ private static final String TAG = "FragmentPagerAdapter";
+ private FragmentTransaction mCurTransaction = null;
+ private Fragment mCurrentPrimaryItem = null;
+ private final FragmentManager mFragmentManager;
+
+ public abstract Fragment getItem(int i);
+
+ public FragmentPagerAdapter(FragmentManager fm) {
+ this.mFragmentManager = fm;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void startUpdate(ViewGroup container) {
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public Object instantiateItem(ViewGroup container, int position) {
+ if (this.mCurTransaction == null) {
+ this.mCurTransaction = this.mFragmentManager.beginTransaction();
+ }
+ long itemId = getItemId(position);
+ Fragment fragment = this.mFragmentManager.findFragmentByTag(makeFragmentName(container.getId(), itemId));
+ if (fragment != null) {
+ this.mCurTransaction.attach(fragment);
+ } else {
+ fragment = getItem(position);
+ this.mCurTransaction.add(container.getId(), fragment, makeFragmentName(container.getId(), itemId));
+ }
+ if (fragment != this.mCurrentPrimaryItem) {
+ fragment.setMenuVisibility(DEBUG);
+ fragment.setUserVisibleHint(DEBUG);
+ }
+ return fragment;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void destroyItem(ViewGroup container, int position, Object object) {
+ if (this.mCurTransaction == null) {
+ this.mCurTransaction = this.mFragmentManager.beginTransaction();
+ }
+ this.mCurTransaction.detach((Fragment) object);
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void setPrimaryItem(ViewGroup container, int position, Object object) {
+ Fragment fragment = (Fragment) object;
+ if (fragment != this.mCurrentPrimaryItem) {
+ if (this.mCurrentPrimaryItem != null) {
+ this.mCurrentPrimaryItem.setMenuVisibility(DEBUG);
+ this.mCurrentPrimaryItem.setUserVisibleHint(DEBUG);
+ }
+ if (fragment != null) {
+ fragment.setMenuVisibility(true);
+ fragment.setUserVisibleHint(true);
+ }
+ this.mCurrentPrimaryItem = fragment;
+ }
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void finishUpdate(ViewGroup container) {
+ if (this.mCurTransaction != null) {
+ this.mCurTransaction.commitAllowingStateLoss();
+ this.mCurTransaction = null;
+ this.mFragmentManager.executePendingTransactions();
+ }
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public boolean isViewFromObject(View view, Object object) {
+ if (((Fragment) object).getView() == view) {
+ return true;
+ }
+ return DEBUG;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public Parcelable saveState() {
+ return null;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void restoreState(Parcelable state, ClassLoader loader) {
+ }
+
+ public long getItemId(int position) {
+ return (long) position;
+ }
+
+ private static String makeFragmentName(int viewId, long id) {
+ return "android:switcher:" + viewId + ":" + id;
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentState.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentState.java
new file mode 100644
index 0000000..fae36a8
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentState.java
@@ -0,0 +1,123 @@
+package android.support.v4.app;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.Log;
+/* JADX INFO: Access modifiers changed from: package-private */
+/* compiled from: Fragment.java */
+/* loaded from: classes.dex */
+public final class FragmentState implements Parcelable {
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { // from class: android.support.v4.app.FragmentState.1
+ /* JADX WARN: Can't rename method to resolve collision */
+ @Override // android.os.Parcelable.Creator
+ public FragmentState createFromParcel(Parcel in) {
+ return new FragmentState(in);
+ }
+
+ /* JADX WARN: Can't rename method to resolve collision */
+ @Override // android.os.Parcelable.Creator
+ public FragmentState[] newArray(int size) {
+ return new FragmentState[size];
+ }
+ };
+ final Bundle mArguments;
+ final String mClassName;
+ final int mContainerId;
+ final boolean mDetached;
+ final int mFragmentId;
+ final boolean mFromLayout;
+ final int mIndex;
+ Fragment mInstance;
+ final boolean mRetainInstance;
+ Bundle mSavedFragmentState;
+ final String mTag;
+
+ public FragmentState(Fragment frag) {
+ this.mClassName = frag.getClass().getName();
+ this.mIndex = frag.mIndex;
+ this.mFromLayout = frag.mFromLayout;
+ this.mFragmentId = frag.mFragmentId;
+ this.mContainerId = frag.mContainerId;
+ this.mTag = frag.mTag;
+ this.mRetainInstance = frag.mRetainInstance;
+ this.mDetached = frag.mDetached;
+ this.mArguments = frag.mArguments;
+ }
+
+ public FragmentState(Parcel in) {
+ boolean z;
+ boolean z2 = true;
+ this.mClassName = in.readString();
+ this.mIndex = in.readInt();
+ this.mFromLayout = in.readInt() != 0;
+ this.mFragmentId = in.readInt();
+ this.mContainerId = in.readInt();
+ this.mTag = in.readString();
+ if (in.readInt() != 0) {
+ z = true;
+ } else {
+ z = false;
+ }
+ this.mRetainInstance = z;
+ this.mDetached = in.readInt() == 0 ? false : z2;
+ this.mArguments = in.readBundle();
+ this.mSavedFragmentState = in.readBundle();
+ }
+
+ public Fragment instantiate(FragmentActivity activity) {
+ if (this.mInstance != null) {
+ return this.mInstance;
+ }
+ if (this.mArguments != null) {
+ this.mArguments.setClassLoader(activity.getClassLoader());
+ }
+ this.mInstance = Fragment.instantiate(activity, this.mClassName, this.mArguments);
+ if (this.mSavedFragmentState != null) {
+ this.mSavedFragmentState.setClassLoader(activity.getClassLoader());
+ this.mInstance.mSavedFragmentState = this.mSavedFragmentState;
+ }
+ this.mInstance.setIndex(this.mIndex);
+ this.mInstance.mFromLayout = this.mFromLayout;
+ this.mInstance.mRestored = true;
+ this.mInstance.mFragmentId = this.mFragmentId;
+ this.mInstance.mContainerId = this.mContainerId;
+ this.mInstance.mTag = this.mTag;
+ this.mInstance.mRetainInstance = this.mRetainInstance;
+ this.mInstance.mDetached = this.mDetached;
+ this.mInstance.mFragmentManager = activity.mFragments;
+ if (FragmentManagerImpl.DEBUG) {
+ Log.v("FragmentManager", "Instantiated fragment " + this.mInstance);
+ }
+ return this.mInstance;
+ }
+
+ @Override // android.os.Parcelable
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override // android.os.Parcelable
+ public void writeToParcel(Parcel dest, int flags) {
+ int i;
+ int i2 = 1;
+ dest.writeString(this.mClassName);
+ dest.writeInt(this.mIndex);
+ dest.writeInt(this.mFromLayout ? 1 : 0);
+ dest.writeInt(this.mFragmentId);
+ dest.writeInt(this.mContainerId);
+ dest.writeString(this.mTag);
+ if (this.mRetainInstance) {
+ i = 1;
+ } else {
+ i = 0;
+ }
+ dest.writeInt(i);
+ if (!this.mDetached) {
+ i2 = 0;
+ }
+ dest.writeInt(i2);
+ dest.writeBundle(this.mArguments);
+ dest.writeBundle(this.mSavedFragmentState);
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentStatePagerAdapter.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentStatePagerAdapter.java
new file mode 100644
index 0000000..89b48f4
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentStatePagerAdapter.java
@@ -0,0 +1,150 @@
+package android.support.v4.app;
+
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.support.v4.app.Fragment;
+import android.support.v4.view.PagerAdapter;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import java.util.ArrayList;
+/* loaded from: classes.dex */
+public abstract class FragmentStatePagerAdapter extends PagerAdapter {
+ private static final boolean DEBUG = false;
+ private static final String TAG = "FragmentStatePagerAdapter";
+ private final FragmentManager mFragmentManager;
+ private FragmentTransaction mCurTransaction = null;
+ private ArrayList mSavedState = new ArrayList<>();
+ private ArrayList mFragments = new ArrayList<>();
+ private Fragment mCurrentPrimaryItem = null;
+
+ public abstract Fragment getItem(int i);
+
+ public FragmentStatePagerAdapter(FragmentManager fm) {
+ this.mFragmentManager = fm;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void startUpdate(ViewGroup container) {
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public Object instantiateItem(ViewGroup container, int position) {
+ Fragment.SavedState fss;
+ Fragment f;
+ if (this.mFragments.size() > position && (f = this.mFragments.get(position)) != null) {
+ return f;
+ }
+ if (this.mCurTransaction == null) {
+ this.mCurTransaction = this.mFragmentManager.beginTransaction();
+ }
+ Fragment fragment = getItem(position);
+ if (this.mSavedState.size() > position && (fss = this.mSavedState.get(position)) != null) {
+ fragment.setInitialSavedState(fss);
+ }
+ while (this.mFragments.size() <= position) {
+ this.mFragments.add(null);
+ }
+ fragment.setMenuVisibility(DEBUG);
+ this.mFragments.set(position, fragment);
+ this.mCurTransaction.add(container.getId(), fragment);
+ return fragment;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void destroyItem(ViewGroup container, int position, Object object) {
+ Fragment fragment = (Fragment) object;
+ if (this.mCurTransaction == null) {
+ this.mCurTransaction = this.mFragmentManager.beginTransaction();
+ }
+ while (this.mSavedState.size() <= position) {
+ this.mSavedState.add(null);
+ }
+ this.mSavedState.set(position, this.mFragmentManager.saveFragmentInstanceState(fragment));
+ this.mFragments.set(position, null);
+ this.mCurTransaction.remove(fragment);
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void setPrimaryItem(ViewGroup container, int position, Object object) {
+ Fragment fragment = (Fragment) object;
+ if (fragment != this.mCurrentPrimaryItem) {
+ if (this.mCurrentPrimaryItem != null) {
+ this.mCurrentPrimaryItem.setMenuVisibility(DEBUG);
+ }
+ if (fragment != null) {
+ fragment.setMenuVisibility(true);
+ }
+ this.mCurrentPrimaryItem = fragment;
+ }
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void finishUpdate(ViewGroup container) {
+ if (this.mCurTransaction != null) {
+ this.mCurTransaction.commitAllowingStateLoss();
+ this.mCurTransaction = null;
+ this.mFragmentManager.executePendingTransactions();
+ }
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public boolean isViewFromObject(View view, Object object) {
+ if (((Fragment) object).getView() == view) {
+ return true;
+ }
+ return DEBUG;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public Parcelable saveState() {
+ Bundle state = null;
+ if (this.mSavedState.size() > 0) {
+ state = new Bundle();
+ Fragment.SavedState[] fss = new Fragment.SavedState[this.mSavedState.size()];
+ this.mSavedState.toArray(fss);
+ state.putParcelableArray("states", fss);
+ }
+ for (int i = 0; i < this.mFragments.size(); i++) {
+ Fragment f = this.mFragments.get(i);
+ if (f != null) {
+ if (state == null) {
+ state = new Bundle();
+ }
+ this.mFragmentManager.putFragment(state, "f" + i, f);
+ }
+ }
+ return state;
+ }
+
+ @Override // android.support.v4.view.PagerAdapter
+ public void restoreState(Parcelable state, ClassLoader loader) {
+ if (state != null) {
+ Bundle bundle = (Bundle) state;
+ bundle.setClassLoader(loader);
+ Parcelable[] fss = bundle.getParcelableArray("states");
+ this.mSavedState.clear();
+ this.mFragments.clear();
+ if (fss != null) {
+ for (Parcelable parcelable : fss) {
+ this.mSavedState.add((Fragment.SavedState) parcelable);
+ }
+ }
+ for (String key : bundle.keySet()) {
+ if (key.startsWith("f")) {
+ int index = Integer.parseInt(key.substring(1));
+ Fragment f = this.mFragmentManager.getFragment(bundle, key);
+ if (f != null) {
+ while (this.mFragments.size() <= index) {
+ this.mFragments.add(null);
+ }
+ f.setMenuVisibility(DEBUG);
+ this.mFragments.set(index, f);
+ } else {
+ Log.w(TAG, "Bad fragment at key " + key);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentTransaction.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentTransaction.java
new file mode 100644
index 0000000..27c31ed
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/FragmentTransaction.java
@@ -0,0 +1,59 @@
+package android.support.v4.app;
+/* loaded from: classes.dex */
+public abstract class FragmentTransaction {
+ public static final int TRANSIT_ENTER_MASK = 4096;
+ public static final int TRANSIT_EXIT_MASK = 8192;
+ public static final int TRANSIT_FRAGMENT_CLOSE = 8194;
+ public static final int TRANSIT_FRAGMENT_FADE = 4099;
+ public static final int TRANSIT_FRAGMENT_OPEN = 4097;
+ public static final int TRANSIT_NONE = 0;
+ public static final int TRANSIT_UNSET = -1;
+
+ public abstract FragmentTransaction add(int i, Fragment fragment);
+
+ public abstract FragmentTransaction add(int i, Fragment fragment, String str);
+
+ public abstract FragmentTransaction add(Fragment fragment, String str);
+
+ public abstract FragmentTransaction addToBackStack(String str);
+
+ public abstract FragmentTransaction attach(Fragment fragment);
+
+ public abstract int commit();
+
+ public abstract int commitAllowingStateLoss();
+
+ public abstract FragmentTransaction detach(Fragment fragment);
+
+ public abstract FragmentTransaction disallowAddToBackStack();
+
+ public abstract FragmentTransaction hide(Fragment fragment);
+
+ public abstract boolean isAddToBackStackAllowed();
+
+ public abstract boolean isEmpty();
+
+ public abstract FragmentTransaction remove(Fragment fragment);
+
+ public abstract FragmentTransaction replace(int i, Fragment fragment);
+
+ public abstract FragmentTransaction replace(int i, Fragment fragment, String str);
+
+ public abstract FragmentTransaction setBreadCrumbShortTitle(int i);
+
+ public abstract FragmentTransaction setBreadCrumbShortTitle(CharSequence charSequence);
+
+ public abstract FragmentTransaction setBreadCrumbTitle(int i);
+
+ public abstract FragmentTransaction setBreadCrumbTitle(CharSequence charSequence);
+
+ public abstract FragmentTransaction setCustomAnimations(int i, int i2);
+
+ public abstract FragmentTransaction setCustomAnimations(int i, int i2, int i3, int i4);
+
+ public abstract FragmentTransaction setTransition(int i);
+
+ public abstract FragmentTransaction setTransitionStyle(int i);
+
+ public abstract FragmentTransaction show(Fragment fragment);
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ListFragment.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ListFragment.java
new file mode 100644
index 0000000..9711957
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/ListFragment.java
@@ -0,0 +1,229 @@
+package android.support.v4.app;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AnimationUtils;
+import android.widget.AdapterView;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+/* loaded from: classes.dex */
+public class ListFragment extends Fragment {
+ static final int INTERNAL_EMPTY_ID = 16711681;
+ static final int INTERNAL_LIST_CONTAINER_ID = 16711683;
+ static final int INTERNAL_PROGRESS_CONTAINER_ID = 16711682;
+ ListAdapter mAdapter;
+ CharSequence mEmptyText;
+ View mEmptyView;
+ ListView mList;
+ View mListContainer;
+ boolean mListShown;
+ View mProgressContainer;
+ TextView mStandardEmptyView;
+ private final Handler mHandler = new Handler();
+ private final Runnable mRequestFocus = new Runnable() { // from class: android.support.v4.app.ListFragment.1
+ @Override // java.lang.Runnable
+ public void run() {
+ ListFragment.this.mList.focusableViewAvailable(ListFragment.this.mList);
+ }
+ };
+ private final AdapterView.OnItemClickListener mOnClickListener = new AdapterView.OnItemClickListener() { // from class: android.support.v4.app.ListFragment.2
+ @Override // android.widget.AdapterView.OnItemClickListener
+ public void onItemClick(AdapterView> parent, View v, int position, long id) {
+ ListFragment.this.onListItemClick((ListView) parent, v, position, id);
+ }
+ };
+
+ @Override // android.support.v4.app.Fragment
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ Context context = getActivity();
+ FrameLayout root = new FrameLayout(context);
+ LinearLayout pframe = new LinearLayout(context);
+ pframe.setId(INTERNAL_PROGRESS_CONTAINER_ID);
+ pframe.setOrientation(1);
+ pframe.setVisibility(8);
+ pframe.setGravity(17);
+ pframe.addView(new ProgressBar(context, null, 16842874), new FrameLayout.LayoutParams(-2, -2));
+ root.addView(pframe, new FrameLayout.LayoutParams(-1, -1));
+ FrameLayout lframe = new FrameLayout(context);
+ lframe.setId(INTERNAL_LIST_CONTAINER_ID);
+ TextView tv = new TextView(getActivity());
+ tv.setId(INTERNAL_EMPTY_ID);
+ tv.setGravity(17);
+ lframe.addView(tv, new FrameLayout.LayoutParams(-1, -1));
+ ListView lv = new ListView(getActivity());
+ lv.setId(16908298);
+ lv.setDrawSelectorOnTop(false);
+ lframe.addView(lv, new FrameLayout.LayoutParams(-1, -1));
+ root.addView(lframe, new FrameLayout.LayoutParams(-1, -1));
+ root.setLayoutParams(new FrameLayout.LayoutParams(-1, -1));
+ return root;
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ ensureList();
+ }
+
+ @Override // android.support.v4.app.Fragment
+ public void onDestroyView() {
+ this.mHandler.removeCallbacks(this.mRequestFocus);
+ this.mList = null;
+ this.mListShown = false;
+ this.mListContainer = null;
+ this.mProgressContainer = null;
+ this.mEmptyView = null;
+ this.mStandardEmptyView = null;
+ super.onDestroyView();
+ }
+
+ public void onListItemClick(ListView l, View v, int position, long id) {
+ }
+
+ public void setListAdapter(ListAdapter adapter) {
+ boolean hadAdapter;
+ boolean z = false;
+ if (this.mAdapter != null) {
+ hadAdapter = true;
+ } else {
+ hadAdapter = false;
+ }
+ this.mAdapter = adapter;
+ if (this.mList != null) {
+ this.mList.setAdapter(adapter);
+ if (!this.mListShown && !hadAdapter) {
+ if (getView().getWindowToken() != null) {
+ z = true;
+ }
+ setListShown(true, z);
+ }
+ }
+ }
+
+ public void setSelection(int position) {
+ ensureList();
+ this.mList.setSelection(position);
+ }
+
+ public int getSelectedItemPosition() {
+ ensureList();
+ return this.mList.getSelectedItemPosition();
+ }
+
+ public long getSelectedItemId() {
+ ensureList();
+ return this.mList.getSelectedItemId();
+ }
+
+ public ListView getListView() {
+ ensureList();
+ return this.mList;
+ }
+
+ public void setEmptyText(CharSequence text) {
+ ensureList();
+ if (this.mStandardEmptyView == null) {
+ throw new IllegalStateException("Can't be used with a custom content view");
+ }
+ this.mStandardEmptyView.setText(text);
+ if (this.mEmptyText == null) {
+ this.mList.setEmptyView(this.mStandardEmptyView);
+ }
+ this.mEmptyText = text;
+ }
+
+ public void setListShown(boolean shown) {
+ setListShown(shown, true);
+ }
+
+ public void setListShownNoAnimation(boolean shown) {
+ setListShown(shown, false);
+ }
+
+ private void setListShown(boolean shown, boolean animate) {
+ ensureList();
+ if (this.mProgressContainer == null) {
+ throw new IllegalStateException("Can't be used with a custom content view");
+ } else if (this.mListShown != shown) {
+ this.mListShown = shown;
+ if (shown) {
+ if (animate) {
+ this.mProgressContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), 17432577));
+ this.mListContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), 17432576));
+ } else {
+ this.mProgressContainer.clearAnimation();
+ this.mListContainer.clearAnimation();
+ }
+ this.mProgressContainer.setVisibility(8);
+ this.mListContainer.setVisibility(0);
+ return;
+ }
+ if (animate) {
+ this.mProgressContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), 17432576));
+ this.mListContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), 17432577));
+ } else {
+ this.mProgressContainer.clearAnimation();
+ this.mListContainer.clearAnimation();
+ }
+ this.mProgressContainer.setVisibility(0);
+ this.mListContainer.setVisibility(8);
+ }
+ }
+
+ public ListAdapter getListAdapter() {
+ return this.mAdapter;
+ }
+
+ private void ensureList() {
+ if (this.mList == null) {
+ View root = getView();
+ if (root == null) {
+ throw new IllegalStateException("Content view not yet created");
+ }
+ if (root instanceof ListView) {
+ this.mList = (ListView) root;
+ } else {
+ this.mStandardEmptyView = (TextView) root.findViewById(INTERNAL_EMPTY_ID);
+ if (this.mStandardEmptyView == null) {
+ this.mEmptyView = root.findViewById(16908292);
+ } else {
+ this.mStandardEmptyView.setVisibility(8);
+ }
+ this.mProgressContainer = root.findViewById(INTERNAL_PROGRESS_CONTAINER_ID);
+ this.mListContainer = root.findViewById(INTERNAL_LIST_CONTAINER_ID);
+ View rawListView = root.findViewById(16908298);
+ if (rawListView instanceof ListView) {
+ this.mList = (ListView) rawListView;
+ if (this.mEmptyView != null) {
+ this.mList.setEmptyView(this.mEmptyView);
+ } else if (this.mEmptyText != null) {
+ this.mStandardEmptyView.setText(this.mEmptyText);
+ this.mList.setEmptyView(this.mStandardEmptyView);
+ }
+ } else if (rawListView == null) {
+ throw new RuntimeException("Your content must have a ListView whose id attribute is 'android.R.id.list'");
+ } else {
+ throw new RuntimeException("Content has view with id attribute 'android.R.id.list' that is not a ListView class");
+ }
+ }
+ this.mListShown = true;
+ this.mList.setOnItemClickListener(this.mOnClickListener);
+ if (this.mAdapter != null) {
+ ListAdapter adapter = this.mAdapter;
+ this.mAdapter = null;
+ setListAdapter(adapter);
+ } else if (this.mProgressContainer != null) {
+ setListShown(false, false);
+ }
+ this.mHandler.post(this.mRequestFocus);
+ }
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/LoaderManager.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/LoaderManager.java
new file mode 100644
index 0000000..c9e93a2
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/LoaderManager.java
@@ -0,0 +1,36 @@
+package android.support.v4.app;
+
+import android.os.Bundle;
+import android.support.v4.content.Loader;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+/* loaded from: classes.dex */
+public abstract class LoaderManager {
+
+ /* loaded from: classes.dex */
+ public interface LoaderCallbacks {
+ Loader onCreateLoader(int i, Bundle bundle);
+
+ void onLoadFinished(Loader loader, D d);
+
+ void onLoaderReset(Loader loader);
+ }
+
+ public abstract void destroyLoader(int i);
+
+ public abstract void dump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, String[] strArr);
+
+ public abstract Loader getLoader(int i);
+
+ public abstract Loader initLoader(int i, Bundle bundle, LoaderCallbacks loaderCallbacks);
+
+ public abstract Loader restartLoader(int i, Bundle bundle, LoaderCallbacks loaderCallbacks);
+
+ public static void enableDebugLogging(boolean enabled) {
+ LoaderManagerImpl.DEBUG = enabled;
+ }
+
+ public boolean hasRunningLoaders() {
+ return false;
+ }
+}
diff --git a/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/LoaderManagerImpl.java b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/LoaderManagerImpl.java
new file mode 100644
index 0000000..fd9e6eb
--- /dev/null
+++ b/sample4/decompiled_raw/assets/LenovoSafeBox455/sources/android/support/v4/app/LoaderManagerImpl.java
@@ -0,0 +1,584 @@
+package android.support.v4.app;
+
+import android.os.Bundle;
+import android.support.v4.app.LoaderManager;
+import android.support.v4.content.Loader;
+import android.support.v4.util.DebugUtils;
+import android.support.v4.util.SparseArrayCompat;
+import android.util.Log;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.lang.reflect.Modifier;
+/* compiled from: LoaderManager.java */
+/* loaded from: classes.dex */
+public class LoaderManagerImpl extends LoaderManager {
+ static boolean DEBUG = false;
+ static final String TAG = "LoaderManager";
+ FragmentActivity mActivity;
+ boolean mCreatingLoader;
+ boolean mRetaining;
+ boolean mRetainingStarted;
+ boolean mStarted;
+ final SparseArrayCompat mLoaders = new SparseArrayCompat<>();
+ final SparseArrayCompat mInactiveLoaders = new SparseArrayCompat<>();
+
+ /* compiled from: LoaderManager.java */
+ /* loaded from: classes.dex */
+ public final class LoaderInfo implements Loader.OnLoadCompleteListener