├── .gitignore
├── .idea
├── .gitignore
├── .name
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── compiler.xml
├── dictionaries
│ └── Sky_D.xml
├── gradle.xml
├── jarRepositories.xml
├── misc.xml
├── runConfigurations.xml
└── vcs.xml
├── LICENSE
├── README.md
├── andresguard.gradle
├── app
├── .gitignore
├── build.gradle
├── libs
│ └── cdi-api.jar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── skyd
│ │ └── imomoe
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── fonts
│ │ │ └── BPreplay.otf
│ ├── java
│ │ └── com
│ │ │ └── skyd
│ │ │ └── imomoe
│ │ │ ├── App.kt
│ │ │ ├── bean
│ │ │ ├── AnimeDetailBean.kt
│ │ │ ├── AnimeShowBean.kt
│ │ │ ├── BaseBean.kt
│ │ │ ├── ClassifyBean.kt
│ │ │ ├── FavoriteAnimeBean.kt
│ │ │ ├── GetDataEnum.kt
│ │ │ ├── HistoryBean.kt
│ │ │ ├── LicenseBean.kt
│ │ │ ├── MoreBean.kt
│ │ │ ├── PageNumberBean.kt
│ │ │ ├── PlayBean.kt
│ │ │ ├── SearchHistoryBean.kt
│ │ │ ├── SendDanmuBean.kt
│ │ │ ├── SendDanmuResultBean.kt
│ │ │ ├── SkinBean.kt
│ │ │ ├── TabBean.kt
│ │ │ └── UpdateBean.kt
│ │ │ ├── config
│ │ │ ├── Api.kt
│ │ │ ├── Const.kt
│ │ │ └── UnknownActionUrl.kt
│ │ │ ├── database
│ │ │ ├── AppDatabase.kt
│ │ │ ├── converter
│ │ │ │ ├── AnimeDownloadStatusConverter.kt
│ │ │ │ └── ImageBeanConverter.kt
│ │ │ ├── dao
│ │ │ │ ├── AnimeDownloadDao.kt
│ │ │ │ ├── FavoriteAnimeDao.kt
│ │ │ │ ├── HistoryDao.kt
│ │ │ │ └── SearchHistoryDao.kt
│ │ │ └── entity
│ │ │ │ └── AnimeDownloadEntity.kt
│ │ │ ├── model
│ │ │ ├── AppUpdateModel.kt
│ │ │ ├── DataSourceManager.kt
│ │ │ ├── impls
│ │ │ │ ├── AnimeDetailModel.kt
│ │ │ │ ├── AnimeShowModel.kt
│ │ │ │ ├── ClassifyModel.kt
│ │ │ │ ├── Const.kt
│ │ │ │ ├── EverydayAnimeModel.kt
│ │ │ │ ├── EverydayAnimeWidgetModel.kt
│ │ │ │ ├── HomeModel.kt
│ │ │ │ ├── MonthAnimeModel.kt
│ │ │ │ ├── PlayModel.kt
│ │ │ │ ├── RankListModel.kt
│ │ │ │ ├── RankModel.kt
│ │ │ │ ├── RouteProcessor.kt
│ │ │ │ ├── SearchModel.kt
│ │ │ │ └── Util.kt
│ │ │ ├── interfaces
│ │ │ │ ├── IAnimeDetailModel.kt
│ │ │ │ ├── IAnimeShowModel.kt
│ │ │ │ ├── IBase.kt
│ │ │ │ ├── IClassifyModel.kt
│ │ │ │ ├── IConst.kt
│ │ │ │ ├── IEverydayAnimeModel.kt
│ │ │ │ ├── IEverydayAnimeWidgetModel.kt
│ │ │ │ ├── IHomeModel.kt
│ │ │ │ ├── IMonthAnimeModel.kt
│ │ │ │ ├── IPlayModel.kt
│ │ │ │ ├── IRankListModel.kt
│ │ │ │ ├── IRankModel.kt
│ │ │ │ ├── IRouteProcessor.kt
│ │ │ │ ├── ISearchModel.kt
│ │ │ │ └── IUtil.kt
│ │ │ └── util
│ │ │ │ ├── JsoupUtil.kt
│ │ │ │ └── ParseHtmlUtil.kt
│ │ │ ├── net
│ │ │ ├── RetrofitManager.kt
│ │ │ └── service
│ │ │ │ ├── DanmuService.kt
│ │ │ │ └── UpdateService.kt
│ │ │ ├── util
│ │ │ ├── CrashHandler.kt
│ │ │ ├── Debug.kt
│ │ │ ├── File.kt
│ │ │ ├── MD5.kt
│ │ │ ├── PushHelper.kt
│ │ │ ├── RvAdapter.kt
│ │ │ ├── Share.kt
│ │ │ ├── SharedPreferences.kt
│ │ │ ├── Text.kt
│ │ │ ├── Util.kt
│ │ │ ├── View.kt
│ │ │ ├── ViewHolderUtil.kt
│ │ │ ├── coil
│ │ │ │ ├── CoilUtil.kt
│ │ │ │ └── DarkBlurTransformation.kt
│ │ │ ├── comparator
│ │ │ │ └── EpisodeTitleComparator.kt
│ │ │ ├── dlna
│ │ │ │ ├── CastObject.java
│ │ │ │ ├── Utils.kt
│ │ │ │ ├── dmc
│ │ │ │ │ ├── DLNACastManager.java
│ │ │ │ │ ├── DLNACastService.java
│ │ │ │ │ ├── DeviceRegistryImpl.java
│ │ │ │ │ ├── ICast.java
│ │ │ │ │ ├── ILogger.java
│ │ │ │ │ ├── OnDeviceRegistryListener.java
│ │ │ │ │ ├── QueryRequest.java
│ │ │ │ │ ├── Utils.java
│ │ │ │ │ ├── action
│ │ │ │ │ │ ├── GetBrightness.java
│ │ │ │ │ │ └── SetBrightness.java
│ │ │ │ │ └── control
│ │ │ │ │ │ ├── BaseServiceExecutor.java
│ │ │ │ │ │ ├── ControlImpl.java
│ │ │ │ │ │ ├── ICastInterface.java
│ │ │ │ │ │ ├── IServiceAction.java
│ │ │ │ │ │ └── IServiceFactory.java
│ │ │ │ └── dms
│ │ │ │ │ ├── ContentDirectoryService.java
│ │ │ │ │ ├── ContentFactory.java
│ │ │ │ │ ├── ContentResourceServlet.java
│ │ │ │ │ ├── IMediaContentDao.java
│ │ │ │ │ ├── IResourceServer.java
│ │ │ │ │ ├── IResourceServerFactory.java
│ │ │ │ │ ├── MediaContentDao.kt
│ │ │ │ │ ├── MediaItem.java
│ │ │ │ │ ├── MediaServer.java
│ │ │ │ │ └── NanoHttpServer.java
│ │ │ ├── downloadanime
│ │ │ │ ├── AnimeDownloadHelper.kt
│ │ │ │ ├── AnimeDownloadNotificationReceiver.kt
│ │ │ │ ├── AnimeDownloadService.kt
│ │ │ │ ├── AnimeDownloadStatus.kt
│ │ │ │ └── DownloadListener.kt
│ │ │ ├── eventbus
│ │ │ │ ├── Event.kt
│ │ │ │ └── EventBusSubscriber.kt
│ │ │ ├── html
│ │ │ │ ├── SnifferVideo.kt
│ │ │ │ └── source
│ │ │ │ │ ├── DefaultUICallback.kt
│ │ │ │ │ ├── GettingCallback.kt
│ │ │ │ │ ├── GettingUICallback.kt
│ │ │ │ │ ├── Util.kt
│ │ │ │ │ └── web
│ │ │ │ │ ├── GettingUtil.kt
│ │ │ │ │ ├── GettingWebChromeClient.kt
│ │ │ │ │ ├── GettingWebView.kt
│ │ │ │ │ └── GettingWebViewClient.kt
│ │ │ ├── skin
│ │ │ │ └── SkinUtil.kt
│ │ │ └── update
│ │ │ │ ├── AppUpdateHelper.kt
│ │ │ │ └── AppUpdateStatus.kt
│ │ │ ├── view
│ │ │ ├── activity
│ │ │ │ ├── AboutActivity.kt
│ │ │ │ ├── AnimeDetailActivity.kt
│ │ │ │ ├── AnimeDownloadActivity.kt
│ │ │ │ ├── BaseActivity.kt
│ │ │ │ ├── ClassifyActivity.kt
│ │ │ │ ├── CrashActivity.kt
│ │ │ │ ├── DlnaActivity.kt
│ │ │ │ ├── DlnaControlActivity.kt
│ │ │ │ ├── FavoriteActivity.kt
│ │ │ │ ├── HistoryActivity.kt
│ │ │ │ ├── LicenseActivity.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MonthAnimeActivity.kt
│ │ │ │ ├── NoticeActivity.kt
│ │ │ │ ├── PlayActivity.kt
│ │ │ │ ├── RankActivity.kt
│ │ │ │ ├── SearchActivity.kt
│ │ │ │ ├── SettingActivity.kt
│ │ │ │ ├── SimplePlayActivity.kt
│ │ │ │ ├── SkinActivity.kt
│ │ │ │ └── WebViewActivity.kt
│ │ │ ├── adapter
│ │ │ │ ├── AnimeDetailAdapter.kt
│ │ │ │ ├── AnimeDownloadAdapter.kt
│ │ │ │ ├── AnimeShowAdapter.kt
│ │ │ │ ├── BaseRvAdapter.kt
│ │ │ │ ├── FavoriteAdapter.kt
│ │ │ │ ├── HistoryAdapter.kt
│ │ │ │ ├── LicenseAdapter.kt
│ │ │ │ ├── MoreAdapter.kt
│ │ │ │ ├── PlayAdapter.kt
│ │ │ │ ├── SearchAdapter.kt
│ │ │ │ ├── SearchHistoryAdapter.kt
│ │ │ │ ├── SerializableRecycledViewPool.kt
│ │ │ │ ├── SkinAdapter.kt
│ │ │ │ ├── SkinRvAdapter.kt
│ │ │ │ ├── UpnpAdapter.kt
│ │ │ │ ├── decoration
│ │ │ │ │ ├── AnimeCoverItemDecoration.kt
│ │ │ │ │ ├── AnimeEpisodeItemDecoration.kt
│ │ │ │ │ ├── AnimeShowItemDecoration.kt
│ │ │ │ │ └── SkinItemDecoration.kt
│ │ │ │ └── spansize
│ │ │ │ │ ├── AnimeDetailSpanSize.kt
│ │ │ │ │ ├── AnimeShowSpanSize.kt
│ │ │ │ │ ├── PlaySpanSize.kt
│ │ │ │ │ └── SkinSpanSize.kt
│ │ │ ├── component
│ │ │ │ ├── AnimeToast.kt
│ │ │ │ ├── BottomSheetRecyclerView.kt
│ │ │ │ ├── FlowLayout.kt
│ │ │ │ ├── SmartScrollingFooterBehavior.kt
│ │ │ │ ├── ViewPager2View.kt
│ │ │ │ ├── VpSwipeRefreshLayout.kt
│ │ │ │ ├── WrapLinearLayoutManager.kt
│ │ │ │ ├── ZoomView.kt
│ │ │ │ ├── bannerview
│ │ │ │ │ ├── BannerUtil.kt
│ │ │ │ │ ├── BannerView.kt
│ │ │ │ │ ├── adapter
│ │ │ │ │ │ ├── CycleBannerAdapter.kt
│ │ │ │ │ │ └── MyCycleBannerAdapter.kt
│ │ │ │ │ └── indicator
│ │ │ │ │ │ ├── DotIndicator.kt
│ │ │ │ │ │ ├── Indicator.kt
│ │ │ │ │ │ └── SimpleIndicator.kt
│ │ │ │ ├── player
│ │ │ │ │ ├── AnimeDanmakuLoader.kt
│ │ │ │ │ ├── AnimeDanmakuLoaderFactory.kt
│ │ │ │ │ ├── AnimeDanmakuParser.kt
│ │ │ │ │ ├── AnimeJSONSource.kt
│ │ │ │ │ ├── AnimeOrientationUtils.kt
│ │ │ │ │ ├── AnimeVideoPlayer.kt
│ │ │ │ │ ├── DanmakuAdapter.kt
│ │ │ │ │ ├── DanmakuVideoPlayer.kt
│ │ │ │ │ ├── DetailPlayerActivity.java
│ │ │ │ │ └── MyVideoAllCallBack.kt
│ │ │ │ ├── textview
│ │ │ │ │ ├── TypefaceTextView.kt
│ │ │ │ │ └── TypefaceUtil.kt
│ │ │ │ └── widget
│ │ │ │ │ └── everydayanime
│ │ │ │ │ ├── EverydayAnimeWidgetProvider.kt
│ │ │ │ │ └── EverydayAnimeWidgetService.kt
│ │ │ └── fragment
│ │ │ │ ├── AnimeShowFragment.kt
│ │ │ │ ├── BaseFragment.kt
│ │ │ │ ├── EverydayAnimeFragment.kt
│ │ │ │ ├── HomeFragment.kt
│ │ │ │ ├── MoreDialogFragment.kt
│ │ │ │ ├── MoreFragment.kt
│ │ │ │ ├── RankFragment.kt
│ │ │ │ └── ShareDialogFragment.kt
│ │ │ └── viewmodel
│ │ │ ├── AnimeDetailViewModel.kt
│ │ │ ├── AnimeDownloadViewModel.kt
│ │ │ ├── AnimeShowViewModel.kt
│ │ │ ├── ClassifyViewModel.kt
│ │ │ ├── EverydayAnimeViewModel.kt
│ │ │ ├── FavoriteViewModel.kt
│ │ │ ├── HistoryViewModel.kt
│ │ │ ├── HomeViewModel.kt
│ │ │ ├── MonthAnimeViewModel.kt
│ │ │ ├── PlayViewModel.kt
│ │ │ ├── RankListViewModel.kt
│ │ │ ├── RankViewModel.kt
│ │ │ ├── SearchViewModel.kt
│ │ │ ├── SettingViewModel.kt
│ │ │ └── UpnpViewModel.kt
│ └── res
│ │ ├── anim
│ │ ├── anl_push_bottom_in.xml
│ │ ├── anl_push_bottom_out.xml
│ │ ├── anl_push_left_in.xml
│ │ ├── anl_push_left_out.xml
│ │ ├── anl_push_top_in.xml
│ │ ├── anl_push_top_out.xml
│ │ ├── anl_push_up_out.xml
│ │ └── anl_stay.xml
│ │ ├── drawable-xxxhdpi
│ │ ├── ic_christmas_hat.webp
│ │ ├── ic_everyday_anime_widget.webp
│ │ └── ic_spinner_bg_1_skin.9.png
│ │ ├── drawable
│ │ ├── bg_circle_main_color_2_50_skin.xml
│ │ ├── ic_access_time_main_color_24_skin.xml
│ │ ├── ic_arrow_back_ios_white_24.xml
│ │ ├── ic_arrow_back_white_24.xml
│ │ ├── ic_arrow_circle_down_main_color_2_24_skin.xml
│ │ ├── ic_arrow_circle_down_white_24_skin.xml
│ │ ├── ic_arrow_forward_ios_main_color_12_skin.xml
│ │ ├── ic_arrow_right_main_color_2_24_skin.xml
│ │ ├── ic_bar_chart_white_24_skin.xml
│ │ ├── ic_beans_main_color_24_skin.xml
│ │ ├── ic_beans_main_color_2_24_skin.xml
│ │ ├── ic_category_main_color_2_24_skin.xml
│ │ ├── ic_clear_main_color_24_skin.xml
│ │ ├── ic_delete_main_color_2_24_skin.xml
│ │ ├── ic_delete_white_24.xml
│ │ ├── ic_format_list_bulleted_white_24_skin.xml
│ │ ├── ic_fullscreen_exit_white_24.xml
│ │ ├── ic_fullscreen_white_24.xml
│ │ ├── ic_history_white_24.xml
│ │ ├── ic_home_main_color_24_skin.xml
│ │ ├── ic_home_main_color_2_24_skin.xml
│ │ ├── ic_info_white_24.xml
│ │ ├── ic_insert_link_white_24.xml
│ │ ├── ic_keyboard_arrow_down_main_color_2_24_skin.xml
│ │ ├── ic_language_main_color_2_24_skin.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ic_link_main_color_2_34_skin.xml
│ │ ├── ic_live_tv_main_color_2_24_skin.xml
│ │ ├── ic_more_vert_white_24.xml
│ │ ├── ic_music_note_white_24.xml
│ │ ├── ic_nights_stay_main_color_2_24_skin.xml
│ │ ├── ic_pause_circle_white_24.xml
│ │ ├── ic_pause_white_24.xml
│ │ ├── ic_photo_main_color_3_24_skin.xml
│ │ ├── ic_play_circle_main_color_2_24_skin.xml
│ │ ├── ic_play_circle_white_24.xml
│ │ ├── ic_play_white_24.xml
│ │ ├── ic_power_white_24.xml
│ │ ├── ic_qq_main_color_2_34_skin.xml
│ │ ├── ic_refresh_white_24.xml
│ │ ├── ic_replay_white_24_skin.xml
│ │ ├── ic_right_white_32_skin.xml
│ │ ├── ic_sakura_17.xml
│ │ ├── ic_sd_storage_main_color_2_24_skin.xml
│ │ ├── ic_search_main_color_24_skin.xml
│ │ ├── ic_sentiment_very_dissatisfied_main_color_24_skin.xml
│ │ ├── ic_settings_white_24.xml
│ │ ├── ic_share_white_24.xml
│ │ ├── ic_skin_white_32_skin.xml
│ │ ├── ic_skip_next_white_24.xml
│ │ ├── ic_star_border_main_color_2_24_skin.xml
│ │ ├── ic_star_border_white_24.xml
│ │ ├── ic_star_main_color_2_24_skin.xml
│ │ ├── ic_star_white_24_skin.xml
│ │ ├── ic_storage_main_color_2_24_skin.xml
│ │ ├── ic_sunny_main_color_24_skin.xml
│ │ ├── ic_sunny_main_color_2_24_skin.xml
│ │ ├── ic_sunny_white_24.xml
│ │ ├── ic_swap_horiz_white_24_skin.xml
│ │ ├── ic_swap_vert_white_24_skin.xml
│ │ ├── ic_turn_off_danmu_main_color_2_64_skin.xml
│ │ ├── ic_turn_on_danmu_main_color_2_64_skin.xml
│ │ ├── ic_update_main_color_2_24_skin.xml
│ │ ├── ic_warning_main_color_3_24_skin.xml
│ │ ├── ic_wechat_main_color_2_34_skin.xml
│ │ ├── ic_weibo_main_color_2_34_skin.xml
│ │ ├── ic_widget_everyday_anime_refresh.xml
│ │ ├── layerlist_shortcuts_download_24.xml
│ │ ├── layerlist_shortcuts_everyday_24.xml
│ │ ├── layerlist_shortcuts_favorite_24.xml
│ │ ├── layerlist_video_progress_bg_skin.xml
│ │ ├── seek_bar_progress_1_skin.xml
│ │ ├── seek_bar_thumb_1_skin.xml
│ │ ├── selector_everyday_anime_button_skin.xml
│ │ ├── selector_home_button_skin.xml
│ │ ├── selector_horizontal_reverse_button_skin.xml
│ │ ├── selector_more_button_skin.xml
│ │ ├── selector_no_reverse_button_skin.xml
│ │ ├── selector_spinner_1_skin.xml
│ │ ├── selector_turn_on_off_danmu_skin.xml
│ │ ├── selector_vertical_reverse_button_skin.xml
│ │ ├── shape_circle_corner_bottom_dialog_white_12_skin.xml
│ │ ├── shape_circle_corner_edge_main_color_2_ripper_5_skin.xml
│ │ ├── shape_circle_corner_edge_main_color_ripper_50_skin.xml
│ │ ├── shape_circle_corner_edge_white_ripper_5_skin.xml
│ │ ├── shape_circle_corner_white_50_skin.xml
│ │ ├── shape_circle_corner_white_ripper_5.xml
│ │ ├── shape_fill_circle_corner_coppery_50.xml
│ │ ├── shape_fill_circle_corner_danmu_6.xml
│ │ ├── shape_fill_circle_corner_golden_50.xml
│ │ ├── shape_fill_circle_corner_main_color_2_50_skin.xml
│ │ ├── shape_fill_circle_corner_silvery_50.xml
│ │ ├── shape_gray_transparent_2_angle_90.xml
│ │ ├── shape_gray_transparent_angle_270.xml
│ │ ├── shape_gray_transparent_angle_90.xml
│ │ ├── shape_widget_everyday_anime_body.xml
│ │ └── shape_widget_everyday_anime_header.xml
│ │ ├── layout-sw600dp-land
│ │ └── activity_play.xml
│ │ ├── layout-sw600dp-port
│ │ └── activity_play.xml
│ │ ├── layout
│ │ ├── activity_about.xml
│ │ ├── activity_anime_detail.xml
│ │ ├── activity_anime_download.xml
│ │ ├── activity_classify.xml
│ │ ├── activity_dlna.xml
│ │ ├── activity_dlna_control.xml
│ │ ├── activity_favorite.xml
│ │ ├── activity_history.xml
│ │ ├── activity_license.xml
│ │ ├── activity_main.xml
│ │ ├── activity_month_anime.xml
│ │ ├── activity_notice.xml
│ │ ├── activity_play.xml
│ │ ├── activity_rank.xml
│ │ ├── activity_search.xml
│ │ ├── activity_setting.xml
│ │ ├── activity_simple_play.xml
│ │ ├── activity_skin.xml
│ │ ├── activity_web_view.xml
│ │ ├── dialog_bottom_sheet_2.xml
│ │ ├── fragment_anime_show.xml
│ │ ├── fragment_everyday_anime.xml
│ │ ├── fragment_home.xml
│ │ ├── fragment_more.xml
│ │ ├── fragment_more_dialog.xml
│ │ ├── fragment_rank.xml
│ │ ├── fragment_share_dialog.xml
│ │ ├── item_anime_cover_1.xml
│ │ ├── item_anime_cover_10.xml
│ │ ├── item_anime_cover_2.xml
│ │ ├── item_anime_cover_3.xml
│ │ ├── item_anime_cover_4.xml
│ │ ├── item_anime_cover_5.xml
│ │ ├── item_anime_cover_6.xml
│ │ ├── item_anime_cover_7.xml
│ │ ├── item_anime_cover_8.xml
│ │ ├── item_anime_cover_9.xml
│ │ ├── item_anime_describe_1.xml
│ │ ├── item_anime_episode_1.xml
│ │ ├── item_anime_episode_2.xml
│ │ ├── item_anime_episode_flow_layout_1.xml
│ │ ├── item_anime_episode_flow_layout_2.xml
│ │ ├── item_anime_info_1.xml
│ │ ├── item_anime_type_1.xml
│ │ ├── item_banner_1.xml
│ │ ├── item_dlna_device_1.xml
│ │ ├── item_grid_recycler_view_1.xml
│ │ ├── item_header_1.xml
│ │ ├── item_horizontal_recycler_view_1.xml
│ │ ├── item_license_1.xml
│ │ ├── item_license_header_1.xml
│ │ ├── item_more_1.xml
│ │ ├── item_player_list_item_1.xml
│ │ ├── item_search_history_1.xml
│ │ ├── item_search_history_header_1.xml
│ │ ├── item_skin_cover_1.xml
│ │ ├── item_spinner_item_1.xml
│ │ ├── item_text_view_1.xml
│ │ ├── layout_anime_video_player.xml
│ │ ├── layout_anime_video_player_land.xml
│ │ ├── layout_circle_progress_text_tip_1.xml
│ │ ├── layout_image_text_tip_1.xml
│ │ ├── layout_toolbar_1.xml
│ │ ├── toast_1.xml
│ │ ├── upush_bar_image_notification.xml
│ │ ├── upush_notification.xml
│ │ └── widget_everyday_anime.xml
│ │ ├── mipmap-anydpi-v26
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.webp
│ │ ├── ic_launcher_foreground.webp
│ │ └── ic_launcher_round.png
│ │ ├── raw
│ │ └── keep.xml
│ │ ├── values-night
│ │ └── colors.xml
│ │ ├── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── ids.xml
│ │ ├── strings.xml
│ │ ├── styles.xml
│ │ └── themes_skin.xml
│ │ └── xml
│ │ ├── file_paths.xml
│ │ ├── network_security_config.xml
│ │ └── widget_everyday_anime.xml
│ └── test
│ └── java
│ └── com
│ └── skyd
│ └── imomoe
│ └── ExampleUnitTest.kt
├── build.gradle
├── doc
├── about_http_security.md
├── about_secret.gradle.md
└── customdatasource
│ ├── README.md
│ ├── image
│ ├── customdatasource.jpg
│ ├── customdatasource_2.jpg
│ └── normal.jpg
│ └── sample
│ └── custom
│ ├── CustomAnimeDetailModel.kt
│ ├── CustomAnimeShowModel.kt
│ ├── CustomClassifyModel.kt
│ ├── CustomConst.kt
│ ├── CustomDataSource.jar
│ ├── CustomEverydayAnimeModel.kt
│ ├── CustomEverydayAnimeWidgetModel.kt
│ ├── CustomHomeModel.kt
│ ├── CustomMonthAnimeModel.kt
│ ├── CustomParseHtmlUtil.kt
│ ├── CustomPlayModel.kt
│ ├── CustomRankListModel.kt
│ ├── CustomRankModel.kt
│ ├── CustomRouteProcessor.kt
│ ├── CustomSearchModel.kt
│ ├── CustomUtil.kt
│ └── TestClass.kt
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── image
├── icon.psd
├── icon_round.psd
├── readme_cover.png
├── readme_cover.psd
└── spinner.psd
├── screenshot
├── anime_detail.jpg
├── classify.jpg
├── everyday_anime.jpg
├── favorite.jpg
├── history.jpg
├── main.jpg
├── new_anime.jpg
├── play.jpg
├── player.jpg
├── rank.jpg
└── search.jpg
├── settings.gradle
├── skin
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── skyd
│ │ └── skin
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── skyd
│ │ │ └── skin
│ │ │ ├── SkinManager.kt
│ │ │ └── core
│ │ │ ├── SkinAttrsSet.kt
│ │ │ ├── SkinBaseActivity.kt
│ │ │ ├── SkinBaseFragment.kt
│ │ │ ├── SkinCache.kt
│ │ │ ├── SkinPreferenceUtil.kt
│ │ │ ├── SkinResourceProcessor.kt
│ │ │ ├── attrs
│ │ │ ├── BackgroundAttr.kt
│ │ │ ├── BackgroundTintAttr.kt
│ │ │ ├── ButtonTintAttr.kt
│ │ │ ├── CardBackgroundColorAttr.kt
│ │ │ ├── ColorPrimaryAttr.kt
│ │ │ ├── ContentScrimAttr.kt
│ │ │ ├── DrawableEndAttr.kt
│ │ │ ├── DrawableStartAttr.kt
│ │ │ ├── DrawableTopCompatAttr.kt
│ │ │ ├── ImageViewTintAttr.kt
│ │ │ ├── IndeterminateTintAttr.kt
│ │ │ ├── ProgressDrawableAttr.kt
│ │ │ ├── ScrollbarThumbVerticalAttr.kt
│ │ │ ├── SkinAttr.kt
│ │ │ ├── SrcAttr.kt
│ │ │ ├── SrlPrimaryColorAttr.kt
│ │ │ ├── TabIndicatorColorAttr.kt
│ │ │ ├── TabTextColorAttr.kt
│ │ │ ├── TextColorAttr.kt
│ │ │ ├── TextColorHintAttr.kt
│ │ │ ├── ThumbAttr.kt
│ │ │ ├── ThumbTintAttr.kt
│ │ │ └── TrackTintAttr.kt
│ │ │ └── listeners
│ │ │ ├── ChangeCustomSkinListener.kt
│ │ │ └── ChangeSkinListener.kt
│ └── res
│ │ └── values
│ │ └── ids.xml
│ └── test
│ └── java
│ └── com
│ └── skyd
│ └── skin
│ └── ExampleUnitTest.kt
├── skin_blue
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── skyd
│ │ └── skin_blue
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── res
│ │ ├── drawable-xxxhdpi
│ │ ├── ic_spinner_bg_1_skin_blue.9.png
│ │ └── seek_bar_progress_1_skin_blue.xml
│ │ ├── drawable
│ │ ├── bg_circle_main_color_2_50_skin_blue.xml
│ │ ├── ic_access_time_main_color_24_skin_blue.xml
│ │ ├── ic_arrow_forward_ios_main_color_12_skin_blue.xml
│ │ ├── ic_arrow_right_main_color_2_24_skin_blue.xml
│ │ ├── ic_beans_main_color_24_skin_blue.xml
│ │ ├── ic_beans_main_color_2_24_skin_blue.xml
│ │ ├── ic_category_main_color_2_24_skin_blue.xml
│ │ ├── ic_clear_main_color_24_skin_blue.xml
│ │ ├── ic_delete_main_color_2_24_skin_blue.xml
│ │ ├── ic_diamond_main_color_2_19_skin_blue.xml
│ │ ├── ic_home_main_color_24_skin_blue.xml
│ │ ├── ic_home_main_color_2_24_skin_blue.xml
│ │ ├── ic_keyboard_arrow_down_main_color_2_24_skin_blue.xml
│ │ ├── ic_language_main_color_2_24_skin_blue.xml
│ │ ├── ic_link_main_color_2_34_skin_blue.xml
│ │ ├── ic_live_tv_main_color_2_24_skin_blue.xml
│ │ ├── ic_nights_stay_main_color_2_24_skin_blue.xml
│ │ ├── ic_photo_main_color_3_24_skin_blue.xml
│ │ ├── ic_play_circle_main_color_2_24_skin_blue.xml
│ │ ├── ic_qq_main_color_2_34_skin_blue.xml
│ │ ├── ic_replay_white_24_skin_blue.xml
│ │ ├── ic_sd_storage_main_color_2_24_skin_blue.xml
│ │ ├── ic_search_main_color_24_skin_blue.xml
│ │ ├── ic_sentiment_very_dissatisfied_main_color_24_skin_blue.xml
│ │ ├── ic_skin_white_32_skin_blue.xml
│ │ ├── ic_star_border_main_color_2_24_skin_blue.xml
│ │ ├── ic_star_main_color_2_24_skin_blue.xml
│ │ ├── ic_storage_main_color_2_24_skin_blue.xml
│ │ ├── ic_sunny_main_color_24_skin_blue.xml
│ │ ├── ic_sunny_main_color_2_24_skin_blue.xml
│ │ ├── ic_swap_horiz_white_24_skin_blue.xml
│ │ ├── ic_swap_vert_white_24_skin_blue.xml
│ │ ├── ic_turn_off_danmu_main_color_2_64_skin_blue.xml
│ │ ├── ic_turn_on_danmu_main_color_2_64_skin_blue.xml
│ │ ├── ic_update_main_color_2_24_skin_blue.xml
│ │ ├── ic_warning_main_color_3_24_skin_blue.xml
│ │ ├── ic_wechat_main_color_2_34_skin_blue.xml
│ │ ├── ic_weibo_main_color_2_34_skin_blue.xml
│ │ ├── layerlist_video_progress_bg_skin_blue.xml
│ │ ├── seek_bar_thumb_1_skin_blue.xml
│ │ ├── selector_everyday_anime_button_skin_blue.xml
│ │ ├── selector_home_button_skin_blue.xml
│ │ ├── selector_horizontal_reverse_button_skin_blue.xml
│ │ ├── selector_more_button_skin_blue.xml
│ │ ├── selector_no_reverse_button_skin_blue.xml
│ │ ├── selector_spinner_1_skin_blue.xml
│ │ ├── selector_turn_on_off_danmu_skin_blue.xml
│ │ ├── selector_vertical_reverse_button_skin_blue.xml
│ │ ├── shape_circle_corner_edge_main_color_2_ripper_5_skin_blue.xml
│ │ ├── shape_circle_corner_edge_main_color_ripper_50_skin_blue.xml
│ │ └── shape_fill_circle_corner_main_color_2_50_skin_blue.xml
│ │ └── values
│ │ ├── colors_skin_blue.xml
│ │ └── themes_skin_blue.xml
│ └── test
│ └── java
│ └── com
│ └── skyd
│ └── skin_blue
│ └── ExampleUnitTest.kt
├── skin_dark
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── cyeasybuy
│ │ └── skin_dark
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── res
│ │ ├── drawable-xxxhdpi
│ │ └── ic_spinner_bg_1_skin_dark.9.png
│ │ ├── drawable
│ │ ├── bg_circle_main_color_2_50_skin_dark.xml
│ │ ├── ic_access_time_main_color_24_skin_dark.xml
│ │ ├── ic_arrow_forward_ios_main_color_12_skin_dark.xml
│ │ ├── ic_arrow_right_main_color_2_24_skin_dark.xml
│ │ ├── ic_beans_main_color_24_skin_dark.xml
│ │ ├── ic_beans_main_color_2_24_skin_dark.xml
│ │ ├── ic_category_main_color_2_24_skin_dark.xml
│ │ ├── ic_clear_main_color_24_skin_dark.xml
│ │ ├── ic_delete_main_color_2_24_skin_dark.xml
│ │ ├── ic_home_main_color_24_skin_dark.xml
│ │ ├── ic_home_main_color_2_24_skin_dark.xml
│ │ ├── ic_keyboard_arrow_down_main_color_2_24_skin_dark.xml
│ │ ├── ic_language_main_color_2_24_skin_dark.xml
│ │ ├── ic_link_main_color_2_34_skin_dark.xml
│ │ ├── ic_live_tv_main_color_2_24_skin_dark.xml
│ │ ├── ic_nights_stay_main_color_2_24_skin_dark.xml
│ │ ├── ic_photo_main_color_3_24_skin_dark.xml
│ │ ├── ic_play_circle_main_color_2_24_skin_dark.xml
│ │ ├── ic_qq_main_color_2_34_skin_dark.xml
│ │ ├── ic_replay_white_24_skin_dark.xml
│ │ ├── ic_sd_storage_main_color_2_24_skin_dark.xml
│ │ ├── ic_search_main_color_24_skin_dark.xml
│ │ ├── ic_sentiment_very_dissatisfied_main_color_24_skin_dark.xml
│ │ ├── ic_star_border_main_color_2_24_skin_dark.xml
│ │ ├── ic_star_main_color_2_24_skin_dark.xml
│ │ ├── ic_storage_main_color_2_24_skin_dark.xml
│ │ ├── ic_sunny_main_color_24_skin_dark.xml
│ │ ├── ic_sunny_main_color_2_24_skin_dark.xml
│ │ ├── ic_swap_horiz_white_24_skin_dark.xml
│ │ ├── ic_swap_vert_white_24_skin_dark.xml
│ │ ├── ic_turn_off_danmu_main_color_2_64_skin_dark.xml
│ │ ├── ic_turn_on_danmu_main_color_2_64_skin_dark.xml
│ │ ├── ic_update_main_color_2_24_skin_dark.xml
│ │ ├── ic_warning_main_color_3_24_skin_dark.xml
│ │ ├── ic_wechat_main_color_2_34_skin_dark.xml
│ │ ├── ic_weibo_main_color_2_34_skin_dark.xml
│ │ ├── layerlist_video_progress_bg_skin_dark.xml
│ │ ├── selector_everyday_anime_button_skin_dark.xml
│ │ ├── selector_home_button_skin_dark.xml
│ │ ├── selector_horizontal_reverse_button_skin_dark.xml
│ │ ├── selector_more_button_skin_dark.xml
│ │ ├── selector_no_reverse_button_skin_dark.xml
│ │ ├── selector_spinner_1_skin_dark.xml
│ │ ├── selector_turn_on_off_danmu_skin_dark.xml
│ │ ├── selector_vertical_reverse_button_skin_dark.xml
│ │ ├── shape_circle_corner_bottom_dialog_white_12_skin_dark.xml
│ │ ├── shape_circle_corner_edge_main_color_2_ripper_5_skin_dark.xml
│ │ ├── shape_circle_corner_edge_main_color_ripper_50_skin_dark.xml
│ │ ├── shape_circle_corner_edge_white_ripper_5_skin_dark.xml
│ │ ├── shape_circle_corner_white_50_skin_dark.xml
│ │ └── shape_fill_circle_corner_main_color_2_50_skin_dark.xml
│ │ └── values
│ │ ├── colors_skin_dark.xml
│ │ └── themes_skin_dark.xml
│ └── test
│ └── java
│ └── com
│ └── cyeasybuy
│ └── skin_dark
│ └── ExampleUnitTest.kt
├── skin_lemon
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── cyeasybuy
│ │ └── skin_lemon
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── res
│ │ ├── drawable-xxxhdpi
│ │ ├── ic_spinner_bg_1_skin_lemon.9.png
│ │ └── seek_bar_progress_1_skin_lemon.xml
│ │ ├── drawable
│ │ ├── bg_circle_main_color_2_50_skin_lemon.xml
│ │ ├── ic_access_time_main_color_24_skin_lemon.xml
│ │ ├── ic_arrow_forward_ios_main_color_12_skin_lemon.xml
│ │ ├── ic_arrow_right_main_color_2_24_skin_lemon.xml
│ │ ├── ic_beans_main_color_24_skin_lemon.xml
│ │ ├── ic_beans_main_color_2_24_skin_lemon.xml
│ │ ├── ic_category_main_color_2_24_skin_lemon.xml
│ │ ├── ic_clear_main_color_24_skin_lemon.xml
│ │ ├── ic_delete_main_color_2_24_skin_lemon.xml
│ │ ├── ic_diamond_main_color_2_19_skin_lemon.xml
│ │ ├── ic_home_main_color_24_skin_lemon.xml
│ │ ├── ic_home_main_color_2_24_skin_lemon.xml
│ │ ├── ic_keyboard_arrow_down_main_color_2_24_skin_lemon.xml
│ │ ├── ic_language_main_color_2_24_skin_lemon.xml
│ │ ├── ic_lemon_20.xml
│ │ ├── ic_link_main_color_2_34_skin_lemon.xml
│ │ ├── ic_live_tv_main_color_2_24_skin_lemon.xml
│ │ ├── ic_nights_stay_main_color_2_24_skin_lemon.xml
│ │ ├── ic_photo_main_color_3_24_skin_lemon.xml
│ │ ├── ic_play_circle_main_color_2_24_skin_lemon.xml
│ │ ├── ic_qq_main_color_2_34_skin_lemon.xml
│ │ ├── ic_replay_white_24_skin_lemon.xml
│ │ ├── ic_sd_storage_main_color_2_24_skin_lemon.xml
│ │ ├── ic_search_main_color_24_skin_lemon.xml
│ │ ├── ic_sentiment_very_dissatisfied_main_color_24_skin_lemon.xml
│ │ ├── ic_skin_white_32_skin_lemon.xml
│ │ ├── ic_star_border_main_color_2_24_skin_lemon.xml
│ │ ├── ic_star_main_color_2_24_skin_lemon.xml
│ │ ├── ic_storage_main_color_2_24_skin_lemon.xml
│ │ ├── ic_sunny_main_color_24_skin_lemon.xml
│ │ ├── ic_sunny_main_color_2_24_skin_lemon.xml
│ │ ├── ic_swap_horiz_white_24_skin_lemon.xml
│ │ ├── ic_swap_vert_white_24_skin_lemon.xml
│ │ ├── ic_turn_off_danmu_main_color_2_64_skin_lemon.xml
│ │ ├── ic_turn_on_danmu_main_color_2_64_skin_lemon.xml
│ │ ├── ic_update_main_color_2_24_skin_lemon.xml
│ │ ├── ic_warning_main_color_3_24_skin_lemon.xml
│ │ ├── ic_wechat_main_color_2_34_skin_lemon.xml
│ │ ├── ic_weibo_main_color_2_34_skin_lemon.xml
│ │ ├── layerlist_video_progress_bg_skin_lemon.xml
│ │ ├── seek_bar_thumb_1_skin_lemon.xml
│ │ ├── selector_everyday_anime_button_skin_lemon.xml
│ │ ├── selector_home_button_skin_lemon.xml
│ │ ├── selector_horizontal_reverse_button_skin_lemon.xml
│ │ ├── selector_more_button_skin_lemon.xml
│ │ ├── selector_no_reverse_button_skin_lemon.xml
│ │ ├── selector_spinner_1_skin_lemon.xml
│ │ ├── selector_turn_on_off_danmu_skin_lemon.xml
│ │ ├── selector_vertical_reverse_button_skin_lemon.xml
│ │ ├── shape_circle_corner_edge_main_color_2_ripper_5_skin_lemon.xml
│ │ ├── shape_circle_corner_edge_main_color_ripper_50_skin_lemon.xml
│ │ └── shape_fill_circle_corner_main_color_2_50_skin_lemon.xml
│ │ └── values
│ │ ├── colors_skin_lemon.xml
│ │ └── themes_skin_lemon.xml
│ └── test
│ └── java
│ └── com
│ └── cyeasybuy
│ └── skin_lemon
│ └── ExampleUnitTest.kt
├── skin_sweat_soybean
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── cyeasybuy
│ │ └── skin_sweat_soybean
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── res
│ │ ├── drawable-hdpi
│ │ ├── ic_arrow_circle_down_white_24_skin_sweat_soybean.xml
│ │ ├── ic_bar_chart_white_24_skin_sweat_soybean.xml
│ │ ├── ic_delete_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_face_savouring_delicious_food_160px.webp
│ │ ├── ic_fearful_face_160px.webp
│ │ ├── ic_format_list_bulleted_white_24_skin_sweat_soybean.xml
│ │ ├── ic_open_mout_tightly_closed_eyes_160px.webp
│ │ ├── ic_open_mouth_cold_sweat_160px.webp
│ │ ├── ic_play_circle_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_rolling_on_the_floor_laughing_160px.webp
│ │ ├── ic_smiling_face_with_heart_shaped_eyes_160px.webp
│ │ ├── ic_soybean_160px.webp
│ │ ├── ic_star_white_24_skin_sweat_soybean.xml
│ │ ├── ic_sweat_soybean_160px.webp
│ │ └── ic_tears_of_joy_160px.webp
│ │ ├── drawable-xxxhdpi
│ │ ├── ic_spinner_bg_1_skin_sweat_soybean.9.png
│ │ └── seek_bar_progress_1_skin_sweat_soybean.xml
│ │ ├── drawable
│ │ ├── bg_circle_main_color_2_50_skin_sweat_soybean.xml
│ │ ├── ic_access_time_main_color_24_skin_sweat_soybean.xml
│ │ ├── ic_arrow_forward_ios_main_color_12_skin_sweat_soybean.xml
│ │ ├── ic_arrow_right_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_category_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_clear_main_color_24_skin_sweat_soybean.xml
│ │ ├── ic_keyboard_arrow_down_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_language_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_link_main_color_2_34_skin_sweat_soybean.xml
│ │ ├── ic_live_tv_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_nights_stay_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_photo_main_color_3_24_skin_sweat_soybean.xml
│ │ ├── ic_play_circle_main_color_2_24_skin_lemon.xml
│ │ ├── ic_qq_main_color_2_34_skin_sweat_soybean.xml
│ │ ├── ic_replay_white_24_skin_sweat_soybean.xml
│ │ ├── ic_sd_storage_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_search_main_color_24_skin_sweat_soybean.xml
│ │ ├── ic_sentiment_very_dissatisfied_main_color_24_skin_sweat_soybean.xml
│ │ ├── ic_skin_white_32_skin_sweat_soybean.xml
│ │ ├── ic_star_border_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_star_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_storage_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_swap_horiz_white_24_skin_sweat_soybean.xml
│ │ ├── ic_swap_vert_white_24_skin_sweat_soybean.xml
│ │ ├── ic_turn_off_danmu_main_color_2_64_skin_sweat_soybean.xml
│ │ ├── ic_turn_on_danmu_main_color_2_64_skin_sweat_soybean.xml
│ │ ├── ic_update_main_color_2_24_skin_sweat_soybean.xml
│ │ ├── ic_warning_main_color_3_24_skin_sweat_soybean.xml
│ │ ├── ic_wechat_main_color_2_34_skin_sweat_soybean.xml
│ │ ├── ic_weibo_main_color_2_34_skin_sweat_soybean.xml
│ │ ├── layerlist_sweat_soybean.xml
│ │ ├── layerlist_video_progress_bg_skin_sweat_soybean.xml
│ │ ├── seek_bar_thumb_1_skin_sweat_soybean.xml
│ │ ├── selector_everyday_anime_button_skin_sweat_soybean.xml
│ │ ├── selector_home_button_skin_sweat_soybean.xml
│ │ ├── selector_horizontal_reverse_button_skin_sweat_soybean.xml
│ │ ├── selector_more_button_skin_sweat_soybean.xml
│ │ ├── selector_no_reverse_button_skin_sweat_soybean.xml
│ │ ├── selector_spinner_1_skin_sweat_soybean.xml
│ │ ├── selector_turn_on_off_danmu_skin_sweat_soybean.xml
│ │ ├── selector_vertical_reverse_button_skin_sweat_soybean.xml
│ │ ├── shape_circle_corner_edge_main_color_2_ripper_5_skin_sweat_soybean.xml
│ │ ├── shape_circle_corner_edge_main_color_ripper_50_skin_sweat_soybean.xml
│ │ └── shape_fill_circle_corner_main_color_2_50_skin_sweat_soybean.xml
│ │ └── values
│ │ ├── colors_skin_sweat_soybean.xml
│ │ └── themes_skin_sweat_soybean.xml
│ └── test
│ └── java
│ └── com
│ └── cyeasybuy
│ └── skin_sweat_soybean
│ └── ExampleUnitTest.kt
└── version.gradle
/.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 | local.properties
16 | /secret.gradle
17 | /.idea/dbnavigator.xml
18 | /.idea/encodings.xml
19 | /.idea/statistic.xml
20 | /app/schemas
21 | /app/release
22 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | 樱花动漫
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/dictionaries/Sky_D.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | anime
5 | bugly
6 | ctiao
7 | danmaku
8 | deps
9 | dlna
10 | filedownloader
11 | gitee
12 | iframe
13 | imomoe
14 | jsoup
15 | mobileqq
16 | sakura
17 | shuyu
18 | sina
19 | skyd
20 | tencent
21 | umeng
22 | umsdk
23 | upnp
24 | wechat
25 | weibo
26 | yhdm
27 |
28 |
29 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /src/main/res/raw/notice.txt
3 |
--------------------------------------------------------------------------------
/app/libs/cdi-api.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/libs/cdi-api.jar
--------------------------------------------------------------------------------
/app/src/main/assets/fonts/BPreplay.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/assets/fonts/BPreplay.otf
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/BaseBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | import java.io.Serializable
4 |
5 | interface BaseBean : Serializable {
6 | var type: String
7 | var actionUrl: String
8 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/ClassifyBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | class ClassifyBean(
4 | override var type: String,
5 | override var actionUrl: String,
6 | var name: String,
7 | var classifyDataList: ArrayList
8 | ) : BaseBean {
9 | override fun toString(): String {
10 | return name.replace(":", "").replace(":", "")
11 | }
12 | }
13 |
14 | //每个分类子项,如字母的A,地区的大陆
15 | class ClassifyDataBean(
16 | override var type: String,
17 | override var actionUrl: String,
18 | var url: String,
19 | var title: String
20 | ) : BaseBean //也可以继承TabBean
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/GetDataEnum.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | enum class GetDataEnum {
4 | FAILED, REFRESH, LOAD_MORE
5 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/LicenseBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | class LicenseBean(
4 | override var type: String,
5 | override var actionUrl: String,
6 | var url: String,
7 | var title: String,
8 | var license: String
9 | ) : BaseBean
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/MoreBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | import androidx.annotation.DrawableRes
4 |
5 | class MoreBean(
6 | override var type: String,
7 | override var actionUrl: String,
8 | var title: String,
9 | @DrawableRes
10 | var image: Int
11 | ) : BaseBean
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/PageNumberBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | class PageNumberBean(
4 | override var type: String,
5 | override var actionUrl: String,
6 | var url: String,
7 | var title: String
8 | ) : BaseBean
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/PlayBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | class PlayBean(
4 | override var type: String,
5 | override var actionUrl: String,
6 | var title: AnimeTitleBean,
7 | var episode: AnimeEpisodeDataBean,
8 | var data: List
9 | ) : BaseBean
10 |
11 | //番剧详情下方信息rv数据
12 | class AnimeTitleBean(
13 | override var type: String,
14 | override var actionUrl: String,
15 | var title: String
16 | ) : BaseBean
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/SendDanmuBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | import com.google.gson.annotations.SerializedName
4 | import java.io.Serializable
5 |
6 | class SendDanmuBean(
7 | @SerializedName("author")
8 | var author: String,
9 | @SerializedName("color")
10 | var color: String,
11 | @SerializedName("player")
12 | var player: String,
13 | @SerializedName("referer")
14 | var referer: String,
15 | @SerializedName("size")
16 | var size: String,
17 | @SerializedName("text")
18 | var text: String,
19 | @SerializedName("time")
20 | var time: Double,
21 | @SerializedName("type")
22 | var type: String
23 | ) : Serializable
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/SendDanmuResultBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | class SendDanmuResultBean(
6 | override var type: String,
7 | override var actionUrl: String,
8 | @SerializedName("code")
9 | var code: Long,
10 | @SerializedName("msg")
11 | var message: String
12 | ) : BaseBean
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/SkinBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | class SkinBean(
4 | override var type: String,
5 | override var actionUrl: String,
6 | var cover: Any, // Int颜色,或String图片链接
7 | var title: String,
8 | var using: Boolean, // 正在使用
9 | var skinPath: String,
10 | var skinSuffix: String
11 | ) : BaseBean
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/bean/TabBean.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.bean
2 |
3 | class TabBean(
4 | override var type: String,
5 | override var actionUrl: String,
6 | var url: String,
7 | var title: String
8 | ) : BaseBean
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/config/UnknownActionUrl.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.config
2 |
3 | object UnknownActionUrl {
4 | val actionMap: HashMap = HashMap()
5 |
6 | interface Action {
7 | fun action()
8 | }
9 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/database/converter/AnimeDownloadStatusConverter.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.database.converter
2 |
3 | import androidx.room.TypeConverter
4 | import com.skyd.imomoe.util.downloadanime.AnimeDownloadStatus
5 |
6 | class AnimeDownloadStatusConverter {
7 |
8 | @TypeConverter
9 | fun intToEnum(status: Int?): AnimeDownloadStatus? = AnimeDownloadStatus.values()[status ?: 0]
10 |
11 | @TypeConverter
12 | fun enumToInt(animeDownloadStatus: AnimeDownloadStatus?): Int? = animeDownloadStatus?.ordinal
13 |
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/database/converter/ImageBeanConverter.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.database.converter
2 |
3 | import androidx.room.TypeConverter
4 | import com.google.gson.Gson
5 | import com.skyd.imomoe.bean.ImageBean
6 |
7 |
8 | class ImageBeanConverter {
9 |
10 | @TypeConverter
11 | fun string2ImageBean(s: String?): ImageBean? = Gson().fromJson(s, ImageBean::class.java)
12 |
13 | @TypeConverter
14 | fun imageBean2String(imageBean: ImageBean?): String? = Gson().toJson(imageBean)
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/database/entity/AnimeDownloadEntity.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.database.entity
2 |
3 | import androidx.room.ColumnInfo
4 | import androidx.room.Entity
5 | import androidx.room.PrimaryKey
6 | import java.io.Serializable
7 |
8 | @Entity(tableName = "animeDownloadList")
9 | class AnimeDownloadEntity(
10 | @PrimaryKey
11 | @ColumnInfo(name = "md5")
12 | var md5: String, //md5
13 | @ColumnInfo(name = "title")
14 | var title: String,
15 | @ColumnInfo(name = "fileName")
16 | var fileName: String?
17 | ) : Serializable {
18 | override fun equals(other: Any?): Boolean {
19 | return this.md5 == (other as AnimeDownloadEntity).md5
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/impls/Util.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.impls
2 |
3 | import com.skyd.imomoe.model.DataSourceManager
4 | import com.skyd.imomoe.model.interfaces.IUtil
5 | import com.skyd.imomoe.util.Util
6 |
7 | class Util : IUtil {
8 | override fun getDetailLinkByEpisodeLink(episodeUrl: String): String {
9 | val const = DataSourceManager.getConst() ?: Const()
10 | return const.actionUrl.ANIME_DETAIL() + episodeUrl
11 | .replaceFirst(const.actionUrl.ANIME_PLAY(), "")
12 | .replaceFirst(Regex("-.*\\.html"), "") + Util.getWebsiteLinkSuffix()
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IAnimeDetailModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.IAnimeDetailBean
4 | import com.skyd.imomoe.bean.ImageBean
5 | import java.util.*
6 |
7 | /**
8 | * 获取番剧详情数据接口
9 | */
10 | interface IAnimeDetailModel : IBase {
11 | /**
12 | * 获取番剧详情页数据
13 | *
14 | * @param partUrl 页面部分url,不为null
15 | * @return Triple,不可为null
16 | * ImageBean:番剧封面图片类,不可为null;
17 | * String:番剧名,不可为null;
18 | * ArrayList:详情页数据List,不可为null
19 | */
20 | suspend fun getAnimeDetailData(partUrl: String): Triple>
21 |
22 | companion object {
23 | const val implName = "AnimeDetailModel"
24 | }
25 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IAnimeShowModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.IAnimeShowBean
4 | import com.skyd.imomoe.bean.PageNumberBean
5 |
6 | /**
7 | * 获取首页每个Tab下方内容的数据接口
8 | */
9 | interface IAnimeShowModel : IBase {
10 | /**
11 | * 获取首页某一个Tab下的内容
12 | *
13 | * @param partUrl 页面部分url,不为null
14 | * @return Pair,不可为null
15 | * ArrayList:数据List,不可为null;
16 | * PageNumberBean:下一页数据地址Bean,可为null,为空则没有下一页
17 | */
18 | suspend fun getAnimeShowData(partUrl: String): Pair, PageNumberBean?>
19 |
20 | companion object {
21 | const val implName = "AnimeShowModel"
22 | }
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IBase.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | /**
4 | * 基接口
5 | */
6 | interface IBase {
7 | companion object {
8 | /**
9 | * 标记实现类类名,实现类请勿更改
10 | */
11 | const val implName = "Base"
12 | }
13 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IEverydayAnimeWidgetModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.AnimeCoverBean
4 |
5 | /**
6 | * 获取每日更新番剧桌面小组件的数据接口
7 | */
8 | interface IEverydayAnimeWidgetModel : IBase {
9 | /**
10 | * 获取桌面小组件的每日番剧数据
11 | *
12 | * @return ArrayList,不可为null。每天更新番剧的ArrayList,其中共有七条
13 | */
14 | fun getEverydayAnimeData(): ArrayList>
15 |
16 | companion object {
17 | const val implName = "EverydayAnimeWidgetModel"
18 | }
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IHomeModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.TabBean
4 |
5 | /**
6 | * 获取首页数据的接口
7 | */
8 | interface IHomeModel : IBase {
9 | /**
10 | * 获取首页上方Tab数据
11 | *
12 | * @return ArrayList,不可为null。所有Tab的ArrayList
13 | */
14 | suspend fun getAllTabData(): ArrayList
15 |
16 | companion object {
17 | const val implName = "HomeModel"
18 | }
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IMonthAnimeModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.AnimeCoverBean
4 | import com.skyd.imomoe.bean.PageNumberBean
5 | import java.util.*
6 |
7 | /**
8 | * 获取季度番剧数据的接口
9 | */
10 | interface IMonthAnimeModel : IBase {
11 | /**
12 | * @param partUrl 页面部分url,不为null
13 | * @return Pair,不可为null
14 | * ArrayList:季度番剧数据ArrayList,不为null;
15 | * PageNumberBean:下一页数据地址,可为null,为空则没有下一页
16 | */
17 | suspend fun getMonthAnimeData(partUrl: String): Pair, PageNumberBean?>
18 |
19 | companion object {
20 | const val implName = "MonthAnimeModel"
21 | }
22 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IRankListModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.AnimeCoverBean
4 | import com.skyd.imomoe.bean.PageNumberBean
5 |
6 | /**
7 | * 获取排行榜界面Tab数据的接口
8 | */
9 | interface IRankListModel : IBase {
10 | /**
11 | * 获取排行榜列表数据
12 | *
13 | * @param partUrl 页面部分url,不为null
14 | * @return Pair,不可为null
15 | * List:排行榜列表数据List,不为null
16 | * PageNumberBean:下一页数据地址Bean,可为null,为空则没有下一页
17 | */
18 | suspend fun getRankListData(partUrl: String): Pair, PageNumberBean?>
19 |
20 | companion object {
21 | const val implName = "RankListModel"
22 | }
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IRankModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.TabBean
4 |
5 | /**
6 | * 获取排行榜界面每个Tab详细数据的接口
7 | */
8 | interface IRankModel : IBase {
9 | /**
10 | * 获取排行榜Tab数据
11 | *
12 | * @return ArrayList,不可为null。排行榜TabArrayList
13 | */
14 | suspend fun getRankTabData(): ArrayList
15 |
16 | companion object {
17 | const val implName = "RankModel"
18 | }
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/ISearchModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | import com.skyd.imomoe.bean.AnimeCoverBean
4 | import com.skyd.imomoe.bean.PageNumberBean
5 |
6 | /**
7 | * 获取搜索界面数据的接口
8 | */
9 | interface ISearchModel : IBase {
10 | /**
11 | * 获取搜索结果数据
12 | *
13 | * @param keyWord 搜索关键词,不为null
14 | * @param partUrl 搜索页面部分url,不为null
15 | * @return Pair,不可为null
16 | * ArrayList:搜索结果ArrayList,不为null
17 | * PageNumberBean:下一页数据地址Bean,可为null
18 | */
19 | suspend fun getSearchData(keyWord: String, partUrl: String): Pair, PageNumberBean?>
20 |
21 | companion object {
22 | const val implName = "SearchModel"
23 | }
24 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/interfaces/IUtil.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.interfaces
2 |
3 | /**
4 | * 工具类
5 | */
6 | interface IUtil : IBase {
7 | /**
8 | * 通过播放页面的网址获取详情页面的网址
9 | *
10 | * @param episodeUrl 播放页面的网址,不为null
11 | * @return 详情页面的网址,不可为null
12 | */
13 | fun getDetailLinkByEpisodeLink(episodeUrl: String): String
14 |
15 | companion object {
16 | const val implName = "Util"
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/model/util/JsoupUtil.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.util
2 |
3 | import com.skyd.imomoe.config.Const
4 | import org.jsoup.Jsoup
5 | import org.jsoup.nodes.Document
6 | import kotlin.random.Random
7 |
8 | object JsoupUtil {
9 | /**
10 | * 获取没有运行js的html
11 | */
12 | fun getDocument(url: String): Document =
13 | Jsoup.connect(url)
14 | .userAgent(Const.Request.USER_AGENT_ARRAY[Random.nextInt(Const.Request.USER_AGENT_ARRAY.size)])
15 | .get()
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/net/service/DanmuService.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.net.service
2 |
3 | import com.skyd.imomoe.bean.SendDanmuResultBean
4 | import com.skyd.imomoe.config.Api
5 | import okhttp3.RequestBody
6 | import retrofit2.Call
7 | import retrofit2.http.Body
8 | import retrofit2.http.Headers
9 | import retrofit2.http.POST
10 | import retrofit2.http.Query
11 |
12 | interface DanmuService {
13 | @Headers(value = ["Content-Type: application/json", "Accept: application/json"])
14 | @POST(Api.DANMU_URL)
15 | fun sendDanmu(
16 | @Query("ac") ac: String,
17 | @Query("key") key: String,
18 | @Body json: RequestBody
19 | ): Call
20 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/net/service/UpdateService.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.net.service
2 |
3 | import com.skyd.imomoe.bean.UpdateBean
4 | import com.skyd.imomoe.config.Api
5 | import retrofit2.Call
6 | import retrofit2.http.GET
7 |
8 | interface UpdateService {
9 | @GET(Api.CHECK_UPDATE_URL)
10 | fun checkUpdate(): Call
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/Debug.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util
2 |
3 | import com.skyd.imomoe.BuildConfig
4 |
5 | /**
6 | * 只有debug包才会执行表达式
7 | */
8 | fun debug(lambda: () -> Unit) {
9 | if (BuildConfig.DEBUG) {
10 | lambda.invoke()
11 | }
12 | }
13 |
14 | /**
15 | * 只有release包才会执行表达式
16 | */
17 | fun release(lambda: () -> Unit) {
18 | if (!BuildConfig.DEBUG) {
19 | lambda.invoke()
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/File.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util
2 |
3 | import android.net.Uri
4 | import android.os.Build
5 | import androidx.core.content.FileProvider
6 | import com.skyd.imomoe.App
7 | import java.io.File
8 |
9 | val File.uri: Uri
10 | get() = if (Build.VERSION.SDK_INT >= 24) {
11 | FileProvider.getUriForFile(App.context, "com.skyd.imomoe.fileProvider", this)
12 | } else {
13 | Uri.fromFile(this)
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/SharedPreferences.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util
2 |
3 | import android.content.Context
4 | import android.content.SharedPreferences
5 |
6 | fun Context.sharedPreferences(name: String = "App"): SharedPreferences = getSharedPreferences(name, Context.MODE_PRIVATE)
7 | fun SharedPreferences.editor(editorBuilder: SharedPreferences.Editor.() -> Unit) = edit().apply(editorBuilder).apply()
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/Text.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util
2 |
3 | import com.skyd.imomoe.BuildConfig
4 |
5 | object Text {
6 | /**
7 | * 屏蔽带有某些关键字的弹幕
8 | *
9 | * @return 若屏蔽此字符串,则返回true,否则false
10 | */
11 | fun String.shield(): Boolean {
12 | BuildConfig.SHIELD_TEXT.forEach {
13 | if (this.contains(it, true)) return true
14 | }
15 | return false
16 | }
17 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/dlna/dmc/OnDeviceRegistryListener.java:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.dlna.dmc;
2 |
3 | import org.fourthline.cling.model.meta.Device;
4 |
5 | /**
6 | * this listener call in UI thread.
7 | */
8 | public interface OnDeviceRegistryListener {
9 | void onDeviceAdded(Device, ?, ?> device);
10 |
11 | void onDeviceUpdated(Device, ?, ?> device);
12 |
13 | void onDeviceRemoved(Device, ?, ?> device);
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/dlna/dms/IMediaContentDao.java:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.dlna.dms;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import org.fourthline.cling.support.model.item.Item;
8 |
9 | import java.util.List;
10 |
11 | interface IMediaContentDao {
12 | @NonNull
13 | List- getImageItems(@NonNull Context context);
14 |
15 | @NonNull
16 | List
- getAudioItems(@NonNull Context context);
17 |
18 | @NonNull
19 | List
- getVideoItems(@NonNull Context context);
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/dlna/dms/IResourceServer.java:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.dlna.dms;
2 |
3 | interface IResourceServer {
4 | void startServer();
5 |
6 | void stopServer();
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/dlna/dms/MediaItem.java:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.dlna.dms;
2 |
3 | import org.fourthline.cling.support.model.DIDLObject;
4 |
5 | public interface MediaItem {
6 | String ROOT_ID = "0";
7 | String AUDIO_ID = "10";
8 | String VIDEO_ID = "20";
9 | String IMAGE_ID = "30";
10 |
11 | DIDLObject.Class AUDIO_CLASS = new DIDLObject.Class("object.container.audio");
12 | DIDLObject.Class IMAGE_CLASS = new DIDLObject.Class("object.item.imageItem");
13 | DIDLObject.Class VIDEO_CLASS = new DIDLObject.Class("object.container.video");
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/downloadanime/AnimeDownloadStatus.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.downloadanime
2 |
3 | enum class AnimeDownloadStatus {
4 | DOWNLOADING, // 正在下载更新
5 | COMPLETE, // 下载完成
6 | CANCEL, // 取消下载
7 | ERROR // 下载失败
8 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/downloadanime/DownloadListener.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.downloadanime
2 |
3 | interface DownloadListener {
4 | fun complete(fileName: String)
5 |
6 | fun error() {
7 | }
8 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/eventbus/Event.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.eventbus
2 |
3 | interface MessageEvent
4 |
5 | class RefreshEvent : MessageEvent
6 |
7 | // 根据actionUrl选择HomeFragment页面的某个Tab
8 | class SelectHomeTabEvent(var actionUrl: String) : MessageEvent
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/eventbus/EventBusSubscriber.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.eventbus
2 |
3 | interface EventBusSubscriber {
4 | fun onMessageEvent(event: MessageEvent)
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/html/source/DefaultUICallback.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.html.source
2 |
3 | import android.view.View
4 |
5 | open class DefaultUICallback : GettingUICallback {
6 | override fun onGettingStart(webView: View?, url: String?) {}
7 |
8 | override fun onGettingFinish(webView: View?, url: String?) {}
9 |
10 | override fun onGettingSuccess(webView: View?, html: String) {}
11 |
12 | override fun onGettingError(webView: View?, url: String?, errorCode: Int) {}
13 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/html/source/GettingCallback.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.html.source
2 |
3 | import android.view.View
4 |
5 | interface GettingCallback {
6 | /**
7 | * 获取源代码成功,只在{GettingWebView}调用
8 | *
9 | * @param webView
10 | * @param html
11 | */
12 | fun onGettingSuccess(webView: View?, html: String)
13 |
14 | /**
15 | * 获取源代码失败
16 | *
17 | * @param webView
18 | * @param url
19 | * @param errorCode
20 | */
21 | fun onGettingError(webView: View?, url: String?, errorCode: Int)
22 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/html/source/GettingUICallback.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.html.source
2 |
3 | import android.view.View
4 |
5 | interface GettingUICallback : GettingCallback {
6 | /**
7 | * 开始获取源代码
8 | * @param webView
9 | * @param url
10 | */
11 | fun onGettingStart(webView: View?, url: String?)
12 |
13 | /**
14 | * 结束获取源代码
15 | * @param webView
16 | * @param url
17 | */
18 | fun onGettingFinish(webView: View?, url: String?)
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/skin/SkinUtil.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.skin
2 |
3 |
4 | object SkinUtil {
5 | fun initCustomAttrIds() {
6 | // SkinManager.addCustomAttrIds(R.attr.menu, object : SkinManager.CustomSetSkinTagListener {
7 | // override fun setSkinTag(attrId: Int, resId: Int): Pair? {
8 | // if (resId != -1) return Pair(
9 | // MenuAttr.TAG,
10 | // MenuAttr().apply { attrResourceRefId = resId })
11 | // return null
12 | // }
13 | // })
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/util/update/AppUpdateStatus.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.util.update
2 |
3 | enum class AppUpdateStatus {
4 | UNCHECK, // 未检查
5 | DATED, // 当前版本已过时,建议更新
6 | VALID, // 当前是最新版本
7 | CHECKING, // 检查更新中
8 | LATER, // 用户选择暂不更新
9 | ERROR // 任何时候出错,建议RECHECK,但可能是客户端或服务端的网络问题
10 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/adapter/SerializableRecycledViewPool.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.adapter
2 |
3 | import androidx.recyclerview.widget.RecyclerView
4 | import java.io.Serializable
5 |
6 | class SerializableRecycledViewPool : RecyclerView.RecycledViewPool(), Serializable
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/adapter/SkinRvAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.adapter
2 |
3 | import android.view.ViewGroup
4 | import androidx.recyclerview.widget.RecyclerView
5 | import com.skyd.skin.SkinManager
6 | import com.skyd.imomoe.util.ViewHolderUtil.Companion.getViewHolder
7 |
8 | abstract class SkinRvAdapter : RecyclerView.Adapter() {
9 | override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
10 | return getViewHolder(parent, viewType).apply {
11 | SkinManager.setSkin(itemView)
12 | }
13 | }
14 |
15 | override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
16 | SkinManager.applyViews(holder.itemView)
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/adapter/spansize/SkinSpanSize.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.adapter.spansize
2 |
3 | import androidx.recyclerview.widget.GridLayoutManager
4 | import androidx.recyclerview.widget.RecyclerView
5 | import com.skyd.imomoe.config.Const.ViewHolderTypeInt
6 |
7 | class SkinSpanSize(val adapter: RecyclerView.Adapter) :
8 | GridLayoutManager.SpanSizeLookup() {
9 | override fun getSpanSize(position: Int): Int {
10 | return when (adapter.getItemViewType(position)) {
11 | ViewHolderTypeInt.HEADER_1 -> 4
12 | else -> 1
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/component/bannerview/BannerUtil.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.component.bannerview
2 |
3 | /**
4 | * Created by Sky_D on 2021-02-08.
5 | */
6 | object BannerUtil {
7 | fun getPosition(pos: Int, count: Int) = if (count != 0) when (pos) {
8 | 0 -> {
9 | count - 1
10 | }
11 | count + 1 -> {
12 | 0
13 | }
14 | else -> {
15 | pos - 1
16 | }
17 | } else 0
18 |
19 | fun getRealPosition(pos: Int) = pos + 1
20 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/component/bannerview/indicator/Indicator.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.component.bannerview.indicator
2 |
3 | import android.view.View
4 |
5 | /**
6 | * Created by Sky_D on 2021-02-08.
7 | */
8 | interface Indicator {
9 | fun getView(): View?
10 |
11 | fun onChanged(itemCount: Int, currentPosition: Int)
12 |
13 | fun onPageSelected(position: Int)
14 |
15 | fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int)
16 |
17 | fun onPageScrollStateChanged(state: Int)
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/component/bannerview/indicator/SimpleIndicator.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.component.bannerview.indicator
2 |
3 | import android.view.View
4 |
5 | /**
6 | * Created by Sky_D on 2021-02-08.
7 | */
8 | class SimpleIndicator : Indicator {
9 | override fun getView(): View? {
10 | return null
11 | }
12 |
13 | override fun onChanged(itemCount: Int, currentPosition: Int) {
14 | }
15 |
16 | override fun onPageSelected(position: Int) {
17 | }
18 |
19 | override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
20 | }
21 |
22 | override fun onPageScrollStateChanged(state: Int) {
23 | }
24 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/component/player/MyVideoAllCallBack.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.component.player
2 |
3 | import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack
4 |
5 | interface MyVideoAllCallBack : VideoAllCallBack {
6 | fun onVideoPause()
7 |
8 | fun onVideoResume()
9 |
10 | fun onVideoSizeChanged()
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/view/component/textview/TypefaceUtil.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.view.component.textview
2 |
3 | import android.graphics.Typeface
4 | import com.skyd.imomoe.App
5 |
6 | object TypefaceUtil {
7 | const val BPR_TYPEFACE = 1
8 |
9 | private var bPRTypeface: Typeface? = null
10 |
11 | fun getBPRTypeface(): Typeface {
12 | bPRTypeface?.let {
13 | return it
14 | }
15 | return try {
16 | Typeface.createFromAsset(App.context.assets, "fonts/BPreplay.otf")
17 | } catch (e: RuntimeException) {
18 | Typeface.DEFAULT
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/skyd/imomoe/viewmodel/UpnpViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.viewmodel
2 |
3 | import androidx.lifecycle.ViewModel
4 | import org.fourthline.cling.model.meta.Device
5 | import java.util.*
6 |
7 | class UpnpViewModel : ViewModel() {
8 | var deviceList: MutableList?> = ArrayList()
9 |
10 | companion object {
11 | const val TAG = "UpnpViewModel"
12 | }
13 | }
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_bottom_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_bottom_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_left_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_left_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_top_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_top_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_push_up_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/anl_stay.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_christmas_hat.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/res/drawable-xxxhdpi/ic_christmas_hat.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_everyday_anime_widget.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/res/drawable-xxxhdpi/ic_everyday_anime_widget.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_circle_main_color_2_50_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_access_time_main_color_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_back_ios_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_back_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_circle_down_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_circle_down_white_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_forward_ios_main_color_12_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_right_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_bar_chart_white_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_clear_main_color_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_delete_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_delete_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_main_color_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_info_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_keyboard_arrow_down_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_link_main_color_2_34_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_more_vert_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_music_note_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_pause_circle_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_pause_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_play_circle_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_play_circle_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_play_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_replay_white_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_search_main_color_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_share_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_skip_next_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_star_border_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_star_border_white_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_star_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_star_white_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_storage_main_color_2_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_swap_horiz_white_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_swap_vert_white_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_warning_main_color_3_24_skin.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/layerlist_shortcuts_download_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
-
4 |
5 |
6 |
7 |
8 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/layerlist_shortcuts_everyday_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/layerlist_shortcuts_favorite_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/seek_bar_thumb_1_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_everyday_anime_button_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_home_button_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_horizontal_reverse_button_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_more_button_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_no_reverse_button_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_spinner_1_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_turn_on_off_danmu_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_vertical_reverse_button_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_corner_bottom_dialog_white_12_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_corner_edge_main_color_2_ripper_5_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_corner_edge_main_color_ripper_50_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_corner_edge_white_ripper_5_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_corner_white_50_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_circle_corner_white_ripper_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_fill_circle_corner_coppery_50.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_fill_circle_corner_danmu_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_fill_circle_corner_golden_50.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_fill_circle_corner_main_color_2_50_skin.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_fill_circle_corner_silvery_50.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_gray_transparent_2_angle_90.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_gray_transparent_angle_270.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_gray_transparent_angle_90.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_widget_everyday_anime_body.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_widget_everyday_anime_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_simple_play.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_anime_episode_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_anime_episode_flow_layout_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_anime_episode_flow_layout_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_grid_recycler_view_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_header_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_player_list_item_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_search_history_header_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/toast_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/upush_bar_image_notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/raw/keep.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #000000
4 | #000000
5 | #B5B5B5
6 | #B5B5B5
7 | #B5B5B5
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FC719B
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/widget_everyday_anime.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/app/src/test/java/com/skyd/imomoe/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------
/doc/about_http_security.md:
--------------------------------------------------------------------------------
1 | # 关于http网站或数据源的安全问题
2 |
3 | - #### 背景
4 |
5 | 作者在某一天发现访问数据源网站(http)会302重定向到一个“黄色诈骗网站”,经研究后发现是我的**DNS被劫持了**。
6 |
7 | - #### DNS是什么?
8 |
9 | DNS的功能是把域名解析成IP地址,从而进行请求。
10 |
11 | - #### DNS被劫持后有什么危害?
12 |
13 | 当DNS被劫持后,将域名解析为IP时会返回一个**虚假的IP**,此IP不仅会让APP**无法加载数据**,如果使用浏览器访问此IP(或此域名),还会把浏览器302重定向到了“黄色诈骗网站”,**诱导**浏览器**下载诈骗APP**。因此当您**访问http的数据源网站**时,**务必小心**,**不要下载来历不明APP和Jar包**。
14 |
15 | - #### DNS被劫持后的初步解决方法?
16 |
17 | 尝试设置网络代理或换用其他网络。
18 |
--------------------------------------------------------------------------------
/doc/customdatasource/image/customdatasource.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/doc/customdatasource/image/customdatasource.jpg
--------------------------------------------------------------------------------
/doc/customdatasource/image/customdatasource_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/doc/customdatasource/image/customdatasource_2.jpg
--------------------------------------------------------------------------------
/doc/customdatasource/image/normal.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/doc/customdatasource/image/normal.jpg
--------------------------------------------------------------------------------
/doc/customdatasource/sample/custom/CustomDataSource.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/doc/customdatasource/sample/custom/CustomDataSource.jar
--------------------------------------------------------------------------------
/doc/customdatasource/sample/custom/CustomUtil.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.imomoe.model.impls.custom
2 |
3 | import com.skyd.imomoe.model.interfaces.IUtil
4 | import com.skyd.imomoe.util.Util
5 |
6 | class CustomUtil : IUtil {
7 | override fun getDetailLinkByEpisodeLink(episodeUrl: String): String {
8 | val const = CustomConst()
9 | return const.actionUrl.ANIME_DETAIL() + episodeUrl
10 | .replaceFirst(const.actionUrl.ANIME_PLAY(), "")
11 | .replaceFirst(Regex("-.*-.*\\.html"), "") + Util.getWebsiteLinkSuffix()
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Aug 21 11:08:43 GMT+08:00 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/image/icon.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/image/icon.psd
--------------------------------------------------------------------------------
/image/icon_round.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/image/icon_round.psd
--------------------------------------------------------------------------------
/image/readme_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/image/readme_cover.png
--------------------------------------------------------------------------------
/image/readme_cover.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/image/readme_cover.psd
--------------------------------------------------------------------------------
/image/spinner.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/image/spinner.psd
--------------------------------------------------------------------------------
/screenshot/anime_detail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/anime_detail.jpg
--------------------------------------------------------------------------------
/screenshot/classify.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/classify.jpg
--------------------------------------------------------------------------------
/screenshot/everyday_anime.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/everyday_anime.jpg
--------------------------------------------------------------------------------
/screenshot/favorite.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/favorite.jpg
--------------------------------------------------------------------------------
/screenshot/history.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/history.jpg
--------------------------------------------------------------------------------
/screenshot/main.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/main.jpg
--------------------------------------------------------------------------------
/screenshot/new_anime.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/new_anime.jpg
--------------------------------------------------------------------------------
/screenshot/play.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/play.jpg
--------------------------------------------------------------------------------
/screenshot/player.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/player.jpg
--------------------------------------------------------------------------------
/screenshot/rank.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/rank.jpg
--------------------------------------------------------------------------------
/screenshot/search.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/screenshot/search.jpg
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | include ':skin'
3 | include ':skin_dark'
4 | include ':skin_blue'
5 | include ':skin_lemon'
6 | include ':skin_sweat_soybean'
7 | rootProject.name = "樱花动漫"
--------------------------------------------------------------------------------
/skin/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/skin/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin/consumer-rules.pro
--------------------------------------------------------------------------------
/skin/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/SkinAttrsSet.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core
2 |
3 | import com.skyd.skin.core.attrs.SkinAttr
4 |
5 | /**
6 | * 存储所有的属性集合
7 | */
8 | class SkinAttrsSet {
9 | var attrsMap: HashMap = HashMap()
10 |
11 | override fun toString(): String {
12 | return attrsMap.toString()
13 | }
14 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/SkinBaseFragment.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core
2 |
3 | import android.os.Bundle
4 | import androidx.fragment.app.Fragment
5 | import android.view.View
6 | import com.skyd.skin.SkinManager
7 | import com.skyd.skin.core.listeners.ChangeSkinListener
8 |
9 | open class SkinBaseFragment : Fragment(), ChangeSkinListener {
10 |
11 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
12 | super.onViewCreated(view, savedInstanceState)
13 | SkinManager.addListener(this)
14 | }
15 |
16 | override fun onDestroyView() {
17 | super.onDestroyView()
18 | SkinManager.removeListener(this)
19 | }
20 |
21 | override fun onChangeSkin() {}
22 |
23 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/SkinCache.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core
2 |
3 | import android.content.res.Resources
4 |
5 | class SkinCache(
6 | val skinResource: Resources,
7 | val skinPackageName: String,
8 | val skinSuffix: String
9 | )
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/BackgroundAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.util.Log
4 | import android.view.View
5 | import androidx.constraintlayout.widget.ConstraintLayout
6 | import com.skyd.skin.SkinManager
7 |
8 |
9 | class BackgroundAttr : SkinAttr() {
10 | companion object {
11 | const val TAG = "background"
12 | }
13 |
14 | override fun applySkin(view: View) {
15 | if (attrResourceRefId != -1) SkinManager.setBackground(view, attrResourceRefId)
16 | }
17 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/BackgroundTintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import com.skyd.skin.SkinManager
5 |
6 | class BackgroundTintAttr : SkinAttr() {
7 | companion object {
8 | const val TAG = "backgroundTint"
9 | }
10 |
11 | override fun applySkin(view: View) {
12 | if (attrResourceRefId != -1) SkinManager.setBackgroundTint(view, attrResourceRefId)
13 | }
14 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ButtonTintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.CompoundButton
5 | import com.skyd.skin.SkinManager
6 |
7 | class ButtonTintAttr : SkinAttr() {
8 | companion object {
9 | const val TAG = "buttonTint"
10 | }
11 |
12 | override fun applySkin(view: View) {
13 | if (attrResourceRefId != -1 && view is CompoundButton)
14 | SkinManager.setButtonTint(view, attrResourceRefId)
15 | }
16 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/CardBackgroundColorAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import androidx.cardview.widget.CardView
5 | import com.skyd.skin.SkinManager
6 |
7 | class CardBackgroundColorAttr : SkinAttr() {
8 | companion object {
9 | const val TAG = "cardBackgroundColor"
10 | }
11 |
12 | override fun applySkin(view: View) {
13 | if (attrResourceRefId != -1 && view is CardView)
14 | SkinManager.setCardBackgroundColor(view, attrResourceRefId)
15 | }
16 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ColorPrimaryAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class ColorPrimaryAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "colorPrimary"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (attrResourceRefId == -1) return
15 | // 按需添加
16 | when (view) {
17 | is SwipeRefreshLayout -> {
18 | SkinManager.setColorSchemeColors(view, attrResourceRefId)
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/DrawableEndAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.TextView
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class DrawableEndAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "drawableEnd"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is TextView && attrResourceRefId != -1) {
15 | SkinManager.setDrawableEnd(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/DrawableStartAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.TextView
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class DrawableStartAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "drawableStart"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is TextView && attrResourceRefId != -1) {
15 | SkinManager.setDrawableStart(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/DrawableTopCompatAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.TextView
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class DrawableTopCompatAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "drawableTopCompat"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is TextView && attrResourceRefId != -1) {
15 | SkinManager.setDrawableTopCompat(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ImageViewTintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.ImageView
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class ImageViewTintAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "imageViewTint"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is ImageView && attrResourceRefId != -1) {
15 | SkinManager.setImageViewTint(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/IndeterminateTintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.ProgressBar
5 | import com.skyd.skin.SkinManager
6 |
7 | class IndeterminateTintAttr : SkinAttr() {
8 | companion object {
9 | const val TAG = "indeterminateTint"
10 | }
11 |
12 | override fun applySkin(view: View) {
13 | if (attrResourceRefId != -1 && view is ProgressBar)
14 | SkinManager.setIndeterminateTint(view, attrResourceRefId)
15 | }
16 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ProgressDrawableAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.ProgressBar
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class ProgressDrawableAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "progressDrawable"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (attrResourceRefId != -1 && view is ProgressBar) {
15 | SkinManager.setProgressDrawable(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ScrollbarThumbVerticalAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.os.Build
4 | import android.view.View
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class ScrollbarThumbVerticalAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "scrollbarThumbVertical"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (attrResourceRefId != -1) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
15 | SkinManager.setScrollbarThumbVertical(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/SkinAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 |
5 | abstract class SkinAttr : Cloneable {
6 |
7 | // the integer value of the "id" attribute
8 | var attrResourceRefId = -1
9 |
10 | abstract fun applySkin(view: View)
11 |
12 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/SrcAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.ImageView
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class SrcAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "src"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is ImageView && attrResourceRefId != -1) {
15 | SkinManager.setSrc(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/TabIndicatorColorAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import com.skyd.skin.SkinManager
5 | import com.google.android.material.tabs.TabLayout
6 |
7 |
8 | class TabIndicatorColorAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "tabIndicatorColor"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is TabLayout && attrResourceRefId != -1) {
15 | SkinManager.setTabIndicatorColor(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/TabTextColorAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import com.skyd.skin.SkinManager
5 | import com.google.android.material.tabs.TabLayout
6 |
7 |
8 | class TabTextColorAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "tabTextColor"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is TabLayout && attrResourceRefId != -1) {
15 | SkinManager.setTabTextColor(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/TextColorAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.TextView
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class TextColorAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "textColor"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (view is TextView && attrResourceRefId != -1) {
15 | SkinManager.setTextColor(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/TextColorHintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.TextView
5 | import com.skyd.skin.SkinManager
6 |
7 | class TextColorHintAttr : SkinAttr() {
8 | companion object {
9 | const val TAG = "textColorHint"
10 | }
11 |
12 | override fun applySkin(view: View) {
13 | if (attrResourceRefId != -1 && view is TextView)
14 | SkinManager.setTextColorHint(view, attrResourceRefId)
15 | }
16 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ThumbAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import android.widget.SeekBar
5 | import com.skyd.skin.SkinManager
6 |
7 |
8 | class ThumbAttr : SkinAttr() {
9 | companion object {
10 | const val TAG = "thumb"
11 | }
12 |
13 | override fun applySkin(view: View) {
14 | if (attrResourceRefId != -1 && view is SeekBar) {
15 | SkinManager.setThumb(view, attrResourceRefId)
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/ThumbTintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import androidx.appcompat.widget.SwitchCompat
5 | import com.skyd.skin.SkinManager
6 |
7 | class ThumbTintAttr : SkinAttr() {
8 | companion object {
9 | const val TAG = "thumbTint"
10 | }
11 |
12 | override fun applySkin(view: View) {
13 | if (attrResourceRefId != -1 && view is SwitchCompat)
14 | SkinManager.setThumbTint(view, attrResourceRefId)
15 | }
16 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/attrs/TrackTintAttr.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.attrs
2 |
3 | import android.view.View
4 | import androidx.appcompat.widget.SwitchCompat
5 | import com.skyd.skin.SkinManager
6 |
7 | class TrackTintAttr : SkinAttr() {
8 | companion object {
9 | const val TAG = "trackTint"
10 | }
11 |
12 | override fun applySkin(view: View) {
13 | if (attrResourceRefId != -1 && view is SwitchCompat)
14 | SkinManager.setTrackTint(view, attrResourceRefId)
15 | }
16 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/listeners/ChangeCustomSkinListener.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.listeners
2 |
3 | interface ChangeCustomSkinListener {
4 | fun setCustomTag()
5 | fun changeCustomSkin()
6 | }
--------------------------------------------------------------------------------
/skin/src/main/java/com/skyd/skin/core/listeners/ChangeSkinListener.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin.core.listeners
2 |
3 | interface ChangeSkinListener {
4 | fun onChangeSkin()
5 | }
--------------------------------------------------------------------------------
/skin/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/skin/src/test/java/com/skyd/skin/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------
/skin_blue/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/skin_blue/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_blue/consumer-rules.pro
--------------------------------------------------------------------------------
/skin_blue/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_blue.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_blue/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_blue.9.png
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/bg_circle_main_color_2_50_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_access_time_main_color_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_arrow_forward_ios_main_color_12_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_arrow_right_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_clear_main_color_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_delete_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_home_main_color_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_home_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_keyboard_arrow_down_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_link_main_color_2_34_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_play_circle_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_replay_white_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_search_main_color_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_star_border_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_star_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_storage_main_color_2_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_swap_horiz_white_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_swap_vert_white_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/ic_warning_main_color_3_24_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/seek_bar_thumb_1_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_everyday_anime_button_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_home_button_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_horizontal_reverse_button_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_more_button_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_no_reverse_button_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_spinner_1_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_turn_on_off_danmu_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/selector_vertical_reverse_button_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/shape_circle_corner_edge_main_color_2_ripper_5_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/shape_circle_corner_edge_main_color_ripper_50_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/drawable/shape_fill_circle_corner_main_color_2_50_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_blue/src/main/res/values/colors_skin_blue.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF000000
4 | #FFFFFFFF
5 | #FFFFFF
6 |
7 | #2196F3
8 | #1C7BC6
9 | #1C7BC6
10 | #1C7BC6
11 | #03A9F4
12 | #03A9F4
13 |
--------------------------------------------------------------------------------
/skin_blue/src/test/java/com/skyd/skin_blue/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.skyd.skin_blue
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------
/skin_dark/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/skin_dark/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_dark/consumer-rules.pro
--------------------------------------------------------------------------------
/skin_dark/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_dark/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_dark.9.png
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/bg_circle_main_color_2_50_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_access_time_main_color_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_arrow_forward_ios_main_color_12_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_arrow_right_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_clear_main_color_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_delete_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_home_main_color_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_home_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_keyboard_arrow_down_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_link_main_color_2_34_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_play_circle_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_replay_white_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_search_main_color_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_star_border_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_star_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_storage_main_color_2_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_swap_horiz_white_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_swap_vert_white_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/ic_warning_main_color_3_24_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_everyday_anime_button_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_home_button_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_horizontal_reverse_button_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_more_button_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_no_reverse_button_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_spinner_1_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_turn_on_off_danmu_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/selector_vertical_reverse_button_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/shape_circle_corner_bottom_dialog_white_12_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/shape_circle_corner_edge_main_color_2_ripper_5_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/shape_circle_corner_edge_main_color_ripper_50_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/shape_circle_corner_edge_white_ripper_5_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/shape_circle_corner_white_50_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/drawable/shape_fill_circle_corner_main_color_2_50_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_dark/src/main/res/values/colors_skin_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #B5B5B5
4 | #B5B5B5
5 | #000000
6 |
7 | #676767
8 | #000000
9 | #A8A8A8
10 | #9A9A9A
11 | #222222
12 | #00000000
13 | #5E000000
14 |
--------------------------------------------------------------------------------
/skin_dark/src/test/java/com/cyeasybuy/skin_dark/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.cyeasybuy.skin_dark
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------
/skin_lemon/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/skin_lemon/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_lemon/consumer-rules.pro
--------------------------------------------------------------------------------
/skin_lemon/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_lemon.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_lemon/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_lemon.9.png
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/bg_circle_main_color_2_50_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_access_time_main_color_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_arrow_forward_ios_main_color_12_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_arrow_right_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_clear_main_color_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_delete_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_home_main_color_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_home_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_keyboard_arrow_down_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_play_circle_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_replay_white_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_search_main_color_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_star_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_storage_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_swap_horiz_white_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_swap_vert_white_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/ic_warning_main_color_3_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/seek_bar_thumb_1_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_everyday_anime_button_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_home_button_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_horizontal_reverse_button_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_more_button_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_no_reverse_button_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_spinner_1_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_turn_on_off_danmu_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/selector_vertical_reverse_button_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/shape_circle_corner_edge_main_color_2_ripper_5_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/shape_circle_corner_edge_main_color_ripper_50_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/drawable/shape_fill_circle_corner_main_color_2_50_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_lemon/src/main/res/values/colors_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FF000000
4 | #FFFFFFFF
5 | #FFFFFF
6 |
7 | #ffc600
8 | #FFB544
9 | #FFB544
10 | #FFB544
11 | #ffbc55
12 | #ffbc55
13 |
--------------------------------------------------------------------------------
/skin_lemon/src/test/java/com/cyeasybuy/skin_lemon/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.cyeasybuy.skin_lemon
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------
/skin_sweat_soybean/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/skin_sweat_soybean/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/consumer-rules.pro
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_arrow_circle_down_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_bar_chart_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_face_savouring_delicious_food_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_face_savouring_delicious_food_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_fearful_face_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_fearful_face_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_format_list_bulleted_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_open_mout_tightly_closed_eyes_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_open_mout_tightly_closed_eyes_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_open_mouth_cold_sweat_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_open_mouth_cold_sweat_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_play_circle_main_color_2_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_rolling_on_the_floor_laughing_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_rolling_on_the_floor_laughing_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_smiling_face_with_heart_shaped_eyes_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_smiling_face_with_heart_shaped_eyes_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_soybean_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_soybean_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_star_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_sweat_soybean_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_sweat_soybean_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_tears_of_joy_160px.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-hdpi/ic_tears_of_joy_160px.webp
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_sweat_soybean.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/androiddevnotesforks/Imomoe/bd3b3a0e3f5211ccd57cf6d384e7c60bc5efc45f/skin_sweat_soybean/src/main/res/drawable-xxxhdpi/ic_spinner_bg_1_skin_sweat_soybean.9.png
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/bg_circle_main_color_2_50_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_access_time_main_color_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_arrow_forward_ios_main_color_12_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_arrow_right_main_color_2_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_clear_main_color_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_keyboard_arrow_down_main_color_2_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_play_circle_main_color_2_24_skin_lemon.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_replay_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_search_main_color_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_star_main_color_2_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_storage_main_color_2_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_swap_horiz_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_swap_vert_white_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/ic_warning_main_color_3_24_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/layerlist_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/seek_bar_thumb_1_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_everyday_anime_button_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_home_button_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_horizontal_reverse_button_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_more_button_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_no_reverse_button_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_spinner_1_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_turn_on_off_danmu_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/selector_vertical_reverse_button_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/shape_circle_corner_edge_main_color_2_ripper_5_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/shape_circle_corner_edge_main_color_ripper_50_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/main/res/drawable/shape_fill_circle_corner_main_color_2_50_skin_sweat_soybean.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/skin_sweat_soybean/src/test/java/com/cyeasybuy/skin_sweat_soybean/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.cyeasybuy.skin_sweat_soybean
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------