gitextract_m5v2g_mv/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── bug_report_cn.md │ │ ├── feature-request.md │ │ └── feature-request_cn.md │ └── workflows/ │ └── android.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README-CN.md ├── README.md ├── build.gradle ├── buildApp.gradle ├── buildCommon.gradle ├── buildLib.gradle ├── buildSrc/ │ ├── .gitignore │ ├── build.gradle │ ├── settings.gradle │ └── src/ │ └── main/ │ ├── groovy/ │ │ ├── Config.groovy │ │ ├── ConfigUtils.groovy │ │ ├── GLog.groovy │ │ ├── LibConfig.groovy │ │ ├── ModuleConfig.groovy │ │ ├── PluginConfig.groovy │ │ └── TaskDurationUtils.groovy │ └── java/ │ └── com/ │ └── blankj/ │ └── plugin/ │ └── readme/ │ ├── FormatUtils.groovy │ ├── ReadmeCorePlugin.groovy │ ├── ReadmeExtension.groovy │ └── ReadmeSubPlugin.groovy ├── config/ │ ├── flavor.gradle │ └── publish.gradle ├── feature/ │ ├── launcher/ │ │ └── app/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── launcher/ │ │ └── app/ │ │ └── LauncherApp.java │ ├── main/ │ │ ├── app/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── main/ │ │ │ └── app/ │ │ │ └── MainApp.java │ │ └── pkg/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── main/ │ │ │ └── pkg/ │ │ │ ├── MainActivity.kt │ │ │ └── SplashActivity.kt │ │ └── res/ │ │ ├── layout/ │ │ │ └── activity_main.xml │ │ └── values/ │ │ └── strings.xml │ ├── mock/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── mock/ │ │ ├── subutil/ │ │ │ └── SubUtilApiMock.java │ │ └── utilcode/ │ │ └── UtilCodeApiMock.java │ ├── subutil/ │ │ ├── app/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── subutil/ │ │ │ └── app/ │ │ │ └── SubUtilApp.kt │ │ ├── export/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ └── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── subutil/ │ │ │ └── export/ │ │ │ └── api/ │ │ │ └── SubUtilApi.java │ │ └── pkg/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── subutil/ │ │ │ └── pkg/ │ │ │ ├── Config.kt │ │ │ ├── SubUtilApiImpl.java │ │ │ └── feature/ │ │ │ ├── SubUtilActivity.kt │ │ │ ├── appStore/ │ │ │ │ └── AppStoreActivity.kt │ │ │ ├── battery/ │ │ │ │ └── BatteryActivity.kt │ │ │ ├── country/ │ │ │ │ └── CountryActivity.kt │ │ │ ├── dangerous/ │ │ │ │ └── DangerousActivity.kt │ │ │ ├── location/ │ │ │ │ ├── LocationActivity.kt │ │ │ │ └── LocationService.kt │ │ │ └── pinyin/ │ │ │ └── PinyinActivity.kt │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── utilcode/ │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── utilcode/ │ │ └── app/ │ │ └── UtilCodeApp.kt │ ├── export/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── utilcode/ │ │ └── export/ │ │ └── api/ │ │ └── UtilCodeApi.java │ └── pkg/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ └── test/ │ │ ├── sub/ │ │ │ └── test.txt │ │ └── test.txt │ ├── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── utilcode/ │ │ └── pkg/ │ │ ├── Config.kt │ │ ├── UtilCodeApiImpl.java │ │ ├── feature/ │ │ │ ├── CoreUtilActivity.kt │ │ │ ├── activity/ │ │ │ │ ├── ActivityActivity.kt │ │ │ │ └── SubActivityActivity.kt │ │ │ ├── adaptScreen/ │ │ │ │ ├── AdaptCloseActivity.kt │ │ │ │ ├── AdaptHeightActivity.kt │ │ │ │ ├── AdaptScreenActivity.kt │ │ │ │ └── AdaptWidthActivity.kt │ │ │ ├── api/ │ │ │ │ ├── ApiActivity.kt │ │ │ │ └── other/ │ │ │ │ ├── export/ │ │ │ │ │ └── OtherModuleApi.java │ │ │ │ └── pkg/ │ │ │ │ └── OtherPkgApiImpl.java │ │ │ ├── app/ │ │ │ │ └── AppActivity.kt │ │ │ ├── bar/ │ │ │ │ ├── BarActivity.kt │ │ │ │ ├── nav/ │ │ │ │ │ └── BarNavActivity.kt │ │ │ │ ├── notification/ │ │ │ │ │ └── BarNotificationActivity.kt │ │ │ │ └── status/ │ │ │ │ ├── BarStatusActivity.kt │ │ │ │ ├── BarStatusActivityAlpha.kt │ │ │ │ ├── BarStatusActivityColor.kt │ │ │ │ ├── BarStatusActivityCustom.kt │ │ │ │ ├── BarStatusActivityDrawer.kt │ │ │ │ ├── BarStatusActivityImageView.kt │ │ │ │ └── fragment/ │ │ │ │ ├── BarStatusFragmentActivity.kt │ │ │ │ ├── BarStatusFragmentAlpha.kt │ │ │ │ ├── BarStatusFragmentColor.kt │ │ │ │ ├── BarStatusFragmentCustom.kt │ │ │ │ └── BarStatusFragmentImageView.kt │ │ │ ├── brightness/ │ │ │ │ └── BrightnessActivity.kt │ │ │ ├── bus/ │ │ │ │ ├── BusActivity.kt │ │ │ │ └── BusCompareActivity.kt │ │ │ ├── clean/ │ │ │ │ └── CleanActivity.kt │ │ │ ├── click/ │ │ │ │ └── ClickActivity.kt │ │ │ ├── clipboard/ │ │ │ │ └── ClipboardActivity.kt │ │ │ ├── device/ │ │ │ │ └── DeviceActivity.kt │ │ │ ├── file/ │ │ │ │ └── FileActivity.kt │ │ │ ├── flashlight/ │ │ │ │ └── FlashlightActivity.kt │ │ │ ├── fragment/ │ │ │ │ ├── ChildFragment.kt │ │ │ │ ├── ContainerFragment.kt │ │ │ │ ├── FragmentActivity.kt │ │ │ │ └── RootFragment.kt │ │ │ ├── image/ │ │ │ │ └── ImageActivity.kt │ │ │ ├── intent/ │ │ │ │ └── IntentActivity.kt │ │ │ ├── keyboard/ │ │ │ │ └── KeyboardActivity.kt │ │ │ ├── language/ │ │ │ │ └── LanguageActivity.kt │ │ │ ├── log/ │ │ │ │ └── LogActivity.kt │ │ │ ├── messenger/ │ │ │ │ ├── MessengerActivity.kt │ │ │ │ └── MessengerRemoteActivity.kt │ │ │ ├── metaData/ │ │ │ │ └── MetaDataActivity.kt │ │ │ ├── mvp/ │ │ │ │ ├── MvpActivity.java │ │ │ │ ├── MvpModel.java │ │ │ │ ├── MvpMvp.java │ │ │ │ ├── MvpPresenter.java │ │ │ │ └── MvpView.java │ │ │ ├── network/ │ │ │ │ └── NetworkActivity.kt │ │ │ ├── notification/ │ │ │ │ └── NotificationActivity.kt │ │ │ ├── path/ │ │ │ │ └── PathActivity.kt │ │ │ ├── permission/ │ │ │ │ └── PermissionActivity.kt │ │ │ ├── phone/ │ │ │ │ └── PhoneActivity.kt │ │ │ ├── process/ │ │ │ │ └── ProcessActivity.kt │ │ │ ├── reflect/ │ │ │ │ ├── ReflectActivity.kt │ │ │ │ └── TestPrivateStaticFinal.java │ │ │ ├── resource/ │ │ │ │ └── ResourceActivity.kt │ │ │ ├── rom/ │ │ │ │ └── RomActivity.kt │ │ │ ├── screen/ │ │ │ │ └── ScreenActivity.kt │ │ │ ├── sdcard/ │ │ │ │ └── SDCardActivity.kt │ │ │ ├── shadow/ │ │ │ │ └── ShadowActivity.kt │ │ │ ├── snackbar/ │ │ │ │ └── SnackbarActivity.kt │ │ │ ├── spStatic/ │ │ │ │ └── SPStaticActivity.kt │ │ │ ├── span/ │ │ │ │ └── SpanActivity.kt │ │ │ ├── toast/ │ │ │ │ ├── CustomToast.kt │ │ │ │ └── ToastActivity.kt │ │ │ ├── uiMessage/ │ │ │ │ └── UiMessageActivity.kt │ │ │ ├── vibrate/ │ │ │ │ └── VibrateActivity.kt │ │ │ └── volume/ │ │ │ └── VolumeActivity.kt │ │ └── helper/ │ │ └── DialogHelper.kt │ └── res/ │ ├── anim/ │ │ ├── fade_in_1000.xml │ │ ├── fade_out_1000.xml │ │ ├── slide_bottom_in_200.xml │ │ ├── slide_bottom_out_200.xml │ │ ├── slide_left_out_1000.xml │ │ └── slide_right_in_1000.xml │ ├── animator/ │ │ ├── fragment_slide_left_enter.xml │ │ ├── fragment_slide_left_exit.xml │ │ ├── fragment_slide_right_enter.xml │ │ └── fragment_slide_right_exit.xml │ ├── drawable/ │ │ ├── bar_status_custom.xml │ │ ├── bar_status_nav_alpha.xml │ │ ├── bar_status_nav_color.xml │ │ ├── bar_status_nav_custom.xml │ │ ├── bar_status_nav_image.xml │ │ ├── fragment_nav.xml │ │ ├── keyboard_dialog_bg.xml │ │ ├── shadow_circle.xml │ │ ├── shadow_round_rect.xml │ │ ├── snackbar_custom_bg.xml │ │ ├── span_block_high.xml │ │ ├── span_block_low.xml │ │ └── toast_round_rect.xml │ ├── layout/ │ │ ├── activity_adaptscreen.xml │ │ ├── activity_item_shared_element_activity.xml │ │ ├── activity_sub_activity.xml │ │ ├── adaptscreen_close_activity.xml │ │ ├── adaptscreen_height_activity.xml │ │ ├── adaptscreen_width_activity.xml │ │ ├── bar_status_alpha_activity.xml │ │ ├── bar_status_alpha_fragment.xml │ │ ├── bar_status_color_fragment.xml │ │ ├── bar_status_custom_fragment.xml │ │ ├── bar_status_drawer_activity.xml │ │ ├── bar_status_fragment_activity.xml │ │ ├── bar_status_image_view_activity.xml │ │ ├── bar_status_image_view_fragment.xml │ │ ├── fragment_activity.xml │ │ ├── fragment_child.xml │ │ ├── fragment_container.xml │ │ ├── fragment_dialog.xml │ │ ├── fragment_item_shared_element.xml │ │ ├── fragment_root.xml │ │ ├── keyboard_activity.xml │ │ ├── keyboard_dialog.xml │ │ ├── mvp_activity.xml │ │ ├── screen_dialog.xml │ │ ├── shadow_activity.xml │ │ ├── snackbar_custom.xml │ │ ├── span_activity.xml │ │ ├── toast_custom.xml │ │ └── toast_dialog.xml │ ├── menu/ │ │ ├── fragment_nav.xml │ │ └── status_bar_nav.xml │ ├── raw/ │ │ └── test.txt │ ├── transition/ │ │ ├── explode_1000.xml │ │ ├── fade_1000.xml │ │ └── slide_1000.xml │ ├── values/ │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-en-rUS/ │ │ └── strings.xml │ └── values-zh-rCN/ │ └── strings.xml ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── lib/ │ ├── base/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── base/ │ │ │ ├── BaseActivity.java │ │ │ ├── BaseApplication.java │ │ │ ├── BaseFragment.java │ │ │ ├── IBaseView.java │ │ │ ├── dialog/ │ │ │ │ ├── BaseDialog.java │ │ │ │ ├── BaseDialogFragment.java │ │ │ │ ├── DialogCallback.java │ │ │ │ └── DialogLayoutCallback.java │ │ │ ├── mvp/ │ │ │ │ ├── BaseModel.java │ │ │ │ ├── BasePresenter.java │ │ │ │ └── BaseView.java │ │ │ ├── rv/ │ │ │ │ ├── BaseItem.java │ │ │ │ ├── BaseItemAdapter.java │ │ │ │ ├── ItemViewHolder.java │ │ │ │ └── RecycleViewDivider.java │ │ │ └── view/ │ │ │ └── EmptyGoneTextView.java │ │ └── res/ │ │ └── layout/ │ │ ├── activity_back.xml │ │ └── fragment_lazy.xml │ ├── common/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── test_install │ │ ├── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── common/ │ │ │ ├── CommonApplication.java │ │ │ ├── activity/ │ │ │ │ ├── CommonActivity.java │ │ │ │ ├── CommonActivityDrawerView.java │ │ │ │ ├── CommonActivityItemsView.java │ │ │ │ └── CommonActivityTitleView.java │ │ │ ├── dialog/ │ │ │ │ ├── CommonDialogContent.java │ │ │ │ └── CommonDialogLoading.java │ │ │ ├── fragment/ │ │ │ │ └── CommonFragment.java │ │ │ ├── helper/ │ │ │ │ └── PermissionHelper.kt │ │ │ ├── item/ │ │ │ │ ├── CommonItem.java │ │ │ │ ├── CommonItemClick.java │ │ │ │ ├── CommonItemImage.java │ │ │ │ ├── CommonItemSeekBar.java │ │ │ │ ├── CommonItemSwitch.java │ │ │ │ └── CommonItemTitle.java │ │ │ └── view/ │ │ │ └── RotateView.java │ │ └── res/ │ │ ├── anim/ │ │ │ ├── slide_in_left.xml │ │ │ ├── slide_in_right.xml │ │ │ ├── slide_out_left.xml │ │ │ └── slide_out_right.xml │ │ ├── drawable/ │ │ │ ├── common_button_bg.xml │ │ │ ├── common_button_txt_color.xml │ │ │ ├── common_content_dialog_bg.xml │ │ │ ├── common_content_dialog_btn_bg.xml │ │ │ ├── common_item_divider.xml │ │ │ ├── common_loading_bg.xml │ │ │ ├── common_rotate_loading.xml │ │ │ ├── common_scrollbar_thumb.xml │ │ │ ├── common_seekbar_progress.xml │ │ │ ├── common_seekbar_thumb.xml │ │ │ ├── common_splash.xml │ │ │ ├── main_menu_blog.xml │ │ │ └── main_menu_github.xml │ │ ├── drawable-xxhdpi/ │ │ │ ├── common_switch_thumb.xml │ │ │ └── common_switch_track.xml │ │ ├── layout/ │ │ │ ├── common_activity_drawer.xml │ │ │ ├── common_activity_drawer_nav_header.xml │ │ │ ├── common_activity_title.xml │ │ │ ├── common_activity_title_stub_no_scroll.xml │ │ │ ├── common_activity_title_stub_scroll.xml │ │ │ ├── common_dialog_content.xml │ │ │ ├── common_dialog_loading.xml │ │ │ ├── common_item.xml │ │ │ ├── common_item_title_click.xml │ │ │ ├── common_item_title_content.xml │ │ │ ├── common_item_title_image.xml │ │ │ ├── common_item_title_seekbar.xml │ │ │ └── common_item_title_switch.xml │ │ ├── menu/ │ │ │ └── common_drawer.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── subutil/ │ │ ├── .gitignore │ │ ├── README-CN.md │ │ ├── README.md │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── subutil/ │ │ │ └── util/ │ │ │ ├── AppStoreUtils.java │ │ │ ├── BatteryUtils.java │ │ │ ├── BitUtils.java │ │ │ ├── CameraUtils.java │ │ │ ├── CoordinateUtils.java │ │ │ ├── CountryUtils.java │ │ │ ├── DangerousUtils.java │ │ │ ├── GlideUtils.java │ │ │ ├── HttpsUtil.java │ │ │ ├── LocationUtils.java │ │ │ ├── LunarUtils.java │ │ │ ├── PinyinUtils.java │ │ │ ├── RetrofitUtils.java │ │ │ ├── TemperatureUtils.java │ │ │ ├── Utils.java │ │ │ └── http/ │ │ │ ├── Chain.java │ │ │ ├── ExecutorFactory.java │ │ │ ├── Headers.java │ │ │ ├── HttpUtils.java │ │ │ ├── Interceptor.java │ │ │ ├── Request.java │ │ │ ├── Response.java │ │ │ ├── ResponseCallback.java │ │ │ └── SSLConfig.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── subutil/ │ │ └── util/ │ │ ├── BaseTest.java │ │ ├── CoordinateUtilsTest.java │ │ ├── LunarUtilsTest.java │ │ ├── TemperatureUtilsTest.java │ │ ├── TestConfig.java │ │ └── http/ │ │ ├── HttpUtilsTest.java │ │ └── UserBean.java │ ├── utilcode/ │ │ ├── .gitignore │ │ ├── README-CN.md │ │ ├── README.md │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── blankj/ │ │ │ │ └── utilcode/ │ │ │ │ ├── constant/ │ │ │ │ │ ├── CacheConstants.java │ │ │ │ │ ├── MemoryConstants.java │ │ │ │ │ ├── PermissionConstants.java │ │ │ │ │ ├── RegexConstants.java │ │ │ │ │ └── TimeConstants.java │ │ │ │ └── util/ │ │ │ │ ├── ActivityUtils.java │ │ │ │ ├── AdaptScreenUtils.java │ │ │ │ ├── ApiUtils.java │ │ │ │ ├── AppUtils.java │ │ │ │ ├── ArrayUtils.java │ │ │ │ ├── BarUtils.java │ │ │ │ ├── BrightnessUtils.java │ │ │ │ ├── BusUtils.java │ │ │ │ ├── CacheDiskStaticUtils.java │ │ │ │ ├── CacheDiskUtils.java │ │ │ │ ├── CacheDoubleStaticUtils.java │ │ │ │ ├── CacheDoubleUtils.java │ │ │ │ ├── CacheMemoryStaticUtils.java │ │ │ │ ├── CacheMemoryUtils.java │ │ │ │ ├── CleanUtils.java │ │ │ │ ├── ClickUtils.java │ │ │ │ ├── ClipboardUtils.java │ │ │ │ ├── CloneUtils.java │ │ │ │ ├── CloseUtils.java │ │ │ │ ├── CollectionUtils.java │ │ │ │ ├── ColorUtils.java │ │ │ │ ├── ConvertUtils.java │ │ │ │ ├── CrashUtils.java │ │ │ │ ├── DebouncingUtils.java │ │ │ │ ├── DeviceUtils.java │ │ │ │ ├── DialogUtils.java │ │ │ │ ├── EncodeUtils.java │ │ │ │ ├── EncryptUtils.java │ │ │ │ ├── FileIOUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── FlashlightUtils.java │ │ │ │ ├── FragmentUtils.java │ │ │ │ ├── GsonUtils.java │ │ │ │ ├── ImageUtils.java │ │ │ │ ├── IntentUtils.java │ │ │ │ ├── JsonUtils.java │ │ │ │ ├── KeyboardUtils.java │ │ │ │ ├── LanguageUtils.java │ │ │ │ ├── LogUtils.java │ │ │ │ ├── MapUtils.java │ │ │ │ ├── MessengerUtils.java │ │ │ │ ├── MetaDataUtils.java │ │ │ │ ├── NetworkUtils.java │ │ │ │ ├── NotificationUtils.java │ │ │ │ ├── NumberUtils.java │ │ │ │ ├── ObjectUtils.java │ │ │ │ ├── PathUtils.java │ │ │ │ ├── PermissionUtils.java │ │ │ │ ├── PhoneUtils.java │ │ │ │ ├── ProcessUtils.java │ │ │ │ ├── ReflectUtils.java │ │ │ │ ├── RegexUtils.java │ │ │ │ ├── ResourceUtils.java │ │ │ │ ├── RomUtils.java │ │ │ │ ├── SDCardUtils.java │ │ │ │ ├── SPStaticUtils.java │ │ │ │ ├── SPUtils.java │ │ │ │ ├── ScreenUtils.java │ │ │ │ ├── ServiceUtils.java │ │ │ │ ├── ShadowUtils.java │ │ │ │ ├── ShellUtils.java │ │ │ │ ├── SizeUtils.java │ │ │ │ ├── SnackbarUtils.java │ │ │ │ ├── SpanUtils.java │ │ │ │ ├── StringUtils.java │ │ │ │ ├── ThreadUtils.java │ │ │ │ ├── ThrowableUtils.java │ │ │ │ ├── TimeUtils.java │ │ │ │ ├── ToastUtils.java │ │ │ │ ├── TouchUtils.java │ │ │ │ ├── UiMessageUtils.java │ │ │ │ ├── UriUtils.java │ │ │ │ ├── Utils.java │ │ │ │ ├── UtilsActivityLifecycleImpl.java │ │ │ │ ├── UtilsBridge.java │ │ │ │ ├── UtilsFileProvider.java │ │ │ │ ├── UtilsTransActivity.java │ │ │ │ ├── UtilsTransActivity4MainProcess.java │ │ │ │ ├── VibrateUtils.java │ │ │ │ ├── ViewUtils.java │ │ │ │ ├── VolumeUtils.java │ │ │ │ └── ZipUtils.java │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ └── utils_toast_bg.xml │ │ │ ├── layout/ │ │ │ │ └── utils_toast_view.xml │ │ │ ├── values/ │ │ │ │ └── styles.xml │ │ │ ├── values-v21/ │ │ │ │ └── styles.xml │ │ │ └── xml/ │ │ │ └── util_code_provider_paths.xml │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── utilcode/ │ │ │ └── util/ │ │ │ ├── ApiUtilsTest.java │ │ │ ├── ArrayUtilsTest.java │ │ │ ├── BaseTest.java │ │ │ ├── BusUtilsTest.java │ │ │ ├── BusUtilsVsEventBusTest.java │ │ │ ├── CacheDiskStaticUtilsTest.java │ │ │ ├── CacheDiskUtilsTest.java │ │ │ ├── CacheDoubleStaticUtilsTest.java │ │ │ ├── CacheDoubleUtilsTest.java │ │ │ ├── CacheMemoryStaticUtilsTest.java │ │ │ ├── CacheMemoryUtilsTest.java │ │ │ ├── CloneUtilsTest.java │ │ │ ├── CollectionUtilsTest.java │ │ │ ├── ColorUtilsTest.java │ │ │ ├── ConvertUtilsTest.java │ │ │ ├── EncodeUtilsTest.java │ │ │ ├── EncryptUtilsTest.java │ │ │ ├── FileIOUtilsTest.java │ │ │ ├── FileUtilsTest.java │ │ │ ├── GsonUtilsTest.java │ │ │ ├── ImageUtilsTest.java │ │ │ ├── LogUtilsTest.java │ │ │ ├── MapUtilsTest.java │ │ │ ├── NumberUtilsTest.java │ │ │ ├── ObjectUtilsTest.java │ │ │ ├── PathUtilsTest.java │ │ │ ├── RegexUtilsTest.java │ │ │ ├── StringUtilsTest.java │ │ │ ├── TestConfig.java │ │ │ ├── ThreadUtilsTest.java │ │ │ ├── TimeUtilsTest.java │ │ │ ├── UiMessageUtilsTest.java │ │ │ ├── ZipUtilsTest.java │ │ │ └── reflect/ │ │ │ ├── PrivateConstructors.java │ │ │ ├── ReflectUtilsTest.java │ │ │ ├── Test1.java │ │ │ ├── Test10.java │ │ │ ├── Test2.java │ │ │ ├── Test3.java │ │ │ ├── Test4.java │ │ │ ├── Test5.java │ │ │ ├── Test6.java │ │ │ ├── Test7.java │ │ │ ├── Test8.java │ │ │ ├── Test9.java │ │ │ ├── TestHierarchicalMethodsBase.java │ │ │ ├── TestHierarchicalMethodsSubclass.java │ │ │ └── TestPrivateStaticFinal.java │ │ └── res/ │ │ ├── encrypt/ │ │ │ └── MD5.txt │ │ ├── file/ │ │ │ ├── GBK.txt │ │ │ ├── UTF16BE.txt │ │ │ ├── UTF8.txt │ │ │ ├── Unicode.txt │ │ │ └── recuresive/ │ │ │ └── UTF8.txt │ │ ├── image/ │ │ │ └── ic_launcher.tif │ │ └── zip/ │ │ ├── test.txt │ │ ├── testDir/ │ │ │ └── test.txt │ │ ├── 测试.txt │ │ └── 测试文件夹/ │ │ └── 测试.txt │ ├── utildebug/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── utildebug/ │ │ │ ├── DebugUtils.java │ │ │ ├── base/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── PolygonDrawable.java │ │ │ │ ├── rv/ │ │ │ │ │ ├── BaseItem.java │ │ │ │ │ ├── BaseItemAdapter.java │ │ │ │ │ ├── ItemViewHolder.java │ │ │ │ │ └── RecycleViewDivider.java │ │ │ │ └── view/ │ │ │ │ ├── BaseContentFloatView.java │ │ │ │ ├── BaseContentView.java │ │ │ │ ├── BaseFloatView.java │ │ │ │ ├── EmptyGoneTextView.java │ │ │ │ ├── FloatEditText.java │ │ │ │ ├── FloatToast.java │ │ │ │ ├── FloatViewManager.java │ │ │ │ ├── SearchEditText.java │ │ │ │ ├── SwipeRightMenu.java │ │ │ │ └── listener/ │ │ │ │ ├── OnBackListener.java │ │ │ │ └── OnRefreshListener.java │ │ │ ├── config/ │ │ │ │ └── DebugConfig.java │ │ │ ├── debug/ │ │ │ │ ├── IDebug.java │ │ │ │ └── tool/ │ │ │ │ ├── AbsToolDebug.java │ │ │ │ ├── appInfo/ │ │ │ │ │ ├── AppInfoDebug.java │ │ │ │ │ ├── AppInfoFloatView.java │ │ │ │ │ └── AppInfoItem.java │ │ │ │ ├── clearCache/ │ │ │ │ │ └── ClearCacheDebug.java │ │ │ │ ├── clearStorage/ │ │ │ │ │ └── ClearStorageDebug.java │ │ │ │ ├── deviceInfo/ │ │ │ │ │ ├── DeviceInfoDebug.java │ │ │ │ │ ├── DeviceInfoFloatView.java │ │ │ │ │ └── DeviceInfoItem.java │ │ │ │ ├── fileExplorer/ │ │ │ │ │ ├── FileContentView.java │ │ │ │ │ ├── FileExplorerDebug.java │ │ │ │ │ ├── FileExplorerFloatView.java │ │ │ │ │ ├── FileItem.java │ │ │ │ │ ├── image/ │ │ │ │ │ │ └── ImageViewer.java │ │ │ │ │ ├── sp/ │ │ │ │ │ │ ├── SpItem.java │ │ │ │ │ │ ├── SpModifyContentView.java │ │ │ │ │ │ └── SpViewerContentView.java │ │ │ │ │ └── text/ │ │ │ │ │ └── TextViewer.java │ │ │ │ ├── logcat/ │ │ │ │ │ └── LogcatDebug.java │ │ │ │ └── restartApp/ │ │ │ │ └── RestartAppDebug.java │ │ │ ├── helper/ │ │ │ │ ├── FileHelper.java │ │ │ │ ├── ImageLoader.java │ │ │ │ ├── ShadowHelper.java │ │ │ │ ├── SpHelper.java │ │ │ │ └── WindowHelper.java │ │ │ ├── icon/ │ │ │ │ └── DebugIcon.java │ │ │ └── menu/ │ │ │ ├── DebugItem.java │ │ │ ├── DebugMenu.java │ │ │ ├── DebugMenuItem.java │ │ │ └── ReminderView.java │ │ └── res/ │ │ ├── anim/ │ │ │ ├── float_in.xml │ │ │ └── float_out.xml │ │ ├── drawable/ │ │ │ ├── du_rotate_refresh.xml │ │ │ ├── du_sel_et_bg.xml │ │ │ ├── du_shape_base_float_bg.xml │ │ │ ├── du_shape_base_float_title_adjust_bg.xml │ │ │ ├── du_shape_base_float_title_bg.xml │ │ │ ├── du_shape_base_float_title_close_bg.xml │ │ │ ├── du_shape_btn.xml │ │ │ ├── du_shape_divider.xml │ │ │ ├── du_shape_file_divider.xml │ │ │ ├── du_shape_input_bg.xml │ │ │ ├── du_shape_item_menu_bg.xml │ │ │ ├── du_shape_positive_btn.xml │ │ │ ├── du_shape_shadow.xml │ │ │ ├── du_shape_toast.xml │ │ │ ├── du_switch_thumb.xml │ │ │ └── du_switch_track.xml │ │ ├── layout/ │ │ │ ├── du_base_content_float.xml │ │ │ ├── du_debug_app_info.xml │ │ │ ├── du_debug_device_info.xml │ │ │ ├── du_debug_file_explorer.xml │ │ │ ├── du_debug_file_explorer_image.xml │ │ │ ├── du_debug_file_explorer_sp.xml │ │ │ ├── du_debug_file_explorer_sp_modify.xml │ │ │ ├── du_debug_icon.xml │ │ │ ├── du_debug_menu.xml │ │ │ ├── du_float_toast.xml │ │ │ ├── du_item_base_info.xml │ │ │ ├── du_item_empty.xml │ │ │ ├── du_item_file.xml │ │ │ ├── du_item_menu.xml │ │ │ ├── du_item_menu_item.xml │ │ │ ├── du_item_sp.xml │ │ │ └── du_reminder_view.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── values-zh-rCN/ │ │ └── strings.xml │ └── utildebug-no-op/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── blankj/ │ └── utildebug/ │ ├── DebugUtils.java │ └── debug/ │ └── IDebug.java ├── module_config.gradle ├── module_config.json ├── plugin/ │ ├── api-gradle-plugin/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── api/ │ │ │ ├── ApiClassVisitor.java │ │ │ ├── ApiExtension.groovy │ │ │ ├── ApiInfo.java │ │ │ ├── ApiInject.groovy │ │ │ ├── ApiPlugin.groovy │ │ │ ├── ApiUtilsClassVisitor.java │ │ │ └── Config.groovy │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── api/ │ │ ├── ApiTest.java │ │ └── ApiUtils.java │ ├── buildSrc-plugin/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── buildSrc/ │ │ ├── BuildSrcPlugin.groovy │ │ └── ModuleCfg.groovy │ ├── bus-gradle-plugin/ │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── blankj/ │ │ │ └── bus/ │ │ │ ├── BusClassVisitor.java │ │ │ ├── BusExtension.groovy │ │ │ ├── BusInfo.java │ │ │ ├── BusInject.groovy │ │ │ ├── BusPlugin.groovy │ │ │ ├── BusUtilsClassVisitor.java │ │ │ └── Config.groovy │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── blankj/ │ │ └── bus/ │ │ ├── BusTest.java │ │ └── BusUtils.java │ └── lib/ │ └── base-transform/ │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── build.gradle │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── blankj/ │ └── base_transform/ │ ├── BaseTransformCallback.groovy │ ├── BaseTransformConfig.groovy │ ├── BaseTransformPlugin.groovy │ └── util/ │ ├── JsonUtils.groovy │ ├── LogUtils.groovy │ └── ZipUtils.java ├── script/ │ ├── gitHelp.sh │ ├── runDevDebug.sh │ └── runProductionRelease.sh ├── settings.gradle └── sign/ ├── keystore.jks └── keystore.properties