├── .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 |

标题1

标题2

\n
\n

标题3

\n
\n

标题4

\n
\n

正文

\n
\n

粗体

\n
\n

斜体

\n

删除线

\n
\n
\n

\n
\n
\n
\n


7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/di/scope/ActivityScope.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.di.scope; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Scope; 7 | 8 | /** 9 | * author : frog 10 | * time : 2019/4/11 下午3:48 11 | * desc : activity的scope 12 | * version : 1.3.0 13 | */ 14 | 15 | @Scope 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface ActivityScope { 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/aboutUs/AboutUsView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.aboutUs; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.UpdateResp; 6 | 7 | public interface AboutUsView extends IView { 8 | void onGetUpdateInfoError(); 9 | 10 | void onGetUpdateInfo(UpdateResp value); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/aboutUs/di/AboutUsComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.aboutUs.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.aboutUs.AboutUsFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {AboutUsModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface AboutUsComponent { 14 | void inject(AboutUsFragment aboutUsFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/adminCenter/AdminCenterView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.adminCenter; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface AdminCenterView extends IView { 6 | void onLoadExamArticleInfo(String total); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/adminCenter/di/AdminCenterComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.adminCenter.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.adminCenter.AdminCenterFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {AdminCenterModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface AdminCenterComponent { 14 | void inject(AdminCenterFragment adminCenterFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/announcement/AnnouncementView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.announcement; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.AdResp; 8 | 9 | public interface AnnouncementView extends IView { 10 | void onGetAnnouncementError(boolean isFirst); 11 | 12 | void onGetAnnouncement(boolean isFirst, 13 | List advertisementList); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleCollect/ArticleCollectListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleCollect; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/6/5 下午6:23 6 | * desc : 收藏回调 7 | * version : 1.3.0 8 | */ 9 | public interface ArticleCollectListener { 10 | 11 | /** 12 | * 取消收藏 13 | * 14 | * @param articleId 文章的id 15 | */ 16 | void cancelCollect(String articleId); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleDetail/adapter/viewHolder/ArticleDeleteViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleDetail.adapter.viewHolder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | 6 | /** 7 | * author : frog 8 | * time : 2019-08-29 15:05 9 | * desc : 文章被删除 10 | * version : 1.0.0 11 | */ 12 | public class ArticleDeleteViewHolder extends RecyclerView.ViewHolder { 13 | 14 | public ArticleDeleteViewHolder(View itemView) { 15 | super(itemView); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleDetail/adapter/viewHolder/BottomViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleDetail.adapter.viewHolder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | 6 | /** 7 | * author : frog 8 | * time : 2019/5/20 下午2:09 9 | * desc : 底部占位 10 | * version : 1.3.0 11 | */ 12 | public class BottomViewHolder extends RecyclerView.ViewHolder { 13 | 14 | public BottomViewHolder(View itemView) { 15 | super(itemView); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleDetail/adapter/viewHolder/RecommendTitleViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleDetail.adapter.viewHolder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | 6 | /** 7 | * author : frog 8 | * time : 2019/5/20 下午2:13 9 | * desc : 相关推荐——标题 10 | * version : 1.3.0 11 | */ 12 | public class RecommendTitleViewHolder extends RecyclerView.ViewHolder { 13 | 14 | public RecommendTitleViewHolder(View itemView) { 15 | super(itemView); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleDetail/adapter/viewHolder/ReviewEmptyViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleDetail.adapter.viewHolder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | 6 | /** 7 | * author : frog 8 | * time : 2019/5/20 下午2:10 9 | * desc : 评论空 10 | * version : 1.3.0 11 | */ 12 | public class ReviewEmptyViewHolder extends RecyclerView.ViewHolder { 13 | 14 | public ReviewEmptyViewHolder(View itemView) { 15 | super(itemView); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleDetail/listener/ArticleRewardListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleDetail.listener; 2 | /** 3 | * author : liaozhenlin 4 | * time : 2019/11/9 0009 9:53 5 | * desc : 打赏文章 6 | * version : 1.5.0 7 | */ 8 | public interface ArticleRewardListener { 9 | 10 | /** 11 | * 打赏文章金额回调 12 | * @param num 13 | */ 14 | void onPostArticleReward(int num); 15 | 16 | /** 17 | * 金币不足返回打赏弹窗 18 | */ 19 | void onShowArticleRewardNotEnough(); 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleExam/ArticleExamView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleExam; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.article.ReviewArticleListResp; 8 | 9 | public interface ArticleExamView extends IView { 10 | 11 | void onLoadExamArticle(List list, 12 | int totalNum, 13 | boolean isFirst); 14 | 15 | void onLoadExamArticleError(boolean isFirst); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleExam/di/ArticleExamComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleExam.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.articleExam.ArticleExamFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {ArticleExamModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface ArticleExamComponent { 14 | void inject(ArticleExamFragment articleExamFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleReport/ArticleReportView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleReport; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface ArticleReportView extends IView { 6 | 7 | void onPostArticleReport(); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/articleReport/OnArticleReportItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.articleReport; 2 | 3 | import android.view.View; 4 | 5 | public interface OnArticleReportItemClickListener extends View.OnClickListener { 6 | void onArticleReportItemClick(View view, boolean isClick); 7 | 8 | @Override 9 | void onClick(View view); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloud/cloudDownload/CloudDownloadView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloud.cloudDownload; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import vo.cloud.CloudDownloadVO; 8 | 9 | public interface CloudDownloadView extends IView { 10 | void onLoadError(); 11 | 12 | void onLoadInfo(List value, int count); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloud/cloudList/di/CloudListComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloud.cloudList.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.cloud.cloudList.CloudListFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {CloudListModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface CloudListComponent { 14 | void inject(CloudListFragment cloudListFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloud/cloudUploading/CloudUploadingPresenter.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloud.cloudUploading; 2 | 3 | import com.bit.presenter.BasePresenter; 4 | 5 | import javax.inject.Inject; 6 | 7 | public final class CloudUploadingPresenter extends BasePresenter { 8 | @Inject 9 | public CloudUploadingPresenter(CloudUploadingView view) { 10 | super(view); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloud/cloudUploading/CloudUploadingView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloud.cloudUploading; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface CloudUploadingView extends IView { 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloud/listener/CloudListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloud.listener; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/6/5 下午2:27 6 | * desc : 云盘监听器 7 | * version : 1.3.0 8 | */ 9 | public interface CloudListener { 10 | 11 | void setUploadedInfo(int count); 12 | 13 | void setUploadingInfo(int count); 14 | 15 | void setDownloadInfo(int count); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloudChoose/CloudChooseView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloudChoose; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.cloud.FileInfoResp; 8 | 9 | public interface CloudChooseView extends IView { 10 | void onError(boolean isFirst); 11 | 12 | void onLoad(boolean isFirst, List fileInfo); 13 | 14 | void onCommitHeadChangeInfo(); 15 | 16 | void onCommitCover(String url, int coverId, int fileId); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloudChoose/di/CloudChooseComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloudChoose.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.cloudChoose.CloudChooseFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {CloudChooseModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface CloudChooseComponent { 14 | void inject(CloudChooseFragment cloudChooseFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloudChoose/listener/AdapterListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloudChoose.listener; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019/5/14 下午5:38 8 | * desc : 9 | * version : 10 | */ 11 | public interface AdapterListener { 12 | 13 | void onItemClick(View view, int position); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/cloudChoose/listener/CloudChooseChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.cloudChoose.listener; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/5/14 下午5:34 6 | * desc : 7 | * version : 8 | */ 9 | public interface CloudChooseChangeListener { 10 | 11 | void chooseChange(int count); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/coin/coinWithdrawLog/CoinWithdrawLogView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.coin.coinWithdrawLog; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.coin.WithdrawLogResp; 8 | 9 | public interface CoinWithdrawLogView extends IView { 10 | void onGetWithdrawLogError(boolean isFirst); 11 | 12 | void onGetWithdrawLog(boolean isFirst, 13 | List withdrawReviewList); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/coin/myCoin/MyCoinView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.coin.myCoin; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.coin.MyCoinDetailResp; 6 | 7 | public interface MyCoinView extends IView { 8 | void onGetCoinFailure(boolean isFirst); 9 | 10 | void onGetCoin(MyCoinDetailResp value, boolean isFirst); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/coin/myCoin/di/MyCoinComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.coin.myCoin.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.coin.myCoin.MyCoinFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MyCoinModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MyCoinComponent { 14 | void inject(MyCoinFragment myCoinFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/coin/orderCoin/OrderCoinView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.coin.orderCoin; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.coin.CoinOrderResp; 6 | 7 | public interface OrderCoinView extends IView { 8 | void onGetOrderCoinFailure(boolean isFirst); 9 | 10 | void onGetOrderCoin(CoinOrderResp value, boolean isFirst); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/coin/orderCoin/di/OrderCoinComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.coin.orderCoin.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.coin.orderCoin.OrderCoinFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {OrderCoinModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface OrderCoinComponent { 14 | void inject(OrderCoinFragment orderCoinFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/dataSource/DataSourceView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.dataSource; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.UpdateResp; 6 | 7 | public interface DataSourceView extends IView { 8 | void onCheckDataSource(String dataSource); 9 | 10 | void onCheckDataSourceError(); 11 | 12 | void onGetUpdateInfo(UpdateResp updateResp); 13 | 14 | void onGetUpdateInfoError(); 15 | 16 | void onCheckDataSourceInvalidate(); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/dataSource/di/DataSourceComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.dataSource.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.dataSource.DataSourceActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {DataSourceModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface DataSourceComponent { 14 | void inject(DataSourceActivity dataSourceActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/dataSourceSetting/DataSourceSettingView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.dataSourceSetting; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface DataSourceSettingView extends IView { 6 | void onCheckDataSourceError(); 7 | 8 | void onCheckDataSource(); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/editArticle/di/EditArticleComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.editArticle.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.editArticle.EditArticleActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {EditArticleModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface EditArticleComponent { 14 | void inject(EditArticleActivity editArticleActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/editArticle/labelChoose/LabelChooseView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.editArticle.labelChoose; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.LabelResp; 8 | 9 | public interface LabelChooseView extends IView { 10 | 11 | void onLoadLabel(List labelList); 12 | 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/editArticle/listener/OnCategoryChooseListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.editArticle.listener; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/5/8 上午10:16 6 | * desc : 7 | * version : 8 | */ 9 | public interface OnCategoryChooseListener { 10 | 11 | void onItemClick(int type, int position); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/editArticle/listener/OnEditCategoryResultListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.editArticle.listener; 2 | 3 | import response.home.SubCategory; 4 | import response.home.TopCategory; 5 | 6 | /** 7 | * author : frog 8 | * time : 2019/5/8 上午10:47 9 | * desc : 10 | * version : 11 | */ 12 | public interface OnEditCategoryResultListener { 13 | 14 | void onCategoryChoose(TopCategory topCategory, SubCategory subCategory); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/emailVerify/EmailVerifyView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.emailVerify; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface EmailVerifyView extends IView { 6 | 7 | void onSendEmailCodeFailure(); 8 | 9 | void onSendEmailCode(String captchaId); 10 | 11 | void onVerifyEmail(); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/emailVerify/di/EmailVerifyComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.emailVerify.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.emailVerify.EmailVerifyActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {EmailVerifyModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface EmailVerifyComponent { 14 | void inject(EmailVerifyActivity emailVerifyActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/forbidList/ForbidListView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.forbidList; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | 8 | import response.forbidlist.ForbidCommentResp; 9 | 10 | public interface ForbidListView extends IView { 11 | void onGetForbidListError(boolean isFirst); 12 | 13 | void onGetForbidList(List forbidCommentList, boolean isFirst); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/forbidList/di/ForbidListComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.forbidList.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.forbidList.ForbidListFragment; 6 | 7 | import dagger.Component; 8 | 9 | @ActivityScope 10 | @Component( 11 | modules = {ForbidListModule.class}, 12 | dependencies = AppComponent.class 13 | ) 14 | public interface ForbidListComponent { 15 | void inject(ForbidListFragment forbidListFragment); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/forget/ForgetView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.forget; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface ForgetView extends IView { 6 | 7 | void onSendEmailCode(String captchaId); 8 | 9 | void onCheckEmailVerifyError(); 10 | 11 | void onCheckEmailVerify(); 12 | 13 | void onResetPwdFailure(); 14 | 15 | void onLoginFailure(String email); 16 | 17 | void onLoginSuc(); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/forget/di/ForgetComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.forget.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.forget.ForgetActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {ForgetModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface ForgetComponent { 14 | void inject(ForgetActivity forgetActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/forget/di/ForgetModule.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.forget.di; 2 | 3 | import com.tysq.ty_android.di.scope.ActivityScope; 4 | import com.tysq.ty_android.feature.forget.ForgetView; 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | @Module 9 | public final class ForgetModule { 10 | private final ForgetView mView; 11 | 12 | public ForgetModule(ForgetView view) { 13 | this.mView = view; 14 | } 15 | 16 | @Provides 17 | @ActivityScope 18 | public ForgetView getForgetView() { 19 | return this.mView; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePage/HomePageView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.homePage; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.AdResp; 8 | import response.home.CategoryResp; 9 | 10 | public interface HomePageView extends IView { 11 | void onLoadCategoryFailure(); 12 | 13 | void onLoadCategory(CategoryResp value); 14 | 15 | void onLoadAnnouncement(List advertisementList); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePage/adapter/HomeAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/java/com/tysq/ty_android/feature/homePage/adapter/HomeAdapter.java -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePage/di/HomePageComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.homePage.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.homePage.HomePageFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {HomePageModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface HomePageComponent { 14 | void inject(HomePageFragment homePageFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePage/listener/OnSubCategoryItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.homePage.listener; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019/4/28 下午2:07 8 | * desc : 9 | * version : 10 | */ 11 | public interface OnSubCategoryItemClickListener { 12 | 13 | void onSubCategoryClick(View view, int position); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePage/listener/OnTopCategoryItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.homePage.listener; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019/4/28 下午2:07 8 | * desc : 9 | * version : 10 | */ 11 | public interface OnTopCategoryItemClickListener { 12 | 13 | void onTopCategoryClick(View view, int position); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePageSearch/adapter/viewHolder/SearchEmptyViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.homePageSearch.adapter.viewHolder; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.View; 5 | 6 | public class SearchEmptyViewHolder extends RecyclerView.ViewHolder { 7 | public SearchEmptyViewHolder(View itemView) { 8 | super(itemView); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/homePageSearch/listener/OnClickLocalLabel.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.homePageSearch.listener; 2 | 3 | public interface OnClickLocalLabel { 4 | void onClickLocalLabel(String label); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/invite/InviteView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.invite; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.InviteResp; 6 | 7 | public interface InviteView extends IView { 8 | void onGetInviteFailure(boolean isFirst); 9 | 10 | void onGetInvite(InviteResp value, boolean isFirst); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/invite/di/InviteComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.invite.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.invite.InviteFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {InviteModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface InviteComponent { 14 | void inject(InviteFragment inviteFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/invite/di/InviteModule.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.invite.di; 2 | 3 | import com.tysq.ty_android.di.scope.ActivityScope; 4 | import com.tysq.ty_android.feature.invite.InviteView; 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | @Module 9 | public final class InviteModule { 10 | private final InviteView mView; 11 | 12 | public InviteModule(InviteView view) { 13 | this.mView = view; 14 | } 15 | 16 | @Provides 17 | @ActivityScope 18 | public InviteView getInviteView() { 19 | return this.mView; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/launch/LaunchView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.launch; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.UpdateResp; 6 | 7 | public interface LaunchView extends IView { 8 | 9 | void onGetUpdateInfo(UpdateResp value); 10 | 11 | void onGetUpdateInfoError(); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/launch/di/LaunchComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.launch.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.launch.LaunchActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {LaunchModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface LaunchComponent { 14 | void inject(LaunchActivity launchActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/launch/di/LaunchModule.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.launch.di; 2 | 3 | import com.tysq.ty_android.di.scope.ActivityScope; 4 | import com.tysq.ty_android.feature.launch.LaunchView; 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | @Module 9 | public final class LaunchModule { 10 | private final LaunchView mView; 11 | 12 | public LaunchModule(LaunchView view) { 13 | this.mView = view; 14 | } 15 | 16 | @Provides 17 | @ActivityScope 18 | public LaunchView getLaunchView() { 19 | return this.mView; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/login/LoginView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.login; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface LoginView extends IView { 6 | 7 | void onLoad(String codeId, String base64); 8 | 9 | void onLoadFail(); 10 | 11 | void onLoginFailure(int code, String message); 12 | 13 | void onLogin(); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/login/di/LoginComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.login.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.login.LoginActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {LoginModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface LoginComponent { 14 | void inject(LoginActivity loginActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/login/di/LoginModule.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.login.di; 2 | 3 | import com.tysq.ty_android.di.scope.ActivityScope; 4 | import com.tysq.ty_android.feature.login.LoginView; 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | @Module 9 | public final class LoginModule { 10 | private final LoginView mView; 11 | 12 | public LoginModule(LoginView view) { 13 | this.mView = view; 14 | } 15 | 16 | @Provides 17 | @ActivityScope 18 | public LoginView getLoginView() { 19 | return this.mView; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/mine/MineView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.mine; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.UserInfoResp; 6 | 7 | public interface MineView extends IView { 8 | 9 | void onGetUserInfo(); 10 | 11 | void onUploadInfo(UserInfoResp.Asset asset); 12 | 13 | // void onLoadConfig(int recRegisterSuccess); 14 | 15 | void getNotifyUnCountRead(int count); 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/mine/di/MineComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.mine.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.mine.MineFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MineModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MineComponent { 14 | void inject(MineFragment mineFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/mine/di/MineModule.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.mine.di; 2 | 3 | import com.tysq.ty_android.di.scope.ActivityScope; 4 | import com.tysq.ty_android.feature.mine.MineView; 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | @Module 9 | public final class MineModule { 10 | private final MineView mView; 11 | 12 | public MineModule(MineView view) { 13 | this.mView = view; 14 | } 15 | 16 | @Provides 17 | @ActivityScope 18 | public MineView getMineView() { 19 | return this.mView; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myArticle/MyArticleView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myArticle; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.article.MyArticleResp; 8 | 9 | public interface MyArticleView extends IView { 10 | void onLoadArticleError(boolean isFirst); 11 | 12 | void onLoadArticle(boolean isFirst, 13 | List articlesInfo, 14 | int totalNum); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myArticle/di/MyArticleComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myArticle.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.myArticle.MyArticleFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MyArticleModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MyArticleComponent { 14 | void inject(MyArticleFragment myArticleFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myAttention/MyAttentionView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myAttention; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.MyAttentionListResp; 8 | 9 | public interface MyAttentionView extends IView { 10 | 11 | void onGetMyAttentionListError(); 12 | void onGetMyAttentionList(boolean isFirst, 13 | int totalNum, 14 | List attentionInfoBean); 15 | 16 | void postAttention(); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myAttention/di/MyAttentionComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myAttention.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.myAttention.MyAttentionFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MyAttentionModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MyAttentionComponent { 14 | void inject(MyAttentionFragment myAttentionFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myAttention/listener/MyAttentionClickListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myAttention.listener; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * author : liaozhenlin 7 | * time : 2019/10/16 17:34 8 | * desc : 9 | * version : 1.5.0 10 | */ 11 | public interface MyAttentionClickListener { 12 | void onMyAttentionClick(View view, int attention_id, boolean isFollow); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myFans/MyFansView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myFans; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.MyAttentionListResp; 8 | import response.MyFansListResp; 9 | 10 | public interface MyFansView extends IView { 11 | 12 | void onGetMyFansList(boolean isFirst, 13 | int totalNum, 14 | List attentionInfo); 15 | 16 | void postAttention(); 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myFans/di/MyFansComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myFans.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.myFans.MyFansFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MyFansModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MyFansComponent { 14 | void inject(MyFansFragment myFansFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myFans/di/MyFansModule.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myFans.di; 2 | 3 | import com.tysq.ty_android.di.scope.ActivityScope; 4 | import com.tysq.ty_android.feature.myFans.MyFansView; 5 | import dagger.Module; 6 | import dagger.Provides; 7 | 8 | @Module 9 | public final class MyFansModule { 10 | private final MyFansView mView; 11 | 12 | public MyFansModule(MyFansView view) { 13 | this.mView = view; 14 | } 15 | 16 | @Provides 17 | @ActivityScope 18 | public MyFansView getMyFansView() { 19 | return this.mView; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myFans/listener/MyFansAttentionClickListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myFans.listener; 2 | 3 | import android.view.View; 4 | /** 5 | * author : liaozhenlin 6 | * time : 2019/10/17 11:14 7 | * desc : 8 | * version : 1.5.0 9 | */ 10 | public interface MyFansAttentionClickListener { 11 | void onMyFansAttentionClick(View view, int attentionId, boolean isFollow); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myReview/MyReviewListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myReview; 2 | 3 | public interface MyReviewListener { 4 | void deleteReviewItem(String commentId); 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myReview/MyReviewView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myReview; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.MyCommentListResp; 8 | 9 | public interface MyReviewView extends IView { 10 | 11 | void onLoadMyReviewError(boolean isFirst); 12 | 13 | void onLoadMyReview(boolean isFirst, 14 | int totalNum, 15 | List commentInfo); 16 | 17 | void onDeleteComment(String commentId); 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/myReview/di/MyReviewComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.myReview.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.myReview.MyReviewFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MyReviewModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MyReviewComponent { 14 | void inject(MyReviewFragment myReviewFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/notification/listener/OnClickNotificationRead.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.notification.listener; 2 | 3 | public interface OnClickNotificationRead { 4 | 5 | void onClickNotificationRead(String notifyId); 6 | 7 | void onClickNotificationAllRead(); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/notificationSetting/NotificationSettingView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.notificationSetting; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.notification.NotificationConfigResp; 6 | 7 | public interface NotificationSettingView extends IView { 8 | 9 | public void getNotificationConfig(NotificationConfigResp configResp); 10 | 11 | public void putNotificationConfigError(); 12 | 13 | public void putNotificationConfig(); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/person/personInfoChange/PersonInfoChangeView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.person.personInfoChange; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface PersonInfoChangeView extends IView { 6 | 7 | 8 | void onUpdatePersonError(); 9 | 10 | void onUpdatePerson(int resId); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/person/personResumeChange/PersonResumeChangeView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.person.personResumeChange; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface PersonResumeChangeView extends IView { 6 | 7 | void onSetPersonalResume(); 8 | 9 | void onSetPersonalResumeError(); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/personalHomePage/PersonalHomePageView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.personalHomePage; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.personal.PersonalPageResp; 6 | 7 | public interface PersonalHomePageView extends IView { 8 | 9 | void getPersonalPage(PersonalPageResp value); 10 | void postAttention(); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rank/RankOrderTipDialogFragment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/java/com/tysq/ty_android/feature/rank/RankOrderTipDialogFragment.java -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rank/myRank/MyRankView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.rank.myRank; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.rank.RankDetailResp; 6 | 7 | public interface MyRankView extends IView { 8 | void onLoadRankDetailFailure(boolean isFirst); 9 | 10 | void onLoadRankDetail(RankDetailResp value, boolean isFirst); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rank/myRank/di/MyRankComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.rank.myRank.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.rank.myRank.MyRankFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {MyRankModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface MyRankComponent { 14 | void inject(MyRankFragment myRankFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rank/orderRank/OrderRankView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.rank.orderRank; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.rank.RankOrderResp; 6 | 7 | public interface OrderRankView extends IView { 8 | void onGetScoreOrderFailure(boolean isFirst); 9 | 10 | void onGetScoreOrder(RankOrderResp value, boolean isFirst); 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rank/orderRank/di/OrderRankComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.rank.orderRank.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.rank.orderRank.OrderRankFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {OrderRankModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface OrderRankComponent { 14 | void inject(OrderRankFragment orderRankFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/register/RegisterView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.register; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.login.RegisterResp; 6 | import response.login.RespCaptcha; 7 | 8 | public interface RegisterView extends IView { 9 | 10 | void onRegisterFailure(); 11 | 12 | void onLoginSuc(RegisterResp registerResp); 13 | 14 | void onLoginFailure(String email); 15 | 16 | void onGetVerifyCodeError(); 17 | 18 | void onGetVerifyCode(RespCaptcha value); 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/register/di/RegisterComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.register.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.register.RegisterActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {RegisterModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface RegisterComponent { 14 | void inject(RegisterActivity registerActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/reportDetail/ReportDetailView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.reportDetail; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.report.ReportDetailResp; 6 | 7 | public interface ReportDetailView extends IView { 8 | void getReportDetail(ReportDetailResp resp); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/review/ReviewView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.review; 2 | 3 | import com.bit.view.IView; 4 | 5 | import vo.article.ArticleDetailVO; 6 | 7 | public interface ReviewView extends IView { 8 | 9 | void onPublishComment(ArticleDetailVO articleDetailVO, int score); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/review/di/ReviewComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.review.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.review.ReviewActivity; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {ReviewModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface ReviewComponent { 14 | void inject(ReviewActivity reviewActivity); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/reviewDetail/activity/ReviewDetailView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.reviewDetail.activity; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.rank.JudgementResp; 6 | 7 | public interface ReviewDetailView extends IView { 8 | void onGetJudgement(JudgementResp value); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/reviewDetail/listener/ReviewDetailListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.reviewDetail.listener; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/5/23 下午6:11 6 | * desc : 7 | * version : 8 | */ 9 | public interface ReviewDetailListener { 10 | 11 | void onSetInfo(String receiverName, 12 | int topUserId, 13 | String parentId); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rewardList/RewardListView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.rewardList; 2 | 3 | import com.bit.view.IView; 4 | 5 | import response.article.RewardListResp; 6 | 7 | public interface RewardListView extends IView { 8 | 9 | void onLoadRewardList(RewardListResp value, boolean isFirst); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/rewardList/di/RewardListComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.rewardList.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.rewardList.RewardListFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {RewardListModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface RewardListComponent { 14 | void inject(RewardListFragment rewardListFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/setting/resetPwd/ResetPwdView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.setting.resetPwd; 2 | 3 | import com.bit.view.IView; 4 | 5 | public interface ResetPwdView extends IView { 6 | void onResetPwd(); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/setting/resetPwd/di/ResetPwdComponent.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.setting.resetPwd.di; 2 | 3 | import com.tysq.ty_android.di.component.AppComponent; 4 | import com.tysq.ty_android.di.scope.ActivityScope; 5 | import com.tysq.ty_android.feature.setting.resetPwd.ResetPwdFragment; 6 | import dagger.Component; 7 | 8 | @ActivityScope 9 | @Component( 10 | modules = {ResetPwdModule.class}, 11 | dependencies = AppComponent.class 12 | ) 13 | public interface ResetPwdComponent { 14 | void inject(ResetPwdFragment resetPwdFragment); 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/topArticleList/TopArticleListView.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.topArticleList; 2 | 3 | import com.bit.view.IView; 4 | 5 | import java.util.List; 6 | 7 | import response.TopArticleResp; 8 | 9 | public interface TopArticleListView extends IView { 10 | 11 | void onLoadTopArticleList(List value); 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/web/RouterMap.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.web; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-11-14 12:30 6 | * desc : 7 | * version : 8 | */ 9 | public class RouterMap { 10 | 11 | public static final String INVITE = "native://invite"; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/feature/web/TyWebViewListener.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.feature.web; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-07-22 16:38 6 | * desc : WebView 的 监听 7 | * version : 1.3.0 8 | */ 9 | public interface TyWebViewListener { 10 | 11 | void setTitle(String title); 12 | 13 | void close(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/local/db/TyDB.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.local.db; 2 | 3 | import com.raizlabs.android.dbflow.annotation.Database; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-10-12 16:04 8 | * desc : 9 | * version : 10 | */ 11 | 12 | @Database(version = TyDB.VERSION) 13 | public class TyDB { 14 | 15 | public static final int VERSION = 1; 16 | 17 | public static final String NAME = "LocalDB"; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/login/CheckLogin.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.login; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * author : frog 10 | * time : 2017-10-16 10:56 11 | * desc : 12 | * version : 1.3.0 13 | */ 14 | 15 | //用于方法 16 | @Target(ElementType.METHOD) 17 | //运行时 18 | @Retention(RetentionPolicy.RUNTIME) 19 | public @interface CheckLogin { 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/tysq/ty_android/utils/file/AppFileProvider.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android.utils.file; 2 | 3 | import android.support.v4.content.FileProvider; 4 | 5 | public class AppFileProvider extends FileProvider { 6 | } -------------------------------------------------------------------------------- /app/src/main/jerryEditor/jerrEditor/config/MediaType.java: -------------------------------------------------------------------------------- 1 | package jerrEditor.config; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-07-10 09:51 6 | * desc : 7 | * version : 8 | */ 9 | public class MediaType { 10 | 11 | public static final String IMAGE = "image"; 12 | public static final String AUDIO = "audio"; 13 | public static final String VIDEO = "video"; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/jerryWebSocket/com.jerry.websocket/JWebSocketDataListener.java: -------------------------------------------------------------------------------- 1 | package com.jerry.websocket; 2 | 3 | import com.jerry.websocket.model.JWebSocketModel; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-09-11 16:24 8 | * desc : WebSocket 数据回调接口 9 | * version : 1.4.0 10 | */ 11 | public interface JWebSocketDataListener { 12 | 13 | void onReceiveWebSocketData(JWebSocketModel model); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/jerryWebSocket/com.jerry.websocket/WebSocketConstant.java: -------------------------------------------------------------------------------- 1 | package com.jerry.websocket; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-11 18:00 6 | * desc : WebSocket 的常量 7 | * version : 1.4.0 8 | */ 9 | public interface WebSocketConstant { 10 | 11 | // ping(客户端实现) 12 | int PING = 1; 13 | // pong(服务端实现) 14 | int PONG = 2; 15 | // 发送token(客户端实现) 16 | int TOKEN = 3; 17 | // 推送未读数(服务端实现) 18 | int UNREAD = 4; 19 | // 设置通知已读(客户端实现) 20 | int READ = 5; 21 | // 退出(客户端实现) 22 | int QUIT = 6; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/jerryWebSocket/com.jerry.websocket/listener/JWebSocketDataListener.java: -------------------------------------------------------------------------------- 1 | package com.jerry.websocket.listener; 2 | 3 | import com.jerry.websocket.model.JWebSocketModel; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-09-11 16:24 8 | * desc : WebSocket 的 监听器 9 | * version : 1.4.0 10 | */ 11 | public interface JWebSocketDataListener { 12 | 13 | void onReceiveWebSocketData(JWebSocketModel model); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/jerryWebSocket/com.jerry.websocket/model/JWebSocketModel.java: -------------------------------------------------------------------------------- 1 | package com.jerry.websocket.model; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-11 16:25 6 | * desc : webSocket model 基类 7 | * version : 1.4.0 8 | */ 9 | public interface JWebSocketModel { 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/jerryWebSocket/com.jerry.websocket/parser/ParserFactory.java: -------------------------------------------------------------------------------- 1 | package com.jerry.websocket.parser; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-11 18:13 6 | * desc : 解析工厂 7 | * version : 1.4.0 8 | */ 9 | public class ParserFactory { 10 | 11 | public static final BaseParser PARSER; 12 | static{ 13 | PARSER = new UnreadParser(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/model/cache/Net.java: -------------------------------------------------------------------------------- 1 | package cache; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-08-14 15:34 6 | * desc : 网络配置 7 | * version : 1.3.0 8 | */ 9 | public class Net { 10 | 11 | private String domain; 12 | 13 | public Net(String domain) { 14 | this.domain = domain; 15 | } 16 | 17 | public String getDomain() { 18 | return domain; 19 | } 20 | 21 | public void setDomain(String domain) { 22 | this.domain = domain; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/model/eventbus/ArticleCollectEvent.java: -------------------------------------------------------------------------------- 1 | package eventbus; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-08-13 10:39 6 | * desc : 文章收藏更新事件 7 | * 1、【文章详情->我的收藏】 8 | * version : 1.3.0 9 | */ 10 | public class ArticleCollectEvent { 11 | 12 | private String articleId; 13 | 14 | public ArticleCollectEvent(String articleId) { 15 | this.articleId = articleId; 16 | } 17 | 18 | public String getArticleId() { 19 | return articleId; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/model/eventbus/DeleteArticleEvent.java: -------------------------------------------------------------------------------- 1 | package eventbus; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/5/29 下午2:14 6 | * desc : 删除文章事件 7 | * 1、【文章详情—>文章List页】 8 | * 2、【文章详情->我的文章页】 9 | * 3、【文章详情->我的收藏】 10 | * version : 1.3.0 11 | */ 12 | public class DeleteArticleEvent { 13 | 14 | private String articleId; 15 | 16 | public DeleteArticleEvent(String articleId) { 17 | this.articleId = articleId; 18 | } 19 | 20 | public String getArticleId() { 21 | return articleId; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/model/eventbus/DownloadAddEvent.java: -------------------------------------------------------------------------------- 1 | package eventbus; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-10-30 11:48 6 | * desc : 下载任务添加 7 | * version : 1.5.1 8 | */ 9 | public class DownloadAddEvent { 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/model/eventbus/ExamOverEvent.java: -------------------------------------------------------------------------------- 1 | package eventbus; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-24 15:17 6 | * desc : 文章审核完毕 7 | * version : 1.0.0 8 | */ 9 | public class ExamOverEvent { 10 | 11 | private String articleId; 12 | 13 | public ExamOverEvent(String articleId) { 14 | this.articleId = articleId; 15 | } 16 | 17 | public String getArticleId() { 18 | return articleId; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/model/eventbus/LoginStateChangeEvent.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 | * 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 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_audio.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_banner_point.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_black_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_block.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_blue_check.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_bold.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_btn_radio_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_btn_round_blue_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_cloud_choose_cb_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_coin_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_collection.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_exchange_pacakge_price_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_exchange_package_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_h1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_h2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_h3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_h4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_img.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_italic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_strike_through.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_typeface.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_under_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/selector_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_alpha_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_alpha_top_left_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_bottom_10dp_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_bottom_5dp_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_top_10dp_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_black_top_5dp_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_blue_4dp_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_blue_border_1dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_blue_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_btn_lock_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_btn_unlock_press_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_btn_unlock_unpress_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_cursor_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_dark_gray_fill_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_dark_gray_rect_border_3_5dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_dark_gray_rect_border_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_edittext_with_gray_border_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_gold_gradual_rect_round_10dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_gold_rect_round_10dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_gray_2dp_fill.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_gray_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_gray_fill.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_black_10dp_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_black_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_blue_rect_border_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_gray_4dp_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_gray_fill_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_gray_fill_round_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_light_gray_rect_bottom_round_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_orange_red_gradual_rect_round_10dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_orange_red_rect_border_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_orange_red_rect_bottom_round_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_orange_red_rect_round_10dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_placeholder_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_placeholder_gray_fill_round_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_rect_gradual_gold.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_rect_gradual_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_red_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_rich_round_primary_4dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_announcement_drak_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_announcement_light_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_gradual_blue_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_label_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_line_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_round_top_10dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_select_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_top_round_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_tran_blue_to_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_transparent_to_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_transparent_to_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_transparent_to_white_20dp_round_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_white_10dp_bottom_round_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_white_10dp_round_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_white_20dp_round_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_white_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shape_white_round_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_alert_left_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_alert_right_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/edittext_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/et_round_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_achievement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_achievement.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_ad.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_down_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_arrow_down_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_up_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_arrow_up_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_audio_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_audio_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_audio_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_audio_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cancel_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_cancel_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cb_select_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_cb_select_green.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cb_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_cb_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cb_unselect_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_cb_unselect_gray.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cb_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_cb_unselected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_checkbox_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close_fill_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_close_fill_blue.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_cloud_choose_img.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_crop_left_bottom_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_crop_left_top_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_crop_right_bottom_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_crop_right_top_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_delete_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dot_white_alpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_down_triangle_black.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_down_triangle_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_down_triangle_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_empty_article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_empty_article.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_empty_my_article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_empty_my_article.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_empty_my_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_empty_my_review.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_exam_pass_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_exam_pass_tip.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fill_arrow.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_go_to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_go_to.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_hide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_hide.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_horn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_horn.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_jedit_select_italic.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_jedit_unselect_italic.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_14.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_15.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_16.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_17.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_18.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_lv_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_lv_9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_more.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_net_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_net_block.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_no_exist_article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_no_exist_article.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_not_delete_article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_not_delete_article.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_not_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_not_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_one_inch_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_one_inch_alpha.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_play_png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_play_png.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_rank_tip_top_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_rank_tip_top_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_report_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_report_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_reward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_reward.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_search_blank.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_show.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_triangle_right_fill_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_triangle_up_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_triangle_up_black.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_triangle_up_fill_gray_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_upload_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_upload_file.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_verify_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/ic_verify_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_advertisement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_advertisement.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_audio.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_banner_blue_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_banner_blue_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_banner_green_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_banner_green_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_banner_orange_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_banner_orange_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_coin_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_coin_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_data_cource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_data_cource.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_invite_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_invite_banner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_launch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_launch.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_obtain_coin_oppo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_obtain_coin_oppo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_rank_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_rank_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_rank_tip_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_rank_tip_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_rank_tip_top_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_rank_tip_top_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_rank_top_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_rank_top_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_tip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_tip.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_update_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/img_update_title.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/layer_list_check.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/layer_list_edit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/layer_list_spinner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/logo_local_debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/logo_local_debug.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/mine_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/mine_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/modify_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/placeholder_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/placeholder_error.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/placeholder_error_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/placeholder_error_large.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/placeholder_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/placeholder_loading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/placeholder_loading_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/placeholder_loading_large.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/placeholder_user_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/drawable/placeholder_user_photo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_btn_reward_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_check.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_pink_2dp_border_round_rect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_pink_red_round_rect_20dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_round_label_grey.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_home_page_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_launch.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_notification_setting.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/actvity_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/blank_empty_half_tip.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/blank_empty_tip.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/blank_no_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/blank_no_upload.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_image_watcher.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_test.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_article_detail_advertisement.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_article_detail_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_article_detail_review_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_common_count_title.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_edit_category_choose.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_home_top_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/spinner_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/widget_article_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/window_history_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img_girl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/app/src/main/res/mipmap-xhdpi/img_girl.jpg -------------------------------------------------------------------------------- /app/src/main/res/values/attr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @color/white 5 | @color/white 6 | @color/main_blue_color 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 45dp 5 | 45.5dp 6 | 91dp 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 下载成功 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/upload/listener/SliceListener.java: -------------------------------------------------------------------------------- 1 | package listener; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/6/14 下午3:01 6 | * desc : 分片上传的监听器 7 | * version : 1.3.0 8 | */ 9 | 10 | public interface SliceListener { 11 | 12 | void onTransferred(long size); 13 | 14 | } -------------------------------------------------------------------------------- /app/src/main/upload/listener/UploadItemListener.java: -------------------------------------------------------------------------------- 1 | package listener; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/6/14 下午3:02 6 | * desc : 7 | * version : 1.3.0 8 | */ 9 | public interface UploadItemListener { 10 | 11 | void onProgress(); 12 | 13 | void onError(); 14 | 15 | void onDelete(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/upload/utils/UploadConfig.java: -------------------------------------------------------------------------------- 1 | package utils; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019/6/13 下午3:44 8 | * desc : 9 | * version : 1.3.0 10 | */ 11 | public class UploadConfig { 12 | 13 | public static Context CONTEXT; 14 | 15 | public static final int UPLOAD_THREAD_COUNT = 3; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/upload/utils/UploadUtils.java: -------------------------------------------------------------------------------- 1 | package utils; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/6/12 下午6:13 6 | * desc : 7 | * version : 1.3.0 8 | */ 9 | public class UploadUtils { 10 | 11 | public static String getString(int stringId) { 12 | return UploadConfig.CONTEXT.getString(stringId); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/test/java/com/tysq/ty_android/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.tysq.ty_android; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /channel_main/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /channel_main/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/channel_main/consumer-rules.pro -------------------------------------------------------------------------------- /channel_main/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /channel_main/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | channel_main 3 | 4 | -------------------------------------------------------------------------------- /channel_main/src/test/java/com/zinc/channel_main/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zinc.channel_main; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /creator/lib_creator_cache/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /creator/lib_creator_cache/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | 3 | dependencies { 4 | def lib = rootProject.ext 5 | 6 | implementation fileTree(dir: 'libs', include: ['*.jar']) 7 | 8 | api "com.squareup:javapoet:$lib.javapoet" 9 | 10 | implementation "com.google.code.gson:gson:$lib.gson" 11 | 12 | } 13 | 14 | sourceCompatibility = "7" 15 | targetCompatibility = "7" 16 | -------------------------------------------------------------------------------- /creator/lib_creator_mvp/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /creator/lib_creator_mvp/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | 3 | dependencies { 4 | def lib = rootProject.ext 5 | 6 | implementation fileTree(dir: 'libs', include: ['*.jar']) 7 | 8 | api "com.squareup:javapoet:$lib.javapoet" 9 | 10 | // dagger2 11 | implementation "com.google.dagger:dagger:$lib.dagger" 12 | 13 | } 14 | 15 | sourceCompatibility = "7" 16 | targetCompatibility = "7" 17 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /lib/base/lib_base/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/base/lib_base/libs/zxing.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/base/lib_base/libs/zxing.jar -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/bit/com/bit/callback/IStateListener.java: -------------------------------------------------------------------------------- 1 | package com.bit.callback; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019/3/26 下午2:45 6 | * desc : 状态回调 7 | * version : 1.3.0 8 | */ 9 | public interface IStateListener { 10 | 11 | /** 12 | * 重试回调 13 | */ 14 | void onRetry(); 15 | 16 | /** 17 | * 加载回调 18 | */ 19 | void onLoading(); 20 | 21 | /** 22 | * 无数据回调 23 | */ 24 | void onEmpty(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/bit/com/bit/event/CloseEvent.java: -------------------------------------------------------------------------------- 1 | package com.bit.event; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-07-24 18:24 6 | * desc : 7 | * version : 1.3.0 8 | */ 9 | public class CloseEvent { 10 | 11 | private String viewId; 12 | 13 | public CloseEvent(String viewId) { 14 | this.viewId = viewId; 15 | } 16 | 17 | public String getViewId() { 18 | return viewId; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/bit/com/bit/event/ReloadEvent.java: -------------------------------------------------------------------------------- 1 | package com.bit.event; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-07-24 18:24 6 | * desc : 7 | * version : 1.3.0 8 | */ 9 | public class ReloadEvent { 10 | 11 | private String viewId; 12 | 13 | public ReloadEvent(String viewId) { 14 | this.viewId = viewId; 15 | } 16 | 17 | public String getViewId() { 18 | return viewId; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/mvp/com/bit/presenter/IPresenter.java: -------------------------------------------------------------------------------- 1 | package com.bit.presenter; 2 | 3 | /** 4 | * @author a2 5 | * @date 创建时间:2018/11/14 6 | * @description 7 | */ 8 | public interface IPresenter { 9 | 10 | void onDestroy(); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/mvp/com/bit/view/IView.java: -------------------------------------------------------------------------------- 1 | package com.bit.view; 2 | 3 | import com.bit.event.CloseEvent; 4 | import com.bit.event.ReloadEvent; 5 | 6 | /** 7 | * @author a2 8 | * @date 创建时间:2018/11/14 9 | * @description 10 | */ 11 | public interface IView { 12 | 13 | void showDialog(); 14 | 15 | void hideDialog(); 16 | 17 | /** 18 | * 进行重新刷新加载 19 | */ 20 | void onReload(ReloadEvent reloadEvent); 21 | 22 | /** 23 | * 进行关闭 24 | */ 25 | void onClose(CloseEvent closeEvent); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/anim/j_dialog_defalut_enter_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/anim/j_dialog_defalut_exit_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_common_frame_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_common_recycle_view.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_common_tool_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_fragment_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_fragment_web_view.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_state_empty_view.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_state_loading_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/layout/bit_state_retry_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_base 3 | 4 | -------------------------------------------------------------------------------- /lib/base/lib_base/src/test/java/com/bit/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.bit; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/base/lib_log/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/base/lib_log/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/base/lib_log/consumer-rules.pro -------------------------------------------------------------------------------- /lib/base/lib_log/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/base/lib_log/src/main/java/com/abc/lib_log/JLogShowType.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_log; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-10 15:51 6 | * email : xxxxx 7 | * desc : 显示类型 8 | * version : 1.0.0 9 | */ 10 | enum JLogShowType { 11 | 12 | VERBOSE, 13 | DEBUG, 14 | INFO, 15 | WARN, 16 | ERROR 17 | 18 | } 19 | -------------------------------------------------------------------------------- /lib/base/lib_log/src/main/java/com/abc/lib_log/JLogType.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_log; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-10 15:20 6 | * email : xxxxx 7 | * desc : 日志类型 8 | * version : 1.0.0 9 | */ 10 | 11 | public enum JLogType { 12 | 13 | // 普通内容 14 | CONTENT, 15 | // 标题 16 | TITLE, 17 | // 参数 18 | PARAM 19 | 20 | } 21 | -------------------------------------------------------------------------------- /lib/base/lib_log/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_log 3 | 4 | -------------------------------------------------------------------------------- /lib/base/lib_log/src/test/java/com/abc/lib_log/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_log; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/base/lib_utils/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/base/lib_utils/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/base/lib_utils/consumer-rules.pro -------------------------------------------------------------------------------- /lib/base/lib_utils/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/base/lib_utils/src/main/res/drawable/shape_alpha_black_5dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/base/lib_utils/src/main/res/layout/toast_framelayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /lib/base/lib_utils/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_jutils 3 | 4 | 添加下载任务失败,请重试 5 | 6 | -------------------------------------------------------------------------------- /lib/base/lib_utils/src/test/java/com/abc/lib_utils/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_utils; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/special/lib_cache/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/special/lib_cache/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/special/lib_cache/consumer-rules.pro -------------------------------------------------------------------------------- /lib/special/lib_cache/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/special/lib_cache/src/main/java/com/abc/lib_cache/okhttp/OkHttpConfig.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_cache.okhttp; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-23 15:59 6 | * desc : 7 | * version : 8 | */ 9 | public interface OkHttpConfig { 10 | 11 | int CONNECT_TIME_OUT = 30; 12 | int READ_TIME_OUT = 30; 13 | int WRITE_TIME_OUT = 30; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /lib/special/lib_cache/src/main/java/com/abc/lib_cache/storageStrategy/IStorage.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_cache.storageStrategy; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-26 15:47 6 | * desc : 缓存策略接口 7 | * version : 1.0.0 8 | */ 9 | public interface IStorage { 10 | 11 | boolean run(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /lib/special/lib_cache/src/main/java/com/abc/lib_cache/urlStrategy/IUrlInfo.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_cache.urlStrategy; 2 | 3 | import com.abc.lib_cache.model.UrlInfo; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-09-26 10:09 8 | * desc : url 解析接口 9 | * version : 1.0.0 10 | */ 11 | public interface IUrlInfo { 12 | 13 | /** 14 | * 是否成功 15 | */ 16 | boolean isSuc(); 17 | 18 | /** 19 | * 获取 urlInfo 20 | */ 21 | UrlInfo getUrlInfo(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /lib/special/lib_cache/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_cache 3 | 4 | -------------------------------------------------------------------------------- /lib/special/lib_cache/src/test/java/com/abc/lib_cache/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_cache; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/special/lib_jerry_editor/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/special/lib_jerry_editor/build.gradle: -------------------------------------------------------------------------------- 1 | configurations.maybeCreate("default") 2 | artifacts.add("default", file('lib_jerry_editor-release.aar')) -------------------------------------------------------------------------------- /lib/special/lib_multi_download/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/special/lib_multi_download/consumer-rules.pro -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/constants/DownloadConstants.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.constants; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-11-29 10:25 6 | * desc : 7 | * version : 8 | */ 9 | public interface DownloadConstants { 10 | 11 | /** 12 | * 默认的用户ID 13 | */ 14 | int DEFAULT_USER_ID = -1; 15 | 16 | /** 17 | * 默认的域名 18 | */ 19 | String DEFAULT_DOMAIN = "JerryDownload"; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/constants/ReqHead.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.constants; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-10-14 12:27 6 | * desc : 请求头部 7 | * version : 1.0.0 8 | */ 9 | public interface ReqHead { 10 | 11 | String IF_MODIFIED_SINCE = "if-modified-since"; 12 | 13 | String RANGE = "range"; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/constants/RespHead.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.constants; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-10-14 12:27 6 | * desc : 响应报文头部参数 7 | * version : 1.0.0 8 | */ 9 | public interface RespHead { 10 | 11 | String LAST_MODIFIED = "last-modified"; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/downloadStrategy/IStrategy.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.downloadStrategy; 2 | 3 | import com.abc.lib_multi_download.exception.DownloadException; 4 | import com.abc.lib_log.JLogUtils; 5 | 6 | /** 7 | * author : frog 8 | * time : 2019-10-14 11:05 9 | * desc : 10 | * version : 11 | */ 12 | public interface IStrategy { 13 | 14 | void stop(JLogUtils log); 15 | 16 | boolean run() throws DownloadException; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/listener/SuccessListener.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.listener; 2 | 3 | import com.abc.lib_multi_download.model.DownloadInfo; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-12-07 18:16 8 | * desc : 9 | * version : 10 | */ 11 | public interface SuccessListener { 12 | 13 | void onSuccess(DownloadInfo downloadInfo); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/model/DownloadDB.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.model; 2 | 3 | import com.raizlabs.android.dbflow.annotation.Database; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-10-12 16:04 8 | * desc : 9 | * version : 10 | */ 11 | 12 | @Database(version = DownloadDB.VERSION) 13 | public class DownloadDB { 14 | 15 | public static final int VERSION = 1; 16 | 17 | public static final String NAME = "JerryDownload"; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/model/status/Status.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.model.status; 2 | 3 | public interface Status { 4 | 5 | // 未进行初始化 6 | int INIT = 1; 7 | 8 | // 已经初始化了 9 | int DOWNLOAD = 1 << 1; 10 | 11 | // 成功(下载完成) 12 | int SUCCESS = 1 << 2; 13 | 14 | // 异常 【异常能和其他的状态并存】 15 | int EXCEPTION = 1 << 3; 16 | 17 | } -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/okhttp/DownloadOkHttpConfig.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.okhttp; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-23 15:59 6 | * desc : 7 | * version : 8 | */ 9 | public interface DownloadOkHttpConfig { 10 | 11 | int CONNECT_TIME_OUT = 30; 12 | int READ_TIME_OUT = 30; 13 | int WRITE_TIME_OUT = 30; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/java/com/abc/lib_multi_download/thread/IRangeThread.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download.thread; 2 | 3 | import com.abc.lib_log.JLogUtils; 4 | 5 | /** 6 | * author : frog 7 | * time : 2019-11-28 15:57 8 | * desc : 分片线程接口 9 | * version : 1.0.0 10 | */ 11 | public interface IRangeThread extends Runnable { 12 | 13 | boolean isRunning(); 14 | 15 | void stop(JLogUtils log); 16 | 17 | long getDownloadSize(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_multi_download 3 | 4 | -------------------------------------------------------------------------------- /lib/special/lib_multi_download/src/test/java/com/abc/lib_multi_download/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_multi_download; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/special/lib_websocket/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/special/lib_websocket/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/special/lib_websocket/consumer-rules.pro -------------------------------------------------------------------------------- /lib/special/lib_websocket/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/special/lib_websocket/src/main/java/com/abc/lib_websocket/manager/WebSocketManager.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_websocket.manager; 2 | 3 | import okio.ByteString; 4 | 5 | /** 6 | * @author 7 | * @date 创建时间:2018/12/14 8 | * @description 状态回调 9 | */ 10 | public interface WebSocketManager { 11 | 12 | void onConnectSuc(); 13 | 14 | void onConnectFailure(boolean reconnect); 15 | 16 | void onMessage(String msg); 17 | 18 | void onMessage(ByteString msg); 19 | 20 | void sendMsg(String msg); 21 | 22 | void release(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /lib/special/lib_websocket/src/main/java/com/abc/lib_websocket/websocket/WebSocketState.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_websocket.websocket; 2 | 3 | /** 4 | * author : frog 5 | * time : 2019-09-11 10:42 6 | * desc : WebSocket 的 状态 7 | * version : 1.3.0 8 | */ 9 | public interface WebSocketState { 10 | 11 | int NOT_CONNECTED = 1; 12 | int CONNECTING = 2; 13 | int CONNECTED = 4; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /lib/special/lib_websocket/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_websocket 3 | 4 | -------------------------------------------------------------------------------- /lib/special/lib_websocket/src/test/java/com/abc/lib_websocket/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.abc.lib_websocket; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/widget/lib_banner/build.gradle: -------------------------------------------------------------------------------- 1 | configurations.maybeCreate("default") 2 | artifacts.add("default", file('lib_banner-release.aar')) -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable-v21/lfile_back_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable-v21/lfile_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable/back_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable/btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable/item_bg_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable/lfile_back_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/drawable/lfile_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/menu/menu_main_toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 |

4 | 5 | 9 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_back1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_back1.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_back2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_back2.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_emptyimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_emptyimg.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_file_style_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_file_style_blue.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_file_style_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_file_style_green.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_file_style_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_file_style_yellow.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_folder_style_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_folder_style_blue.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_folder_style_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_folder_style_green.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_folder_style_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_folder_style_yellow.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_file_selector/src/main/res/mipmap-xhdpi/lfile_up.png -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @color/main_blue_color 4 | @color/main_blue_color 5 | @color/main_blue_color 6 | #cccccc 7 | #dddddd 8 | #fff 9 | @color/main_blue_color 10 | 11 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /lib/widget/lib_file_selector/src/test/java/com/zinc/lib_file_selector/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zinc.lib_file_selector; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /lib/widget/lib_recycleview/build.gradle: -------------------------------------------------------------------------------- 1 | configurations.maybeCreate("default") 2 | artifacts.add("default", file('lib.recycleview-release.aar')) -------------------------------------------------------------------------------- /lib/widget/lib_wheelview/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lib/widget/lib_wheelview/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tysqapp/tysq-android/9f5c1b7bc4b447a166ba11936eb8370f3ee660ba/lib/widget/lib_wheelview/consumer-rules.pro -------------------------------------------------------------------------------- /lib/widget/lib_wheelview/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /lib/widget/lib_wheelview/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | lib_wheelview 3 | 4 | -------------------------------------------------------------------------------- /lib/widget/lib_wheelview/src/test/java/com/zinc/lib_wheelview/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zinc.lib_wheelview; 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() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } --------------------------------------------------------------------------------