├── .gitignore ├── .idea ├── .gitignore ├── androidTestResultsUserPreferences.xml ├── codeStyles │ └── Project.xml ├── compiler.xml ├── gradle.xml ├── inspectionProfiles │ └── Project_Default.xml ├── jarRepositories.xml ├── kotlinc.xml ├── misc.xml ├── qaplug_profiles.xml ├── sonarlint │ ├── issuestore │ │ ├── 1 │ │ │ └── 7 │ │ │ │ └── 174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a │ │ ├── 8 │ │ │ └── f │ │ │ │ └── 8fa3baa4b99f7520b455d8d76ff4204fafafaab6 │ │ └── index.pb │ └── securityhotspotstore │ │ ├── 1 │ │ └── 7 │ │ │ └── 174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a │ │ ├── 8 │ │ └── f │ │ │ └── 8fa3baa4b99f7520b455d8d76ff4204fafafaab6 │ │ └── index.pb └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro ├── release │ ├── app-release.apk │ ├── basicUI.apk │ ├── output-metadata.json │ └── 二维码.png └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── peakmain │ │ └── basicui │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── peakmain │ │ │ └── basicui │ │ │ ├── App.kt │ │ │ ├── MainActivity.kt │ │ │ ├── activity │ │ │ ├── home │ │ │ │ ├── AutoEditTextActivity.kt │ │ │ │ ├── DialogActivity.kt │ │ │ │ ├── KeyboardActivity.kt │ │ │ │ ├── LockScreenActivity.kt │ │ │ │ ├── MultiMenuActivity.kt │ │ │ │ ├── NaviagtionBarActivity.kt │ │ │ │ ├── PopWindowAndFlowActivity.kt │ │ │ │ ├── ShapeTextViewActivity.kt │ │ │ │ ├── TableLayoutActivity.kt │ │ │ │ ├── WheelViewSelectorActivity.kt │ │ │ │ ├── keyboard │ │ │ │ │ ├── CustomIdKeyboardActivity.kt │ │ │ │ │ ├── CustomPasswordKeyboardActivity.kt │ │ │ │ │ └── CustomPointKeyboardActivity.kt │ │ │ │ ├── loading │ │ │ │ │ ├── LoadingActivity.kt │ │ │ │ │ └── ShapeLoadingActivity.kt │ │ │ │ └── recylcer │ │ │ │ │ ├── RecyclerActivity.kt │ │ │ │ │ ├── activity │ │ │ │ │ ├── BaseRecyclerAcitvity.kt │ │ │ │ │ ├── GridGroupingActivity.kt │ │ │ │ │ ├── ItemTouchActivity.kt │ │ │ │ │ ├── LinearGroupingActivity.kt │ │ │ │ │ ├── MultiStateLayoutActivity.kt │ │ │ │ │ ├── MultiTypeLayoutActivity.kt │ │ │ │ │ ├── PullDownActivity1.kt │ │ │ │ │ ├── PullDownActivity2.kt │ │ │ │ │ ├── RecyclerViewHeadFooterActivity.kt │ │ │ │ │ ├── SuspenisonGridActivity.java │ │ │ │ │ └── SuspenisonLinearActivity.kt │ │ │ │ │ ├── bean │ │ │ │ │ └── GroupBean.kt │ │ │ │ │ ├── data │ │ │ │ │ └── PesudoImageData.kt │ │ │ │ │ ├── itemDecoration │ │ │ │ │ └── SuspenisonItemDecoration.kt │ │ │ │ │ ├── itemTouchHelper │ │ │ │ │ └── GridItemTouchHelper.kt │ │ │ │ │ └── refreshload │ │ │ │ │ ├── BestMissRefreshCreator.kt │ │ │ │ │ └── LoadMoreCreator.kt │ │ │ └── utils │ │ │ │ ├── GlideActivity.kt │ │ │ │ ├── LogActivity.java │ │ │ │ ├── OkHttpActivity.kt │ │ │ │ └── TextUtilsActivity.kt │ │ │ ├── adapter │ │ │ ├── BaseRecyclerStringAdapter.kt │ │ │ ├── FlowLayoutAdapter.kt │ │ │ ├── GroupGridAdapter.kt │ │ │ ├── GroupLinearAdapter.kt │ │ │ ├── ListMenuAdapter.kt │ │ │ ├── MenuBrandAdapter.kt │ │ │ ├── MenuHotCityAdapter.kt │ │ │ ├── MenuLeftRecyclerAdapter.kt │ │ │ ├── MenuRecommendSortAdapter.kt │ │ │ ├── MenuRightRecyclerAdapter.kt │ │ │ ├── MenuSubCategroyRightRecyclerAdapter.kt │ │ │ ├── MenuSubRightRecyclerAdapter.kt │ │ │ └── MultiTypeRecyclerAdapter.kt │ │ │ ├── base │ │ │ ├── BaseActivity.kt │ │ │ └── BaseFragmnet.kt │ │ │ ├── bean │ │ │ ├── CategoryRightSubBean.kt │ │ │ └── Person.kt │ │ │ ├── fragment │ │ │ ├── HomeFragment.kt │ │ │ ├── ItemFragment.kt │ │ │ ├── MineFragment.kt │ │ │ └── UtilsFragment.kt │ │ │ ├── launcher │ │ │ ├── AMapTask.kt │ │ │ ├── DeviceIdTask.kt │ │ │ ├── JPushTask.kt │ │ │ ├── UtilsTask.kt │ │ │ └── WeexTask.kt │ │ │ ├── utils │ │ │ ├── ActivityUtil.java │ │ │ └── JsonUtil.kt │ │ │ └── view │ │ │ ├── RadioCancelButton.kt │ │ │ └── TableLayout.kt │ └── res │ │ ├── drawable-hdpi │ │ └── bg_lable.png │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-xhdpi │ │ ├── bg_lable.png │ │ ├── list_view_pull.png │ │ ├── list_view_refreshing.png │ │ ├── list_view_refreshing_1.png │ │ ├── list_view_refreshing_2.png │ │ └── list_view_release.png │ │ ├── drawable │ │ ├── atour.xml │ │ ├── bg_lable.png │ │ ├── check_bg.xml │ │ ├── ic_bottom_navigation_home.xml │ │ ├── ic_bottom_navigation_me.xml │ │ ├── ic_bottom_navigation_utils.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_password_hide.xml │ │ ├── ic_password_show.xml │ │ ├── ic_triangle_down.xml │ │ ├── ic_triangle_up.xml │ │ ├── load_more_anim.xml │ │ ├── logo.jpg │ │ ├── select_bg.xml │ │ └── selector_tab_color.xml │ │ ├── layout │ │ ├── activity │ │ │ └── layout │ │ │ │ ├── activity_auto_edit_text.xml │ │ │ │ ├── activity_custom_id.xml │ │ │ │ ├── activity_custom_keyboard_point.xml │ │ │ │ ├── activity_custom_password.xml │ │ │ │ ├── activity_data_base.xml │ │ │ │ ├── activity_dialog_demo.xml │ │ │ │ ├── activity_image_compress.xml │ │ │ │ ├── activity_image_select.xml │ │ │ │ ├── activity_lock_pattern.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_menu_list.xml │ │ │ │ ├── activity_multi_state.xml │ │ │ │ ├── activity_navigation_bar.xml │ │ │ │ ├── activity_pop_window_flow.xml │ │ │ │ ├── activity_shape_loading.xml │ │ │ │ ├── activity_shape_text_view.xml │ │ │ │ ├── activity_table_layout.xml │ │ │ │ ├── activity_text_utils.xml │ │ │ │ └── menu_list_sub_view.xml │ │ ├── activity_log_view.xml │ │ ├── basic_grid_recycler_view.xml │ │ ├── basic_head_foot_recycler_view.xml │ │ ├── basic_linear_recycler_view.xml │ │ ├── basic_load_refresh_recycler_view.xml │ │ ├── dialog │ │ │ └── layout │ │ │ │ ├── dialog_bitmap_utils.xml │ │ │ │ ├── dialog_constraintlayout.xml │ │ │ │ ├── dialog_custom_keyboard_point.xml │ │ │ │ ├── dialog_dowload_progress.xml │ │ │ │ └── dialog_show.xml │ │ ├── fragment │ │ │ └── layout │ │ │ │ ├── fragment_home.xml │ │ │ │ ├── fragment_item.xml │ │ │ │ ├── fragment_mine.xml │ │ │ │ └── fragment_utils.xml │ │ ├── item_flow_layout.xml │ │ ├── item_group_head.xml │ │ ├── item_label_popwindow_view.xml │ │ ├── item_recycler_group.xml │ │ ├── item_recycler_menu_brand.xml │ │ ├── item_recycler_menu_categroy_right.xml │ │ ├── item_recycler_menu_categroy_right_sub.xml │ │ ├── item_recycler_menu_hot_city.xml │ │ ├── item_recycler_menu_recommend_sort.xml │ │ ├── item_recyclerview_categropy_sub.xml │ │ ├── item_recyclerview_home.xml │ │ ├── layout__bestmiss_refresh_header_view.xml │ │ ├── layout_categorize_screen.xml │ │ ├── layout_load_footer_view.xml │ │ ├── layout_menu_brand.xml │ │ ├── layout_menu_recommend_sort.xml │ │ ├── recycler_view_image.xml │ │ ├── suspend_recycler_view.xml │ │ ├── ui_list_data_screen_menu_100.xml │ │ ├── ui_list_data_screen_tab.xml │ │ ├── ui_list_menu_content.xml │ │ └── view_header_footer.xml │ │ ├── menu │ │ └── bottom_navigation_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.jpg │ │ ├── mipmap-mdpi │ │ └── ic_launcher.jpg │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.jpg │ │ ├── mipmap-xxhdpi │ │ ├── ic_default_portrait.png │ │ ├── ic_launcher.jpg │ │ └── list_load_more.png │ │ ├── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ └── network_security_config.xml │ └── test │ └── java │ └── com │ └── peakmain │ └── basicui │ └── AppTest.kt ├── basicuUI.keystore ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── jitpack.yml ├── settings.gradle └── ui ├── .gitignore ├── CMakeLists.txt ├── build.gradle ├── consumer-rules.pro ├── libjpeg ├── jpeg │ ├── cderror.h │ ├── cdjpeg.h │ ├── config.h │ ├── jconfig.h │ ├── jerror.h │ ├── jinclude.h │ ├── jmorecfg.h │ ├── jpeglib.h │ └── jversion.h └── so │ ├── arm64-v8a │ └── libjpeg.so │ ├── armeabi-v7a │ └── libjpeg.so │ └── x86 │ └── libjpeg.so ├── proguard-rules.pro └── src ├── androidTest └── java │ └── com │ └── peakmain │ └── ui │ └── ExampleInstrumentedTest.java └── main ├── AndroidManifest.xml ├── cpp ├── compress-lib.cpp ├── include │ └── gif │ │ ├── gif_hash.h │ │ ├── gif_lib.h │ │ └── gif_lib_private.h └── src │ └── gif │ ├── dgif_lib.c │ ├── egif_lib.c │ ├── gif_err.c │ ├── gif_font.c │ ├── gif_hash.c │ ├── gifalloc.c │ └── quantize.c ├── java └── com │ └── peakmain │ └── ui │ ├── BasicUIProvider.kt │ ├── adapter │ ├── BaseAdapter.kt │ ├── BaseViewPagerAdapter.java │ ├── flow │ │ ├── BaseFlowAdapter.kt │ │ └── FlowObserver.kt │ └── menu │ │ ├── BaseListMenuAdapter.kt │ │ ├── BaseMenuAdapter.kt │ │ └── MenuObserver.kt │ ├── compress │ ├── Checker.kt │ ├── CompressUtils.kt │ ├── ImageCompressUtils.kt │ ├── ImageCompute.kt │ └── OnCompressListener.kt │ ├── constants │ ├── BasicUIUtils.kt │ └── ReflectUtils.kt │ ├── dialog │ ├── AlertController.kt │ ├── AlertDialog.kt │ └── ViewHelper.kt │ ├── ext │ └── ViewExt.kt │ ├── image │ └── gif │ │ └── GifHelper.java │ ├── imageLoader │ ├── ILoader.kt │ ├── ImageLoader.kt │ ├── ImageRecyclerScrollListener.kt │ ├── factory │ │ ├── AbstractLoaderFactory.kt │ │ └── GlideLoaderFactory.kt │ ├── glide │ │ └── GlideLoader.kt │ └── transform │ │ └── CornerTransform.kt │ ├── loading │ ├── CircleLoadingView.kt │ ├── CircleView.kt │ ├── ShapeLoadingView.kt │ └── ShapeView.kt │ ├── navigationbar │ ├── AbsNavigationBar.kt │ ├── DefaultNavigationBar.kt │ ├── INavigation.kt │ ├── NavigationBar.kt │ └── NavigationParameter.kt │ ├── recyclerview │ ├── adapter │ │ ├── CommonRecyclerAdapter.kt │ │ ├── MultiTypeSupport.kt │ │ ├── ViewHolder.kt │ │ └── WrapRecyclerAdapter.kt │ ├── creator │ │ ├── DefaultLoadViewCreator.kt │ │ ├── DefaultRefreshViewCreator.kt │ │ ├── LoadViewCreator.kt │ │ └── RefreshViewCreator.kt │ ├── group │ │ ├── BaseGridGroupRecyclerAdapter.java │ │ ├── BaseGroupRecyclerAdapter.kt │ │ ├── GroupMultiType.kt │ │ └── GroupRecyclerBean.kt │ ├── itemdecoration │ │ ├── BaseSuspenisonItemDecoration.kt │ │ ├── CenterHorizontalDecoration.kt │ │ ├── DividerGridItemDecoration.kt │ │ └── DividerItemDecoration.kt │ ├── itemtouch │ │ └── BaseItemTouchHelper.java │ ├── listener │ │ ├── OnItemClickListener.kt │ │ └── OnLongClickListener.kt │ ├── manager │ │ └── RecyclerViewManager.kt │ ├── smooth │ │ ├── CenterSmoothScroller.kt │ │ ├── EndSmoothScroller.kt │ │ └── TopSmoothScroller.kt │ └── view │ │ ├── LoadRefreshRecyclerView.kt │ │ ├── RefreshRecyclerView.kt │ │ └── WrapRecyclerView.kt │ ├── tablayout │ ├── BaseTabLayout.kt │ └── ColorTrackTextView.kt │ ├── utils │ ├── ActivityUtils.kt │ ├── AppUtils.kt │ ├── BitmapUtils.kt │ ├── BubbleUtils.kt │ ├── FileUtils.kt │ ├── FragmentManagerHelper.kt │ ├── HandlerUtils.kt │ ├── LogUtils.kt │ ├── MathUtils.kt │ ├── OkHttpManager.kt │ ├── PreferencesUtil.kt │ ├── SizeUtils.kt │ ├── TextUtils.kt │ ├── ToastUtils.java │ ├── UIViewOffsetUtils.kt │ ├── fps │ │ ├── FpsMonitorUtils.kt │ │ └── FrameMonitor.kt │ ├── launcher │ │ ├── dispatcher │ │ │ ├── DelayInitDispatcher.kt │ │ │ └── TaskDispatcher.kt │ │ ├── sort │ │ │ ├── Graph.java │ │ │ └── TaskSortUtil.kt │ │ ├── stat │ │ │ ├── TaskStat.kt │ │ │ └── TaskStatBean.kt │ │ ├── task │ │ │ ├── DispatchRunnable.kt │ │ │ ├── ITask.kt │ │ │ ├── MainTask.kt │ │ │ ├── Task.kt │ │ │ └── TaskCallBack.kt │ │ └── tools │ │ │ └── DispatcherExecutor.kt │ ├── log │ │ ├── ConsolePrinter.java │ │ ├── FilePrinter.java │ │ ├── LogConfig.java │ │ ├── LogFormatter.java │ │ ├── LogManager.java │ │ ├── LogPrinter.java │ │ ├── LogRecord.java │ │ ├── PLog.java │ │ ├── StackTraceFormatter.java │ │ ├── StackTraceUtil.java │ │ ├── ThreadFormatter.java │ │ ├── ViewPrinter.java │ │ └── ViewPrinterProvider.java │ ├── network │ │ ├── HttpUtils.kt │ │ ├── IHttpEngine.kt │ │ ├── OkHttpEngine.kt │ │ ├── body │ │ │ └── ExMultipartBody.kt │ │ ├── callback │ │ │ ├── DownloadCallback.kt │ │ │ ├── EngineCallBack.kt │ │ │ ├── ProgressEngineCallBack.kt │ │ │ └── UploadProgressListener.kt │ │ ├── download │ │ │ ├── DownloadDispatcher.kt │ │ │ ├── DownloadRunnable.kt │ │ │ └── DownloadTask.kt │ │ ├── intercept │ │ │ ├── CacheResponseInterceptor.kt │ │ │ └── LoggerInterceptor.kt │ │ └── model │ │ │ └── DownloadProgress.kt │ └── wheel │ │ ├── DateUtils.kt │ │ ├── LunarCalendarUtil.kt │ │ └── WheelTimeUtil.kt │ ├── wheelview │ ├── adapter │ │ ├── ArrayWheelAdapter.java │ │ ├── NumericWheelAdapter.java │ │ └── WheelAdapter.kt │ ├── interfaces │ │ └── IPickerViewData.kt │ ├── listener │ │ ├── LoopViewGestureListener.kt │ │ └── OnItemSelectedListener.kt │ ├── timer │ │ ├── InertiaTimerTask.kt │ │ ├── MessageHandler.kt │ │ └── SmoothScrollTimerTask.kt │ └── view │ │ ├── BaseWheelView.kt │ │ ├── GenderWheelView.kt │ │ ├── SingleWheelWindow.kt │ │ ├── TimePickerWheelView.kt │ │ └── WheelView.java │ └── widget │ ├── AutoDeleteEditText.kt │ ├── CircleImageView.kt │ ├── CrumbView.kt │ ├── CustomPopupWindow.kt │ ├── FlowLayout.kt │ ├── RoundCheckBox.kt │ ├── ShapeConstraintLayout.kt │ ├── ShapeLinearLayout.kt │ ├── ShapeTextView.kt │ ├── SlideFrameLayout.kt │ ├── SquareFrameLayout.kt │ ├── SquareImageView.kt │ ├── SuspensionView.kt │ ├── listener │ ├── CustomeKeyboardListener.kt │ └── SimpleCustomKeyboardListener.kt │ ├── lock │ └── LockScreenView.kt │ ├── menu │ └── ListMenuView.kt │ └── password │ ├── CustomerKeyboard.java │ └── PasswordEditText.java └── res ├── anim ├── dialog_from_bottom_anim_in.xml ├── dialog_from_bottom_anim_out.xml ├── dialog_scale_anim_in.xml ├── dialog_scale_anim_out.xml ├── ui_activity_enter_transition_anim.xml └── ui_activity_exit_transition_anim.xml ├── drawable-xxhdpi ├── ic_error.png ├── ic_no_data.png └── ic_no_network.png ├── drawable ├── ic_address_select.xml ├── ic_customer_keyboard_delete.xml ├── ic_et_close.xml ├── ic_keyboard_arrow_down.xml ├── ic_keyboard_hide.xml ├── ic_log_flod_description_24.xml ├── ic_more.xml ├── ic_progress_circle.xml ├── shape_loading_shadow_bg.xml ├── ui_ic_arrow_right.xml ├── ui_ic_baseline_close_24.xml ├── ui_ic_left_back.xml ├── ui_ic_media_chooser.xml ├── ui_ic_media_chooser_selected.xml ├── ui_ic_media_chooser_unselected.xml ├── ui_ic_photo_camera.xml ├── ui_ic_suspension_setting.xml ├── ui_num_oval_background.xml ├── ui_picture_preview_text_color.xml ├── ui_preview_close.xml └── ui_preview_download.xml ├── layout ├── layout_empty_view.xml ├── layout_error_view.xml ├── layout_loading_view.xml ├── layout_network_view.xml ├── log_item.xml ├── ui_auto_delete_edittext.xml ├── ui_crumb_item_header.xml ├── ui_crumb_item_layout.xml ├── ui_custom_keyboard.xml ├── ui_default_refresh_view.xml ├── ui_defualt_navigation_bar.xml ├── ui_fps_view.xml ├── ui_fragment_file_list.xml ├── ui_fragment_image_select.xml ├── ui_item_base_wheelview.xml ├── ui_item_file_list_adapter.xml ├── ui_item_recycle_group_head.xml └── ui_shape_view.xml ├── values ├── attrs.xml ├── colors.xml ├── ids.xml ├── strings.xml └── styles.xml └── xml └── basic_ui_provider_paths.xml /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/androidTestResultsUserPreferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 23 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/sonarlint/issuestore/1/7/174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/.idea/sonarlint/issuestore/1/7/174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a -------------------------------------------------------------------------------- /.idea/sonarlint/issuestore/8/f/8fa3baa4b99f7520b455d8d76ff4204fafafaab6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/.idea/sonarlint/issuestore/8/f/8fa3baa4b99f7520b455d8d76ff4204fafafaab6 -------------------------------------------------------------------------------- /.idea/sonarlint/issuestore/index.pb: -------------------------------------------------------------------------------- 1 | 2 | v 3 | Fui/src/main/java/com/peakmain/ui/navigationbar/DefaultNavigationBar.kt,1/7/174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a 4 | t 5 | Dui/src/main/java/com/peakmain/ui/adapter/menu/BaseListMenuAdapter.kt,8/f/8fa3baa4b99f7520b455d8d76ff4204fafafaab6 -------------------------------------------------------------------------------- /.idea/sonarlint/securityhotspotstore/1/7/174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/.idea/sonarlint/securityhotspotstore/1/7/174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a -------------------------------------------------------------------------------- /.idea/sonarlint/securityhotspotstore/8/f/8fa3baa4b99f7520b455d8d76ff4204fafafaab6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/.idea/sonarlint/securityhotspotstore/8/f/8fa3baa4b99f7520b455d8d76ff4204fafafaab6 -------------------------------------------------------------------------------- /.idea/sonarlint/securityhotspotstore/index.pb: -------------------------------------------------------------------------------- 1 | 2 | v 3 | Fui/src/main/java/com/peakmain/ui/navigationbar/DefaultNavigationBar.kt,1/7/174d5ae81d266abd9ce8406c8b4b6e38eb85dc1a 4 | t 5 | Dui/src/main/java/com/peakmain/ui/adapter/menu/BaseListMenuAdapter.kt,8/f/8fa3baa4b99f7520b455d8d76ff4204fafafaab6 -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | 2 | # 保持哪些类不被混淆 3 | -keep public class * extends android.app.Fragment 4 | -keep public class * extends android.app.Activity 5 | -keep public class * extends android.app.Application 6 | -keep public class * extends android.app.Service 7 | -keep public class * extends android.content.BroadcastReceiver 8 | -keep public class * extends android.content.ContentProvider 9 | -keep public class * extends android.app.backup.BackupAgentHelper 10 | -keep public class * extends android.preference.Preference 11 | -assumenosideeffects class android.util.Log { 12 | public static boolean isLoggable(java.lang.String, int); 13 | public static int v(...); 14 | public static int i(...); 15 | public static int w(...); 16 | public static int d(...); 17 | public static int e(...); 18 | } 19 | # AndroidX 20 | -keep class com.google.android.material.**{*;} 21 | -keep class androidx.**{*;} 22 | -keep public class * extends androidx.** 23 | -keep interface androidx.**{*;} 24 | -keep @androidx.annotation.Keep class * 25 | -keepclassmembers class *{ 26 | @androidx.annotation.Keep *; 27 | } 28 | -dontwarn com.google.android.material.** 29 | -dontnote com.google.android.material.** 30 | -dontwarn androidx.** 31 | -keep class com.peakmain.basicui.bean.*{*;} 32 | 33 | -keepattributes Signature 34 | -keepattributes *Annotation* 35 | -keep class com.google.gson.** {*;} 36 | -keep class com.google.**{*;} 37 | -keep class com.google.gson.stream.** { *; } 38 | -keep class com.google.gson.examples.android.model.** { *; } -------------------------------------------------------------------------------- /app/release/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/release/app-release.apk -------------------------------------------------------------------------------- /app/release/basicUI.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/release/basicUI.apk -------------------------------------------------------------------------------- /app/release/output-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "artifactType": { 4 | "type": "APK", 5 | "kind": "Directory" 6 | }, 7 | "applicationId": "com.peakmain.basicui", 8 | "variantName": "release", 9 | "elements": [ 10 | { 11 | "type": "SINGLE", 12 | "filters": [], 13 | "properties": [], 14 | "versionCode": 2, 15 | "versionName": "1.1", 16 | "enabled": true, 17 | "outputFile": "app-release.apk" 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /app/release/二维码.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/release/二维码.png -------------------------------------------------------------------------------- /app/src/androidTest/java/com/peakmain/basicui/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui; 2 | 3 | import static org.junit.Assert.assertNotNull; 4 | 5 | import androidx.test.ext.junit.runners.AndroidJUnit4; 6 | 7 | import com.peakmain.ui.constants.BasicUIUtils; 8 | 9 | import org.junit.Test; 10 | import org.junit.runner.RunWith; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | assertNotNull(BasicUIUtils.getApplication()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/App.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui 2 | 3 | import android.app.Application 4 | import android.os.Handler 5 | import android.os.Looper 6 | import com.peakmain.basicui.launcher.* 7 | import com.peakmain.ui.utils.ActivityUtils 8 | import com.peakmain.ui.utils.launcher.dispatcher.TaskDispatcher.Companion.createInstance 9 | import com.peakmain.ui.utils.launcher.dispatcher.TaskDispatcher.Companion.init 10 | 11 | /** 12 | * author :Peakmain 13 | * createTime:2020/3/9 14 | * mail:2726449200@qq.com 15 | * describe: 16 | */ 17 | class App : Application() { 18 | var deviceId: String? = null 19 | override fun onCreate() { 20 | super.onCreate() 21 | app = this 22 | init(this) 23 | val dispatcher = createInstance() 24 | dispatcher.addTask(AMapTask()) 25 | .addTask(UtilsTask()) 26 | .addTask(JPushTask()) 27 | .addTask(DeviceIdTask()) 28 | .addTask(WeexTask()) 29 | .start() 30 | ActivityUtils.mInstance.init(this) 31 | //异常初始化 32 | // CrashUtils.init() 33 | } 34 | 35 | companion object { 36 | /** 37 | * 获取Application 38 | * 39 | * @return Application 40 | */ 41 | var app: Application? = null 42 | private set 43 | private val APP_HANDLER = Handler(Looper.getMainLooper()) 44 | fun runOnUiThread(runnable: Runnable) { 45 | if (Looper.myLooper() == Looper.getMainLooper()) { 46 | runnable.run() 47 | } else { 48 | APP_HANDLER.post(runnable) 49 | } 50 | } 51 | 52 | } 53 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/AutoEditTextActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home 2 | 3 | import com.peakmain.basicui.R 4 | import com.peakmain.basicui.base.BaseActivity 5 | import com.peakmain.ui.widget.AutoDeleteEditText 6 | 7 | /** 8 | * author :Peakmain 9 | * createTime:2020/3/11 10 | * mail:2726449200@qq.com 11 | * describe: 12 | */ 13 | class AutoEditTextActivity : BaseActivity() { 14 | override fun getLayoutId(): Int { 15 | return R.layout.activity_auto_edit_text 16 | } 17 | 18 | override fun initView() { 19 | mNavigationBuilder!!.setTitleText("AutoEditText的使用") 20 | .create() 21 | findViewById(R.id.auto_edit_text).setText("你好,我是Peakmain") 22 | } 23 | 24 | override fun initData() {} 25 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/LockScreenActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home 2 | 3 | import com.peakmain.basicui.R 4 | import com.peakmain.basicui.base.BaseActivity 5 | import com.peakmain.ui.utils.ToastUtils 6 | import com.peakmain.ui.widget.lock.LockScreenView 7 | import com.peakmain.ui.widget.lock.LockScreenView.OnLockSuccessListener 8 | 9 | /** 10 | * author :Peakmain 11 | * createTime:2020/3/15 12 | * mail:2726449200@qq.com 13 | * describe:锁屏的activity 14 | */ 15 | class LockScreenActivity : BaseActivity() { 16 | private var mLockScreenView: LockScreenView? = null 17 | override fun getLayoutId(): Int { 18 | return R.layout.activity_lock_pattern 19 | } 20 | 21 | override fun initView() { 22 | mLockScreenView = findViewById(R.id.lock_pattern) 23 | mNavigationBuilder!!.setTitleText("九宫格解锁").create() 24 | } 25 | 26 | override fun initData() { 27 | mLockScreenView!!.setOnLockSuccessListener(object : OnLockSuccessListener { 28 | override val lockResult: String 29 | get() = "123456" 30 | 31 | override fun onLockSuccess(pwd: String?) { 32 | ToastUtils.showShort("密码正确,正在探索BasicUI......") 33 | finish() 34 | } 35 | }) 36 | } 37 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/ShapeTextViewActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home 2 | 3 | import android.graphics.Color 4 | import com.peakmain.basicui.R 5 | import com.peakmain.basicui.base.BaseActivity 6 | import com.peakmain.ui.widget.ShapeTextView 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/3/11 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class ShapeTextViewActivity : BaseActivity() { 15 | override fun getLayoutId(): Int { 16 | return R.layout.activity_shape_text_view 17 | } 18 | 19 | override fun initView() { 20 | mNavigationBuilder!!.setTitleText("ShapeTextView的使用").create() 21 | findViewById(R.id.stv_pressed_color) 22 | .setPressedColor(Color.GRAY) 23 | 24 | findViewById(R.id.stv_enable_color) 25 | .setUnEnabledColor(Color.BLUE) 26 | } 27 | 28 | override fun initData() {} 29 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/keyboard/CustomIdKeyboardActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.keyboard 2 | 3 | import com.peakmain.basicui.R 4 | import com.peakmain.basicui.base.BaseActivity 5 | import com.peakmain.ui.utils.ToastUtils 6 | import com.peakmain.ui.widget.listener.SimpleCustomKeyboardListener 7 | import com.peakmain.ui.widget.password.CustomerKeyboard 8 | import com.peakmain.ui.widget.password.PasswordEditText 9 | 10 | /** 11 | * author :Peakmain 12 | * createTime:2020/3/12 13 | * mail:2726449200@qq.com 14 | * describe:自定义身份证键盘 15 | */ 16 | class CustomIdKeyboardActivity : BaseActivity() { 17 | private var mCustomerKeyboard: CustomerKeyboard? = null 18 | private var mEditText: PasswordEditText? = null 19 | override fun getLayoutId(): Int { 20 | return R.layout.activity_custom_id 21 | } 22 | 23 | override fun initView() { 24 | mCustomerKeyboard = findViewById(R.id.custom_key_board) 25 | mEditText = findViewById(R.id.password_edit_text) 26 | mNavigationBuilder!!.setTitleText("自定义身份证键盘").create() 27 | } 28 | 29 | override fun initData() { 30 | mCustomerKeyboard!!.setOnCustomerKeyboardClickListener(object : SimpleCustomKeyboardListener() { 31 | override fun click(number: String?) { 32 | mEditText!!.addPasswordNumber(number) 33 | } 34 | 35 | override fun delete() { 36 | mEditText!!.deletePassWord() 37 | } 38 | }) 39 | mEditText!!.setPasswordCompleteListener { text: String? -> ToastUtils.showShort(text!!) } 40 | } 41 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/loading/ShapeLoadingActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.loading 2 | 3 | import android.os.Handler 4 | import android.os.Looper 5 | import android.view.View 6 | import com.peakmain.basicui.R 7 | import com.peakmain.basicui.base.BaseActivity 8 | import com.peakmain.ui.loading.ShapeLoadingView 9 | 10 | /** 11 | * author :Peakmain 12 | * createTime:2020/3/18 13 | * mail:2726449200@qq.com 14 | * describe: 15 | */ 16 | class ShapeLoadingActivity : BaseActivity() { 17 | private var mShapeLoadingView: ShapeLoadingView? = null 18 | private val mHandler = Handler(Looper.getMainLooper()) 19 | override fun getLayoutId(): Int { 20 | return R.layout.activity_shape_loading 21 | } 22 | 23 | override fun initView() { 24 | mShapeLoadingView = findViewById(R.id.shape_loading_view) 25 | mNavigationBuilder!!.setTitleText("仿老版58同城加载loading").create() 26 | } 27 | 28 | override fun initData() { 29 | mShapeLoadingView!!.setLoadingName("数据正在加载....") 30 | } 31 | 32 | fun start(view: View?) { 33 | val shapeLoadingView = ShapeLoadingView(this) 34 | shapeLoadingView.show() 35 | mHandler.postDelayed({ shapeLoadingView.hide() }, 2000) 36 | } 37 | 38 | fun click(view: View?) { 39 | mShapeLoadingView!!.hide() 40 | } 41 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/activity/GridGroupingActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.activity 2 | 3 | import com.peakmain.basicui.R 4 | 5 | /** 6 | * author :Peakmain 7 | * createTime:2020/3/22 8 | * mail:2726449200@qq.com 9 | * describe: 10 | */ 11 | class GridGroupingActivity : BaseRecyclerAcitvity() { 12 | override fun getLayoutId(): Int { 13 | return R.layout.basic_grid_recycler_view 14 | } 15 | 16 | override fun initData() { 17 | mNavigationBuilder!!.setTitleText("GridLayoutManager实现分组").create() 18 | mGroupAdapter!!.adjustSpanSize(mRecyclerView!!) 19 | mRecyclerView!!.adapter = mGroupAdapter 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/activity/ItemTouchActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.activity 2 | 3 | import android.util.Log 4 | import androidx.recyclerview.widget.ItemTouchHelper 5 | import com.peakmain.basicui.BuildConfig 6 | import com.peakmain.basicui.R 7 | import com.peakmain.basicui.activity.home.recylcer.itemTouchHelper.GridItemTouchHelper 8 | 9 | /** 10 | * author :Peakmain 11 | * createTime:2020/3/25 12 | * mail:2726449200@qq.com 13 | * describe: 14 | */ 15 | class ItemTouchActivity : BaseRecyclerAcitvity() { 16 | override fun getLayoutId(): Int { 17 | return R.layout.basic_grid_recycler_view 18 | } 19 | 20 | override fun initData() { 21 | mRecyclerView!!.adapter = mGroupAdapter 22 | mNavigationBuilder?.setTitleText("itemTouchHelp方法实现删除和拖拽")?.create() 23 | val itemTouchHelper = GridItemTouchHelper(mGroupAdapter, mGroupBeans) 24 | itemTouchHelper.attachToRecyclerView(mRecyclerView) 25 | mGroupAdapter!!.adjustSpanSize(mRecyclerView!!) 26 | //获取更新后的数据 27 | itemTouchHelper.setOnDataUpdatedListener { 28 | for (data in it) { 29 | Log.e(BuildConfig.TAG, if (data!!.isHeader) "head" else data.url?:"") 30 | } 31 | }.setGridDragFlags(ItemTouchHelper.UP) 32 | } 33 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/activity/LinearGroupingActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.activity 2 | 3 | import com.peakmain.basicui.R 4 | 5 | /** 6 | * author :Peakmain 7 | * createTime:2020/3/23 8 | * mail:2726449200@qq.com 9 | * describe: 10 | */ 11 | class LinearGroupingActivity : BaseRecyclerAcitvity() { 12 | override fun getLayoutId(): Int { 13 | return R.layout.basic_linear_recycler_view 14 | } 15 | 16 | override fun initData() { 17 | mNavigationBuilder!!.setTitleText("LinearLayoutManager实现分组").create() 18 | mRecyclerView!!.adapter = mGroupAdapter 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/activity/SuspenisonGridActivity.java: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.activity; 2 | 3 | import android.graphics.Typeface; 4 | 5 | import com.peakmain.basicui.R; 6 | import com.peakmain.basicui.activity.home.recylcer.itemDecoration.SuspenisonItemDecoration; 7 | import com.peakmain.basicui.adapter.GroupGridAdapter; 8 | import com.peakmain.ui.recyclerview.itemdecoration.BaseSuspenisonItemDecoration; 9 | 10 | /** 11 | * author :Peakmain 12 | * createTime:2020/3/23 13 | * mail:2726449200@qq.com 14 | * describe: 15 | */ 16 | public class SuspenisonGridActivity extends BaseRecyclerAcitvity { 17 | 18 | @Override 19 | protected int getLayoutId() { 20 | return R.layout.basic_grid_recycler_view; 21 | } 22 | 23 | 24 | @Override 25 | protected void initData() { 26 | if (mNavigationBuilder != null) 27 | mNavigationBuilder.setTitleText("GridLayoutManager实现悬浮", Typeface.DEFAULT).create(); 28 | BaseSuspenisonItemDecoration itemDecoration = new SuspenisonItemDecoration 29 | .Builder(this, mGroupBeans) 30 | .setTextCenter(true).create(); 31 | if (mRecyclerView != null) { 32 | if (itemDecoration != null) 33 | mRecyclerView.addItemDecoration(itemDecoration); 34 | GroupGridAdapter mGroupAdapter = new GroupGridAdapter(this, mGroupBeans); 35 | mRecyclerView.setAdapter(mGroupAdapter); 36 | mGroupAdapter.adjustSpanSize(mRecyclerView); 37 | } 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/activity/SuspenisonLinearActivity.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.activity 2 | 3 | import androidx.recyclerview.widget.RecyclerView 4 | import com.peakmain.basicui.R 5 | import com.peakmain.basicui.activity.home.recylcer.bean.GroupBean 6 | import com.peakmain.basicui.activity.home.recylcer.data.PesudoImageData.Companion.instance 7 | import com.peakmain.basicui.activity.home.recylcer.itemDecoration.SuspenisonItemDecoration 8 | import com.peakmain.basicui.adapter.GroupLinearAdapter 9 | import com.peakmain.basicui.base.BaseActivity 10 | 11 | 12 | /** 13 | * author :Peakmain 14 | * createTime:2020/3/23 15 | * mail:2726449200@qq.com 16 | * describe: 17 | */ 18 | class SuspenisonLinearActivity : BaseActivity() { 19 | protected lateinit var mGroupBeans: MutableList 20 | protected var mGroupAdapter: GroupLinearAdapter? = null 21 | protected var mRecyclerView: RecyclerView? = null 22 | override fun getLayoutId(): Int { 23 | return R.layout.suspend_recycler_view 24 | } 25 | 26 | override fun initView() { 27 | mRecyclerView = findViewById(R.id.recycler_view) 28 | } 29 | 30 | override fun initData() { 31 | mNavigationBuilder!!.setTitleText("LinearLayoutManager实现悬浮").create() 32 | mGroupBeans = instance.data.toMutableList() 33 | val itemDecoration = SuspenisonItemDecoration.Builder(this, mGroupBeans) 34 | .setTextCenter(true).create() 35 | val suspenisonItemDecoration = SuspenisonItemDecoration(this, mGroupBeans) 36 | mRecyclerView!!.addItemDecoration(itemDecoration!!) 37 | mGroupAdapter = GroupLinearAdapter(this, mGroupBeans) 38 | mRecyclerView!!.adapter = mGroupAdapter 39 | } 40 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/bean/GroupBean.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.bean 2 | 3 | import com.peakmain.ui.recyclerview.group.GroupRecyclerBean 4 | 5 | /** 6 | * author :Peakmain 7 | * createTime:2020/3/22 8 | * mail:2726449200@qq.com 9 | * describe: 10 | */ 11 | class GroupBean : GroupRecyclerBean { 12 | var url: String? = null 13 | var time: String? = null 14 | 15 | constructor(isHeader: Boolean, header: String?) : super(isHeader, header) 16 | constructor(url: String?, time: String?) { 17 | this.url = url 18 | this.time = time 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/itemDecoration/SuspenisonItemDecoration.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.itemDecoration 2 | 3 | import android.content.Context 4 | import com.peakmain.basicui.activity.home.recylcer.bean.GroupBean 5 | import com.peakmain.ui.recyclerview.itemdecoration.BaseSuspenisonItemDecoration 6 | 7 | /** 8 | * author :Peakmain 9 | * createTime:2020/3/23 10 | * mail:2726449200@qq.com 11 | * describe: 12 | */ 13 | class SuspenisonItemDecoration : BaseSuspenisonItemDecoration { 14 | constructor(builder: BaseSuspenisonItemDecoration.Builder) : super(builder) 15 | constructor(context: Context?, data: List?) : super(context, data!!) 16 | 17 | override fun getTopText(data: List?, position: Int): String? { 18 | return data!![position]?.time 19 | } 20 | 21 | class Builder(context: Context?, data: List?) : BaseSuspenisonItemDecoration.Builder(context!!, data!!) { 22 | override fun create(): BaseSuspenisonItemDecoration<*> { 23 | return SuspenisonItemDecoration(this) 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/home/recylcer/itemTouchHelper/GridItemTouchHelper.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.home.recylcer.itemTouchHelper 2 | 3 | import androidx.recyclerview.widget.RecyclerView 4 | import com.peakmain.basicui.activity.home.recylcer.bean.GroupBean 5 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 6 | import com.peakmain.ui.recyclerview.itemtouch.BaseItemTouchHelper 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/3/25 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class GridItemTouchHelper(adapter: RecyclerView.Adapter?, data: List?) : BaseItemTouchHelper(adapter, data) -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/activity/utils/LogActivity.java: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.activity.utils; 2 | 3 | import android.widget.Button; 4 | 5 | import com.peakmain.basicui.R; 6 | import com.peakmain.basicui.base.BaseActivity; 7 | import com.peakmain.ui.utils.log.LogManager; 8 | import com.peakmain.ui.utils.log.PLog; 9 | 10 | /** 11 | * author :Peakmain 12 | * createTime:2021/3/14 13 | * mail:2726449200@qq.com 14 | * describe: 15 | */ 16 | public class LogActivity extends BaseActivity { 17 | 18 | private Button mBtnPrintLog; 19 | 20 | 21 | @Override 22 | protected int getLayoutId() { 23 | return R.layout.activity_log_view; 24 | 25 | } 26 | 27 | @Override 28 | protected void initView() { 29 | mBtnPrintLog = findViewById(R.id.btn_print_log); 30 | LogManager.getInstance().showPrintView(this); 31 | mBtnPrintLog.setOnClickListener(v -> { 32 | PLog.e("测试打印"); 33 | }); 34 | } 35 | 36 | @Override 37 | protected void initData() { 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/BaseRecyclerStringAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import com.peakmain.basicui.R 5 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 6 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/3/9 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class BaseRecyclerStringAdapter(context: Context?, data: List) : CommonRecyclerAdapter(context, data, R.layout.item_recyclerview_home) { 15 | override fun convert(holder: ViewHolder, item: String) { 16 | holder.setText(R.id.tv_title, item) 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/GroupGridAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import android.widget.ImageView 5 | import com.peakmain.basicui.R 6 | import com.peakmain.basicui.activity.home.recylcer.bean.GroupBean 7 | import com.peakmain.ui.imageLoader.ImageLoader.Companion.instance 8 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 9 | import com.peakmain.ui.recyclerview.group.BaseGridGroupRecyclerAdapter 10 | 11 | /** 12 | * author :Peakmain 13 | * createTime:2020/3/22 14 | * mail:2726449200@qq.com 15 | * describe: 16 | */ 17 | class GroupGridAdapter(var context: Context, data: List?) : 18 | BaseGridGroupRecyclerAdapter(context, data, R.layout.item_recycler_group) { 19 | override fun convert(holder: ViewHolder, item: GroupBean) { 20 | val imageView = holder.getView(R.id.iv_image) 21 | instance.displayImage(item.url!!, imageView, 0) 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/GroupLinearAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import android.widget.ImageView 5 | import com.peakmain.basicui.R 6 | import com.peakmain.basicui.activity.home.recylcer.bean.GroupBean 7 | import com.peakmain.ui.imageLoader.ImageLoader.Companion.instance 8 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 9 | import com.peakmain.ui.recyclerview.group.BaseGroupRecyclerAdapter 10 | 11 | /** 12 | * author :Peakmain 13 | * createTime:2020/3/22 14 | * mail:2726449200@qq.com 15 | * describe: 16 | */ 17 | class GroupLinearAdapter(context: Context?, data: MutableList) : BaseGroupRecyclerAdapter(context, data, R.layout.item_recycler_group, R.layout.item_group_head) { 18 | override fun convertHead(holder: ViewHolder, item: GroupBean?) { 19 | holder.setText(R.id.tv_index, item?.header) 20 | } 21 | 22 | override fun convert(holder: ViewHolder, item: GroupBean) { 23 | val imageView = holder.getView(R.id.iv_image) 24 | instance.displayImage( item.url!!, imageView, 0) 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/MenuBrandAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import com.peakmain.basicui.R 5 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 6 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2023/04/14 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class MenuBrandAdapter(context: Context?, data: MutableList) : 15 | CommonRecyclerAdapter(context, data, R.layout.item_recycler_menu_brand) { 16 | override fun convert(holder: ViewHolder, item: String) { 17 | holder.setText(R.id.tv_brand, item) 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/MenuHotCityAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import com.peakmain.basicui.R 5 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 6 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2023/04/14 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class MenuHotCityAdapter(context: Context?, data: MutableList) : 15 | CommonRecyclerAdapter(context, data, R.layout.item_recycler_menu_hot_city) { 16 | override fun convert(holder: ViewHolder, item: String) { 17 | holder.setText(R.id.tv_city, item) 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/MenuLeftRecyclerAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import android.graphics.Color 5 | import android.util.TypedValue 6 | import android.widget.TextView 7 | import com.peakmain.basicui.R 8 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 9 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 10 | 11 | /** 12 | * author :Peakmain 13 | * createTime:2020/3/9 14 | * mail:2726449200@qq.com 15 | * describe: 16 | */ 17 | class MenuLeftRecyclerAdapter(context: Context?, data: List) : 18 | CommonRecyclerAdapter(context, data, R.layout.item_recyclerview_home) { 19 | @JvmField 20 | var mSelectPosition = 0 21 | 22 | @JvmField 23 | var mOldSelectPosition = mSelectPosition 24 | override fun convert(holder: ViewHolder, item: String) { 25 | holder.setText(R.id.tv_title, item) 26 | val textView = holder.getView(R.id.tv_title) 27 | textView 28 | ?.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f) 29 | if (holder.absoluteAdapterPosition == mSelectPosition) { 30 | textView?.setTextColor(Color.parseColor("#6CBD9B")) 31 | } else { 32 | textView?.setTextColor(Color.parseColor("#272A2B")) 33 | } 34 | } 35 | 36 | fun setSelectItem(position: Int) { 37 | mSelectPosition = position 38 | notifyItemChanged(mOldSelectPosition) 39 | notifyItemChanged(mSelectPosition) 40 | mOldSelectPosition = position 41 | } 42 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/MenuSubCategroyRightRecyclerAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import com.peakmain.basicui.R 5 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 6 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/3/9 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class MenuSubCategroyRightRecyclerAdapter(context: Context?, data: List) : 15 | CommonRecyclerAdapter(context, data, R.layout.item_recyclerview_categropy_sub) { 16 | override fun convert(holder: ViewHolder, item: String) { 17 | holder.setText(R.id.tv_title, item) 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/MenuSubRightRecyclerAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import android.view.View 5 | import androidx.recyclerview.widget.GridLayoutManager 6 | import androidx.recyclerview.widget.RecyclerView 7 | import com.peakmain.basicui.R 8 | import com.peakmain.basicui.bean.CategoryRightSubBean 9 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 10 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 11 | 12 | /** 13 | * author :Peakmain 14 | * createTime:2020/3/9 15 | * mail:2726449200@qq.com 16 | * describe: 17 | */ 18 | class MenuSubRightRecyclerAdapter(context: Context?, data: MutableList) : 19 | CommonRecyclerAdapter( 20 | context, 21 | data, 22 | R.layout.item_recycler_menu_categroy_right_sub 23 | ) { 24 | override fun convert(holder: ViewHolder, item: CategoryRightSubBean) { 25 | holder.setText(R.id.tv_sub_title, item.subTitle) 26 | val recyclerView = holder.getView(R.id.rv_content) 27 | (recyclerView?.layoutManager as GridLayoutManager).spanSizeLookup = 28 | ThreeColumnSpanSizeLookup() 29 | recyclerView.adapter = MenuSubCategroyRightRecyclerAdapter(mContext, item.activityList) 30 | if(holder.bindingAdapterPosition==0){ 31 | holder.setViewVisibility(R.id.view, View.GONE) 32 | }else{ 33 | holder.setViewVisibility(R.id.view, View.VISIBLE) 34 | } 35 | } 36 | 37 | } 38 | 39 | class ThreeColumnSpanSizeLookup : GridLayoutManager.SpanSizeLookup() { 40 | override fun getSpanSize(position: Int): Int { 41 | return 1 42 | } 43 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/adapter/MultiTypeRecyclerAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.adapter 2 | 3 | import android.content.Context 4 | import com.peakmain.basicui.R 5 | import com.peakmain.ui.imageLoader.ImageLoader 6 | import com.peakmain.ui.recyclerview.adapter.CommonRecyclerAdapter 7 | import com.peakmain.ui.recyclerview.adapter.MultiTypeSupport 8 | import com.peakmain.ui.recyclerview.adapter.ViewHolder 9 | 10 | /** 11 | * author :Peakmain 12 | * createTime:2021/9/27 13 | * mail:2726449200@qq.com 14 | * describe: 15 | */ 16 | class MultiTypeRecyclerAdapter(context: Context?, data: MutableList) : CommonRecyclerAdapter(context, data, multiTypeSupport=object :MultiTypeSupport{ 17 | override fun getLayoutId(item: String, position: Int): Int { 18 | if(position%2==0&&position%3!=0){ 19 | return R.layout.item_recyclerview_home 20 | }else if(position%3==0){ 21 | return R.layout.recycler_view_image 22 | } 23 | return R.layout.item_flow_layout 24 | } 25 | }){ 26 | override fun convert(holder: ViewHolder, item: String) { 27 | val position = holder.adapterPosition 28 | when { 29 | position%2==0&&position%3!=0 -> { 30 | holder.setText(R.id.tv_title,item) 31 | } 32 | position%3==0 -> { 33 | ImageLoader.instance.displayImage(item,holder.getView(R.id.iv_image)) 34 | } 35 | else -> { 36 | holder.setText(R.id.tv_label,item) 37 | } 38 | } 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/bean/CategoryRightSubBean.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.bean 2 | 3 | /** 4 | * author :Peakmain 5 | * createTime:2023/04/17 6 | * mail:2726449200@qq.com 7 | * describe: 8 | */ 9 | data class CategoryRightSubBean(val subTitle:String, val activityList:List) 10 | 11 | data class CategoryRightBean(var title:String="", var categoryRightBeans: ArrayList) 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/bean/Person.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.bean 2 | 3 | class Person { 4 | var age = 0 5 | lateinit var name: String 6 | 7 | constructor() 8 | constructor(name: String, age: Int) { 9 | this.age = age 10 | this.name = name 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/fragment/ItemFragment.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.fragment 2 | 3 | import android.os.Bundle 4 | import android.view.LayoutInflater 5 | import android.view.View 6 | import android.view.ViewGroup 7 | import android.widget.TextView 8 | import androidx.fragment.app.Fragment 9 | import com.peakmain.basicui.R 10 | 11 | /** 12 | * author :Peakmain 13 | * createTime:2020/3/11 14 | * mail:2726449200@qq.com 15 | * describe: 16 | */ 17 | class ItemFragment : Fragment() { 18 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { 19 | val view = inflater.inflate(R.layout.fragment_item, container, false) 20 | val tv = view.findViewById(R.id.text_view1) 21 | val bundle = arguments 22 | tv.text = bundle!!.getString("title") 23 | return view 24 | } 25 | 26 | companion object { 27 | fun newInstance(item: String?): ItemFragment { 28 | val itemFragment = ItemFragment() 29 | val bundle = Bundle() 30 | bundle.putString("title", item) 31 | itemFragment.arguments = bundle 32 | return itemFragment 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/fragment/MineFragment.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.fragment 2 | 3 | import android.view.View 4 | import com.peakmain.basicui.R 5 | import com.peakmain.basicui.base.BaseFragmnet 6 | import com.peakmain.ui.navigationbar.DefaultNavigationBar 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/3/9 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class MineFragment : BaseFragmnet() { 15 | override val layoutId: Int 16 | get() = R.layout.fragment_mine 17 | 18 | override fun initView(view: View?) { 19 | DefaultNavigationBar.Builder(context, view?.findViewById(R.id.view_root)) 20 | .hideLeftText() 21 | .hideRightView() 22 | .setTitleText("我的") 23 | .setToolbarBackgroundColor(R.color.ui_color_01a8e3) 24 | .create() 25 | } 26 | 27 | override fun initData() {} 28 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/launcher/AMapTask.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.launcher 2 | 3 | import com.peakmain.ui.utils.launcher.task.Task 4 | 5 | /** 6 | * author :Peakmain 7 | * createTime:2020/12/10 8 | * mail:2726449200@qq.com 9 | * describe: 10 | */ 11 | class AMapTask : Task() { 12 | /* private var mLocationClient: AMapLocationClient? = null 13 | private var mLocationOption: AMapLocationClientOption? = null 14 | private val mLocationListener = AMapLocationListener { 15 | // 一些处理 16 | }*/ 17 | 18 | override fun run() { 19 | /* mLocationClient = AMapLocationClient(mContext) 20 | mLocationClient!!.setLocationListener(mLocationListener) 21 | mLocationOption = AMapLocationClientOption() 22 | mLocationOption!!.locationMode = AMapLocationClientOption.AMapLocationMode.Battery_Saving 23 | mLocationOption!!.isOnceLocation = true 24 | mLocationClient!!.setLocationOption(mLocationOption) 25 | mLocationClient!!.startLocation()*/ 26 | } 27 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/launcher/DeviceIdTask.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.launcher 2 | 3 | import android.Manifest 4 | import android.content.Context 5 | import android.content.pm.PackageManager 6 | import android.telephony.TelephonyManager 7 | import androidx.core.app.ActivityCompat 8 | import com.peakmain.basicui.App 9 | import com.peakmain.ui.utils.launcher.task.Task 10 | 11 | /** 12 | * author :Peakmain 13 | * createTime:2020/12/10 14 | * mail:2726449200@qq.com 15 | * describe: 16 | */ 17 | class DeviceIdTask : Task() { 18 | private var mDeviceId: String? = null 19 | override fun run() { 20 | // 真正自己的代码 21 | val tManager = mContext?.getSystemService( 22 | Context.TELEPHONY_SERVICE) as TelephonyManager 23 | if (ActivityCompat.checkSelfPermission(mContext!!, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { 24 | return 25 | } 26 | mDeviceId = tManager.deviceId 27 | val app = mContext as App? 28 | app?.deviceId = mDeviceId 29 | } 30 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/launcher/JPushTask.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.launcher 2 | 3 | import com.peakmain.basicui.App 4 | import com.peakmain.ui.utils.LogUtils 5 | import com.peakmain.ui.utils.launcher.task.Task 6 | import java.util.* 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/12/10 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class JPushTask : Task() { 15 | override fun dependsOn(): List?> { 16 | val tasks: MutableList?> = ArrayList() 17 | tasks.add(DeviceIdTask::class.java) 18 | return tasks 19 | } 20 | 21 | override fun run() { 22 | //模拟极光推送 23 | LogUtils.e("极光推送开始") 24 | val app = mContext as App? 25 | LogUtils.e("极光推送获取id:", app?.deviceId) 26 | } 27 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/launcher/UtilsTask.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.launcher 2 | 3 | import android.R 4 | import android.view.Gravity 5 | import androidx.core.content.ContextCompat 6 | import com.peakmain.ui.utils.ToastUtils 7 | import com.peakmain.ui.utils.launcher.task.Task 8 | 9 | /** 10 | * author :Peakmain 11 | * createTime:2020/12/10 12 | * mail:2726449200@qq.com 13 | * describe: 14 | */ 15 | class UtilsTask : Task() { 16 | override fun run() { 17 | ToastUtils.setBgColor(ContextCompat.getColor(mContext!!, R.color.transparent)) 18 | ToastUtils.setGravity(Gravity.CENTER, 0, 0) 19 | ToastUtils.setMsgColor(ContextCompat.getColor(mContext!!, com.peakmain.basicui.R.color.ui_color_01a8e3)) 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/launcher/WeexTask.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.launcher 2 | 3 | import com.peakmain.ui.utils.launcher.task.MainTask 4 | 5 | /** 6 | * author :Peakmain 7 | * createTime:2020/12/10 8 | * mail:2726449200@qq.com 9 | * describe: 10 | */ 11 | class WeexTask : MainTask() { 12 | override fun run() { 13 | /* InitConfig config = new InitConfig.Builder().build(); 14 | WXSDKEngine.initialize((Application) mContext, config);*/ 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/view/RadioCancelButton.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.view 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.appcompat.R 6 | import androidx.appcompat.widget.AppCompatRadioButton 7 | 8 | /** 9 | * author :Peakmain 10 | * createTime:2020/3/10 11 | * mail:2726449200@qq.com 12 | * describe: 13 | */ 14 | class RadioCancelButton @JvmOverloads constructor(context: Context?, attrs: AttributeSet?=null, defStyleAttr: Int= R.attr.radioButtonStyle) : 15 | AppCompatRadioButton(context,attrs, defStyleAttr){ 16 | override fun toggle() { 17 | isChecked = !isChecked 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/com/peakmain/basicui/view/TableLayout.kt: -------------------------------------------------------------------------------- 1 | package com.peakmain.basicui.view 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import com.peakmain.ui.tablayout.BaseTabLayout 6 | 7 | /** 8 | * author :Peakmain 9 | * createTime:2020/3/11 10 | * mail:2726449200@qq.com 11 | * describe: 12 | */ 13 | class TableLayout @JvmOverloads constructor( 14 | context: Context, 15 | attrs: AttributeSet? = null, 16 | defStyleAttr: Int = 0 17 | ) : BaseTabLayout(context, attrs, defStyleAttr) { 18 | override fun setTableTitle(bean: List?, position: Int): String { 19 | return bean!![position] 20 | } 21 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/bg_lable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-hdpi/bg_lable.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/bg_lable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-xhdpi/bg_lable.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_view_pull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-xhdpi/list_view_pull.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_view_refreshing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-xhdpi/list_view_refreshing.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_view_refreshing_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-xhdpi/list_view_refreshing_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_view_refreshing_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-xhdpi/list_view_refreshing_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/list_view_release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable-xhdpi/list_view_release.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/atour.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_lable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable/bg_lable.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/check_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bottom_navigation_home.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bottom_navigation_me.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bottom_navigation_utils.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_password_hide.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_password_show.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_triangle_down.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_triangle_up.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/load_more_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Peakmain/BasicUI/2858039196fc788f66c3a79498bdcaffccf1fe64/app/src/main/res/drawable/logo.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/select_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_tab_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity/layout/activity_custom_id.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity/layout/activity_custom_keyboard_point.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity/layout/activity_image_compress.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 |