├── .gitignore
├── .idea
├── codeStyles
│ └── Project.xml
├── gradle.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── app
├── .gitignore
├── bilimiao-0.4.1(无启动图版).apk
├── build.gradle
├── debug
│ ├── app-debug.apk
│ └── output.json
├── proguard-rules.pro
├── release
│ ├── app-release.apk
│ └── output.json
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── a10miaomiao
│ │ └── bilimiao
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── region.json
│ ├── ic_add-web.png
│ ├── ic_back-web.png
│ ├── ic_close-web.png
│ ├── ic_more-web.png
│ ├── ic_ok-web.png
│ ├── ic_to_left-web.png
│ ├── ic_to_right-web.png
│ ├── java
│ │ └── com
│ │ │ └── a10miaomiao
│ │ │ └── bilimiao
│ │ │ ├── SplashActivity.kt
│ │ │ ├── activitys
│ │ │ ├── AboutActivity.kt
│ │ │ ├── BiliBangumiInfoActivity.kt
│ │ │ ├── DanmakuActivity.kt
│ │ │ ├── DanmakuDetailsActivity.kt
│ │ │ ├── DiliInfoActivity.kt
│ │ │ ├── DownloadActivity.kt
│ │ │ ├── EditPreventKeywordActivity.kt
│ │ │ ├── H5PlayerActivity.kt
│ │ │ ├── InfoActivity.kt
│ │ │ ├── MainActivity.kt
│ │ │ ├── PhotoActivity.kt
│ │ │ ├── PlayerActivity.kt
│ │ │ ├── RankActivity.kt
│ │ │ ├── RegionTypeDetailsActivity.kt
│ │ │ ├── SearchActivity.kt
│ │ │ ├── SelectorDateActivity.kt
│ │ │ ├── SettingActivity.kt
│ │ │ ├── ThemePickerActivity.kt
│ │ │ ├── UpperChannelVideoListActivity.kt
│ │ │ ├── UpperDetailActivity.kt
│ │ │ ├── UpperVideoListActivity.kt
│ │ │ └── VideoInfoActivity.kt
│ │ │ ├── adapter
│ │ │ ├── BangumiEpisodesAdapter.kt
│ │ │ ├── BangumiRankAdapter.kt
│ │ │ ├── DanmakuAdapter.kt
│ │ │ ├── DownloadAdapter.kt
│ │ │ ├── EditPreventKeywordAdapter.kt
│ │ │ ├── HomeRegionItemAdapter.kt
│ │ │ ├── PagerAdapter.kt
│ │ │ ├── RankOrdersAdapter.kt
│ │ │ ├── RegionPagerAdapter.kt
│ │ │ ├── RegionTypeDetailsAdapter.kt
│ │ │ ├── SearchBoxHistoryAdapter.kt
│ │ │ ├── ThemePickerAdapter.kt
│ │ │ ├── UpperChannelAdapter.kt
│ │ │ ├── UpperChannelVideoListAdapter.kt
│ │ │ ├── UpperVideoListAdapter.kt
│ │ │ ├── VideoPagesAdapter.kt
│ │ │ ├── VideoRankAdapter.kt
│ │ │ ├── helper
│ │ │ │ ├── EndlessRecyclerOnScrollListener.java
│ │ │ │ └── RecyclerOnScrollListener.kt
│ │ │ └── search
│ │ │ │ ├── BangumiResultAdapter.kt
│ │ │ │ ├── DiliResultAdapter.kt
│ │ │ │ ├── MovieResultsAdapter.kt
│ │ │ │ ├── SearchResultAdapter.kt
│ │ │ │ └── UpperResultAdapter.kt
│ │ │ ├── base
│ │ │ ├── BaseActivity.kt
│ │ │ ├── BaseFragment.kt
│ │ │ └── LazyLoadFragment.java
│ │ │ ├── db
│ │ │ ├── DownloadDB.kt
│ │ │ ├── KeyWordDB.kt
│ │ │ └── PreventUpperDB.kt
│ │ │ ├── dialog
│ │ │ ├── DownloadDialog.kt
│ │ │ ├── EditDialog.kt
│ │ │ ├── QueryUserDialog.kt
│ │ │ └── SearchBoxFragment.kt
│ │ │ ├── entity
│ │ │ ├── AnimeDetailsInfo.kt
│ │ │ ├── AudioDetailsInfo.kt
│ │ │ ├── BangumiEpisodesInfo.kt
│ │ │ ├── BangumiRankInfo.kt
│ │ │ ├── CvDetailsInfo.kt
│ │ │ ├── DanmakuInfo.kt
│ │ │ ├── DetailsInfo.kt
│ │ │ ├── DiliAnimeInfo.kt
│ │ │ ├── DownEntryInfo.kt
│ │ │ ├── DownloadInfo.kt
│ │ │ ├── EpDetailsInfo.kt
│ │ │ ├── HomeRegionInfo.kt
│ │ │ ├── LiveDetailsInfo.kt
│ │ │ ├── MiaoAdInfo.kt
│ │ │ ├── RegionTypeDetailsInfo.kt
│ │ │ ├── RegionTypesInfo.java
│ │ │ ├── SearchArchiveInfo.java
│ │ │ ├── SearchBangumiInfo.java
│ │ │ ├── SearchDiliInfo.kt
│ │ │ ├── SearchDiliInfo2.kt
│ │ │ ├── SearchMovieInfo.java
│ │ │ ├── SearchUpperInfo.java
│ │ │ ├── SubmitVideosInfo.kt
│ │ │ ├── ThemePickerInfo.kt
│ │ │ ├── UpperChannelInfo.kt
│ │ │ ├── UpperChannelVideoInfo.kt
│ │ │ ├── VideoDetailsInfo.kt
│ │ │ ├── VideoRankInfo.kt
│ │ │ └── client
│ │ │ │ ├── ClientDownInfo.kt
│ │ │ │ ├── DownIndexInfo.kt
│ │ │ │ └── EntryInfo.kt
│ │ │ ├── fragments
│ │ │ ├── EditPreventKeywordFragments.kt
│ │ │ ├── PreventUpperFragments.kt
│ │ │ ├── RegionTypeDetailsFragment.kt
│ │ │ ├── SelectorDateFragment.kt
│ │ │ ├── SettingPreferenceFragment.kt
│ │ │ ├── download
│ │ │ │ ├── DownloadedFragment.kt
│ │ │ │ └── DownloadingFragment.kt
│ │ │ ├── rank
│ │ │ │ ├── BangumiRankFragment.kt
│ │ │ │ └── VideoRankFragment.kt
│ │ │ └── search
│ │ │ │ ├── BangumiResultFragment.kt
│ │ │ │ ├── DiliResultFragment.kt
│ │ │ │ ├── MovieResultsFragment.kt
│ │ │ │ ├── SearchResultFragment.kt
│ │ │ │ └── UpperResultFragment.kt
│ │ │ ├── media
│ │ │ ├── BiliDanmukuParser.java
│ │ │ ├── CompressionTools.java
│ │ │ ├── MyMediaController.kt
│ │ │ ├── OutlineTextView.java
│ │ │ ├── ScreenResolution.java
│ │ │ ├── VideoPlayerView.java
│ │ │ ├── VideoSource.kt
│ │ │ └── callback
│ │ │ │ ├── DanmakuSwitchListener.java
│ │ │ │ ├── MediaController.kt
│ │ │ │ ├── MediaPlayerListener.java
│ │ │ │ └── VideoBackListener.java
│ │ │ ├── netword
│ │ │ ├── ApiHelper.java
│ │ │ ├── BiliApiService.kt
│ │ │ ├── DownloadManager.kt
│ │ │ └── MiaoHttp.kt
│ │ │ ├── service
│ │ │ └── DownloadService.kt
│ │ │ ├── utils
│ │ │ ├── AnimationUtil.java
│ │ │ ├── BiliClientDownHelper.kt
│ │ │ ├── BiliDanmukuCompressionTools.java
│ │ │ ├── ConstantUtil.kt
│ │ │ ├── DisplayUtil.kt
│ │ │ ├── FileUtil.kt
│ │ │ ├── IntentHandlerUtil.kt
│ │ │ ├── KeyboardUtil.kt
│ │ │ ├── LogUtil.kt
│ │ │ ├── NumberUtil.java
│ │ │ ├── SelectorDateUtil.kt
│ │ │ ├── SettingUtil.kt
│ │ │ ├── StatusBarUtil.java
│ │ │ ├── SystemBarHelper.java
│ │ │ ├── TextUtil.kt
│ │ │ ├── ThemeHelper.kt
│ │ │ └── ViewUtils.java
│ │ │ ├── views
│ │ │ ├── DividerItemDecoration.java
│ │ │ ├── LoadMoreView.kt
│ │ │ ├── QualityPopupWindow.kt
│ │ │ ├── RankOrdersPopupWindow.kt
│ │ │ ├── RankOrdersView.kt
│ │ │ └── UpperHeaderView.kt
│ │ │ └── widget
│ │ │ ├── DatePickerView.kt
│ │ │ ├── DropDownMenu.kt
│ │ │ ├── MonthPickerView.java
│ │ │ ├── MySpannableTextView.java
│ │ │ ├── ScaleImageView.java
│ │ │ ├── SelectView.kt
│ │ │ └── VideoPlayerView.kt
│ ├── res
│ │ ├── anim
│ │ │ ├── activity_out_anim.xml
│ │ │ ├── activity_start_anim.xml
│ │ │ ├── pophidden_operation_anim.xml
│ │ │ ├── pophidden_operation_anim_left.xml
│ │ │ ├── popshow_operation_anim_down.xml
│ │ │ └── popshow_operation_anim_left.xml
│ │ ├── drawable
│ │ │ ├── bili_default_image_tv.9.png
│ │ │ ├── bili_player_back_button.png
│ │ │ ├── bili_player_danmaku_is_closed.png
│ │ │ ├── bili_player_danmaku_is_open.png
│ │ │ ├── bili_player_play_can_pause.png
│ │ │ ├── bili_player_play_can_play.png
│ │ │ ├── black_badge.xml
│ │ │ ├── gradient.xml
│ │ │ ├── ic_add_white_24dp.xml
│ │ │ ├── ic_arrow_back_white_24dp.xml
│ │ │ ├── ic_arrow_drop_down_24dp.xml
│ │ │ ├── ic_arrow_drop_up_24dp.xml
│ │ │ ├── ic_back_24dp.xml
│ │ │ ├── ic_category_clip_video.png
│ │ │ ├── ic_category_t1.png
│ │ │ ├── ic_category_t11.png
│ │ │ ├── ic_category_t119.png
│ │ │ ├── ic_category_t129.png
│ │ │ ├── ic_category_t13.png
│ │ │ ├── ic_category_t155.png
│ │ │ ├── ic_category_t160.png
│ │ │ ├── ic_category_t165.png
│ │ │ ├── ic_category_t167.png
│ │ │ ├── ic_category_t181.png
│ │ │ ├── ic_category_t23.png
│ │ │ ├── ic_category_t3.png
│ │ │ ├── ic_category_t36.png
│ │ │ ├── ic_category_t4.png
│ │ │ ├── ic_category_t5.png
│ │ │ ├── ic_check_white_24dp.xml
│ │ │ ├── ic_close_white_24dp.xml
│ │ │ ├── ic_download_white.xml
│ │ │ ├── ic_fab_play.png
│ │ │ ├── ic_home_more_download.png
│ │ │ ├── ic_home_more_prevent.png
│ │ │ ├── ic_home_more_rank.png
│ │ │ ├── ic_info_danmakus.png
│ │ │ ├── ic_info_views.png
│ │ │ ├── ic_keyboard_arrow_left_black_24dp.xml
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_link_black_24dp.xml
│ │ │ ├── ic_lock_open_white_24dp.xml
│ │ │ ├── ic_more_vert_grey_24dp.xml
│ │ │ ├── ic_movie_pay_area_limit.png
│ │ │ ├── ic_navigate_next_black_24dp.xml
│ │ │ ├── ic_play_circle_outline_black_24dp.png
│ │ │ ├── ic_player_locked_2.png
│ │ │ ├── ic_player_media_quality_medium.png
│ │ │ ├── ic_region_ad.png
│ │ │ ├── ic_region_dh.png
│ │ │ ├── ic_region_dsj.png
│ │ │ ├── ic_region_dy.png
│ │ │ ├── ic_region_fj.png
│ │ │ ├── ic_region_fj_domestic.png
│ │ │ ├── ic_region_gc.png
│ │ │ ├── ic_region_kj.png
│ │ │ ├── ic_region_sh.png
│ │ │ ├── ic_region_ss.png
│ │ │ ├── ic_region_wd.png
│ │ │ ├── ic_region_yl.png
│ │ │ ├── ic_region_ys.png
│ │ │ ├── ic_region_yx.png
│ │ │ ├── ic_region_yy.png
│ │ │ ├── ic_search_24dp.xml
│ │ │ ├── ic_search_bg_24dp.xml
│ │ │ ├── ic_search_white.xml
│ │ │ ├── ic_subtitles_black_24dp.png
│ │ │ ├── ic_tv_play.png
│ │ │ ├── ic_tv_stop.png
│ │ │ ├── ic_unfold_more_black_24dp.xml
│ │ │ ├── ico_user_default.png
│ │ │ ├── icon_up.png
│ │ │ ├── layer_progress.xml
│ │ │ ├── selector_pick_item.xml
│ │ │ ├── shape_semicircle_left.xml
│ │ │ ├── shape_semicircle_right.xml
│ │ │ └── videoplayer_erect_icon_round.png
│ │ ├── layout
│ │ │ ├── activity_about.xml
│ │ │ ├── activity_danmaku.xml
│ │ │ ├── activity_danmaku_details.xml
│ │ │ ├── activity_dili_info.xml
│ │ │ ├── activity_download.xml
│ │ │ ├── activity_edit_prevent_keyword.xml
│ │ │ ├── activity_h5_player.xml
│ │ │ ├── activity_info.xml
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_photo.xml
│ │ │ ├── activity_player.xml
│ │ │ ├── activity_region_details.xml
│ │ │ ├── activity_search.xml
│ │ │ ├── activity_selector_date.xml
│ │ │ ├── activity_setting.xml
│ │ │ ├── activity_splash.xml
│ │ │ ├── activity_theme_picker.xml
│ │ │ ├── activity_uper_deyail_info.xml
│ │ │ ├── activity_uper_video_list.xml
│ │ │ ├── activity_video_info.xml
│ │ │ ├── content_video_info.xml
│ │ │ ├── dialog_download.xml
│ │ │ ├── dialog_edit_name.xml
│ │ │ ├── dialog_search_box.xml
│ │ │ ├── dialog_user.xml
│ │ │ ├── fragment_download.xml
│ │ │ ├── fragment_edit_prevent_keyword.xml
│ │ │ ├── fragment_prevent_upper.xml
│ │ │ ├── fragment_rank_all.xml
│ │ │ ├── fragment_rank_bangumi.xml
│ │ │ ├── fragment_region_details.xml
│ │ │ ├── fragment_search_result.xml
│ │ │ ├── fragment_search_result_upper.xml
│ │ │ ├── fragment_selector_date.xml
│ │ │ ├── include_title_bar.xml
│ │ │ ├── item_bangumi_episodes.xml
│ │ │ ├── item_danmakiu.xml
│ │ │ ├── item_download.xml
│ │ │ ├── item_home_region.xml
│ │ │ ├── item_prevent_keyword.xml
│ │ │ ├── item_rank_bangumi.xml
│ │ │ ├── item_rank_orders.xml
│ │ │ ├── item_rank_video.xml
│ │ │ ├── item_region_details.xml
│ │ │ ├── item_search_bangumi.xml
│ │ │ ├── item_search_box_history.xml
│ │ │ ├── item_search_upper.xml
│ │ │ ├── item_theme_picker.xml
│ │ │ ├── item_uper_channel.xml
│ │ │ ├── item_uper_video_list.xml
│ │ │ ├── layout_date_picker.xml
│ │ │ ├── layout_list_null.xml
│ │ │ ├── layout_load_more.xml
│ │ │ ├── layout_media_controller.xml
│ │ │ ├── layout_month_picker.xml
│ │ │ ├── layout_quality.xml
│ │ │ ├── layout_select_view.xml
│ │ │ ├── layout_selectlist.xml
│ │ │ └── layout_upper_header.xml
│ │ ├── menu
│ │ │ ├── add.xml
│ │ │ ├── close.xml
│ │ │ ├── danmaku.xml
│ │ │ ├── main.xml
│ │ │ ├── selector.xml
│ │ │ ├── upper.xml
│ │ │ └── video_info.xml
│ │ ├── values-v19
│ │ │ └── styles.xml
│ │ ├── values-v21
│ │ │ ├── styles.xml
│ │ │ └── theme.xml
│ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ ├── styles.xml
│ │ │ └── theme.xml
│ │ └── xml
│ │ │ ├── preference_setting.xml
│ │ │ └── provider_paths.xml
│ └── shape_launch-web.png
│ └── test
│ └── java
│ └── com
│ └── a10miaomiao
│ └── bilimiao
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 已废弃
2 | ## 已经转移到[bilimiao2](https://github.com/10miaomiao/bilimiao2)
3 |
4 |
5 | ## bilimiao
6 |
7 | ### Download apk
8 | * [去酷安下载](https://www.coolapk.com/apk/164982)
9 |
10 | ### Instructions
11 | * 如果你有任何意见,bug,问题都可以给我提Issuse,我会第一时间关注并解决.
12 | * 后期会抽时间来重构该项目,让整体架构更清晰。
13 |
14 | ### Thanks to the open source project
15 | * [RxJava](https://github.com/ReactiveX/RxJava)
16 | * [RxAndroid](https://github.com/ReactiveX/RxAndroid)
17 | * [RxLifecycle](https://github.com/trello/RxLifecycle)
18 | * [okhttp](https://github.com/square/okhttp)
19 | * [okhttputils](https://github.com/hongyangAndroid/okhttputils)
20 | * [glide](https://github.com/bumptech/glide)
21 | * [BaseRecyclerViewAdapterHelper](https://github.com/CymChad/BaseRecyclerViewAdapterHelper)
22 | * [bilibili-sdk-go](https://github.com/WhiteBlue/bilibili-sdk-go)
23 | * [rclayout](https://github.com/GcsSloop/rclayout)
24 | * [SearchDialog](https://github.com/wenwenwen888/SearchDialog)
25 |
26 | ### About me
27 | * B站 [10喵喵](https://space.bilibili.com/6789810/)
28 |
29 | ### License
30 | Copyright 2017 10miaomiao
31 |
32 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
33 |
34 | http://www.apache.org/licenses/LICENSE-2.0
35 |
36 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
37 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/bilimiao-0.4.1(无启动图版).apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/bilimiao-0.4.1(无启动图版).apk
--------------------------------------------------------------------------------
/app/debug/app-debug.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/debug/app-debug.apk
--------------------------------------------------------------------------------
/app/debug/output.json:
--------------------------------------------------------------------------------
1 | [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":6},"path":"app-debug.apk","properties":{"packageId":"com.a10miaomiao.bilimiao","split":"","minSdkVersion":"15"}}]
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in D:\Android\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/release/app-release.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/release/app-release.apk
--------------------------------------------------------------------------------
/app/release/output.json:
--------------------------------------------------------------------------------
1 | [{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":29,"versionName":"1.3.1.1","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/a10miaomiao/bilimiao/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.a10miaomiao.bilimiao", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/ic_add-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_add-web.png
--------------------------------------------------------------------------------
/app/src/main/ic_back-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_back-web.png
--------------------------------------------------------------------------------
/app/src/main/ic_close-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_close-web.png
--------------------------------------------------------------------------------
/app/src/main/ic_more-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_more-web.png
--------------------------------------------------------------------------------
/app/src/main/ic_ok-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_ok-web.png
--------------------------------------------------------------------------------
/app/src/main/ic_to_left-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_to_left-web.png
--------------------------------------------------------------------------------
/app/src/main/ic_to_right-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/ic_to_right-web.png
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/SplashActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao
2 |
3 | import android.content.Intent
4 | import android.os.Bundle
5 | import com.a10miaomiao.bilimiao.activitys.MainActivity
6 | import com.trello.rxlifecycle.components.RxActivity
7 | import rx.Observable
8 | import rx.android.schedulers.AndroidSchedulers
9 | import java.util.concurrent.TimeUnit
10 |
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/8/31.
14 | */
15 | class SplashActivity: RxActivity(){
16 | override fun onCreate(savedInstanceState: Bundle?) {
17 | super.onCreate(savedInstanceState)
18 | setContentView(R.layout.activity_splash)
19 | Observable.timer(500, TimeUnit.MILLISECONDS)
20 | .compose(bindToLifecycle())
21 | .observeOn(AndroidSchedulers.mainThread())
22 | .subscribe { aLong ->
23 | startActivity(Intent(this@SplashActivity, MainActivity::class.java))
24 | this@SplashActivity.finish()
25 | }
26 |
27 | }
28 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/activitys/BiliBangumiInfoActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.activitys
2 |
3 | import android.os.Bundle
4 | import com.a10miaomiao.bilimiao.R
5 | import com.a10miaomiao.bilimiao.adapter.VideoPagesAdapter
6 | import com.a10miaomiao.bilimiao.base.BaseActivity
7 | import com.a10miaomiao.bilimiao.entity.DiliAnimeInfo
8 | import com.a10miaomiao.bilimiao.entity.VideoDetailsInfo
9 | import com.a10miaomiao.bilimiao.utils.ConstantUtil
10 |
11 | class BiliBangumiInfoActivity : BaseActivity() {
12 | override var layoutResID = R.layout.activity_dili_info
13 | private var info: DiliAnimeInfo? = null
14 | val pages = ArrayList()
15 | val pagesAdapter = VideoPagesAdapter(pages)
16 |
17 | val id by lazy {
18 | intent.extras.getString(ConstantUtil.ID)
19 | }
20 |
21 | override fun initViews(savedInstanceState: Bundle?) {
22 |
23 | loadData()
24 | }
25 |
26 | override fun initToolBar() {
27 |
28 | }
29 |
30 | private fun loadData(){
31 |
32 | }
33 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/activitys/DownloadActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.activitys
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.support.design.widget.TabLayout
7 | import com.a10miaomiao.bilimiao.R
8 | import com.a10miaomiao.bilimiao.adapter.PagerAdapter
9 | import com.a10miaomiao.bilimiao.base.BaseActivity
10 | import com.a10miaomiao.bilimiao.fragments.download.DownloadedFragment
11 | import com.a10miaomiao.bilimiao.fragments.download.DownloadingFragment
12 | import kotlinx.android.synthetic.main.activity_download.*
13 |
14 |
15 | /**
16 | * Created by 10喵喵 on 2018/1/11.
17 | */
18 | class DownloadActivity : BaseActivity() {
19 | override var layoutResID = R.layout.activity_download
20 |
21 | val mAdapter by lazy {
22 | PagerAdapter(supportFragmentManager)
23 | }
24 |
25 | override fun initViews(savedInstanceState: Bundle?) {
26 | mAdapter.titles.addAll(arrayListOf("下载中","已完成"))
27 | mAdapter.fragments.addAll(arrayListOf(
28 | DownloadingFragment(),
29 | DownloadedFragment()
30 | ))
31 |
32 | vp_view.adapter = mAdapter //给ViewPager设置适配器
33 | tabs.apply {
34 | tabMode = TabLayout.MODE_FIXED
35 | setupWithViewPager(vp_view)//将TabLayout和ViewPager关联起来。
36 | setTabsFromPagerAdapter(mAdapter)//给Tabs设置适配器
37 | }
38 | }
39 |
40 | override fun initToolBar() {
41 | toolbar.title = "下载姬(测试版)"
42 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp)
43 | toolbar.setNavigationOnClickListener {
44 | finish()
45 | }
46 | }
47 |
48 | companion object {
49 | fun launch(activity: Activity) {
50 | val mIntent = Intent(activity, DownloadActivity::class.java)
51 | activity.startActivity(mIntent)
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/activitys/EditPreventKeywordActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.activitys
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.support.design.widget.TabLayout
7 | import com.a10miaomiao.bilimiao.R
8 | import com.a10miaomiao.bilimiao.adapter.PagerAdapter
9 | import com.a10miaomiao.bilimiao.base.BaseActivity
10 | import com.a10miaomiao.bilimiao.fragments.EditPreventKeywordFragments
11 | import com.a10miaomiao.bilimiao.fragments.PreventUpperFragments
12 | import kotlinx.android.synthetic.main.activity_edit_prevent_keyword.*
13 |
14 | /**
15 | * Created by 10喵喵 on 2017/10/24.
16 | */
17 | class EditPreventKeywordActivity : BaseActivity() {
18 | override var layoutResID = R.layout.activity_edit_prevent_keyword
19 |
20 |
21 | override fun initViews(savedInstanceState: Bundle?) {
22 | val mAdapter = PagerAdapter(supportFragmentManager)
23 | mAdapter.titles.addAll(arrayListOf(
24 | "关键字","up主"
25 | ))
26 | mAdapter.fragments.addAll(arrayListOf(
27 | EditPreventKeywordFragments(),
28 | PreventUpperFragments()
29 | ))
30 | tabs.tabMode = TabLayout.LAYOUT_MODE_CLIP_BOUNDS
31 | vp_view.adapter = mAdapter//给ViewPager设置适配器
32 | tabs.setupWithViewPager(vp_view)//将TabLayout和ViewPager关联起来。
33 | tabs.setTabsFromPagerAdapter(mAdapter)//给Tabs设置适配器
34 | }
35 |
36 | override fun initToolBar() {
37 | toolbar.title = "屏蔽设置"
38 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp)
39 | toolbar.setNavigationOnClickListener({ finish() })
40 | }
41 |
42 |
43 | companion object {
44 | fun launch(activity: Activity) {
45 | val mIntent = Intent(activity, EditPreventKeywordActivity::class.java)
46 | activity.startActivity(mIntent)
47 | }
48 | }
49 |
50 | }
51 |
52 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/activitys/RankActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.activitys
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.support.design.widget.TabLayout
7 | import com.a10miaomiao.bilimiao.R
8 | import com.a10miaomiao.bilimiao.adapter.PagerAdapter
9 | import com.a10miaomiao.bilimiao.base.BaseActivity
10 | import com.a10miaomiao.bilimiao.fragments.rank.BangumiRankFragment
11 | import com.a10miaomiao.bilimiao.fragments.rank.VideoRankFragment
12 | import com.a10miaomiao.bilimiao.netword.BiliApiService
13 | import kotlinx.android.synthetic.main.activity_edit_prevent_keyword.*
14 |
15 | /**
16 | * Created by 10喵喵 on 2017/11/30.
17 | */
18 | class RankActivity : BaseActivity(){
19 | override var layoutResID = R.layout.activity_edit_prevent_keyword
20 |
21 | override fun initViews(savedInstanceState: Bundle?) {
22 | val mAdapter = PagerAdapter(supportFragmentManager)
23 | mAdapter.titles.addAll(arrayListOf(
24 | "全站榜","原创榜","新番榜","新人榜"
25 | ))
26 |
27 | mAdapter.fragments.addAll(arrayListOf(
28 | VideoRankFragment.newInstance(BiliApiService::getRankAll),
29 | VideoRankFragment.newInstance(BiliApiService::getRankOrigin),
30 | BangumiRankFragment(),
31 | VideoRankFragment.newInstance(BiliApiService::getRankRookie)
32 | ))
33 | tabs.tabMode = TabLayout.LAYOUT_MODE_CLIP_BOUNDS
34 | vp_view.adapter = mAdapter//给ViewPager设置适配器
35 | tabs.setupWithViewPager(vp_view)//将TabLayout和ViewPager关联起来。
36 | tabs.setTabsFromPagerAdapter(mAdapter)//给Tabs设置适配器
37 | }
38 |
39 | override fun initToolBar() {
40 | toolbar.title = "排行榜"
41 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp)
42 | toolbar.setNavigationOnClickListener({ finish() })
43 | }
44 |
45 |
46 | companion object {
47 | fun launch(activity: Activity) {
48 | val mIntent = Intent(activity, RankActivity::class.java)
49 | activity.startActivity(mIntent)
50 | }
51 | }
52 |
53 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/activitys/SettingActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.activitys
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import com.a10miaomiao.bilimiao.R
7 | import com.a10miaomiao.bilimiao.base.BaseActivity
8 | import com.a10miaomiao.bilimiao.fragments.SettingPreferenceFragment
9 | import com.a10miaomiao.bilimiao.utils.ConstantUtil
10 | import kotlinx.android.synthetic.main.include_title_bar.*
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/10/3.
14 | */
15 | class SettingActivity : BaseActivity() {
16 | override var layoutResID = R.layout.activity_setting
17 | //val select_items = arrayOf("哔哩哔哩", "哔哩哔哩(play版)", "哔哩哔哩概念版", "哔哩哔哩白")
18 | val select_items = arrayOf("哔哩哔哩", "哔哩哔哩(play版)", "哔哩哔哩概念版")
19 |
20 | override fun initViews(savedInstanceState: Bundle?) {
21 | var fragment = SettingPreferenceFragment()
22 | fragment.arguments = intent.extras
23 | fragmentManager.beginTransaction()
24 | .replace(R.id.prefs_frame, fragment)
25 | .commit()
26 | }
27 |
28 |
29 | override fun initToolBar() {
30 | toolbar.title = "设置"
31 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp)
32 | toolbar.setNavigationOnClickListener {
33 | finish()
34 | }
35 | }
36 |
37 | companion object {
38 | fun launch(activity: Activity) {
39 | val mIntent = Intent(activity, SettingActivity::class.java)
40 | mIntent.putExtra(ConstantUtil.DO, 0)
41 | activity.startActivity(mIntent)
42 | }
43 |
44 | fun selectPalyer(activity: Activity) {
45 | val mIntent = Intent(activity, SettingActivity::class.java)
46 | mIntent.putExtra(ConstantUtil.DO, 1)
47 | activity.startActivity(mIntent)
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/BangumiEpisodesAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.BangumiEpisodesInfo
5 | import com.chad.library.adapter.base.BaseQuickAdapter
6 | import com.chad.library.adapter.base.BaseViewHolder
7 |
8 | /**
9 | * Created by 10喵喵 on 2017/10/26.
10 | */
11 | class BangumiEpisodesAdapter(list : List) :
12 | BaseQuickAdapter(R.layout.item_bangumi_episodes,list){
13 | override fun convert(helper: BaseViewHolder?, item: BangumiEpisodesInfo?) {
14 | helper?.setText(R.id.tv_title,"${item?.index} ${item?.index_title}")
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/BangumiRankAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.util.TypedValue
4 | import android.widget.TextView
5 | import com.a10miaomiao.bilimiao.R
6 | import com.a10miaomiao.bilimiao.entity.BangumiRankInfo
7 | import com.bumptech.glide.Glide
8 | import com.bumptech.glide.load.engine.DiskCacheStrategy
9 | import com.chad.library.adapter.base.BaseQuickAdapter
10 | import com.chad.library.adapter.base.BaseViewHolder
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/12/2.
14 | */
15 | class BangumiRankAdapter(list : List)
16 | : BaseQuickAdapter(R.layout.item_rank_bangumi,list) {
17 | override fun convert(helper: BaseViewHolder?, item: BangumiRankInfo.BangumiInfo?) {
18 | Glide.with(mContext)
19 | .load(item?.cover)
20 | .centerCrop()
21 | .diskCacheStrategy(DiskCacheStrategy.ALL)
22 | .placeholder(R.drawable.bili_default_image_tv)
23 | .dontAnimate()
24 | .into(helper?.getView(R.id.item_img))
25 |
26 | helper?.setText(R.id.item_title,item?.title)
27 | if(item?.is_finish == 1)//是否完结
28 | helper?.setText(R.id.item_count, "已完结,全${item?.newest_ep_index}话")
29 | else
30 | helper?.setText(R.id.item_count, "连载中,更新至第${item?.newest_ep_index}话")
31 | helper?.setText(R.id.item_details, "综合评分:${item?.pts}")
32 |
33 | var sort_num = helper!!.getView(R.id.item_sort_num)
34 | sort_num.text = item!!.sort_num.toString()
35 | sort_num.setTextColor(
36 | if(item!!.sort_num <= 3) {
37 | val typedValue = TypedValue()
38 | mContext.theme.resolveAttribute(android.R.attr.colorPrimary, typedValue, true)
39 | mContext.resources.getColor(typedValue.resourceId)
40 | }else
41 | mContext.resources.getColor(R.color.text_black)
42 | )
43 |
44 | }
45 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/DanmakuAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.DanmakuInfo
5 | import com.chad.library.adapter.base.BaseQuickAdapter
6 | import com.chad.library.adapter.base.BaseViewHolder
7 |
8 | /**
9 | * Created by 10喵喵 on 2017/11/1.
10 | */
11 | class DanmakuAdapter(list: List) :
12 | BaseQuickAdapter(R.layout.item_danmakiu,list) {
13 | override fun convert(helper: BaseViewHolder?, item: DanmakuInfo.DanmakuItem?) {
14 | helper?.setText(R.id.item_text,item!!.text)
15 | helper?.setText(R.id.item_mode,item!!.modeStr)
16 | helper?.setText(R.id.item_time,item!!.timeStr)
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/EditPreventKeywordAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.chad.library.adapter.base.BaseQuickAdapter
5 | import com.chad.library.adapter.base.BaseViewHolder
6 |
7 | /**
8 | * Created by 10喵喵 on 2017/10/24.
9 | */
10 | class EditPreventKeywordAdapter(list: List) :
11 | BaseQuickAdapter(R.layout.item_prevent_keyword,list) {
12 | override fun convert(helper: BaseViewHolder?, item: String?) {
13 | helper?.setText(R.id.tv_keyword, item)
14 | }
15 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/HomeRegionItemAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.HomeRegionInfo
5 | import com.chad.library.adapter.base.BaseQuickAdapter
6 | import com.chad.library.adapter.base.BaseViewHolder
7 |
8 | /**
9 | * Created by 10喵喵 on 2017/9/16.
10 | */
11 | class HomeRegionItemAdapter(list: List)
12 | : BaseQuickAdapter(R.layout.item_home_region, list) {
13 |
14 | override fun convert(helper: BaseViewHolder, item: HomeRegionInfo) {
15 | helper.setImageResource(R.id.item_icon, item.icon!!)
16 | helper.setText(R.id.item_title, item.name)
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/PagerAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.support.v4.app.Fragment
4 | import android.support.v4.app.FragmentManager
5 | import android.support.v4.app.FragmentStatePagerAdapter
6 |
7 | /**
8 | * Created by 10喵喵 on 2017/12/1.
9 | */
10 | class PagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
11 | val titles = ArrayList()
12 | val fragments = ArrayList()
13 |
14 | override fun getItem(position: Int) = fragments[position]
15 | override fun getCount() = fragments.size
16 | override fun getPageTitle(position: Int) = titles[position]
17 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/RankOrdersAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.util.TypedValue
4 | import android.widget.TextView
5 | import com.a10miaomiao.bilimiao.R
6 | import com.a10miaomiao.bilimiao.utils.ThemeHelper
7 | import com.a10miaomiao.bilimiao.utils.log
8 | import com.chad.library.adapter.base.BaseQuickAdapter
9 | import com.chad.library.adapter.base.BaseViewHolder
10 | import kotlinx.android.synthetic.main.fragment_region_details.*
11 |
12 |
13 | /**
14 | * Created by 10喵喵 on 2017/11/23.
15 | */
16 | class RankOrdersAdapter(list: List) : BaseQuickAdapter(R.layout.item_rank_orders, list) {
17 |
18 | constructor(list: Array) : this(list.toList())
19 |
20 | var checkItemPosition = 0
21 | set(value) {
22 | field = value
23 | notifyDataSetChanged()
24 | }
25 |
26 | override fun convert(helper: BaseViewHolder?, item: String?) {
27 | var text = helper!!.getView(R.id.text)
28 | text.text = item
29 | text.setTextColor(
30 | if(helper.position == checkItemPosition)
31 | mContext.resources.getColor(ThemeHelper.getColorAccent(mContext))
32 | else
33 | mContext.resources.getColor(R.color.text_black)
34 | )
35 | }
36 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/RegionPagerAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.support.v4.app.Fragment
4 | import android.support.v4.app.FragmentManager
5 | import android.support.v4.app.FragmentStatePagerAdapter
6 | import com.a10miaomiao.bilimiao.entity.RegionTypesInfo
7 | import com.a10miaomiao.bilimiao.fragments.RegionTypeDetailsFragment
8 | import com.a10miaomiao.bilimiao.fragments.SelectorDateFragment
9 | import rx.Observable
10 |
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/9/18.
14 | */
15 | class RegionPagerAdapter(fm: FragmentManager
16 | ,var id: Int
17 | ,var titles: List
18 | ,var childrens: List): FragmentStatePagerAdapter(fm) {
19 | private val fragments = ArrayList()
20 |
21 | init{
22 | if(titles[0] == "设置时间")
23 | fragments.add(SelectorDateFragment())
24 | Observable.from(childrens)
25 | .subscribe({ childrenBean -> fragments.add(RegionTypeDetailsFragment.newInstance(childrenBean.tid)) })
26 | }
27 |
28 | override fun getItem(position: Int): Fragment {
29 | return fragments[position]
30 | }
31 |
32 | override fun getCount(): Int {
33 | return fragments.size
34 | }
35 |
36 | override fun getPageTitle(position: Int): CharSequence {
37 | return titles[position]
38 | }
39 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/RegionTypeDetailsAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.RegionTypeDetailsInfo
5 | import com.a10miaomiao.bilimiao.utils.NumberUtil
6 | import com.bumptech.glide.Glide
7 | import com.bumptech.glide.load.engine.DiskCacheStrategy
8 | import com.chad.library.adapter.base.BaseQuickAdapter
9 | import com.chad.library.adapter.base.BaseViewHolder
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/9/19.
13 | */
14 | class RegionTypeDetailsAdapter (list: List):
15 | BaseQuickAdapter(R.layout.item_region_details,list){
16 |
17 | override fun convert(helper: BaseViewHolder?, item: RegionTypeDetailsInfo.Result?) {
18 | // itemViewHolder.mVideoTitle.setText(archiveBean.getTitle());
19 | // itemViewHolder.mVideoPlayNum.setText(converString(archiveBean.getPlay()));
20 | // itemViewHolder.mVideoReviewNum.setText(NumberUtil.converString(archiveBean.getVideo_review()));
21 | // itemViewHolder.mUserName.setText(archiveBean.getAuthor());
22 | // itemViewHolder.mDuration.setText(NumberUtil.converDuration(archiveBean.getDuration()));
23 | // mVideoPic = $(R.id.item_img);
24 | // mVideoTitle = $(R.id.item_title);
25 | // mVideoPlayNum = $(R.id.item_play);
26 | // mVideoReviewNum = $(R.id.item_review);
27 | // mUserName = $(R.id.item_user_name);
28 | // mDuration = $(R.id.item_duration);
29 | Glide.with(mContext)
30 | .load("http:${item?.pic}")
31 | .centerCrop()
32 | .diskCacheStrategy(DiskCacheStrategy.ALL)
33 | .placeholder(R.drawable.bili_default_image_tv)
34 | .dontAnimate()
35 | .into(helper?.getView(R.id.item_img))
36 |
37 | helper?.setText(R.id.item_title,item?.title)
38 | helper?.setText(R.id.item_play, converString(item?.play!!))
39 | helper?.setText(R.id.item_review,NumberUtil.converString(item?.video_review!!))
40 | helper?.setText(R.id.item_user_name,item?.author)
41 | helper?.setText(R.id.item_duration,NumberUtil.converDuration(item?.duration!!))
42 | }
43 |
44 | private fun converString(s: String): String {
45 | try {
46 | return NumberUtil.converString(s.toInt())
47 | } catch (e: NumberFormatException) {
48 | return s
49 | }
50 | }
51 |
52 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/SearchBoxHistoryAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.widget.TextView
4 | import com.a10miaomiao.bilimiao.R
5 | import com.chad.library.adapter.base.BaseQuickAdapter
6 | import com.chad.library.adapter.base.BaseViewHolder
7 |
8 | /**
9 | * Created by 10喵喵 on 2017/12/10.
10 | */
11 | class SearchBoxHistoryAdapter(list: List)
12 | : BaseQuickAdapter(R.layout.item_search_box_history, list) {
13 |
14 | var isHis = true
15 |
16 | override fun convert(helper: BaseViewHolder?, item: String?) {
17 | var item_tv = helper!!.getView(R.id.tv_item_search_history)
18 | item_tv.text = item!!
19 | if(isHis){
20 | val drawable = mContext.resources.getDrawable(R.drawable.ic_history_24dp)
21 | drawable.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight)//这一步必须要做,否则不会显示
22 | item_tv.setCompoundDrawables(drawable,null,null,null)
23 | }else {
24 | val drawable = mContext.resources.getDrawable(R.drawable.ic_search_24dp)
25 | drawable.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight)//这一步必须要做,否则不会显示
26 | item_tv.setCompoundDrawables(drawable, null, null, null)
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/ThemePickerAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.widget.TextView
4 | import com.a10miaomiao.bilimiao.R
5 | import com.a10miaomiao.bilimiao.entity.ThemePickerInfo
6 | import com.chad.library.adapter.base.BaseQuickAdapter
7 | import com.chad.library.adapter.base.BaseViewHolder
8 |
9 | /**
10 | * Created by 10喵喵 on 2017/12/25.
11 | */
12 | class ThemePickerAdapter(list: List) : BaseQuickAdapter(R.layout.item_theme_picker, list) {
13 | override fun convert(helper: BaseViewHolder?, item: ThemePickerInfo?) {
14 | var item_color = helper!!.getView(R.id.item_color)
15 | var item_name = helper!!.getView(R.id.item_name)
16 | var item_is_selected = helper!!.getView(R.id.item_is_selected)
17 | var color = mContext.resources.getColor(item!!.color)
18 | item_color.setBackgroundColor(color)
19 | item_name.text = item!!.name
20 | item_name.setTextColor(color)
21 | if (item.isSelected) {
22 | item_is_selected.text = "使用中"
23 | item_is_selected.setTextColor(color)
24 | }else{
25 | item_is_selected.text = "使用"
26 | item_is_selected.setTextColor( mContext.resources.getColor(R.color.text_black))
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/UpperChannelAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.UpperChannelInfo
5 | import com.bumptech.glide.Glide
6 | import com.bumptech.glide.load.engine.DiskCacheStrategy
7 | import com.chad.library.adapter.base.BaseQuickAdapter
8 | import com.chad.library.adapter.base.BaseViewHolder
9 |
10 | /**
11 | * Created by 10喵喵 on 2017/10/29.
12 | */
13 | class UpperChannelAdapter(list : List) :
14 | BaseQuickAdapter(R.layout.item_uper_channel,list){
15 | override fun convert(helper: BaseViewHolder?, item: UpperChannelInfo.UperChannelData?) {
16 | helper?.setText(R.id.item_title,item!!.name)
17 | helper?.setText(R.id.item_count,"${item!!.count}个投稿")
18 |
19 | Glide.with(mContext)
20 | .load(item!!.cover)
21 | .centerCrop()
22 | .diskCacheStrategy(DiskCacheStrategy.ALL)
23 | .placeholder(R.drawable.bili_default_image_tv)
24 | .dontAnimate()
25 | .into(helper?.getView(R.id.item_img))
26 | }
27 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/UpperChannelVideoListAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.UpperChannelVideoInfo
5 | import com.a10miaomiao.bilimiao.utils.NumberUtil
6 | import com.bumptech.glide.Glide
7 | import com.bumptech.glide.load.engine.DiskCacheStrategy
8 | import com.chad.library.adapter.base.BaseQuickAdapter
9 | import com.chad.library.adapter.base.BaseViewHolder
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/10/31.
13 | */
14 | class UpperChannelVideoListAdapter(list : List) :
15 | BaseQuickAdapter(R.layout.item_uper_video_list,list){
16 | override fun convert(helper: BaseViewHolder?, item: UpperChannelVideoInfo.VideoArchives?) {
17 | Glide.with(mContext)
18 | .load(item?.pic)
19 | .centerCrop()
20 | .diskCacheStrategy(DiskCacheStrategy.ALL)
21 | .placeholder(R.drawable.bili_default_image_tv)
22 | .dontAnimate()
23 | .into(helper?.getView(R.id.item_img))
24 |
25 | helper?.setText(R.id.item_title,item?.title)
26 | helper?.setText(R.id.item_play, NumberUtil.converString(item!!.stat.view))
27 | helper?.setText(R.id.item_review, NumberUtil.converString(item!!.stat.danmaku))
28 | helper?.setText(R.id.item_ctime, NumberUtil.converCTime(item?.pubdate))
29 | helper?.setText(R.id.item_duration, NumberUtil.converDuration(item!!.duration))
30 | }
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/UpperVideoListAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.SubmitVideosInfo
5 | import com.a10miaomiao.bilimiao.utils.NumberUtil
6 | import com.a10miaomiao.bilimiao.utils.NumberUtil.converCTime
7 | import com.bumptech.glide.Glide
8 | import com.bumptech.glide.load.engine.DiskCacheStrategy
9 | import com.chad.library.adapter.base.BaseQuickAdapter
10 | import com.chad.library.adapter.base.BaseViewHolder
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/10/30.
14 | */
15 | class UpperVideoListAdapter(list : List) :
16 | BaseQuickAdapter(R.layout.item_uper_video_list,list){
17 | override fun convert(helper: BaseViewHolder?, item: SubmitVideosInfo.VideoInfo?) {
18 | Glide.with(mContext)
19 | .load("http:${item?.pic}")
20 | .centerCrop()
21 | .diskCacheStrategy(DiskCacheStrategy.ALL)
22 | .placeholder(R.drawable.bili_default_image_tv)
23 | .dontAnimate()
24 | .into(helper?.getView(R.id.item_img))
25 |
26 | helper?.setText(R.id.item_title,item?.title)
27 | helper?.setText(R.id.item_play, NumberUtil.converString(item?.play!!))
28 | helper?.setText(R.id.item_review, NumberUtil.converString(item?.video_review!!))
29 | helper?.setText(R.id.item_ctime,converCTime(item?.created))
30 | helper?.setText(R.id.item_duration, item?.length)
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/VideoPagesAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.VideoDetailsInfo
5 | import com.chad.library.adapter.base.BaseQuickAdapter
6 | import com.chad.library.adapter.base.BaseViewHolder
7 |
8 | /**
9 | * Created by 10喵喵 on 2017/11/3.
10 | */
11 | class VideoPagesAdapter(list : List) :
12 | BaseQuickAdapter(R.layout.item_bangumi_episodes,list){
13 | override fun convert(helper: BaseViewHolder?, item: VideoDetailsInfo.VideoPageInfo?) {
14 | helper?.setText(R.id.tv_title, item?.title)
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/VideoRankAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter
2 |
3 | import android.widget.TextView
4 | import com.a10miaomiao.bilimiao.R
5 | import com.a10miaomiao.bilimiao.entity.VideoRankInfo
6 | import com.a10miaomiao.bilimiao.utils.NumberUtil
7 | import com.a10miaomiao.bilimiao.utils.ThemeHelper
8 | import com.bumptech.glide.Glide
9 | import com.bumptech.glide.load.engine.DiskCacheStrategy
10 | import com.chad.library.adapter.base.BaseQuickAdapter
11 | import com.chad.library.adapter.base.BaseViewHolder
12 |
13 | /**
14 | * Created by 10喵喵 on 2017/12/2.
15 | */
16 | class VideoRankAdapter(list: List)
17 | : BaseQuickAdapter(R.layout.item_rank_video, list) {
18 | override fun convert(helper: BaseViewHolder?, item: VideoRankInfo.VideoInfo?) {
19 | Glide.with(mContext)
20 | .load(item?.pic)
21 | .centerCrop()
22 | .diskCacheStrategy(DiskCacheStrategy.ALL)
23 | .placeholder(R.drawable.bili_default_image_tv)
24 | .dontAnimate()
25 | .into(helper?.getView(R.id.item_img))
26 |
27 | helper?.setText(R.id.item_title, item?.title)
28 | // helper?.setText(R.id.item_play, converString(item?.play!!))
29 | // helper?.setText(R.id.item_review, NumberUtil.converString(item?.video_review!!))
30 | helper?.setText(R.id.item_user_name, item?.author)
31 | helper?.setText(R.id.item_duration, item?.duration!!)
32 | var sort_num = helper!!.getView(R.id.item_sort_num)
33 | sort_num.text = item!!.sort_num.toString()
34 | sort_num.setTextColor(
35 | if(item!!.sort_num <= 3) {
36 | val color = ThemeHelper.getColorAccent(mContext)
37 | mContext.resources.getColor(color)
38 | }else
39 | mContext.resources.getColor(R.color.text_black)
40 | )
41 | helper?.setText(R.id.item_pts, "综合评分:${item!!.pts}")
42 | }
43 |
44 | private fun converString(s: String): String {
45 | try {
46 | return NumberUtil.converString(s.toInt())
47 | } catch (e: NumberFormatException) {
48 | return s
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/helper/EndlessRecyclerOnScrollListener.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.helper;
2 |
3 | import android.support.v7.widget.LinearLayoutManager;
4 | import android.support.v7.widget.RecyclerView;
5 |
6 |
7 | /**
8 | * Created by hcc on 16/8/7 21:18
9 | * 100332338@qq.com
10 | *
11 | * 自定义RecylcerView上拉加载处理
12 | */
13 | public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener {
14 |
15 | private int previousTotal = 0;
16 |
17 | private boolean loading = true;
18 |
19 | private int currentPage = 1;
20 |
21 | private LinearLayoutManager mLinearLayoutManager;
22 |
23 | private int span = 0;
24 |
25 | protected EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager) {
26 | this.mLinearLayoutManager = linearLayoutManager;
27 | }
28 |
29 | protected EndlessRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager, int a) {
30 | this.mLinearLayoutManager = linearLayoutManager;
31 | span = a;
32 | }
33 |
34 |
35 | @Override
36 | public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
37 |
38 | super.onScrolled(recyclerView, dx, dy);
39 |
40 | if (dy == 0) {
41 | return;
42 | }
43 |
44 | int visibleItemCount = recyclerView.getChildCount();
45 | int totalItemCount = mLinearLayoutManager.getItemCount();
46 | int lastCompletelyVisiableItemPosition
47 | = mLinearLayoutManager.findLastCompletelyVisibleItemPosition();
48 |
49 | if (loading) {
50 | if (totalItemCount > previousTotal) {
51 | loading = false;
52 | previousTotal = totalItemCount;
53 | }
54 | }
55 | if (!loading && (visibleItemCount > 0) &&
56 | (lastCompletelyVisiableItemPosition >= totalItemCount - 1 - span)) {
57 | currentPage++;
58 | onLoadMore(currentPage);
59 | loading = true;
60 | }
61 | }
62 |
63 |
64 | public void refresh() {
65 | loading = true;
66 | previousTotal = 0;
67 | currentPage = 1;
68 | }
69 |
70 |
71 | public abstract void onLoadMore(int currentPage);
72 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/helper/RecyclerOnScrollListener.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.helper
2 |
3 | import android.support.v7.widget.LinearLayoutManager
4 | import android.support.v7.widget.RecyclerView
5 |
6 | /**
7 | * Created by 10喵喵 on 2017/10/4.
8 | */
9 | abstract class RecyclerOnScrollListener(var mLinearLayoutManager: LinearLayoutManager,var span: Int)
10 | : RecyclerView.OnScrollListener() {
11 |
12 | abstract fun onLoadMore()
13 |
14 | override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
15 | super.onScrolled(recyclerView, dx, dy)
16 | if (dy == 0) {
17 | return
18 | }
19 |
20 | val visibleItemCount = recyclerView!!.getChildCount()
21 | val totalItemCount = mLinearLayoutManager.getItemCount()
22 | val lastCompletelyVisiableItemPosition = mLinearLayoutManager.findLastCompletelyVisibleItemPosition()
23 |
24 | if ( visibleItemCount > 0 && lastCompletelyVisiableItemPosition >= totalItemCount - 1 - span) {
25 | onLoadMore()
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/search/BangumiResultAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.search
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.SearchBangumiInfo
5 | import com.bumptech.glide.Glide
6 | import com.bumptech.glide.load.engine.DiskCacheStrategy
7 | import com.chad.library.adapter.base.BaseQuickAdapter
8 | import com.chad.library.adapter.base.BaseViewHolder
9 |
10 | /**
11 | * Created by 10喵喵 on 2017/11/8.
12 | */
13 | class BangumiResultAdapter(list : List)
14 | : BaseQuickAdapter(R.layout.item_search_bangumi,list) {
15 | override fun convert(helper: BaseViewHolder?, item: SearchBangumiInfo.DataBean.ItemsBean?) {
16 | Glide.with(mContext)
17 | .load(item?.cover)
18 | .centerCrop()
19 | .diskCacheStrategy(DiskCacheStrategy.ALL)
20 | .placeholder(R.drawable.bili_default_image_tv)
21 | .dontAnimate()
22 | .into(helper?.getView(R.id.item_img))
23 |
24 | helper?.setText(R.id.item_title,item?.title)
25 | if(item?.finish == 1)//是否完结
26 | helper?.setText(R.id.item_count, "${item?.newest_season},${item?.total_count}话全")
27 | else
28 | helper?.setText(R.id.item_count, "${item?.newest_season},更新至第${item?.total_count}话全")
29 | helper?.setText(R.id.item_details, item?.cat_desc)
30 |
31 | }
32 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/search/DiliResultAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.search
2 |
3 | import android.view.View
4 | import com.a10miaomiao.bilimiao.R
5 | import com.a10miaomiao.bilimiao.entity.SearchDiliInfo
6 | import com.a10miaomiao.bilimiao.entity.SearchDiliInfo2
7 | import com.bumptech.glide.Glide
8 | import com.bumptech.glide.load.engine.DiskCacheStrategy
9 | import com.chad.library.adapter.base.BaseQuickAdapter
10 | import com.chad.library.adapter.base.BaseViewHolder
11 |
12 | class DiliResultAdapter(list : List)
13 | : BaseQuickAdapter(R.layout.item_search_bangumi,list) {
14 | override fun convert(helper: BaseViewHolder, item: SearchDiliInfo) {
15 | Glide.with(mContext)
16 | .load(item.suoluetudizhi)
17 | .centerCrop()
18 | .diskCacheStrategy(DiskCacheStrategy.ALL)
19 | .placeholder(R.drawable.bili_default_image_tv)
20 | .dontAnimate()
21 | .into(helper.getView(R.id.item_img))
22 |
23 | helper.setText(R.id.item_title,item.typename)
24 | if (item.biaoqian.isEmpty())
25 | helper.setVisible(R.id.item_count, false)
26 | else{
27 | helper.setVisible(R.id.item_count, true)
28 | helper.setText(R.id.item_count, item.biaoqian)
29 | }
30 | helper.setText(R.id.item_details, item.description)
31 | }
32 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/search/MovieResultsAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.search
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.SearchMovieInfo
5 | import com.bumptech.glide.Glide
6 | import com.bumptech.glide.load.engine.DiskCacheStrategy
7 | import com.chad.library.adapter.base.BaseQuickAdapter
8 | import com.chad.library.adapter.base.BaseViewHolder
9 |
10 | /**
11 | * Created by 10喵喵 on 2018/2/13.
12 | */
13 | class MovieResultsAdapter(list : List)
14 | : BaseQuickAdapter(R.layout.item_search_bangumi,list) {
15 | override fun convert(helper: BaseViewHolder?, item: SearchMovieInfo.DataBean.ItemsBean?) {
16 | Glide.with(mContext)
17 | .load(item?.cover)
18 | .centerCrop()
19 | .diskCacheStrategy(DiskCacheStrategy.ALL)
20 | .placeholder(R.drawable.bili_default_image_tv)
21 | .dontAnimate()
22 | .into(helper?.getView(R.id.item_img))
23 | helper?.setText(R.id.item_title,item?.title)
24 | }
25 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/search/SearchResultAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.search
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.SearchArchiveInfo
5 | import com.a10miaomiao.bilimiao.utils.NumberUtil
6 | import com.bumptech.glide.Glide
7 | import com.bumptech.glide.load.engine.DiskCacheStrategy
8 | import com.chad.library.adapter.base.BaseQuickAdapter
9 | import com.chad.library.adapter.base.BaseViewHolder
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/11/7.
13 | */
14 | class SearchResultAdapter(list : List)
15 | : BaseQuickAdapter(R.layout.item_region_details,list) {
16 | override fun convert(helper: BaseViewHolder?, item: SearchArchiveInfo.DataBean.ItemsBean.ArchiveBean?) {
17 | Glide.with(mContext)
18 | .load(item?.cover)
19 | .centerCrop()
20 | .diskCacheStrategy(DiskCacheStrategy.ALL)
21 | .placeholder(R.drawable.bili_default_image_tv)
22 | .dontAnimate()
23 | .into(helper?.getView(R.id.item_img))
24 |
25 | helper?.setText(R.id.item_title,item?.title)
26 | helper?.setText(R.id.item_play, NumberUtil.converString(item?.play!!))
27 | helper?.setText(R.id.item_review, NumberUtil.converString(item?.danmaku!!))
28 | helper?.setText(R.id.item_user_name,item?.author)
29 | helper?.setText(R.id.item_duration, item?.duration!!)
30 | }
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/adapter/search/UpperResultAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.adapter.search
2 |
3 | import com.a10miaomiao.bilimiao.R
4 | import com.a10miaomiao.bilimiao.entity.SearchUpperInfo
5 | import com.a10miaomiao.bilimiao.utils.NumberUtil
6 | import com.bumptech.glide.Glide
7 | import com.bumptech.glide.load.engine.DiskCacheStrategy
8 | import com.chad.library.adapter.base.BaseQuickAdapter
9 | import com.chad.library.adapter.base.BaseViewHolder
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/11/8.
13 | */
14 | class UpperResultAdapter(list : List)
15 | : BaseQuickAdapter(R.layout.item_search_upper,list) {
16 | override fun convert(helper: BaseViewHolder?, item: SearchUpperInfo.DataBean.ItemsBean?) {
17 | Glide.with(mContext)
18 | .load(item?.cover)
19 | .centerCrop()
20 | .diskCacheStrategy(DiskCacheStrategy.ALL)
21 | .placeholder(R.drawable.bili_default_image_tv)
22 | .dontAnimate()
23 | .into(helper?.getView(R.id.item_avatar_view))
24 |
25 | helper?.setText(R.id.item_user_name,item?.title)
26 | helper?.setText(R.id.item_user_fans,"粉丝:" +NumberUtil.converString(item?.fans!!))
27 | helper?.setText(R.id.item_user_videos,"视频数:" +NumberUtil.converString(item?.archives!!))
28 | helper?.setText(R.id.item_user_details,item?.sign)
29 |
30 | // if(item?.finish == 1)//是否完结
31 | // helper?.setText(R.id.item_count, "${item?.newest_season},${item?.total_count}话全")
32 | // else
33 | // helper?.setText(R.id.item_count, "${item?.newest_season},更新至第${item?.total_count}话全")
34 | // helper?.setText(R.id.item_details, item?.cat_desc)
35 | }
36 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/base/BaseActivity.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.base
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.widget.Toast
7 | import com.a10miaomiao.bilimiao.utils.ThemeHelper
8 | import com.trello.rxlifecycle.components.support.RxAppCompatActivity
9 |
10 |
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/9/16.
14 | */
15 | abstract class BaseActivity : RxAppCompatActivity() {
16 | abstract var layoutResID: Int
17 | var activity : Activity
18 | set(v){}
19 | get() = this
20 |
21 | var _theme = 0
22 |
23 | override fun onCreate(savedInstanceState: Bundle?) {
24 | super.onCreate(savedInstanceState)
25 | _theme = ThemeHelper.getThemeId(this)
26 | setTheme(_theme)
27 | setContentView(layoutResID)
28 | initViews(savedInstanceState)
29 | initToolBar()
30 | }
31 |
32 | abstract fun initViews(savedInstanceState: Bundle?)
33 |
34 | abstract fun initToolBar()
35 |
36 | fun toast(text: String) {
37 | Toast.makeText(this, text, Toast.LENGTH_LONG)
38 | .show()
39 | }
40 |
41 | override fun onResume() {
42 | super.onResume()
43 | if (_theme != ThemeHelper.getThemeId(activity)) {
44 | val intent = intent
45 | overridePendingTransition(0, 0)//不设置进入退出动画
46 | intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
47 | finish()
48 | overridePendingTransition(0, 0)
49 | startActivity(intent)
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/base/BaseFragment.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.base;
2 |
3 | import android.app.Activity
4 | import android.content.Context
5 | import android.os.Bundle
6 | import android.view.LayoutInflater
7 | import android.view.View
8 | import android.view.ViewGroup
9 | import com.a10miaomiao.bilimiao.utils.log
10 |
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/7/31.
14 | */
15 |
16 | abstract class BaseFragment : LazyLoadFragment(){
17 | private var rootView: View? = null
18 | protected var mActivity: Activity? = null
19 | protected abstract var layoutResId : Int
20 |
21 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
22 | if (rootView == null) {
23 | rootView = inflater!!.inflate(layoutResId, container, false)
24 | initView(rootView)
25 | initData(savedInstanceState)
26 | //initListener()
27 | }else{
28 | val parent = rootView?.parent as ViewGroup
29 | parent?.removeView(rootView)
30 | }
31 | return rootView!!
32 | }
33 |
34 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
35 | super.onViewCreated(view, savedInstanceState)
36 | finishCreateView(savedInstanceState)
37 | }
38 |
39 | abstract fun finishCreateView(savedInstanceState: Bundle?)
40 |
41 | /**StateView的根布局,默认是整个界面,如果需要变换可以重写此方法 */
42 | fun getStateViewRoot(): View? {
43 | return rootView
44 | }
45 |
46 | override fun onAttach(context: Context) {
47 | super.onAttach(context)
48 | mActivity = context as Activity
49 | }
50 |
51 | open fun initView(view : View?){
52 |
53 | }
54 | /**
55 | * 初始化数据
56 | */
57 | open fun initData(savedInstanceState: Bundle?) {
58 |
59 | }
60 |
61 | override fun onFragmentFirstVisible() {
62 | //当第一次可见的时候,加载数据
63 | loadData()
64 | }
65 |
66 | //加载数据
67 | open fun loadData(){
68 |
69 | }
70 |
71 | override fun onDestroy() {
72 | super.onDestroy()
73 |
74 | rootView = null
75 | }
76 |
77 | }
78 |
79 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/dialog/EditDialog.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.dialog
2 |
3 | import android.os.Bundle
4 | import android.support.v4.app.DialogFragment
5 | import android.view.*
6 | import com.a10miaomiao.bilimiao.R
7 | import com.a10miaomiao.bilimiao.utils.KeyboardUtil
8 | import kotlinx.android.synthetic.main.dialog_edit_name.*
9 |
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/10/23.
13 | */
14 | class EditDialog : DialogFragment() {
15 |
16 |
17 | var onFinishInput : ((text : String) -> Unit)? = null
18 |
19 | override fun onCreate(savedInstanceState: Bundle?) {
20 | super.onCreate(savedInstanceState)
21 | setStyle(DialogFragment.STYLE_NO_FRAME, R.style.DialogStyle2)
22 | }
23 |
24 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
25 | savedInstanceState: Bundle?): View {
26 | val view = inflater!!.inflate(R.layout.dialog_edit_name, container,false)
27 | return view
28 | }
29 |
30 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
31 | btn_ok.setOnClickListener {
32 | KeyboardUtil.closeKeyboard(activity!!, et_content)
33 | dismiss()
34 | onFinishInput?.invoke(et_content.text.toString())
35 | }
36 | dialog.setOnDismissListener {
37 | KeyboardUtil.closeKeyboard(activity!!, et_content)
38 | }
39 | view_search_outside.setOnClickListener {
40 | KeyboardUtil.closeKeyboard(activity!!, et_content)
41 | dismiss()
42 | }
43 | if(arguments!!.containsKey("hint")){
44 | et_content.hint = arguments!!.getString("hint")
45 | }
46 | //et_content.setText(name)
47 | // var ea: Editable = et_content.text
48 | // et_content.setSelection(0, ea.length)
49 | }
50 |
51 | override fun onStart() {
52 | super.onStart()
53 | initDialog()
54 | }
55 |
56 | private fun initDialog() {
57 | val window = dialog.window
58 | val metrics = resources.displayMetrics
59 | val width = metrics.widthPixels //DialogSearch的宽
60 | window.setLayout(width, WindowManager.LayoutParams.MATCH_PARENT)
61 | window.setGravity(Gravity.BOTTOM)
62 | KeyboardUtil.openKeyboard(activity!!, et_content)
63 | }
64 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/dialog/QueryUserDialog.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.dialog
2 |
3 | import android.os.Bundle
4 | import android.support.v4.app.DialogFragment
5 | import android.view.LayoutInflater
6 | import android.view.View
7 | import android.view.ViewGroup
8 | import android.view.WindowManager
9 | import com.a10miaomiao.bilimiao.R
10 | import com.a10miaomiao.bilimiao.utils.IntentHandlerUtil
11 | import kotlinx.android.synthetic.main.dialog_user.*
12 |
13 | /**
14 | * Created by 10喵喵 on 2017/11/4.
15 | */
16 | class QueryUserDialog : DialogFragment() {
17 | private val hash by lazy {
18 | arguments!!.getString("hash")
19 | }
20 | private var uid: String? = null
21 |
22 | override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
23 | savedInstanceState: Bundle?): View {
24 | val view = inflater!!.inflate(R.layout.dialog_user, container)
25 | return view
26 | }
27 |
28 | override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
29 | loadData()
30 | btn_view.setOnClickListener {
31 | if (uid != null) {
32 | IntentHandlerUtil.openWithPlayer(activity!!, IntentHandlerUtil.TYPE_AUTHOR, uid.toString())
33 | }
34 | dismiss()
35 | }
36 |
37 | }
38 |
39 | private fun loadData() {
40 |
41 | }
42 |
43 | override fun onStart() {
44 | super.onStart()
45 | initDialog()
46 | }
47 |
48 | private fun initDialog() {
49 | val window = dialog.window
50 | window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
51 | }
52 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/AudioDetailsInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | import com.a10miaomiao.bilimiao.netword.BiliApiService
4 | import com.a10miaomiao.bilimiao.netword.MiaoHttp
5 | import com.a10miaomiao.bilimiao.utils.log
6 | import org.json.JSONException
7 | import org.json.JSONObject
8 | import org.json.JSONTokener
9 |
10 | /**
11 | * Created by 10喵喵 on 2017/11/11.
12 | */
13 | class AudioDetailsInfo(aid: String) : DetailsInfo(aid) {
14 | override var aidType = "au"
15 | // var audio_url = ""
16 | override fun get() {
17 | MiaoHttp.newStringClient(
18 | url = BiliApiService.getAudioInfo(aid),
19 | onResponse = {
20 | val jsonParser = JSONTokener(it)
21 | try {
22 | val jsonObject = (jsonParser.nextValue() as JSONObject)
23 | if (jsonObject.getInt("code") == 0) {
24 | val data = jsonObject.getJSONObject("data")
25 | pic = data.getString("cover")
26 | title = data.getString("title")
27 | // audio_url = if (urls.length() > 0) urls.getString(0) else "获取失败"
28 | onResponse?.invoke(this@AudioDetailsInfo)
29 | } else {
30 | onError?.invoke(Exception(), jsonObject.getString("msg"))
31 | }
32 | } catch (e: JSONException) {
33 | e.printStackTrace()
34 | onError?.invoke(e, "视频信息解析失败或无该au号")
35 | } catch (e: ClassCastException) {
36 | onError?.invoke(e, "解析失败 -2")
37 | }
38 | },
39 | onError = {
40 | onError?.invoke(it, "无法连接到御坂网络")
41 | }
42 | )
43 | }
44 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/BangumiEpisodesInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/10/26.
5 | */
6 | data class BangumiEpisodesInfo(
7 | var av_id: String,
8 | var danmaku: Int,
9 | var index_title: String,
10 | var index: String
11 | )
12 | /*
13 | public string av_id { get; set; }
14 | public int danmaku { get; set; }
15 | public string index_title { get; set; }
16 | public bool inLocal { get; set; }
17 | public string index { get; set; }
18 | public int orderindex { get; set; }
19 | public int episode_status { get; set; }
20 | public string episode_id { get; set; }
21 | public string badge { get; set; }*/
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/BangumiRankInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/12/2.
5 | */
6 | data class BangumiRankInfo (
7 | var code: Int,
8 | var message: String,
9 | var result: Result
10 | ){
11 | data class Result(
12 | var note: String,
13 | var list: List
14 | )
15 | data class BangumiInfo(
16 | var season_id: String,
17 | var title: String,
18 | var cover: String,
19 | var pts: Int,//分数
20 | var is_finish: Int,//是否完结 1否
21 | var newest_ep_index: String,
22 | var sort_num: Int = 0
23 | )
24 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/CvDetailsInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | import com.a10miaomiao.bilimiao.netword.BiliApiService
4 | import com.a10miaomiao.bilimiao.netword.MiaoHttp
5 | import com.a10miaomiao.bilimiao.utils.log
6 |
7 | /**
8 | * Created by 10喵喵 on 2017/12/9.
9 | */
10 | class CvDetailsInfo(aid: String) : DetailsInfo(aid) {
11 | override var aidType = "cv"
12 | override fun get() {
13 | MiaoHttp.newStringClient(
14 | url = BiliApiService.getCvInfo(aid),
15 | onResponse = {
16 | var a = ""
17 | var n = it.indexOf(a)
18 | var m = it.indexOf("", n)
19 | if (n != -1 && m != -1) {
20 | title = it.substring(n + a.length, m)
21 | a = "banner_url: \""
22 | n = it.indexOf(a)
23 | m = it.indexOf("\",", n)
24 | log(m,n)
25 | if (n != -1 && m != -1) {
26 | pic = it.substring(n+ a.length, m)
27 | }else{
28 | onError?.invoke(Exception(), "该专栏不存在或专栏没有封面")
29 | return@newStringClient
30 | }
31 | } else {
32 | onError?.invoke(Exception(), "解析失败")
33 | return@newStringClient
34 | }
35 | onResponse?.invoke(this@CvDetailsInfo)
36 | },
37 | onError = {
38 | onError?.invoke(it, "无法连接到御坂网络")
39 | }
40 | )
41 | }
42 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/DetailsInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/10/5.
5 | */
6 | abstract class DetailsInfo(var aid: String){
7 | var title: String? = null
8 | abstract var aidType: String
9 | var pic: String? = null
10 | var onResponse: ((info: DetailsInfo) -> Unit)? = null
11 | var onError: ((e: kotlin.Throwable ,msg: String) -> Unit)? = null
12 |
13 | abstract fun get()
14 |
15 | // constructor(source: Parcel) : this(source.readString()) {
16 | // title = source.readString()
17 | // aidType = source.readString()
18 | // pic = source.readString()
19 | // }
20 | //
21 | // override fun writeToParcel(dest: Parcel?, flags: Int) {
22 | // dest?.writeString(this.aid)
23 | // dest?.writeString(this.title)
24 | // dest?.writeString(this.aidType)
25 | // dest?.writeString(this.pic)
26 | // }
27 | //
28 | // override fun describeContents(): Int {
29 | // return 0
30 | // }
31 |
32 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/DiliAnimeInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 |
4 | //data class DiliAnimeInfo (
5 | // var title: String,
6 | // var cover: String,
7 | // var update: String,
8 | // var age: String,
9 | // var region: String,
10 | // var tags: String,
11 | // var view: Int,
12 | // var introduction: String
13 | //)
14 |
15 | //"id": "2628",
16 | //"typename": "进击的巨人II",
17 | //"typedir": "/anime/kyojin2",
18 | //"suoluetudizhi": "http://www.dilidili.wang/uploads/allimg/160427/1_1502023841.jpg",
19 | //"diqu": "日本",
20 | //"niandai": "2017年4月",
21 | //"biaoqian": "热血|动作|奇幻",
22 | //"description": "人类曾一度惨遭巨人捕食而崩溃,濒临灭绝。幸存下来的人们为了防止巨人入侵住进了三层巨大的防护墙,在这隔绝的环境里享受了一百年的和平。不过作为“和平”的代价,人类失去了到墙壁的外面的“自由”,如同圈养的畜牲一般,安稳地生活着。主人公艾伦·耶格尔对还没见过的墙外世界抱有兴趣,同时也对人类失去的 “自由”抱",
23 | //"leixingtuijian": "热血",
24 | //"duoji_info": [
25 | //{
26 | // "id": "272",
27 | // "typename": "进击!巨人中学校",
28 | // "name": "第三季"
29 | //},
30 | //{
31 | // "id": "3142",
32 | // "typename": "进击的巨人第三季",
33 | // "name": "巨人中学校"
34 | //},
35 | //{
36 | // "id": "3366",
37 | // "typename": "飞翔吧!训练兵团",
38 | // "name": "飞翔吧!训练兵团"
39 | //}
40 | //]
41 |
42 | data class DiliAnimeInfo (
43 | var id: String,
44 | var typename: String,
45 | var typedir: String,
46 | var suoluetudizhi: String,
47 | var niandai: String,
48 | var diqu: String,
49 | var biaoqian: String,
50 | var description: String,
51 | var leixingtuijian: String
52 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/DownEntryInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | import android.os.Parcel
4 | import android.os.Parcelable
5 |
6 | /**
7 | * Created by 10喵喵 on 2018/2/12.
8 | */
9 | data class DownEntryInfo (
10 | var av_id: String,
11 | var ep_id: String? = null,
12 | var cid: String,
13 | var title: String,
14 | var cover: String,
15 | var season_id: String? = null,
16 | var index: Int = 0,
17 | var season_title: String? = null,
18 | var season_cover: String? = null,
19 | var video_type: String
20 | ): Parcelable{
21 | constructor(parcel: Parcel) : this(
22 | parcel.readString(),
23 | parcel.readString(),
24 | parcel.readString(),
25 | parcel.readString(),
26 | parcel.readString(),
27 | parcel.readString(),
28 | parcel.readInt(),
29 | parcel.readString(),
30 | parcel.readString(),
31 | parcel.readString()) {
32 | }
33 |
34 | override fun writeToParcel(parcel: Parcel, flags: Int) {
35 | parcel.writeString(av_id)
36 | parcel.writeString(ep_id)
37 | parcel.writeString(cid)
38 | parcel.writeString(title)
39 | parcel.writeString(cover)
40 | parcel.writeString(season_id)
41 | parcel.writeInt(index)
42 | parcel.writeString(season_title)
43 | parcel.writeString(season_cover)
44 | parcel.writeString(video_type)
45 | }
46 |
47 | override fun describeContents(): Int {
48 | return 0
49 | }
50 |
51 | companion object CREATOR : Parcelable.Creator {
52 | override fun createFromParcel(parcel: Parcel): DownEntryInfo {
53 | return DownEntryInfo(parcel)
54 | }
55 |
56 | override fun newArray(size: Int): Array {
57 | return arrayOfNulls(size)
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/EpDetailsInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | import com.a10miaomiao.bilimiao.netword.MiaoHttp
4 | import org.json.JSONObject
5 | import org.json.JSONTokener
6 |
7 | class EpDetailsInfo(aid: String) : VideoDetailsInfo(aid) {
8 | override var aidType = "ep"
9 |
10 | override fun get() {
11 | MiaoHttp.newStringClient(
12 | url = "https://www.bilibili.com/bangumi/play/ep$aid",
13 | onResponse = {
14 | try {
15 | var a = "window.__INITIAL_STATE__={"
16 | var n = it.indexOf(a)
17 | var m = it.indexOf("};", n + a.length)
18 | var s = it.substring(n + a.length - 1, m + 1)
19 | val jsonParser = JSONTokener(s)
20 | val jsonObject = (jsonParser.nextValue() as JSONObject)
21 |
22 | //该集信息
23 | val epInfo = jsonObject.getJSONObject("epInfo")
24 | pic = epInfo.getString("cover")
25 | title = epInfo.getString("index_title")
26 | pages.add(VideoPageInfo(
27 | epInfo.getLong("cid"),
28 | "P1"
29 | ))
30 | //up主信息
31 | val upInfo = jsonObject.getJSONObject("upInfo")
32 | uper_id = upInfo.getInt("mid")
33 | uper_name = upInfo.getString("uname")
34 | uper_face = upInfo.getString("avatar")
35 |
36 | //番剧信息
37 | var mediaInfo = jsonObject.getJSONObject("mediaInfo")
38 | season_cover = mediaInfo.getString("cover")
39 | season_id = mediaInfo.getString("season_id")
40 | season_title = mediaInfo.getString("title")
41 | ep_id = aid
42 | download_type = "anime"
43 | onResponse?.invoke(this@EpDetailsInfo)
44 | } catch (e: Exception){
45 | onError?.invoke(e, "获取失败了喵>﹏<")
46 | }
47 | },
48 | onError = {
49 | onError?.invoke(it, "无法连接到御坂网络")
50 | }
51 | )
52 | }
53 |
54 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/HomeRegionInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | import android.content.Context
4 | import android.preference.PreferenceManager
5 | import com.a10miaomiao.bilimiao.R
6 |
7 | /**
8 | * Created by 10喵喵 on 2017/9/16.
9 | */
10 | data class HomeRegionInfo (
11 | var name: String,
12 | var icon: Int
13 | ){
14 | companion object{
15 | fun create(context: Context): List {
16 | val prefs = PreferenceManager.getDefaultSharedPreferences(context)
17 | var list = ArrayList()
18 | val itemNames = arrayOf(
19 | "番剧", "国创", "动画",
20 | "音乐", "舞蹈", "游戏",
21 | "科技", "生活", "鬼畜",
22 | "时尚", "广告", "娱乐",
23 | "影视", "电影", "电视剧"
24 | )
25 | val itemIcons = if (prefs.getBoolean("region_ico_new", false))
26 | intArrayOf(
27 | R.drawable.ic_category_t13, R.drawable.ic_category_t167, R.drawable.ic_category_t1,
28 | R.drawable.ic_category_t3, R.drawable.ic_category_t129, R.drawable.ic_category_t4,
29 | R.drawable.ic_category_t36, R.drawable.ic_category_t160, R.drawable.ic_category_t119,
30 | R.drawable.ic_category_t155, R.drawable.ic_category_t165, R.drawable.ic_category_t5,
31 | R.drawable.ic_category_t181, R.drawable.ic_category_t23, R.drawable.ic_category_t11
32 | )
33 | else
34 | intArrayOf(
35 | R.drawable.ic_region_fj, R.drawable.ic_region_fj_domestic, R.drawable.ic_region_dh,
36 | R.drawable.ic_region_yy, R.drawable.ic_region_wd, R.drawable.ic_region_yx,
37 | R.drawable.ic_region_kj, R.drawable.ic_region_sh, R.drawable.ic_region_gc,
38 | R.drawable.ic_region_ss, R.drawable.ic_region_ad, R.drawable.ic_region_yl,
39 | R.drawable.ic_region_ys,R.drawable.ic_region_dy, R.drawable.ic_region_dsj
40 | )
41 | (0 until itemNames.size).mapTo(list) { HomeRegionInfo(itemNames[it],itemIcons[it]) }
42 | return list
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/LiveDetailsInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | import com.a10miaomiao.bilimiao.netword.BiliApiService
4 | import com.a10miaomiao.bilimiao.netword.MiaoHttp
5 | import org.json.JSONException
6 | import org.json.JSONObject
7 | import org.json.JSONTokener
8 |
9 | /**
10 | * Created by 10喵喵 on 2017/10/12.
11 | */
12 | class LiveDetailsInfo(aid: String): DetailsInfo(aid) {
13 | override var aidType = "live"
14 | override fun get() {
15 | MiaoHttp.newStringClient(
16 | url = BiliApiService.getLiveInfo(aid),
17 | onResponse = {
18 | val jsonParser = JSONTokener(it)
19 | try {
20 | val jsonObject = (jsonParser.nextValue() as JSONObject).getJSONObject("data")
21 | pic = jsonObject.getString("cover")
22 | //log(pic!!)
23 | title = jsonObject.getString("title")
24 | //log(title!!)
25 | onResponse?.invoke(this@LiveDetailsInfo)
26 | } catch (e: JSONException) {
27 | onError?.invoke(e,"视频信息解析失败或无该live号")
28 | } catch (e: ClassCastException){
29 | onError?.invoke(e,"网络好像有问题>﹏<")
30 | }
31 | },
32 | onError = {
33 | onError?.invoke(it,"无法连接到御坂网络")
34 | }
35 | )
36 | }
37 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/MiaoAdInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * 视频推荐(广告)
5 | */
6 | data class MiaoAdInfo (
7 | var code: Int,
8 | var msg: String,
9 | var data: DataBean
10 | ){
11 | data class DataBean(
12 | var isShow: Boolean,
13 | var title: String,
14 | var link: LinkBean
15 | )
16 | data class LinkBean(
17 | var text: String,
18 | var url: String
19 | )
20 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/RegionTypeDetailsInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/9/19.
5 | */
6 | data class RegionTypeDetailsInfo(
7 | var code: Int,
8 | var result: List
9 | ){
10 | /**
11 | *arcurl:"http://www.bilibili.com/video/av11337775"
12 | *author:小小☆精灵"
13 | *id:11337775
14 | *pic:"//i0.hdslb.com/bfs/archive/166fb5c456c71b8a8ab6a203d26d3e9ae4a2cadf.jpg_160x100.jpg"
15 | *play:"221368"
16 | *video_review:2940
17 | *title:"【进击的巨人/史诗/AMV】 献出心脏——为自由而战!!!"
18 | */
19 | data class Result(
20 | var arcurl: String,
21 | var author: String,
22 | var id: String,
23 | var mid: String,
24 | var pic: String,
25 | var play: String,
26 | var title: String,
27 | var video_review: Int,
28 | var duration: Int
29 | )
30 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/SearchDiliInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | //{
4 | // "typeid": "547",
5 | // "typename": "初音岛第一部",
6 | // "temparticle": "{style}/ckplayer_common2youku.htm",
7 | // "keywords": "初音岛第一部第一季",
8 | // "biaoqian": "校园|后宫|青春|纠结",
9 | // "description": "故事发生在这个整年都会不可思议地开着樱花而出名的新月型岛——初音岛。主人公朝仓纯一在岛上的风见学园上学,他拥有在睡觉时能看到别人梦境的奇异能力,还能使用由魔法使老奶奶所教授的能变出点心的小魔法.",
10 | // "suoluetudizhi": "http://www.dilidili.wang/uploads/201601/1-1601051411503Z.jpg",
11 | // "zhuangtai": "完结",
12 | // "tempindex": "{style}/index_article.htm",
13 | // "templist": "{style}/list_article2youku.htm",
14 | // "duoshuoid": "",
15 | // "banben": "初音岛",
16 | // "istype": ""
17 | //},
18 | data class SearchDiliInfo (
19 | var typeid: String,
20 | var typename: String, // 标题
21 | var temparticle: String,
22 | var keywords: String,
23 | var biaoqian: String,
24 | var description: String,
25 | var suoluetudizhi: String,
26 | var zhuangtai: String,
27 | var tempindex: String,
28 | var templist: String,
29 | var duoshuoid: String,
30 | var banben: String
31 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/SearchDiliInfo2.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | data class SearchDiliInfo2(
4 | var code: Int,
5 | var msg: String,
6 | var data: List
7 | ){
8 | // age: "2016年7月"
9 | // cover: "http://www.dilidili.wang/uploads/allimg/180615/290_0052169471.jpg"
10 | // cv: [{name: "白石凉子"}, {name: "花江夏树"}, {name: "钉宫理惠"}, {name: "福圆美里"}, {name: "嘉数由美"}, {name: "门胁舞以"},…]
11 | // dili_url: "/anime/mahosojoyiliya3/"
12 | // id: 1700
13 | // points: "哇哦,我好兴奋啊!"
14 | // region: "日本"
15 | // staff: "SILVER LINK"
16 | // state: 1
17 | // tag_id: null
18 | // tags: [{name: "搞笑"}, {name: "萝莉"}, {name: "百合"}]
19 | // title: "魔法少女伊莉雅 第四季"
20 | // view: 968793
21 | data class DataBean(
22 | var age: String,
23 | var cover: String,
24 | // var cv: String,
25 | var dili_url: String,
26 | var id: Int,
27 | var points: String,
28 | var region: String,
29 | var staff: String,
30 | // var tags: String,
31 | var title: String,
32 | var view: Int
33 | )
34 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/SubmitVideosInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/10/30.
5 | */
6 | data class SubmitVideosInfo (
7 | var data : SubmitVideosDataInfo,
8 | var status : Boolean
9 | ){
10 | data class SubmitVideosDataInfo(
11 | var count : Int,
12 | var vlist : List
13 | )
14 | data class VideoInfo(
15 | var title : String,
16 | var aid : Int,
17 | var pic : String,
18 | var play : Int,
19 | var created : Long,
20 | var video_review : Int,
21 | var length : String
22 | )
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/ThemePickerInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/12/25.
5 | */
6 | data class ThemePickerInfo(
7 | var color: Int,
8 | var name: String,
9 | var isSelected: Boolean = false
10 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/UpperChannelInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/10/29.
5 | */
6 | data class UpperChannelInfo(
7 | var code : Int,
8 | var message : String,
9 | var data : List
10 | ){
11 | data class UperChannelData(
12 | var cid : Int,
13 | var mid : Int,
14 | var name : String,
15 | var intro : String,
16 | var mtime : Long,
17 | var count : Int,
18 | var cover : String,
19 | var archives : List,
20 | var isAll: Boolean = false
21 | )
22 |
23 | data class VideoArchives(
24 | var aid : Int,
25 | var duration : Int,
26 | var title : String,
27 | var pic : String,
28 | var ctime : Long
29 | )
30 |
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/UpperChannelVideoInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/10/31.
5 | */
6 | data class UpperChannelVideoInfo(
7 | var code: Int,
8 | var message: String,
9 | var data: UperChannelVideoData
10 | ) {
11 | data class UperChannelVideoData(
12 | var list: UperChannelVideoList
13 | )
14 | data class UperChannelVideoList(
15 | var archives: List
16 | )
17 | data class VideoArchives(
18 | var aid: Int,
19 | var duration: Int,
20 | var title: String,
21 | var pic: String,
22 | var pubdate: Long,
23 | var stat: VideoStat
24 | )
25 |
26 | data class VideoStat(
27 | var danmaku: Int,
28 | var view: Int
29 | )
30 |
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/VideoRankInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/12/2.
5 | */
6 | data class VideoRankInfo (
7 | var rank: RankInfo
8 | ){
9 | data class RankInfo(
10 | var code: Int,
11 | var note: String,
12 | var num: Int,
13 | var pages: Int,
14 | var list: List
15 | )
16 | data class VideoInfo(
17 | var aid: String,
18 | var title: String,
19 | var author: String,
20 | var mid: String,
21 | var coins: Int,//硬币数
22 | var duration: String,
23 | var pic: String,
24 | var play: String,
25 | var pts: Int,//分数
26 | var video_review: Int,//弹幕数
27 | var sort_num: Int = 0
28 | )
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/client/ClientDownInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity.client
2 |
3 | /**
4 | * Created by 10喵喵 on 2018/2/12.
5 | */
6 | data class ClientDownInfo (
7 | var season_id: String,
8 | var episode_id: String,
9 | var av_id: String,
10 | var danmaku_id: String,
11 | var quality: String,
12 | var entry: EntryInfo,
13 | var index: DownIndexInfo? = null
14 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/client/DownIndexInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity.client
2 |
3 | import com.a10miaomiao.bilimiao.netword.ApiHelper
4 |
5 | /**
6 | * Created by 10喵喵 on 2018/2/12.
7 | */
8 | data class DownIndexInfo(
9 | var from: String = "bangumi",
10 | var type_tag: String = "lua.hdflv2.bb2api.bd",
11 | var description: String = "高清",
12 | var is_stub: Boolean = false,
13 | var psedo_bitrate: Int = 0,
14 | var segment_list: List,
15 | var parse_timestamp_milli: Long = ApiHelper.getTimeSpen(),
16 | var available_period_milli: Long = 0,
17 | var local_proxy_type: Int = 0,
18 | var user_agent: String = "Bilibili Freedoooooom/MarkII",
19 | var is_downloaded: Boolean = false,
20 | var is_resolved: Boolean = true,
21 | var player_codec_config_list: List,
22 | var time_length: Long
23 | ) {
24 | data class PlayerCodecConfigInfo(
25 | var player: String,
26 | var use_list_player: Boolean = false,
27 | var use_ijk_media_codec: Boolean = false
28 | )
29 |
30 | data class SegmentInfo(
31 | var url: String,
32 | var duration: Long = 0,
33 | var bytes: Long = 0,
34 | var meta_url: String = ""
35 | )
36 |
37 | }
38 | /**
39 | * public class DownIndexModel
40 | {
41 |
42 |
43 | }
44 | public class player_codec_config_listModel
45 | {
46 |
47 | }
48 | public class
49 | {
50 |
51 | }
52 | }
53 | * ***/
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/entity/client/EntryInfo.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.entity.client
2 |
3 | /**
4 | * Created by 10喵喵 on 2018/2/12.
5 | */
6 | data class EntryInfo(
7 | var season_id: String,
8 | var avid: String? = null,
9 | var title: String,
10 | var cover: String,
11 |
12 | var source: SourceInfo? = null,
13 | var ep: EpInfo,
14 | var page_data: PageDataInfo? = null,
15 |
16 | var is_completed: Boolean,
17 | var total_bytes: Long = 0,
18 | var downloaded_bytes: Long = 0,
19 |
20 | var type_tag: String = "lua.flv720.bb2api.64",
21 |
22 | var prefered_video_quality: Int = 100,
23 | var guessed_total_bytes: Int = 0,
24 |
25 | var total_time_milli: Long = 0,
26 | var danmaku_count: Int = 3000,
27 | var time_update_stamp: Long = 1511875136369,
28 | var time_create_stamp: Long = 1511868244605
29 | ) {
30 | // data class SourceInfo(
31 | // var av_id: Long,
32 | // var page: String,
33 | // var danmaku: Long,
34 | // var cover: String,
35 | // var episode_id: Long,
36 | // var index: String,
37 | // var index_title: String
38 | // )
39 |
40 | data class SourceInfo(
41 | var av_id: Long,
42 | var cid: Long,
43 | var website: String = "bangumi",
44 | var webvideo_id: String = ""
45 | )
46 | data class EpInfo(
47 | var av_id: Long,
48 | var page: Int = 1,
49 | var danmaku: Long,
50 | var cover: String,
51 | var episode_id: Long,
52 | var index_title: String = "",
53 | var from: String = "bangumi"
54 | //var season_type: Int = 4
55 | )
56 |
57 | data class PageDataInfo(
58 | var cid: Long,
59 | var page: Int,
60 | var from: String = "vupload",
61 | var part: String,
62 | var link: String,
63 | var weblink: String,
64 | var rich_vid: String,
65 | var offsit: String,
66 | var vid: String,
67 | var has_alias: Boolean = false,
68 | var tid: Int
69 | )
70 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/fragments/SelectorDateFragment.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.fragments
2 |
3 | import android.os.Bundle
4 | import com.a10miaomiao.bilimiao.R
5 | import com.a10miaomiao.bilimiao.activitys.SelectorDateActivity
6 | import com.a10miaomiao.bilimiao.base.BaseFragment
7 | import com.a10miaomiao.bilimiao.utils.SelectorDateUtil
8 | import kotlinx.android.synthetic.main.fragment_selector_date.*
9 |
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/9/18.
13 | */
14 | class SelectorDateFragment : BaseFragment() {
15 | override var layoutResId: Int = R.layout.fragment_selector_date
16 | override fun finishCreateView(savedInstanceState: Bundle?) {
17 | btn_time.setOnClickListener {
18 | SelectorDateActivity.launch(activity!!)
19 | }
20 | loadDate()
21 | }
22 |
23 | override fun onStart() {
24 | super.onStart()
25 | loadDate()
26 | }
27 |
28 | /**
29 | * 加载日期
30 | */
31 | private fun loadDate() {
32 | val selectorDateUtil = SelectorDateUtil(activity!!)
33 | val s = arrayOf("当前为默认模式", "当前为自定义模式", "当前为快速选择月份模式")
34 | text_type.text = s[selectorDateUtil.timeType]
35 | val timeFrom = SelectorDateUtil.formatDate(selectorDateUtil.timeFrom!!, "/")
36 | val timeTo = SelectorDateUtil.formatDate(selectorDateUtil.timeTo!!, "/")
37 | text_time.text = "$timeFrom\n至\n$timeTo"
38 | }
39 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/media/VideoSource.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.media
2 |
3 | import android.net.Uri
4 |
5 | data class VideoSource (
6 | var uri: Uri,
7 | var length: Long,
8 | var size: Long
9 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/media/callback/DanmakuSwitchListener.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.media.callback;
2 |
3 | /**
4 | * Created by hcc on 16/8/31 21:44
5 | * 100332338@qq.com
6 | *
7 | * 弹幕开关回调接口
8 | */
9 | public interface DanmakuSwitchListener
10 | {
11 |
12 | void setDanmakushow(boolean isShow);
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/media/callback/MediaController.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.media.callback
2 |
3 | import android.view.View
4 |
5 | interface MediaController {
6 | fun setEnabled(enabled: Boolean)
7 | fun show()
8 | fun show(timeout: Int)
9 | fun hide()
10 | fun isShowing(): Boolean
11 | fun setMediaPlayer(player: MediaPlayerListener)
12 | fun setAnchorView(v: View)
13 | fun setTitle(title: String)
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/media/callback/MediaPlayerListener.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.media.callback;
2 |
3 | /**
4 | * Created by hcc on 16/8/31 21:42
5 | * 100332338@qq.com
6 | *
7 | * 视频控制回调接口
8 | */
9 | public interface MediaPlayerListener
10 | {
11 |
12 | void start();
13 |
14 | void pause();
15 |
16 | long getDuration();
17 |
18 | long getCurrentPosition();
19 |
20 | void seekTo(long pos);
21 | // void seekTo2(long pos);
22 |
23 | boolean isPlaying();
24 |
25 | long getBufferPercentage();
26 |
27 | boolean canPause();
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/media/callback/VideoBackListener.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.media.callback;
2 |
3 | /**
4 | * Created by hcc on 16/9/3 16:26
5 | * 100332338@qq.com
6 | *
7 | * 视频返回回调接口
8 | */
9 | public interface VideoBackListener
10 | {
11 |
12 | void back();
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/AnimationUtil.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils;
2 |
3 | import android.content.Context;
4 | import android.view.animation.AlphaAnimation;
5 | import android.view.animation.Animation;
6 | import android.view.animation.AnimationSet;
7 | import android.view.animation.TranslateAnimation;
8 |
9 | /**
10 | * Created by 10喵喵 on 2017/9/24.
11 | */
12 | public class AnimationUtil {
13 |
14 | public final static int ANIMATION_IN_TIME=500;
15 | public final static int ANIMATION_OUT_TIME=500;
16 |
17 | public static Animation createInAnimation(Context context,int fromYDelta){
18 | AnimationSet set=new AnimationSet(context,null);
19 | set.setFillAfter(true);
20 |
21 | TranslateAnimation animation=new TranslateAnimation(0,0,fromYDelta,0);
22 | animation.setDuration(ANIMATION_IN_TIME);
23 | set.addAnimation(animation);
24 |
25 | AlphaAnimation alphaAnimation=new AlphaAnimation(0,1);
26 | alphaAnimation.setDuration(ANIMATION_IN_TIME);
27 | set.addAnimation(alphaAnimation);
28 |
29 |
30 | return set;
31 | }
32 |
33 | public static Animation createOutAnimation(Context context,int toYDelta){
34 | AnimationSet set=new AnimationSet(context,null);
35 | set.setFillAfter(true);
36 |
37 | TranslateAnimation animation=new TranslateAnimation(0,0,0,toYDelta);
38 | animation.setDuration(ANIMATION_OUT_TIME);
39 | set.addAnimation(animation);
40 |
41 | AlphaAnimation alphaAnimation=new AlphaAnimation(1,0);
42 | alphaAnimation.setDuration(ANIMATION_OUT_TIME);
43 | set.addAnimation(alphaAnimation);
44 |
45 |
46 | return set;
47 | }
48 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/BiliClientDownHelper.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.content.Context
4 | import android.os.Environment
5 | import android.preference.PreferenceManager
6 | import com.a10miaomiao.bilimiao.entity.client.ClientDownInfo
7 |
8 | /**
9 | * Created by 10喵喵 on 2018/2/12.
10 | */
11 | object BiliClientDownHelper {
12 | /**
13 | * 创建番剧
14 | */
15 | fun createAnime(context: Context, info: ClientDownInfo) {
16 | val prefs = PreferenceManager.getDefaultSharedPreferences(context)
17 | var client_type = prefs.getString("bili_client_type","0").toInt()
18 | var biliPackname = arrayOf("tv.danmaku.bili"
19 | , "com.bilibili.app.in"
20 | , "com.bilibili.app.blue")[client_type]
21 | var biliPath = Environment.getExternalStorageDirectory().path + "/Android/data" + "/$biliPackname/download/"
22 | FileUtil.isPath(biliPath)
23 | var sPath = FileUtil.isPath(biliPath + "s_${info.season_id}/") //番剧文件夹
24 | var ePath = FileUtil.isPath(sPath + info.episode_id + "/") //剧集文件夹
25 | //var videoPath = FileUtil.isPath(ePath + info.quality + "/") //视频文件夹
26 | FileUtil(ePath, miao = false).saveJSON(info.entry, "entry")
27 | // FileUtil(videoPath, miao = false).saveJSON(info.index, "entry")
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/ConstantUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | /**
4 | * Created by 10喵喵 on 2017/10/29.
5 | */
6 | object ConstantUtil {
7 | val APP_NAME = "bilimiao"
8 | val EXTRA_PARTITION = "extra_partition"
9 | val EXTRA_RID = "extra_rid"
10 | val DATA = "data"
11 | var INDEX = "index"
12 |
13 | val TIME_TYPE = "timeType"
14 |
15 | val TIME_TYPE_DEFAULT = 0 //默认
16 | val TIME_TYPE_CUSTOM = 1 //自定义
17 | val TIME_TYPE_MONTH = 2 //按月份
18 |
19 | val TIME_FROM = "timeFrom"
20 | val TIME_TO = "timeTo"
21 | val TIME_IS_LINK = "timeIsLink"
22 |
23 | val PLAYER = "player"
24 |
25 | val PLAYER_BILI = 0 //哔哩哔哩动画
26 | val PLAYER_PLAY = 1 //哔哩哔哩 play版
27 | val PLAYER_BILIBLUE = 2 //哔哩哔哩概念版
28 | // val PLAYER_BILIXL = 3 //哔哩哔哩白
29 | val PLAYER_BROWSER = 3 //浏览器
30 |
31 | val ID = "id"
32 | val AID = "aid"
33 | val TYPE = "type"
34 | val DO = "do"
35 | val MID = "mid"
36 | val CID = "cid"
37 | val REFERER = "referer"
38 | var PIC = "pic"
39 | val NAME = "name"
40 | var KETWORD = "keyword"
41 | val DILIURL = "DILIURL"
42 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/DisplayUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.app.Activity
4 |
5 | fun Activity.dip(dipValue: Int): Int{
6 | val scale = this.resources.displayMetrics.density
7 | return (dipValue * scale + 0.5f).toInt()
8 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/IntentHandlerUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.net.Uri
6 | import android.preference.PreferenceManager
7 | import com.a10miaomiao.bilimiao.activitys.VideoInfoActivity
8 |
9 | /**
10 | * Created by 10喵喵 on 2017/11/5.
11 | */
12 | object IntentHandlerUtil {
13 | val TYPE_VIDEO = "video"
14 | val TYPE_AUTHOR = "author"
15 | val TYPE_BANGUMI = "bangumi"
16 | /**
17 | * 调用b站打开打开
18 | */
19 | fun openWithPlayer(activity: Activity,type: String, id: String){
20 | val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
21 | if (!prefs.getBoolean("is_bili_player", false)) {
22 | if(type == TYPE_VIDEO){
23 | VideoInfoActivity.launch(activity,id)
24 | return
25 | }
26 | }
27 | openWithPlayer_old(activity, type, id)
28 | }
29 |
30 | fun openWithPlayer_old(activity: Activity,type: String, id: String){
31 | try {
32 | var intent = Intent(Intent.ACTION_VIEW)
33 | var url = when(type){
34 | TYPE_VIDEO -> "bilibili://video/$id"
35 | TYPE_AUTHOR -> "https://space.bilibili.com/$id"
36 | TYPE_BANGUMI -> "bilibili://bangumi/season/$id"
37 | else -> "bilibili://video/$id"
38 | }
39 | intent.data = Uri.parse(url)
40 | activity.startActivity(intent)
41 | }catch (e: Exception){
42 | var intent = Intent(Intent.ACTION_VIEW)
43 | var url = when(type){
44 | TYPE_VIDEO -> "http://www.bilibili.com/video/av$id"
45 | TYPE_AUTHOR -> "https://space.bilibili.com/$id"
46 | TYPE_BANGUMI -> "http://bangumi.bilibili.com/anime/$id/"
47 | else -> "http://www.bilibili.com/video/av$id"
48 | }
49 | intent.data = Uri.parse(url)
50 | activity.startActivity(intent)
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/KeyboardUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.content.Context
4 | import android.view.inputmethod.InputMethodManager
5 | import android.widget.EditText
6 |
7 | /**
8 | * Created by 10喵喵 on 2017/10/23.
9 | */
10 | object KeyboardUtil{
11 | fun openKeyboard(context: Context,et: EditText) {
12 | val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
13 | imm.showSoftInput(et, InputMethodManager.RESULT_SHOWN)
14 | imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY)
15 | }
16 |
17 | fun closeKeyboard(context: Context,et: EditText) {
18 | val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
19 | imm.hideSoftInputFromWindow(et.windowToken, 0)
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/LogUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.util.Log
4 |
5 | /**
6 | * Created by 10喵喵 on 2017/8/3.
7 | */
8 | fun log(msg: String) {
9 | log("------", msg)
10 | }
11 | fun log(msg: Int) {
12 | log(msg.toString())
13 | }
14 | fun log(msg: Long) {
15 | log(msg.toString())
16 | }
17 | fun log(tag: String, msg: String) {
18 | var msg = msg.trim()
19 | var index = 0
20 | val maxLength = 3000
21 | var sub: String
22 | while (index < msg.length) {
23 | // java的字符不允许指定超过总的长度end
24 | if (msg.length <= index + maxLength) {
25 | sub = msg.substring(index)
26 | } else {
27 | sub = msg.substring(index, index + maxLength)
28 | }
29 | index += maxLength
30 | Log.d(tag, sub.trim())
31 | }
32 | }
33 | fun log(tag: Int, msg: String) {
34 | log(tag.toString(),msg)
35 | }
36 | fun log(tag: String, msg: Int) {
37 | log(tag,msg.toString())
38 | }
39 | fun log(tag: Int, msg: Int) {
40 | log(tag.toString(),msg.toString())
41 | }
42 | fun log(tag: String, msg: Long) {
43 | log(tag,msg.toString())
44 | }
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/NumberUtil.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils;
2 |
3 | import java.text.SimpleDateFormat;
4 | import java.util.Date;
5 |
6 | /**
7 | * Created by hcc on 2016/10/11 14:35
8 | * 100332338@qq.com
9 | */
10 |
11 | public class NumberUtil {
12 |
13 | public static String converString(int num) {
14 | if (num < 10000) {
15 | return String.valueOf(num);
16 | }
17 | String unit = "万";
18 | double newNum = num / 10000.0;
19 |
20 | String numStr = String.format("%." + 1 + "f", newNum);
21 | return numStr + unit;
22 | }
23 | public static String converString(String num) {
24 | try {
25 | return converString(Integer.valueOf(num));
26 | }catch (NumberFormatException e){
27 | return "--";
28 | }
29 | }
30 |
31 | public static String converDuration(int duration) {
32 | String s = String.valueOf(duration % 60);
33 | String min = String.valueOf(duration / 60);
34 | if (s.length() == 1)
35 | s = "0" + s;
36 | if (min.length() == 1)
37 | min = "0" + min;
38 | return min + ":" + s;
39 | }
40 |
41 | public static String converCTime(Long ctime) {
42 | Date date = new Date(ctime * 1000);
43 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
44 | return sf.format(date);
45 | }
46 |
47 | public static String converCTime2(Long ctime) {
48 | Date date = new Date(ctime);
49 | SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
50 | return sf.format(date);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/SettingUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.content.Context
4 |
5 |
6 |
7 | /**
8 | * Created by 10喵喵 on 2017/9/22.
9 | */
10 | class SettingUtil{
11 | companion object{
12 | fun putString(context: Context, key: String, value: String) {
13 | val sp = context.getSharedPreferences("bilimiao", Context.MODE_PRIVATE)
14 | val editor = sp.edit()
15 | editor.putString(key, value)
16 | editor.apply()
17 | }
18 |
19 | fun putInt(context: Context, key: String, value: Int) {
20 | val sp = context.getSharedPreferences("bilimiao", Context.MODE_PRIVATE)
21 | val editor = sp.edit()
22 | editor.putInt(key, value)
23 | editor.apply()
24 | //Log.d("value", value.toString())
25 | }
26 | fun putBoolean(context: Context, key: String, value: Boolean) {
27 | val sp = context.getSharedPreferences("bilimiao", Context.MODE_PRIVATE)
28 | val editor = sp.edit()
29 | editor.putBoolean(key, value)
30 | editor.apply()
31 | //Log.d("value", value.toString())
32 | }
33 | fun getString(context: Context, key: String, defValue: String): String {
34 | val sp = context.getSharedPreferences("bilimiao", Context.MODE_PRIVATE)
35 | return sp.getString(key, defValue)
36 | }
37 |
38 | fun getInt(context: Context, key: String, defValue: Int): Int {
39 | val sp = context.getSharedPreferences("bilimiao", Context.MODE_PRIVATE)
40 | return sp.getInt(key, defValue)
41 | }
42 | fun getBoolean(context: Context, key: String, defValue: Boolean): Boolean {
43 | val sp = context.getSharedPreferences("bilimiao", Context.MODE_PRIVATE)
44 | return sp.getBoolean(key, defValue)
45 | }
46 |
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/TextUtil.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | object TextUtil {
4 | fun getIntermediateText1(text: String, s: String, e: String): String {
5 | val n = text.indexOf(s)
6 | val m = text.indexOf(e, n + s.length)
7 | return if (m != -1 && n != -1 && m > n) {
8 | text.substring(n + s.length, m)
9 | } else {
10 | ""
11 | }
12 | }
13 |
14 | fun getIntermediateTexts(text: String, s: String, e: String): ArrayList {
15 | val result = ArrayList()
16 | var m = 0
17 | var n = 0
18 | while (true) {
19 | n = text.indexOf(s, m)
20 | if (n == -1)
21 | break
22 | m = text.indexOf(e, n + s.length)
23 | if (m == -1)
24 | break
25 | result.add(text.substring(n + s.length, m))
26 | }
27 | return result
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/ThemeHelper.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils
2 |
3 | import android.content.Context
4 | import android.content.SharedPreferences
5 | import com.a10miaomiao.bilimiao.R
6 |
7 |
8 | /**
9 | * Created by 10喵喵 on 2017/12/25.
10 | */
11 | object ThemeHelper{
12 | private val CURRENT_THEME = "theme_current"
13 |
14 | val themeIds = arrayOf(
15 | R.style.PinkTheme,
16 | R.style.RedTheme,
17 | R.style.YellowTheme,
18 | R.style.GreenTheme,
19 | R.style.BlueTheme,
20 | R.style.PurpleTheme,
21 | R.style.NightTheme
22 | )
23 |
24 | fun getSharePreference(context: Context): SharedPreferences {
25 | return context.getSharedPreferences("bilimiao_theme", Context.MODE_PRIVATE)
26 | }
27 |
28 |
29 | fun setTheme(context: Context, themeId: Int) {
30 | getSharePreference(context).edit()
31 | .putInt(CURRENT_THEME, themeId)
32 | .apply()
33 | }
34 |
35 |
36 | fun getTheme(context: Context): Int {
37 | return getSharePreference(context).getInt(CURRENT_THEME, 0)
38 | }
39 |
40 | fun getThemeId(context: Context): Int {
41 | var index = getTheme(context)
42 | if(index >= themeIds.size)
43 | index = 0
44 | return themeIds[index]
45 | }
46 |
47 | fun getColorAccent(context: Context): Int {
48 | return arrayOf(
49 | R.color.pink,
50 | R.color.red,
51 | R.color.orange,
52 | R.color.green,
53 | R.color.blue,
54 | R.color.purple,
55 | R.color.nightColorAccent
56 | )[getTheme(context)]
57 | }
58 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/utils/ViewUtils.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.utils;
2 |
3 | import android.view.View;
4 |
5 | /**
6 | * Created by 10喵喵 on 2017/9/24.
7 | */
8 | public class ViewUtils {
9 |
10 | /**
11 | * 获取控件的高度
12 | */
13 | public static int getViewMeasuredHeight(View view) {
14 | calculateViewMeasure(view);
15 | return view.getMeasuredHeight();
16 | }
17 |
18 | /**
19 | * 获取控件的宽度
20 | */
21 | public static int getViewMeasuredWidth(View view) {
22 | calculateViewMeasure(view);
23 | return view.getMeasuredWidth();
24 | }
25 |
26 | /**
27 | * 测量控件的尺寸
28 | */
29 | private static void calculateViewMeasure(View view) {
30 | int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
31 | int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
32 |
33 | view.measure(w, h);
34 | }
35 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/views/LoadMoreView.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.views
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.View
6 | import android.widget.FrameLayout
7 | import com.a10miaomiao.bilimiao.R
8 | import kotlinx.android.synthetic.main.layout_load_more.view.*
9 |
10 |
11 | /**
12 | * Created by 10喵喵 on 2017/9/29.
13 | */
14 | class LoadMoreView : FrameLayout {
15 | companion object{
16 | val LOADING = 0 //加载更多
17 | val NOMORE = 1 //没有更多
18 | val FAIL = 2 //加载失败
19 | }
20 |
21 | var state : Int? = null
22 | set(value) {
23 | field = value
24 | when(value){
25 | LOADING ->{
26 | text?.text = "加载中"
27 | progress?.visibility = View.VISIBLE
28 | }
29 | NOMORE ->{
30 | visibility = View.VISIBLE
31 | text?.text = "下面没有了"
32 | progress?.visibility = View.GONE
33 | }
34 | FAIL ->{
35 | visibility = View.VISIBLE
36 | text?.text = "无法连接到御坂网络"
37 | progress?.visibility = View.GONE
38 | }
39 | }
40 | }
41 |
42 | var isLoading: Boolean = true
43 | private set
44 | get() = visibility == View.VISIBLE || state == NOMORE
45 |
46 | constructor(context: Context) : super(context){
47 | initView()
48 | }
49 |
50 | constructor(context: Context, attrs: AttributeSet) : super(context, attrs){
51 | initView()
52 | }
53 |
54 | constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
55 | initView()
56 | }
57 | fun initView(){
58 | View.inflate(context, R.layout.layout_load_more, this)
59 | visibility = View.GONE
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/views/RankOrdersView.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.views
2 |
3 | import android.content.Context
4 | import android.support.v7.widget.GridLayoutManager
5 | import android.util.AttributeSet
6 | import android.view.View
7 | import android.widget.FrameLayout
8 | import com.a10miaomiao.bilimiao.R
9 | import com.a10miaomiao.bilimiao.adapter.RankOrdersAdapter
10 | import kotlinx.android.synthetic.main.layout_selectlist.view.*
11 |
12 | /**
13 | * Created by 10喵喵 on 2017/11/23.
14 | */
15 | class RankOrdersView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : FrameLayout(context, attrs, defStyleAttr) {
16 | init {
17 | View.inflate(context, R.layout.layout_selectlist, this)
18 | val mAdapter = RankOrdersAdapter(arrayOf("默认排序", "播放多", "新发布", "弹幕多"))
19 | recycle.apply {
20 | setHasFixedSize(true)
21 | layoutManager = GridLayoutManager(context, 4)
22 | adapter = mAdapter
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/views/UpperHeaderView.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.views
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.View
6 | import android.widget.FrameLayout
7 | import com.a10miaomiao.bilimiao.R
8 | import com.a10miaomiao.bilimiao.activitys.PhotoActivity
9 | import com.bumptech.glide.Glide
10 | import com.bumptech.glide.load.engine.DiskCacheStrategy
11 | import kotlinx.android.synthetic.main.layout_upper_header.view.*
12 |
13 | /**
14 | * Created by 10喵喵 on 2017/11/12.
15 | */
16 | class UpperHeaderView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : FrameLayout(context, attrs, defStyleAttr) {
17 | init {
18 | View.inflate(context, R.layout.layout_upper_header, this)
19 | iv_uper_avatar.setOnClickListener {
20 | PhotoActivity.launch(context, url, name)
21 | }
22 | }
23 |
24 | var url = ""
25 | set(value) {
26 | field = value
27 | Glide.with(context)
28 | .load(value)
29 | .centerCrop()
30 | .diskCacheStrategy(DiskCacheStrategy.ALL)
31 | .placeholder(R.drawable.ico_user_default)
32 | .dontAnimate()
33 | .into(iv_uper_avatar)
34 | }
35 |
36 | var name = ""
37 | set(value) {
38 | field = value
39 | tv_uper_name.text = value
40 | }
41 |
42 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/widget/DropDownMenu.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.widget
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.widget.TextView
6 | import com.a10miaomiao.bilimiao.R
7 | import com.a10miaomiao.bilimiao.views.RankOrdersPopupWindow
8 |
9 | /**
10 | * Created by 10喵喵 on 2017/11/23.
11 | */
12 | class DropDownMenu@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : TextView(context, attrs, defStyleAttr) {
13 | var popMenu : RankOrdersPopupWindow? = null
14 | set(value) {
15 | field = value
16 | field?.setOnDismissListener {
17 | val drawable = resources.getDrawable(R.drawable.ic_arrow_drop_down_24dp)
18 | drawable.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight)//这一步必须要做,否则不会显示
19 | this.setCompoundDrawables(null,null,drawable,null)
20 | }
21 | }
22 | init {
23 | setOnClickListener {
24 | popMenu?.show()
25 | val drawable = resources.getDrawable(R.drawable.ic_arrow_drop_up_24dp)
26 | drawable.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight)//这一步必须要做,否则不会显示
27 | this.setCompoundDrawables(null,null,drawable,null)
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/widget/SelectView.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.widget
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.View
6 | import android.widget.FrameLayout
7 | import com.a10miaomiao.bilimiao.R
8 | import kotlinx.android.synthetic.main.layout_select_view.view.*
9 |
10 | /**
11 | * 左右选择控件
12 | * Created by 10喵喵 on 2017/10/22.
13 | */
14 | class SelectView : FrameLayout {
15 | var titles : Array? = null
16 | set(value) {
17 | field = value
18 | tv_title.text = value!![0]
19 | }
20 | var index = 0
21 | set(value) {
22 | field = value
23 | tv_title.text = titles!![index]
24 | onChangeItem?.invoke(index)
25 | }
26 | var onChangeItem : ((index: Int) -> Unit)? = null
27 |
28 | constructor(context: Context) : super(context){
29 | initView()
30 | }
31 | constructor(context: Context, attrs: AttributeSet) : super(context, attrs){
32 | initView()
33 | }
34 | constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
35 | initView()
36 | }
37 | private fun initView(){
38 | View.inflate(context, R.layout.layout_select_view, this)
39 | iv_to_left.setOnClickListener {
40 | index = if(index == 0) titles!!.size - 1 else index - 1
41 | tv_title.text = titles!![index]
42 | onChangeItem?.invoke(index)
43 | }
44 | iv_to_right.setOnClickListener {
45 | index = if(index == titles!!.size - 1) 0 else index + 1
46 | tv_title.text = titles!![index]
47 | onChangeItem?.invoke(index)
48 | }
49 | }
50 |
51 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/a10miaomiao/bilimiao/widget/VideoPlayerView.kt:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao.widget
2 |
3 | //import tv.danmaku.ijk.media.player.IjkMediaPlayer
4 |
5 | /**
6 | * Created by 10喵喵 on 2018/2/6.
7 | */
8 | class VideoPlayerView{
9 |
10 | }
11 | //class VideoPlayerView @JvmOverloads constructor(
12 | // context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
13 | // ) : SurfaceView(context, attrs, defStyleAttr) {
14 | //
15 | // var mMediaPlayer: IjkMediaPlayer? = null
16 | //
17 | // init {
18 | // initVideoView()
19 | // }
20 | //
21 | // private fun initVideoView(){
22 | // isFocusable = true //能否获得焦点
23 | // isFocusableInTouchMode = true //通过触摸点获取焦点
24 | // keepScreenOn = true //保持屏幕长亮
25 | //
26 | //
27 | // holder.addCallback(mSHCallback);
28 | // }
29 | //
30 | // /**
31 | // * 创建一个新的player
32 | // */
33 | // private fun createPlayer() {
34 | // if (mMediaPlayer != null) {
35 | // mMediaPlayer!!.stop()
36 | // mMediaPlayer!!.setDisplay(null)
37 | // mMediaPlayer!!.release()
38 | // }
39 | // var ijkMediaPlayer = IjkMediaPlayer()
40 | // //ijkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_DEBUG); //开启硬解码
41 | // ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1);
42 | //
43 | // mMediaPlayer = ijkMediaPlayer
44 | //
45 | //// if (listener != null) {
46 | //// mMediaPlayer.setOnPreparedListener(listener)
47 | //// mMediaPlayer.setOnInfoListener(listener)
48 | //// mMediaPlayer.setOnSeekCompleteListener(listener)
49 | //// mMediaPlayer.setOnBufferingUpdateListener(listener)
50 | //// mMediaPlayer.setOnErrorListener(listener)
51 | //// }
52 | // }
53 | //
54 | //
55 | // var mSHCallback = object : SurfaceHolder.Callback{
56 | // override fun surfaceChanged(holder: SurfaceHolder?, format: Int, width: Int, height: Int) {
57 | // createPlayer()
58 | //// mMediaPlayer!!.setDisplay(holder)
59 | //// mMediaPlayer!!.dataSource = "https://10miaomiao.cn/1.flv"
60 | //// mMediaPlayer!!.start()
61 | // }
62 | //
63 | // override fun surfaceDestroyed(holder: SurfaceHolder?) {
64 | //
65 | // }
66 | //
67 | // override fun surfaceCreated(holder: SurfaceHolder?) {
68 | //
69 | // }
70 | // }
71 | //}
--------------------------------------------------------------------------------
/app/src/main/res/anim/activity_out_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/activity_start_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/pophidden_operation_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/pophidden_operation_anim_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/popshow_operation_anim_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/popshow_operation_anim_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bili_default_image_tv.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/bili_default_image_tv.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bili_player_back_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/bili_player_back_button.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bili_player_danmaku_is_closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/bili_player_danmaku_is_closed.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bili_player_danmaku_is_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/bili_player_danmaku_is_open.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bili_player_play_can_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/bili_player_play_can_pause.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bili_player_play_can_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/bili_player_play_can_play.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/black_badge.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_add_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_back_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_drop_down_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_arrow_drop_up_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_clip_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_clip_video.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t1.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t11.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t119.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t119.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t129.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t129.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t13.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t155.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t155.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t160.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t165.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t165.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t167.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t181.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t181.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t23.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t3.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t36.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t4.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_category_t5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_category_t5.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_check_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_close_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_download_white.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_fab_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_fab_play.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_more_download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_home_more_download.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_more_prevent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_home_more_prevent.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_more_rank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_home_more_rank.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_info_danmakus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_info_danmakus.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_info_views.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_info_views.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_keyboard_arrow_left_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_link_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_lock_open_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_more_vert_grey_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_movie_pay_area_limit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_movie_pay_area_limit.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_navigate_next_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_play_circle_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_play_circle_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_player_locked_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_player_locked_2.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_player_media_quality_medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_player_media_quality_medium.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_ad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_ad.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_dh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_dh.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_dsj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_dsj.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_dy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_dy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_fj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_fj.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_fj_domestic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_fj_domestic.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_gc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_gc.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_kj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_kj.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_sh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_sh.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_ss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_ss.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_wd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_wd.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_yl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_yl.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_ys.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_ys.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_yx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_yx.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_region_yy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_region_yy.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_search_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_search_bg_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_search_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_subtitles_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_subtitles_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_tv_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_tv_play.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_tv_stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ic_tv_stop.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_unfold_more_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ico_user_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/ico_user_default.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/icon_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/icon_up.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/layer_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 | -
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | -
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_pick_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_semicircle_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
8 |
11 |
12 |
13 |
14 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_semicircle_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
8 |
11 |
12 |
13 |
14 |
15 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/videoplayer_erect_icon_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/res/drawable/videoplayer_erect_icon_round.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_danmaku.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
13 |
18 |
23 |
28 |
29 |
33 |
37 |
38 |
44 |
45 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_danmaku_details.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
16 |
17 |
23 |
28 |
35 |
43 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_edit_prevent_keyword.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
16 |
17 |
26 |
27 |
34 |
35 |
36 |
37 |
43 |
44 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_h5_player.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_photo.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
18 |
19 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_player.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
16 |
17 |
21 |
22 |
23 |
30 |
36 |
42 |
43 |
44 |
53 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_region_details.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
15 |
24 |
25 |
32 |
33 |
34 |
35 |
41 |
42 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_splash.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_theme_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_uper_deyail_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
14 |
15 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_uper_video_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_edit_name.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
12 |
17 |
18 |
26 |
27 |
28 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_user.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
17 |
24 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_download.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
17 |
18 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_edit_prevent_keyword.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
13 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_prevent_upper.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_search_result_upper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
16 |
17 |
18 |
19 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_selector_date.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
17 |
18 |
22 |
23 |
31 |
32 |
37 |
38 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/include_title_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_bangumi_episodes.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_danmakiu.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
14 |
20 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_home_region.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
18 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_prevent_keyword.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_rank_orders.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_search_box_history.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_theme_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
16 |
17 |
22 |
23 |
24 |
31 |
32 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_uper_channel.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
19 |
20 |
25 |
26 |
38 |
39 |
40 |
41 |
52 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_date_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
11 |
16 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_null.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_load_more.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_month_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
10 |
11 |
17 |
18 |
23 |
24 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_quality.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_select_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
19 |
25 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_selectlist.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_upper_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
17 |
18 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/add.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/close.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/danmaku.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/upper.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/video_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v19/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
18 |
19 |
20 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 240dp
4 | 16dp
5 | 16dp
6 |
7 | 12dp
8 | 12sp
9 | 140dp
10 | 16sp
11 | 5dp
12 | 10dp
13 | 5dp
14 |
15 | 3dp
16 |
17 |
18 | 2dp
19 | 12dp
20 | 3dp
21 |
22 | 52dp
23 | 190dp
24 | 4dp
25 | 3dp
26 | 70dp
27 | 1dp
28 | 120dp
29 | 45dp
30 | 8dp
31 | 3dp
32 | 20dp
33 | 128dp
34 |
35 | 16dp
36 | 16dp
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | bilimiao
3 |
4 | - 哔哩哔哩
5 | - 哔哩哔哩(play版)
6 | - 哔哩哔哩概念版
7 | - 用浏览器打开
8 |
9 |
10 | - 0
11 | - 1
12 | - 2
13 | - 3
14 |
15 |
16 |
17 | - 哔哩哔哩
18 | - 哔哩哔哩(play版)
19 | - 哔哩哔哩概念版
20 |
21 |
22 | - 0
23 | - 1
24 | - 2
25 |
26 |
27 |
28 | 1、本程序为哔哩哔哩动画的第三方助手类工具,资源来自哔哩哔哩动画,部分资源来自“www.dilidili.wang”\n
29 | 2、如果侵犯您的合法权益,请及时联系本人以第一时间删除
30 |
31 |
32 | Cannot play video
33 | Sorry, this video is not valid for streaming tothis device.
34 | Sorry, this video cannot be played.
35 | OK
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/values/theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
14 |
15 |
20 |
21 |
26 |
27 |
32 |
33 |
38 |
39 |
47 |
48 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/shape_launch-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/app/src/main/shape_launch-web.png
--------------------------------------------------------------------------------
/app/src/test/java/com/a10miaomiao/bilimiao/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.a10miaomiao.bilimiao;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext.kotlin_version = '1.2.50'
5 |
6 | repositories {
7 | google()
8 | jcenter()
9 | }
10 | dependencies {
11 | classpath 'com.android.tools.build:gradle:3.1.3'
12 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
13 |
14 | // NOTE: Do not place your application dependencies here; they belong
15 | // in the individual module build.gradle files
16 | }
17 | }
18 |
19 | allprojects {
20 | repositories {
21 | google()
22 | maven { url 'https://jitpack.io' }//添加jitpack仓库地址
23 | maven { url "http://lib.gcssloop.com/repository/gcssloop-central/" }// 私有仓库地址
24 | jcenter()
25 | }
26 | }
27 |
28 | task clean(type: Delete) {
29 | delete rootProject.buildDir
30 | }
31 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 | #android.enableAapt2=false
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/10miaomiao/bilimiao/dfd78b56b5c41eb49454836ee2bce5cefc667db7/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Jun 24 22:11:26 CST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
7 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------