├── .gitattributes
├── .github
└── workflows
│ └── android.yml
├── .gitignore
├── .idea
├── .gitignore
├── androidTestResultsUserPreferences.xml
├── appInsightsSettings.xml
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── compiler.xml
├── deploymentTargetDropDown.xml
├── deploymentTargetSelector.xml
├── gradle.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── kotlinc.xml
├── migrations.xml
├── misc.xml
├── other.xml
├── render.experimental.xml
├── runConfigurations.xml
└── vcs.xml
├── .kotlin
└── errors
│ └── errors-1729322291665.log
├── LICENSE
├── README.md
├── app
├── .gitignore
├── build.gradle.kts
├── google-services.json
├── proguard-keys.txt
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── bangumi
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── h5
│ │ │ ├── assets
│ │ │ ├── BBCodeView-9E2IN_sa.js
│ │ │ ├── BBCodeView-ok635Qnb.css
│ │ │ ├── BlogView-p0tVeezS.js
│ │ │ ├── BlogView-rpjgMQfG.css
│ │ │ ├── BottomSpinnerView-FbERe0wp.js
│ │ │ ├── BottomSpinnerView-X9mrmYSF.css
│ │ │ ├── IndexView-Gsg00Qd6.js
│ │ │ ├── TopicView-BbLA7xc5.css
│ │ │ ├── TopicView-b0Nat5PC.js
│ │ │ ├── bg_bangumi-zgoKjpW4.png
│ │ │ ├── index-ECc4Fme6.css
│ │ │ ├── index-a_sggHWe.js
│ │ │ └── light-xUZnlCGI.css
│ │ │ ├── favicon.ico
│ │ │ ├── ic_holder.jpg
│ │ │ ├── index.html
│ │ │ ├── script
│ │ │ ├── bangumi.js
│ │ │ └── temp.html
│ │ │ └── test.http
│ ├── ic_launcher-playstore.png
│ ├── ic_launcher_1-playstore.png
│ ├── ic_launcher_2-playstore.png
│ ├── java
│ │ └── com
│ │ │ └── xiaoyv
│ │ │ └── bangumi
│ │ │ ├── StartActivity.kt
│ │ │ ├── base
│ │ │ ├── BaseListActivity.kt
│ │ │ ├── BaseListFragment.kt
│ │ │ ├── BaseListStubFragment.kt
│ │ │ └── BaseListViewModel.kt
│ │ │ ├── helper
│ │ │ ├── CommentHelper.kt
│ │ │ └── RouteHelper.kt
│ │ │ ├── special
│ │ │ ├── collection
│ │ │ │ ├── CollectionActivity.kt
│ │ │ │ ├── CollectionAdapter.kt
│ │ │ │ └── CollectionViewModel.kt
│ │ │ ├── detect
│ │ │ │ ├── ImageDetectActivity.kt
│ │ │ │ ├── ImageDetectViewModel.kt
│ │ │ │ ├── anime
│ │ │ │ │ ├── ImageDetectAnimeActivity.kt
│ │ │ │ │ ├── ImageDetectAnimeViewModel.kt
│ │ │ │ │ └── result
│ │ │ │ │ │ ├── AnimeDetectResultActivity.kt
│ │ │ │ │ │ ├── AnimeDetectResultAdapter.kt
│ │ │ │ │ │ └── AnimeDetectResultViewModel.kt
│ │ │ │ └── character
│ │ │ │ │ ├── ImageDetectCharacterActivity.kt
│ │ │ │ │ ├── ImageDetectCharacterViewModel.kt
│ │ │ │ │ └── result
│ │ │ │ │ ├── CharacterDetectResultActivity.kt
│ │ │ │ │ ├── CharacterDetectResultAdapter.kt
│ │ │ │ │ └── CharacterDetectResultViewModel.kt
│ │ │ ├── magnet
│ │ │ │ ├── MagnetActivity.kt
│ │ │ │ ├── MagnetAdapter.kt
│ │ │ │ ├── MagnetApiDialog.kt
│ │ │ │ └── MagnetViewModel.kt
│ │ │ ├── mikan
│ │ │ │ ├── MikanActivity.kt
│ │ │ │ ├── MikanAdapter.kt
│ │ │ │ ├── MikanViewModel.kt
│ │ │ │ └── resource
│ │ │ │ │ ├── MikanResourceActivity.kt
│ │ │ │ │ └── MikanResourceViewModel.kt
│ │ │ ├── picture
│ │ │ │ ├── AnimePicturesNetActivity.kt
│ │ │ │ └── gallery
│ │ │ │ │ ├── AnimeGalleryActivity.kt
│ │ │ │ │ ├── AnimeGalleryAdapter.kt
│ │ │ │ │ └── AnimeGalleryViewModel.kt
│ │ │ ├── subtitle
│ │ │ │ ├── SubtitleToolActivity.kt
│ │ │ │ └── SubtitleToolViewModel.kt
│ │ │ ├── syncer
│ │ │ │ ├── SyncerActivity.kt
│ │ │ │ ├── SyncerViewModel.kt
│ │ │ │ └── list
│ │ │ │ │ ├── SyncerListActivity.kt
│ │ │ │ │ ├── SyncerListAdapter.kt
│ │ │ │ │ ├── SyncerListDialog.kt
│ │ │ │ │ └── SyncerListViewModel.kt
│ │ │ ├── thunder
│ │ │ │ ├── ThunderActivity.kt
│ │ │ │ ├── ThunderAdapter.kt
│ │ │ │ ├── ThunderDialog.kt
│ │ │ │ ├── ThunderViewModel.kt
│ │ │ │ ├── page
│ │ │ │ │ ├── ThunderTaskAdapter.kt
│ │ │ │ │ ├── ThunderTaskFragment.kt
│ │ │ │ │ └── ThunderTaskViewModel.kt
│ │ │ │ └── torrent
│ │ │ │ │ ├── TorrentInfoActivity.kt
│ │ │ │ │ ├── TorrentInfoAdapter.kt
│ │ │ │ │ └── TorrentInfoViewModel.kt
│ │ │ └── widget
│ │ │ │ ├── AnimeWidget.kt
│ │ │ │ └── AnimeWidgetDataService.kt
│ │ │ └── ui
│ │ │ ├── HomeActivity.kt
│ │ │ ├── HomeAdapter.kt
│ │ │ ├── HomeRobot.kt
│ │ │ ├── MainViewModel.kt
│ │ │ ├── discover
│ │ │ ├── DiscoverAdapter.kt
│ │ │ ├── DiscoverFragment.kt
│ │ │ ├── DiscoverViewModel.kt
│ │ │ ├── blog
│ │ │ │ ├── BlogAdapter.kt
│ │ │ │ ├── BlogFragment.kt
│ │ │ │ ├── BlogViewModel.kt
│ │ │ │ └── detail
│ │ │ │ │ ├── BlogActivity.kt
│ │ │ │ │ └── BlogViewModel.kt
│ │ │ ├── container
│ │ │ │ └── FragmentContainerActivity.kt
│ │ │ ├── dollars
│ │ │ │ ├── DollarsActivity.kt
│ │ │ │ ├── DollarsAdapter.kt
│ │ │ │ └── DollarsViewModel.kt
│ │ │ ├── group
│ │ │ │ ├── GroupAdapter.kt
│ │ │ │ ├── GroupFragment.kt
│ │ │ │ ├── GroupViewModel.kt
│ │ │ │ ├── binder
│ │ │ │ │ ├── GroupItemGridBinder.kt
│ │ │ │ │ └── GroupItemTopicBinder.kt
│ │ │ │ ├── detail
│ │ │ │ │ ├── GroupDetailActivity.kt
│ │ │ │ │ ├── GroupDetailAdapter.kt
│ │ │ │ │ └── GroupDetailViewModel.kt
│ │ │ │ ├── list
│ │ │ │ │ ├── GroupListActivity.kt
│ │ │ │ │ └── GroupListViewModel.kt
│ │ │ │ └── topic
│ │ │ │ │ ├── GroupTopicsActivity.kt
│ │ │ │ │ ├── GroupTopicsAdapter.kt
│ │ │ │ │ └── GroupTopicsViewModel.kt
│ │ │ ├── home
│ │ │ │ ├── HomeAdapter.kt
│ │ │ │ ├── HomeFragment.kt
│ │ │ │ ├── HomeViewModel.kt
│ │ │ │ └── binder
│ │ │ │ │ ├── HomeBannerBinder.kt
│ │ │ │ │ ├── HomeCalendarBinder.kt
│ │ │ │ │ └── HomeCardBinder.kt
│ │ │ ├── index
│ │ │ │ ├── IndexAdapter.kt
│ │ │ │ ├── IndexFragment.kt
│ │ │ │ ├── IndexViewModel.kt
│ │ │ │ ├── binder
│ │ │ │ │ ├── IndexGridBinder.kt
│ │ │ │ │ ├── IndexItemBinder.kt
│ │ │ │ │ └── IndexTitleBinder.kt
│ │ │ │ ├── detail
│ │ │ │ │ ├── IndexDetailActivity.kt
│ │ │ │ │ ├── IndexDetailAdapter.kt
│ │ │ │ │ ├── IndexDetailViewModel.kt
│ │ │ │ │ └── page
│ │ │ │ │ │ ├── IndexAttachAdapter.kt
│ │ │ │ │ │ ├── IndexAttachFragment.kt
│ │ │ │ │ │ └── IndexAttachViewModel.kt
│ │ │ │ └── list
│ │ │ │ │ ├── IndexListActivity.kt
│ │ │ │ │ ├── IndexListAdapter.kt
│ │ │ │ │ └── IndexListViewModel.kt
│ │ │ ├── mono
│ │ │ │ ├── MonoAdapter.kt
│ │ │ │ ├── MonoFragment.kt
│ │ │ │ ├── MonoViewModel.kt
│ │ │ │ ├── binder
│ │ │ │ │ ├── MonoGridBinder.kt
│ │ │ │ │ └── MonoHeaderBinder.kt
│ │ │ │ └── list
│ │ │ │ │ ├── MonoListActivity.kt
│ │ │ │ │ ├── MonoListAdapter.kt
│ │ │ │ │ └── MonoListViewModel.kt
│ │ │ └── wiki
│ │ │ │ ├── WikiFragment.kt
│ │ │ │ └── WikiViewModel.kt
│ │ │ ├── feature
│ │ │ ├── almanac
│ │ │ │ ├── AlmanacActivity.kt
│ │ │ │ ├── AlmanacAdapter.kt
│ │ │ │ └── AlmanacViewModel.kt
│ │ │ ├── empty
│ │ │ │ ├── EmptyFragment.kt
│ │ │ │ └── EmptyViewModel.kt
│ │ │ ├── floater
│ │ │ │ ├── FloatingKt.kt
│ │ │ │ ├── FloatingPermission.java
│ │ │ │ └── FloatingWindowManger.kt
│ │ │ ├── friendly
│ │ │ │ ├── FriendRankImportActivity.kt
│ │ │ │ ├── FriendRankImportViewModel.kt
│ │ │ │ └── rank
│ │ │ │ │ ├── FriendRankDetailActivity.kt
│ │ │ │ │ ├── FriendRankDetailAdapter.kt
│ │ │ │ │ └── FriendRankDetailViewModel.kt
│ │ │ ├── magi
│ │ │ │ ├── MagiActivity.kt
│ │ │ │ ├── MagiAdapter.kt
│ │ │ │ ├── MagiViewModel.kt
│ │ │ │ ├── history
│ │ │ │ │ ├── MagiHistoryAdapter.kt
│ │ │ │ │ ├── MagiHistoryFragment.kt
│ │ │ │ │ └── MagiHistoryViewModel.kt
│ │ │ │ ├── question
│ │ │ │ │ ├── MagiQuestionAdapter.kt
│ │ │ │ │ ├── MagiQuestionDialog.kt
│ │ │ │ │ ├── MagiQuestionFragment.kt
│ │ │ │ │ └── MagiQuestionViewModel.kt
│ │ │ │ └── rank
│ │ │ │ │ ├── MagiRankAdapter.kt
│ │ │ │ │ ├── MagiRankFragment.kt
│ │ │ │ │ ├── MagiRankViewModel.kt
│ │ │ │ │ └── binder
│ │ │ │ │ ├── MagiRankHeaderBinder.kt
│ │ │ │ │ └── MagiRankItemBinder.kt
│ │ │ ├── message
│ │ │ │ ├── MessageActivity.kt
│ │ │ │ ├── MessageAdapter.kt
│ │ │ │ ├── MessageViewModel.kt
│ │ │ │ └── detail
│ │ │ │ │ ├── MessageDetailActivity.kt
│ │ │ │ │ ├── MessageDetailAdapter.kt
│ │ │ │ │ └── MessageDetailViewModel.kt
│ │ │ ├── musmme
│ │ │ │ ├── MusumeActivity.kt
│ │ │ │ ├── MusumeFloater.kt
│ │ │ │ └── MusumeViewModel.kt
│ │ │ ├── notify
│ │ │ │ ├── NotifyActivity.kt
│ │ │ │ ├── NotifyAdapter.kt
│ │ │ │ └── NotifyViewModel.kt
│ │ │ ├── person
│ │ │ │ ├── PersonActivity.kt
│ │ │ │ ├── PersonAdapter.kt
│ │ │ │ ├── PersonViewModel.kt
│ │ │ │ ├── character
│ │ │ │ │ ├── PersonCharacterAdapter.kt
│ │ │ │ │ ├── PersonCharacterFragment.kt
│ │ │ │ │ └── PersonCharacterViewModel.kt
│ │ │ │ ├── collect
│ │ │ │ │ ├── PersonCollectAdapter.kt
│ │ │ │ │ ├── PersonCollectFragment.kt
│ │ │ │ │ └── PersonCollectViewModel.kt
│ │ │ │ ├── cooperate
│ │ │ │ │ ├── PersonCooperateAdapter.kt
│ │ │ │ │ ├── PersonCooperateFragment.kt
│ │ │ │ │ └── PersonCooperateViewModel.kt
│ │ │ │ ├── opus
│ │ │ │ │ ├── PersonOpusAdapter.kt
│ │ │ │ │ ├── PersonOpusFragment.kt
│ │ │ │ │ └── PersonOpusViewModel.kt
│ │ │ │ ├── overview
│ │ │ │ │ ├── PersonOverviewAdapter.kt
│ │ │ │ │ ├── PersonOverviewFragment.kt
│ │ │ │ │ ├── PersonOverviewViewModel.kt
│ │ │ │ │ └── binder
│ │ │ │ │ │ ├── PersonOverviewCharacterBinder.kt
│ │ │ │ │ │ ├── PersonOverviewGridBinder.kt
│ │ │ │ │ │ ├── PersonOverviewOpusBinder.kt
│ │ │ │ │ │ ├── PersonOverviewSummaryBinder.kt
│ │ │ │ │ │ └── PersonOverviewVoiceBinder.kt
│ │ │ │ └── picture
│ │ │ │ │ ├── PersonPictureAdapter.kt
│ │ │ │ │ ├── PersonPictureFragment.kt
│ │ │ │ │ └── PersonPictureViewModel.kt
│ │ │ ├── post
│ │ │ │ ├── BasePostActivity.kt
│ │ │ │ ├── BasePostViewModel.kt
│ │ │ │ ├── blog
│ │ │ │ │ ├── PostBlogActivity.kt
│ │ │ │ │ └── PostBlogViewModel.kt
│ │ │ │ ├── preview
│ │ │ │ │ ├── PreviewBBCodeActivity.kt
│ │ │ │ │ └── PreviewBBCodeViewModel.kt
│ │ │ │ └── topic
│ │ │ │ │ ├── PostTopicActivity.kt
│ │ │ │ │ └── PostTopicViewModel.kt
│ │ │ ├── preview
│ │ │ │ └── image
│ │ │ │ │ ├── PreviewImageActivity.kt
│ │ │ │ │ ├── PreviewImageAdapter.kt
│ │ │ │ │ ├── PreviewImageViewModel.kt
│ │ │ │ │ └── page
│ │ │ │ │ ├── PreviewPageFragment.kt
│ │ │ │ │ └── PreviewPageViewModel.kt
│ │ │ ├── schedule
│ │ │ │ ├── ScheduleActivity.kt
│ │ │ │ ├── ScheduleAdapter.kt
│ │ │ │ ├── ScheduleViewModel.kt
│ │ │ │ └── page
│ │ │ │ │ ├── SchedulePageAdapter.kt
│ │ │ │ │ ├── SchedulePageFragment.kt
│ │ │ │ │ └── SchedulePageViewModel.kt
│ │ │ ├── scheme
│ │ │ │ └── SchemeActivity.kt
│ │ │ ├── search
│ │ │ │ ├── SearchActivity.kt
│ │ │ │ ├── SearchAdapter.kt
│ │ │ │ ├── SearchViewModel.kt
│ │ │ │ └── detail
│ │ │ │ │ ├── SearchDetailActivity.kt
│ │ │ │ │ ├── SearchDetailAdapter.kt
│ │ │ │ │ ├── SearchDetailViewModel.kt
│ │ │ │ │ └── page
│ │ │ │ │ ├── SearchDetailKt.kt
│ │ │ │ │ ├── index
│ │ │ │ │ ├── SearchIndexAdapter.kt
│ │ │ │ │ ├── SearchIndexFragment.kt
│ │ │ │ │ └── SearchIndexViewModel.kt
│ │ │ │ │ ├── media
│ │ │ │ │ ├── SearchMediaAdapter.kt
│ │ │ │ │ ├── SearchMediaFragment.kt
│ │ │ │ │ └── SearchMediaViewModel.kt
│ │ │ │ │ ├── tag
│ │ │ │ │ ├── SearchTagAdapter.kt
│ │ │ │ │ ├── SearchTagFragment.kt
│ │ │ │ │ └── SearchTagViewModel.kt
│ │ │ │ │ └── topic
│ │ │ │ │ ├── SearchTopicAdapter.kt
│ │ │ │ │ ├── SearchTopicFragment.kt
│ │ │ │ │ └── SearchTopicViewModel.kt
│ │ │ ├── setting
│ │ │ │ ├── SettingActivity.kt
│ │ │ │ ├── SettingViewModel.kt
│ │ │ │ ├── block
│ │ │ │ │ ├── BlockActivity.kt
│ │ │ │ │ ├── BlockAdapter.kt
│ │ │ │ │ └── BlockViewModel.kt
│ │ │ │ ├── network
│ │ │ │ │ ├── NetworkConfigActivity.kt
│ │ │ │ │ └── NetworkConfigViewModel.kt
│ │ │ │ ├── privacy
│ │ │ │ │ ├── PrivacyActivity.kt
│ │ │ │ │ ├── PrivacyAdapter.kt
│ │ │ │ │ └── PrivacyViewModel.kt
│ │ │ │ ├── robot
│ │ │ │ │ └── RobotConfigActivity.kt
│ │ │ │ ├── tab
│ │ │ │ │ └── TabConfigActivity.kt
│ │ │ │ ├── translate
│ │ │ │ │ └── TranslateConfigActivity.kt
│ │ │ │ └── ui
│ │ │ │ │ └── UiConfigActivity.kt
│ │ │ ├── sign
│ │ │ │ ├── in
│ │ │ │ │ ├── SignInActivity.kt
│ │ │ │ │ └── SignInViewModel.kt
│ │ │ │ └── up
│ │ │ │ │ ├── SignUpActionActivity.kt
│ │ │ │ │ ├── SignUpActivity.kt
│ │ │ │ │ ├── SignUpViewModel.kt
│ │ │ │ │ └── verify
│ │ │ │ │ ├── SignUpVerifyActivity.kt
│ │ │ │ │ └── SignUpVerifyViewModel.kt
│ │ │ ├── summary
│ │ │ │ ├── SummaryActivity.kt
│ │ │ │ └── SummaryViewModel.kt
│ │ │ ├── tag
│ │ │ │ ├── TagDetailActivity.kt
│ │ │ │ └── TagDetailViewModel.kt
│ │ │ ├── topic
│ │ │ │ ├── TopicActivity.kt
│ │ │ │ └── TopicViewModel.kt
│ │ │ ├── user
│ │ │ │ ├── UserActivity.kt
│ │ │ │ ├── UserAdapter.kt
│ │ │ │ ├── UserViewModel.kt
│ │ │ │ ├── bg
│ │ │ │ │ ├── ConfigBgActivity.kt
│ │ │ │ │ ├── ConfigBgAdapter.kt
│ │ │ │ │ └── ConfigBgViewModel.kt
│ │ │ │ ├── blog
│ │ │ │ │ └── UserBlogActivity.kt
│ │ │ │ ├── chart
│ │ │ │ │ └── ChartFragment.kt
│ │ │ │ ├── mono
│ │ │ │ │ └── UserMonoActivity.kt
│ │ │ │ ├── overview
│ │ │ │ │ ├── UserOverviewAdapter.kt
│ │ │ │ │ └── UserOverviewFragment.kt
│ │ │ │ └── sign
│ │ │ │ │ └── SignFragment.kt
│ │ │ ├── web
│ │ │ │ └── WebActivity.kt
│ │ │ └── yuc
│ │ │ │ ├── YucActivity.kt
│ │ │ │ ├── YucAdapter.kt
│ │ │ │ ├── YucViewModel.kt
│ │ │ │ └── detail
│ │ │ │ ├── YucDetailActivity.kt
│ │ │ │ ├── YucDetailAdapter.kt
│ │ │ │ └── YucDetailViewModel.kt
│ │ │ ├── media
│ │ │ ├── MediaAdapter.kt
│ │ │ ├── MediaFragment.kt
│ │ │ ├── MediaViewModel.kt
│ │ │ ├── action
│ │ │ │ ├── MediaEpActionDialog.kt
│ │ │ │ ├── MediaIndexActionDialog.kt
│ │ │ │ └── MediaSaveActionDialog.kt
│ │ │ ├── detail
│ │ │ │ ├── MediaDetailActivity.kt
│ │ │ │ ├── MediaDetailAdapter.kt
│ │ │ │ ├── MediaDetailViewModel.kt
│ │ │ │ ├── board
│ │ │ │ │ ├── MediaBoardAdapter.kt
│ │ │ │ │ ├── MediaBoardFragment.kt
│ │ │ │ │ └── MediaBoardViewModel.kt
│ │ │ │ ├── chapter
│ │ │ │ │ ├── MediaChapterAdapter.kt
│ │ │ │ │ ├── MediaChapterFragment.kt
│ │ │ │ │ └── MediaChapterViewModel.kt
│ │ │ │ ├── character
│ │ │ │ │ ├── MediaCharacterAdapter.kt
│ │ │ │ │ ├── MediaCharacterFragment.kt
│ │ │ │ │ └── MediaCharacterViewModel.kt
│ │ │ │ ├── chart
│ │ │ │ │ ├── MediaChartFragment.kt
│ │ │ │ │ └── MediaChartViewModel.kt
│ │ │ │ ├── comments
│ │ │ │ │ ├── MediaCommentAdapter.kt
│ │ │ │ │ ├── MediaCommentFragment.kt
│ │ │ │ │ └── MediaCommentViewModel.kt
│ │ │ │ ├── maker
│ │ │ │ │ ├── MediaMakerAdapter.kt
│ │ │ │ │ ├── MediaMakerFragment.kt
│ │ │ │ │ └── MediaMakerViewModel.kt
│ │ │ │ ├── overview
│ │ │ │ │ ├── OverviewAdapter.kt
│ │ │ │ │ ├── OverviewFragment.kt
│ │ │ │ │ ├── OverviewViewModel.kt
│ │ │ │ │ └── binder
│ │ │ │ │ │ ├── OverviewBookBinder.kt
│ │ │ │ │ │ ├── OverviewCharacterBinder.kt
│ │ │ │ │ │ ├── OverviewCommentBinder.kt
│ │ │ │ │ │ ├── OverviewEpBinder.kt
│ │ │ │ │ │ ├── OverviewGridBinder.kt
│ │ │ │ │ │ ├── OverviewPreviewBinder.kt
│ │ │ │ │ │ ├── OverviewRatingBinder.kt
│ │ │ │ │ │ ├── OverviewRelativeBinder.kt
│ │ │ │ │ │ ├── OverviewSaveBinder.kt
│ │ │ │ │ │ ├── OverviewSummaryBinder.kt
│ │ │ │ │ │ ├── OverviewTagBinder.kt
│ │ │ │ │ │ └── OverviewTourBinder.kt
│ │ │ │ ├── preview
│ │ │ │ │ ├── MediaPreviewActivity.kt
│ │ │ │ │ ├── MediaPreviewAdapter.kt
│ │ │ │ │ └── MediaPreviewViewModel.kt
│ │ │ │ ├── review
│ │ │ │ │ ├── MediaReviewAdapter.kt
│ │ │ │ │ ├── MediaReviewFragment.kt
│ │ │ │ │ └── MediaReviewViewModel.kt
│ │ │ │ ├── score
│ │ │ │ │ ├── MediaScoreActivity.kt
│ │ │ │ │ ├── MediaScoreAdapter.kt
│ │ │ │ │ ├── MediaScoreViewModel.kt
│ │ │ │ │ └── page
│ │ │ │ │ │ ├── MediaScorePageAdapter.kt
│ │ │ │ │ │ ├── MediaScorePageFragment.kt
│ │ │ │ │ │ └── MediaScorePageViewModel.kt
│ │ │ │ └── state
│ │ │ │ │ ├── MediaStateFragment.kt
│ │ │ │ │ └── MediaStateViewModel.kt
│ │ │ ├── option
│ │ │ │ ├── MediaOptionAdapter.kt
│ │ │ │ ├── MediaOptionFragment.kt
│ │ │ │ └── MediaOptionViewModel.kt
│ │ │ └── type
│ │ │ │ ├── MediaPageAdapter.kt
│ │ │ │ ├── MediaPageFragment.kt
│ │ │ │ └── MediaPageViewModel.kt
│ │ │ ├── process
│ │ │ ├── ProcessAdapter.kt
│ │ │ ├── ProcessFragment.kt
│ │ │ ├── ProcessViewModel.kt
│ │ │ └── page
│ │ │ │ ├── ProcessPageAdapter.kt
│ │ │ │ ├── ProcessPageFragment.kt
│ │ │ │ └── ProcessPageViewModel.kt
│ │ │ ├── profile
│ │ │ ├── ProfileAdapter.kt
│ │ │ ├── ProfileFragment.kt
│ │ │ ├── ProfileViewModel.kt
│ │ │ ├── edit
│ │ │ │ ├── EditProfileActivity.kt
│ │ │ │ ├── EditProfileAdapter.kt
│ │ │ │ └── EditProfileViewModel.kt
│ │ │ └── page
│ │ │ │ ├── friend
│ │ │ │ ├── UserFriendAdapter.kt
│ │ │ │ ├── UserFriendFragment.kt
│ │ │ │ └── UserFriendViewModel.kt
│ │ │ │ ├── group
│ │ │ │ └── UserGroupFragment.kt
│ │ │ │ ├── index
│ │ │ │ └── UserIndexFragment.kt
│ │ │ │ └── save
│ │ │ │ ├── SaveListAdapter.kt
│ │ │ │ ├── SaveListFragment.kt
│ │ │ │ └── SaveListViewModel.kt
│ │ │ ├── rakuen
│ │ │ ├── RakuenAdapter.kt
│ │ │ ├── RakuenFragment.kt
│ │ │ ├── RakuenViewModel.kt
│ │ │ └── page
│ │ │ │ ├── RakuenPageAdapter.kt
│ │ │ │ ├── RakuenPageFragment.kt
│ │ │ │ └── RakuenPageViewModel.kt
│ │ │ └── timeline
│ │ │ ├── TimelineAdapter.kt
│ │ │ ├── TimelineFragment.kt
│ │ │ ├── TimelineViewModel.kt
│ │ │ ├── detail
│ │ │ ├── TimelineDetailActivity.kt
│ │ │ ├── TimelineDetailAdapter.kt
│ │ │ └── TimelineDetailViewModel.kt
│ │ │ └── page
│ │ │ ├── TimelinePageAdapter.kt
│ │ │ ├── TimelinePageFragment.kt
│ │ │ └── TimelinePageViewModel.kt
│ └── res
│ │ ├── layout
│ │ ├── activity_almanac_item.xml
│ │ ├── activity_anime_gallery.xml
│ │ ├── activity_anime_gallery_item.xml
│ │ ├── activity_anime_pictures.xml
│ │ ├── activity_block_item.xml
│ │ ├── activity_blog.xml
│ │ ├── activity_collection_item.xml
│ │ ├── activity_detect_anime_result.xml
│ │ ├── activity_detect_anime_result_item.xml
│ │ ├── activity_detect_base.xml
│ │ ├── activity_detect_character_result.xml
│ │ ├── activity_detect_character_result_item.xml
│ │ ├── activity_dollars_item.xml
│ │ ├── activity_edit_profile.xml
│ │ ├── activity_edit_profile_avatar.xml
│ │ ├── activity_edit_profile_input.xml
│ │ ├── activity_edit_profile_selector.xml
│ │ ├── activity_empty_container.xml
│ │ ├── activity_friend_rank.xml
│ │ ├── activity_group_detail.xml
│ │ ├── activity_group_detail_item.xml
│ │ ├── activity_home.xml
│ │ ├── activity_home_robot.xml
│ │ ├── activity_index_detail.xml
│ │ ├── activity_list.xml
│ │ ├── activity_magi.xml
│ │ ├── activity_magnet.xml
│ │ ├── activity_magnet_api.xml
│ │ ├── activity_magnet_item.xml
│ │ ├── activity_main.xml
│ │ ├── activity_media_detail.xml
│ │ ├── activity_media_detail_header.xml
│ │ ├── activity_media_preview_item.xml
│ │ ├── activity_media_score.xml
│ │ ├── activity_message_detail_input.xml
│ │ ├── activity_message_detail_item.xml
│ │ ├── activity_mikan_item.xml
│ │ ├── activity_musume.xml
│ │ ├── activity_notify_item.xml
│ │ ├── activity_person.xml
│ │ ├── activity_post_topic.xml
│ │ ├── activity_preview.xml
│ │ ├── activity_preview_bbcode.xml
│ │ ├── activity_preview_page.xml
│ │ ├── activity_privacy_item.xml
│ │ ├── activity_schedule.xml
│ │ ├── activity_scheme.xml
│ │ ├── activity_search.xml
│ │ ├── activity_search_bar.xml
│ │ ├── activity_search_detail.xml
│ │ ├── activity_search_detail_item.xml
│ │ ├── activity_search_detail_tag.xml
│ │ ├── activity_search_item.xml
│ │ ├── activity_setting.xml
│ │ ├── activity_setting_github.xml
│ │ ├── activity_setting_robot.xml
│ │ ├── activity_setting_tab.xml
│ │ ├── activity_setting_translate.xml
│ │ ├── activity_setting_ui.xml
│ │ ├── activity_sign_in.xml
│ │ ├── activity_sign_up.xml
│ │ ├── activity_sign_up_action.xml
│ │ ├── activity_sign_up_verify.xml
│ │ ├── activity_subtitle_tool.xml
│ │ ├── activity_summary.xml
│ │ ├── activity_syncer.xml
│ │ ├── activity_syncer_item.xml
│ │ ├── activity_syncer_list_dialog.xml
│ │ ├── activity_thunder.xml
│ │ ├── activity_timeline_detail_header.xml
│ │ ├── activity_timeline_detail_item.xml
│ │ ├── activity_topic.xml
│ │ ├── activity_torrent_info_item.xml
│ │ ├── activity_torrent_info_nav.xml
│ │ ├── activity_user.xml
│ │ ├── activity_user_bg.xml
│ │ ├── activity_user_bg_item.xml
│ │ ├── activity_user_container.xml
│ │ ├── activity_web.xml
│ │ ├── activity_yuc.xml
│ │ ├── activity_yuc_detail_item.xml
│ │ ├── activity_yuc_item.xml
│ │ ├── activity_yuc_item_bak.xml
│ │ ├── fragment_blog.xml
│ │ ├── fragment_blog_item.xml
│ │ ├── fragment_discover.xml
│ │ ├── fragment_discover_page.xml
│ │ ├── fragment_empty.xml
│ │ ├── fragment_friend.xml
│ │ ├── fragment_group.xml
│ │ ├── fragment_group_item.xml
│ │ ├── fragment_group_topic.xml
│ │ ├── fragment_group_topic_item.xml
│ │ ├── fragment_home.xml
│ │ ├── fragment_home_banner.xml
│ │ ├── fragment_home_banner_feature.xml
│ │ ├── fragment_home_banner_image.xml
│ │ ├── fragment_home_calendar.xml
│ │ ├── fragment_index_attach_item.xml
│ │ ├── fragment_index_grid.xml
│ │ ├── fragment_index_item.xml
│ │ ├── fragment_list.xml
│ │ ├── fragment_list_stub.xml
│ │ ├── fragment_magi_history_item.xml
│ │ ├── fragment_magi_question.xml
│ │ ├── fragment_magi_question_item.xml
│ │ ├── fragment_magi_question_last.xml
│ │ ├── fragment_magi_rank.xml
│ │ ├── fragment_media.xml
│ │ ├── fragment_media_action.xml
│ │ ├── fragment_media_action_ep.xml
│ │ ├── fragment_media_action_index.xml
│ │ ├── fragment_media_board_item.xml
│ │ ├── fragment_media_chapter_item.xml
│ │ ├── fragment_media_character_item.xml
│ │ ├── fragment_media_chart.xml
│ │ ├── fragment_media_comment_item.xml
│ │ ├── fragment_media_maker_item.xml
│ │ ├── fragment_media_option.xml
│ │ ├── fragment_media_option_item.xml
│ │ ├── fragment_media_option_title.xml
│ │ ├── fragment_media_page.xml
│ │ ├── fragment_media_page_item.xml
│ │ ├── fragment_media_review_item.xml
│ │ ├── fragment_media_score_item.xml
│ │ ├── fragment_overview.xml
│ │ ├── fragment_overview_book.xml
│ │ ├── fragment_overview_book_item.xml
│ │ ├── fragment_overview_character.xml
│ │ ├── fragment_overview_character_item.xml
│ │ ├── fragment_overview_comment.xml
│ │ ├── fragment_overview_ep.xml
│ │ ├── fragment_overview_ep_progress.xml
│ │ ├── fragment_overview_preview.xml
│ │ ├── fragment_overview_preview_item.xml
│ │ ├── fragment_overview_rating.xml
│ │ ├── fragment_overview_relative.xml
│ │ ├── fragment_overview_relative_item.xml
│ │ ├── fragment_overview_save.xml
│ │ ├── fragment_overview_tag.xml
│ │ ├── fragment_overview_tag_item.xml
│ │ ├── fragment_overview_tour_item.xml
│ │ ├── fragment_person_collect_item.xml
│ │ ├── fragment_person_cooperate_item.xml
│ │ ├── fragment_person_overview.xml
│ │ ├── fragment_person_overview_grid.xml
│ │ ├── fragment_person_overview_grid_item.xml
│ │ ├── fragment_person_overview_list.xml
│ │ ├── fragment_person_overview_list_character.xml
│ │ ├── fragment_person_overview_list_opus.xml
│ │ ├── fragment_person_overview_list_voice.xml
│ │ ├── fragment_process.xml
│ │ ├── fragment_process_item.xml
│ │ ├── fragment_profile.xml
│ │ ├── fragment_profile_page.xml
│ │ ├── fragment_profile_page_item.xml
│ │ ├── fragment_save_list_item.xml
│ │ ├── fragment_schedule_page_item.xml
│ │ ├── fragment_super.xml
│ │ ├── fragment_super_page.xml
│ │ ├── fragment_super_page_item.xml
│ │ ├── fragment_thunder_dialog.xml
│ │ ├── fragment_thunder_task_item.xml
│ │ ├── fragment_timeline.xml
│ │ ├── fragment_timeline_page.xml
│ │ ├── fragment_timeline_page_grid.xml
│ │ ├── fragment_timeline_page_media.xml
│ │ ├── fragment_timeline_page_text.xml
│ │ ├── fragment_user_chart.xml
│ │ ├── fragment_user_friend_item.xml
│ │ ├── fragment_user_overview.xml
│ │ ├── fragment_user_overview_item.xml
│ │ ├── fragment_user_overview_title.xml
│ │ ├── fragment_user_sign.xml
│ │ └── fragment_wiki.xml
│ │ ├── menu
│ │ └── bottom_nav_menu.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher_0.xml
│ │ ├── ic_launcher_0_round.xml
│ │ ├── ic_launcher_1.xml
│ │ ├── ic_launcher_1_round.xml
│ │ ├── ic_launcher_2.xml
│ │ └── ic_launcher_2_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher_0_foreground.webp
│ │ ├── ic_launcher_0_round.webp
│ │ ├── ic_launcher_1_foreground.webp
│ │ ├── ic_launcher_1_round.webp
│ │ ├── ic_launcher_2_foreground.webp
│ │ └── ic_launcher_2_round.webp
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher_0_foreground.webp
│ │ ├── ic_launcher_0_round.webp
│ │ ├── ic_launcher_1_foreground.webp
│ │ ├── ic_launcher_1_round.webp
│ │ ├── ic_launcher_2_foreground.webp
│ │ └── ic_launcher_2_round.webp
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher_0_foreground.webp
│ │ ├── ic_launcher_0_round.webp
│ │ ├── ic_launcher_1_foreground.webp
│ │ ├── ic_launcher_1_round.webp
│ │ ├── ic_launcher_2_foreground.webp
│ │ └── ic_launcher_2_round.webp
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher_0_foreground.webp
│ │ ├── ic_launcher_0_round.webp
│ │ ├── ic_launcher_1_foreground.webp
│ │ ├── ic_launcher_1_round.webp
│ │ ├── ic_launcher_2_foreground.webp
│ │ └── ic_launcher_2_round.webp
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher_0_foreground.webp
│ │ ├── ic_launcher_0_round.webp
│ │ ├── ic_launcher_1_foreground.webp
│ │ ├── ic_launcher_1_round.webp
│ │ ├── ic_launcher_2_foreground.webp
│ │ └── ic_launcher_2_round.webp
│ │ ├── values-night
│ │ └── themes.xml
│ │ ├── values
│ │ ├── colors.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── app_anime_calendar_widget_info.xml
│ │ ├── app_backup_rules.xml
│ │ └── app_data_extraction_rules.xml
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── bangumi
│ └── ExampleUnitTest.kt
├── build.gradle.kts
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── keystore
├── bangumi.keystore
├── encryption_public_key.pem
├── key.sh
├── output.zip
├── pepk.jar
└── why.keystore
├── lib-common
├── .gitignore
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
├── schemas
│ ├── com.xiaoyv.common.database.BgmDatabase
│ │ ├── 2.json
│ │ ├── 3.json
│ │ ├── 4.json
│ │ ├── 5.json
│ │ └── 6.json
│ └── com.xiaoyv.common.database.BgmDatabaseRemote
│ │ ├── 2.json
│ │ ├── 3.json
│ │ ├── 4.json
│ │ ├── 5.json
│ │ └── 6.json
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── common
│ │ ├── DouBanTest.kt
│ │ ├── DoubanWebRequest.kt
│ │ ├── ExampleInstrumentedTest.kt
│ │ └── api
│ │ └── SignHelper.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── bangumi_musume_2d
│ │ │ ├── bangumi_musume_2d.1024
│ │ │ │ └── texture_00.png
│ │ │ ├── bangumi_musume_2d.cdi3.json
│ │ │ ├── bangumi_musume_2d.moc3
│ │ │ ├── bangumi_musume_2d.model3.json
│ │ │ ├── motion
│ │ │ │ ├── anger.motion3.json
│ │ │ │ ├── curious.motion3.json
│ │ │ │ ├── doubt.motion3.json
│ │ │ │ ├── idle.motion3.json
│ │ │ │ ├── smile.motion3.json
│ │ │ │ ├── sorrow.motion3.json
│ │ │ │ ├── suprise.motion3.json
│ │ │ │ └── think.motion3.json
│ │ │ └── sounds
│ │ │ │ ├── wave29.wav
│ │ │ │ ├── wave30.wav
│ │ │ │ ├── wave31.wav
│ │ │ │ ├── wave32.wav
│ │ │ │ ├── wave33.wav
│ │ │ │ ├── wave34.wav
│ │ │ │ ├── wave35.wav
│ │ │ │ ├── wave36.wav
│ │ │ │ ├── wave37.wav
│ │ │ │ ├── wave38.wav
│ │ │ │ ├── wave39.wav
│ │ │ │ ├── wave40.wav
│ │ │ │ ├── wave41.wav
│ │ │ │ ├── wave42.wav
│ │ │ │ ├── wave43.wav
│ │ │ │ ├── wave44.wav
│ │ │ │ ├── wave45.wav
│ │ │ │ ├── wave46.wav
│ │ │ │ ├── wave47.wav
│ │ │ │ ├── wave48.wav
│ │ │ │ ├── wave49.wav
│ │ │ │ ├── wave50.wav
│ │ │ │ ├── wave51.wav
│ │ │ │ ├── wave52.wav
│ │ │ │ ├── wave53.wav
│ │ │ │ ├── wave54.wav
│ │ │ │ ├── wave55.wav
│ │ │ │ ├── wave56.wav
│ │ │ │ ├── wave57.wav
│ │ │ │ ├── wave58.wav
│ │ │ │ ├── wave59.wav
│ │ │ │ └── wave60.wav
│ │ ├── config
│ │ │ ├── media.js
│ │ │ ├── media.options.json
│ │ │ ├── mikan
│ │ │ │ └── mikan.json
│ │ │ └── smiles
│ │ │ │ └── helper
│ │ │ │ ├── download.sh
│ │ │ │ ├── rename.sh
│ │ │ │ └── url.txt
│ │ ├── image
│ │ │ ├── ic_donation.jpg
│ │ │ └── info_only.jpg
│ │ ├── js
│ │ │ ├── dollars.js
│ │ │ └── like.json
│ │ └── lottie
│ │ │ └── lottie_loading.json
│ ├── java
│ │ └── com
│ │ │ └── xiaoyv
│ │ │ └── common
│ │ │ ├── MainApp.kt
│ │ │ ├── api
│ │ │ ├── BgmApiManager.kt
│ │ │ ├── api
│ │ │ │ ├── BgmJsonApi.kt
│ │ │ │ └── BgmWebApi.kt
│ │ │ ├── converter
│ │ │ │ ├── WebDocumentConverter.kt
│ │ │ │ └── WebHtmlConverter.kt
│ │ │ ├── dns
│ │ │ │ └── BgmDns.kt
│ │ │ ├── exception
│ │ │ │ ├── NeedConfigException.kt
│ │ │ │ └── NeedLoginException.kt
│ │ │ ├── interceptor
│ │ │ │ ├── CommonInterceptor.kt
│ │ │ │ ├── CookieInterceptor.kt
│ │ │ │ ├── DouBanInterceptor.kt
│ │ │ │ └── JsonAuthInterceptor.kt
│ │ │ ├── parser
│ │ │ │ ├── Parser.kt
│ │ │ │ ├── entity
│ │ │ │ │ ├── BgmMediaEntity.kt
│ │ │ │ │ ├── BlockEntity.kt
│ │ │ │ │ ├── BlogDetailEntity.kt
│ │ │ │ │ ├── BlogEntity.kt
│ │ │ │ │ ├── BrowserEntity.kt
│ │ │ │ │ ├── CharacterEntity.kt
│ │ │ │ │ ├── CommentFormEntity.kt
│ │ │ │ │ ├── CommentTreeEntity.kt
│ │ │ │ │ ├── CreatePostEntity.kt
│ │ │ │ │ ├── DollarsEntity.kt
│ │ │ │ │ ├── FriendEntity.kt
│ │ │ │ │ ├── GroupDetailEntity.kt
│ │ │ │ │ ├── GroupIndexEntity.kt
│ │ │ │ │ ├── HomeIndexBannerEntity.kt
│ │ │ │ │ ├── HomeIndexCalendarEntity.kt
│ │ │ │ │ ├── HomeIndexCardEntity.kt
│ │ │ │ │ ├── HomeIndexEntity.kt
│ │ │ │ │ ├── IndexAttachEntity.kt
│ │ │ │ │ ├── IndexDetailEntity.kt
│ │ │ │ │ ├── IndexEntity.kt
│ │ │ │ │ ├── IndexItemEntity.kt
│ │ │ │ │ ├── LikeEntity.kt
│ │ │ │ │ ├── MagiQuestionEntity.kt
│ │ │ │ │ ├── MagiRankEntity.kt
│ │ │ │ │ ├── MediaBoardEntity.kt
│ │ │ │ │ ├── MediaCharacterEntity.kt
│ │ │ │ │ ├── MediaCollectForm.kt
│ │ │ │ │ ├── MediaCommentEntity.kt
│ │ │ │ │ ├── MediaDetailEntity.kt
│ │ │ │ │ ├── MediaMakerEntity.kt
│ │ │ │ │ ├── MediaReviewBlogEntity.kt
│ │ │ │ │ ├── MediaScoreEntity.kt
│ │ │ │ │ ├── MediaStatsEntity.kt
│ │ │ │ │ ├── MessageCountEntity.kt
│ │ │ │ │ ├── MessageEntity.kt
│ │ │ │ │ ├── MikanEntity.kt
│ │ │ │ │ ├── MonoEntity.kt
│ │ │ │ │ ├── NotifyEntity.kt
│ │ │ │ │ ├── PersonEntity.kt
│ │ │ │ │ ├── PrivacyEntity.kt
│ │ │ │ │ ├── ReportEntity.kt
│ │ │ │ │ ├── SampleRelatedEntity.kt
│ │ │ │ │ ├── SearchResultEntity.kt
│ │ │ │ │ ├── SettingBaseEntity.kt
│ │ │ │ │ ├── SignInFormEntity.kt
│ │ │ │ │ ├── SignInResultEntity.kt
│ │ │ │ │ ├── SignUpResultEntity.kt
│ │ │ │ │ ├── SignUpVerifyEntity.kt
│ │ │ │ │ ├── SuperTopicEntity.kt
│ │ │ │ │ ├── TimelineDetailEntity.kt
│ │ │ │ │ ├── TimelineEntity.kt
│ │ │ │ │ ├── TimelineReplyEntity.kt
│ │ │ │ │ ├── TopicDetailEntity.kt
│ │ │ │ │ ├── TopicSampleEntity.kt
│ │ │ │ │ └── UserDetailEntity.kt
│ │ │ │ └── impl
│ │ │ │ │ ├── BlockParser.kt
│ │ │ │ │ ├── BlogParser.kt
│ │ │ │ │ ├── BrowserParser.kt
│ │ │ │ │ ├── CommentParser.kt
│ │ │ │ │ ├── DollarsParser.kt
│ │ │ │ │ ├── FriendParser.kt
│ │ │ │ │ ├── GroupParser.kt
│ │ │ │ │ ├── HomeParser.kt
│ │ │ │ │ ├── IndexParser.kt
│ │ │ │ │ ├── MagiParser.kt
│ │ │ │ │ ├── MediaDetailParser.kt
│ │ │ │ │ ├── MediaScoreParser.kt
│ │ │ │ │ ├── MessageParser.kt
│ │ │ │ │ ├── MikanParser.kt
│ │ │ │ │ ├── MonoParser.kt
│ │ │ │ │ ├── NotifyParser.kt
│ │ │ │ │ ├── PersonParser.kt
│ │ │ │ │ ├── ReportParser.kt
│ │ │ │ │ ├── SearchParser.kt
│ │ │ │ │ ├── SettingParser.kt
│ │ │ │ │ ├── SignInParser.kt
│ │ │ │ │ ├── SignUpParser.kt
│ │ │ │ │ ├── SuperParser.kt
│ │ │ │ │ ├── TagParser.kt
│ │ │ │ │ ├── TimeParser.kt
│ │ │ │ │ ├── TopicParser.kt
│ │ │ │ │ └── UserParser.kt
│ │ │ ├── request
│ │ │ │ ├── CreateTokenParam.kt
│ │ │ │ ├── EmojiParam.kt
│ │ │ │ ├── EpCollectParam.kt
│ │ │ │ ├── GithubUpdateParam.kt
│ │ │ │ ├── MicrosoftTranslateParam.kt
│ │ │ │ ├── SubjectCollectParam.kt
│ │ │ │ └── SyncNameParam.kt
│ │ │ └── response
│ │ │ │ ├── AuthStatusEntity.kt
│ │ │ │ ├── AuthTokenEntity.kt
│ │ │ │ ├── BaiduTranslateEntity.kt
│ │ │ │ ├── BgmStatusEntity.kt
│ │ │ │ ├── GalleryEntity.kt
│ │ │ │ ├── GithubActionEntity.kt
│ │ │ │ ├── GithubContent.kt
│ │ │ │ ├── GithubLatestEntity.kt
│ │ │ │ ├── GithubPutEntity.kt
│ │ │ │ ├── MediaJsonEntity.kt
│ │ │ │ ├── MicrosoftJwtPayload.kt
│ │ │ │ ├── MicrosoftTranslateEntity.kt
│ │ │ │ ├── NotifyEntity.kt
│ │ │ │ ├── ReplyResultEntity.kt
│ │ │ │ ├── SearchApiIndexEntity.kt
│ │ │ │ ├── SearchApiTopicEntity.kt
│ │ │ │ ├── UploadResultEntity.kt
│ │ │ │ ├── UserEntity.kt
│ │ │ │ ├── anime
│ │ │ │ ├── AnimeBilibiliEntity.kt
│ │ │ │ ├── AnimeMagnetEntity.kt
│ │ │ │ ├── AnimeMagnetTypeEntity.kt
│ │ │ │ ├── AnimeMalSearchEntity.kt
│ │ │ │ ├── AnimeSourceEntity.kt
│ │ │ │ ├── AnimeSyncEntity.kt
│ │ │ │ ├── AnimeTourEntity.kt
│ │ │ │ ├── DetectCharacterEntity.kt
│ │ │ │ ├── ImageBooruEntity.kt
│ │ │ │ ├── ImageGalleryEntity.kt
│ │ │ │ └── ListParcelableWrapEntity.kt
│ │ │ │ ├── api
│ │ │ │ ├── ApiCalendarEntity.kt
│ │ │ │ ├── ApiCharacterEntity.kt
│ │ │ │ ├── ApiCollectionEntity.kt
│ │ │ │ ├── ApiEpisodeEntity.kt
│ │ │ │ ├── ApiSubjectEntity.kt
│ │ │ │ ├── ApiUserEntity.kt
│ │ │ │ └── ApiUserEpEntity.kt
│ │ │ │ ├── base
│ │ │ │ ├── BaseListResponse.kt
│ │ │ │ ├── BasePage.kt
│ │ │ │ ├── BaseResponse.kt
│ │ │ │ └── BgmActionResponse.kt
│ │ │ │ └── douban
│ │ │ │ ├── DouBanImageEntity.kt
│ │ │ │ ├── DouBanInterestEntity.kt
│ │ │ │ ├── DouBanPhotoEntity.kt
│ │ │ │ ├── DouBanSearchEntity.kt
│ │ │ │ └── DouBanSuggestEntity.kt
│ │ │ ├── config
│ │ │ ├── GlobalConfig.kt
│ │ │ ├── annotation
│ │ │ │ ├── BgmPathType.kt
│ │ │ │ ├── BilibiliInterestType.kt
│ │ │ │ ├── BilibiliMediaType.kt
│ │ │ │ ├── BrowserSortType.kt
│ │ │ │ ├── DiscoverType.kt
│ │ │ │ ├── DouBanInterestType.kt
│ │ │ │ ├── DouBanMediaType.kt
│ │ │ │ ├── EpAbbrType.kt
│ │ │ │ ├── EpCollectPathType.kt
│ │ │ │ ├── EpCollectType.kt
│ │ │ │ ├── FeatureType.kt
│ │ │ │ ├── FormInputType.kt
│ │ │ │ ├── IndexAttachCatType.kt
│ │ │ │ ├── IndexTabCatType.kt
│ │ │ │ ├── InterestCollectType.kt
│ │ │ │ ├── InterestType.kt
│ │ │ │ ├── LikeType.kt
│ │ │ │ ├── LocalCollectionType.kt
│ │ │ │ ├── MagiTabType.kt
│ │ │ │ ├── MagiType.kt
│ │ │ │ ├── MediaDetailType.kt
│ │ │ │ ├── MediaType.kt
│ │ │ │ ├── MessageBoxType.kt
│ │ │ │ ├── MonoQuery.kt
│ │ │ │ ├── PersonTabType.kt
│ │ │ │ ├── PrivacyType.kt
│ │ │ │ ├── ProfileType.kt
│ │ │ │ ├── ReportType.kt
│ │ │ │ ├── ScoreStarType.kt
│ │ │ │ ├── SearchApiType.kt
│ │ │ │ ├── SearchCatType.kt
│ │ │ │ ├── SearchType.kt
│ │ │ │ ├── SubjectCollectType.kt
│ │ │ │ ├── SubjectType.kt
│ │ │ │ ├── SubtitleActionType.kt
│ │ │ │ ├── SuperType.kt
│ │ │ │ ├── ThunderTabType.kt
│ │ │ │ ├── TimelinePageType.kt
│ │ │ │ ├── TimelineType.kt
│ │ │ │ ├── TopicTimeType.kt
│ │ │ │ ├── TopicType.kt
│ │ │ │ └── UserCenterType.kt
│ │ │ ├── bean
│ │ │ │ ├── AdapterTypeItem.kt
│ │ │ │ ├── AlmanacEntity.kt
│ │ │ │ ├── FilterEntity.kt
│ │ │ │ ├── HomeIndexFeature.kt
│ │ │ │ ├── MediaOptionConfig.kt
│ │ │ │ ├── PostAttach.kt
│ │ │ │ ├── SampleImageEntity.kt
│ │ │ │ ├── SearchItem.kt
│ │ │ │ ├── SubtitleResult.kt
│ │ │ │ ├── TaskInfoEntity.kt
│ │ │ │ ├── TorrentInfoWrap.kt
│ │ │ │ ├── WrapData.kt
│ │ │ │ ├── YucSectionEntity.kt
│ │ │ │ └── tab
│ │ │ │ │ ├── DiscoverTab.kt
│ │ │ │ │ ├── HomeBottomTab.kt
│ │ │ │ │ ├── IndexDetailAttachTab.kt
│ │ │ │ │ ├── MagiTab.kt
│ │ │ │ │ ├── MediaDetailTab.kt
│ │ │ │ │ ├── MediaScoreTab.kt
│ │ │ │ │ ├── MediaTab.kt
│ │ │ │ │ ├── PersonTab.kt
│ │ │ │ │ ├── ProcessTab.kt
│ │ │ │ │ ├── ProfileTab.kt
│ │ │ │ │ ├── SearchTab.kt
│ │ │ │ │ ├── SuperTopicTab.kt
│ │ │ │ │ ├── ThunderTab.kt
│ │ │ │ │ ├── TimelineTab.kt
│ │ │ │ │ └── UserCenterTab.kt
│ │ │ └── glide
│ │ │ │ ├── OkHttpProgressGlideModule.kt
│ │ │ │ ├── ProgressTarget.kt
│ │ │ │ └── WrappingTarget.kt
│ │ │ ├── database
│ │ │ ├── BgmDatabase.kt
│ │ │ ├── BgmDatabaseManager.kt
│ │ │ ├── BgmDatabaseRemote.kt
│ │ │ ├── collection
│ │ │ │ ├── Collection.kt
│ │ │ │ └── CollectionDao.kt
│ │ │ ├── friendly
│ │ │ │ ├── FriendlyRank.kt
│ │ │ │ ├── FriendlyRankDao.kt
│ │ │ │ └── FriendlyStatus.kt
│ │ │ └── subject
│ │ │ │ ├── SubjectItem.kt
│ │ │ │ └── SubjectItemDao.kt
│ │ │ ├── helper
│ │ │ ├── ActionHelper.kt
│ │ │ ├── AudioPlayer.kt
│ │ │ ├── BBCodeHelper.kt
│ │ │ ├── CacheHelper.kt
│ │ │ ├── CollectionHelper.kt
│ │ │ ├── CommentPaginationHelper.kt
│ │ │ ├── CommentTreeAdapter.kt
│ │ │ ├── ConfigHelper.kt
│ │ │ ├── FixHelper.kt
│ │ │ ├── FullQueryHelper.kt
│ │ │ ├── H5PreLoadHelper.kt
│ │ │ ├── ImageHelper.kt
│ │ │ ├── ImageProcessor.kt
│ │ │ ├── MenuHelper.kt
│ │ │ ├── MiKanHelper.kt
│ │ │ ├── NotifyHelper.kt
│ │ │ ├── PositionCropTransformation.kt
│ │ │ ├── ReflectHelper.kt
│ │ │ ├── SegmentHelper.kt
│ │ │ ├── SpConfig.kt
│ │ │ ├── SyncerHelper.kt
│ │ │ ├── UpdateHelper.kt
│ │ │ ├── UserHelper.kt
│ │ │ ├── UserTokenHelper.kt
│ │ │ ├── VolumeButtonHelper.kt
│ │ │ ├── blur
│ │ │ │ ├── BlurTransformation.java
│ │ │ │ └── FastBlur.java
│ │ │ ├── callback
│ │ │ │ ├── AutoHideTitleListener.kt
│ │ │ │ ├── IdDiffItemCallback.kt
│ │ │ │ ├── InterceptTouchListener.kt
│ │ │ │ ├── RecyclerItemTouchedListener.kt
│ │ │ │ ├── SimpleTabSelectedListener.kt
│ │ │ │ ├── SubsamplingEventListener.kt
│ │ │ │ ├── SubsamplingTarget.kt
│ │ │ │ └── ThemeActivityLifecycleCallback.kt
│ │ │ ├── theme
│ │ │ │ ├── ThemeHelper.kt
│ │ │ │ └── ThemeType.kt
│ │ │ └── work
│ │ │ │ └── IdleWorker.kt
│ │ │ ├── kts
│ │ │ ├── AdapterKt.kt
│ │ │ ├── AnimeKt.kt
│ │ │ ├── BitmapKt.kt
│ │ │ ├── BottomNavViewKt.kt
│ │ │ ├── CommonKt.kt
│ │ │ ├── ContextKt.kt
│ │ │ ├── DateKt.kt
│ │ │ ├── DialogKts.kt
│ │ │ ├── FileExtensionKts.kt
│ │ │ ├── FitSystemKt.kt
│ │ │ ├── HttpKts.kt
│ │ │ ├── ImageViewKt.kt
│ │ │ ├── LayzKt.kt
│ │ │ ├── LiveDataKt.kt
│ │ │ ├── LogKt.kt
│ │ │ ├── PermissionKt.kt
│ │ │ ├── RegexKt.kt
│ │ │ ├── SnackKts.kt
│ │ │ ├── StringKt.kt
│ │ │ ├── TextViewKt.kt
│ │ │ ├── ToolbarKt.kt
│ │ │ └── UriKt.kt
│ │ │ └── widget
│ │ │ ├── appbar
│ │ │ ├── AnimeAppBarLayout.kt
│ │ │ ├── AnimeCollapsingToolbarLayout.kt
│ │ │ └── AnimeToolbar.kt
│ │ │ ├── button
│ │ │ └── AnimeButton.kt
│ │ │ ├── card
│ │ │ └── HomeCardView.kt
│ │ │ ├── decoration
│ │ │ └── GridItemDecoration.java
│ │ │ ├── dialog
│ │ │ ├── AnimeLoadingDialog.kt
│ │ │ ├── AnimeReportDialog.kt
│ │ │ └── filter
│ │ │ │ ├── FilterHeaderAdapter.kt
│ │ │ │ └── FilterOptionDialog.kt
│ │ │ ├── emoji
│ │ │ ├── UiFaceManager.kt
│ │ │ ├── edit
│ │ │ │ ├── UiFaceCache.kt
│ │ │ │ ├── UiFaceEditView.kt
│ │ │ │ └── UiFaceTextView.kt
│ │ │ ├── format
│ │ │ │ └── FormatGridView.kt
│ │ │ ├── grid
│ │ │ │ ├── UiFaceGridView.kt
│ │ │ │ └── UiFacePanel.kt
│ │ │ └── span
│ │ │ │ ├── IUiFaceTouchSpan.kt
│ │ │ │ ├── UiFaceEditSpan.kt
│ │ │ │ └── UiFaceTouchSpan.kt
│ │ │ ├── grid
│ │ │ ├── EpGridHelper.kt
│ │ │ ├── EpGridHorItemAdapter.kt
│ │ │ ├── EpGridVerItemAdapter.kt
│ │ │ └── EpGridView.kt
│ │ │ ├── image
│ │ │ ├── AnimeGridImageView.kt
│ │ │ ├── AnimeImageView.kt
│ │ │ └── AnimeMikanImageView.kt
│ │ │ ├── layout
│ │ │ └── AnimeConstraintLayout.kt
│ │ │ ├── menu
│ │ │ ├── AnimeSectionView.kt
│ │ │ └── SlideMenuView.kt
│ │ │ ├── musume
│ │ │ ├── LAppDefine.java
│ │ │ ├── LAppDelegate.java
│ │ │ ├── LAppLive2DManager.java
│ │ │ ├── LAppModel.java
│ │ │ ├── LAppMusumeView.kt
│ │ │ ├── LAppPal.java
│ │ │ ├── LAppSprite.java
│ │ │ ├── LAppTextureManager.java
│ │ │ ├── LAppView.java
│ │ │ ├── LAppWavFileHandler.kt
│ │ │ └── TouchManager.java
│ │ │ ├── progress
│ │ │ └── AnimeEpProgressView.kt
│ │ │ ├── reply
│ │ │ ├── ReplyCommentDialog.kt
│ │ │ └── ReplyCommentViewModel.kt
│ │ │ ├── scroll
│ │ │ ├── AnimeLinearLayoutManager.kt
│ │ │ ├── AnimeNestedScrollView.kt
│ │ │ └── AnimeRecyclerView.kt
│ │ │ ├── setting
│ │ │ ├── DashedLineView.kt
│ │ │ ├── SearchOptionView.kt
│ │ │ └── SettingItemView.kt
│ │ │ ├── star
│ │ │ ├── AnimeLineChartViw.kt
│ │ │ └── AnimeRatingBar.kt
│ │ │ ├── state
│ │ │ ├── AnimeChartTipView.kt
│ │ │ ├── AnimeGridStateView.kt
│ │ │ ├── AnimeStateView.kt
│ │ │ └── AnimeSummaryView.kt
│ │ │ ├── text
│ │ │ ├── AnimeEditTextView.kt
│ │ │ └── AnimeTextView.kt
│ │ │ └── web
│ │ │ ├── WebBase.kt
│ │ │ ├── WebConfig.kt
│ │ │ ├── WebEmojiListener.kt
│ │ │ ├── WebResourceInterceptor.kt
│ │ │ └── page
│ │ │ ├── BBCodeView.kt
│ │ │ ├── BlogView.kt
│ │ │ └── TopicView.kt
│ └── res
│ │ ├── drawable-xxhdpi
│ │ ├── bg_login.webp
│ │ ├── bg_new_anime_autumn.jpg
│ │ ├── bg_new_anime_spring.jpg
│ │ ├── bg_new_anime_summer.jpg
│ │ ├── bg_new_anime_winter.jpg
│ │ ├── ic_balloon_pink.9.png
│ │ ├── ic_emoji.png
│ │ ├── ic_emoji_blank.webp
│ │ ├── ic_logo_banner.png
│ │ ├── segment_0.png
│ │ ├── segment_1.png
│ │ ├── segment_2.png
│ │ ├── segment_3.png
│ │ ├── segment_4.png
│ │ ├── segment_5.png
│ │ └── segment_6.png
│ │ ├── drawable
│ │ ├── ic_action_menu.xml
│ │ ├── ic_add.xml
│ │ ├── ic_add_circle.xml
│ │ ├── ic_add_comment.xml
│ │ ├── ic_add_friend.xml
│ │ ├── ic_add_index.xml
│ │ ├── ic_align_top.xml
│ │ ├── ic_arrow_down.xml
│ │ ├── ic_bookmark_add.xml
│ │ ├── ic_bookmark_added.xml
│ │ ├── ic_bottom_group.xml
│ │ ├── ic_bottom_home.xml
│ │ ├── ic_bottom_profile.xml
│ │ ├── ic_bottom_rank.xml
│ │ ├── ic_bottom_timeline.xml
│ │ ├── ic_calendar.xml
│ │ ├── ic_chat.xml
│ │ ├── ic_close.xml
│ │ ├── ic_collect_to.xml
│ │ ├── ic_comment.xml
│ │ ├── ic_comment_count.xml
│ │ ├── ic_description.xml
│ │ ├── ic_dollars.xml
│ │ ├── ic_done.xml
│ │ ├── ic_edit.xml
│ │ ├── ic_email_new.xml
│ │ ├── ic_email_normal.xml
│ │ ├── ic_file.xml
│ │ ├── ic_file_archive.xml
│ │ ├── ic_file_audio.xml
│ │ ├── ic_file_code.xml
│ │ ├── ic_file_image.xml
│ │ ├── ic_file_install.xml
│ │ ├── ic_file_office.xml
│ │ ├── ic_file_txt.xml
│ │ ├── ic_file_video.xml
│ │ ├── ic_filter.xml
│ │ ├── ic_folder.xml
│ │ ├── ic_format_bold.xml
│ │ ├── ic_format_code.xml
│ │ ├── ic_format_color.xml
│ │ ├── ic_format_emoji.xml
│ │ ├── ic_format_image.xml
│ │ ├── ic_format_italic.xml
│ │ ├── ic_format_keyboard.xml
│ │ ├── ic_format_link.xml
│ │ ├── ic_format_mask.xml
│ │ ├── ic_format_quote.xml
│ │ ├── ic_format_size.xml
│ │ ├── ic_format_strikethrough.xml
│ │ ├── ic_format_underlined.xml
│ │ ├── ic_group_add.xml
│ │ ├── ic_group_remove.xml
│ │ ├── ic_help.xml
│ │ ├── ic_history.xml
│ │ ├── ic_icon.xml
│ │ ├── ic_image_search.xml
│ │ ├── ic_location.xml
│ │ ├── ic_magi.xml
│ │ ├── ic_manage_search.xml
│ │ ├── ic_menu.xml
│ │ ├── ic_new.xml
│ │ ├── ic_notifications.xml
│ │ ├── ic_original.xml
│ │ ├── ic_person.xml
│ │ ├── ic_person_search.xml
│ │ ├── ic_play_round.xml
│ │ ├── ic_post_add.xml
│ │ ├── ic_preview.xml
│ │ ├── ic_process.xml
│ │ ├── ic_public.xml
│ │ ├── ic_public_off.xml
│ │ ├── ic_random.xml
│ │ ├── ic_refresh.xml
│ │ ├── ic_reply.xml
│ │ ├── ic_review.xml
│ │ ├── ic_right.xml
│ │ ├── ic_round_star.xml
│ │ ├── ic_rss.xml
│ │ ├── ic_save.xml
│ │ ├── ic_search.xml
│ │ ├── ic_send.xml
│ │ ├── ic_setting.xml
│ │ ├── ic_show.xml
│ │ ├── ic_star.xml
│ │ ├── ic_star_empty.xml
│ │ ├── ic_subtitles.xml
│ │ ├── ic_sync_cloud.xml
│ │ ├── ic_sync_problem.xml
│ │ ├── ic_tag.xml
│ │ ├── ic_thumb_up.xml
│ │ ├── ic_time.xml
│ │ ├── ic_timeline.xml
│ │ ├── ic_translate.xml
│ │ ├── ic_tv.xml
│ │ ├── ic_undo.xml
│ │ ├── ic_wiki.xml
│ │ ├── layer_error.xml
│ │ ├── layer_error_1x1.xml
│ │ ├── layer_error_3x4.xml
│ │ ├── selector_add.xml
│ │ ├── selector_btn_advance.xml
│ │ ├── selector_emoji.xml
│ │ ├── selector_format_menu.xml
│ │ ├── selector_format_menu_round.xml
│ │ ├── shape_bottom_edge.xml
│ │ ├── shape_bottom_edge_corner.xml
│ │ ├── shape_circle.xml
│ │ ├── shape_cover_mask.xml
│ │ ├── shape_cursor.xml
│ │ ├── shape_ep.xml
│ │ ├── shape_full_corner.xml
│ │ ├── shape_message.xml
│ │ ├── shape_no.xml
│ │ ├── shape_progress_vertical.xml
│ │ ├── shape_rank.xml
│ │ ├── shape_rank_start.xml
│ │ ├── shape_state.xml
│ │ └── shape_top_edge_corner.xml
│ │ ├── layout
│ │ ├── view_chart_grid_state.xml
│ │ ├── view_chart_tip.xml
│ │ ├── view_comment_chart.xml
│ │ ├── view_comment_item.xml
│ │ ├── view_comment_item_sub.xml
│ │ ├── view_emoji.xml
│ │ ├── view_emotion.xml
│ │ ├── view_emotion_page.xml
│ │ ├── view_emotion_page_item.xml
│ │ ├── view_ep_hor_item.xml
│ │ ├── view_ep_progress.xml
│ │ ├── view_ep_ver_item.xml
│ │ ├── view_filter.xml
│ │ ├── view_filter_dialog.xml
│ │ ├── view_filter_item.xml
│ │ ├── view_filter_process.xml
│ │ ├── view_format_item.xml
│ │ ├── view_home_card.xml
│ │ ├── view_home_card_item.xml
│ │ ├── view_home_card_mask.xml
│ │ ├── view_image_grid.xml
│ │ ├── view_index_filter.xml
│ │ ├── view_input_line_1.xml
│ │ ├── view_input_line_2.xml
│ │ ├── view_loading.xml
│ │ ├── view_menu_slide.xml
│ │ ├── view_option_item.xml
│ │ ├── view_panel_emotion.xml
│ │ ├── view_panel_more.xml
│ │ ├── view_reply_dialog.xml
│ │ ├── view_report.xml
│ │ ├── view_save_list_filter.xml
│ │ ├── view_search_api_filter.xml
│ │ ├── view_search_media_filter.xml
│ │ ├── view_search_tag_filter.xml
│ │ ├── view_section.xml
│ │ ├── view_setting_item.xml
│ │ ├── view_state.xml
│ │ ├── view_summary.xml
│ │ ├── widget_anime_calendar.xml
│ │ └── widget_anime_calendar_item.xml
│ │ ├── values-night
│ │ └── themes.xml
│ │ └── values
│ │ ├── arrays.xml
│ │ ├── attrs.xml
│ │ ├── colors-theme.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── ids.xml
│ │ ├── styles-chart.xml
│ │ ├── styles.xml
│ │ └── themes.xml
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── common
│ └── ExampleUnitTest.kt
├── lib-doc
├── .idea
│ ├── .gitignore
│ ├── modules.xml
│ ├── runConfigurations
│ │ └── Build_Bangumi_for_Android__xiaoyv_.xml
│ └── vcs.xml
├── build
│ ├── HelpTOC.json
│ ├── Map.jhm
│ ├── argument.html
│ ├── author.html
│ ├── config.json
│ ├── current.help.version
│ ├── download.html
│ ├── home.html
│ ├── images
│ │ ├── completion_procedure.png
│ │ ├── completion_procedure_dark.png
│ │ ├── convert_table_to_xml.png
│ │ ├── convert_table_to_xml_dark.png
│ │ ├── new_topic_options.png
│ │ └── new_topic_options_dark.png
│ ├── index.html
│ ├── overview.html
│ ├── preview.html
│ ├── privacy.html
│ ├── question.html
│ ├── starter.html
│ └── update.html
├── c.list
├── cfg
│ └── buildprofiles.xml
├── images
│ ├── completion_procedure.png
│ ├── completion_procedure_dark.png
│ ├── convert_table_to_xml.png
│ ├── convert_table_to_xml_dark.png
│ ├── new_topic_options.png
│ ├── new_topic_options_dark.png
│ └── playstore_badge.png
├── redirection-rules.xml
├── topics
│ ├── Argument.md
│ ├── Author.md
│ ├── Download.md
│ ├── Home.md
│ ├── Overview.md
│ ├── Preview.md
│ ├── Privacy.md
│ ├── Question.md
│ ├── Starter.md
│ └── Update.md
├── v.list
├── writerside.cfg
└── xiaoyv.tree
├── lib-emoji
├── .gitignore
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── emoji
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── xiaoyv
│ │ │ └── emoji
│ │ │ └── BgmEmoji.kt
│ └── res
│ │ └── drawable
│ │ ├── bgm_01.png
│ │ ├── bgm_02.png
│ │ ├── bgm_03.png
│ │ ├── bgm_04.png
│ │ ├── bgm_05.png
│ │ ├── bgm_06.png
│ │ ├── bgm_07.png
│ │ ├── bgm_08.png
│ │ ├── bgm_09.png
│ │ ├── bgm_10.png
│ │ ├── bgm_11.gif
│ │ ├── bgm_12.png
│ │ ├── bgm_13.png
│ │ ├── bgm_14.png
│ │ ├── bgm_15.png
│ │ ├── bgm_16.png
│ │ ├── bgm_17.png
│ │ ├── bgm_18.png
│ │ ├── bgm_19.png
│ │ ├── bgm_20.png
│ │ ├── bgm_21.png
│ │ ├── bgm_22.png
│ │ ├── bgm_23.gif
│ │ ├── normal_1.gif
│ │ ├── normal_10.gif
│ │ ├── normal_11.gif
│ │ ├── normal_12.gif
│ │ ├── normal_13.gif
│ │ ├── normal_14.gif
│ │ ├── normal_15.gif
│ │ ├── normal_16.gif
│ │ ├── normal_2.gif
│ │ ├── normal_3.gif
│ │ ├── normal_4.gif
│ │ ├── normal_5.gif
│ │ ├── normal_6.gif
│ │ ├── normal_7.gif
│ │ ├── normal_8.gif
│ │ ├── normal_9.gif
│ │ ├── tv_01.gif
│ │ ├── tv_02.gif
│ │ ├── tv_03.gif
│ │ ├── tv_04.gif
│ │ ├── tv_05.gif
│ │ ├── tv_06.gif
│ │ ├── tv_07.gif
│ │ ├── tv_08.gif
│ │ ├── tv_09.gif
│ │ ├── tv_10.gif
│ │ ├── tv_100.gif
│ │ ├── tv_101.gif
│ │ ├── tv_102.gif
│ │ ├── tv_11.gif
│ │ ├── tv_12.gif
│ │ ├── tv_13.gif
│ │ ├── tv_14.gif
│ │ ├── tv_15.gif
│ │ ├── tv_16.gif
│ │ ├── tv_17.gif
│ │ ├── tv_18.gif
│ │ ├── tv_19.gif
│ │ ├── tv_20.gif
│ │ ├── tv_21.gif
│ │ ├── tv_22.gif
│ │ ├── tv_23.gif
│ │ ├── tv_24.gif
│ │ ├── tv_25.gif
│ │ ├── tv_26.gif
│ │ ├── tv_27.gif
│ │ ├── tv_28.gif
│ │ ├── tv_29.gif
│ │ ├── tv_30.gif
│ │ ├── tv_31.gif
│ │ ├── tv_32.gif
│ │ ├── tv_33.gif
│ │ ├── tv_34.gif
│ │ ├── tv_35.gif
│ │ ├── tv_36.gif
│ │ ├── tv_37.gif
│ │ ├── tv_38.gif
│ │ ├── tv_39.gif
│ │ ├── tv_40.gif
│ │ ├── tv_41.gif
│ │ ├── tv_42.gif
│ │ ├── tv_43.gif
│ │ ├── tv_44.gif
│ │ ├── tv_45.gif
│ │ ├── tv_46.gif
│ │ ├── tv_47.gif
│ │ ├── tv_48.gif
│ │ ├── tv_49.gif
│ │ ├── tv_50.gif
│ │ ├── tv_51.gif
│ │ ├── tv_52.gif
│ │ ├── tv_53.gif
│ │ ├── tv_54.gif
│ │ ├── tv_55.gif
│ │ ├── tv_56.gif
│ │ ├── tv_57.gif
│ │ ├── tv_58.gif
│ │ ├── tv_59.gif
│ │ ├── tv_60.gif
│ │ ├── tv_61.gif
│ │ ├── tv_62.gif
│ │ ├── tv_63.gif
│ │ ├── tv_64.gif
│ │ ├── tv_65.gif
│ │ ├── tv_66.gif
│ │ ├── tv_67.gif
│ │ ├── tv_68.gif
│ │ ├── tv_69.gif
│ │ ├── tv_70.gif
│ │ ├── tv_71.gif
│ │ ├── tv_72.gif
│ │ ├── tv_73.gif
│ │ ├── tv_74.gif
│ │ ├── tv_75.gif
│ │ ├── tv_76.gif
│ │ ├── tv_77.gif
│ │ ├── tv_78.gif
│ │ ├── tv_79.gif
│ │ ├── tv_80.gif
│ │ ├── tv_81.gif
│ │ ├── tv_82.gif
│ │ ├── tv_83.gif
│ │ ├── tv_84.gif
│ │ ├── tv_85.gif
│ │ ├── tv_86.gif
│ │ ├── tv_87.gif
│ │ ├── tv_88.gif
│ │ ├── tv_89.gif
│ │ ├── tv_90.gif
│ │ ├── tv_91.gif
│ │ ├── tv_92.gif
│ │ ├── tv_93.gif
│ │ ├── tv_94.gif
│ │ ├── tv_95.gif
│ │ ├── tv_96.gif
│ │ ├── tv_97.gif
│ │ ├── tv_98.gif
│ │ └── tv_99.gif
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── emoji
│ └── ExampleUnitTest.kt
├── lib-h5
├── .gitignore
├── .vscode
│ └── extensions.json
├── index.html
├── package-lock.json
├── package.json
├── public
│ ├── favicon.ico
│ ├── ic_holder.jpg
│ ├── script
│ │ ├── bangumi.js
│ │ └── temp.html
│ └── test.http
├── src
│ ├── App.vue
│ ├── assets
│ │ ├── css
│ │ │ └── light.css
│ │ └── image
│ │ │ ├── bg_bangumi.png
│ │ │ ├── ic_like.svg
│ │ │ └── ic_more.svg
│ ├── components
│ │ ├── BottomRobotView.vue
│ │ ├── BottomSpinnerView.vue
│ │ ├── CommentView.vue
│ │ ├── EmojiView.vue
│ │ ├── ImageView.vue
│ │ └── RelativeItemView.vue
│ ├── main.ts
│ ├── pages
│ │ ├── IndexView.vue
│ │ ├── bbcode
│ │ │ └── BBCodeView.vue
│ │ ├── blog
│ │ │ └── BlogView.vue
│ │ └── topic
│ │ │ └── TopicView.vue
│ ├── router
│ │ ├── index.ts
│ │ └── routes.ts
│ ├── style.scss
│ ├── util
│ │ ├── common.ts
│ │ ├── dollars.css
│ │ ├── dollars.js
│ │ └── interface
│ │ │ ├── BlogDetailEntity.ts
│ │ │ ├── CommentFormEntity.ts
│ │ │ ├── CommentReplyEntity.ts
│ │ │ ├── CommentTreeEntity.ts
│ │ │ ├── EmojiParam.ts
│ │ │ ├── LikeActionEntity.ts
│ │ │ ├── SampleRelateEntity.ts
│ │ │ └── TopicDetailEntity.ts
│ └── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
├── lib-i18n
├── .gitignore
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── bangumi
│ │ └── i18n
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── res
│ │ ├── values-en
│ │ └── strings.xml
│ │ ├── values-ja
│ │ └── strings.xml
│ │ ├── values-zh-rTW
│ │ └── strings.xml
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── bangumi
│ └── i18n
│ └── ExampleUnitTest.kt
├── lib-live2d
├── .gitignore
├── build.gradle.kts
├── libs
│ └── Live2DCubismCore.aar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── live
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── live2d
│ │ └── sdk
│ │ └── cubism
│ │ └── framework
│ │ ├── CubismCdiJson.java
│ │ ├── CubismDefaultParameterId.java
│ │ ├── CubismFramework.java
│ │ ├── CubismFrameworkConfig.java
│ │ ├── CubismModelSettingJson.java
│ │ ├── ICubismModelSetting.java
│ │ ├── effect
│ │ ├── CubismBreath.java
│ │ ├── CubismEyeBlink.java
│ │ ├── CubismPose.java
│ │ └── package-info.java
│ │ ├── exception
│ │ ├── CubismException.java
│ │ ├── CubismJsonParseException.java
│ │ ├── CubismJsonRuntimeException.java
│ │ ├── CubismJsonSyntaxErrorException.java
│ │ ├── CubismRuntimeException.java
│ │ └── package-info.java
│ │ ├── id
│ │ ├── CubismId.java
│ │ ├── CubismIdManager.java
│ │ └── package-info.java
│ │ ├── math
│ │ ├── CubismMath.java
│ │ ├── CubismMatrix44.java
│ │ ├── CubismModelMatrix.java
│ │ ├── CubismTargetPoint.java
│ │ ├── CubismVector2.java
│ │ ├── CubismViewMatrix.java
│ │ └── package-info.java
│ │ ├── model
│ │ ├── CubismMoc.java
│ │ ├── CubismModel.java
│ │ ├── CubismModelUserData.java
│ │ ├── CubismModelUserDataJson.java
│ │ ├── CubismUserModel.java
│ │ └── package-info.java
│ │ ├── motion
│ │ ├── ACubismMotion.java
│ │ ├── CubismExpressionMotion.java
│ │ ├── CubismMotion.java
│ │ ├── CubismMotionInternal.java
│ │ ├── CubismMotionJson.java
│ │ ├── CubismMotionManager.java
│ │ ├── CubismMotionQueueEntry.java
│ │ ├── CubismMotionQueueManager.java
│ │ ├── ICubismMotionEventFunction.java
│ │ ├── IFinishedMotionCallback.java
│ │ └── package-info.java
│ │ ├── physics
│ │ ├── CubismPhysics.java
│ │ ├── CubismPhysicsFunctions.java
│ │ ├── CubismPhysicsInternal.java
│ │ ├── CubismPhysicsJson.java
│ │ └── package-info.java
│ │ ├── rendering
│ │ ├── CubismRenderer.java
│ │ ├── android
│ │ │ ├── CubismClippingContext.java
│ │ │ ├── CubismClippingManagerAndroid.java
│ │ │ ├── CubismDrawableInfoCachesHolder.java
│ │ │ ├── CubismOffscreenSurfaceAndroid.java
│ │ │ ├── CubismRendererAndroid.java
│ │ │ ├── CubismRendererProfileAndroid.java
│ │ │ ├── CubismShaderAndroid.java
│ │ │ ├── CubismShaderPrograms.java
│ │ │ └── package-info.java
│ │ └── package-info.java
│ │ ├── type
│ │ └── csmRectF.java
│ │ └── utils
│ │ ├── CubismDebug.java
│ │ ├── jsonparser
│ │ ├── ACubismJsonValue.java
│ │ ├── CubismJson.java
│ │ ├── CubismJsonArray.java
│ │ ├── CubismJsonBoolean.java
│ │ ├── CubismJsonErrorValue.java
│ │ ├── CubismJsonLexer.java
│ │ ├── CubismJsonNullValue.java
│ │ ├── CubismJsonNumber.java
│ │ ├── CubismJsonObject.java
│ │ ├── CubismJsonString.java
│ │ ├── CubismJsonToken.java
│ │ └── package-info.java
│ │ └── package-info.java
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── live
│ └── ExampleUnitTest.kt
├── lib-script
├── .gitignore
├── bgm
│ ├── GroupTopic.db
│ └── bgm-script.jar
├── build.gradle.kts
├── libs
│ └── utils-1.1.jar
└── src
│ └── main
│ └── java
│ └── com
│ └── xiaoyv
│ └── script
│ ├── BgmScript.kt
│ ├── IndexScript.kt
│ ├── Kts.kt
│ ├── Main.kt
│ ├── MiKan.kt
│ ├── database
│ ├── BgmScriptDataBase.kt
│ └── dao
│ │ ├── IndexDao.kt
│ │ ├── RakuenDao.kt
│ │ └── SubjectDao.kt
│ ├── entity
│ └── BgmScriptIndexEntity.kt
│ ├── i18n
│ └── LanguageScript.kt
│ ├── mikan.json
│ └── mikan_bak.json
├── lib-subtitle
├── .gitignore
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── subtitle
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── subtitle
│ │ ├── api
│ │ ├── SubmergeAPI.kt
│ │ ├── TimedLinesAPI.kt
│ │ ├── constant
│ │ │ └── FontName.kt
│ │ ├── parser
│ │ │ ├── ASSParser.java
│ │ │ ├── BaseParser.kt
│ │ │ ├── ParserFactory.kt
│ │ │ ├── SRTParser.kt
│ │ │ ├── SubtitleParser.kt
│ │ │ └── exception
│ │ │ │ ├── InvalidAssSubException.kt
│ │ │ │ ├── InvalidColorCode.kt
│ │ │ │ ├── InvalidFileException.kt
│ │ │ │ ├── InvalidSRTSubException.kt
│ │ │ │ └── InvalidSubException.kt
│ │ ├── subtitle
│ │ │ ├── ass
│ │ │ │ ├── ASSSub.java
│ │ │ │ ├── ASSTime.java
│ │ │ │ ├── Events.java
│ │ │ │ ├── ScriptInfo.java
│ │ │ │ └── V4Style.java
│ │ │ ├── common
│ │ │ │ ├── SubtitleLine.java
│ │ │ │ ├── SubtitleTime.java
│ │ │ │ ├── TimedLine.kt
│ │ │ │ ├── TimedObject.kt
│ │ │ │ └── TimedTextFile.kt
│ │ │ ├── config
│ │ │ │ ├── Font.kt
│ │ │ │ └── SimpleSubConfig.kt
│ │ │ └── srt
│ │ │ │ ├── SRTLine.java
│ │ │ │ ├── SRTSub.java
│ │ │ │ └── SRTTime.java
│ │ └── utils
│ │ │ ├── ColorUtils.kt
│ │ │ ├── ConversionUtils.kt
│ │ │ ├── FileUtils.kt
│ │ │ ├── IOUtils.kt
│ │ │ ├── NumberUtils.kt
│ │ │ ├── PropertyUtils.kt
│ │ │ ├── StringUtils.kt
│ │ │ └── icu
│ │ │ └── text
│ │ │ ├── CharsetDetector.java
│ │ │ ├── CharsetMatch.java
│ │ │ ├── CharsetRecog_2022.java
│ │ │ ├── CharsetRecog_UTF8.java
│ │ │ ├── CharsetRecog_Unicode.java
│ │ │ ├── CharsetRecog_mbcs.java
│ │ │ ├── CharsetRecog_sbcs.java
│ │ │ └── CharsetRecognizer.java
│ │ └── media
│ │ ├── MediaSubtitleExtractor.kt
│ │ └── entity
│ │ └── FFProbeEntity.kt
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── subtitle
│ └── ExampleUnitTest.kt
├── lib-thunder
├── .gitignore
├── build.gradle.kts
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── xiaoyv
│ │ └── thunder
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ ├── xiaoyv
│ │ │ └── thunder
│ │ │ │ └── Thunder.kt
│ │ │ └── xunlei
│ │ │ ├── download
│ │ │ ├── BlockingItem.java
│ │ │ ├── Daemon.java
│ │ │ ├── DownloadInfo.java
│ │ │ ├── Downloads.kt
│ │ │ ├── LinuxFileCommand.java
│ │ │ └── XLTaskHelper.java
│ │ │ └── downloadlib
│ │ │ ├── XLDownloadManager.kt
│ │ │ ├── XLLoader.java
│ │ │ ├── android
│ │ │ ├── XLLog.kt
│ │ │ └── XLTool.kt
│ │ │ └── parameter
│ │ │ ├── BtIndexSet.kt
│ │ │ ├── BtSubTaskDetail.kt
│ │ │ ├── BtTaskParam.kt
│ │ │ ├── BtTaskStatus.kt
│ │ │ ├── CIDTaskParam.kt
│ │ │ ├── DcdnPeerResParam.kt
│ │ │ ├── EmuleTaskParam.kt
│ │ │ ├── ErrorCodeToMsg.kt
│ │ │ ├── GetBooleanParam.kt
│ │ │ ├── GetDownloadHead.kt
│ │ │ ├── GetDownloadLibVersion.kt
│ │ │ ├── GetFileName.kt
│ │ │ ├── GetTaskId.kt
│ │ │ ├── HLSTaskParam.kt
│ │ │ ├── InitParam.kt
│ │ │ ├── MagnetTaskParam.kt
│ │ │ ├── MaxDownloadSpeedParam.kt
│ │ │ ├── P2spTaskParam.kt
│ │ │ ├── PeerResourceParam.kt
│ │ │ ├── ServerResourceParam.kt
│ │ │ ├── SetIndexInfoParam.kt
│ │ │ ├── ThunderUrlInfo.kt
│ │ │ ├── TorrentFileInfo.kt
│ │ │ ├── TorrentInfo.kt
│ │ │ ├── UploadControlParam.kt
│ │ │ ├── UploadInfo.kt
│ │ │ ├── UrlQuickInfo.kt
│ │ │ ├── XLConstant.kt
│ │ │ ├── XLFirstMediaState.kt
│ │ │ ├── XLPremiumResInfo.kt
│ │ │ ├── XLProductInfo.kt
│ │ │ ├── XLRangeInfo.kt
│ │ │ ├── XLSessionInfo.kt
│ │ │ ├── XLTaskInfo.kt
│ │ │ ├── XLTaskInfoEx.kt
│ │ │ └── XLTaskLocalUrl.kt
│ └── jniLibs
│ │ ├── arm64-v8a
│ │ └── libthunder.so
│ │ └── armeabi-v7a
│ │ └── libthunder.so
│ └── test
│ └── java
│ └── com
│ └── xiaoyv
│ └── thunder
│ └── ExampleUnitTest.kt
└── settings.gradle.kts
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.db filter=lfs diff=lfs merge=lfs -text
2 |
--------------------------------------------------------------------------------
/.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 | /app/release/
17 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/deploymentTargetDropDown.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/kotlinc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/migrations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/other.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/render.experimental.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.kotlin/errors/errors-1729322291665.log:
--------------------------------------------------------------------------------
1 | kotlin version: 2.0.20
2 | error message: The daemon has terminated unexpectedly on startup attempt #1 with error code: 0. The daemon process output:
3 | 1. Kotlin compile daemon is ready
4 |
5 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/src/main/assets/h5/assets/BBCodeView-ok635Qnb.css:
--------------------------------------------------------------------------------
1 | .bbcode[data-v-a57e7426]{width:100%;padding:16px;font-size:16px;display:flex;flex-direction:column;word-break:break-word}
2 |
--------------------------------------------------------------------------------
/app/src/main/assets/h5/assets/IndexView-Gsg00Qd6.js:
--------------------------------------------------------------------------------
1 | import{_ as e}from"./index-a_sggHWe.js";const n={};function r(c,t){return null}const o=e(n,[["render",r]]);export{o as default};
2 |
--------------------------------------------------------------------------------
/app/src/main/assets/h5/assets/bg_bangumi-zgoKjpW4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/assets/h5/assets/bg_bangumi-zgoKjpW4.png
--------------------------------------------------------------------------------
/app/src/main/assets/h5/assets/light-xUZnlCGI.css:
--------------------------------------------------------------------------------
1 | :root{--primary-color: #A23662;--surface-color: #FFFBFF;--on-primary-color: #FFFFFF;--on-surface-color: #201A1B;--on-surface-variant-color: #514347;--surface-container-color: #eeeeee}
2 |
--------------------------------------------------------------------------------
/app/src/main/assets/h5/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/assets/h5/favicon.ico
--------------------------------------------------------------------------------
/app/src/main/assets/h5/ic_holder.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/assets/h5/ic_holder.jpg
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/ic_launcher_1-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/ic_launcher_1-playstore.png
--------------------------------------------------------------------------------
/app/src/main/ic_launcher_2-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/ic_launcher_2-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/special/detect/ImageDetectViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.special.detect
2 |
3 | import android.net.Uri
4 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
5 | import com.xiaoyv.common.widget.setting.SearchOptionView
6 |
7 | /**
8 | * ImageDetectViewModel
9 | *
10 | * @author why
11 | * @since 11/18/23
12 | */
13 | abstract class ImageDetectViewModel : BaseViewModel() {
14 | open val searchOptions: List
15 | get() = emptyList()
16 |
17 | abstract fun onImageSelected(imageUri: Uri, selectedOptions: List)
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/discover/wiki/WikiViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.discover.wiki
2 |
3 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
4 |
5 | /**
6 | * Class: [WikiViewModel]
7 | *
8 | * @author why
9 | * @since 11/24/23
10 | */
11 | class WikiViewModel : BaseViewModel()
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/feature/empty/EmptyViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.feature.empty
2 |
3 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
4 |
5 | /**
6 | * Class: [EmptyViewModel]
7 | *
8 | * @author why
9 | * @since 11/24/23
10 | */
11 | class EmptyViewModel : BaseViewModel()
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/feature/musmme/MusumeViewModel.kt:
--------------------------------------------------------------------------------
1 | @file:Suppress("SpellCheckingInspection")
2 |
3 | package com.xiaoyv.bangumi.ui.feature.musmme
4 |
5 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
6 |
7 | /**
8 | * Class: [MusumeViewModel]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | class MusumeViewModel : BaseViewModel()
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/feature/post/preview/PreviewBBCodeViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.feature.post.preview
2 |
3 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
4 |
5 | /**
6 | * Class: [PreviewBBCodeViewModel]
7 | *
8 | * @author why
9 | * @since 12/16/23
10 | */
11 | class PreviewBBCodeViewModel : BaseViewModel() {
12 | var code: String = ""
13 |
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/media/MediaViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.media
2 |
3 | import androidx.lifecycle.MutableLiveData
4 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
5 | import com.xiaoyv.common.config.bean.MediaOptionConfig
6 |
7 | /**
8 | * Class: [MediaViewModel]
9 | *
10 | * @author why
11 | * @since 11/24/23
12 | */
13 | class MediaViewModel : BaseViewModel() {
14 | internal val currentSelectedOptionItem =
15 | MutableLiveData>>(mutableMapOf())
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/media/detail/score/MediaScoreViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.media.detail.score
2 |
3 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
4 | import com.xiaoyv.common.config.annotation.MediaType
5 |
6 | /**
7 | * Class: [MediaScoreViewModel]
8 | *
9 | * @author why
10 | * @since 1/22/24
11 | */
12 | class MediaScoreViewModel : BaseViewModel() {
13 | internal var forFriend: Boolean = false
14 | internal var mediaId: String = ""
15 |
16 | @MediaType
17 | internal var mediaType: String = MediaType.TYPE_UNKNOWN
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/media/detail/state/MediaStateViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.media.detail.state
2 |
3 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
4 |
5 | /**
6 | * Class: [MediaStateViewModel]
7 | *
8 | * @author why
9 | * @since 11/24/23
10 | */
11 | class MediaStateViewModel : BaseViewModel()
--------------------------------------------------------------------------------
/app/src/main/java/com/xiaoyv/bangumi/ui/process/ProcessViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.ui.process
2 |
3 | import com.xiaoyv.blueprint.base.mvvm.normal.BaseViewModel
4 |
5 | /**
6 | * Class: [ProcessViewModel]
7 | *
8 | * @author why
9 | * @since 12/24/23
10 | */
11 | class ProcessViewModel : BaseViewModel() {
12 |
13 | }
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_anime_pictures.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_empty_container.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_privacy_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_friend.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_wiki.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_0_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_1_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_2_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_0_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-hdpi/ic_launcher_0_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_0_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-hdpi/ic_launcher_0_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_1_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-hdpi/ic_launcher_1_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_1_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-hdpi/ic_launcher_1_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_2_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-hdpi/ic_launcher_2_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_2_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-hdpi/ic_launcher_2_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_0_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-mdpi/ic_launcher_0_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_0_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-mdpi/ic_launcher_0_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_1_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-mdpi/ic_launcher_1_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_1_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-mdpi/ic_launcher_1_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_2_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-mdpi/ic_launcher_2_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_2_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-mdpi/ic_launcher_2_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_0_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xhdpi/ic_launcher_0_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_0_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xhdpi/ic_launcher_0_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_1_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xhdpi/ic_launcher_1_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_1_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xhdpi/ic_launcher_1_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_2_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xhdpi/ic_launcher_2_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_2_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xhdpi/ic_launcher_2_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_0_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxhdpi/ic_launcher_0_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_0_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxhdpi/ic_launcher_0_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_1_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxhdpi/ic_launcher_1_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_1_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxhdpi/ic_launcher_1_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_2_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxhdpi/ic_launcher_2_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_2_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxhdpi/ic_launcher_2_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_0_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_0_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_0_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_0_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_1_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_1_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_1_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_1_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_2_foreground.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_2_foreground.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_2_round.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/app/src/main/res/mipmap-xxxhdpi/ic_launcher_2_round.webp
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/app_backup_rules.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/build.gradle.kts:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | plugins {
3 | alias(libs.plugins.androidApplication) apply false
4 | alias(libs.plugins.jetbrainsKotlinAndroid) apply false
5 | alias(libs.plugins.jetbrainsKotlinJvm) apply false
6 | alias(libs.plugins.androidLibrary) apply false
7 | alias(libs.plugins.googleKsp) apply false
8 | alias(libs.plugins.googleServices) apply false
9 | }
10 |
11 | buildscript {
12 | dependencies {
13 | classpath(libs.firebase.crashlytics.gradle)
14 | }
15 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" -Dfile.encoding\=UTF-8
2 | android.nonTransitiveRClass=true
3 | android.useAndroidX=true
4 | kotlin.code.style=official
5 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Nov 24 18:22:33 CST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/keystore/bangumi.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/keystore/bangumi.keystore
--------------------------------------------------------------------------------
/keystore/key.sh:
--------------------------------------------------------------------------------
1 | java -jar pepk.jar --keystore=./bangumi.keystore --alias=bangumi --output=output.zip --include-cert --rsa-aes-encryption --encryption-key-path=./encryption_public_key.pem
--------------------------------------------------------------------------------
/keystore/output.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/keystore/output.zip
--------------------------------------------------------------------------------
/keystore/pepk.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/keystore/pepk.jar
--------------------------------------------------------------------------------
/keystore/why.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/keystore/why.keystore
--------------------------------------------------------------------------------
/lib-common/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/lib-common/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/consumer-rules.pro
--------------------------------------------------------------------------------
/lib-common/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/bangumi_musume_2d.1024/texture_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/bangumi_musume_2d.1024/texture_00.png
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/bangumi_musume_2d.moc3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/bangumi_musume_2d.moc3
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave29.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave29.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave30.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave30.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave31.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave31.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave32.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave32.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave33.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave33.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave34.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave34.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave35.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave35.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave36.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave36.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave37.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave37.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave38.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave38.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave39.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave39.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave40.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave40.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave41.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave41.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave42.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave42.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave43.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave43.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave44.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave44.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave45.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave45.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave46.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave46.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave47.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave47.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave48.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave48.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave49.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave49.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave50.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave50.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave51.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave51.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave52.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave52.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave53.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave53.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave54.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave54.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave55.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave55.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave56.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave56.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave57.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave57.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave58.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave58.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave59.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave59.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave60.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/bangumi_musume_2d/sounds/wave60.wav
--------------------------------------------------------------------------------
/lib-common/src/main/assets/config/media.js:
--------------------------------------------------------------------------------
1 | var tmp = [];
2 | document.querySelectorAll("ul.grouped:nth-child(2) li a").forEach(item => {
3 | tmp.push({
4 | title: item.innerText,
5 | value: item.href.replace("https://bangumi.tv/anime/browser", "")
6 | })
7 | });
8 | console.log(JSON.stringify(tmp));
--------------------------------------------------------------------------------
/lib-common/src/main/assets/config/smiles/helper/download.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # 设置文件路径
4 | FILE_PATH="url.txt"
5 |
6 | # 检查文件是否存在
7 | if [ ! -f "$FILE_PATH" ]; then
8 | echo "File $FILE_PATH not found."
9 | exit 1
10 | fi
11 |
12 | # 逐行读取文件,下载并保存图片
13 | while IFS= read -r URL; do
14 | # 提取文件名和目录路径
15 | FILENAME=$(basename "$URL")
16 | DIR_PATH=$(echo "$URL" | sed 's~^[[:alnum:]]*://~~; s~/[^/]*$~~')
17 |
18 | # 创建目录结构
19 | mkdir -p "$DIR_PATH"
20 |
21 | # 使用 curl 下载并保存图片
22 | curl -o "$DIR_PATH/$FILENAME" "$URL"
23 | done < "$FILE_PATH"
24 |
25 | echo "Download completed."
26 |
--------------------------------------------------------------------------------
/lib-common/src/main/assets/config/smiles/helper/rename.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # 查找当前目录下的所有文件(不包括文件夹)
4 | files=$(find . -maxdepth 1 -type f)
5 |
6 | # 添加前缀
7 | for file in $files; do
8 | # 获取文件名
9 | filename=$(basename "$file")
10 |
11 | # 添加前缀并重命名文件
12 | mv "$filename" "normal_$filename"
13 | done
14 |
15 | echo "Prefix added to files."
16 |
--------------------------------------------------------------------------------
/lib-common/src/main/assets/image/ic_donation.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/image/ic_donation.jpg
--------------------------------------------------------------------------------
/lib-common/src/main/assets/image/info_only.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/assets/image/info_only.jpg
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/exception/NeedConfigException.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.exception
2 |
3 | /**
4 | * Class: [NeedConfigException]
5 | *
6 | * @author why
7 | * @since 11/27/23
8 | */
9 | class NeedConfigException(override val message: String?) : IllegalStateException(message)
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/exception/NeedLoginException.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.exception
2 |
3 | /**
4 | * Class: [NeedLoginException]
5 | *
6 | * @author why
7 | * @since 11/27/23
8 | */
9 | class NeedLoginException(override val message: String?) : IllegalStateException(message)
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/BgmMediaEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [BgmMediaEntity]
9 | */
10 | @Keep
11 | @Parcelize
12 | data class BgmMediaEntity(
13 | var title: String = "",
14 | var attention: String = "",
15 | var image: String = "",
16 | var id: String = "",
17 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/BlockEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.xiaoyv.common.helper.callback.IdEntity
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [BlockEntity]
10 | *
11 | * @author why
12 | * @since 12/17/23
13 | */
14 | @Keep
15 | @Parcelize
16 | data class BlockEntity(
17 | override var id: String = "",
18 | var numberId: String = "",
19 | var name: String = "",
20 | ) : Parcelable, IdEntity
21 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/BlogEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | /**
4 | * Class: [BlogEntity]
5 | *
6 | * @author why
7 | * @since 11/28/23
8 | */
9 | data class BlogEntity(
10 | var id: String = "",
11 | var title: String = "",
12 | var image: String = "",
13 | var time: String = "",
14 | var content: String = "",
15 | var commentCount: Int = 0,
16 | var mediaName: String = "",
17 | var recentUserName: String = "",
18 | var recentUserId: String = "",
19 | var nestingProfile: Boolean = false,
20 | )
21 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/CreatePostEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [CreatePostEntity]
9 | *
10 | * @author why
11 | * @since 12/2/23
12 | */
13 | @Keep
14 | @Parcelize
15 | data class CreatePostEntity(
16 | var title: String = "",
17 | var content: String = "",
18 | var tags: String = "",
19 | var isPublic: Boolean = true,
20 | var draft: Boolean = false,
21 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/FriendEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.xiaoyv.common.helper.callback.IdEntity
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [FriendEntity]
10 | *
11 | * @author why
12 | * @since 12/14/23
13 | */
14 | @Keep
15 | @Parcelize
16 | data class FriendEntity(
17 | override var id: String = "",
18 | var avatar: String = "",
19 | var name: String = "",
20 | var gh: String = "",
21 | ) : IdEntity, Parcelable
22 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/HomeIndexCalendarEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [HomeIndexCalendarEntity]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Keep
14 | @Parcelize
15 | data class HomeIndexCalendarEntity(
16 | var tip: String = "",
17 | var today: List = emptyList(),
18 | var tomorrow: List = emptyList(),
19 | ) : Parcelable
20 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/HomeIndexCardEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 |
8 | @Keep
9 | @Parcelize
10 | data class HomeIndexCardEntity(
11 | var title: String = "",
12 | var titleType: String = "",
13 | var images: List = emptyList(),
14 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/HomeIndexEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [HomeIndexEntity]
9 | *
10 | * @author why
11 | * @since 11/24/23
12 | */
13 | @Keep
14 | @Parcelize
15 | data class HomeIndexEntity(
16 | var banner: HomeIndexBannerEntity = HomeIndexBannerEntity(),
17 | var images: List = emptyList(),
18 | var calendar: HomeIndexCalendarEntity = HomeIndexCalendarEntity(),
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/MediaMakerEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | /**
4 | * Class: [MediaMakerEntity]
5 | *
6 | * @author why
7 | * @since 11/29/23
8 | */
9 | data class MediaMakerEntity(
10 | var id: String = "",
11 | var avatar: String = "",
12 | var titleCn: String = "",
13 | var titleNative: String = "",
14 | var personInfo: List = emptyList(),
15 | var commentCount: String = "",
16 | var tip: String = ""
17 | )
18 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/MessageCountEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [MessageCountEntity]
9 | *
10 | * @author why
11 | * @since 12/9/23
12 | */
13 | @Keep
14 | @Parcelize
15 | data class MessageCountEntity(
16 | var unRead: Int = 0,
17 | var receiveCount: Int = 0,
18 | var sendCount: Int = 0,
19 | ) : Parcelable
20 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/ReportEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [ReportEntity]
9 | *
10 | * @author why
11 | * @since 12/14/23
12 | */
13 | @Keep
14 | @Parcelize
15 | data class ReportEntity(
16 | var hiddenForm: Map = emptyMap(),
17 | ) : Parcelable
18 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/SignInFormEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | /**
7 | * Class: [SignInFormEntity]
8 | *
9 | * @author why
10 | * @since 11/25/23
11 | */
12 | @Parcelize
13 | data class SignInFormEntity(
14 | var forms: HashMap = hashMapOf(),
15 | var hasLogin: Boolean = false,
16 | var loginInfo: SignInResultEntity? = null
17 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/SignInResultEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.api.response.UserEntity
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [SignInResultEntity]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class SignInResultEntity(
15 | var error: String? = null,
16 | var success: Boolean = false,
17 | var message: String = "",
18 | var userEntity: UserEntity = UserEntity(isEmpty = true)
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/SignUpResultEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.api.response.UserEntity
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [SignUpResultEntity]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class SignUpResultEntity(
15 | var error: String? = null,
16 | var success: Boolean = false,
17 | var message: String = "",
18 | var forms: HashMap = hashMapOf()
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/entity/SignUpVerifyEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.entity
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.api.response.UserEntity
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [SignUpVerifyEntity]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class SignUpVerifyEntity(
15 | var error: String? = null,
16 | var success: Boolean = false,
17 | var message: String = "",
18 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/impl/ReportParser.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.impl
2 |
3 | import com.xiaoyv.common.api.parser.entity.ReportEntity
4 | import org.jsoup.nodes.Element
5 |
6 | /**
7 | * @author why
8 | * @since 12/14/23
9 | */
10 | fun Element.parserReportForm(): ReportEntity {
11 | val entity = ReportEntity()
12 | entity.hiddenForm = select("input[type=hidden], input[type=submit]")
13 | .map { it.attr("name") to it.attr("value") }
14 | .associate { it }
15 | return entity
16 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/parser/impl/TagParser.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.parser.impl
2 |
3 | import com.xiaoyv.common.api.parser.entity.SearchResultEntity
4 | import com.xiaoyv.common.config.annotation.BgmPathType
5 | import org.jsoup.nodes.Element
6 |
7 | /**
8 | * @author why
9 | * @since 12/10/23
10 | */
11 | fun Element.parserTagDetail(): List {
12 | // 标签详情页面复用 BgmPathType.TYPE_SEARCH_SUBJECT 的解析逻辑
13 | return parserSearchResult(BgmPathType.TYPE_SEARCH_SUBJECT)
14 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/request/CreateTokenParam.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.request
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [CreateTokenParam]
10 | *
11 | * @author why
12 | * @since 11/27/23
13 | */
14 | @Keep
15 | @Parcelize
16 | data class CreateTokenParam(
17 | @SerializedName("name")
18 | var name: String = "Bangumi for Android",
19 | @SerializedName("duration_days")
20 | var durationDays: Int = 365
21 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/request/EmojiParam.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.request
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 | @Keep
9 | @Parcelize
10 | data class EmojiParam(
11 | @SerializedName("enable") var enable: Boolean = false,
12 | @SerializedName("likeType") var likeType: String = "",
13 | @SerializedName("likeMainId") var likeMainId: String = "",
14 | @SerializedName("likeCommentId") var likeCommentId: String = "",
15 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/request/MicrosoftTranslateParam.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.request
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 |
9 | /**
10 | * Class: [MicrosoftTranslateParam]
11 | *
12 | * @author why
13 | * @since 1/29/24
14 | */
15 | @Keep
16 | @Parcelize
17 | data class MicrosoftTranslateParam(
18 | @SerializedName("Text")
19 | var text: String? = null,
20 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/request/SyncNameParam.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.request
2 |
3 | import android.os.Parcelable
4 | import com.google.gson.annotations.SerializedName
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [SyncNameParam]
9 | *
10 | * @author why
11 | * @since 1/27/24
12 | */
13 | @Parcelize
14 | data class SyncNameParam(
15 | @SerializedName("id") var id: String = "",
16 | @SerializedName("name") var name: String? = null,
17 | @SerializedName("type") var type: Int? = null,
18 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/BgmStatusEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [BgmStatusEntity]
10 | *
11 | * @author why
12 | * @since 12/9/23
13 | */
14 | @Keep
15 | @Parcelize
16 | data class BgmStatusEntity(
17 | @SerializedName("status")
18 | var status: String? = null
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/GithubPutEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 |
9 | /**
10 | * Class: [GithubPutEntity]
11 | *
12 | * @author why
13 | * @since 1/3/24
14 | */
15 | @Keep
16 | @Parcelize
17 | data class GithubPutEntity(
18 | @SerializedName("content")
19 | var content: GithubContent? = null,
20 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/MicrosoftJwtPayload.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | data class MicrosoftJwtPayload(@SerializedName("exp") val expirationTime: Long)
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/NotifyEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 |
9 | /**
10 | * Class: [NotifyEntity]
11 | *
12 | * @author why
13 | * @since 12/8/23
14 | */
15 | @Keep
16 | @Parcelize
17 | data class NotifyEntity(
18 | @SerializedName("count")
19 | var count: Int? = null
20 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/anime/ListParcelableWrapEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response.anime
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 | import kotlinx.parcelize.RawValue
7 |
8 | /**
9 | * Class: [ListParcelableWrapEntity]
10 | *
11 | * @author why
12 | * @since 11/21/23
13 | */
14 | @Keep
15 | @Parcelize
16 | data class ListParcelableWrapEntity(var list: List<@RawValue T>) : Parcelable
17 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/base/BaseListResponse.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response.base
2 |
3 | import androidx.annotation.Keep
4 | import com.google.gson.annotations.SerializedName
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * BaseListResponse
9 | *
10 | * @author why
11 | * @since 11/18/23
12 | */
13 | @Keep
14 | @Parcelize
15 | class BaseListResponse(
16 | @SerializedName("total") var total: Int = 0,
17 | @SerializedName("limit") var limit: Int = 0,
18 | @SerializedName("offset") var offset: Int = 0,
19 | ) : BaseResponse>()
20 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/base/BaseResponse.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response.base
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 | import kotlinx.parcelize.RawValue
7 |
8 | /**
9 | * BaseResponse
10 | *
11 | * @author why
12 | * @since 11/18/23
13 | */
14 | @Keep
15 | @Parcelize
16 | open class BaseResponse(
17 | open val code: Int = 0,
18 | open val msg: String? = "",
19 | open val message: String? = "",
20 | open val data: @RawValue T? = null
21 | ) : Parcelable
22 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/base/BgmActionResponse.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response.base
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 | import kotlinx.parcelize.RawValue
7 |
8 | /**
9 | * BaseResponse
10 | *
11 | * @author why
12 | * @since 11/18/23
13 | */
14 | @Keep
15 | @Parcelize
16 | open class BgmActionResponse(
17 | val status: String? = "",
18 | val data: @RawValue T?,
19 | ) : Parcelable {
20 |
21 | val isOk: Boolean
22 | get() = status.orEmpty().equals("ok", true)
23 | }
24 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/api/response/douban/DouBanImageEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.api.response.douban
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.google.gson.annotations.SerializedName
6 | import kotlinx.parcelize.Parcelize
7 |
8 | @Keep
9 | @Parcelize
10 | data class DouBanImageEntity(
11 | @SerializedName("height")
12 | var height: Int = 0,
13 | @SerializedName("size")
14 | var size: Long = 0,
15 | @SerializedName("url")
16 | var url: String? = null,
17 | @SerializedName("width")
18 | var width: Int = 0,
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/annotation/LikeType.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.annotation
2 |
3 | import androidx.annotation.StringDef
4 |
5 | /**
6 | * Class: [LikeType]
7 | *
8 | * @author why
9 | * @since 11/25/23
10 | */
11 | @StringDef(
12 | LikeType.TYPE_TOPIC
13 | )
14 | @Retention(AnnotationRetention.SOURCE)
15 | annotation class LikeType {
16 | companion object {
17 | const val TYPE_TOPIC = "8"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/annotation/LocalCollectionType.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.annotation
2 |
3 | import androidx.annotation.IntDef
4 |
5 | /**
6 | * Class: [LocalCollectionType]
7 | *
8 | * @author why
9 | * @since 1/3/24
10 | */
11 | @IntDef(
12 | LocalCollectionType.TYPE_BLOG,
13 | LocalCollectionType.TYPE_TOPIC
14 | )
15 | @Retention(AnnotationRetention.SOURCE)
16 | annotation class LocalCollectionType {
17 | companion object {
18 | const val TYPE_TOPIC = 1
19 | const val TYPE_BLOG = 2
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/annotation/MessageBoxType.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.annotation
2 |
3 | import androidx.annotation.StringDef
4 |
5 | /**
6 | * Class: [MessageBoxType]
7 | *
8 | * @author why
9 | * @since 11/25/23
10 | */
11 | @StringDef(
12 | MessageBoxType.TYPE_INBOX,
13 | MessageBoxType.TYPE_OUTBOX
14 | )
15 | @Retention(AnnotationRetention.SOURCE)
16 | annotation class MessageBoxType {
17 | companion object {
18 | const val TYPE_INBOX = "inbox"
19 | const val TYPE_OUTBOX = "outbox"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/annotation/PrivacyType.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.annotation
2 |
3 | import androidx.annotation.IntDef
4 |
5 | /**
6 | * Class: [PrivacyType]
7 | *
8 | * @author why
9 | * @since 11/25/23
10 | */
11 | @IntDef(
12 | PrivacyType.TYPE_ALL,
13 | PrivacyType.TYPE_FRIEND,
14 | PrivacyType.TYPE_NONE
15 | )
16 | @Retention(AnnotationRetention.SOURCE)
17 | annotation class PrivacyType {
18 | companion object {
19 | const val TYPE_ALL = 0
20 | const val TYPE_FRIEND = 1
21 | const val TYPE_NONE = 2
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/annotation/SearchApiType.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.annotation
2 |
3 | import androidx.annotation.StringDef
4 |
5 | /**
6 | * Class: [SearchApiType]
7 | *
8 | * @author why
9 | * @since 12/10/23
10 | */
11 | @StringDef(
12 | SearchApiType.TYPE_INDEX,
13 | SearchApiType.TYPE_GROUP_TOPIC,
14 | )
15 | @Retention(AnnotationRetention.SOURCE)
16 | annotation class SearchApiType {
17 | companion object {
18 | const val TYPE_INDEX = "index"
19 | const val TYPE_GROUP_TOPIC = "group-topic"
20 | }
21 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/annotation/ThunderTabType.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.annotation
2 |
3 | import androidx.annotation.StringDef
4 |
5 | /**
6 | * Class: [ThunderTabType]
7 | *
8 | * @author why
9 | * @since 11/25/23
10 | */
11 | @StringDef(
12 | ThunderTabType.TYPE_DOWNLOADING,
13 | ThunderTabType.TYPE_DOWNLOADED,
14 | )
15 | @Retention(AnnotationRetention.SOURCE)
16 | annotation class ThunderTabType {
17 | companion object {
18 | const val TYPE_DOWNLOADING = "downloading"
19 | const val TYPE_DOWNLOADED = "downloaded"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/AdapterTypeItem.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | data class AdapterTypeItem(
4 | var entity: Any,
5 | var type: Int,
6 | var title: String = "",
7 | )
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/AlmanacEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.xiaoyv.common.helper.callback.IdEntity
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [AlmanacEntity]
10 | *
11 | * @author why
12 | * @since 12/10/23
13 | */
14 | @Keep
15 | @Parcelize
16 | data class AlmanacEntity(
17 | override var id: String = "",
18 | var image: String = ""
19 | ) : Parcelable,IdEntity
20 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/PostAttach.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.xiaoyv.common.helper.callback.IdEntity
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [PostAttach]
10 | *
11 | * @author why
12 | * @since 12/6/23
13 | */
14 | @Parcelize
15 | @Keep
16 | data class PostAttach(
17 | override var id: String = "",
18 | var image: String = "",
19 | var title: String = "",
20 | var type: String = "",
21 | ) : Parcelable, IdEntity
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/SampleImageEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import com.xiaoyv.common.helper.callback.IdEntity
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [SampleImageEntity]
10 | *
11 | * @author why
12 | * @since 12/6/23
13 | */
14 | @Parcelize
15 | @Keep
16 | data class SampleImageEntity(
17 | override var id: String = "",
18 | var image: String = "",
19 | var title: String = "",
20 | var desc: String = "",
21 | var type: String = "",
22 | ) : Parcelable, IdEntity
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/SubtitleResult.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.SubtitleActionType
5 | import com.xiaoyv.subtitle.api.subtitle.common.TimedLine
6 | import com.xiaoyv.subtitle.api.subtitle.common.TimedTextFile
7 | import kotlinx.parcelize.Parcelize
8 | import java.io.File
9 |
10 | @Parcelize
11 | data class SubtitleResult(
12 | var file: File,
13 | var timedTextFile: TimedTextFile,
14 | @SubtitleActionType var actionType: Int
15 | ) : Parcelable
16 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/TaskInfoEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.helper.callback.IdEntity
5 | import com.xunlei.downloadlib.parameter.XLTaskInfo
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [TaskInfoEntity]
10 | *
11 | * @author why
12 | * @since 3/23/24
13 | */
14 | @Parcelize
15 | data class TaskInfoEntity(
16 | override var id: String = "",
17 | var xlTaskInfo: XLTaskInfo? = null,
18 | ) : Parcelable, IdEntity
19 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/WrapData.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 | import kotlinx.parcelize.RawValue
7 |
8 | @Keep
9 | @Parcelize
10 | data class WrapData(
11 | var data: @RawValue T? = null,
12 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/YucSectionEntity.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean
2 |
3 | import com.xiaoyv.common.helper.callback.IdEntity
4 |
5 | /**
6 | * Class: [YucSectionEntity]
7 | *
8 | * @author why
9 | * @since 3/19/24
10 | */
11 | data class YucSectionEntity(
12 | override var id: String,
13 | ) : IdEntity
14 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/DiscoverTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.DiscoverType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [DiscoverTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class DiscoverTab(
15 | var title: String,
16 |
17 | @DiscoverType
18 | var type: String
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/HomeBottomTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import androidx.annotation.DrawableRes
4 | import com.xiaoyv.common.config.annotation.FeatureType
5 |
6 | /**
7 | * Class: [HomeBottomTab]
8 | *
9 | * @author why
10 | * @since 12/31/23
11 | */
12 | data class HomeBottomTab(
13 | var title: String,
14 | var id: Int,
15 | @DrawableRes var icon: Int,
16 | @FeatureType var type: String,
17 | )
18 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/IndexDetailAttachTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.IndexTabCatType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [IndexDetailAttachTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class IndexDetailAttachTab(
15 | var title: String,
16 | @IndexTabCatType var type: String,
17 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/MagiTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.MagiTabType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [MagiTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class MagiTab(
15 | var title: String,
16 |
17 | @MagiTabType
18 | var type: String
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/MediaDetailTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.MediaDetailType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [MediaDetailTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class MediaDetailTab(
15 | var title: String,
16 |
17 | @MediaDetailType
18 | var type: String
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/MediaScoreTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.InterestType
5 | import com.xiaoyv.common.config.annotation.ProfileType
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [MediaScoreTab]
10 | *
11 | * @author why
12 | * @since 11/25/23
13 | */
14 | @Parcelize
15 | data class MediaScoreTab(
16 | var title: String,
17 |
18 | @InterestType
19 | var type: String
20 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/MediaTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.MediaType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [MediaTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class MediaTab(
15 | var title: String,
16 | @MediaType
17 | var type: String
18 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/PersonTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.PersonTabType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [PersonTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class PersonTab(
15 | var title: String,
16 |
17 | @PersonTabType
18 | var type: Int
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/ProcessTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.MediaType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [ProcessTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class ProcessTab(
15 | var title: String,
16 | @MediaType
17 | var type: String,
18 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/ProfileTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.ProfileType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [ProfileTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class ProfileTab(
15 | var title: String,
16 |
17 | @ProfileType
18 | var type: String
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/SearchTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.ProfileType
5 | import com.xiaoyv.common.config.annotation.SearchType
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [SearchTab]
10 | *
11 | * @author why
12 | * @since 11/25/23
13 | */
14 | @Parcelize
15 | data class SearchTab(
16 | var title: String,
17 |
18 | @SearchType
19 | var type: String
20 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/SuperTopicTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.SuperType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [SuperTopicTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class SuperTopicTab(
15 | var title: String,
16 | @SuperType
17 | var type: String
18 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/ThunderTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.DiscoverType
5 | import com.xiaoyv.common.config.annotation.ThunderTabType
6 | import kotlinx.parcelize.Parcelize
7 |
8 | /**
9 | * Class: [ThunderTab]
10 | *
11 | * @author why
12 | * @since 11/25/23
13 | */
14 | @Parcelize
15 | data class ThunderTab(
16 | var title: String,
17 |
18 | @ThunderTabType
19 | var type: String
20 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/TimelineTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.TimelineType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [TimelineTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class TimelineTab(
15 | var title: String,
16 | @TimelineType
17 | var timelineType: String,
18 | var userId: String = ""
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/config/bean/tab/UserCenterTab.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.config.bean.tab
2 |
3 | import android.os.Parcelable
4 | import com.xiaoyv.common.config.annotation.UserCenterType
5 | import kotlinx.parcelize.Parcelize
6 |
7 | /**
8 | * Class: [UserCenterTab]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | @Parcelize
14 | data class UserCenterTab(
15 | var title: String,
16 |
17 | @UserCenterType
18 | var type: Int
19 | ) : Parcelable
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/database/friendly/FriendlyStatus.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.database.friendly
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import androidx.room.ColumnInfo
6 | import androidx.room.Entity
7 | import com.xiaoyv.common.database.BgmDatabase
8 | import kotlinx.parcelize.Parcelize
9 |
10 | @Keep
11 | @Parcelize
12 | data class FriendlyStatus(
13 | @ColumnInfo("uid") var uid: String,
14 | @ColumnInfo("score_count") var scoreCount: Int
15 | ) : Parcelable
16 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/database/subject/SubjectItemDao.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.database.subject
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Query
5 | import com.xiaoyv.common.database.BgmDatabaseRemote
6 |
7 | @Dao
8 | interface SubjectItemDao {
9 |
10 | @Query("SELECT * FROM ${BgmDatabaseRemote.TABLE_NAME_SUBJECT}")
11 | fun getAll(): List
12 |
13 | @Query("SELECT * FROM ${BgmDatabaseRemote.TABLE_NAME_SUBJECT} WHERE name = :name or name_cn = :name")
14 | fun getByName(name: String): List
15 | }
16 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/helper/callback/SimpleTabSelectedListener.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.helper.callback
2 |
3 | import com.google.android.material.tabs.TabLayout
4 |
5 | /**
6 | * Class: [SimpleTabSelectedListener]
7 | *
8 | * @author why
9 | * @since 12/27/23
10 | */
11 | interface SimpleTabSelectedListener : TabLayout.OnTabSelectedListener {
12 | override fun onTabSelected(p0: TabLayout.Tab?) {
13 | }
14 |
15 | override fun onTabUnselected(p0: TabLayout.Tab?) {
16 | }
17 |
18 | override fun onTabReselected(p0: TabLayout.Tab?) {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/kts/ContextKt.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.kts
2 |
3 | import android.content.Context
4 | import android.view.LayoutInflater
5 |
6 | /**
7 | * @author why
8 | * @since 11/25/23
9 | */
10 | val Context.inflater: LayoutInflater get() = LayoutInflater.from(this)
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/kts/HttpKts.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.kts
2 |
3 | import okhttp3.OkHttpClient
4 | import java.util.concurrent.TimeUnit
5 |
6 | /**
7 | * timeout
8 | *
9 | * @author why
10 | * @since 12/25/23
11 | */
12 | fun OkHttpClient.Builder.timeout(seconds: Long): OkHttpClient.Builder {
13 | return this
14 | .callTimeout(seconds, TimeUnit.SECONDS)
15 | .readTimeout(seconds, TimeUnit.SECONDS)
16 | .writeTimeout(seconds, TimeUnit.SECONDS)
17 | .connectTimeout(seconds, TimeUnit.SECONDS)
18 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/kts/LiveDataKt.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.kts
2 |
3 | import androidx.lifecycle.MutableLiveData
4 |
5 | inline fun MutableLiveData.clear() {
6 | value = null
7 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/kts/LogKt.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.kts
2 |
3 | import android.util.Log
4 | import com.blankj.utilcode.util.AppUtils
5 |
6 |
7 | /**
8 | * @author why
9 | * @since 11/24/23
10 | */
11 | fun debugLog(msg: Any? = null, tag: String = "Debug") {
12 | if (AppUtils.isAppDebug().not()) return
13 | Log.i(tag, msg.toString())
14 | }
15 |
16 | inline fun debugLog(tag: String = "Debug", value: () -> Any?) {
17 | if (AppUtils.isAppDebug().not()) return
18 | Log.i(tag, value().toString())
19 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/kts/RegexKt.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.kts
2 |
3 | /**
4 | * @author why
5 | * @since 12/15/23
6 | */
7 | fun Regex.groupValueOne(targetText: String): String {
8 | return groupValue(targetText, 1)
9 | }
10 |
11 | fun Regex.groupValue(targetText: String, group: Int): String {
12 | return find(targetText)?.groupValues?.getOrNull(group).orEmpty()
13 | }
14 |
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/widget/button/AnimeButton.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.widget.button
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import com.google.android.material.button.MaterialButton
6 |
7 | /**
8 | * Class: [AnimeButton]
9 | *
10 | * @author why
11 | * @since 11/30/23
12 | */
13 | class AnimeButton @JvmOverloads constructor(
14 | context: Context, attrs: AttributeSet? = null
15 | ) : MaterialButton(context, attrs)
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/widget/emoji/span/IUiFaceTouchSpan.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.widget.emoji.span
2 |
3 | import android.view.View
4 |
5 | /**
6 | * ITouchableSpan
7 | *
8 | * @author why
9 | * @since 2012-03-20
10 | */
11 | interface IUiFaceTouchSpan {
12 | fun setPressed(pressed: Boolean)
13 |
14 | fun onClick(widget: View)
15 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/widget/musume/LAppWavFileHandler.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.widget.musume
2 |
3 | import com.xiaoyv.common.helper.AudioPlayer
4 | import com.xiaoyv.common.helper.ConfigHelper
5 |
6 | class LAppWavFileHandler(private val filePath: String) : Thread() {
7 |
8 | override fun run() {
9 | if (ConfigHelper.isRobotVoiceEnable.not()) return
10 |
11 | runCatching {
12 | AudioPlayer.instance
13 | .play(LAppDelegate.getInstance().activity.assets.openFd(filePath))
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/widget/text/AnimeEditTextView.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.widget.text
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import com.google.android.material.textfield.TextInputEditText
6 |
7 | /**
8 | * Class: [AnimeEditTextView]
9 | *
10 | * @author why
11 | * @since 11/25/23
12 | */
13 | open class AnimeEditTextView @JvmOverloads constructor(
14 | context: Context, attrs: AttributeSet? = null,
15 | ) : TextInputEditText(context, attrs)
--------------------------------------------------------------------------------
/lib-common/src/main/java/com/xiaoyv/common/widget/text/AnimeTextView.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.common.widget.text
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import com.google.android.material.textview.MaterialTextView
6 |
7 | /**
8 | * Class: [AnimeTextView]
9 | *
10 | * @author why
11 | * @since 11/24/23
12 | */
13 | open class AnimeTextView @JvmOverloads constructor(
14 | context: Context, attrs: AttributeSet? = null
15 | ) : MaterialTextView(context, attrs)
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/bg_login.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/bg_login.webp
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_autumn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_autumn.jpg
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_spring.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_spring.jpg
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_summer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_summer.jpg
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_winter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/bg_new_anime_winter.jpg
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/ic_balloon_pink.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/ic_balloon_pink.9.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/ic_emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/ic_emoji.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/ic_emoji_blank.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/ic_emoji_blank.webp
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/ic_logo_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/ic_logo_banner.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_0.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_1.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_2.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_3.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_4.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_5.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable-xxhdpi/segment_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-common/src/main/res/drawable-xxhdpi/segment_6.png
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_action_menu.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_add.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_add_comment.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_align_top.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_arrow_down.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_bottom_home.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_bottom_profile.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_bottom_timeline.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_calendar.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_collect_to.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_dollars.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_done.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_edit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_file.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_file_code.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_file_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_file_txt.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_folder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_format_italic.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_format_quote.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_format_size.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_magi.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_manage_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_menu.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_original.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_person.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_preview.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_random.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_refresh.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_right.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_send.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_star.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_star_empty.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/ic_thumb_up.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/selector_add.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/selector_btn_advance.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/selector_emoji.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/selector_format_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 | -
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_bottom_edge.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_bottom_edge_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_circle.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_cursor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_ep.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_full_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_message.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
12 |
16 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_no.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_rank.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_rank_start.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_state.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/drawable/shape_top_edge_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/layout/view_panel_emotion.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/layout/view_panel_more.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/lib-common/src/main/res/values/styles-chart.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
13 |
--------------------------------------------------------------------------------
/lib-doc/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/lib-doc/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib-doc/.idea/runConfigurations/Build_Bangumi_for_Android__xiaoyv_.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib-doc/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-doc/build/config.json:
--------------------------------------------------------------------------------
1 | {"productVersion":"1.0.0","productId":".","stage":"release","downloadTitle":"Get Bangumi for Android","keymaps":{},"searchMaxHits":75,"productName":"Bangumi for Android"}
--------------------------------------------------------------------------------
/lib-doc/build/current.help.version:
--------------------------------------------------------------------------------
1 | 1.0.0
--------------------------------------------------------------------------------
/lib-doc/build/images/completion_procedure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/build/images/completion_procedure.png
--------------------------------------------------------------------------------
/lib-doc/build/images/completion_procedure_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/build/images/completion_procedure_dark.png
--------------------------------------------------------------------------------
/lib-doc/build/images/convert_table_to_xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/build/images/convert_table_to_xml.png
--------------------------------------------------------------------------------
/lib-doc/build/images/convert_table_to_xml_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/build/images/convert_table_to_xml_dark.png
--------------------------------------------------------------------------------
/lib-doc/build/images/new_topic_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/build/images/new_topic_options.png
--------------------------------------------------------------------------------
/lib-doc/build/images/new_topic_options_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/build/images/new_topic_options_dark.png
--------------------------------------------------------------------------------
/lib-doc/build/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | You will be redirected shortly
5 |
6 | Redirecting…
7 | Click here if you are not redirected.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/lib-doc/c.list:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-doc/images/completion_procedure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/completion_procedure.png
--------------------------------------------------------------------------------
/lib-doc/images/completion_procedure_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/completion_procedure_dark.png
--------------------------------------------------------------------------------
/lib-doc/images/convert_table_to_xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/convert_table_to_xml.png
--------------------------------------------------------------------------------
/lib-doc/images/convert_table_to_xml_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/convert_table_to_xml_dark.png
--------------------------------------------------------------------------------
/lib-doc/images/new_topic_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/new_topic_options.png
--------------------------------------------------------------------------------
/lib-doc/images/new_topic_options_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/new_topic_options_dark.png
--------------------------------------------------------------------------------
/lib-doc/images/playstore_badge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-doc/images/playstore_badge.png
--------------------------------------------------------------------------------
/lib-doc/redirection-rules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 | Created after removal of "隐私政策" from Bangumi for Android
11 | privacy.html
12 |
13 |
--------------------------------------------------------------------------------
/lib-doc/topics/Author.md:
--------------------------------------------------------------------------------
1 | # 关于作者
2 |
3 | Overview articles give background information and provide context to a particular subject.
4 | Their goal is to explain a concept, not to teach or give instructions.
5 |
6 | ## What is product/service/concept
7 |
8 | Provide some background and context, explain choices and alternatives.
9 |
10 | ## Glossary
11 |
12 | A definition list or a glossary:
13 |
14 | First Term
15 | : This is the definition of the first term.
16 |
17 | Second Term
18 | : This is the definition of the second term.
19 |
--------------------------------------------------------------------------------
/lib-doc/topics/Overview.md:
--------------------------------------------------------------------------------
1 | # 功能介绍
2 |
3 | Overview articles give background information and provide context to a particular subject.
4 | Their goal is to explain a concept, not to teach or give instructions.
5 |
6 | ## What is product/service/concept
7 |
8 | Provide some background and context, explain choices and alternatives.
9 |
10 | ## Glossary
11 |
12 | A definition list or a glossary:
13 |
14 | First Term
15 | : This is the definition of the first term.
16 |
17 | Second Term
18 | : This is the definition of the second term.
19 |
--------------------------------------------------------------------------------
/lib-doc/topics/Update.md:
--------------------------------------------------------------------------------
1 | # 更新记录
2 |
3 | Overview articles give background information and provide context to a particular subject.
4 | Their goal is to explain a concept, not to teach or give instructions.
5 |
6 | ## What is product/service/concept
7 |
8 | Provide some background and context, explain choices and alternatives.
9 |
10 | ## Glossary
11 |
12 | A definition list or a glossary:
13 |
14 | First Term
15 | : This is the definition of the first term.
16 |
17 | Second Term
18 | : This is the definition of the second term.
19 |
--------------------------------------------------------------------------------
/lib-doc/v.list:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib-doc/writerside.cfg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/lib-emoji/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/lib-emoji/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/consumer-rules.pro
--------------------------------------------------------------------------------
/lib-emoji/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_01.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_02.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_03.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_04.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_05.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_06.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_07.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_08.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_09.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_10.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_11.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_12.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_13.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_14.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_15.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_16.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_17.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_18.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_19.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_20.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_21.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_22.png
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/bgm_23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/bgm_23.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_1.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_10.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_11.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_12.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_13.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_14.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_15.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_16.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_2.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_3.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_4.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_5.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_6.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_7.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_8.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_8.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/normal_9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/normal_9.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_01.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_01.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_02.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_02.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_03.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_03.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_04.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_04.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_05.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_05.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_06.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_06.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_07.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_07.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_08.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_08.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_09.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_09.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_10.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_100.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_100.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_101.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_101.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_102.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_102.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_11.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_12.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_13.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_14.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_15.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_16.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_17.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_17.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_18.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_18.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_19.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_19.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_20.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_20.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_21.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_21.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_22.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_22.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_23.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_24.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_24.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_25.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_25.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_26.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_26.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_27.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_27.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_28.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_28.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_29.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_29.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_30.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_30.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_31.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_31.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_32.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_33.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_33.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_34.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_34.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_35.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_35.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_36.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_36.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_37.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_37.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_38.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_38.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_39.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_39.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_40.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_40.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_41.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_41.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_42.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_42.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_43.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_43.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_44.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_44.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_45.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_45.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_46.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_46.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_47.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_47.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_48.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_48.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_49.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_49.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_50.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_51.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_51.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_52.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_52.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_53.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_53.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_54.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_54.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_55.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_55.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_56.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_56.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_57.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_57.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_58.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_58.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_59.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_59.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_60.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_60.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_61.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_61.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_62.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_62.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_63.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_63.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_64.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_65.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_65.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_66.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_66.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_67.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_67.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_68.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_68.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_69.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_69.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_70.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_70.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_71.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_71.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_72.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_72.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_73.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_73.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_74.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_74.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_75.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_75.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_76.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_76.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_77.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_77.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_78.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_78.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_79.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_79.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_80.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_80.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_81.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_81.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_82.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_82.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_83.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_83.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_84.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_84.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_85.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_85.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_86.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_86.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_87.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_87.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_88.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_88.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_89.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_89.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_90.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_90.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_91.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_91.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_92.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_92.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_93.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_93.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_94.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_94.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_95.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_95.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_96.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_96.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_97.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_97.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_98.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_98.gif
--------------------------------------------------------------------------------
/lib-emoji/src/main/res/drawable/tv_99.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-emoji/src/main/res/drawable/tv_99.gif
--------------------------------------------------------------------------------
/lib-emoji/src/test/java/com/xiaoyv/emoji/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.emoji
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 | }
--------------------------------------------------------------------------------
/lib-h5/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/lib-h5/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
3 | }
4 |
--------------------------------------------------------------------------------
/lib-h5/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
8 | Bangumi for Android
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/lib-h5/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-h5/public/favicon.ico
--------------------------------------------------------------------------------
/lib-h5/public/ic_holder.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-h5/public/ic_holder.jpg
--------------------------------------------------------------------------------
/lib-h5/src/App.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
16 |
--------------------------------------------------------------------------------
/lib-h5/src/assets/css/light.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --primary-color: #A23662;
3 | --surface-color: #FFFBFF;
4 | --on-primary-color: #FFFFFF;
5 | --on-surface-color: #201A1B;
6 | --on-surface-variant-color: #514347;
7 | --surface-container-color: #eeeeee;
8 | }
--------------------------------------------------------------------------------
/lib-h5/src/assets/image/bg_bangumi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-h5/src/assets/image/bg_bangumi.png
--------------------------------------------------------------------------------
/lib-h5/src/main.ts:
--------------------------------------------------------------------------------
1 | import {createApp} from 'vue';
2 | import App from './App.vue';
3 | import router from "./router";
4 | import './style.scss';
5 |
6 | // PC端调试时加载 light.css
7 | if (window.android == null) {
8 | import("./assets/css/light.css");
9 | }
10 |
11 | createApp(App)
12 | .use(router)
13 | .mount('#app');
14 |
--------------------------------------------------------------------------------
/lib-h5/src/pages/IndexView.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib-h5/src/router/index.ts:
--------------------------------------------------------------------------------
1 | import {createRouter, createWebHashHistory} from 'vue-router'
2 | import routes from "./routes.ts";
3 |
4 | const router = createRouter({
5 | routes,
6 | history: createWebHashHistory()
7 | });
8 |
9 | export default router
10 |
--------------------------------------------------------------------------------
/lib-h5/src/util/dollars.css:
--------------------------------------------------------------------------------
1 | #chatBox {
2 | width: 100% !important;
3 | margin: 16px !important;
4 | }
5 |
6 | #chatList {
7 | width: 100% !important;
8 | }
9 |
10 | #chatList ul {
11 | margin: 16px !important;
12 | }
13 |
14 | #chatList div.bubble div.content {
15 | max-width: 100% !important;
16 | }
17 |
18 | textarea[name=message] {
19 | }
--------------------------------------------------------------------------------
/lib-h5/src/util/interface/CommentFormEntity.ts:
--------------------------------------------------------------------------------
1 | export interface CommentFormEntity {
2 | action: string;
3 | inputs: {
4 | formhash: string;
5 | lastview: string;
6 | submit: string;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/lib-h5/src/util/interface/CommentTreeEntity.ts:
--------------------------------------------------------------------------------
1 | import {LikeActionEntity} from "./LikeActionEntity.ts";
2 | import {EmojiParam} from "./EmojiParam.ts";
3 |
4 | export interface CommentTreeEntity {
5 | id: string;
6 | mineId: string;
7 | floor: string;
8 | time: string;
9 | userAvatar: string;
10 | userName: string;
11 | userId: string;
12 | replyContent: string;
13 | replyJs: string;
14 | replyQuote: string;
15 | topicSubReply: CommentTreeEntity[];
16 | emojiParam: EmojiParam;
17 | emojis: Array;
18 | }
19 |
--------------------------------------------------------------------------------
/lib-h5/src/util/interface/EmojiParam.ts:
--------------------------------------------------------------------------------
1 | export interface EmojiParam {
2 | enable: boolean;
3 | likeType: string;
4 | likeMainId: string;
5 | likeCommentId: string;
6 | }
--------------------------------------------------------------------------------
/lib-h5/src/util/interface/LikeActionEntity.ts:
--------------------------------------------------------------------------------
1 | export interface LikeActionEntity {
2 | type: number;
3 | main_id: number;
4 | value: string;
5 | total: number;
6 | emoji: string;
7 | selected: boolean;
8 | users: {
9 | "username": string;
10 | "nickname": string;
11 | }[];
12 | }
--------------------------------------------------------------------------------
/lib-h5/src/util/interface/SampleRelateEntity.ts:
--------------------------------------------------------------------------------
1 | export interface SampleRelateEntity {
2 | title: string;
3 | items: RelateItem[];
4 | }
5 |
6 | export interface RelateItem {
7 | image: string;
8 | imageLink: string;
9 | title: string;
10 | titleLink: string;
11 | }
12 |
--------------------------------------------------------------------------------
/lib-h5/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "bundler",
7 | "allowSyntheticDefaultImports": true
8 | },
9 | "include": ["vite.config.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/lib-h5/vite.config.ts:
--------------------------------------------------------------------------------
1 | import {defineConfig} from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | base: "./",
7 | server: {
8 | port: 5173
9 | },
10 | plugins: [vue()],
11 | build: {
12 | chunkSizeWarningLimit: 3000,
13 | outDir: "../app/src/main/assets/h5/",
14 | emptyOutDir: true
15 | }
16 | })
17 |
--------------------------------------------------------------------------------
/lib-i18n/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/lib-i18n/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-i18n/consumer-rules.pro
--------------------------------------------------------------------------------
/lib-i18n/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/lib-i18n/src/test/java/com/xiaoyv/bangumi/i18n/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.bangumi.i18n
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 | }
--------------------------------------------------------------------------------
/lib-live2d/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/lib-live2d/libs/Live2DCubismCore.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-live2d/libs/Live2DCubismCore.aar
--------------------------------------------------------------------------------
/lib-live2d/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/effect/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide the function to add motion information to the model in an effect-like manner, such as automatic blinking and lip-sync.
3 | */
4 | package com.live2d.sdk.cubism.framework.effect;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/exception/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide the exception classes about Cubism SDK Framework.
3 | */
4 | package com.live2d.sdk.cubism.framework.exception;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/id/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide the function to manage parameter names, part names, and drawable names set in the model with the Cubism SDK original type.
3 | */
4 | package com.live2d.sdk.cubism.framework.id;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/math/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide the function for arthmetic operations required for operating and drawing models, such as matrix and vector calculations.
3 | */
4 | package com.live2d.sdk.cubism.framework.math;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/model/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide various functions (generate, update, destroy) for handling models.
3 | */
4 | package com.live2d.sdk.cubism.framework.model;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/motion/ICubismMotionEventFunction.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright(c) Live2D Inc. All rights reserved.
3 | *
4 | * Use of this source code is governed by the Live2D Open Software license
5 | * that can be found at http://live2d.com/eula/live2d-open-software-license-agreement_en.html.
6 | */
7 |
8 | package com.live2d.sdk.cubism.framework.motion;
9 |
10 | public interface ICubismMotionEventFunction {
11 | void apply(
12 | CubismMotionQueueManager caller,
13 | String eventValue,
14 | Object customData
15 | );
16 | }
17 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/motion/IFinishedMotionCallback.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright(c) Live2D Inc. All rights reserved.
3 | *
4 | * Use of this source code is governed by the Live2D Open Software license
5 | * that can be found at http://live2d.com/eula/live2d-open-software-license-agreement_en.html.
6 | */
7 |
8 | package com.live2d.sdk.cubism.framework.motion;
9 |
10 | /**
11 | * モーション再生終了コールバック
12 | */
13 | public interface IFinishedMotionCallback {
14 | void execute(ACubismMotion motion);
15 | }
16 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/motion/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide various functions (motion playback, parameter blending) for applying motion data to models.
3 | */
4 | package com.live2d.sdk.cubism.framework.motion;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/physics/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide functions for applying physics-based deformation operations to models.
3 | */
4 | package com.live2d.sdk.cubism.framework.physics;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/rendering/android/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide the renderer that implemetns graphics instructions for rendering models on the Android platform.
3 | */
4 | package com.live2d.sdk.cubism.framework.rendering.android;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/rendering/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide the renderer that implements graphics instructions for rendering models on various platforms.
3 | */
4 | package com.live2d.sdk.cubism.framework.rendering;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/utils/jsonparser/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide a function of JSON parser.
3 | */
4 | package com.live2d.sdk.cubism.framework.utils.jsonparser;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/main/java/com/live2d/sdk/cubism/framework/utils/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Provide utility functions such as a JSON parser and log output.
3 | */
4 | package com.live2d.sdk.cubism.framework.utils;
5 |
--------------------------------------------------------------------------------
/lib-live2d/src/test/java/com/xiaoyv/live/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.live
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 | }
--------------------------------------------------------------------------------
/lib-script/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /bgm/Bangumi 原生安卓 - 文档集.xlsx
3 |
--------------------------------------------------------------------------------
/lib-script/bgm/GroupTopic.db:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:dc6333d7e7e1e59932ce54d25ad541b026eec1adaed9d33b3db4c93efe4b4f63
3 | size 125681664
4 |
--------------------------------------------------------------------------------
/lib-script/bgm/bgm-script.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-script/bgm/bgm-script.jar
--------------------------------------------------------------------------------
/lib-script/libs/utils-1.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-script/libs/utils-1.1.jar
--------------------------------------------------------------------------------
/lib-script/src/main/java/com/xiaoyv/script/database/dao/SubjectDao.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.script.database.dao
2 |
3 | /**
4 | * Class: [SubjectDao]
5 | *
6 | * @author why
7 | * @since 1/15/24
8 | */
9 | data class SubjectDao(
10 | var id: Long = 0,
11 | var name: String = "",
12 | var name_cn: String = "",
13 | var type: Int = 0,
14 | var nsfw: Boolean = false,
15 | )
16 |
--------------------------------------------------------------------------------
/lib-subtitle/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/lib-subtitle/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-subtitle/consumer-rules.pro
--------------------------------------------------------------------------------
/lib-subtitle/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/lib-subtitle/src/main/java/com/xiaoyv/subtitle/api/subtitle/common/TimedLine.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.subtitle.api.subtitle.common
2 |
3 | import java.io.Serializable
4 |
5 | /**
6 | * Simple object that contains a text line with a time
7 | *
8 | */
9 | interface TimedLine : Serializable, Comparable, Comparator {
10 | /**
11 | * Get the text lines
12 | *
13 | * @return textLines
14 | */
15 | fun getTextLines(): ArrayList
16 |
17 | /**
18 | * Get the timed object
19 | *
20 | * @return the time
21 | */
22 | fun getTime(): TimedObject
23 | }
--------------------------------------------------------------------------------
/lib-subtitle/src/main/java/com/xiaoyv/subtitle/api/subtitle/config/SimpleSubConfig.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.subtitle.api.subtitle.config
2 |
3 | import com.xiaoyv.subtitle.api.subtitle.common.TimedTextFile
4 | import java.io.Serializable
5 |
6 | data class SimpleSubConfig @JvmOverloads constructor(
7 | var styleName: String? = null,
8 | var sub: TimedTextFile<*>,
9 | var fontconfig: Font = Font(),
10 | var alignment: Int = 0,
11 | var verticalMargin: Int = 10,
12 | ) : Serializable
13 |
--------------------------------------------------------------------------------
/lib-subtitle/src/main/java/com/xiaoyv/subtitle/api/utils/IOUtils.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.subtitle.api.utils
2 |
3 | import java.io.IOException
4 | import java.io.InputStream
5 |
6 | object IOUtils {
7 | @JvmStatic
8 | @Throws(IOException::class)
9 | fun toByteArray(stream: InputStream): ByteArray {
10 | return stream.readBytes()
11 | }
12 | }
--------------------------------------------------------------------------------
/lib-subtitle/src/main/java/com/xiaoyv/subtitle/api/utils/NumberUtils.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.subtitle.api.utils
2 |
3 | object NumberUtils {
4 | @JvmStatic
5 | fun toDouble(trim: String?): Double {
6 | return trim.orEmpty().toDoubleOrNull() ?: 0.0
7 | }
8 |
9 | @JvmStatic
10 | fun toInt(value: String?): Int {
11 | return value.orEmpty().toIntOrNull() ?: 0
12 | }
13 |
14 | @JvmStatic
15 | fun toFloat(trim: String?): Float {
16 | return trim.orEmpty().toFloatOrNull() ?: 0f
17 | }
18 | }
--------------------------------------------------------------------------------
/lib-subtitle/src/test/java/com/xiaoyv/subtitle/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.subtitle
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 | }
--------------------------------------------------------------------------------
/lib-thunder/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/lib-thunder/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-thunder/consumer-rules.pro
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/BtSubTaskDetail.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class BtSubTaskDetail(
10 | @Keep @JvmField var mFileIndex: Int = 0,
11 | @Keep @JvmField var mIsSelect: Boolean = false,
12 | @Keep @JvmField var mTaskInfo: XLTaskInfo = XLTaskInfo(),
13 | ) : Parcelable
14 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/GetBooleanParam.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class GetBooleanParam(
10 | @Keep @JvmField var mValue: Boolean = false,
11 | ) : Parcelable {
12 |
13 | fun getValue(): Boolean {
14 | return mValue
15 | }
16 | }
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/GetDownloadHead.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class GetDownloadHead(
10 | @Keep @JvmField var mHttpResponse: String? = null,
11 | @Keep @JvmField var mHttpState: Int = -1,
12 | ) : Parcelable
13 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/GetDownloadLibVersion.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class GetDownloadLibVersion(
10 | @Keep @JvmField var mVersion: String? = null,
11 | ) : Parcelable {
12 |
13 | fun getVersion(): String {
14 | return mVersion.orEmpty()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/GetFileName.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class GetFileName(
10 | @Keep @JvmField var mFileName: String? = null,
11 | ) : Parcelable {
12 |
13 | fun getFileName(): String {
14 | return mFileName.orEmpty()
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/GetTaskId.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class GetTaskId(
10 | @Keep @JvmField var mTaskId: Long = 0,
11 | ) : Parcelable {
12 |
13 | fun getTaskId(): Long {
14 | return mTaskId
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/MaxDownloadSpeedParam.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import androidx.annotation.Keep
4 | import android.os.Parcelable
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class MaxDownloadSpeedParam(
10 | @Keep @JvmField var mSpeed: Long = 0
11 | ) : Parcelable
12 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/ThunderUrlInfo.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import androidx.annotation.Keep
4 | import android.os.Parcelable
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class ThunderUrlInfo(
10 | @Keep @JvmField var mUrl: String? = null
11 | ) : Parcelable
12 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/TorrentFileInfo.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class TorrentFileInfo(
10 | @Keep @JvmField var mFileIndex: Int = 0,
11 | @Keep @JvmField var mFileName: String? = null,
12 | @Keep @JvmField var mFileSize: Long = 0,
13 | @Keep @JvmField var mRealIndex: Int = 0,
14 | @Keep @JvmField var mSubPath: String? = null
15 | ) : Parcelable
16 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/UploadControlParam.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import androidx.annotation.Keep
4 | import android.os.Parcelable
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class UploadControlParam(
10 | @Keep @JvmField var allowUploadNetWorkType: Int = 0,
11 | @Keep @JvmField var maxUploadBytes: Long = 0,
12 | @Keep @JvmField var maxUploadTime: Long = 0,
13 | @Keep @JvmField var uploadForNoTask: Boolean = false,
14 | @Keep @JvmField var uploadInterval: Long = 0
15 | ) : Parcelable
16 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/UrlQuickInfo.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class UrlQuickInfo(
10 | @Keep @JvmField var mContentType: String? = null,
11 | @Keep @JvmField var mFileNameAdvice: String? = null,
12 | @Keep @JvmField var mFileSize: Long = 0,
13 | @Keep @JvmField @XLConstant.QuickInfoState var mState: Int = 0,
14 | ) : Parcelable
15 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/XLFirstMediaState.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import androidx.annotation.Keep
4 | import android.os.Parcelable
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class XLFirstMediaState(
10 | @Keep @JvmField var blockCount: Int = 0,
11 | @Keep @JvmField var disposeError: Int = 0,
12 | @Keep @JvmField var recvedCount: Int = 0,
13 | @Keep @JvmField var startRelateMs: Long = 0,
14 | @Keep @JvmField var state: Int = 0,
15 | @Keep @JvmField var stopRelateMs: Long = 0
16 | ) : Parcelable
17 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/XLProductInfo.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class XLProductInfo(
10 | @Keep @JvmField var mProductKey: String? = null,
11 | @Keep @JvmField var mProductName: String? = null,
12 | ) : Parcelable
13 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/XLRangeInfo.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import androidx.annotation.Keep
4 | import android.os.Parcelable
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class XLRangeInfo(
10 | @Keep @JvmField var mRangeInfo: String? = null
11 | ) : Parcelable
12 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/XLSessionInfo.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class XLSessionInfo(
10 | @Keep @JvmField var mSendByte: Long = 0,
11 | @Keep @JvmField var mStartTime: Long = 0,
12 | ) : Parcelable
13 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/java/com/xunlei/downloadlib/parameter/XLTaskLocalUrl.kt:
--------------------------------------------------------------------------------
1 | package com.xunlei.downloadlib.parameter
2 |
3 | import android.os.Parcelable
4 | import androidx.annotation.Keep
5 | import kotlinx.parcelize.Parcelize
6 |
7 | @Keep
8 | @Parcelize
9 | data class XLTaskLocalUrl(
10 | @Keep
11 | @JvmField
12 | var mStrUrl: String? = null,
13 | ) : Parcelable
14 |
--------------------------------------------------------------------------------
/lib-thunder/src/main/jniLibs/arm64-v8a/libthunder.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-thunder/src/main/jniLibs/arm64-v8a/libthunder.so
--------------------------------------------------------------------------------
/lib-thunder/src/main/jniLibs/armeabi-v7a/libthunder.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaoyvyv/bangumi/632a803548848201a33d1f0ed73e31dedf342bc8/lib-thunder/src/main/jniLibs/armeabi-v7a/libthunder.so
--------------------------------------------------------------------------------
/lib-thunder/src/test/java/com/xiaoyv/thunder/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.xiaoyv.thunder
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 | }
--------------------------------------------------------------------------------