├── .gitignore ├── README.md ├── RecyclerViewHelper ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── dl7 │ │ └── recycler │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── dl7 │ │ │ └── recycler │ │ │ ├── adapter │ │ │ ├── BaseMultiItemQuickAdapter.java │ │ │ ├── BaseQuickAdapter.java │ │ │ ├── BaseSectionQuickAdapter.java │ │ │ └── BaseViewHolder.java │ │ │ ├── divider │ │ │ ├── DividerGridItemDecoration.java │ │ │ └── DividerItemDecoration.java │ │ │ ├── entity │ │ │ ├── MultiItemEntity.java │ │ │ └── SectionEntity.java │ │ │ ├── helper │ │ │ ├── ItemTouchHelperAdapter.java │ │ │ ├── ItemTouchHelperViewHolder.java │ │ │ ├── OnStartDragListener.java │ │ │ ├── RecyclerViewHelper.java │ │ │ └── SimpleItemTouchHelperCallback.java │ │ │ └── listener │ │ │ ├── OnItemMoveListener.java │ │ │ ├── OnRecyclerViewItemClickListener.java │ │ │ ├── OnRecyclerViewItemLongClickListener.java │ │ │ ├── OnRemoveDataListener.java │ │ │ └── OnRequestDataListener.java │ └── res │ │ ├── drawable │ │ └── shape_drag_default.xml │ │ ├── layout │ │ └── layout_load_more.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── dl7 │ └── recycler │ └── ExampleUnitTest.java ├── app ├── .gitignore ├── build.gradle ├── mvpapp.jks ├── proguard-rules.pro ├── src │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── dl7 │ │ │ └── mvp │ │ │ └── ApplicationTest.java │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ │ └── NewsChannel │ │ ├── java │ │ │ └── com │ │ │ │ └── dl7 │ │ │ │ └── mvp │ │ │ │ ├── AndroidApplication.java │ │ │ │ ├── adapter │ │ │ │ ├── BaseVideoDLAdapter.java │ │ │ │ ├── BeautyPhotosAdapter.java │ │ │ │ ├── ManageAdapter.java │ │ │ │ ├── NewsMultiListAdapter.java │ │ │ │ ├── PhotoListAdapter.java │ │ │ │ ├── PhotoPagerAdapter.java │ │ │ │ ├── PhotoSetAdapter.java │ │ │ │ ├── RelatedNewsAdapter.java │ │ │ │ ├── SlideInBottomAdapter.java │ │ │ │ ├── SpecialAdapter.java │ │ │ │ ├── VideoCacheAdapter.java │ │ │ │ ├── VideoCompleteAdapter.java │ │ │ │ ├── VideoListAdapter.java │ │ │ │ ├── VideoLoveAdapter.java │ │ │ │ ├── ViewPagerAdapter.java │ │ │ │ ├── WelfarePhotoAdapter.java │ │ │ │ └── item │ │ │ │ │ ├── NewsMultiItem.java │ │ │ │ │ └── SpecialItem.java │ │ │ │ ├── api │ │ │ │ ├── INewsApi.java │ │ │ │ ├── IWelfareApi.java │ │ │ │ ├── NewsConst.java │ │ │ │ ├── NewsUtils.java │ │ │ │ ├── RetrofitService.java │ │ │ │ └── bean │ │ │ │ │ ├── NewsDetailInfo.java │ │ │ │ │ ├── NewsInfo.java │ │ │ │ │ ├── NewsItemInfo.java │ │ │ │ │ ├── PhotoInfo.java │ │ │ │ │ ├── PhotoSetInfo.java │ │ │ │ │ ├── SpecialInfo.java │ │ │ │ │ ├── WelfarePhotoInfo.java │ │ │ │ │ └── WelfarePhotoList.java │ │ │ │ ├── engine │ │ │ │ ├── DownloaderWrapper.java │ │ │ │ └── danmaku │ │ │ │ │ ├── DanmakuConverter.java │ │ │ │ │ ├── DanmakuLoader.java │ │ │ │ │ ├── DanmakuParser.java │ │ │ │ │ └── JsonStrSource.java │ │ │ │ ├── injector │ │ │ │ ├── PerActivity.java │ │ │ │ ├── PerFragment.java │ │ │ │ ├── components │ │ │ │ │ ├── ActivityComponent.java │ │ │ │ │ ├── ApplicationComponent.java │ │ │ │ │ ├── BeautyListComponent.java │ │ │ │ │ ├── BigPhotoComponent.java │ │ │ │ │ ├── DownloadComponent.java │ │ │ │ │ ├── LoveComponent.java │ │ │ │ │ ├── LovePhotoComponent.java │ │ │ │ │ ├── LoveVideoComponent.java │ │ │ │ │ ├── ManageComponent.java │ │ │ │ │ ├── NewsArticleComponent.java │ │ │ │ │ ├── NewsDetailComponent.java │ │ │ │ │ ├── NewsListComponent.java │ │ │ │ │ ├── NewsMainComponent.java │ │ │ │ │ ├── PhotoMainComponent.java │ │ │ │ │ ├── PhotoNewsComponent.java │ │ │ │ │ ├── PhotoSetComponent.java │ │ │ │ │ ├── SpecialComponent.java │ │ │ │ │ ├── VideoCacheComponent.java │ │ │ │ │ ├── VideoCompleteComponent.java │ │ │ │ │ ├── VideoListComponent.java │ │ │ │ │ ├── VideoMainComponent.java │ │ │ │ │ ├── VideoPlayerComponent.java │ │ │ │ │ └── WelfarePhotoComponent.java │ │ │ │ └── modules │ │ │ │ │ ├── ActivityModule.java │ │ │ │ │ ├── ApplicationModule.java │ │ │ │ │ ├── BeautyListModule.java │ │ │ │ │ ├── BigPhotoModule.java │ │ │ │ │ ├── ChannelModule.java │ │ │ │ │ ├── DownloadModule.java │ │ │ │ │ ├── LoveModule.java │ │ │ │ │ ├── LovePhotoModule.java │ │ │ │ │ ├── LoveVideoModule.java │ │ │ │ │ ├── NewsArticleModule.java │ │ │ │ │ ├── NewsDetailModule.java │ │ │ │ │ ├── NewsListModule.java │ │ │ │ │ ├── NewsMainModule.java │ │ │ │ │ ├── PhotoMainModule.java │ │ │ │ │ ├── PhotoNewsModule.java │ │ │ │ │ ├── PhotoSetModule.java │ │ │ │ │ ├── SpecialModule.java │ │ │ │ │ ├── VideoCacheModule.java │ │ │ │ │ ├── VideoCompleteModule.java │ │ │ │ │ ├── VideoListModule.java │ │ │ │ │ ├── VideoMainModule.java │ │ │ │ │ ├── VideoPlayerModule.java │ │ │ │ │ └── WelfarePhotoModule.java │ │ │ │ ├── local │ │ │ │ ├── dao │ │ │ │ │ └── NewsTypeDao.java │ │ │ │ └── table │ │ │ │ │ ├── BeautyPhotoInfo.java │ │ │ │ │ ├── DanmakuInfo.java │ │ │ │ │ ├── NewsTypeInfo.java │ │ │ │ │ └── VideoInfo.java │ │ │ │ ├── module │ │ │ │ ├── base │ │ │ │ │ ├── BaseActivity.java │ │ │ │ │ ├── BaseFragment.java │ │ │ │ │ ├── BaseSwipeBackActivity.java │ │ │ │ │ ├── BaseVideoDLFragment.java │ │ │ │ │ ├── IBasePresenter.java │ │ │ │ │ ├── IBaseView.java │ │ │ │ │ ├── ILoadDataView.java │ │ │ │ │ ├── ILocalPresenter.java │ │ │ │ │ ├── ILocalRxBusPresenter.java │ │ │ │ │ ├── ILocalView.java │ │ │ │ │ └── IRxBusPresenter.java │ │ │ │ ├── home │ │ │ │ │ ├── HomeActivity.java │ │ │ │ │ └── SplashActivity.java │ │ │ │ ├── manage │ │ │ │ │ ├── download │ │ │ │ │ │ ├── DownloadActivity.java │ │ │ │ │ │ ├── DownloadPresenter.java │ │ │ │ │ │ ├── cache │ │ │ │ │ │ │ ├── VideoCacheFragment.java │ │ │ │ │ │ │ └── VideoCachePresenter.java │ │ │ │ │ │ └── complete │ │ │ │ │ │ │ ├── VideoCompleteFragment.java │ │ │ │ │ │ │ └── VideoCompletePresenter.java │ │ │ │ │ ├── love │ │ │ │ │ │ ├── LoveActivity.java │ │ │ │ │ │ ├── photo │ │ │ │ │ │ │ ├── LovePhotoFragment.java │ │ │ │ │ │ │ └── LovePhotoPresenter.java │ │ │ │ │ │ └── video │ │ │ │ │ │ │ ├── LoveVideoFragment.java │ │ │ │ │ │ │ └── LoveVideoPresenter.java │ │ │ │ │ └── setting │ │ │ │ │ │ ├── SettingsActivity.java │ │ │ │ │ │ └── SettingsFragment.java │ │ │ │ ├── news │ │ │ │ │ ├── article │ │ │ │ │ │ ├── INewsArticleView.java │ │ │ │ │ │ ├── NewsArticleActivity.java │ │ │ │ │ │ └── NewsArticlePresenter.java │ │ │ │ │ ├── channel │ │ │ │ │ │ ├── ChannelActivity.java │ │ │ │ │ │ ├── ChannelPresenter.java │ │ │ │ │ │ ├── IChannelPresenter.java │ │ │ │ │ │ └── IChannelView.java │ │ │ │ │ ├── detail │ │ │ │ │ │ ├── INewsDetailView.java │ │ │ │ │ │ ├── NewsDetailActivity.java │ │ │ │ │ │ └── NewsDetailPresenter.java │ │ │ │ │ ├── main │ │ │ │ │ │ ├── INewsMainView.java │ │ │ │ │ │ ├── NewsMainFragment.java │ │ │ │ │ │ └── NewsMainPresenter.java │ │ │ │ │ ├── newslist │ │ │ │ │ │ ├── INewsListView.java │ │ │ │ │ │ ├── NewsListFragment.java │ │ │ │ │ │ └── NewsListPresenter.java │ │ │ │ │ ├── photoset │ │ │ │ │ │ ├── IPhotoSetView.java │ │ │ │ │ │ ├── PhotoSetActivity.java │ │ │ │ │ │ └── PhotoSetPresenter.java │ │ │ │ │ └── special │ │ │ │ │ │ ├── ISpecialView.java │ │ │ │ │ │ ├── SpecialActivity.java │ │ │ │ │ │ └── SpecialPresenter.java │ │ │ │ ├── photo │ │ │ │ │ ├── beauty │ │ │ │ │ │ ├── BeautyListFragment.java │ │ │ │ │ │ └── BeautyListPresenter.java │ │ │ │ │ ├── bigphoto │ │ │ │ │ │ ├── BigPhotoActivity.java │ │ │ │ │ │ └── BigPhotoPresenter.java │ │ │ │ │ ├── main │ │ │ │ │ │ ├── IPhotoMainView.java │ │ │ │ │ │ ├── PhotoMainFragment.java │ │ │ │ │ │ └── PhotoMainPresenter.java │ │ │ │ │ ├── news │ │ │ │ │ │ ├── PhotoNewsFragment.java │ │ │ │ │ │ └── PhotoNewsPresenter.java │ │ │ │ │ └── welfare │ │ │ │ │ │ ├── WelfareListFragment.java │ │ │ │ │ │ └── WelfareListPresenter.java │ │ │ │ └── video │ │ │ │ │ ├── fullscreen │ │ │ │ │ └── VideoFullscreenActivity.java │ │ │ │ │ ├── list │ │ │ │ │ ├── VideoListFragment.java │ │ │ │ │ └── VideoListPresenter.java │ │ │ │ │ ├── main │ │ │ │ │ ├── IVideoMainView.java │ │ │ │ │ ├── VideoMainFragment.java │ │ │ │ │ └── VideoMainPresenter.java │ │ │ │ │ └── player │ │ │ │ │ ├── IVideoPresenter.java │ │ │ │ │ ├── IVideoView.java │ │ │ │ │ ├── VideoPlayerActivity.java │ │ │ │ │ └── VideoPlayerPresenter.java │ │ │ │ ├── rxbus │ │ │ │ ├── RxBus.java │ │ │ │ └── event │ │ │ │ │ ├── ChannelEvent.java │ │ │ │ │ ├── LoveEvent.java │ │ │ │ │ └── VideoEvent.java │ │ │ │ ├── utils │ │ │ │ ├── AnimateHelper.java │ │ │ │ ├── AssetsHelper.java │ │ │ │ ├── CommonConstant.java │ │ │ │ ├── DefIconFactory.java │ │ │ │ ├── DialogHelper.java │ │ │ │ ├── DownloadUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── GsonHelper.java │ │ │ │ ├── IOUtils.java │ │ │ │ ├── ImageLoader.java │ │ │ │ ├── ListUtils.java │ │ │ │ ├── MeasureUtils.java │ │ │ │ ├── NavUtils.java │ │ │ │ ├── NetUtil.java │ │ │ │ ├── PreferencesUtils.java │ │ │ │ ├── RxHelper.java │ │ │ │ ├── SDCardUtils.java │ │ │ │ ├── SliderHelper.java │ │ │ │ ├── SnackbarUtils.java │ │ │ │ ├── StringUtils.java │ │ │ │ ├── SwipeRefreshHelper.java │ │ │ │ └── ToastUtils.java │ │ │ │ └── widget │ │ │ │ ├── CustomWebView.java │ │ │ │ ├── EmptyLayout.java │ │ │ │ ├── FlexibleViewPager.java │ │ │ │ ├── PhotoViewPager.java │ │ │ │ ├── PullScrollView.java │ │ │ │ ├── RippleView.java │ │ │ │ ├── SwipeBackLayout.java │ │ │ │ ├── XFilePickerPreference.java │ │ │ │ ├── behavior │ │ │ │ └── ScrollAwareFABBehavior.java │ │ │ │ └── dialog │ │ │ │ ├── DownloadDialog.java │ │ │ │ └── ShareBottomDialog.java │ │ └── res │ │ │ ├── anim │ │ │ ├── expand_vertical_entry.xml │ │ │ ├── expand_vertical_exit.xml │ │ │ ├── fade_entry.xml │ │ │ ├── fade_exit.xml │ │ │ ├── hold.xml │ │ │ ├── photo_entry.xml │ │ │ ├── photo_exit.xml │ │ │ ├── slide_bottom_entry.xml │ │ │ ├── slide_bottom_exit.xml │ │ │ ├── slide_right_entry.xml │ │ │ ├── slide_right_exit.xml │ │ │ ├── slide_top_entry.xml │ │ │ ├── slide_top_exit.xml │ │ │ ├── zoom_in_entry.xml │ │ │ ├── zoom_in_exit.xml │ │ │ ├── zoom_out_entry.xml │ │ │ └── zoom_out_exit.xml │ │ │ ├── drawable │ │ │ ├── layer_web_progress_bar.xml │ │ │ ├── sel_btn_download.xml │ │ │ ├── sel_btn_download_del.xml │ │ │ ├── sel_btn_love.xml │ │ │ ├── sel_btn_photo_download.xml │ │ │ ├── sel_btn_praise.xml │ │ │ ├── sel_btn_press_bg.xml │ │ │ ├── sel_btn_reload.xml │ │ │ ├── sel_btn_send.xml │ │ │ ├── sel_btn_send_text.xml │ │ │ ├── sel_btn_video_collect.xml │ │ │ ├── sel_btn_video_download.xml │ │ │ ├── sel_card_layout_bg_press.xml │ │ │ ├── sel_channel_btn.xml │ │ │ ├── sel_common_bg_press.xml │ │ │ ├── sel_text_reload.xml │ │ │ ├── shape_channel_drag.xml │ │ │ ├── shape_channel_normal.xml │ │ │ └── shape_comment_border.xml │ │ │ ├── layout │ │ │ ├── activity_big_photo.xml │ │ │ ├── activity_channel.xml │ │ │ ├── activity_download.xml │ │ │ ├── activity_home.xml │ │ │ ├── activity_love.xml │ │ │ ├── activity_news_article.xml │ │ │ ├── activity_news_detail.xml │ │ │ ├── activity_photo_set.xml │ │ │ ├── activity_settings.xml │ │ │ ├── activity_special.xml │ │ │ ├── activity_splash.xml │ │ │ ├── activity_video_player.xml │ │ │ ├── adapter_beauty_photos.xml │ │ │ ├── adapter_manage.xml │ │ │ ├── adapter_news_list.xml │ │ │ ├── adapter_news_photo_set.xml │ │ │ ├── adapter_photo_list.xml │ │ │ ├── adapter_photo_pager.xml │ │ │ ├── adapter_photo_set.xml │ │ │ ├── adapter_special_head.xml │ │ │ ├── adapter_video_cache.xml │ │ │ ├── adapter_video_complete.xml │ │ │ ├── adapter_video_list.xml │ │ │ ├── adapter_video_love.xml │ │ │ ├── adapter_welfare_photo.xml │ │ │ ├── dialog_download.xml │ │ │ ├── dialog_share.xml │ │ │ ├── fragment_download.xml │ │ │ ├── fragment_love_list.xml │ │ │ ├── fragment_news_list.xml │ │ │ ├── fragment_news_main.xml │ │ │ ├── fragment_photo_list.xml │ │ │ ├── fragment_photo_main.xml │ │ │ ├── fragment_video_main.xml │ │ │ ├── head_news_list.xml │ │ │ ├── head_special.xml │ │ │ ├── layout_common_empty.xml │ │ │ ├── layout_digest.xml │ │ │ ├── layout_empty_loading.xml │ │ │ ├── layout_news_content.xml │ │ │ ├── layout_no_data.xml │ │ │ ├── layout_popup.xml │ │ │ ├── layout_popup_bottom.xml │ │ │ ├── layout_pull_scrollview_foot.xml │ │ │ ├── layout_related_content.xml │ │ │ ├── layout_related_news.xml │ │ │ ├── layout_toolbar.xml │ │ │ ├── layout_toolbar_news_detail.xml │ │ │ ├── layout_toolbar_transparent.xml │ │ │ ├── nav_header_home.xml │ │ │ └── nav_layout.xml │ │ │ ├── menu │ │ │ ├── menu_animate.xml │ │ │ ├── menu_channel.xml │ │ │ ├── menu_love.xml │ │ │ └── nav_drawer.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_arrow_upward.png │ │ │ └── ic_not_network.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── avatar.png │ │ │ ├── ic_arrow_upward.png │ │ │ ├── ic_bg_card.9.png │ │ │ ├── ic_btn_download.png │ │ │ ├── ic_btn_pause.png │ │ │ ├── ic_channel_manage.png │ │ │ ├── ic_default_1.9.png │ │ │ ├── ic_default_2.9.png │ │ │ ├── ic_default_3.9.png │ │ │ ├── ic_default_4.9.png │ │ │ ├── ic_default_5.9.png │ │ │ ├── ic_dot.png │ │ │ ├── ic_nav.png │ │ │ ├── ic_nav_news.png │ │ │ ├── ic_nav_picture.png │ │ │ ├── ic_nav_setting.png │ │ │ ├── ic_nav_video.png │ │ │ ├── ic_not_network.png │ │ │ ├── ic_reload_normal.png │ │ │ ├── ic_reload_press.png │ │ │ ├── ic_shadow_bottom.png │ │ │ ├── ic_shadow_left.png │ │ │ ├── ic_shadow_right.png │ │ │ ├── ic_share_qq.png │ │ │ ├── ic_share_sms.png │ │ │ ├── ic_share_wechat_friend.png │ │ │ ├── ic_share_wechat_friend_circle.png │ │ │ ├── ic_toolbar_download.png │ │ │ ├── ic_video_collect.png │ │ │ ├── ic_video_collected.png │ │ │ ├── ic_video_download.png │ │ │ ├── ic_video_downloading.png │ │ │ └── ic_video_share.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_arrow_upward.png │ │ │ ├── ic_btn_love.png │ │ │ ├── ic_btn_loved.png │ │ │ ├── ic_btn_praise.png │ │ │ ├── ic_btn_praised.png │ │ │ ├── ic_btn_share.png │ │ │ ├── ic_btn_star.png │ │ │ ├── ic_github.jpg │ │ │ ├── ic_logo.png │ │ │ ├── ic_no_collection.png │ │ │ ├── ic_no_download.png │ │ │ ├── ic_not_network.png │ │ │ ├── ic_photo_download.png │ │ │ └── ic_photo_downloaded.png │ │ │ ├── values-v19 │ │ │ ├── dimens.xml │ │ │ └── styles.xml │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── drawables.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── pref_settings.xml │ └── test │ │ └── java │ │ └── com │ │ └── dl7 │ │ └── mvp │ │ └── ExampleUnitTest.java └── tinker_build.gradle ├── build.gradle ├── downloaderLib ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── dl7 │ │ └── downloaderlib │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── dl7 │ │ │ └── downloaderlib │ │ │ ├── DownloadConfig.java │ │ │ ├── DownloadListener.java │ │ │ ├── FileDownloader.java │ │ │ ├── db │ │ │ ├── DbHelper.java │ │ │ ├── FileDAO.java │ │ │ └── FileDAOImpl.java │ │ │ ├── entity │ │ │ └── FileInfo.java │ │ │ ├── exception │ │ │ └── DownloadException.java │ │ │ ├── helper │ │ │ ├── ListenerDecorator.java │ │ │ └── MainHandler.java │ │ │ ├── model │ │ │ ├── DownloadStatus.java │ │ │ ├── FileUtils.java │ │ │ └── PreferencesUtils.java │ │ │ └── service │ │ │ ├── DownloadTask.java │ │ │ └── DownloadThreadPool.java │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── dl7 │ └── downloaderlib │ └── ExampleUnitTest.java ├── fenmian.jpg ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── playerview ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── dl7 │ │ └── player │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── dl7 │ │ │ └── player │ │ │ ├── danmaku │ │ │ ├── AcFunDanmakuParser.java │ │ │ ├── BaseDanmakuConverter.java │ │ │ ├── BaseDanmakuData.java │ │ │ ├── BiliDanmukuParser.java │ │ │ ├── DanmakuType.java │ │ │ ├── OnDanmakuListener.java │ │ │ └── VideoDanmakuSync.java │ │ │ ├── media │ │ │ ├── AdapterMediaQuality.java │ │ │ ├── AndroidMediaController.java │ │ │ ├── BaseListAdapter.java │ │ │ ├── FileMediaDataSource.java │ │ │ ├── IMediaController.java │ │ │ ├── IRenderView.java │ │ │ ├── IjkPlayerView.java │ │ │ ├── IjkVideoView.java │ │ │ ├── MeasureHelper.java │ │ │ ├── MediaPlayerCompat.java │ │ │ ├── MediaPlayerParams.java │ │ │ ├── MediaQualityInfo.java │ │ │ ├── SurfaceRenderView.java │ │ │ └── TextureRenderView.java │ │ │ ├── utils │ │ │ ├── AnimHelper.java │ │ │ ├── MotionEventUtils.java │ │ │ ├── NavUtils.java │ │ │ ├── SDCardUtils.java │ │ │ ├── SoftInputUtils.java │ │ │ ├── StringUtils.java │ │ │ └── WindowUtils.java │ │ │ └── widgets │ │ │ ├── MarqueeTextView.java │ │ │ └── ShareDialog.java │ └── res │ │ ├── anim │ │ ├── dialog_zoom_in.xml │ │ └── dialog_zoom_out.xml │ │ ├── drawable │ │ ├── layer_battery_progress.xml │ │ ├── layer_seek_progress.xml │ │ ├── sel_btn_ar_16_9.xml │ │ ├── sel_btn_ar_4_3.xml │ │ ├── sel_btn_ar_adjust_screen.xml │ │ ├── sel_btn_ar_adjust_video.xml │ │ ├── sel_btn_danmaku_control.xml │ │ ├── sel_btn_danmaku_input_options_bottom_type.xml │ │ ├── sel_btn_danmaku_input_options_color.xml │ │ ├── sel_btn_danmaku_input_options_medium_textsize.xml │ │ ├── sel_btn_danmaku_input_options_rl_type.xml │ │ ├── sel_btn_danmaku_input_options_small_textsize.xml │ │ ├── sel_btn_danmaku_input_options_top_type.xml │ │ ├── sel_btn_fullscreen.xml │ │ ├── sel_btn_play.xml │ │ ├── sel_btn_share_left.xml │ │ ├── sel_btn_share_right.xml │ │ ├── sel_item_background.xml │ │ ├── sel_media_quality_border.xml │ │ ├── sel_media_quality_text.xml │ │ ├── sel_player_lock.xml │ │ ├── shape_dialog_border.xml │ │ ├── shape_player_lock_bg.xml │ │ ├── shape_seek_ball.xml │ │ ├── shape_selected_border.xml │ │ ├── shape_send_danmaku_bg.xml │ │ ├── shape_video_bg.xml │ │ └── transition_item_background.xml │ │ ├── layout │ │ ├── adapter_media_quality.xml │ │ ├── dialog_share.xml │ │ ├── layout_bottom_bar.xml │ │ ├── layout_danmaku_input_options.xml │ │ ├── layout_media_quality.xml │ │ ├── layout_player_view.xml │ │ ├── layout_send_danmaku.xml │ │ ├── layout_skip_tip.xml │ │ ├── layout_top_bar.xml │ │ └── layout_touch_gestures.xml │ │ ├── mipmap-hdpi │ │ ├── ic_battery.png │ │ ├── ic_battery_charging.png │ │ ├── ic_battery_red.png │ │ ├── ic_brightness.png │ │ ├── ic_cancel_danmaku.png │ │ ├── ic_cancel_skip.png │ │ ├── ic_danmaku_closed.png │ │ ├── ic_danmaku_open.png │ │ ├── ic_fast_forward.png │ │ ├── ic_fast_rewind.png │ │ ├── ic_fullscreen.png │ │ ├── ic_fullscreen_exit.png │ │ ├── ic_media_quality_bd.png │ │ ├── ic_media_quality_high.png │ │ ├── ic_media_quality_medium.png │ │ ├── ic_media_quality_smooth.png │ │ ├── ic_media_quality_super.png │ │ ├── ic_play_circle.png │ │ ├── ic_player_lock.png │ │ ├── ic_player_unlock.png │ │ ├── ic_return_back.png │ │ ├── ic_send_danmaku.png │ │ ├── ic_video_pause.png │ │ ├── ic_video_play.png │ │ ├── ic_video_screenshot.png │ │ ├── ic_volume_off.png │ │ └── ic_volume_on.png │ │ ├── mipmap-xhdpi │ │ ├── ic_ar_16_9_inside.png │ │ ├── ic_ar_16_9_inside_checked.png │ │ ├── ic_ar_4_3_inside.png │ │ ├── ic_ar_4_3_inside_checked.png │ │ ├── ic_ar_adjust_screen.png │ │ ├── ic_ar_adjust_screen_checked.png │ │ ├── ic_ar_adjust_video.png │ │ ├── ic_ar_adjust_video_checked.png │ │ ├── ic_brightness.png │ │ ├── ic_btn_danmaku_input_options_color_checked.png │ │ ├── ic_cancel_danmaku.png │ │ ├── ic_cancel_skip.png │ │ ├── ic_danmaku_closed.png │ │ ├── ic_danmaku_input_more_color.png │ │ ├── ic_danmaku_input_options_bottom_type.png │ │ ├── ic_danmaku_input_options_bottom_type_checked.png │ │ ├── ic_danmaku_input_options_medium_textsize.png │ │ ├── ic_danmaku_input_options_medium_textsize_checked.png │ │ ├── ic_danmaku_input_options_rl_type.png │ │ ├── ic_danmaku_input_options_rl_type_checked.png │ │ ├── ic_danmaku_input_options_small_textsize.png │ │ ├── ic_danmaku_input_options_small_textsize_checked.png │ │ ├── ic_danmaku_input_options_top_type.png │ │ ├── ic_danmaku_input_options_top_type_checked.png │ │ ├── ic_danmaku_open.png │ │ ├── ic_fast_forward.png │ │ ├── ic_fast_rewind.png │ │ ├── ic_fullscreen.png │ │ ├── ic_fullscreen_exit.png │ │ ├── ic_media_quality_bd.png │ │ ├── ic_media_quality_high.png │ │ ├── ic_media_quality_medium.png │ │ ├── ic_media_quality_smooth.png │ │ ├── ic_media_quality_super.png │ │ ├── ic_play_circle.png │ │ ├── ic_player_lock.png │ │ ├── ic_player_unlock.png │ │ ├── ic_return_back.png │ │ ├── ic_send_danmaku.png │ │ ├── ic_video_pause.png │ │ ├── ic_video_play.png │ │ ├── ic_video_screenshot.png │ │ ├── ic_volume_off.png │ │ └── ic_volume_on.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_brightness.png │ │ ├── ic_cancel_danmaku.png │ │ ├── ic_cancel_skip.png │ │ ├── ic_danmaku_closed.png │ │ ├── ic_danmaku_open.png │ │ ├── ic_fast_forward.png │ │ ├── ic_fast_rewind.png │ │ ├── ic_fullscreen.png │ │ ├── ic_fullscreen_exit.png │ │ ├── ic_media_quality_bd.png │ │ ├── ic_media_quality_high.png │ │ ├── ic_media_quality_medium.png │ │ ├── ic_media_quality_smooth.png │ │ ├── ic_media_quality_super.png │ │ ├── ic_play_circle.png │ │ ├── ic_player_lock.png │ │ ├── ic_player_unlock.png │ │ ├── ic_return_back.png │ │ ├── ic_send_danmaku.png │ │ ├── ic_video_pause.png │ │ ├── ic_video_play.png │ │ ├── ic_video_screenshot.png │ │ ├── ic_volume_off.png │ │ └── ic_volume_on.png │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── dl7 │ └── player │ └── ExampleUnitTest.java ├── settings.gradle └── tinkerLib ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src ├── androidTest └── java │ └── com │ └── dl7 │ └── tinkerlib │ └── ExampleInstrumentedTest.java ├── main ├── AndroidManifest.xml ├── java │ └── com │ │ └── dl7 │ │ └── tinkerlib │ │ ├── Log │ │ └── MyLogImp.java │ │ ├── crash │ │ └── SampleUncaughtExceptionHandler.java │ │ ├── reporter │ │ ├── SampleLoadReporter.java │ │ ├── SamplePatchListener.java │ │ ├── SamplePatchReporter.java │ │ └── SampleTinkerReport.java │ │ ├── service │ │ └── SampleResultService.java │ │ └── util │ │ ├── TinkerManager.java │ │ ├── UpgradePatchRetry.java │ │ └── Utils.java └── res │ └── values │ └── strings.xml └── test └── java └── com └── dl7 └── tinkerlib └── ExampleUnitTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | /.idea/ 10 | -------------------------------------------------------------------------------- /RecyclerViewHelper/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /RecyclerViewHelper/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdk 5 | buildToolsVersion rootProject.ext.buildTools 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdk 9 | targetSdkVersion rootProject.ext.targetSdk 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile fileTree(dir: 'libs', include: ['*.jar']) 23 | testCompile 'junit:junit:4.12' 24 | compile "com.android.support:appcompat-v7:${rootProject.ext.support}" 25 | compile "com.android.support:recyclerview-v7:${rootProject.ext.support}" 26 | compile "com.android.support:cardview-v7:${rootProject.ext.support}" 27 | // 28 | compile 'com.github.ybq:Android-SpinKit:1.1.0' 29 | } 30 | -------------------------------------------------------------------------------- /RecyclerViewHelper/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 F:\WorkTools\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 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/androidTest/java/com/dl7/recycler/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/entity/MultiItemEntity.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.entity; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * https://github.com/CymChad/BaseRecyclerViewAdapterHelper 7 | */ 8 | public abstract class MultiItemEntity implements Serializable{ 9 | protected int itemType; 10 | 11 | public MultiItemEntity(int itemType) { 12 | this.itemType = itemType; 13 | } 14 | 15 | public int getItemType() { 16 | return itemType; 17 | } 18 | 19 | public void setItemType(int itemType) { 20 | this.itemType = itemType; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/entity/SectionEntity.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.entity; 2 | 3 | /** 4 | * https://github.com/CymChad/BaseRecyclerViewAdapterHelper 5 | */ 6 | public abstract class SectionEntity { 7 | public boolean isHeader; 8 | public T t; 9 | public String header; 10 | 11 | public SectionEntity(boolean isHeader, String header) { 12 | this.isHeader = isHeader; 13 | this.header = header; 14 | this.t = null; 15 | } 16 | 17 | public SectionEntity(T t) { 18 | this.isHeader = false; 19 | this.header = null; 20 | this.t = t; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/helper/OnStartDragListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Paul Burke 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.dl7.recycler.helper; 18 | 19 | import android.support.v7.widget.RecyclerView; 20 | 21 | /** 22 | * Listener for manual initiation of a drag. 23 | */ 24 | public interface OnStartDragListener { 25 | 26 | /** 27 | * Called when a view is requesting a start of a drag. 28 | * 29 | * @param viewHolder The holder of the view to drag. 30 | */ 31 | void onStartDrag(RecyclerView.ViewHolder viewHolder); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/listener/OnItemMoveListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.listener; 2 | 3 | /** 4 | * Created by Rukey7 on 2016/9/1. 5 | * Item 移动监听 6 | */ 7 | public interface OnItemMoveListener { 8 | 9 | /** 10 | * Item 移动 11 | * @param fromPosition 初始位置 12 | * @param toPosition 移动位置 13 | */ 14 | void onItemMove(int fromPosition, int toPosition); 15 | } 16 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/listener/OnRecyclerViewItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.listener; 2 | 3 | 4 | import android.view.View; 5 | 6 | /** 7 | * Interface definition for a callback to be invoked when an item in this 8 | * AdapterView has been clicked. 9 | */ 10 | public interface OnRecyclerViewItemClickListener { 11 | /** 12 | * Callback method to be invoked when an item in this AdapterView has 13 | * been clicked. 14 | * 15 | * @param view The view within the AdapterView that was clicked (this 16 | * will be a view provided by the adapter) 17 | * @param position The position of the view in the adapter. 18 | */ 19 | public void onItemClick(View view, int position); 20 | } 21 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/listener/OnRecyclerViewItemLongClickListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.listener; 2 | 3 | 4 | import android.view.View; 5 | 6 | /** 7 | * Interface definition for a callback to be invoked when an item in this 8 | * view has been clicked and held 9 | */ 10 | public interface OnRecyclerViewItemLongClickListener { 11 | /** 12 | * callback method to be invoked when an item in this view has been 13 | * click and held 14 | * 15 | * @param view The view whihin the AbsListView that was clicked 16 | * @param position The position of the view int the adapter 17 | * @return true if the callback consumed the long click ,false otherwise 18 | */ 19 | public boolean onItemLongClick(View view, int position); 20 | } 21 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/listener/OnRemoveDataListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.listener; 2 | 3 | /** 4 | * Created by long on 2016/9/1. 5 | * 6 | */ 7 | public interface OnRemoveDataListener { 8 | 9 | /** 10 | * 移除列表项 11 | * @param position 索引 12 | */ 13 | void onRemove(int position); 14 | } 15 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/java/com/dl7/recycler/listener/OnRequestDataListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler.listener; 2 | 3 | /** 4 | * Created by long on 2016/7/13. 5 | * 数据请求监听 6 | */ 7 | public interface OnRequestDataListener { 8 | /** 9 | * 加载更多 10 | */ 11 | void onLoadMore(); 12 | } 13 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/res/drawable/shape_drag_default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/res/layout/layout_load_more.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 18 | 19 | 29 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | HelperLibrary 3 | 4 | 加载中... 5 | - 没有更多数据 - 6 | - 加载异常,点击重试 - 7 | 8 | -------------------------------------------------------------------------------- /RecyclerViewHelper/src/test/java/com/dl7/recycler/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.recycler; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/mvpapp.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/mvpapp.jks -------------------------------------------------------------------------------- /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 F:\WorkTools\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/src/androidTest/java/com/dl7/mvp/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/adapter/ManageAdapter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.adapter; 2 | 3 | import android.content.Context; 4 | 5 | import com.dl7.mvp.R; 6 | import com.dl7.mvp.local.table.NewsTypeInfo; 7 | import com.dl7.recycler.adapter.BaseQuickAdapter; 8 | import com.dl7.recycler.adapter.BaseViewHolder; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * Created by long on 2016/8/31. 14 | * 管理界面适配器 15 | */ 16 | public class ManageAdapter extends BaseQuickAdapter { 17 | 18 | public ManageAdapter(Context context) { 19 | super(context); 20 | } 21 | 22 | public ManageAdapter(Context context, List data) { 23 | super(context, data); 24 | } 25 | 26 | @Override 27 | protected int attachLayoutRes() { 28 | return R.layout.adapter_manage; 29 | } 30 | 31 | @Override 32 | protected void convert(BaseViewHolder holder, NewsTypeInfo item) { 33 | holder.setText(R.id.tv_channel_name, item.getName()); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/adapter/VideoLoveAdapter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.adapter; 2 | 3 | import android.content.Context; 4 | import android.widget.ImageView; 5 | 6 | import com.dl7.mvp.R; 7 | import com.dl7.mvp.local.table.VideoInfo; 8 | import com.dl7.mvp.utils.DefIconFactory; 9 | import com.dl7.mvp.utils.ImageLoader; 10 | import com.dl7.recycler.adapter.BaseQuickAdapter; 11 | import com.dl7.recycler.adapter.BaseViewHolder; 12 | 13 | /** 14 | * Created by long on 2016/12/13. 15 | * Video收藏适配器 16 | */ 17 | public class VideoLoveAdapter extends BaseQuickAdapter { 18 | 19 | public VideoLoveAdapter(Context context) { 20 | super(context); 21 | } 22 | 23 | @Override 24 | protected int attachLayoutRes() { 25 | return R.layout.adapter_video_love; 26 | } 27 | 28 | @Override 29 | protected void convert(BaseViewHolder holder, final VideoInfo item) { 30 | ImageView ivThumb = holder.getView(R.id.iv_thumb); 31 | ImageLoader.loadFitCenter(mContext, item.getCover(), ivThumb, DefIconFactory.provideIcon()); 32 | holder.setText(R.id.tv_title, item.getTitle()) 33 | .setText(R.id.tv_desc, item.getSectiontitle()); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/adapter/item/NewsMultiItem.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.adapter.item; 2 | 3 | import android.support.annotation.IntDef; 4 | 5 | import com.dl7.mvp.api.bean.NewsInfo; 6 | import com.dl7.recycler.entity.MultiItemEntity; 7 | 8 | import java.lang.annotation.Retention; 9 | import java.lang.annotation.RetentionPolicy; 10 | 11 | /** 12 | * Created by long on 2016/8/24. 13 | * 新闻复用列表项 14 | */ 15 | public class NewsMultiItem extends MultiItemEntity { 16 | 17 | public static final int ITEM_TYPE_NORMAL = 1; 18 | public static final int ITEM_TYPE_PHOTO_SET = 2; 19 | 20 | private NewsInfo mNewsBean; 21 | 22 | public NewsMultiItem(@NewsItemType int itemType, NewsInfo newsBean) { 23 | super(itemType); 24 | mNewsBean = newsBean; 25 | } 26 | 27 | public NewsInfo getNewsBean() { 28 | return mNewsBean; 29 | } 30 | 31 | public void setNewsBean(NewsInfo newsBean) { 32 | mNewsBean = newsBean; 33 | } 34 | 35 | @Override 36 | public void setItemType(@NewsItemType int itemType) { 37 | super.setItemType(itemType); 38 | } 39 | 40 | 41 | @Retention(RetentionPolicy.SOURCE) 42 | @IntDef({ITEM_TYPE_NORMAL, ITEM_TYPE_PHOTO_SET}) 43 | public @interface NewsItemType {} 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/adapter/item/SpecialItem.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.adapter.item; 2 | 3 | import com.dl7.mvp.api.bean.NewsItemInfo; 4 | import com.dl7.recycler.entity.SectionEntity; 5 | 6 | /** 7 | * Created by long on 2016/8/26. 8 | * 专题列表项 9 | */ 10 | public class SpecialItem extends SectionEntity { 11 | 12 | public SpecialItem(boolean isHeader, String header) { 13 | super(isHeader, header); 14 | } 15 | 16 | public SpecialItem(NewsItemInfo newsItemBean) { 17 | super(newsItemBean); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/api/IWelfareApi.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.api; 2 | 3 | import com.dl7.mvp.api.bean.WelfarePhotoList; 4 | 5 | import retrofit2.http.GET; 6 | import retrofit2.http.Headers; 7 | import retrofit2.http.Path; 8 | import rx.Observable; 9 | 10 | import static com.dl7.mvp.api.RetrofitService.CACHE_CONTROL_NETWORK; 11 | 12 | /** 13 | * Created by long on 2016/10/10. 14 | */ 15 | 16 | public interface IWelfareApi { 17 | 18 | /** 19 | * 获取福利图片 20 | * eg: http://gank.io/api/data/福利/10/1 21 | * 22 | * @param page 页码 23 | * @return 24 | */ 25 | @Headers(CACHE_CONTROL_NETWORK) 26 | @GET("/api/data/福利/10/{page}") 27 | Observable getWelfarePhoto(@Path("page") int page); 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/api/NewsConst.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.api; 2 | 3 | /** 4 | * Created by long on 2016/8/31. 5 | * 新闻常量 6 | */ 7 | public final class NewsConst { 8 | 9 | // 头条 10 | public static final String NEWS_HEAD_LINE = "T1348647909107"; 11 | // 精选 12 | public static final String NEWS_BEST = "T1467284926140"; 13 | // 娱乐 14 | public static final String NEWS_ENTERTAINMENT = "T1348648517839"; 15 | // 体育 16 | public static final String NEWS_SPORT = "T1348649079062"; 17 | 18 | 19 | private NewsConst() { 20 | throw new RuntimeException("NewsConst cannot be initialized!"); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/engine/danmaku/DanmakuConverter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.engine.danmaku; 2 | 3 | import com.dl7.mvp.local.table.DanmakuInfo; 4 | import com.dl7.player.danmaku.BaseDanmakuConverter; 5 | 6 | import master.flame.danmaku.danmaku.model.BaseDanmaku; 7 | 8 | /** 9 | * Created by long on 2016/12/22. 10 | * 弹幕数据转换器 11 | */ 12 | public class DanmakuConverter extends BaseDanmakuConverter { 13 | 14 | private DanmakuConverter(){} 15 | private static volatile DanmakuConverter instance; 16 | 17 | public static DanmakuConverter instance() { 18 | if(instance == null){ 19 | synchronized (DanmakuConverter.class){ 20 | if(instance == null) 21 | instance = new DanmakuConverter(); 22 | } 23 | } 24 | return instance; 25 | } 26 | 27 | @Override 28 | public DanmakuInfo convertDanmaku(BaseDanmaku danmaku) { 29 | DanmakuInfo data = new DanmakuInfo(); 30 | // 弹幕基础数据初始化,重要!记得调用 31 | initData(data, danmaku); 32 | return data; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/PerActivity.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Scope; 7 | 8 | /** 9 | * A scoping annotation to permit objects whose lifetime should 10 | * conform to the life of the activity to be memorized in the 11 | * correct component. 12 | */ 13 | @Scope 14 | @Retention(RetentionPolicy.RUNTIME) 15 | public @interface PerActivity { 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/PerFragment.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Scope; 7 | 8 | /** 9 | * Created by long on 2016/8/23. 10 | * 单例标识 11 | */ 12 | @Scope 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface PerFragment { 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/ActivityComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import android.app.Activity; 4 | 5 | import com.dl7.mvp.injector.PerActivity; 6 | import com.dl7.mvp.injector.modules.ActivityModule; 7 | 8 | import dagger.Component; 9 | 10 | /** 11 | * Created by long on 2016/8/19. 12 | */ 13 | @PerActivity 14 | @Component(dependencies = ApplicationComponent.class, modules = ActivityModule.class) 15 | public interface ActivityComponent { 16 | 17 | Activity getActivity(); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/ApplicationComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import android.content.Context; 4 | 5 | import com.dl7.mvp.injector.modules.ApplicationModule; 6 | import com.dl7.mvp.local.table.DaoSession; 7 | import com.dl7.mvp.rxbus.RxBus; 8 | 9 | import javax.inject.Singleton; 10 | 11 | import dagger.Component; 12 | 13 | /** 14 | * Created by long on 2016/8/19. 15 | * Application Component 16 | */ 17 | @Singleton 18 | @Component(modules = ApplicationModule.class) 19 | public interface ApplicationComponent { 20 | 21 | // void inject(BaseActivity baseActivity); 22 | 23 | // provide 24 | Context getContext(); 25 | RxBus getRxBus(); 26 | DaoSession getDaoSession(); 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/BeautyListComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.BeautyListModule; 5 | import com.dl7.mvp.module.photo.beauty.BeautyListFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/9/5. 11 | * 美图 PerFragment 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = BeautyListModule.class) 15 | public interface BeautyListComponent { 16 | void inject(BeautyListFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/BigPhotoComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.BigPhotoModule; 5 | import com.dl7.mvp.module.photo.bigphoto.BigPhotoActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/9/27. 11 | */ 12 | @PerActivity 13 | @Component(dependencies = ApplicationComponent.class, modules = BigPhotoModule.class) 14 | public interface BigPhotoComponent { 15 | void inject(BigPhotoActivity activity); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/DownloadComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.DownloadModule; 5 | import com.dl7.mvp.module.manage.download.DownloadActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/19. 11 | * video下载 Component 12 | */ 13 | @PerActivity 14 | @Component(dependencies = ApplicationComponent.class, modules = DownloadModule.class) 15 | public interface DownloadComponent { 16 | void inject(DownloadActivity activity); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/LoveComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.LoveModule; 5 | 6 | import dagger.Component; 7 | 8 | /** 9 | * Created by long on 2016/9/28. 10 | * 收藏 Component 11 | */ 12 | @PerActivity 13 | @Component(dependencies = ApplicationComponent.class, modules = LoveModule.class) 14 | public interface LoveComponent { 15 | // void inject(LoveActivity activity); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/LovePhotoComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.LovePhotoModule; 5 | import com.dl7.mvp.module.manage.love.photo.LovePhotoFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/13. 11 | * 图片收藏界面 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = LovePhotoModule.class) 15 | public interface LovePhotoComponent { 16 | void inject(LovePhotoFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/LoveVideoComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.LoveVideoModule; 5 | import com.dl7.mvp.module.manage.love.video.LoveVideoFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/13. 11 | * Video收藏 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = LoveVideoModule.class) 15 | public interface LoveVideoComponent { 16 | void inject(LoveVideoFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/ManageComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.ChannelModule; 5 | import com.dl7.mvp.module.news.channel.ChannelActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/8/31. 11 | * 管理 Component 12 | */ 13 | @PerActivity 14 | @Component(dependencies = ApplicationComponent.class, modules = ChannelModule.class) 15 | public interface ManageComponent { 16 | void inject(ChannelActivity activity); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/NewsArticleComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.NewsArticleModule; 5 | import com.dl7.mvp.module.news.article.NewsArticleActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2017/2/3. 11 | * 新闻详情 Component 12 | */ 13 | @PerActivity 14 | @Component(modules = NewsArticleModule.class) 15 | public interface NewsArticleComponent { 16 | void inject(NewsArticleActivity activity); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/NewsDetailComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.NewsDetailModule; 5 | import com.dl7.mvp.module.news.detail.NewsDetailActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/8/25. 11 | * 新闻详情 Component 12 | */ 13 | @Deprecated 14 | @PerActivity 15 | @Component(modules = NewsDetailModule.class) 16 | public interface NewsDetailComponent { 17 | void inject(NewsDetailActivity activity); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/NewsListComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.NewsListModule; 5 | import com.dl7.mvp.module.news.newslist.NewsListFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/8/23. 11 | * 新闻列表 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = NewsListModule.class) 15 | public interface NewsListComponent { 16 | void inject(NewsListFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/NewsMainComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.NewsMainModule; 5 | import com.dl7.mvp.module.news.main.NewsMainFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/20. 11 | * 主页 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = NewsMainModule.class) 15 | public interface NewsMainComponent { 16 | void inject(NewsMainFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/PhotoMainComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.PhotoMainModule; 5 | import com.dl7.mvp.module.photo.main.PhotoMainFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/20. 11 | * 图片 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = PhotoMainModule.class) 15 | public interface PhotoMainComponent { 16 | void inject(PhotoMainFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/PhotoNewsComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.PhotoNewsModule; 5 | import com.dl7.mvp.module.photo.news.PhotoNewsFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/9/5. 11 | * 图片新闻列表 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = PhotoNewsModule.class) 15 | public interface PhotoNewsComponent { 16 | void inject(PhotoNewsFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/PhotoSetComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.PhotoSetModule; 5 | import com.dl7.mvp.module.news.photoset.PhotoSetActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/8/29. 11 | * 图集 Component 12 | */ 13 | @PerActivity 14 | @Component(modules = PhotoSetModule.class) 15 | public interface PhotoSetComponent { 16 | void inject(PhotoSetActivity activity); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/SpecialComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.SpecialModule; 5 | import com.dl7.mvp.module.news.special.SpecialActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/8/26. 11 | * 专题 Component 12 | */ 13 | @PerActivity 14 | @Component(modules = SpecialModule.class) 15 | public interface SpecialComponent { 16 | void inject(SpecialActivity activity); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/VideoCacheComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.VideoCacheModule; 5 | import com.dl7.mvp.module.manage.download.cache.VideoCacheFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/16. 11 | * video缓存Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = VideoCacheModule.class) 15 | public interface VideoCacheComponent { 16 | void inject(VideoCacheFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/VideoCompleteComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.VideoCompleteModule; 5 | import com.dl7.mvp.module.manage.download.complete.VideoCompleteFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/16. 11 | * video 缓存完成 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = VideoCompleteModule.class) 15 | public interface VideoCompleteComponent { 16 | void inject(VideoCompleteFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/VideoListComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.VideoListModule; 5 | import com.dl7.mvp.module.video.list.VideoListFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/10/11. 11 | */ 12 | @PerFragment 13 | @Component(dependencies = ApplicationComponent.class, modules = VideoListModule.class) 14 | public interface VideoListComponent { 15 | void inject(VideoListFragment fragment); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/VideoMainComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.VideoMainModule; 5 | import com.dl7.mvp.module.video.main.VideoMainFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/12/20. 11 | * 视频主界面 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = VideoMainModule.class) 15 | public interface VideoMainComponent { 16 | void inject(VideoMainFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/VideoPlayerComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.injector.modules.VideoPlayerModule; 5 | import com.dl7.mvp.module.video.player.VideoPlayerActivity; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/11/30. 11 | * Video Component 12 | */ 13 | @PerActivity 14 | @Component(dependencies = ApplicationComponent.class, modules = VideoPlayerModule.class) 15 | public interface VideoPlayerComponent { 16 | void inject(VideoPlayerActivity activity); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/components/WelfarePhotoComponent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.components; 2 | 3 | import com.dl7.mvp.injector.PerFragment; 4 | import com.dl7.mvp.injector.modules.WelfarePhotoModule; 5 | import com.dl7.mvp.module.photo.welfare.WelfareListFragment; 6 | 7 | import dagger.Component; 8 | 9 | /** 10 | * Created by long on 2016/10/11. 11 | * 福利图片界面 Component 12 | */ 13 | @PerFragment 14 | @Component(dependencies = ApplicationComponent.class, modules = WelfarePhotoModule.class) 15 | public interface WelfarePhotoComponent { 16 | void inject(WelfareListFragment fragment); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/ActivityModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import android.app.Activity; 4 | 5 | import com.dl7.mvp.injector.PerActivity; 6 | 7 | import dagger.Module; 8 | import dagger.Provides; 9 | 10 | /** 11 | * Created by long on 2016/8/19. 12 | * Activity Module 13 | */ 14 | @Module 15 | public class ActivityModule { 16 | 17 | private final Activity mActivity; 18 | 19 | public ActivityModule(Activity activity) { 20 | mActivity = activity; 21 | } 22 | 23 | @PerActivity 24 | @Provides 25 | Activity getActivity() { 26 | return mActivity; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/BeautyListModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.BeautyPhotosAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.photo.beauty.BeautyListFragment; 7 | import com.dl7.mvp.module.photo.beauty.BeautyListPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/9/5. 15 | * 美图 Module 16 | */ 17 | @Module 18 | public class BeautyListModule { 19 | 20 | private final BeautyListFragment mView; 21 | 22 | public BeautyListModule(BeautyListFragment view) { 23 | this.mView = view; 24 | } 25 | 26 | @PerFragment 27 | @Provides 28 | public IBasePresenter providePresenter() { 29 | return new BeautyListPresenter(mView); 30 | } 31 | 32 | @PerFragment 33 | @Provides 34 | public BaseQuickAdapter provideAdapter() { 35 | return new BeautyPhotosAdapter(mView.getContext()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/ChannelModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.ManageAdapter; 4 | import com.dl7.mvp.injector.PerActivity; 5 | import com.dl7.mvp.local.table.DaoSession; 6 | import com.dl7.mvp.module.news.channel.ChannelActivity; 7 | import com.dl7.mvp.module.news.channel.ChannelPresenter; 8 | import com.dl7.mvp.module.news.channel.IChannelPresenter; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | import com.dl7.recycler.adapter.BaseQuickAdapter; 11 | 12 | import dagger.Module; 13 | import dagger.Provides; 14 | 15 | /** 16 | * Created by long on 2016/8/31. 17 | * 管理 18 | */ 19 | @Module 20 | public class ChannelModule { 21 | 22 | private final ChannelActivity mView; 23 | 24 | public ChannelModule(ChannelActivity view) { 25 | mView = view; 26 | } 27 | 28 | @Provides 29 | public BaseQuickAdapter provideManageAdapter() { 30 | return new ManageAdapter(mView); 31 | } 32 | 33 | @PerActivity 34 | @Provides 35 | public IChannelPresenter provideManagePresenter(DaoSession daoSession, RxBus rxBus) { 36 | return new ChannelPresenter(mView, daoSession.getNewsTypeInfoDao(), rxBus); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/DownloadModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.ViewPagerAdapter; 4 | import com.dl7.mvp.injector.PerActivity; 5 | import com.dl7.mvp.module.base.IRxBusPresenter; 6 | import com.dl7.mvp.module.manage.download.DownloadActivity; 7 | import com.dl7.mvp.module.manage.download.DownloadPresenter; 8 | import com.dl7.mvp.rxbus.RxBus; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/12/19. 15 | * video下载Module 16 | */ 17 | @Module 18 | public class DownloadModule { 19 | 20 | private final DownloadActivity mView; 21 | 22 | public DownloadModule(DownloadActivity view) { 23 | mView = view; 24 | } 25 | 26 | @PerActivity 27 | @Provides 28 | public ViewPagerAdapter provideViewPagerAdapter() { 29 | return new ViewPagerAdapter(mView.getSupportFragmentManager()); 30 | } 31 | 32 | @PerActivity 33 | @Provides 34 | public IRxBusPresenter provideVideosPresenter(RxBus rxBus) { 35 | return new DownloadPresenter(rxBus); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/LoveModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.ViewPagerAdapter; 4 | import com.dl7.mvp.injector.PerActivity; 5 | import com.dl7.mvp.module.manage.love.LoveActivity; 6 | 7 | import dagger.Module; 8 | import dagger.Provides; 9 | 10 | /** 11 | * Created by long on 2016/9/28. 12 | * 收藏 Module 13 | */ 14 | @Module 15 | public class LoveModule { 16 | 17 | private final LoveActivity mView; 18 | 19 | public LoveModule(LoveActivity view) { 20 | this.mView = view; 21 | } 22 | 23 | @PerActivity 24 | @Provides 25 | public ViewPagerAdapter provideViewPagerAdapter() { 26 | return new ViewPagerAdapter(mView.getSupportFragmentManager()); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/LovePhotoModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.BeautyPhotosAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.local.table.DaoSession; 6 | import com.dl7.mvp.module.base.ILocalPresenter; 7 | import com.dl7.mvp.module.manage.love.photo.LovePhotoPresenter; 8 | import com.dl7.mvp.module.manage.love.photo.LovePhotoFragment; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | import com.dl7.recycler.adapter.BaseQuickAdapter; 11 | 12 | import dagger.Module; 13 | import dagger.Provides; 14 | 15 | /** 16 | * Created by long on 2016/12/13. 17 | * 图片收藏界面 Module 18 | */ 19 | @Module 20 | public class LovePhotoModule { 21 | 22 | private final LovePhotoFragment mView; 23 | 24 | public LovePhotoModule(LovePhotoFragment view) { 25 | this.mView = view; 26 | } 27 | 28 | @PerFragment 29 | @Provides 30 | public ILocalPresenter providePresenter(DaoSession daoSession, RxBus rxBus) { 31 | return new LovePhotoPresenter(mView, daoSession.getBeautyPhotoInfoDao(), rxBus); 32 | } 33 | 34 | @PerFragment 35 | @Provides 36 | public BaseQuickAdapter provideAdapter() { 37 | return new BeautyPhotosAdapter(mView); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/LoveVideoModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.VideoLoveAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.local.table.DaoSession; 6 | import com.dl7.mvp.module.base.ILocalPresenter; 7 | import com.dl7.mvp.module.manage.love.video.LoveVideoFragment; 8 | import com.dl7.mvp.module.manage.love.video.LoveVideoPresenter; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | import com.dl7.recycler.adapter.BaseQuickAdapter; 11 | 12 | import dagger.Module; 13 | import dagger.Provides; 14 | 15 | /** 16 | * Created by long on 2016/12/13. 17 | * Video收藏 18 | */ 19 | @Module 20 | public class LoveVideoModule { 21 | 22 | private final LoveVideoFragment mView; 23 | 24 | public LoveVideoModule(LoveVideoFragment view) { 25 | this.mView = view; 26 | } 27 | 28 | @PerFragment 29 | @Provides 30 | public ILocalPresenter providePresenter(DaoSession daoSession, RxBus rxBus) { 31 | return new LoveVideoPresenter(mView, daoSession.getVideoInfoDao(), rxBus); 32 | } 33 | 34 | @PerFragment 35 | @Provides 36 | public BaseQuickAdapter provideAdapter() { 37 | return new VideoLoveAdapter(mView.getContext()); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/NewsArticleModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.module.base.IBasePresenter; 5 | import com.dl7.mvp.module.news.article.NewsArticleActivity; 6 | import com.dl7.mvp.module.news.article.NewsArticlePresenter; 7 | 8 | import dagger.Module; 9 | import dagger.Provides; 10 | 11 | /** 12 | * Created by long on 2017/2/3. 13 | * 新闻详情 Module 14 | */ 15 | @Module 16 | public class NewsArticleModule { 17 | 18 | private final String mNewsId; 19 | private final NewsArticleActivity mView; 20 | 21 | public NewsArticleModule(NewsArticleActivity view, String newsId) { 22 | mNewsId = newsId; 23 | mView = view; 24 | } 25 | 26 | @PerActivity 27 | @Provides 28 | public IBasePresenter providePresenter() { 29 | return new NewsArticlePresenter(mNewsId, mView); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/NewsDetailModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.RelatedNewsAdapter; 4 | import com.dl7.mvp.injector.PerActivity; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.news.detail.NewsDetailActivity; 7 | import com.dl7.mvp.module.news.detail.NewsDetailPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/8/25. 15 | * 新闻详情 Module 16 | */ 17 | @Deprecated 18 | @Module 19 | public class NewsDetailModule { 20 | 21 | private final String mNewsId; 22 | private final NewsDetailActivity mView; 23 | 24 | public NewsDetailModule(NewsDetailActivity view, String newsId) { 25 | mNewsId = newsId; 26 | mView = view; 27 | } 28 | 29 | @PerActivity 30 | @Provides 31 | public BaseQuickAdapter provideRelatedAdapter() { 32 | return new RelatedNewsAdapter(mView); 33 | } 34 | 35 | @PerActivity 36 | @Provides 37 | public IBasePresenter providePresenter() { 38 | return new NewsDetailPresenter(mNewsId, mView); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/NewsListModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.NewsMultiListAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.news.newslist.NewsListFragment; 7 | import com.dl7.mvp.module.news.newslist.NewsListPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/8/23. 15 | * 新闻列表 Module 16 | */ 17 | @Module 18 | public class NewsListModule { 19 | 20 | private final NewsListFragment mNewsListView; 21 | private final String mNewsId; 22 | 23 | public NewsListModule(NewsListFragment view, String newsId) { 24 | this.mNewsListView = view; 25 | this.mNewsId = newsId; 26 | } 27 | 28 | @PerFragment 29 | @Provides 30 | public IBasePresenter providePresenter() { 31 | return new NewsListPresenter(mNewsListView, mNewsId); 32 | } 33 | 34 | @PerFragment 35 | @Provides 36 | public BaseQuickAdapter provideAdapter() { 37 | return new NewsMultiListAdapter(mNewsListView.getContext()); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/NewsMainModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.ViewPagerAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.local.table.DaoSession; 6 | import com.dl7.mvp.module.base.IRxBusPresenter; 7 | import com.dl7.mvp.module.news.main.NewsMainPresenter; 8 | import com.dl7.mvp.module.news.main.NewsMainFragment; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | 11 | import dagger.Module; 12 | import dagger.Provides; 13 | 14 | /** 15 | * Created by long on 2016/12/20. 16 | * 新闻主页 Module 17 | */ 18 | @Module 19 | public class NewsMainModule { 20 | 21 | private final NewsMainFragment mView; 22 | 23 | public NewsMainModule(NewsMainFragment view) { 24 | mView = view; 25 | } 26 | 27 | @PerFragment 28 | @Provides 29 | public IRxBusPresenter provideMainPresenter(DaoSession daoSession, RxBus rxBus) { 30 | return new NewsMainPresenter(mView, daoSession.getNewsTypeInfoDao(), rxBus); 31 | } 32 | 33 | @PerFragment 34 | @Provides 35 | public ViewPagerAdapter provideViewPagerAdapter() { 36 | return new ViewPagerAdapter(mView.getChildFragmentManager()); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/PhotoMainModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.ViewPagerAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.local.table.DaoSession; 6 | import com.dl7.mvp.module.base.IRxBusPresenter; 7 | import com.dl7.mvp.module.photo.main.PhotoMainFragment; 8 | import com.dl7.mvp.module.photo.main.PhotoMainPresenter; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | 11 | import dagger.Module; 12 | import dagger.Provides; 13 | 14 | /** 15 | * Created by long on 2016/12/20. 16 | * 图片主界面 Module 17 | */ 18 | @Module 19 | public class PhotoMainModule { 20 | 21 | private final PhotoMainFragment mView; 22 | 23 | public PhotoMainModule(PhotoMainFragment view) { 24 | mView = view; 25 | } 26 | 27 | @PerFragment 28 | @Provides 29 | public ViewPagerAdapter provideViewPagerAdapter() { 30 | return new ViewPagerAdapter(mView.getChildFragmentManager()); 31 | } 32 | 33 | @PerFragment 34 | @Provides 35 | public IRxBusPresenter providePhotosPresenter(DaoSession daoSession, RxBus rxBus) { 36 | return new PhotoMainPresenter(mView, daoSession.getBeautyPhotoInfoDao(), rxBus); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/PhotoNewsModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.PhotoListAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.photo.news.PhotoNewsFragment; 7 | import com.dl7.mvp.module.photo.news.PhotoNewsPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/9/5. 15 | * 图片新闻列表 Module 16 | */ 17 | @Module 18 | public class PhotoNewsModule { 19 | 20 | private final PhotoNewsFragment mView; 21 | 22 | public PhotoNewsModule(PhotoNewsFragment view) { 23 | this.mView = view; 24 | } 25 | 26 | @PerFragment 27 | @Provides 28 | public IBasePresenter providePresenter() { 29 | return new PhotoNewsPresenter(mView); 30 | } 31 | 32 | @PerFragment 33 | @Provides 34 | public BaseQuickAdapter provideAdapter() { 35 | return new PhotoListAdapter(mView.getContext()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/PhotoSetModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.module.base.IBasePresenter; 5 | import com.dl7.mvp.module.news.photoset.PhotoSetActivity; 6 | import com.dl7.mvp.module.news.photoset.PhotoSetPresenter; 7 | 8 | import dagger.Module; 9 | import dagger.Provides; 10 | 11 | /** 12 | * Created by long on 2016/8/29. 13 | * 图集 Module 14 | */ 15 | @Module 16 | public class PhotoSetModule { 17 | 18 | private final PhotoSetActivity mView; 19 | private final String mPhotoSetId; 20 | 21 | public PhotoSetModule(PhotoSetActivity view, String photoSetId) { 22 | mView = view; 23 | mPhotoSetId = photoSetId; 24 | } 25 | 26 | @PerActivity 27 | @Provides 28 | public IBasePresenter providePhotoSetPresenter() { 29 | return new PhotoSetPresenter(mView, mPhotoSetId); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/SpecialModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.SpecialAdapter; 4 | import com.dl7.mvp.injector.PerActivity; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.news.special.SpecialActivity; 7 | import com.dl7.mvp.module.news.special.SpecialPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/8/26. 15 | * 专题 Module 16 | */ 17 | @Module 18 | public class SpecialModule { 19 | 20 | private final SpecialActivity mView; 21 | private final String mSpecialId; 22 | 23 | public SpecialModule(SpecialActivity view, String specialId) { 24 | mView = view; 25 | mSpecialId = specialId; 26 | } 27 | 28 | @PerActivity 29 | @Provides 30 | public IBasePresenter provideSpecialPresent() { 31 | return new SpecialPresenter(mView, mSpecialId); 32 | } 33 | 34 | @PerActivity 35 | @Provides 36 | public BaseQuickAdapter provideSpecialAdapter() { 37 | return new SpecialAdapter(mView); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/VideoListModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.VideoListAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.video.list.VideoListFragment; 7 | import com.dl7.mvp.module.video.list.VideoListPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/10/11. 15 | * video列表 16 | */ 17 | @Module 18 | public class VideoListModule { 19 | 20 | private final VideoListFragment mView; 21 | private final String mVideoId; 22 | 23 | public VideoListModule(VideoListFragment view, String videoId) { 24 | this.mView = view; 25 | this.mVideoId = videoId; 26 | } 27 | 28 | @PerFragment 29 | @Provides 30 | public IBasePresenter providePresenter() { 31 | return new VideoListPresenter(mView, mVideoId); 32 | } 33 | 34 | @PerFragment 35 | @Provides 36 | public BaseQuickAdapter provideAdapter() { 37 | return new VideoListAdapter(mView.getContext()); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/VideoMainModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.ViewPagerAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.local.table.DaoSession; 6 | import com.dl7.mvp.module.base.IRxBusPresenter; 7 | import com.dl7.mvp.module.video.main.VideoMainFragment; 8 | import com.dl7.mvp.module.video.main.VideoMainPresenter; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | 11 | import dagger.Module; 12 | import dagger.Provides; 13 | 14 | /** 15 | * Created by long on 2016/12/20. 16 | * 视频主界面 Module 17 | */ 18 | @Module 19 | public class VideoMainModule { 20 | 21 | private final VideoMainFragment mView; 22 | 23 | public VideoMainModule(VideoMainFragment view) { 24 | mView = view; 25 | } 26 | 27 | @PerFragment 28 | @Provides 29 | public ViewPagerAdapter provideViewPagerAdapter() { 30 | return new ViewPagerAdapter(mView.getChildFragmentManager()); 31 | } 32 | 33 | @PerFragment 34 | @Provides 35 | public IRxBusPresenter provideVideosPresenter(DaoSession daoSession, RxBus rxBus) { 36 | return new VideoMainPresenter(mView, daoSession.getVideoInfoDao(), rxBus); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/VideoPlayerModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.injector.PerActivity; 4 | import com.dl7.mvp.local.table.DaoSession; 5 | import com.dl7.mvp.local.table.VideoInfo; 6 | import com.dl7.mvp.module.video.player.IVideoPresenter; 7 | import com.dl7.mvp.module.video.player.VideoPlayerActivity; 8 | import com.dl7.mvp.module.video.player.VideoPlayerPresenter; 9 | import com.dl7.mvp.rxbus.RxBus; 10 | 11 | import dagger.Module; 12 | import dagger.Provides; 13 | 14 | /** 15 | * Created by long on 2016/11/30. 16 | * Video Module 17 | */ 18 | @Module 19 | public class VideoPlayerModule { 20 | 21 | private final VideoPlayerActivity mView; 22 | private final VideoInfo mVideoData; 23 | 24 | public VideoPlayerModule(VideoPlayerActivity view, VideoInfo videoData) { 25 | this.mView = view; 26 | this.mVideoData = videoData; 27 | } 28 | 29 | @PerActivity 30 | @Provides 31 | public IVideoPresenter providePresenter(DaoSession daoSession, RxBus rxBus) { 32 | return new VideoPlayerPresenter(mView, daoSession.getVideoInfoDao(), rxBus, mVideoData, daoSession.getDanmakuInfoDao()); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/injector/modules/WelfarePhotoModule.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.injector.modules; 2 | 3 | import com.dl7.mvp.adapter.WelfarePhotoAdapter; 4 | import com.dl7.mvp.injector.PerFragment; 5 | import com.dl7.mvp.module.base.IBasePresenter; 6 | import com.dl7.mvp.module.photo.welfare.WelfareListFragment; 7 | import com.dl7.mvp.module.photo.welfare.WelfareListPresenter; 8 | import com.dl7.recycler.adapter.BaseQuickAdapter; 9 | 10 | import dagger.Module; 11 | import dagger.Provides; 12 | 13 | /** 14 | * Created by long on 2016/10/11. 15 | * 福利图片界面 Module 16 | */ 17 | @Module 18 | public class WelfarePhotoModule { 19 | 20 | private final WelfareListFragment mView; 21 | 22 | public WelfarePhotoModule(WelfareListFragment view) { 23 | this.mView = view; 24 | } 25 | 26 | @PerFragment 27 | @Provides 28 | public IBasePresenter providePresenter() { 29 | return new WelfareListPresenter(mView); 30 | } 31 | 32 | @PerFragment 33 | @Provides 34 | public BaseQuickAdapter provideAdapter() { 35 | return new WelfarePhotoAdapter(mView.getContext()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/IBasePresenter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | /** 4 | * Created by long on 2016/8/23. 5 | * 基础 Presenter 6 | */ 7 | public interface IBasePresenter { 8 | 9 | /** 10 | * 获取网络数据,更新界面 11 | */ 12 | void getData(); 13 | 14 | /** 15 | * 加载更多数据 16 | */ 17 | void getMoreData(); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/IBaseView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | import com.dl7.mvp.widget.EmptyLayout; 4 | import com.trello.rxlifecycle.LifecycleTransformer; 5 | 6 | /** 7 | * Created by long on 2016/8/23. 8 | * 基础 BaseView 接口 9 | */ 10 | public interface IBaseView { 11 | 12 | /** 13 | * 显示加载动画 14 | */ 15 | void showLoading(); 16 | 17 | /** 18 | * 隐藏加载 19 | */ 20 | void hideLoading(); 21 | 22 | /** 23 | * 显示网络错误 24 | * @param onRetryListener 点击监听 25 | */ 26 | void showNetError(EmptyLayout.OnRetryListener onRetryListener); 27 | 28 | /** 29 | * 绑定生命周期 30 | * @param 31 | * @return 32 | */ 33 | LifecycleTransformer bindToLife(); 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/ILoadDataView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | /** 4 | * Created by long on 2016/9/26. 5 | * 加载数据的界面接口 6 | */ 7 | public interface ILoadDataView extends IBaseView { 8 | 9 | /** 10 | * 加载数据 11 | * @param data 数据 12 | */ 13 | void loadData(T data); 14 | 15 | /** 16 | * 加载更多 17 | * @param data 数据 18 | */ 19 | void loadMoreData(T data); 20 | 21 | /** 22 | * 没有数据 23 | */ 24 | void loadNoData(); 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/ILocalPresenter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by long on 2016/9/1. 7 | * 提供本地数据库操作的 Presenter 8 | */ 9 | public interface ILocalPresenter extends IBasePresenter { 10 | 11 | /** 12 | * 插入数据 13 | * @param data 数据 14 | */ 15 | void insert(T data); 16 | 17 | /** 18 | * 删除数据 19 | * @param data 数据 20 | */ 21 | void delete(T data); 22 | 23 | /** 24 | * 更新数据 25 | * @param list 所有数据 26 | */ 27 | void update(List list); 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/ILocalRxBusPresenter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by long on 2016/12/19. 7 | */ 8 | 9 | public interface ILocalRxBusPresenter extends IRxBusPresenter { 10 | 11 | /** 12 | * 插入数据 13 | * @param data 数据 14 | */ 15 | void insert(E data); 16 | 17 | /** 18 | * 删除数据 19 | * @param data 数据 20 | */ 21 | void delete(E data); 22 | 23 | /** 24 | * 更新数据 25 | * @param list 所有数据 26 | */ 27 | void update(List list); 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/ILocalView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by long on 2016/9/28. 7 | * 和本地数据关联的界面接口 8 | */ 9 | public interface ILocalView { 10 | 11 | /** 12 | * 显示数据 13 | * @param dataList 数据 14 | */ 15 | void loadData(List dataList); 16 | 17 | /** 18 | * 没有数据 19 | */ 20 | void noData(); 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/base/IRxBusPresenter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.base; 2 | 3 | import rx.functions.Action1; 4 | 5 | /** 6 | * Created by long on 2016/9/2. 7 | * RxBus Presenter 8 | */ 9 | public interface IRxBusPresenter extends IBasePresenter { 10 | 11 | /** 12 | * 注册 13 | * @param eventType 14 | * @param 15 | */ 16 | void registerRxBus(Class eventType, Action1 action); 17 | 18 | /** 19 | * 注销 20 | */ 21 | void unregisterRxBus(); 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/article/INewsArticleView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.article; 2 | 3 | import com.dl7.mvp.api.bean.NewsDetailInfo; 4 | import com.dl7.mvp.module.base.IBaseView; 5 | 6 | /** 7 | * Created by long on 2017/2/3. 8 | * 新闻详情接口 9 | */ 10 | public interface INewsArticleView extends IBaseView { 11 | 12 | /** 13 | * 显示数据 14 | * @param newsDetailBean 新闻详情 15 | */ 16 | void loadData(NewsDetailInfo newsDetailBean); 17 | } 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/channel/IChannelPresenter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.channel; 2 | 3 | import com.dl7.mvp.module.base.ILocalPresenter; 4 | 5 | /** 6 | * Created by long on 2016/12/15. 7 | * 频道 Presenter 接口 8 | */ 9 | public interface IChannelPresenter extends ILocalPresenter { 10 | 11 | /** 12 | * 交换 13 | * @param fromPos 14 | * @param toPos 15 | */ 16 | void swap(int fromPos, int toPos); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/channel/IChannelView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.channel; 2 | 3 | import com.dl7.mvp.local.table.NewsTypeInfo; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by long on 2016/9/1. 9 | * 栏目管理接口 10 | */ 11 | public interface IChannelView { 12 | 13 | /** 14 | * 显示数据 15 | * @param checkList 选中栏目 16 | * @param uncheckList 未选中栏目 17 | */ 18 | void loadData(List checkList, List uncheckList); 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/detail/INewsDetailView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.detail; 2 | 3 | import com.dl7.mvp.api.bean.NewsDetailInfo; 4 | import com.dl7.mvp.module.base.IBaseView; 5 | 6 | /** 7 | * Created by long on 2016/8/25. 8 | * 新闻详情接口 9 | */ 10 | @Deprecated 11 | public interface INewsDetailView extends IBaseView { 12 | 13 | /** 14 | * 显示数据 15 | * @param newsDetailBean 新闻详情 16 | */ 17 | void loadData(NewsDetailInfo newsDetailBean); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/main/INewsMainView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.main; 2 | 3 | import com.dl7.mvp.local.table.NewsTypeInfo; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by long on 2016/9/1. 9 | * 主页接口 10 | */ 11 | public interface INewsMainView { 12 | 13 | /** 14 | * 显示数据 15 | * @param checkList 选中栏目 16 | */ 17 | void loadData(List checkList); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/newslist/INewsListView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.newslist; 2 | 3 | import com.dl7.mvp.api.bean.NewsInfo; 4 | import com.dl7.mvp.adapter.item.NewsMultiItem; 5 | import com.dl7.mvp.module.base.ILoadDataView; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by long on 2016/8/23. 11 | * 新闻列表视图接口 12 | */ 13 | public interface INewsListView extends ILoadDataView> { 14 | 15 | /** 16 | * 加载广告数据 17 | * @param newsBean 新闻 18 | */ 19 | void loadAdData(NewsInfo newsBean); 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/photoset/IPhotoSetView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.photoset; 2 | 3 | import com.dl7.mvp.api.bean.PhotoSetInfo; 4 | import com.dl7.mvp.module.base.IBaseView; 5 | 6 | /** 7 | * Created by long on 2016/8/29. 8 | * 图集界面接口 9 | */ 10 | public interface IPhotoSetView extends IBaseView { 11 | 12 | /** 13 | * 显示数据 14 | * @param photoSetBean 图集 15 | */ 16 | void loadData(PhotoSetInfo photoSetBean); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/news/special/ISpecialView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.news.special; 2 | 3 | import com.dl7.mvp.api.bean.SpecialInfo; 4 | import com.dl7.mvp.adapter.item.SpecialItem; 5 | import com.dl7.mvp.module.base.IBaseView; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by long on 2016/8/26. 11 | * 专题View接口 12 | */ 13 | public interface ISpecialView extends IBaseView { 14 | 15 | /** 16 | * 显示数据 17 | * @param specialItems 新闻 18 | */ 19 | void loadData(List specialItems); 20 | 21 | /** 22 | * 添加头部 23 | * @param specialBean 24 | */ 25 | void loadBanner(SpecialInfo specialBean); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/photo/main/IPhotoMainView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.photo.main; 2 | 3 | /** 4 | * Created by long on 2016/9/5. 5 | * 图片界面接口 6 | */ 7 | public interface IPhotoMainView { 8 | 9 | /** 10 | * 更新数据 11 | * @param lovedCount 收藏数 12 | */ 13 | void updateCount(int lovedCount); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/video/main/IVideoMainView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.video.main; 2 | 3 | /** 4 | * Created by long on 2016/12/20. 5 | * video 主界面接口 6 | */ 7 | public interface IVideoMainView { 8 | 9 | /** 10 | * 更新数据 11 | * @param lovedCount 收藏数 12 | */ 13 | void updateLovedCount(int lovedCount); 14 | 15 | /** 16 | * 更新数据 17 | * @param downloadCount 下载中个数 18 | */ 19 | void updateDownloadCount(int downloadCount); 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/video/player/IVideoPresenter.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.video.player; 2 | 3 | import com.dl7.mvp.local.table.DanmakuInfo; 4 | import com.dl7.mvp.local.table.VideoInfo; 5 | import com.dl7.mvp.module.base.ILocalPresenter; 6 | 7 | /** 8 | * Created by long on 2016/12/23. 9 | * Video Presenter 10 | */ 11 | public interface IVideoPresenter extends ILocalPresenter { 12 | 13 | /** 14 | * 添加一条弹幕到数据库 15 | * @param danmakuInfo 16 | */ 17 | void addDanmaku(DanmakuInfo danmakuInfo); 18 | 19 | /** 20 | * 清空该视频所有缓存弹幕 21 | */ 22 | void cleanDanmaku(); 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/module/video/player/IVideoView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.module.video.player; 2 | 3 | import com.dl7.mvp.local.table.VideoInfo; 4 | import com.dl7.mvp.module.base.IBaseView; 5 | 6 | import java.io.InputStream; 7 | 8 | /** 9 | * Created by long on 2016/12/23. 10 | * Video接口 11 | */ 12 | public interface IVideoView extends IBaseView { 13 | 14 | /** 15 | * 获取Video数据 16 | * @param data 数据 17 | */ 18 | void loadData(VideoInfo data); 19 | 20 | /** 21 | * 获取弹幕数据 22 | * @param inputStream 数据 23 | */ 24 | void loadDanmakuData(InputStream inputStream); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/rxbus/event/LoveEvent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.rxbus.event; 2 | 3 | /** 4 | * Created by long on 2016/9/29. 5 | * 收藏事件 6 | */ 7 | public class LoveEvent { 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/rxbus/event/VideoEvent.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.rxbus.event; 2 | 3 | import android.support.annotation.IntDef; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * Created by long on 2016/12/13. 12 | * Video 事件 13 | */ 14 | public class VideoEvent { 15 | 16 | /** 17 | * Video 缓存列表选中事件:全没选、选中部分、全选 18 | */ 19 | public static final int CHECK_INVALID = 400; 20 | public static final int CHECK_NONE = 401; 21 | public static final int CHECK_SOME = 402; 22 | public static final int CHECK_ALL = 403; 23 | 24 | @Retention(RetentionPolicy.SOURCE) 25 | @Target(ElementType.PARAMETER) 26 | @IntDef({CHECK_INVALID, CHECK_NONE, CHECK_SOME, CHECK_ALL}) 27 | public @interface CheckStatus {} 28 | 29 | public int checkStatus = CHECK_INVALID; 30 | 31 | public VideoEvent() { 32 | } 33 | 34 | public VideoEvent(@CheckStatus int checkStatus) { 35 | this.checkStatus = checkStatus; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/utils/AssetsHelper.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.utils; 2 | 3 | import android.content.Context; 4 | 5 | import com.orhanobut.logger.Logger; 6 | 7 | import java.io.IOException; 8 | import java.io.InputStream; 9 | 10 | /** 11 | * Created by long on 2016/6/28. 12 | * Assets帮助类 13 | */ 14 | public class AssetsHelper { 15 | 16 | private AssetsHelper() { 17 | throw new AssertionError(); 18 | } 19 | 20 | /** 21 | * 读取 assets 文件 22 | * @param context 23 | * @param fileName 24 | * @return 25 | */ 26 | public static String readData(Context context, String fileName) { 27 | InputStream inStream = null; 28 | String data = null; 29 | try { 30 | inStream = context.getAssets().open(fileName); //打开assets目录中的文本文件 31 | byte[] bytes = new byte[inStream.available()]; //inStream.available()为文件中的总byte数 32 | inStream.read(bytes); 33 | inStream.close(); 34 | data = new String(bytes, "utf-8"); //将bytes转为utf-8字符串 35 | } catch (IOException e) { 36 | Logger.e(e.toString()); 37 | e.printStackTrace(); 38 | } 39 | return data; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/utils/CommonConstant.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.utils; 2 | 3 | /** 4 | * Created by long on 2016/12/15. 5 | * 通用常量 6 | */ 7 | public final class CommonConstant { 8 | 9 | public static final int INVALID_INTEGER = -1; 10 | 11 | public static final int REQUEST_CODE = 10086; 12 | public static final int VIDEO_REQUEST_CODE = 10087; 13 | 14 | public static final String RESULT_KEY = "ResultKey"; 15 | public static final String VIDEO_DATA_KEY = "VideoDataKey"; 16 | public static final String INDEX_KEY = "IndexKey"; 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/utils/DefIconFactory.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.utils; 2 | 3 | import com.dl7.mvp.R; 4 | 5 | import java.util.Random; 6 | 7 | /** 8 | * Created by long on 2016/9/23. 9 | * 默认背景工厂类 10 | */ 11 | public final class DefIconFactory { 12 | 13 | private final static int[] DEF_ICON_ID = new int[] { 14 | R.mipmap.ic_default_1, 15 | R.mipmap.ic_default_2, 16 | R.mipmap.ic_default_3, 17 | R.mipmap.ic_default_4, 18 | R.mipmap.ic_default_5 19 | }; 20 | 21 | private static Random sRandom = new Random(); 22 | 23 | private DefIconFactory() { 24 | throw new RuntimeException("DefIconFactory cannot be initialized!"); 25 | } 26 | 27 | 28 | public static int provideIcon() { 29 | int index = sRandom.nextInt(DEF_ICON_ID.length); 30 | return DEF_ICON_ID[index]; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/utils/IOUtils.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.utils; 2 | 3 | import java.io.Closeable; 4 | import java.io.IOException; 5 | 6 | /** 7 | * IO utils 8 | * 9 | * @author Vladislav Bauer 10 | */ 11 | 12 | public class IOUtils { 13 | 14 | private IOUtils() { 15 | throw new AssertionError(); 16 | } 17 | 18 | 19 | /** 20 | * Close closable object and wrap {@link IOException} with {@link RuntimeException} 21 | * @param closeable closeable object 22 | */ 23 | public static void close(Closeable closeable) { 24 | if (closeable != null) { 25 | try { 26 | closeable.close(); 27 | } catch (IOException e) { 28 | throw new RuntimeException("IOException occurred. ", e); 29 | } 30 | } 31 | } 32 | 33 | /** 34 | * Close closable and hide possible {@link IOException} 35 | * @param closeable closeable object 36 | */ 37 | public static void closeQuietly(Closeable closeable) { 38 | if (closeable != null) { 39 | try { 40 | closeable.close(); 41 | } catch (IOException e) { 42 | // Ignored 43 | } 44 | } 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/widget/FlexibleViewPager.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.widget; 2 | 3 | import android.content.Context; 4 | import android.support.v4.view.ViewPager; 5 | import android.util.AttributeSet; 6 | 7 | /** 8 | * Created by long on 2016/12/19. 9 | * 扩展动态控制 ViewPager 滑动使能功能 10 | */ 11 | public class FlexibleViewPager extends ViewPager { 12 | 13 | private boolean mIsCanScroll = true; 14 | 15 | 16 | public FlexibleViewPager(Context context) { 17 | super(context); 18 | } 19 | 20 | public FlexibleViewPager(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | @Override 25 | public void scrollTo(int x, int y) { 26 | if (mIsCanScroll) { 27 | super.scrollTo(x, y); 28 | } 29 | } 30 | 31 | public boolean isCanScroll() { 32 | return mIsCanScroll; 33 | } 34 | 35 | public void setCanScroll(boolean canScroll) { 36 | mIsCanScroll = canScroll; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/dl7/mvp/widget/PhotoViewPager.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp.widget; 2 | 3 | import android.content.Context; 4 | import android.support.v4.view.ViewPager; 5 | import android.util.AttributeSet; 6 | import android.view.MotionEvent; 7 | 8 | /** 9 | * Created by long on 2016/12/22. 10 | * 处理 PhotoView 缩放异常的 ViewPager,详情查看issue 11 | */ 12 | public class PhotoViewPager extends ViewPager { 13 | 14 | public PhotoViewPager(Context context) { 15 | super(context); 16 | } 17 | 18 | public PhotoViewPager(Context context, AttributeSet attrs) { 19 | super(context, attrs); 20 | } 21 | 22 | @Override 23 | public boolean onTouchEvent(MotionEvent ev) { 24 | try { 25 | return super.onTouchEvent(ev); 26 | } catch (IllegalArgumentException ex) { 27 | ex.printStackTrace(); 28 | } 29 | return false; 30 | } 31 | 32 | @Override 33 | public boolean onInterceptTouchEvent(MotionEvent ev) { 34 | try { 35 | return super.onInterceptTouchEvent(ev); 36 | } catch (IllegalArgumentException ex) { 37 | ex.printStackTrace(); 38 | } 39 | return false; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/res/anim/expand_vertical_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/expand_vertical_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/hold.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/photo_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/photo_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_bottom_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_bottom_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_right_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_right_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_top_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slide_top_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_in_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_in_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 17 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_out_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/anim/zoom_out_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 15 | 16 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/layer_web_progress_bar.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 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_download_del.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_love.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_photo_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_praise.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_press_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_reload.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_send.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_send_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_video_collect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_btn_video_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_card_layout_bg_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_channel_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_common_bg_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sel_text_reload.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_channel_drag.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_channel_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_comment_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_beauty_photos.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 18 | 19 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_manage.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_photo_set.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_special_head.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_video_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 19 | 20 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/adapter_welfare_photo.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 17 | 18 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_love_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_news_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_photo_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/head_news_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_common_empty.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_digest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_no_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_popup.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_popup_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_pull_scrollview_foot.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_related_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | 25 | 26 | 27 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_toolbar_transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/nav_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_channel.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_love.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/nav_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 21 | 22 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_arrow_upward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-hdpi/ic_arrow_upward.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_not_network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-hdpi/ic_not_network.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/avatar.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_arrow_upward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_arrow_upward.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_bg_card.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_bg_card.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_btn_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_btn_download.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_btn_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_btn_pause.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_channel_manage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_channel_manage.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_default_1.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_default_1.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_default_2.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_default_2.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_default_3.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_default_3.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_default_4.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_default_4.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_default_5.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_default_5.9.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_dot.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_nav.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_nav_news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_nav_news.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_nav_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_nav_picture.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_nav_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_nav_setting.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_nav_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_nav_video.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_not_network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_not_network.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_reload_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_reload_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_reload_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_reload_press.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_shadow_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_shadow_bottom.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_shadow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_shadow_left.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_shadow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_shadow_right.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_share_qq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_share_qq.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_share_sms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_share_sms.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_share_wechat_friend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_share_wechat_friend.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_share_wechat_friend_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_share_wechat_friend_circle.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_toolbar_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_toolbar_download.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_video_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_video_collect.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_video_collected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_video_collected.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_video_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_video_download.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_video_downloading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_video_downloading.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_video_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xhdpi/ic_video_share.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_arrow_upward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_arrow_upward.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_btn_love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_btn_love.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_btn_loved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_btn_loved.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_btn_praise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_btn_praise.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_btn_praised.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_btn_praised.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_btn_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_btn_share.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_btn_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_btn_star.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_github.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_github.jpg -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_logo.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_no_collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_no_collection.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_no_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_no_download.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_not_network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_not_network.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_photo_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_photo_download.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_photo_downloaded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/app/src/main/res/mipmap-xxhdpi/ic_photo_downloaded.png -------------------------------------------------------------------------------- /app/src/main/res/values-v19/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 24dp 5 | 80dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-v19/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 16 | 17 | 18 | 21 | 22 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.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 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #009688 4 | #009688 5 | #5677fc 6 | 7 | 8 | #ffffff 9 | #dddddd 10 | #303030 11 | #e51c23 12 | 13 | #607d8b 14 | #ffffff 15 | 16 | #44000000 17 | 18 | #FF4081 19 | #5677fc 20 | #ffbababa 21 | 22 | #666666 23 | #f57c00 24 | #fd4d51 25 | 26 | #33626262 27 | #ccf57c00 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/values/drawables.xml: -------------------------------------------------------------------------------- 1 | 2 | @android:drawable/ic_menu_camera 3 | @android:drawable/ic_menu_gallery 4 | @android:drawable/ic_menu_slideshow 5 | @android:drawable/ic_menu_manage 6 | @android:drawable/ic_menu_share 7 | @android:drawable/ic_menu_send 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MvpApp 3 | TestActivity 4 | 5 | Open navigation drawer 6 | Close navigation drawer 7 | 8 | Settings 9 | HomeActivity 10 | 网络异常,点击重试 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pref_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 12 | 13 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/test/java/com/dl7/mvp/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.mvp; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | mavenCentral() 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:2.3.0' 10 | classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 11 | classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' 12 | classpath 'com.antfortune.freeline:gradle:0.8.4' 13 | classpath "com.tencent.tinker:tinker-patch-gradle-plugin:${TINKER_VERSION}" 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 | jcenter() 22 | maven { url 'https://jitpack.io' } 23 | } 24 | } 25 | 26 | task clean(type: Delete) { 27 | delete rootProject.buildDir 28 | } 29 | 30 | ext { 31 | compileSdk = 25 32 | minSdk = 14 33 | targetSdk = 25 34 | // 尼玛用了25.1.1发现专题界面的浮标按钮没有动画效果了。改回25.0.1 35 | // support = "25.1.1" 36 | support = "25.0.1" 37 | buildTools = "25.0.2" 38 | } -------------------------------------------------------------------------------- /downloaderLib/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /downloaderLib/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdk 5 | buildToolsVersion rootProject.ext.buildTools 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdk 9 | targetSdkVersion rootProject.ext.targetSdk 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | minifyEnabled false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 | } 18 | } 19 | // lintOptions { 20 | // abortOnError false 21 | // } 22 | } 23 | 24 | dependencies { 25 | compile fileTree(include: ['*.jar'], dir: 'libs') 26 | testCompile 'junit:junit:4.12' 27 | compile "com.android.support:appcompat-v7:${rootProject.ext.support}" 28 | // okhttp 29 | compile 'com.squareup.okhttp3:okhttp:3.3.0' 30 | } -------------------------------------------------------------------------------- /downloaderLib/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 F:\WorkTools\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 | -------------------------------------------------------------------------------- /downloaderLib/src/androidTest/java/com/dl7/downloaderlib/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.downloaderlib; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /downloaderLib/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /downloaderLib/src/main/java/com/dl7/downloaderlib/DownloadListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.downloaderlib; 2 | 3 | import com.dl7.downloaderlib.entity.FileInfo; 4 | 5 | /** 6 | * Created by long on 2016/5/26. 7 | * 下载监听器 8 | */ 9 | public interface DownloadListener { 10 | /** 11 | * 开始下载 12 | * @param fileInfo 13 | */ 14 | void onStart(FileInfo fileInfo); 15 | /** 16 | * 更新下载进度 17 | * @param fileInfo 18 | */ 19 | void onUpdate(FileInfo fileInfo); 20 | /** 21 | * 停止下载 22 | * @param fileInfo 23 | */ 24 | void onStop(FileInfo fileInfo); 25 | /** 26 | * 下载成功 27 | * @param fileInfo 28 | */ 29 | void onComplete(FileInfo fileInfo); 30 | /** 31 | * 取消下载 32 | * @param fileInfo 33 | */ 34 | void onCancel(FileInfo fileInfo); 35 | /** 36 | * 下载失败 37 | * @param fileInfo 38 | */ 39 | void onError(FileInfo fileInfo, String errorMsg); 40 | } 41 | -------------------------------------------------------------------------------- /downloaderLib/src/main/java/com/dl7/downloaderlib/db/FileDAO.java: -------------------------------------------------------------------------------- 1 | package com.dl7.downloaderlib.db; 2 | 3 | import com.dl7.downloaderlib.entity.FileInfo; 4 | 5 | /** 6 | * Created by long on 2016/5/26. 7 | * 数据库访问接口 8 | */ 9 | public interface FileDAO { 10 | /** 11 | * 插入线程信息 12 | * @param info 13 | * @return void 14 | */ 15 | void insert(FileInfo info); 16 | /** 17 | * 删除线程信息 18 | * @param url 19 | * @return void 20 | */ 21 | void delete(String url); 22 | /** 23 | * 更新线程下载进度 24 | * @param info 25 | */ 26 | void update(FileInfo info); 27 | /** 28 | * 查询文件的线程信息 29 | * @param url 30 | * @return 31 | */ 32 | FileInfo query(String url); 33 | /** 34 | * 线程信息是否存在 35 | * @param url 36 | * @return boolean 37 | */ 38 | boolean isExists(String url); 39 | } 40 | -------------------------------------------------------------------------------- /downloaderLib/src/main/java/com/dl7/downloaderlib/exception/DownloadException.java: -------------------------------------------------------------------------------- 1 | package com.dl7.downloaderlib.exception; 2 | 3 | /** 4 | * Created by long on 2016/5/26. 5 | * 下载异常 6 | */ 7 | public class DownloadException extends RuntimeException { 8 | 9 | public DownloadException(String detailMessage) { 10 | super(detailMessage); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /downloaderLib/src/main/java/com/dl7/downloaderlib/helper/MainHandler.java: -------------------------------------------------------------------------------- 1 | package com.dl7.downloaderlib.helper; 2 | 3 | import android.os.Handler; 4 | import android.os.Looper; 5 | 6 | /** 7 | * 主线程处理工具 8 | */ 9 | public class MainHandler { 10 | 11 | private static final Handler mHandler = new Handler(Looper.getMainLooper()); 12 | 13 | 14 | private MainHandler() { 15 | throw new RuntimeException("MainHandler cannot be initialized!"); 16 | } 17 | 18 | /** 19 | * 在主线程执行 20 | * @param runnable 21 | */ 22 | public static void runInMainThread(Runnable runnable) { 23 | mHandler.post(runnable); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /downloaderLib/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DownloaderLib 3 | 4 | -------------------------------------------------------------------------------- /downloaderLib/src/test/java/com/dl7/downloaderlib/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.downloaderlib; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /fenmian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/fenmian.jpg -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | ## Project-wide Gradle settings. 2 | # 3 | # For more details on how to configure your build environment visit 4 | # http://www.gradle.org/docs/current/userguide/build_environment.html 5 | # 6 | # Specifies the JVM arguments used for the daemon process. 7 | # The setting is particularly useful for tweaking memory settings. 8 | # Default value: -Xmx1024m -XX:MaxPermSize=256m 9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 10 | # 11 | # When configured, Gradle will run in incubating parallel mode. 12 | # This option should only be used with decoupled projects. More details, visit 13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 14 | # org.gradle.parallel=true 15 | #Tue Mar 07 10:57:48 CST 2017 16 | systemProp.http.proxyHost=192.168.1.180 17 | systemProp.http.nonProxyHosts=192.168.* 18 | TINKER_VERSION=1.7.7 19 | systemProp.http.proxyPort=1080 20 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Mar 07 13:41:43 CST 2017 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-3.3-all.zip 7 | -------------------------------------------------------------------------------- /playerview/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /playerview/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 F:\WorkTools\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 | -------------------------------------------------------------------------------- /playerview/src/androidTest/java/com/dl7/player/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.player; 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.dl7.playerview.test", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /playerview/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /playerview/src/main/java/com/dl7/player/danmaku/DanmakuType.java: -------------------------------------------------------------------------------- 1 | package com.dl7.player.danmaku; 2 | 3 | import android.support.annotation.IntDef; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | import static master.flame.danmaku.danmaku.model.BaseDanmaku.TYPE_FIX_BOTTOM; 11 | import static master.flame.danmaku.danmaku.model.BaseDanmaku.TYPE_FIX_TOP; 12 | import static master.flame.danmaku.danmaku.model.BaseDanmaku.TYPE_SCROLL_RL; 13 | 14 | /** 15 | * Created by long on 2016/12/22. 16 | * 限定3种弹幕类型: 17 | */ 18 | @Retention(RetentionPolicy.SOURCE) 19 | @Target({ElementType.FIELD, ElementType.PARAMETER}) 20 | @IntDef({TYPE_SCROLL_RL, TYPE_FIX_TOP, TYPE_FIX_BOTTOM}) 21 | public @interface DanmakuType { 22 | } 23 | -------------------------------------------------------------------------------- /playerview/src/main/java/com/dl7/player/danmaku/OnDanmakuListener.java: -------------------------------------------------------------------------------- 1 | package com.dl7.player.danmaku; 2 | 3 | /** 4 | * Created by long on 2016/12/22. 5 | * 弹幕监听器 6 | */ 7 | public interface OnDanmakuListener { 8 | 9 | /** 10 | * 这个用来监听控制全屏模式下的发送弹幕操作,会在进入弹幕之前调用,并且根据返回值来判断是否可以进行发射弹幕操作,可用来处理用户登录情况 11 | * @return true:进入弹幕编辑;false:当前不能发射弹幕 12 | */ 13 | boolean isValid(); 14 | 15 | /** 16 | * 获取发射的弹幕数据 17 | * @param data 弹幕数据,默认为{@link master.flame.danmaku.danmaku.model.BaseDanmaku},如果设置自定义类型则为自定义格式 18 | */ 19 | void onDataObtain(T data); 20 | } 21 | -------------------------------------------------------------------------------- /playerview/src/main/java/com/dl7/player/media/MediaPlayerParams.java: -------------------------------------------------------------------------------- 1 | package com.dl7.player.media; 2 | 3 | public class MediaPlayerParams { 4 | 5 | /**================================= 播放状态 =================================*/ 6 | // 空闲 7 | public static final int STATE_IDLE = 330; 8 | // 错误 9 | public static final int STATE_ERROR = 331; 10 | // 加载中 11 | public static final int STATE_PREPARING = 332; 12 | // 加载完成 13 | public static final int STATE_PREPARED = 333; 14 | // 播放中 15 | public static final int STATE_PLAYING = 334; 16 | // 暂停 17 | public static final int STATE_PAUSED = 335; 18 | // 结束 19 | public static final int STATE_COMPLETED = 336; 20 | 21 | /** 22 | * ============================ 弹幕状态 ============================ 23 | */ 24 | } 25 | -------------------------------------------------------------------------------- /playerview/src/main/java/com/dl7/player/widgets/MarqueeTextView.java: -------------------------------------------------------------------------------- 1 | package com.dl7.player.widgets; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.TextView; 6 | 7 | /** 8 | * Created by Rukey7 on 2016/11/14. 9 | * 跑马灯TextView 10 | */ 11 | public class MarqueeTextView extends TextView { 12 | 13 | public MarqueeTextView(Context context) { 14 | super(context); 15 | } 16 | 17 | public MarqueeTextView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | } 20 | 21 | public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) { 22 | super(context, attrs, defStyleAttr); 23 | } 24 | 25 | @Override 26 | public boolean isFocused() { 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /playerview/src/main/res/anim/dialog_zoom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /playerview/src/main/res/anim/dialog_zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/layer_battery_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/layer_seek_progress.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 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_ar_16_9.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_ar_4_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_ar_adjust_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_ar_adjust_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_control.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_input_options_bottom_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_input_options_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_input_options_medium_textsize.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_input_options_rl_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_input_options_small_textsize.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_danmaku_input_options_top_type.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_fullscreen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_play.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_share_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_btn_share_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_item_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_media_quality_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_media_quality_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/sel_player_lock.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/shape_dialog_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/shape_player_lock_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/shape_seek_ball.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/shape_selected_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/shape_send_danmaku_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/shape_video_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /playerview/src/main/res/drawable/transition_item_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playerview/src/main/res/layout/adapter_media_quality.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 18 | -------------------------------------------------------------------------------- /playerview/src/main/res/layout/layout_media_quality.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 21 | 22 | -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_battery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_battery.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_battery_charging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_battery_charging.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_battery_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_battery_red.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_brightness.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_cancel_danmaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_cancel_danmaku.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_cancel_skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_cancel_skip.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_danmaku_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_danmaku_closed.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_danmaku_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_danmaku_open.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_fast_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_fast_forward.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_fast_rewind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_fast_rewind.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_media_quality_bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_media_quality_bd.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_media_quality_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_media_quality_high.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_media_quality_medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_media_quality_medium.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_media_quality_smooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_media_quality_smooth.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_media_quality_super.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_media_quality_super.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_play_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_play_circle.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_player_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_player_lock.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_player_unlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_player_unlock.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_return_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_return_back.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_send_danmaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_send_danmaku.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_video_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_video_pause.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_video_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_video_play.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_video_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_video_screenshot.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_volume_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_volume_off.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-hdpi/ic_volume_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-hdpi/ic_volume_on.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_16_9_inside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_16_9_inside.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_16_9_inside_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_16_9_inside_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_4_3_inside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_4_3_inside.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_4_3_inside_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_4_3_inside_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_screen.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_screen_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_screen_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_video.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_video_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_ar_adjust_video_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_brightness.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_btn_danmaku_input_options_color_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_btn_danmaku_input_options_color_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_cancel_danmaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_cancel_danmaku.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_cancel_skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_cancel_skip.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_closed.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_more_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_more_color.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_bottom_type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_bottom_type.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_bottom_type_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_bottom_type_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_medium_textsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_medium_textsize.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_medium_textsize_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_medium_textsize_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_rl_type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_rl_type.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_rl_type_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_rl_type_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_small_textsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_small_textsize.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_small_textsize_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_small_textsize_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_top_type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_top_type.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_top_type_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_input_options_top_type_checked.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_danmaku_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_danmaku_open.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_fast_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_fast_forward.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_fast_rewind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_fast_rewind.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_media_quality_bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_media_quality_bd.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_media_quality_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_media_quality_high.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_media_quality_medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_media_quality_medium.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_media_quality_smooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_media_quality_smooth.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_media_quality_super.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_media_quality_super.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_play_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_play_circle.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_player_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_player_lock.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_player_unlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_player_unlock.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_return_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_return_back.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_send_danmaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_send_danmaku.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_video_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_video_pause.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_video_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_video_play.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_video_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_video_screenshot.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_volume_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_volume_off.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xhdpi/ic_volume_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xhdpi/ic_volume_on.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_brightness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_brightness.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_cancel_danmaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_cancel_danmaku.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_cancel_skip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_cancel_skip.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_danmaku_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_danmaku_closed.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_danmaku_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_danmaku_open.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_fast_forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_fast_forward.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_fast_rewind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_fast_rewind.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_bd.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_high.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_medium.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_smooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_smooth.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_super.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_media_quality_super.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_play_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_play_circle.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_player_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_player_lock.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_player_unlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_player_unlock.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_return_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_return_back.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_send_danmaku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_send_danmaku.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_video_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_video_pause.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_video_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_video_play.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_video_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_video_screenshot.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_volume_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_volume_off.png -------------------------------------------------------------------------------- /playerview/src/main/res/mipmap-xxhdpi/ic_volume_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bayshier/MvpApp-master/a354c95e9d064de5cbecc27e1fd6a5221355b33c/playerview/src/main/res/mipmap-xxhdpi/ic_volume_on.png -------------------------------------------------------------------------------- /playerview/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #80000000 6 | 7 | #809e9e9e 8 | #cce91e63 9 | #88f48fb1 10 | #ffffffff 11 | 12 | #ccec407a 13 | #e91e63 14 | 15 | #55ffffff 16 | #ffffff 17 | 18 | #ffa5a5a5 19 | #ffbababa 20 | 21 | #f06292 22 | 23 | -------------------------------------------------------------------------------- /playerview/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 46dp 5 | 48dp 6 | 32.0dip 7 | 25.0dip 8 | 5.0dip 9 | 42.0dip 10 | 11 | 44dp 12 | 20dp 13 | 30dp 14 | 15 | 50dp 16 | -------------------------------------------------------------------------------- /playerview/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | PlayerView 3 | 记忆上次播放到 4 | 继续播放 5 | 6 | 7 | 流畅 8 | 清晰 9 | 高清 10 | 超清 11 | 1080P 12 | 13 | 14 | -------------------------------------------------------------------------------- /playerview/src/test/java/com/dl7/player/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.player; 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 | } -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':RecyclerViewHelper', ':downloaderLib', ':playerview', ':tinkerLib' 2 | -------------------------------------------------------------------------------- /tinkerLib/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tinkerLib/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdk 5 | buildToolsVersion rootProject.ext.buildTools 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdk 9 | targetSdkVersion rootProject.ext.targetSdk 10 | versionCode 1 11 | versionName "1.0" 12 | 13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 14 | 15 | } 16 | buildTypes { 17 | release { 18 | minifyEnabled false 19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 20 | } 21 | } 22 | } 23 | 24 | dependencies { 25 | compile fileTree(dir: 'libs', include: ['*.jar']) 26 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 27 | exclude group: 'com.android.support', module: 'support-annotations' 28 | }) 29 | compile "com.android.support:appcompat-v7:${rootProject.ext.support}" 30 | testCompile 'junit:junit:4.12' 31 | 32 | compile "com.android.support:multidex:1.0.1" 33 | //tinker的核心库 34 | compile("com.tencent.tinker:tinker-android-lib:${TINKER_VERSION}") { changing = true } 35 | } 36 | -------------------------------------------------------------------------------- /tinkerLib/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 F:\WorkTools\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 | -------------------------------------------------------------------------------- /tinkerLib/src/androidTest/java/com/dl7/tinkerlib/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.tinkerlib; 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.dl7.tinkerlib.test", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tinkerLib/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tinkerLib/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TinkerLib 3 | 4 | -------------------------------------------------------------------------------- /tinkerLib/src/test/java/com/dl7/tinkerlib/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.dl7.tinkerlib; 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 | } --------------------------------------------------------------------------------