├── .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 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_love.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/nav_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------