├── .gitignore ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── google-services.json ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── tysq │ │ └── ty_android │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── text.html │ ├── creator │ │ ├── cache │ │ │ └── CacheCreator.java │ │ └── mvp │ │ │ └── MVPCreator.java │ ├── java │ │ └── com │ │ │ └── tysq │ │ │ └── ty_android │ │ │ ├── adapter │ │ │ ├── OnTabSelectedListenerAdapter.java │ │ │ └── TextWatcherAdapter.java │ │ │ ├── app │ │ │ └── TyApplication.java │ │ │ ├── base │ │ │ ├── BaseAdapter.java │ │ │ ├── CommonBaseDialog.java │ │ │ ├── SimpleLoadMoreFragment.java │ │ │ ├── SimpleLoadMoreStrengthenFragment.java │ │ │ ├── activity │ │ │ │ ├── CommonBarActivity.java │ │ │ │ ├── CommonBarStrengthenActivity.java │ │ │ │ ├── CommonToolbarActivity.java │ │ │ │ ├── CommonToolbarStrengthenActivity.java │ │ │ │ ├── FragmentConstant.java │ │ │ │ └── FragmentStrengthenConstant.java │ │ │ └── adapter │ │ │ │ ├── CommonHeaderSimpleAdapter.java │ │ │ │ └── CommonSimpleAdapter.java │ │ │ ├── config │ │ │ ├── Constant.java │ │ │ ├── NetCode.java │ │ │ ├── TyConfig.java │ │ │ └── TyFragmentManager.java │ │ │ ├── di │ │ │ ├── component │ │ │ │ └── AppComponent.java │ │ │ ├── module │ │ │ │ └── AppModule.java │ │ │ └── scope │ │ │ │ └── ActivityScope.java │ │ │ ├── feature │ │ │ ├── DoorActivity.java │ │ │ ├── aboutUs │ │ │ │ ├── AboutUsFragment.java │ │ │ │ ├── AboutUsPresenter.java │ │ │ │ ├── AboutUsView.java │ │ │ │ └── di │ │ │ │ │ ├── AboutUsComponent.java │ │ │ │ │ └── AboutUsModule.java │ │ │ ├── adminCenter │ │ │ │ ├── AdminCenterFragment.java │ │ │ │ ├── AdminCenterPresenter.java │ │ │ │ ├── AdminCenterView.java │ │ │ │ └── di │ │ │ │ │ ├── AdminCenterComponent.java │ │ │ │ │ └── AdminCenterModule.java │ │ │ ├── announcement │ │ │ │ ├── AnnouncementAdapter.java │ │ │ │ ├── AnnouncementFragment.java │ │ │ │ ├── AnnouncementPresenter.java │ │ │ │ ├── AnnouncementView.java │ │ │ │ └── di │ │ │ │ │ ├── AnnouncementComponent.java │ │ │ │ │ └── AnnouncementModule.java │ │ │ ├── articleCollect │ │ │ │ ├── ArticleCollectAdapter.java │ │ │ │ ├── ArticleCollectFragment.java │ │ │ │ ├── ArticleCollectListener.java │ │ │ │ ├── ArticleCollectPresenter.java │ │ │ │ ├── ArticleCollectView.java │ │ │ │ └── di │ │ │ │ │ ├── ArticleCollectComponent.java │ │ │ │ │ └── ArticleCollectModule.java │ │ │ ├── articleDetail │ │ │ │ ├── activity │ │ │ │ │ ├── ArticleDetailActivity.java │ │ │ │ │ ├── ArticleDetailPresenter.java │ │ │ │ │ ├── ArticleDetailView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── ArticleDetailComponent.java │ │ │ │ │ │ └── ArticleDetailModule.java │ │ │ │ ├── adapter │ │ │ │ │ ├── ArticleDetailAdapter.java │ │ │ │ │ └── viewHolder │ │ │ │ │ │ ├── AdvertisementViewHolder.java │ │ │ │ │ │ ├── ArticleDeleteViewHolder.java │ │ │ │ │ │ ├── ArticleRewardViewHolder.java │ │ │ │ │ │ ├── AudioContentViewHolder.java │ │ │ │ │ │ ├── BottomViewHolder.java │ │ │ │ │ │ ├── ImageContentViewHolder.java │ │ │ │ │ │ ├── RecommendContentViewHolder.java │ │ │ │ │ │ ├── RecommendTitleViewHolder.java │ │ │ │ │ │ ├── ReviewEmptyViewHolder.java │ │ │ │ │ │ ├── ReviewTitleViewHolder.java │ │ │ │ │ │ ├── ReviewTopViewHolder.java │ │ │ │ │ │ ├── SubReviewDividerViewHolder.java │ │ │ │ │ │ ├── SubReviewMoreViewHolder.java │ │ │ │ │ │ ├── SubReviewViewHolder.java │ │ │ │ │ │ ├── TextContentViewHolder.java │ │ │ │ │ │ ├── TitleViewHolder.java │ │ │ │ │ │ └── VideoContentViewHolder.java │ │ │ │ ├── code │ │ │ │ │ └── CodeDialog.java │ │ │ │ ├── config │ │ │ │ │ └── ArticleConstants.java │ │ │ │ ├── di │ │ │ │ │ ├── ArticleDetailComponent.java │ │ │ │ │ └── ArticleDetailModule.java │ │ │ │ ├── dialog │ │ │ │ │ ├── ControlArticleDialog.java │ │ │ │ │ ├── ExaminationArticleDialog.java │ │ │ │ │ └── UserAdminDialog.java │ │ │ │ ├── fragment │ │ │ │ │ ├── ArticleDetailFragment.java │ │ │ │ │ ├── ArticleDetailPresenter.java │ │ │ │ │ └── ArticleDetailView.java │ │ │ │ ├── listener │ │ │ │ │ ├── ArticleDetailActivityListener.java │ │ │ │ │ ├── ArticleDetailListener.java │ │ │ │ │ └── ArticleRewardListener.java │ │ │ │ └── tip │ │ │ │ │ ├── RewardArticleDetailDialog.java │ │ │ │ │ ├── RewardArticleDialog.java │ │ │ │ │ └── TopArticleTipDialog.java │ │ │ ├── articleExam │ │ │ │ ├── ArticleExamAdapter.java │ │ │ │ ├── ArticleExamFragment.java │ │ │ │ ├── ArticleExamPresenter.java │ │ │ │ ├── ArticleExamView.java │ │ │ │ └── di │ │ │ │ │ ├── ArticleExamComponent.java │ │ │ │ │ └── ArticleExamModule.java │ │ │ ├── articleList │ │ │ │ ├── ArticleListAdapter.java │ │ │ │ ├── ArticleListFragment.java │ │ │ │ ├── ArticleListPresenter.java │ │ │ │ ├── ArticleListView.java │ │ │ │ ├── AutoRecyclerViewAdapter.java │ │ │ │ ├── di │ │ │ │ │ ├── ArticleListComponent.java │ │ │ │ │ └── ArticleListModule.java │ │ │ │ ├── dialog │ │ │ │ │ └── PageDialog.java │ │ │ │ └── listener │ │ │ │ │ └── OnArticleItemClickListener.java │ │ │ ├── articleReport │ │ │ │ ├── ArticleReportActivity.java │ │ │ │ ├── ArticleReportAdapter.java │ │ │ │ ├── ArticleReportFragment.java │ │ │ │ ├── ArticleReportPresenter.java │ │ │ │ ├── ArticleReportView.java │ │ │ │ ├── OnArticleReportItemClickListener.java │ │ │ │ └── di │ │ │ │ │ ├── ArticleReportComponent.java │ │ │ │ │ └── ArticleReportModule.java │ │ │ ├── cloud │ │ │ │ ├── CloudActivity.java │ │ │ │ ├── cloudDownload │ │ │ │ │ ├── CloudDownloadFragment.java │ │ │ │ │ ├── CloudDownloadPresenter.java │ │ │ │ │ ├── CloudDownloadView.java │ │ │ │ │ ├── adapter │ │ │ │ │ │ └── CloudDownloadAdapter.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── CloudDownloadComponent.java │ │ │ │ │ │ └── CloudDownloadModule.java │ │ │ │ ├── cloudList │ │ │ │ │ ├── CloudListFragment.java │ │ │ │ │ ├── CloudListPresenter.java │ │ │ │ │ ├── CloudListView.java │ │ │ │ │ ├── adapter │ │ │ │ │ │ └── CloudListAdapter.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── CloudListComponent.java │ │ │ │ │ │ └── CloudListModule.java │ │ │ │ ├── cloudUploading │ │ │ │ │ ├── CloudUploadingFragment.java │ │ │ │ │ ├── CloudUploadingPresenter.java │ │ │ │ │ ├── CloudUploadingView.java │ │ │ │ │ ├── adapter │ │ │ │ │ │ └── CloudUploadingAdapter.java │ │ │ │ │ ├── di │ │ │ │ │ │ ├── CloudUploadingComponent.java │ │ │ │ │ │ └── CloudUploadingModule.java │ │ │ │ │ └── dialog │ │ │ │ │ │ └── FileTypeDialog.java │ │ │ │ └── listener │ │ │ │ │ ├── CloudListListener.java │ │ │ │ │ └── CloudListener.java │ │ │ ├── cloudChoose │ │ │ │ ├── CloudChooseActivity.java │ │ │ │ ├── CloudChooseFragment.java │ │ │ │ ├── CloudChoosePresenter.java │ │ │ │ ├── CloudChooseView.java │ │ │ │ ├── adapter │ │ │ │ │ └── CloudChooseAdapter.java │ │ │ │ ├── di │ │ │ │ │ ├── CloudChooseComponent.java │ │ │ │ │ └── CloudChooseModule.java │ │ │ │ └── listener │ │ │ │ │ ├── AdapterListener.java │ │ │ │ │ └── CloudChooseChangeListener.java │ │ │ ├── coin │ │ │ │ ├── coinWithdraw │ │ │ │ │ ├── CoinWithdrawActivity.java │ │ │ │ │ ├── CoinWithdrawFragment.java │ │ │ │ │ ├── CoinWithdrawPresenter.java │ │ │ │ │ ├── CoinWithdrawView.java │ │ │ │ │ ├── WithdrawConfirmDialog.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── CoinWithdrawComponent.java │ │ │ │ │ │ └── CoinWithdrawModule.java │ │ │ │ ├── coinWithdrawLog │ │ │ │ │ ├── CoinWithdrawLogAdapter.java │ │ │ │ │ ├── CoinWithdrawLogFragment.java │ │ │ │ │ ├── CoinWithdrawLogPresenter.java │ │ │ │ │ ├── CoinWithdrawLogView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── CoinWithdrawLogComponent.java │ │ │ │ │ │ └── CoinWithdrawLogModule.java │ │ │ │ ├── myCoin │ │ │ │ │ ├── MyCoinActivity.java │ │ │ │ │ ├── MyCoinAdapter.java │ │ │ │ │ ├── MyCoinFragment.java │ │ │ │ │ ├── MyCoinPresenter.java │ │ │ │ │ ├── MyCoinView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── MyCoinComponent.java │ │ │ │ │ │ └── MyCoinModule.java │ │ │ │ └── orderCoin │ │ │ │ │ ├── OrderCoinActivity.java │ │ │ │ │ ├── OrderCoinAdapter.java │ │ │ │ │ ├── OrderCoinFragment.java │ │ │ │ │ ├── OrderCoinPresenter.java │ │ │ │ │ ├── OrderCoinView.java │ │ │ │ │ ├── di │ │ │ │ │ ├── OrderCoinComponent.java │ │ │ │ │ └── OrderCoinModule.java │ │ │ │ │ └── tip │ │ │ │ │ └── CoinOrderTipDialog.java │ │ │ ├── dataSource │ │ │ │ ├── DataSourceActivity.java │ │ │ │ ├── DataSourcePresenter.java │ │ │ │ ├── DataSourceView.java │ │ │ │ └── di │ │ │ │ │ ├── DataSourceComponent.java │ │ │ │ │ └── DataSourceModule.java │ │ │ ├── dataSourceSetting │ │ │ │ ├── DataSourceSettingActivity.java │ │ │ │ ├── DataSourceSettingFragment.java │ │ │ │ ├── DataSourceSettingPresenter.java │ │ │ │ ├── DataSourceSettingView.java │ │ │ │ └── di │ │ │ │ │ ├── DataSourceSettingComponent.java │ │ │ │ │ └── DataSourceSettingModule.java │ │ │ ├── editArticle │ │ │ │ ├── EditArticleActivity.java │ │ │ │ ├── EditArticlePresenter.java │ │ │ │ ├── EditArticleView.java │ │ │ │ ├── adapter │ │ │ │ │ └── EditCategoryChooseAdapter.java │ │ │ │ ├── di │ │ │ │ │ ├── EditArticleComponent.java │ │ │ │ │ └── EditArticleModule.java │ │ │ │ ├── dialog │ │ │ │ │ └── CategoryChooseDialog.java │ │ │ │ ├── labelChoose │ │ │ │ │ ├── LabelChooseActivity.java │ │ │ │ │ ├── LabelChoosePresenter.java │ │ │ │ │ ├── LabelChooseView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── LabelChooseComponent.java │ │ │ │ │ │ └── LabelChooseModule.java │ │ │ │ ├── listener │ │ │ │ │ ├── OnCategoryChooseListener.java │ │ │ │ │ └── OnEditCategoryResultListener.java │ │ │ │ └── parser │ │ │ │ │ ├── AudioParser.java │ │ │ │ │ ├── AudioParser2.java │ │ │ │ │ ├── BaseParser.java │ │ │ │ │ ├── ImageParser.java │ │ │ │ │ ├── ParserFactory.java │ │ │ │ │ ├── VideoParser.java │ │ │ │ │ └── VideoParser2.java │ │ │ ├── emailVerify │ │ │ │ ├── EmailVerifyActivity.java │ │ │ │ ├── EmailVerifyPresenter.java │ │ │ │ ├── EmailVerifyView.java │ │ │ │ └── di │ │ │ │ │ ├── EmailVerifyComponent.java │ │ │ │ │ └── EmailVerifyModule.java │ │ │ ├── forbidList │ │ │ │ ├── ForbidListActivity.java │ │ │ │ ├── ForbidListAdapter.java │ │ │ │ ├── ForbidListFragment.java │ │ │ │ ├── ForbidListPresenter.java │ │ │ │ ├── ForbidListView.java │ │ │ │ └── di │ │ │ │ │ ├── ForbidListComponent.java │ │ │ │ │ └── ForbidListModule.java │ │ │ ├── forbidReview │ │ │ │ ├── ForBidReviewAdapter.java │ │ │ │ ├── ForbidReviewActivity.java │ │ │ │ ├── ForbidReviewFragment.java │ │ │ │ ├── ForbidReviewPresenter.java │ │ │ │ ├── ForbidReviewView.java │ │ │ │ └── di │ │ │ │ │ ├── ForbidReviewComponent.java │ │ │ │ │ └── ForbidReviewModule.java │ │ │ ├── forget │ │ │ │ ├── ForgetActivity.java │ │ │ │ ├── ForgetPresenter.java │ │ │ │ ├── ForgetView.java │ │ │ │ └── di │ │ │ │ │ ├── ForgetComponent.java │ │ │ │ │ └── ForgetModule.java │ │ │ ├── homePage │ │ │ │ ├── AnnouncementDialog.java │ │ │ │ ├── CategoryInfoActivity.java │ │ │ │ ├── CategoryInfoFragment.java │ │ │ │ ├── HomePageFragment.java │ │ │ │ ├── HomePagePresenter.java │ │ │ │ ├── HomePageView.java │ │ │ │ ├── adapter │ │ │ │ │ ├── CategoryAdapter.java │ │ │ │ │ ├── HomeAdapter.java │ │ │ │ │ ├── SubCategoryAdapter.java │ │ │ │ │ └── TopCategoryAdapter.java │ │ │ │ ├── di │ │ │ │ │ ├── HomePageComponent.java │ │ │ │ │ └── HomePageModule.java │ │ │ │ └── listener │ │ │ │ │ ├── OnSubCategoryItemClickListener.java │ │ │ │ │ └── OnTopCategoryItemClickListener.java │ │ │ ├── homePageSearch │ │ │ │ ├── HomePageSearchActivity.java │ │ │ │ ├── HomePageSearchFragment.java │ │ │ │ ├── HomePageSearchPresenter.java │ │ │ │ ├── HomePageSearchView.java │ │ │ │ ├── adapter │ │ │ │ │ ├── HomePageSearchAdapter.java │ │ │ │ │ └── viewHolder │ │ │ │ │ │ ├── SearchAdminViewHolder.java │ │ │ │ │ │ ├── SearchArticleViewHolder.java │ │ │ │ │ │ ├── SearchEmptyViewHolder.java │ │ │ │ │ │ ├── SearchHistoryViewHolder.java │ │ │ │ │ │ ├── SearchLabelViewHolder.java │ │ │ │ │ │ └── TitleViewHolder.java │ │ │ │ ├── config │ │ │ │ │ └── HomePageSearchConstants.java │ │ │ │ ├── di │ │ │ │ │ ├── HomePageSearchComponent.java │ │ │ │ │ └── HomePageSearchModule.java │ │ │ │ └── listener │ │ │ │ │ └── OnClickLocalLabel.java │ │ │ ├── invite │ │ │ │ ├── InviteActivity.java │ │ │ │ ├── InviteAdapter.java │ │ │ │ ├── InviteDialog.java │ │ │ │ ├── InviteFragment.java │ │ │ │ ├── InvitePresenter.java │ │ │ │ ├── InviteView.java │ │ │ │ └── di │ │ │ │ │ ├── InviteComponent.java │ │ │ │ │ └── InviteModule.java │ │ │ ├── launch │ │ │ │ ├── LaunchActivity.java │ │ │ │ ├── LaunchPresenter.java │ │ │ │ ├── LaunchView.java │ │ │ │ ├── UpdateDialog.java │ │ │ │ └── di │ │ │ │ │ ├── LaunchComponent.java │ │ │ │ │ └── LaunchModule.java │ │ │ ├── login │ │ │ │ ├── LoginActivity.java │ │ │ │ ├── LoginPresenter.java │ │ │ │ ├── LoginView.java │ │ │ │ └── di │ │ │ │ │ ├── LoginComponent.java │ │ │ │ │ └── LoginModule.java │ │ │ ├── main │ │ │ │ └── MainActivity.java │ │ │ ├── mine │ │ │ │ ├── MineFragment.java │ │ │ │ ├── MinePresenter.java │ │ │ │ ├── MineView.java │ │ │ │ └── di │ │ │ │ │ ├── MineComponent.java │ │ │ │ │ └── MineModule.java │ │ │ ├── myArticle │ │ │ │ ├── MyArticleActivity.java │ │ │ │ ├── MyArticleFragment.java │ │ │ │ ├── MyArticlePresenter.java │ │ │ │ ├── MyArticleView.java │ │ │ │ ├── adapter │ │ │ │ │ └── MyArticleAdapter.java │ │ │ │ └── di │ │ │ │ │ ├── MyArticleComponent.java │ │ │ │ │ └── MyArticleModule.java │ │ │ ├── myAttention │ │ │ │ ├── MyAttentionFragment.java │ │ │ │ ├── MyAttentionPresenter.java │ │ │ │ ├── MyAttentionView.java │ │ │ │ ├── adapter │ │ │ │ │ ├── MyAttentionAdapter.java │ │ │ │ │ └── viewHolder │ │ │ │ │ │ ├── ContentViewHolder.java │ │ │ │ │ │ └── TitleViewHolder.java │ │ │ │ ├── di │ │ │ │ │ ├── MyAttentionComponent.java │ │ │ │ │ └── MyAttentionModule.java │ │ │ │ └── listener │ │ │ │ │ └── MyAttentionClickListener.java │ │ │ ├── myFans │ │ │ │ ├── MyFansFragment.java │ │ │ │ ├── MyFansPresenter.java │ │ │ │ ├── MyFansView.java │ │ │ │ ├── adapter │ │ │ │ │ ├── MyFansAdapter.java │ │ │ │ │ └── viewHolder │ │ │ │ │ │ ├── ContentViewHolder.java │ │ │ │ │ │ └── TitleViewHolder.java │ │ │ │ ├── di │ │ │ │ │ ├── MyFansComponent.java │ │ │ │ │ └── MyFansModule.java │ │ │ │ └── listener │ │ │ │ │ └── MyFansAttentionClickListener.java │ │ │ ├── myReview │ │ │ │ ├── MyReviewFragment.java │ │ │ │ ├── MyReviewListener.java │ │ │ │ ├── MyReviewPresenter.java │ │ │ │ ├── MyReviewView.java │ │ │ │ ├── adapter │ │ │ │ │ └── MyReviewAdapter.java │ │ │ │ └── di │ │ │ │ │ ├── MyReviewComponent.java │ │ │ │ │ └── MyReviewModule.java │ │ │ ├── notification │ │ │ │ ├── NotificationActivity.java │ │ │ │ ├── NotificationAdapter.java │ │ │ │ ├── NotificationFragment.java │ │ │ │ ├── NotificationPresenter.java │ │ │ │ ├── NotificationView.java │ │ │ │ ├── di │ │ │ │ │ ├── NotificationComponent.java │ │ │ │ │ └── NotificationModule.java │ │ │ │ └── listener │ │ │ │ │ └── OnClickNotificationRead.java │ │ │ ├── notificationSetting │ │ │ │ ├── NotificationSettingFragment.java │ │ │ │ ├── NotificationSettingPresenter.java │ │ │ │ ├── NotificationSettingView.java │ │ │ │ └── di │ │ │ │ │ ├── NotificationSettingComponent.java │ │ │ │ │ └── NotificationSettingModule.java │ │ │ ├── person │ │ │ │ ├── PersonInfoActivity.java │ │ │ │ ├── PersonInfoFragment.java │ │ │ │ ├── personInfoChange │ │ │ │ │ ├── PersonInfoChangeFragment.java │ │ │ │ │ ├── PersonInfoChangePresenter.java │ │ │ │ │ ├── PersonInfoChangeView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── PersonInfoChangeComponent.java │ │ │ │ │ │ └── PersonInfoChangeModule.java │ │ │ │ └── personResumeChange │ │ │ │ │ ├── PersonResumeChangeFragment.java │ │ │ │ │ ├── PersonResumeChangePresenter.java │ │ │ │ │ ├── PersonResumeChangeView.java │ │ │ │ │ └── di │ │ │ │ │ ├── PersonResumeChangeComponent.java │ │ │ │ │ └── PersonResumeChangeModule.java │ │ │ ├── personalHomePage │ │ │ │ ├── PersonalHomePageActivity.java │ │ │ │ ├── PersonalHomePageFragment.java │ │ │ │ ├── PersonalHomePagePresenter.java │ │ │ │ ├── PersonalHomePageView.java │ │ │ │ ├── di │ │ │ │ │ ├── PersonalHomePageComponent.java │ │ │ │ │ └── PersonalHomePageModule.java │ │ │ │ └── test │ │ │ │ │ ├── Test1Fragment.java │ │ │ │ │ └── TestAdapter.java │ │ │ ├── rank │ │ │ │ ├── RankOrderTipDialog.java │ │ │ │ ├── RankOrderTipDialogFragment.java │ │ │ │ ├── myRank │ │ │ │ │ ├── MyRankAdapter.java │ │ │ │ │ ├── MyRankFragment.java │ │ │ │ │ ├── MyRankPresenter.java │ │ │ │ │ ├── MyRankView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── MyRankComponent.java │ │ │ │ │ │ └── MyRankModule.java │ │ │ │ ├── orderRank │ │ │ │ │ ├── OrderRankActivity.java │ │ │ │ │ ├── OrderRankAdapter.java │ │ │ │ │ ├── OrderRankFragment.java │ │ │ │ │ ├── OrderRankPresenter.java │ │ │ │ │ ├── OrderRankView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── OrderRankComponent.java │ │ │ │ │ │ └── OrderRankModule.java │ │ │ │ └── tip │ │ │ │ │ ├── RankTipActivity.java │ │ │ │ │ └── RankTipDialog.java │ │ │ ├── register │ │ │ │ ├── RegisterActivity.java │ │ │ │ ├── RegisterPresenter.java │ │ │ │ ├── RegisterView.java │ │ │ │ └── di │ │ │ │ │ ├── RegisterComponent.java │ │ │ │ │ └── RegisterModule.java │ │ │ ├── reportDetail │ │ │ │ ├── ReportDetailActivity.java │ │ │ │ ├── ReportDetailFragment.java │ │ │ │ ├── ReportDetailPresenter.java │ │ │ │ ├── ReportDetailView.java │ │ │ │ └── di │ │ │ │ │ ├── ReportDetailComponent.java │ │ │ │ │ └── ReportDetailModule.java │ │ │ ├── review │ │ │ │ ├── ReviewActivity.java │ │ │ │ ├── ReviewPresenter.java │ │ │ │ ├── ReviewView.java │ │ │ │ └── di │ │ │ │ │ ├── ReviewComponent.java │ │ │ │ │ └── ReviewModule.java │ │ │ ├── reviewDetail │ │ │ │ ├── activity │ │ │ │ │ ├── ReviewDetailActivity.java │ │ │ │ │ ├── ReviewDetailPresenter.java │ │ │ │ │ ├── ReviewDetailView.java │ │ │ │ │ └── di │ │ │ │ │ │ ├── ReviewDetailComponent.java │ │ │ │ │ │ └── ReviewDetailModule.java │ │ │ │ ├── adapter │ │ │ │ │ ├── ReviewDetailAdapter.java │ │ │ │ │ └── viewHolder │ │ │ │ │ │ ├── ReviewDetailSubViewHolder.java │ │ │ │ │ │ └── ReviewDetailTitleViewHolder.java │ │ │ │ ├── di │ │ │ │ │ ├── ReviewDetailComponent.java │ │ │ │ │ └── ReviewDetailModule.java │ │ │ │ ├── fragment │ │ │ │ │ ├── ReviewDetailFragment.java │ │ │ │ │ ├── ReviewDetailPresenter.java │ │ │ │ │ └── ReviewDetailView.java │ │ │ │ └── listener │ │ │ │ │ └── ReviewDetailListener.java │ │ │ ├── rewardList │ │ │ │ ├── RewardListActivity.java │ │ │ │ ├── RewardListAdapter.java │ │ │ │ ├── RewardListFragment.java │ │ │ │ ├── RewardListPresenter.java │ │ │ │ ├── RewardListView.java │ │ │ │ └── di │ │ │ │ │ ├── RewardListComponent.java │ │ │ │ │ └── RewardListModule.java │ │ │ ├── setting │ │ │ │ ├── SettingActivity.java │ │ │ │ ├── SettingFragment.java │ │ │ │ └── resetPwd │ │ │ │ │ ├── ResetPwdFragment.java │ │ │ │ │ ├── ResetPwdPresenter.java │ │ │ │ │ ├── ResetPwdView.java │ │ │ │ │ └── di │ │ │ │ │ ├── ResetPwdComponent.java │ │ │ │ │ └── ResetPwdModule.java │ │ │ ├── topArticleList │ │ │ │ ├── TopArticleListActivity.java │ │ │ │ ├── TopArticleListAdapter.java │ │ │ │ ├── TopArticleListFragment.java │ │ │ │ ├── TopArticleListPresenter.java │ │ │ │ ├── TopArticleListView.java │ │ │ │ └── di │ │ │ │ │ ├── TopArticleListComponent.java │ │ │ │ │ └── TopArticleListModule.java │ │ │ ├── video │ │ │ │ ├── VideoActivity.java │ │ │ │ └── VideoFragment.java │ │ │ └── web │ │ │ │ ├── RouterMap.java │ │ │ │ ├── TyJavaScriptInterface.java │ │ │ │ ├── TyWebViewActivity.java │ │ │ │ ├── TyWebViewFragment.java │ │ │ │ ├── TyWebViewListener.java │ │ │ │ └── TyWebViewToolbarFragment.java │ │ │ ├── glide │ │ │ └── TyGlide.java │ │ │ ├── local │ │ │ ├── db │ │ │ │ └── TyDB.java │ │ │ └── sp │ │ │ │ ├── NetCache.java │ │ │ │ ├── UserCache.java │ │ │ │ └── WebViewCache.java │ │ │ ├── login │ │ │ ├── CheckLogin.java │ │ │ └── CheckLoginAspectJ.java │ │ │ ├── net │ │ │ ├── ApiStatus.java │ │ │ ├── OkHttpHelper.java │ │ │ ├── RetrofitFactory.java │ │ │ ├── RetrofitHelper.java │ │ │ ├── api │ │ │ │ └── ApiService.java │ │ │ ├── commonHeaderHandler │ │ │ │ ├── CommonParamsHandlerFactory.java │ │ │ │ └── handler │ │ │ │ │ ├── BaseHandler.java │ │ │ │ │ └── TyCommonHeadHandler.java │ │ │ ├── config │ │ │ │ └── NetConfig.java │ │ │ ├── cookie │ │ │ │ ├── CookieJarImpl.java │ │ │ │ ├── CookieStore.java │ │ │ │ ├── PersistentCookieStore.java │ │ │ │ └── SerializableCookie.java │ │ │ ├── exception │ │ │ │ └── ServerException.java │ │ │ ├── interceptor │ │ │ │ ├── CommonParamsInterceptor.java │ │ │ │ └── LogInterceptor.java │ │ │ └── rx │ │ │ │ ├── RxBaseSubscriber.java │ │ │ │ ├── RxObservableSubscriber.java │ │ │ │ ├── RxParser.java │ │ │ │ └── RxSingleSubscriber.java │ │ │ ├── utils │ │ │ ├── CoderUtils.java │ │ │ ├── DBManager │ │ │ │ ├── DBLocalDataSourceManager.java │ │ │ │ └── DBLocalSearchManager.java │ │ │ ├── DataSourceChangeUtils.java │ │ │ ├── MyLinkedMovementMethod.java │ │ │ ├── ScreenAdapterUtils.java │ │ │ ├── StatusBarUtils.java │ │ │ ├── TyFileUtils.java │ │ │ ├── TyUtils.java │ │ │ ├── TyWebViewCookie.java │ │ │ ├── VerticalPageTransformer.java │ │ │ ├── download │ │ │ │ ├── BitmapUtil.java │ │ │ │ ├── DigestUtils.java │ │ │ │ ├── DownloadHelper.java │ │ │ │ ├── IOUtil.java │ │ │ │ └── ProgressResponseBody.java │ │ │ └── file │ │ │ │ └── AppFileProvider.java │ │ │ └── widget │ │ │ ├── BadgeView.java │ │ │ ├── CustomRoundAngleImageView.java │ │ │ ├── IconBorderTextSpan.java │ │ │ ├── IconTextSpan.java │ │ │ ├── MainNavTabItem.java │ │ │ ├── ProgressView.java │ │ │ ├── RoundRectView.java │ │ │ ├── SettingItemView.java │ │ │ └── TagFlowLayout.java │ ├── jerryAutoRecyclerView │ │ └── com.jerry.autorecyclerview │ │ │ ├── AutoRecyclerView.java │ │ │ └── ScrollSpeedLinearLayoutManager.java │ ├── jerryDownload │ │ └── com.abc.download │ │ │ └── DownloadUtils.java │ ├── jerryEditor │ │ ├── jerrEditor │ │ │ ├── config │ │ │ │ ├── JerryEditorConstant.java │ │ │ │ └── MediaType.java │ │ │ ├── getter │ │ │ │ ├── JerryImageGetter.java │ │ │ │ └── JerryUrlDrawable.java │ │ │ ├── jerry_media │ │ │ │ ├── base │ │ │ │ │ ├── JerryMediaSpan.java │ │ │ │ │ ├── JerryMediaStyle.java │ │ │ │ │ └── MediaInfo.java │ │ │ │ ├── model │ │ │ │ │ ├── AudioInfo.java │ │ │ │ │ ├── ImgInfo.java │ │ │ │ │ ├── MediaInfoWrapper.java │ │ │ │ │ └── VideoInfo.java │ │ │ │ ├── span │ │ │ │ │ ├── JerryAudioSpan.java │ │ │ │ │ ├── JerryImgSpan.java │ │ │ │ │ └── JerryVideoSpan.java │ │ │ │ └── style │ │ │ │ │ ├── JerryAudioStyle.java │ │ │ │ │ ├── JerryImgStyle.java │ │ │ │ │ └── JerryVideoStyle.java │ │ │ ├── parser │ │ │ │ ├── Html.java │ │ │ │ └── XmlUtils.java │ │ │ └── processor │ │ │ │ └── OutputProcessor.java │ │ └── model │ │ │ └── VideoModel.java │ ├── jerryImageWatcher │ │ └── com │ │ │ └── jerry │ │ │ └── image_watcher │ │ │ ├── ImageWatcherActivity.java │ │ │ ├── ImageWatcherFragment.java │ │ │ ├── ImageWatcherPagerAdapter.java │ │ │ ├── model │ │ │ └── WatchImageVO.java │ │ │ └── utils │ │ │ ├── EncryptionUtils.java │ │ │ ├── ImageStatusHelper.java │ │ │ └── ImageWatcherUtils.java │ ├── jerryMedia │ │ └── com │ │ │ └── jerry │ │ │ └── media │ │ │ ├── controller │ │ │ ├── IJerryAudioController.java │ │ │ └── JerryAudioController.java │ │ │ ├── listener │ │ │ └── JerryStatusListener.java │ │ │ ├── model │ │ │ └── MediaInfo.java │ │ │ ├── utils │ │ │ └── JerryAudioHelper.java │ │ │ └── widget │ │ │ ├── DefaultTimeBar.java │ │ │ └── TimeBar.java │ ├── jerryWebSocket │ │ └── com.jerry.websocket │ │ │ ├── JWebSocket.java │ │ │ ├── JWebSocketDataListener.java │ │ │ ├── MyWebSocketManager.java │ │ │ ├── WebSocketConstant.java │ │ │ ├── listener │ │ │ └── JWebSocketDataListener.java │ │ │ ├── model │ │ │ ├── JWebSocketModel.java │ │ │ ├── WsRemindModel.java │ │ │ ├── WsTokenModel.java │ │ │ └── WsUnreadModel.java │ │ │ └── parser │ │ │ ├── BaseParser.java │ │ │ ├── ParserFactory.java │ │ │ └── UnreadParser.java │ ├── model │ │ ├── cache │ │ │ ├── Net.java │ │ │ └── User.java │ │ ├── common │ │ │ └── RespData.java │ │ ├── db │ │ │ ├── LocalHistoryModel.java │ │ │ └── LocalLabel.java │ │ ├── eventbus │ │ │ ├── ArticleCollectEvent.java │ │ │ ├── AttentionEvent.java │ │ │ ├── CategorySelectChangeEvent.java │ │ │ ├── DeleteArticleEvent.java │ │ │ ├── DetailReviewAddSyncEvent.java │ │ │ ├── DetailReviewDelSyncEvent.java │ │ │ ├── DownloadAddEvent.java │ │ │ ├── EditLabelChangeEvent.java │ │ │ ├── ExamOverEvent.java │ │ │ ├── FansAttentionEvent.java │ │ │ ├── HideArticleEvent.java │ │ │ ├── LoginStateChangeEvent.java │ │ │ ├── LoginSucEvent.java │ │ │ ├── MyCoinRefreshEvent.java │ │ │ ├── MyReviewChangeEvent.java │ │ │ ├── NotificationUpdateEvent.java │ │ │ ├── ReviewAddEvent.java │ │ │ ├── RewardArticleEvent.java │ │ │ ├── SubCategoryChangeEvent.java │ │ │ ├── TopArticlePositionEvent.java │ │ │ ├── UpdateArticleInfoEvent.java │ │ │ ├── UploadAddTaskEvent.java │ │ │ ├── UserInfoUpdateEvent.java │ │ │ ├── VerifyEmailEvent.java │ │ │ └── VideoCoverChangeEvent.java │ │ ├── exception │ │ │ └── ParserUrlException.java │ │ ├── request │ │ │ ├── ArticleCaptchaReq.java │ │ │ ├── ArticleCollectReq.java │ │ │ ├── ArticleReportReq.java │ │ │ ├── ArticleReviewReq.java │ │ │ ├── AttentionReq.java │ │ │ ├── BannerIdReq.java │ │ │ ├── ChangeFilenameReq.java │ │ │ ├── ChangePwdReq.java │ │ │ ├── CloudDeleteReq.java │ │ │ ├── ConfigurationReq.java │ │ │ ├── DeleteArticleReq.java │ │ │ ├── DeleteCommentReq.java │ │ │ ├── EmailVerifyReq.java │ │ │ ├── ForbidCommentReq.java │ │ │ ├── ForbidReviewReq.java │ │ │ ├── HideArticleReq.java │ │ │ ├── LoginReq.java │ │ │ ├── MergeFileReq.java │ │ │ ├── NotificationConfigReq.java │ │ │ ├── NotificationReadReq.java │ │ │ ├── PersonInfoUpdateReq.java │ │ │ ├── PublishArticleReq.java │ │ │ ├── RegisterReq.java │ │ │ ├── ResetPwdReq.java │ │ │ ├── ReviewReq.java │ │ │ ├── RewardArticleReq.java │ │ │ ├── TopArticleReq.java │ │ │ ├── VideoCoverReq.java │ │ │ └── WithdrawReq.java │ │ ├── response │ │ │ ├── AdResp.java │ │ │ ├── ConfigurationResp.java │ │ │ ├── InviteResp.java │ │ │ ├── LabelResp.java │ │ │ ├── MyAttentionListResp.java │ │ │ ├── MyCommentListResp.java │ │ │ ├── MyFansListResp.java │ │ │ ├── TopArticleResp.java │ │ │ ├── UpdateResp.java │ │ │ ├── UserInfoResp.java │ │ │ ├── article │ │ │ │ ├── ArticleCollectResp.java │ │ │ │ ├── ArticleDetailResp.java │ │ │ │ ├── ArticleDownloadVideoResp.java │ │ │ │ ├── ArticleExamResp.java │ │ │ │ ├── ArticleReviewResp.java │ │ │ │ ├── MyArticleResp.java │ │ │ │ ├── PublishArticleResp.java │ │ │ │ ├── RecommendArticleResp.java │ │ │ │ ├── ReviewArticleListResp.java │ │ │ │ ├── ReviewResp.java │ │ │ │ ├── RewardArticleResp.java │ │ │ │ ├── RewardListResp.java │ │ │ │ └── UpdateArticleResp.java │ │ │ ├── cloud │ │ │ │ ├── FileInfoResp.java │ │ │ │ └── FileListResp.java │ │ │ ├── coin │ │ │ │ ├── CoinOrderResp.java │ │ │ │ ├── MyCoinDetailResp.java │ │ │ │ ├── MyCoinResp.java │ │ │ │ ├── WithdrawInfoResp.java │ │ │ │ └── WithdrawLogResp.java │ │ │ ├── common │ │ │ │ ├── EmailCodeResp.java │ │ │ │ └── TitleCountVO.java │ │ │ ├── forbid │ │ │ │ ├── ForbidReviewBanned.java │ │ │ │ ├── ForbidReviewBannedSubBean.java │ │ │ │ ├── ForbidReviewBean.java │ │ │ │ ├── ForbidReviewResp.java │ │ │ │ └── ForbidReviewSubBean.java │ │ │ ├── forbidlist │ │ │ │ ├── ForbidCategoryListBean.java │ │ │ │ ├── ForbidCommentResp.java │ │ │ │ └── ForbidSubCategoryListBean.java │ │ │ ├── home │ │ │ │ ├── ArticleInfo.java │ │ │ │ ├── ArticleResp.java │ │ │ │ ├── CategoryResp.java │ │ │ │ ├── PageInfo.java │ │ │ │ ├── SubCategory.java │ │ │ │ └── TopCategory.java │ │ │ ├── login │ │ │ │ ├── LoginResp.java │ │ │ │ ├── RegisterResp.java │ │ │ │ └── RespCaptcha.java │ │ │ ├── notification │ │ │ │ ├── NotificationConfigResp.java │ │ │ │ ├── NotificationReadedResp.java │ │ │ │ ├── NotificationResp.java │ │ │ │ ├── NotifyInfoResp.java │ │ │ │ └── NotifyUnReadResp.java │ │ │ ├── permission │ │ │ │ └── PermissionResp.java │ │ │ ├── personal │ │ │ │ ├── PersonalAccountInfo.java │ │ │ │ ├── PersonalAsset.java │ │ │ │ └── PersonalPageResp.java │ │ │ ├── rank │ │ │ │ ├── JudgementResp.java │ │ │ │ ├── MyRankResp.java │ │ │ │ ├── RankDetailResp.java │ │ │ │ ├── RankExchangePackageResp.java │ │ │ │ └── RankOrderResp.java │ │ │ ├── report │ │ │ │ ├── ArticleReportResp.java │ │ │ │ └── ReportDetailResp.java │ │ │ ├── search │ │ │ │ ├── SearchArticleInfoBean.java │ │ │ │ ├── SearchResultResp.java │ │ │ │ └── SearchUsersInfoBean.java │ │ │ └── upload │ │ │ │ ├── FileInfoCheckResp.java │ │ │ │ ├── FileMergeResp.java │ │ │ │ └── FileUploadResp.java │ │ ├── vo │ │ │ ├── MenuItemVO.java │ │ │ ├── RewardListVO.java │ │ │ ├── SortVO.java │ │ │ ├── article │ │ │ │ ├── ArticleAudioVO.java │ │ │ │ ├── ArticleDetailVO.java │ │ │ │ ├── ArticleDividerVO.java │ │ │ │ ├── ArticleImageVO.java │ │ │ │ ├── ArticleMoreVO.java │ │ │ │ ├── ArticleTextVO.java │ │ │ │ ├── ArticleVideoVO.java │ │ │ │ ├── MyArticleTitleVO.java │ │ │ │ └── ReviewTitleVO.java │ │ │ ├── cloud │ │ │ │ ├── CloudDownloadVO.java │ │ │ │ └── CloudFileVO.java │ │ │ └── search │ │ │ │ └── HomePageSearchVO.java │ │ └── webview │ │ │ ├── OpenNewLink.java │ │ │ └── Title.java │ ├── res │ │ ├── color │ │ │ └── selector_reward_text_color.xml │ │ ├── drawable-hdpi │ │ │ ├── selector_audio.xml │ │ │ ├── selector_banner_point.xml │ │ │ ├── selector_black_4dp.xml │ │ │ ├── selector_block.xml │ │ │ ├── selector_blue_check.xml │ │ │ ├── selector_bold.xml │ │ │ ├── selector_btn_blue_bg.xml │ │ │ ├── selector_btn_radio_bg.xml │ │ │ ├── selector_btn_round_blue_bg.xml │ │ │ ├── selector_cloud_choose_cb_bg.xml │ │ │ ├── selector_coin_bg.xml │ │ │ ├── selector_collection.xml │ │ │ ├── selector_edittext_bg.xml │ │ │ ├── selector_exchange_pacakge_price_bg.xml │ │ │ ├── selector_exchange_package_border.xml │ │ │ ├── selector_h1.xml │ │ │ ├── selector_h2.xml │ │ │ ├── selector_h3.xml │ │ │ ├── selector_h4.xml │ │ │ ├── selector_img.xml │ │ │ ├── selector_italic.xml │ │ │ ├── selector_rank_bg.xml │ │ │ ├── selector_rect_white_bg.xml │ │ │ ├── selector_round_corner_white_bg.xml │ │ │ ├── selector_strike_through.xml │ │ │ ├── selector_typeface.xml │ │ │ ├── selector_under_line.xml │ │ │ └── selector_video.xml │ │ ├── drawable-xhdpi │ │ │ ├── shape_black_4dp.xml │ │ │ ├── shape_black_alpha_round.xml │ │ │ ├── shape_black_alpha_top_left_round.xml │ │ │ ├── shape_black_bottom_10dp_rect.xml │ │ │ ├── shape_black_bottom_5dp_rect.xml │ │ │ ├── shape_black_top_10dp_rect.xml │ │ │ ├── shape_black_top_5dp_rect.xml │ │ │ ├── shape_blue_4dp_border.xml │ │ │ ├── shape_blue_border_1dp.xml │ │ │ ├── shape_blue_rect.xml │ │ │ ├── shape_btn_lock_bg.xml │ │ │ ├── shape_btn_unlock_press_bg.xml │ │ │ ├── shape_btn_unlock_unpress_bg.xml │ │ │ ├── shape_cursor_bg.xml │ │ │ ├── shape_dark_gray_fill_4dp.xml │ │ │ ├── shape_dark_gray_rect_border_3_5dp.xml │ │ │ ├── shape_dark_gray_rect_border_4dp.xml │ │ │ ├── shape_edittext_with_gray_border_bg.xml │ │ │ ├── shape_gold_gradual_rect_round_10dp.xml │ │ │ ├── shape_gold_rect_round_10dp.xml │ │ │ ├── shape_gray_2dp_fill.xml │ │ │ ├── shape_gray_border.xml │ │ │ ├── shape_gray_fill.xml │ │ │ ├── shape_light_black_10dp_rect.xml │ │ │ ├── shape_light_black_4dp.xml │ │ │ ├── shape_light_blue_rect_border_4dp.xml │ │ │ ├── shape_light_gray_4dp_border.xml │ │ │ ├── shape_light_gray_fill_4dp.xml │ │ │ ├── shape_light_gray_fill_round_4dp.xml │ │ │ ├── shape_light_gray_rect_bottom_round_4dp.xml │ │ │ ├── shape_orange_red_gradual_rect_round_10dp.xml │ │ │ ├── shape_orange_red_rect_border_4dp.xml │ │ │ ├── shape_orange_red_rect_bottom_round_4dp.xml │ │ │ ├── shape_orange_red_rect_round_10dp.xml │ │ │ ├── shape_placeholder_4dp.xml │ │ │ ├── shape_placeholder_gray_fill_round_4dp.xml │ │ │ ├── shape_rect_gradual_gold.xml │ │ │ ├── shape_rect_gradual_red.xml │ │ │ ├── shape_red_round.xml │ │ │ ├── shape_rich_round_primary_4dp.xml │ │ │ ├── shape_round_announcement_drak_blue.xml │ │ │ ├── shape_round_announcement_light_blue.xml │ │ │ ├── shape_round_blue.xml │ │ │ ├── shape_round_gradual_blue_bg.xml │ │ │ ├── shape_round_gray.xml │ │ │ ├── shape_round_label_blue.xml │ │ │ ├── shape_round_line_blue.xml │ │ │ ├── shape_round_top_10dp.xml │ │ │ ├── shape_select_border.xml │ │ │ ├── shape_top_round_white.xml │ │ │ ├── shape_tran_blue_to_white.xml │ │ │ ├── shape_transparent_to_blue.xml │ │ │ ├── shape_transparent_to_white.xml │ │ │ ├── shape_transparent_to_white_20dp_round_top.xml │ │ │ ├── shape_white_10dp_bottom_round_rect.xml │ │ │ ├── shape_white_10dp_round_rect.xml │ │ │ ├── shape_white_20dp_round_top.xml │ │ │ ├── shape_white_circle.xml │ │ │ └── shape_white_round_line.xml │ │ ├── drawable │ │ │ ├── dialog_alert_left_btn.xml │ │ │ ├── dialog_alert_right_btn.xml │ │ │ ├── edittext_bg.xml │ │ │ ├── edittext_round_blue_10dp_bg.xml │ │ │ ├── et_round_bg.xml │ │ │ ├── ic_about.xml │ │ │ ├── ic_achievement.png │ │ │ ├── ic_ad.png │ │ │ ├── ic_add.png │ │ │ ├── ic_add_blue.xml │ │ │ ├── ic_add_white.xml │ │ │ ├── ic_admin.xml │ │ │ ├── ic_arrow_down_gray.xml │ │ │ ├── ic_arrow_down_grey.png │ │ │ ├── ic_arrow_right_alpha_white.xml │ │ │ ├── ic_arrow_right_black.xml │ │ │ ├── ic_arrow_right_light_gray.xml │ │ │ ├── ic_arrow_right_white.xml │ │ │ ├── ic_arrow_up_grey.png │ │ │ ├── ic_audio_pause.png │ │ │ ├── ic_audio_play.png │ │ │ ├── ic_back.xml │ │ │ ├── ic_browser.xml │ │ │ ├── ic_cancel.xml │ │ │ ├── ic_cancel_grey.png │ │ │ ├── ic_category.xml │ │ │ ├── ic_cb_select_green.png │ │ │ ├── ic_cb_selected.png │ │ │ ├── ic_cb_unselect_gray.png │ │ │ ├── ic_cb_unselected.png │ │ │ ├── ic_check_blue.xml │ │ │ ├── ic_check_white.xml │ │ │ ├── ic_checkbox_style.xml │ │ │ ├── ic_close_black.xml │ │ │ ├── ic_close_blue.xml │ │ │ ├── ic_close_fill_blue.png │ │ │ ├── ic_close_fill_dark_gray.xml │ │ │ ├── ic_close_fill_gray.xml │ │ │ ├── ic_cloud.xml │ │ │ ├── ic_cloud_choose_audio.xml │ │ │ ├── ic_cloud_choose_img.xml │ │ │ ├── ic_cloud_choose_other.xml │ │ │ ├── ic_cloud_choose_video.xml │ │ │ ├── ic_cloud_continue.xml │ │ │ ├── ic_cloud_download.xml │ │ │ ├── ic_cloud_menu_delete.xml │ │ │ ├── ic_cloud_menu_download.xml │ │ │ ├── ic_cloud_menu_rename.xml │ │ │ ├── ic_cloud_pause.xml │ │ │ ├── ic_collect_tag.xml │ │ │ ├── ic_comment.xml │ │ │ ├── ic_copy_link.xml │ │ │ ├── ic_crop.xml │ │ │ ├── ic_crop_left_bottom_round.xml │ │ │ ├── ic_crop_left_top_round.xml │ │ │ ├── ic_crop_right_bottom_round.xml │ │ │ ├── ic_crop_right_top_round.xml │ │ │ ├── ic_data_source.xml │ │ │ ├── ic_delete_article.xml │ │ │ ├── ic_delete_notify.png │ │ │ ├── ic_dot_white.xml │ │ │ ├── ic_dot_white_alpha.xml │ │ │ ├── ic_down_triangle_black.xml │ │ │ ├── ic_down_triangle_blue.xml │ │ │ ├── ic_down_triangle_gray.xml │ │ │ ├── ic_download.xml │ │ │ ├── ic_edit_article.xml │ │ │ ├── ic_edit_info.xml │ │ │ ├── ic_edit_pencil.xml │ │ │ ├── ic_empty_article.png │ │ │ ├── ic_empty_my_article.png │ │ │ ├── ic_empty_my_review.png │ │ │ ├── ic_exam_pass_tip.png │ │ │ ├── ic_examination.xml │ │ │ ├── ic_fans.xml │ │ │ ├── ic_file_audio.xml │ │ │ ├── ic_file_excel.xml │ │ │ ├── ic_file_img.xml │ │ │ ├── ic_file_other.xml │ │ │ ├── ic_file_ppt.xml │ │ │ ├── ic_file_video.xml │ │ │ ├── ic_file_word.xml │ │ │ ├── ic_file_zip.xml │ │ │ ├── ic_fill_arrow.xml │ │ │ ├── ic_focus.xml │ │ │ ├── ic_forbid_comment.xml │ │ │ ├── ic_garbage.xml │ │ │ ├── ic_go_to.png │ │ │ ├── ic_hide.png │ │ │ ├── ic_history.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_home_unsel.xml │ │ │ ├── ic_horn.png │ │ │ ├── ic_img.xml │ │ │ ├── ic_invite.xml │ │ │ ├── ic_jedit_select_audio.xml │ │ │ ├── ic_jedit_select_block.xml │ │ │ ├── ic_jedit_select_bold.xml │ │ │ ├── ic_jedit_select_h1.xml │ │ │ ├── ic_jedit_select_h2.xml │ │ │ ├── ic_jedit_select_h3.xml │ │ │ ├── ic_jedit_select_h4.xml │ │ │ ├── ic_jedit_select_img.xml │ │ │ ├── ic_jedit_select_italic.xml │ │ │ ├── ic_jedit_select_strike_through.xml │ │ │ ├── ic_jedit_select_typeface.xml │ │ │ ├── ic_jedit_select_under_line.xml │ │ │ ├── ic_jedit_select_video.xml │ │ │ ├── ic_jedit_unselect_audio.xml │ │ │ ├── ic_jedit_unselect_block.xml │ │ │ ├── ic_jedit_unselect_bold.xml │ │ │ ├── ic_jedit_unselect_h1.xml │ │ │ ├── ic_jedit_unselect_h2.xml │ │ │ ├── ic_jedit_unselect_h3.xml │ │ │ ├── ic_jedit_unselect_h4.xml │ │ │ ├── ic_jedit_unselect_img.xml │ │ │ ├── ic_jedit_unselect_italic.xml │ │ │ ├── ic_jedit_unselect_strike_through.xml │ │ │ ├── ic_jedit_unselect_typeface.xml │ │ │ ├── ic_jedit_unselect_under_line.xml │ │ │ ├── ic_jedit_unselect_video.xml │ │ │ ├── ic_label.xml │ │ │ ├── ic_link.xml │ │ │ ├── ic_lv_1.png │ │ │ ├── ic_lv_10.png │ │ │ ├── ic_lv_11.png │ │ │ ├── ic_lv_12.png │ │ │ ├── ic_lv_13.png │ │ │ ├── ic_lv_14.png │ │ │ ├── ic_lv_15.png │ │ │ ├── ic_lv_16.png │ │ │ ├── ic_lv_17.png │ │ │ ├── ic_lv_18.png │ │ │ ├── ic_lv_2.png │ │ │ ├── ic_lv_3.png │ │ │ ├── ic_lv_4.png │ │ │ ├── ic_lv_5.png │ │ │ ├── ic_lv_6.png │ │ │ ├── ic_lv_7.png │ │ │ ├── ic_lv_8.png │ │ │ ├── ic_lv_9.png │ │ │ ├── ic_menu_black.xml │ │ │ ├── ic_menu_light_gray.xml │ │ │ ├── ic_menu_ligth_gray.xml │ │ │ ├── ic_mine.xml │ │ │ ├── ic_mine_unsel.xml │ │ │ ├── ic_more.png │ │ │ ├── ic_net_block.png │ │ │ ├── ic_no_exist_article.png │ │ │ ├── ic_not_delete_article.png │ │ │ ├── ic_not_edit.png │ │ │ ├── ic_notification.xml │ │ │ ├── ic_one_inch_alpha.png │ │ │ ├── ic_pencil_light_gray.xml │ │ │ ├── ic_play_png.png │ │ │ ├── ic_promotion_selected.xml │ │ │ ├── ic_promotion_unselected.xml │ │ │ ├── ic_pwd_hide.xml │ │ │ ├── ic_pwd_show.xml │ │ │ ├── ic_rank_tip_top_close.png │ │ │ ├── ic_reading.xml │ │ │ ├── ic_refresh.xml │ │ │ ├── ic_refuse.xml │ │ │ ├── ic_report.xml │ │ │ ├── ic_report_notify.png │ │ │ ├── ic_review_img.xml │ │ │ ├── ic_reward.png │ │ │ ├── ic_search_black.xml │ │ │ ├── ic_search_blank.png │ │ │ ├── ic_search_light_blue.xml │ │ │ ├── ic_search_main_blue.xml │ │ │ ├── ic_setting.xml │ │ │ ├── ic_show.png │ │ │ ├── ic_star_fill.xml │ │ │ ├── ic_star_hollow.xml │ │ │ ├── ic_top_article.xml │ │ │ ├── ic_triangle_right_fill_white.xml │ │ │ ├── ic_triangle_up_black.png │ │ │ ├── ic_triangle_up_fill_gray_white.xml │ │ │ ├── ic_upload_file.png │ │ │ ├── ic_verify_notify.png │ │ │ ├── ic_wait_examination.xml │ │ │ ├── ic_webview_refresh.xml │ │ │ ├── img_advertisement.png │ │ │ ├── img_audio.png │ │ │ ├── img_banner_blue_bg.png │ │ │ ├── img_banner_green_bg.png │ │ │ ├── img_banner_orange_bg.png │ │ │ ├── img_coin_bg.png │ │ │ ├── img_data_cource.png │ │ │ ├── img_invite_banner.png │ │ │ ├── img_launch.jpg │ │ │ ├── img_obtain_coin_oppo.png │ │ │ ├── img_rank_bg.png │ │ │ ├── img_rank_tip_bg.png │ │ │ ├── img_rank_tip_top_bg.png │ │ │ ├── img_rank_top_bg.png │ │ │ ├── img_tip.png │ │ │ ├── img_update_title.png │ │ │ ├── iv_delete_article.xml │ │ │ ├── layer_list_check.xml │ │ │ ├── layer_list_edit.xml │ │ │ ├── layer_list_spinner.xml │ │ │ ├── logo_local_debug.png │ │ │ ├── mine_bg.png │ │ │ ├── modify_bg.xml │ │ │ ├── placeholder_error.png │ │ │ ├── placeholder_error_large.png │ │ │ ├── placeholder_loading.png │ │ │ ├── placeholder_loading_large.png │ │ │ ├── placeholder_user_photo.png │ │ │ ├── selector_btn_reward_bg.xml │ │ │ ├── selector_check.xml │ │ │ ├── shape_pink_2dp_border_round_rect.xml │ │ │ ├── shape_pink_red_round_rect_20dp.xml │ │ │ ├── shape_round_label_grey.xml │ │ │ └── shape_top_article_dialog_edittext_bg.xml │ │ ├── layout │ │ │ ├── activity_article_detail.xml │ │ │ ├── activity_cloud.xml │ │ │ ├── activity_cloud_choose.xml │ │ │ ├── activity_common_toolbar.xml │ │ │ ├── activity_common_toolbar_strengthen.xml │ │ │ ├── activity_data_source.xml │ │ │ ├── activity_edit_article.xml │ │ │ ├── activity_email_verify.xml │ │ │ ├── activity_forbidlist.xml │ │ │ ├── activity_forget.xml │ │ │ ├── activity_home_page_search.xml │ │ │ ├── activity_invite.xml │ │ │ ├── activity_jerry_image_watcher.xml │ │ │ ├── activity_label_choose.xml │ │ │ ├── activity_launch.xml │ │ │ ├── activity_login.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_my_coin.xml │ │ │ ├── activity_my_coin_popupwindow.xml │ │ │ ├── activity_notification.xml │ │ │ ├── activity_notification_setting.xml │ │ │ ├── activity_order_rank.xml │ │ │ ├── activity_rank_tip.xml │ │ │ ├── activity_register.xml │ │ │ ├── activity_review.xml │ │ │ ├── activity_review_detail.xml │ │ │ ├── activity_web_view.xml │ │ │ ├── actvity_banner.xml │ │ │ ├── article_report_item.xml │ │ │ ├── blank_empty_200_dp_tip.xml │ │ │ ├── blank_empty_data_log.xml │ │ │ ├── blank_empty_half_tip.xml │ │ │ ├── blank_empty_my_article.xml │ │ │ ├── blank_empty_my_collect.xml │ │ │ ├── blank_empty_my_review.xml │ │ │ ├── blank_empty_tip.xml │ │ │ ├── blank_empty_withdraw_log.xml │ │ │ ├── blank_list_full.xml │ │ │ ├── blank_net_block.xml │ │ │ ├── blank_no_download.xml │ │ │ ├── blank_no_file.xml │ │ │ ├── blank_no_upload.xml │ │ │ ├── blank_white_empty_article.xml │ │ │ ├── blank_white_no_exist_article.xml │ │ │ ├── common_activity_with_bar.xml │ │ │ ├── common_activity_with_bar_strengthen.xml │ │ │ ├── dialog_announcement.xml │ │ │ ├── dialog_article_code_validate.xml │ │ │ ├── dialog_article_detail_control.xml │ │ │ ├── dialog_article_detail_reward.xml │ │ │ ├── dialog_article_detail_reward_tip.xml │ │ │ ├── dialog_article_examination.xml │ │ │ ├── dialog_category_fragment.xml │ │ │ ├── dialog_coin_order_des.xml │ │ │ ├── dialog_file_type.xml │ │ │ ├── dialog_order_des.xml │ │ │ ├── dialog_page.xml │ │ │ ├── dialog_qr_code.xml │ │ │ ├── dialog_rank_tip.xml │ │ │ ├── dialog_top_article_sort.xml │ │ │ ├── dialog_update_info.xml │ │ │ ├── dialog_user_admin.xml │ │ │ ├── dialog_withdraw_tip.xml │ │ │ ├── fragment_about_us.xml │ │ │ ├── fragment_admin_center.xml │ │ │ ├── fragment_article_list.xml │ │ │ ├── fragment_article_report.xml │ │ │ ├── fragment_category_info.xml │ │ │ ├── fragment_coin_withdraw.xml │ │ │ ├── fragment_data_source_setting.xml │ │ │ ├── fragment_forbid_review.xml │ │ │ ├── fragment_forbid_review_list.xml │ │ │ ├── fragment_home_page.xml │ │ │ ├── fragment_home_page_search.xml │ │ │ ├── fragment_home_page_search_popupwindow.xml │ │ │ ├── fragment_image_watcher.xml │ │ │ ├── fragment_mine.xml │ │ │ ├── fragment_notification_setting.xml │ │ │ ├── fragment_person_info.xml │ │ │ ├── fragment_person_info_change.xml │ │ │ ├── fragment_person_resume_change.xml │ │ │ ├── fragment_personal_home_page.xml │ │ │ ├── fragment_report_detail.xml │ │ │ ├── fragment_reset_pwd.xml │ │ │ ├── fragment_setting.xml │ │ │ ├── fragment_test.xml │ │ │ ├── fragment_video.xml │ │ │ ├── fragment_web_view.xml │ │ │ ├── item_ad.xml │ │ │ ├── item_announcement.xml │ │ │ ├── item_article_collect_content.xml │ │ │ ├── item_article_detail_advertisement.xml │ │ │ ├── item_article_detail_audio.xml │ │ │ ├── item_article_detail_bottom.xml │ │ │ ├── item_article_detail_image.xml │ │ │ ├── item_article_detail_recommend_item.xml │ │ │ ├── item_article_detail_recommend_title.xml │ │ │ ├── item_article_detail_review_divider.xml │ │ │ ├── item_article_detail_review_empty.xml │ │ │ ├── item_article_detail_review_more.xml │ │ │ ├── item_article_detail_review_sub.xml │ │ │ ├── item_article_detail_review_title.xml │ │ │ ├── item_article_detail_review_top.xml │ │ │ ├── item_article_detail_reward.xml │ │ │ ├── item_article_detail_text_content.xml │ │ │ ├── item_article_detail_title.xml │ │ │ ├── item_article_detail_video.xml │ │ │ ├── item_article_exam.xml │ │ │ ├── item_article_list_top_article.xml │ │ │ ├── item_article_list_top_article_info.xml │ │ │ ├── item_banner.xml │ │ │ ├── item_bannerlist_content.xml │ │ │ ├── item_bannerlist_title.xml │ │ │ ├── item_category_info.xml │ │ │ ├── item_cloud_choose.xml │ │ │ ├── item_cloud_download.xml │ │ │ ├── item_cloud_download_finish_title.xml │ │ │ ├── item_cloud_img.xml │ │ │ ├── item_cloud_other.xml │ │ │ ├── item_cloud_uploading.xml │ │ │ ├── item_cloud_video.xml │ │ │ ├── item_coin_order_detail.xml │ │ │ ├── item_coin_withdraw_detail.xml │ │ │ ├── item_common_count_title.xml │ │ │ ├── item_data_source_history.xml │ │ │ ├── item_edit_category_choose.xml │ │ │ ├── item_forbid_review_child.xml │ │ │ ├── item_forbid_review_father.xml │ │ │ ├── item_history_label.xml │ │ │ ├── item_home_image_article.xml │ │ │ ├── item_home_page_search_admin.xml │ │ │ ├── item_home_page_search_history.xml │ │ │ ├── item_home_page_search_no_data.xml │ │ │ ├── item_home_page_turning.xml │ │ │ ├── item_home_sub_category.xml │ │ │ ├── item_home_text_article.xml │ │ │ ├── item_home_top_category.xml │ │ │ ├── item_home_video_article.xml │ │ │ ├── item_invite_content.xml │ │ │ ├── item_invite_title.xml │ │ │ ├── item_label.xml │ │ │ ├── item_my_article_content.xml │ │ │ ├── item_my_article_title.xml │ │ │ ├── item_my_attention_or_fans_content.xml │ │ │ ├── item_my_coin_detail.xml │ │ │ ├── item_my_coin_title.xml │ │ │ ├── item_my_rank_detail.xml │ │ │ ├── item_my_rank_title.xml │ │ │ ├── item_my_review_content.xml │ │ │ ├── item_notification.xml │ │ │ ├── item_notification_count_title.xml │ │ │ ├── item_rank_order_detail.xml │ │ │ ├── item_review_detail_sub.xml │ │ │ ├── item_review_detail_sub_title.xml │ │ │ ├── item_reward_list.xml │ │ │ ├── item_search_text_article.xml │ │ │ ├── item_sort.xml │ │ │ ├── item_sub_category.xml │ │ │ ├── item_test.xml │ │ │ ├── item_top_article_list_detail.xml │ │ │ ├── menu_right_cloud_list.xml │ │ │ ├── menu_right_delete.xml │ │ │ ├── spinner_item.xml │ │ │ ├── widdget_forbidlist_label_add.xml │ │ │ ├── widget_article_detail_reward.xml │ │ │ ├── widget_article_divider.xml │ │ │ ├── widget_article_tip.xml │ │ │ ├── widget_dot_textview.xml │ │ │ ├── widget_input_view.xml │ │ │ ├── widget_label_add.xml │ │ │ ├── widget_label_choose.xml │ │ │ ├── widget_main_tab_item.xml │ │ │ ├── widget_review_image.xml │ │ │ ├── widget_reviewing_image.xml │ │ │ ├── widget_setting_item.xml │ │ │ ├── window_history_view.xml │ │ │ ├── window_my_article_type.xml │ │ │ ├── window_personal_menu.xml │ │ │ └── window_web_view_menu.xml │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── img_girl.jpg │ │ ├── values │ │ │ ├── attr.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ ├── strings_download.xml │ │ │ ├── strings_upload.xml │ │ │ ├── styles.xml │ │ │ └── ty_style.xml │ │ └── xml │ │ │ └── file_paths.xml │ └── upload │ │ ├── factory │ │ └── UploadFactory.java │ │ ├── listener │ │ ├── FileListener.java │ │ ├── SliceListener.java │ │ └── UploadItemListener.java │ │ ├── model │ │ ├── FileModel.java │ │ ├── SliceModel.java │ │ └── UploadUpdateEvent.java │ │ ├── okhttp │ │ └── FileProgressRequestBody.java │ │ ├── thread │ │ ├── FileRunnable.java │ │ └── SliceThread.java │ │ └── utils │ │ ├── ErrorConstant.java │ │ ├── UploadConfig.java │ │ └── UploadUtils.java │ └── test │ └── java │ └── com │ └── tysq │ └── ty_android │ └── ExampleUnitTest.java ├── build.gradle ├── channel_main ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── zinc │ │ └── channel_main │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── zinc │ └── channel_main │ └── ExampleUnitTest.java ├── creator ├── lib_creator_cache │ ├── .gitignore │ ├── build.gradle │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── tysq │ │ └── lib_creator_cache │ │ ├── CacheAutoCreator.java │ │ └── JavaPencil.java └── lib_creator_mvp │ ├── .gitignore │ ├── build.gradle │ └── src │ └── main │ └── java │ └── com │ └── tysq │ └── lib_creator_mvp │ ├── creator │ ├── ActivityCreator.java │ ├── ComponentCreator.java │ ├── FragmentCreator.java │ ├── ModuleCreator.java │ ├── PresenterCreator.java │ └── ViewCreator.java │ └── utils │ ├── ClzNameHelper.java │ ├── JavaPencil.java │ └── MVPFactory.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── lib ├── base │ ├── lib_base │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs │ │ │ └── zxing.jar │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── bit │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── bit │ │ │ │ └── com │ │ │ │ │ └── bit │ │ │ │ │ ├── adapter │ │ │ │ │ └── BitFrameAdapter.java │ │ │ │ │ ├── cache │ │ │ │ │ ├── AppCache.java │ │ │ │ │ ├── BitBaseCache.java │ │ │ │ │ └── CacheWrapper.java │ │ │ │ │ ├── callback │ │ │ │ │ ├── IStateListener.java │ │ │ │ │ └── StateViewHolderListener.java │ │ │ │ │ ├── config │ │ │ │ │ ├── BitManager.java │ │ │ │ │ ├── BitWebViewManager.java │ │ │ │ │ └── IWebViewConfig.java │ │ │ │ │ ├── event │ │ │ │ │ ├── CloseEvent.java │ │ │ │ │ └── ReloadEvent.java │ │ │ │ │ ├── net │ │ │ │ │ └── LogInterceptor.java │ │ │ │ │ ├── utils │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── DoubleClickExitDetector.java │ │ │ │ │ ├── FragmentCompat.java │ │ │ │ │ ├── KeyboardUtils.java │ │ │ │ │ ├── StatusBarUtil.java │ │ │ │ │ ├── StatusUtils.java │ │ │ │ │ ├── UIUtils.java │ │ │ │ │ ├── Utils.java │ │ │ │ │ └── code │ │ │ │ │ │ ├── EncodingUtils.java │ │ │ │ │ │ ├── RGBLuminanceSource.java │ │ │ │ │ │ └── ZxingUtils.java │ │ │ │ │ ├── view │ │ │ │ │ ├── activity │ │ │ │ │ │ ├── BitBaseActivity.java │ │ │ │ │ │ └── BitToolbarActivity.java │ │ │ │ │ └── fragment │ │ │ │ │ │ ├── BitBaseFragment.java │ │ │ │ │ │ ├── BitLazyFragment.java │ │ │ │ │ │ ├── BitListFragment.java │ │ │ │ │ │ ├── BitLoadMoreFragment.java │ │ │ │ │ │ └── dialog │ │ │ │ │ │ ├── BitBaseDialogFragment.java │ │ │ │ │ │ └── BitCommonLoadingFragment.java │ │ │ │ │ ├── web │ │ │ │ │ ├── BitHtmlWebViewFragment.java │ │ │ │ │ ├── BitWebViewFragment.java │ │ │ │ │ ├── IWebViewJavaScriptInterface.java │ │ │ │ │ └── ProgressWebView.java │ │ │ │ │ └── widget │ │ │ │ │ ├── HTMLWebView.java │ │ │ │ │ ├── NoScrollViewPager.java │ │ │ │ │ └── StateLayout.java │ │ │ ├── mvp │ │ │ │ └── com │ │ │ │ │ └── bit │ │ │ │ │ ├── presenter │ │ │ │ │ ├── BasePresenter.java │ │ │ │ │ └── IPresenter.java │ │ │ │ │ └── view │ │ │ │ │ └── IView.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── j_dialog_defalut_enter_anim.xml │ │ │ │ └── j_dialog_defalut_exit_anim.xml │ │ │ │ ├── drawable │ │ │ │ └── j_process_horizontal.xml │ │ │ │ ├── layout │ │ │ │ ├── bit_common_frame_layout.xml │ │ │ │ ├── bit_common_recycle_view.xml │ │ │ │ ├── bit_common_tool_bar.xml │ │ │ │ ├── bit_fragment_loading.xml │ │ │ │ ├── bit_fragment_web_view.xml │ │ │ │ ├── bit_state_empty_view.xml │ │ │ │ ├── bit_state_loading_view.xml │ │ │ │ └── bit_state_retry_view.xml │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── ids.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── bit │ │ │ └── ExampleUnitTest.java │ ├── lib_log │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── consumer-rules.pro │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── abc │ │ │ │ └── lib_log │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── abc │ │ │ │ │ └── lib_log │ │ │ │ │ ├── JLogConfig.java │ │ │ │ │ ├── JLogShowType.java │ │ │ │ │ ├── JLogShowUtils.java │ │ │ │ │ ├── JLogType.java │ │ │ │ │ └── JLogUtils.java │ │ │ └── res │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── abc │ │ │ └── lib_log │ │ │ └── ExampleUnitTest.java │ └── lib_utils │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── consumer-rules.pro │ │ ├── proguard-rules.pro │ │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── abc │ │ │ └── lib_utils │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── abc │ │ │ │ └── lib_utils │ │ │ │ ├── CloseUtils.java │ │ │ │ ├── EncryptionUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── ImageUtils.java │ │ │ │ ├── MimeTypeUtils.java │ │ │ │ ├── VideoUtils.java │ │ │ │ └── toast │ │ │ │ ├── JToast.java │ │ │ │ └── ToastUtils.java │ │ └── res │ │ │ ├── drawable │ │ │ └── shape_alpha_black_5dp.xml │ │ │ ├── layout │ │ │ └── toast_framelayout.xml │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── abc │ │ └── lib_utils │ │ └── ExampleUnitTest.java ├── special │ ├── lib_cache │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── consumer-rules.pro │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── abc │ │ │ │ └── lib_cache │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── abc │ │ │ │ │ └── lib_cache │ │ │ │ │ ├── JerryProxy.java │ │ │ │ │ ├── config │ │ │ │ │ ├── ProxyConfig.java │ │ │ │ │ └── ProxyConstant.java │ │ │ │ │ ├── httpCode │ │ │ │ │ ├── BaseHttpCodeC.java │ │ │ │ │ └── HttpCodec.java │ │ │ │ │ ├── lru │ │ │ │ │ ├── Charsets.java │ │ │ │ │ ├── DiskLruCache.java │ │ │ │ │ ├── IoUtils.java │ │ │ │ │ ├── LruUtils.java │ │ │ │ │ ├── StrictLineReader.java │ │ │ │ │ └── Util.java │ │ │ │ │ ├── message │ │ │ │ │ └── RequestMessage.java │ │ │ │ │ ├── model │ │ │ │ │ └── UrlInfo.java │ │ │ │ │ ├── okhttp │ │ │ │ │ ├── OkHttpConfig.java │ │ │ │ │ ├── OkHttpHelper.java │ │ │ │ │ └── interceptor │ │ │ │ │ │ ├── CommonParamsInterceptor.java │ │ │ │ │ │ └── LogInterceptor.java │ │ │ │ │ ├── server │ │ │ │ │ ├── BaseServer.java │ │ │ │ │ └── HttpCacheProxyServer.java │ │ │ │ │ ├── socket │ │ │ │ │ └── CacheProxySocket.java │ │ │ │ │ ├── storageStrategy │ │ │ │ │ ├── IStorage.java │ │ │ │ │ ├── StrategyBase.java │ │ │ │ │ └── strategy │ │ │ │ │ │ ├── NoStorage.java │ │ │ │ │ │ ├── RedirectStorage.java │ │ │ │ │ │ └── storage │ │ │ │ │ │ ├── M3U8ListStorage.java │ │ │ │ │ │ ├── M3U8Storage.java │ │ │ │ │ │ ├── StorageBase.java │ │ │ │ │ │ └── TsStorage.java │ │ │ │ │ ├── urlStrategy │ │ │ │ │ ├── IUrlInfo.java │ │ │ │ │ ├── UrlInfoWrapper.java │ │ │ │ │ └── parser │ │ │ │ │ │ ├── M3U8Handler.java │ │ │ │ │ │ ├── M3U8ListHandler.java │ │ │ │ │ │ ├── ParserFactory.java │ │ │ │ │ │ ├── ParserHandler.java │ │ │ │ │ │ ├── RedirectHandler.java │ │ │ │ │ │ └── TsHandler.java │ │ │ │ │ └── utils │ │ │ │ │ ├── CacheFileHelper.java │ │ │ │ │ ├── HostInfo.java │ │ │ │ │ ├── HttpHelper.java │ │ │ │ │ ├── SocketPoolInfo.java │ │ │ │ │ └── UrlHelper.java │ │ │ └── res │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── abc │ │ │ └── lib_cache │ │ │ └── ExampleUnitTest.java │ ├── lib_jerry_editor │ │ ├── .gitignore │ │ └── build.gradle │ ├── lib_multi_download │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── consumer-rules.pro │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── abc │ │ │ │ └── lib_multi_download │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── abc │ │ │ │ │ └── lib_multi_download │ │ │ │ │ ├── config │ │ │ │ │ └── DownloadConfig.java │ │ │ │ │ ├── constants │ │ │ │ │ ├── DownloadConstants.java │ │ │ │ │ ├── ReqHead.java │ │ │ │ │ └── RespHead.java │ │ │ │ │ ├── download │ │ │ │ │ ├── IJerryDownload.java │ │ │ │ │ ├── JerryDownloadConfig.java │ │ │ │ │ └── task │ │ │ │ │ │ ├── AddTask.java │ │ │ │ │ │ ├── BaseTask.java │ │ │ │ │ │ ├── DeleteTask.java │ │ │ │ │ │ ├── PauseTask.java │ │ │ │ │ │ ├── RemoveTask.java │ │ │ │ │ │ └── SearchTask.java │ │ │ │ │ ├── downloadStrategy │ │ │ │ │ ├── BaseStrategy.java │ │ │ │ │ ├── ContinueStrategy.java │ │ │ │ │ ├── FirstStrategy.java │ │ │ │ │ └── IStrategy.java │ │ │ │ │ ├── exception │ │ │ │ │ └── DownloadException.java │ │ │ │ │ ├── jerry │ │ │ │ │ └── JerryDownload.java │ │ │ │ │ ├── listener │ │ │ │ │ ├── DownloadListener.java │ │ │ │ │ └── SuccessListener.java │ │ │ │ │ ├── model │ │ │ │ │ ├── DownloadDB.java │ │ │ │ │ ├── DownloadEvent.java │ │ │ │ │ ├── DownloadInfo.java │ │ │ │ │ ├── RangeInfo.java │ │ │ │ │ └── status │ │ │ │ │ │ ├── RunningStatus.java │ │ │ │ │ │ └── Status.java │ │ │ │ │ ├── okhttp │ │ │ │ │ ├── DownloadOkHttpConfig.java │ │ │ │ │ ├── DownloadOkHttpHelper.java │ │ │ │ │ └── interceptor │ │ │ │ │ │ ├── CommonParamsInterceptor.java │ │ │ │ │ │ └── LogInterceptor.java │ │ │ │ │ ├── thread │ │ │ │ │ ├── DownloadThread.java │ │ │ │ │ ├── IDownloadThread.java │ │ │ │ │ ├── IRangeThread.java │ │ │ │ │ └── RangeThread.java │ │ │ │ │ └── utils │ │ │ │ │ ├── BitUtils.java │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── DownloadFileUtils.java │ │ │ │ │ ├── DownloadUtils.java │ │ │ │ │ └── NetUtils.java │ │ │ └── res │ │ │ │ └── values │ │ │ │ └── strings.xml │ │ │ └── test │ │ │ └── java │ │ │ └── com │ │ │ └── abc │ │ │ └── lib_multi_download │ │ │ └── ExampleUnitTest.java │ └── lib_websocket │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── consumer-rules.pro │ │ ├── proguard-rules.pro │ │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── abc │ │ │ └── lib_websocket │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── abc │ │ │ │ └── lib_websocket │ │ │ │ ├── config │ │ │ │ └── JWebSocketConfig.java │ │ │ │ ├── manager │ │ │ │ ├── BaseWebSocketManager.java │ │ │ │ ├── CacheWebSocketManager.java │ │ │ │ └── WebSocketManager.java │ │ │ │ └── websocket │ │ │ │ ├── JWebSocketListener.java │ │ │ │ ├── JWebSocketListenerImpl.java │ │ │ │ └── WebSocketState.java │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── abc │ │ └── lib_websocket │ │ └── ExampleUnitTest.java └── widget │ ├── lib_banner │ └── build.gradle │ ├── lib_file_selector │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── zinc │ │ │ └── lib_file_selector │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── zinc │ │ │ │ └── lib_file_selector │ │ │ │ ├── LFilePicker.java │ │ │ │ ├── adapter │ │ │ │ └── PathAdapter.java │ │ │ │ ├── filter │ │ │ │ └── LFileFilter.java │ │ │ │ ├── model │ │ │ │ └── ParamEntity.java │ │ │ │ ├── ui │ │ │ │ └── LFilePickerActivity.java │ │ │ │ ├── utils │ │ │ │ ├── CloseUtils.java │ │ │ │ ├── CompositeFilter.java │ │ │ │ ├── Constant.java │ │ │ │ ├── FileComparator.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── MemoryConstant.java │ │ │ │ └── StringUtils.java │ │ │ │ └── widget │ │ │ │ └── EmptyRecyclerView.java │ │ └── res │ │ │ ├── drawable-v21 │ │ │ ├── lfile_back_bg.xml │ │ │ └── lfile_btn_bg.xml │ │ │ ├── drawable │ │ │ ├── back_bg.xml │ │ │ ├── btn_bg.xml │ │ │ ├── item_bg_selector.xml │ │ │ ├── lfile_back_bg.xml │ │ │ └── lfile_btn_bg.xml │ │ │ ├── layout │ │ │ ├── activity_lfile_picker.xml │ │ │ ├── lfile_emptyview.xml │ │ │ └── lfile_listitem.xml │ │ │ ├── menu │ │ │ └── menu_main_toolbar.xml │ │ │ ├── mipmap-xhdpi │ │ │ ├── lfile_back1.png │ │ │ ├── lfile_back2.png │ │ │ ├── lfile_emptyimg.png │ │ │ ├── lfile_file_style_blue.png │ │ │ ├── lfile_file_style_green.png │ │ │ ├── lfile_file_style_yellow.png │ │ │ ├── lfile_folder_style_blue.png │ │ │ ├── lfile_folder_style_green.png │ │ │ ├── lfile_folder_style_yellow.png │ │ │ └── lfile_up.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── provider_paths.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── zinc │ │ └── lib_file_selector │ │ └── ExampleUnitTest.java │ ├── lib_recycleview │ └── build.gradle │ └── lib_wheelview │ ├── .gitignore │ ├── build.gradle │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── zinc │ │ └── lib_wheelview │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── abc │ │ │ └── lib_wheelview │ │ │ ├── adapter │ │ │ ├── ArrayWheelAdapter.java │ │ │ ├── BaseWheelAdapter.java │ │ │ └── SimpleWheelAdapter.java │ │ │ ├── common │ │ │ ├── WheelConstants.java │ │ │ ├── WheelData.java │ │ │ └── WheelViewException.java │ │ │ ├── graphics │ │ │ ├── CommonDrawable.java │ │ │ ├── DrawableFactory.java │ │ │ ├── HoloDrawable.java │ │ │ └── WheelDrawable.java │ │ │ ├── util │ │ │ └── WheelUtils.java │ │ │ └── widget │ │ │ ├── IWheelView.java │ │ │ ├── NestedScrollView.java │ │ │ ├── WheelItem.java │ │ │ └── WheelView.java │ └── res │ │ └── values │ │ └── strings.xml │ └── test │ └── java │ └── com │ └── zinc │ └── lib_wheelview │ └── ExampleUnitTest.java └── settings.gradle /README.md: -------------------------------------------------------------------------------- 1 | # tysq-android 2 | 天宇社区APP客户端开源 3 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/src/main/assets/text.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 |正文
\n粗体
\n斜体
\n删除线
\n\n印
\n
\n
9 | * 2019/05/28
10 | * 需要变动的地方:
11 | * 1、我的页面 —— 信息
12 | * 2、文章详情页
13 | * 3、评论详情页
14 | */
15 | public class LoginStateChangeEvent {
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/LoginSucEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019/4/25 上午9:30
6 | * desc : 登录成功的事件
7 | * version : 1.3.0
8 | */
9 | public class LoginSucEvent {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/MyCoinRefreshEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019-08-15 17:30
6 | * desc : 我的金币重新刷新
7 | * version : 1.3.0
8 | */
9 | public class MyCoinRefreshEvent {
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/NotificationUpdateEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019-08-28 16:04
6 | * desc : 消息更新
7 | * version : 1.0.0
8 | */
9 | public class NotificationUpdateEvent {
10 |
11 | int count;
12 |
13 | public NotificationUpdateEvent(int count) {
14 | this.count = count;
15 | }
16 |
17 | public int getCount() {
18 | return count;
19 | }
20 |
21 | public void setCount(int count) {
22 | this.count = count;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/TopArticlePositionEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 | /**
3 | * author : liaozhenlin
4 | * time : 2019/11/13 16:25
5 | * desc : 置顶文章
6 | * version : 1.5.0
7 | */
8 | public class TopArticlePositionEvent {
9 | private int position;
10 |
11 | public TopArticlePositionEvent(int position) {
12 | this.position = position;
13 | }
14 |
15 | public int getPosition() {
16 | return position;
17 | }
18 |
19 | public void setPosition(int position) {
20 | this.position = position;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/UploadAddTaskEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 |
3 | import model.FileModel;
4 |
5 | /**
6 | * author : frog
7 | * time : 2019/6/17 下午4:01
8 | * desc : 提交上传文件事件
9 | * version : 1.3.0
10 | */
11 | public class UploadAddTaskEvent {
12 |
13 | private FileModel fileModel;
14 |
15 | public UploadAddTaskEvent(FileModel fileModel) {
16 | this.fileModel = fileModel;
17 | }
18 |
19 | public FileModel getFileModel() {
20 | return fileModel;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/UserInfoUpdateEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019/5/17 下午2:53
6 | * desc : 用户信息更新
7 | * version : 1.3.0
8 | */
9 | public class UserInfoUpdateEvent {
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/model/eventbus/VerifyEmailEvent.java:
--------------------------------------------------------------------------------
1 | package eventbus;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019-07-15 16:51
6 | * desc : 验证邮箱
7 | * version : 1.3.0
8 | */
9 | public class VerifyEmailEvent {
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/model/exception/ParserUrlException.java:
--------------------------------------------------------------------------------
1 | package exception;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019-11-15 14:31
6 | * desc : 解析url异常
7 | * version : 5.2.0
8 | */
9 | public class ParserUrlException extends Exception {
10 |
11 | public ParserUrlException(String message) {
12 | super(message);
13 | }
14 | }
--------------------------------------------------------------------------------
/app/src/main/model/request/CloudDeleteReq.java:
--------------------------------------------------------------------------------
1 | package request;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * author : frog
7 | * time : 2019/6/5 下午6:17
8 | * desc : 删除
9 | * version : 1.3.0
10 | */
11 | public class CloudDeleteReq {
12 |
13 | @SerializedName("file_id")
14 | private int fileId;
15 |
16 | public CloudDeleteReq(int fileId) {
17 | this.fileId = fileId;
18 | }
19 |
20 | public int getFileId() {
21 | return fileId;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/model/request/HideArticleReq.java:
--------------------------------------------------------------------------------
1 | package request;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | public class HideArticleReq {
6 | @SerializedName("status")
7 | private int status;
8 |
9 | public HideArticleReq(int status){
10 | this.status = status;
11 | }
12 |
13 | public int getState() {
14 | return status;
15 | }
16 |
17 | public void setState(int state) {
18 | this.status = state;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/model/request/NotificationReadReq.java:
--------------------------------------------------------------------------------
1 | package request;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | public class NotificationReadReq {
6 |
7 | @SerializedName("notify_id")
8 | private String notifyId;
9 |
10 | public NotificationReadReq(String notifyId) {
11 | this.notifyId = notifyId;
12 | }
13 |
14 | public String getNotifyId() {
15 | return notifyId;
16 | }
17 |
18 | public void setNotifyId(String notifyId) {
19 | this.notifyId = notifyId;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/model/response/notification/NotifyUnReadResp.java:
--------------------------------------------------------------------------------
1 | package response.notification;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | public class NotifyUnReadResp {
6 | @SerializedName("unread_count")
7 | private int unReadCount;
8 |
9 | public int getUnReadCount() {
10 | return unReadCount;
11 | }
12 |
13 | public void setUnReadCount(int unReadCount) {
14 | this.unReadCount = unReadCount;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/model/response/rank/MyRankResp.java:
--------------------------------------------------------------------------------
1 | package response.rank;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019-07-16 10:42
6 | * desc : 我的积分 信息
7 | * version : 1.3.0
8 | */
9 | public class MyRankResp {
10 |
11 | private String count;
12 |
13 | public MyRankResp(String count) {
14 | this.count = count;
15 | }
16 |
17 | public String getCount() {
18 | return count;
19 | }
20 |
21 | public void setCount(String count) {
22 | this.count = count;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/model/response/rank/RankExchangePackageResp.java:
--------------------------------------------------------------------------------
1 | package response.rank;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019-07-16 16:50
6 | * desc : 积分兑换套餐
7 | * version : 1.3.0
8 | */
9 | public class RankExchangePackageResp {
10 |
11 | private boolean isSelect = false;
12 |
13 | public boolean isSelect() {
14 | return isSelect;
15 | }
16 |
17 | public void setSelect(boolean select) {
18 | isSelect = select;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/model/vo/RewardListVO.java:
--------------------------------------------------------------------------------
1 | package vo;
2 | /**
3 | * author : liaozhenlin
4 | * time : 2019/11/8 15:53
5 | * desc : 打赏列表VO
6 | * version : 1.5.0
7 | */
8 | public class RewardListVO {
9 | private int count;
10 |
11 | public int getCount() {
12 | return count;
13 | }
14 |
15 | public void setCount(int count) {
16 | this.count = count;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/model/vo/article/ArticleTextVO.java:
--------------------------------------------------------------------------------
1 | package vo.article;
2 |
3 | /**
4 | * author : frog
5 | * time : 2019/5/20 上午11:32
6 | * desc :
7 | * version : 1.3.0
8 | */
9 | public class ArticleTextVO {
10 |
11 | private String content;
12 |
13 | public ArticleTextVO(String content) {
14 | this.content = content;
15 | }
16 |
17 | public String getContent() {
18 | return content;
19 | }
20 |
21 | public void setContent(String content) {
22 | this.content = content;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/model/vo/article/ReviewTitleVO.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/model/vo/article/ReviewTitleVO.java
--------------------------------------------------------------------------------
/app/src/main/res/color/selector_reward_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |