gitextract_epk5pk4i/ ├── .circleci/ │ └── config.yml ├── .gitignore ├── .idea/ │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── dictionaries/ │ │ └── andy.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── jennifer/ │ │ └── andy/ │ │ └── simpleeyes/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── fonts/ │ │ │ └── Lobster-1.4.otf │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jennifer/ │ │ │ └── andy/ │ │ │ └── simpleeyes/ │ │ │ ├── AndyApplication.kt │ │ │ ├── UserPreferences.kt │ │ │ ├── entity/ │ │ │ │ └── AndyInfo.kt │ │ │ ├── manager/ │ │ │ │ └── ActivityManager.kt │ │ │ ├── net/ │ │ │ │ ├── Api.kt │ │ │ │ ├── ApiService.kt │ │ │ │ ├── Extras.kt │ │ │ │ └── RetrofitConfig.kt │ │ │ ├── player/ │ │ │ │ ├── FileMediaDataSource.kt │ │ │ │ ├── IjkMediaController.kt │ │ │ │ ├── IjkVideoView.kt │ │ │ │ ├── IjkVideoViewWrapper.kt │ │ │ │ ├── MeasureHelper.kt │ │ │ │ ├── PolicyCompat.kt │ │ │ │ ├── event/ │ │ │ │ │ └── VideoProgressEvent.kt │ │ │ │ ├── render/ │ │ │ │ │ ├── IRenderView.kt │ │ │ │ │ ├── SurfaceRenderView.kt │ │ │ │ │ └── TextureRenderView.kt │ │ │ │ └── view/ │ │ │ │ ├── ControllerView.kt │ │ │ │ ├── ControllerViewFactory.kt │ │ │ │ ├── ErrorView.kt │ │ │ │ ├── FullScreenControllerView.kt │ │ │ │ └── TinyControllerView.kt │ │ │ ├── router/ │ │ │ │ ├── EyesPathReplaceService.kt │ │ │ │ ├── RouteIntercept.kt │ │ │ │ └── SchemeFilterActivity.kt │ │ │ ├── rx/ │ │ │ │ ├── RxBus.kt │ │ │ │ ├── RxThreadHelper.kt │ │ │ │ └── error/ │ │ │ │ ├── FlowableRetryDelay.kt │ │ │ │ ├── GlobalErrorProcessor.kt │ │ │ │ ├── GlobalErrorTransformer.kt │ │ │ │ ├── ObservabeRetryDelay.kt │ │ │ │ └── RetryConfig.kt │ │ │ ├── ui/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── author/ │ │ │ │ │ ├── AuthorTagDetailActivity.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── AuthorModel.kt │ │ │ │ │ ├── presenter/ │ │ │ │ │ │ └── AuthorTagDetailPresenter.kt │ │ │ │ │ └── ui/ │ │ │ │ │ └── AuthorTagDetailView.kt │ │ │ │ ├── base/ │ │ │ │ │ ├── BaseActivity.kt │ │ │ │ │ ├── BaseAppCompatActivity.kt │ │ │ │ │ ├── BaseAppCompatFragment.kt │ │ │ │ │ ├── BaseFragment.kt │ │ │ │ │ ├── BaseFragmentItemAdapter.kt │ │ │ │ │ ├── BaseView.kt │ │ │ │ │ ├── LoadMoreView.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── BaseDataAdapter.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── BaseModel.kt │ │ │ │ │ └── presenter/ │ │ │ │ │ ├── BasePresenter.kt │ │ │ │ │ └── LoadMorePresenter.kt │ │ │ │ ├── common/ │ │ │ │ │ ├── CommonModel.kt │ │ │ │ │ ├── CommonPresenter.kt │ │ │ │ │ ├── CommonRecyclerActivity.kt │ │ │ │ │ └── CommonView.kt │ │ │ │ ├── feed/ │ │ │ │ │ ├── AllCategoryActivity.kt │ │ │ │ │ ├── CategoryTabActivity.kt │ │ │ │ │ ├── FeedFragment.kt │ │ │ │ │ ├── RankListActivity.kt │ │ │ │ │ ├── TagActivity.kt │ │ │ │ │ ├── TagDetailInfoFragment.kt │ │ │ │ │ ├── TopicActivity.kt │ │ │ │ │ ├── WebViewActivity.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── FeedModel.kt │ │ │ │ │ ├── presenter/ │ │ │ │ │ │ ├── AllCategoryPresenter.kt │ │ │ │ │ │ ├── CategoryTabPresenter.kt │ │ │ │ │ │ ├── FeedPresenter.kt │ │ │ │ │ │ ├── RankListPresenter.kt │ │ │ │ │ │ ├── TagDetailInfoPresenter.kt │ │ │ │ │ │ └── TopicPresenter.kt │ │ │ │ │ └── view/ │ │ │ │ │ ├── AllCategoryView.kt │ │ │ │ │ ├── CategoryTabView.kt │ │ │ │ │ ├── FeedView.kt │ │ │ │ │ ├── RankListView.kt │ │ │ │ │ ├── TagDetailInfoView.kt │ │ │ │ │ └── TopicView.kt │ │ │ │ ├── follow/ │ │ │ │ │ ├── AllAuthorActivity.kt │ │ │ │ │ ├── FollowFragment.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── FollowModel.kt │ │ │ │ │ ├── presenter/ │ │ │ │ │ │ ├── AllAuthorPresenter.kt │ │ │ │ │ │ └── FollowPresenter.kt │ │ │ │ │ └── view/ │ │ │ │ │ ├── AllAuthorView.kt │ │ │ │ │ └── FollowView.kt │ │ │ │ ├── home/ │ │ │ │ │ ├── DailyEliteActivity.kt │ │ │ │ │ ├── HomeFragment.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── CollectionCardCoverAdapter.kt │ │ │ │ │ │ ├── DailyEliteAdapter.kt │ │ │ │ │ │ └── SquareCollectionAdapter.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── HomeModel.kt │ │ │ │ │ ├── presenter/ │ │ │ │ │ │ ├── DailyElitePresenter.kt │ │ │ │ │ │ └── HomePresenter.kt │ │ │ │ │ └── view/ │ │ │ │ │ ├── DailyEliteView.kt │ │ │ │ │ └── HomeView.kt │ │ │ │ ├── login/ │ │ │ │ │ └── LoginActivity.kt │ │ │ │ ├── profile/ │ │ │ │ │ ├── CacheFragment.kt │ │ │ │ │ ├── ProfileFragment.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── ProfileSettingAdapter.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ └── ProfileModel.kt │ │ │ │ │ ├── presenter/ │ │ │ │ │ │ ├── CachePresenter.kt │ │ │ │ │ │ └── ProfilePresenter.kt │ │ │ │ │ └── view/ │ │ │ │ │ ├── CacheView.kt │ │ │ │ │ └── ProfileView.kt │ │ │ │ ├── search/ │ │ │ │ │ ├── SearchHotActivity.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── CollectionBriefAdapter.kt │ │ │ │ │ │ ├── SearchHotAdapter.kt │ │ │ │ │ │ └── SearchVideoAdapter.kt │ │ │ │ │ ├── presenter/ │ │ │ │ │ │ └── SearchPresenter.kt │ │ │ │ │ └── view/ │ │ │ │ │ └── SearchView.kt │ │ │ │ ├── splash/ │ │ │ │ │ ├── LandingActivity.kt │ │ │ │ │ ├── LocalCommonLandingFragment.kt │ │ │ │ │ ├── SloganFragment.kt │ │ │ │ │ ├── VideoLandingFragment.kt │ │ │ │ │ └── adapter/ │ │ │ │ │ └── SplashVideoFragmentAdapter.kt │ │ │ │ └── video/ │ │ │ │ ├── VideoDetailActivity.kt │ │ │ │ ├── VideoInfoByIdActivity.kt │ │ │ │ ├── adapter/ │ │ │ │ │ └── VideoDetailAdapter.kt │ │ │ │ ├── model/ │ │ │ │ │ └── VideoDetailModel.kt │ │ │ │ ├── presenter/ │ │ │ │ │ ├── VideoDetailPresenter.kt │ │ │ │ │ └── VideoInfoByIdPresenter.kt │ │ │ │ └── view/ │ │ │ │ ├── VideoDetailView.kt │ │ │ │ └── VideoInfoByIdView.kt │ │ │ ├── utils/ │ │ │ │ ├── AppUtils.kt │ │ │ │ ├── ButterKnife.kt │ │ │ │ ├── DensityUtils.kt │ │ │ │ ├── IntentRouterUtils.kt │ │ │ │ ├── KeyboardUtils.kt │ │ │ │ ├── NetWorkUtils.kt │ │ │ │ ├── ProcessUtils.kt │ │ │ │ ├── ScreenUtils.kt │ │ │ │ ├── SystemUtils.kt │ │ │ │ ├── TimeUtils.kt │ │ │ │ ├── ToastUtils.kt │ │ │ │ ├── UDIDUtils.kt │ │ │ │ ├── VideoPlayerUtils.kt │ │ │ │ └── ext/ │ │ │ │ └── IntentEx.kt │ │ │ └── widget/ │ │ │ ├── BottomBar.kt │ │ │ ├── BottomItem.kt │ │ │ ├── BottomItemLayout.kt │ │ │ ├── CollectionOfHorizontalScrollCardView.kt │ │ │ ├── CustomLoadMoreView.kt │ │ │ ├── EliteImageView.kt │ │ │ ├── FullScreenVideoView.kt │ │ │ ├── GridItemDecoration.kt │ │ │ ├── ItemHeaderView.kt │ │ │ ├── SearchHotRemindView.kt │ │ │ ├── StickyNavLayout.kt │ │ │ ├── VerticalProgressBar.kt │ │ │ ├── VideoDetailAuthorView.kt │ │ │ ├── font/ │ │ │ │ ├── CustomFontTextView.kt │ │ │ │ ├── CustomFontTypeWriterTextView.kt │ │ │ │ ├── FontType.kt │ │ │ │ ├── PrintSpan.kt │ │ │ │ ├── PrintSpanGroup.kt │ │ │ │ └── TypefaceManager.kt │ │ │ ├── image/ │ │ │ │ ├── CenterAlignImageSpan.kt │ │ │ │ └── imageloader/ │ │ │ │ └── FrescoImageLoader.kt │ │ │ ├── pull/ │ │ │ │ ├── head/ │ │ │ │ │ ├── EliteHeaderView.kt │ │ │ │ │ ├── HeaderRefreshView.kt │ │ │ │ │ ├── HomePageHeaderView.kt │ │ │ │ │ └── VideoDetailHeadView.kt │ │ │ │ ├── refresh/ │ │ │ │ │ ├── LinearLayoutManagerWithSmoothScroller.kt │ │ │ │ │ ├── PullRefreshView.kt │ │ │ │ │ ├── PullToRefresh.kt │ │ │ │ │ ├── PullToRefreshBase.kt │ │ │ │ │ └── PullToRefreshRecyclerView.kt │ │ │ │ └── zoom/ │ │ │ │ ├── PullToZoom.kt │ │ │ │ ├── PullToZoomBase.kt │ │ │ │ └── PullToZoomRecyclerView.kt │ │ │ ├── state/ │ │ │ │ ├── MultipleStateView.kt │ │ │ │ └── NetLoadingView.kt │ │ │ ├── tab/ │ │ │ │ ├── AnimationUtils.java │ │ │ │ ├── ShortTabLayout.java │ │ │ │ └── TabItem.java │ │ │ └── viewpager/ │ │ │ ├── InterceptVerticalViewPager.kt │ │ │ └── MarginWithIndicatorViewPager.kt │ │ └── res/ │ │ ├── anim/ │ │ │ ├── bottom_in.xml │ │ │ ├── bottom_out.xml │ │ │ ├── fade_in.xml │ │ │ ├── fade_out.xml │ │ │ ├── left_in.xml │ │ │ ├── left_out.xml │ │ │ ├── no_anim.xml │ │ │ ├── right_in.xml │ │ │ ├── right_out.xml │ │ │ ├── scale_in.xml │ │ │ ├── scale_out.xml │ │ │ ├── top_in.xml │ │ │ └── top_out.xml │ │ ├── color/ │ │ │ └── selector_item_square_text.xml │ │ ├── drawable/ │ │ │ ├── ic_launcher_background.xml │ │ │ ├── seek_bar_layer.xml │ │ │ ├── selector_checkbox_bg.xml │ │ │ ├── selector_item_square_foreground.xml │ │ │ ├── shape_black_border.xml │ │ │ ├── shape_border_bottom.xml │ │ │ ├── shape_border_bottom_top.xml │ │ │ ├── shape_hot_search_bg.xml │ │ │ ├── shape_indicator_selected.xml │ │ │ ├── shape_indicator_unselected.xml │ │ │ ├── shape_share_bg.xml │ │ │ ├── shape_show_all_border.xml │ │ │ ├── shape_translate_border.xml │ │ │ ├── shape_video_detail_placeholder.xml │ │ │ ├── shape_webview_scrollbar.xml │ │ │ └── shape_white_border.xml │ │ ├── layout/ │ │ │ ├── activity_all_author.xml │ │ │ ├── activity_all_category.xml │ │ │ ├── activity_author_tag_detail.xml │ │ │ ├── activity_category_tab.xml │ │ │ ├── activity_common_recyclerview.xml │ │ │ ├── activity_daily_elite.xml │ │ │ ├── activity_landing.xml │ │ │ ├── activity_login.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_rank.xml │ │ │ ├── activity_tag.xml │ │ │ ├── activity_topic.xml │ │ │ ├── activity_video_detail.xml │ │ │ ├── activity_videoinfo_by_id.xml │ │ │ ├── activity_webview.xml │ │ │ ├── dialog_light_controller.xml │ │ │ ├── dialog_volume_controller.xml │ │ │ ├── empty_search_word.xml │ │ │ ├── fragment_cache.xml │ │ │ ├── fragment_feed.xml │ │ │ ├── fragment_follow.xml │ │ │ ├── fragment_home.xml │ │ │ ├── fragment_local_coomon_landing.xml │ │ │ ├── fragment_profile.xml │ │ │ ├── fragment_search_hot.xml │ │ │ ├── fragment_slogan.xml │ │ │ ├── fragment_tag_detail_info.xml │ │ │ ├── fragment_video_landing.xml │ │ │ ├── item_collection_brief.xml │ │ │ ├── item_collection_card_cover.xml │ │ │ ├── item_collection_of_horizontal_scroll_card.xml │ │ │ ├── item_hot_search.xml │ │ │ ├── item_profile_setting.xml │ │ │ ├── item_square_card.xml │ │ │ ├── item_square_collection.xml │ │ │ ├── item_the_end.xml │ │ │ ├── item_video_samll_card.xml │ │ │ ├── item_video_text_card.xml │ │ │ ├── layout_author_tag_detail_header.xml │ │ │ ├── layout_blank_card.xml │ │ │ ├── layout_bottom_item.xml │ │ │ ├── layout_brife_card.xml │ │ │ ├── layout_card_banner.xml │ │ │ ├── layout_category_head_view.xml │ │ │ ├── layout_category_tab_toolbar.xml │ │ │ ├── layout_center_title_share_toolbar.xml │ │ │ ├── layout_choiceness.xml │ │ │ ├── layout_collection_of_horizontal_scroll_card.xml │ │ │ ├── layout_collection_with_brief.xml │ │ │ ├── layout_collection_with_cover.xml │ │ │ ├── layout_common_text.xml │ │ │ ├── layout_common_toolbar.xml │ │ │ ├── layout_division_line.xml │ │ │ ├── layout_follow_card.xml │ │ │ ├── layout_horizontal_scroll_card.xml │ │ │ ├── layout_ijk_wrapper.xml │ │ │ ├── layout_left_title_share_toolbar.xml │ │ │ ├── layout_load_more_view.xml │ │ │ ├── layout_loading_message.xml │ │ │ ├── layout_loading_view.xml │ │ │ ├── layout_margin_with_indicator_pager.xml │ │ │ ├── layout_media_controller_full_screen.xml │ │ │ ├── layout_media_controller_tiny.xml │ │ │ ├── layout_search_hot_remind_view.xml │ │ │ ├── layout_single_text.xml │ │ │ ├── layout_single_video.xml │ │ │ ├── layout_square_collection.xml │ │ │ ├── layout_video_author_head.xml │ │ │ ├── layout_video_detail_head.xml │ │ │ ├── layout_video_error.xml │ │ │ ├── layout_video_small_card.xml │ │ │ ├── refresh_category_header.xml │ │ │ └── refresh_daily_elite_header.xml │ │ ├── layout-v21/ │ │ │ └── layout_square_collection.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids_sticky_nav_layout.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── xml/ │ │ └── network_security_config.xml │ └── test/ │ └── java/ │ └── com/ │ └── jennifer/ │ └── andy/ │ └── simpleeyes/ │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle