├── .gitignore
├── .travis.yml
├── JetGear
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── io
│ │ └── mindjet
│ │ └── jetgear
│ │ ├── adapter
│ │ └── ViewPagerAdapter.java
│ │ ├── base
│ │ ├── BaseBottomSheetDialog.java
│ │ └── BaseDialog.java
│ │ ├── mvvm
│ │ ├── ILayoutId.java
│ │ ├── adapter
│ │ │ ├── ListAdapter.java
│ │ │ ├── LoadMoreAdapter.java
│ │ │ └── ViewModelAdapter.java
│ │ ├── base
│ │ │ ├── BaseActivity.java
│ │ │ ├── BaseAdapter.java
│ │ │ ├── BaseCompatActivity.java
│ │ │ ├── BaseViewHolder.java
│ │ │ └── BaseViewModel.java
│ │ ├── bindingadapter
│ │ │ ├── BaseBindingAdapter.java
│ │ │ └── ImageBindingAdapter.java
│ │ ├── listener
│ │ │ ├── LifeCycleListener.java
│ │ │ ├── LoadMoreListener.java
│ │ │ ├── RcvItemClickListener.java
│ │ │ ├── RefreshListener.java
│ │ │ ├── ScrollLoadMoreListener.java
│ │ │ └── ViewAttachedListener.java
│ │ ├── viewinterface
│ │ │ ├── ActivityCompatInterface.java
│ │ │ ├── ActivityInterface.java
│ │ │ ├── AdapterInterface.java
│ │ │ ├── ViewInterface.java
│ │ │ └── ViewInterfaceGen.java
│ │ └── viewmodel
│ │ │ ├── BannerViewModel.java
│ │ │ ├── ViewModelBinder.java
│ │ │ ├── activity
│ │ │ ├── ViewModelActivity.java
│ │ │ └── ViewModelCompatActivity.java
│ │ │ ├── coordinator
│ │ │ ├── CollapsingImageViewModel.java
│ │ │ ├── CoordinatorCollapseLayoutViewModel.java
│ │ │ └── CoordinatorLayoutViewModel.java
│ │ │ ├── drawer
│ │ │ ├── DrawerHeaderViewModel.java
│ │ │ ├── DrawerItemViewModel.java
│ │ │ ├── DrawerLayoutViewModel.java
│ │ │ ├── DrawerViewModel.java
│ │ │ └── NativeDrawerLayoutViewModel.java
│ │ │ ├── header
│ │ │ ├── HeaderItemViewModel.java
│ │ │ ├── HeaderViewModel.java
│ │ │ └── IHeaderItemCallback.java
│ │ │ ├── integrated
│ │ │ ├── DrawerCoordinatorLayoutViewModel.java
│ │ │ ├── HeaderRecyclerViewModel.java
│ │ │ └── HeaderSwipeLayoutViewModel.java
│ │ │ ├── item
│ │ │ ├── ButtonViewModel.java
│ │ │ ├── ImageTextCardViewModel.java
│ │ │ ├── ImageTextViewModel.java
│ │ │ ├── LoadingViewModel.java
│ │ │ ├── TabViewModel.java
│ │ │ └── TextViewModel.java
│ │ │ └── list
│ │ │ ├── RecyclerViewModel.java
│ │ │ └── SwipeRecyclerViewModel.java
│ │ ├── network
│ │ ├── JLoggerInterceptor.java
│ │ └── ServiceGen.java
│ │ └── reactivex
│ │ ├── RxActions.java
│ │ ├── RxTask.java
│ │ └── rxbus
│ │ ├── RxBus.java
│ │ └── RxEvent.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_back.png
│ ├── drawable-xhdpi
│ └── ic_back.png
│ ├── drawable-xxhdpi
│ └── ic_back.png
│ ├── layout
│ ├── include_banner.xml
│ ├── include_collapsing_image.xml
│ ├── include_coordinator_collapse_layout.xml
│ ├── include_coordinator_layout.xml
│ ├── include_divider.xml
│ ├── include_drawer.xml
│ ├── include_drawer_coordinator_layout.xml
│ ├── include_drawer_header.xml
│ ├── include_drawer_layout.xml
│ ├── include_header.xml
│ ├── include_header_recycler.xml
│ ├── include_header_swipe_layout.xml
│ ├── include_height_25dp.xml
│ ├── include_native_drawer_layout.xml
│ ├── include_recycler_view.xml
│ ├── include_swipe_recycler_view.xml
│ ├── item_banner.xml
│ ├── item_button.xml
│ ├── item_drawer.xml
│ ├── item_drawer_header.xml
│ ├── item_header.xml
│ ├── item_image_text.xml
│ ├── item_image_text_cardview.xml
│ ├── item_loading.xml
│ ├── item_progress.xml
│ ├── item_tab.xml
│ └── item_text.xml
│ ├── menu
│ ├── menu_drawer.xml
│ └── menu_option.xml
│ └── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── integer.xml
│ ├── strings.xml
│ └── styles.xml
├── JetImage
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── io
│ │ └── mindjet
│ │ └── jetimage
│ │ ├── loader
│ │ └── ImageLoader.java
│ │ └── picker
│ │ ├── HiddenActivity.java
│ │ └── ImagePicker.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_placeholder.png
│ ├── drawable-xhdpi
│ └── ic_placeholder.png
│ └── values
│ └── strings.xml
├── JetUtil
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── io
│ │ └── mindjet
│ │ └── jetutil
│ │ ├── anim
│ │ └── RevealUtil.java
│ │ ├── file
│ │ ├── FileUtil.java
│ │ ├── RxFile.java
│ │ └── SPUtil.java
│ │ ├── hint
│ │ └── Toaster.java
│ │ ├── logger
│ │ └── JLogger.java
│ │ ├── manager
│ │ ├── ActivityManager.java
│ │ ├── ShareManager.java
│ │ └── TransManager.java
│ │ ├── task
│ │ └── Task.java
│ │ ├── version
│ │ └── VersionUtil.java
│ │ └── view
│ │ └── ColorUtil.java
│ └── res
│ ├── anim
│ ├── fade_in.xml
│ └── fade_out.xml
│ └── values
│ └── strings.xml
├── JetWidget
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── io
│ │ └── mindjet
│ │ └── jetwidget
│ │ ├── JToolBar.java
│ │ └── LoadingView.java
│ └── res
│ ├── drawable-hdpi
│ ├── ic_arrow_left.png
│ ├── ic_arrow_up.png
│ ├── ic_check.png
│ ├── ic_code_gray.png
│ ├── ic_cross_round.png
│ ├── ic_draft_gray.png
│ ├── ic_drawer.png
│ ├── ic_drawer_gray.png
│ ├── ic_earth_gray.png
│ ├── ic_face.png
│ ├── ic_face_gray.png
│ ├── ic_favorite_gray.png
│ ├── ic_inbox_gray.png
│ ├── ic_location.png
│ ├── ic_location_gray.png
│ ├── ic_mail_gray.png
│ ├── ic_more.png
│ ├── ic_qq.png
│ ├── ic_qzone.png
│ ├── ic_refresh.png
│ ├── ic_refresh_gray.png
│ ├── ic_sent.png
│ ├── ic_sent_gray.png
│ ├── ic_setting.png
│ ├── ic_setting_gray.png
│ ├── ic_share.png
│ ├── ic_share_gray.png
│ ├── ic_star.png
│ ├── ic_star_empty.png
│ ├── ic_star_gray.png
│ ├── ic_track_gray.png
│ ├── ic_up.png
│ ├── ic_up_gray.png
│ ├── ic_wechat.png
│ └── ic_weibo.png
│ ├── drawable-v21
│ ├── ripple_borderless_default.xml
│ ├── ripple_borderless_white.xml
│ ├── ripple_default.xml
│ ├── ripple_theme.xml
│ └── ripple_white.xml
│ ├── drawable-xhdpi
│ ├── ic_arrow_left.png
│ ├── ic_arrow_up.png
│ ├── ic_check.png
│ ├── ic_code_gray.png
│ ├── ic_cross_round.png
│ ├── ic_dislike.png
│ ├── ic_draft_gray.png
│ ├── ic_drawer.png
│ ├── ic_drawer_gray.png
│ ├── ic_earth_gray.png
│ ├── ic_face.png
│ ├── ic_face_gray.png
│ ├── ic_favorite_gray.png
│ ├── ic_inbox_gray.png
│ ├── ic_like.png
│ ├── ic_location.png
│ ├── ic_location_gray.png
│ ├── ic_mail_gray.png
│ ├── ic_more.png
│ ├── ic_qq.png
│ ├── ic_qzone.png
│ ├── ic_refresh.png
│ ├── ic_refresh_gray.png
│ ├── ic_sent.png
│ ├── ic_sent_gray.png
│ ├── ic_setting.png
│ ├── ic_setting_gray.png
│ ├── ic_share.png
│ ├── ic_share_gray.png
│ ├── ic_star.png
│ ├── ic_star_empty.png
│ ├── ic_star_gray.png
│ ├── ic_track_gray.png
│ ├── ic_up.png
│ ├── ic_up_gray.png
│ ├── ic_wechat.png
│ └── ic_weibo.png
│ ├── drawable-xxhdpi
│ ├── ic_arrow_left.png
│ ├── ic_arrow_up.png
│ ├── ic_check.png
│ ├── ic_code_gray.png
│ ├── ic_cross_round.png
│ ├── ic_dislike.png
│ ├── ic_draft_gray.png
│ ├── ic_drawer.png
│ ├── ic_drawer_gray.png
│ ├── ic_earth_gray.png
│ ├── ic_face.png
│ ├── ic_face_gray.png
│ ├── ic_favorite_gray.png
│ ├── ic_inbox_gray.png
│ ├── ic_like.png
│ ├── ic_location.png
│ ├── ic_location_gray.png
│ ├── ic_mail_gray.png
│ ├── ic_more.png
│ ├── ic_qq.png
│ ├── ic_qzone.png
│ ├── ic_refresh.png
│ ├── ic_refresh_gray.png
│ ├── ic_sent.png
│ ├── ic_sent_gray.png
│ ├── ic_setting.png
│ ├── ic_setting_gray.png
│ ├── ic_share.png
│ ├── ic_share_gray.png
│ ├── ic_star.png
│ ├── ic_star_empty.png
│ ├── ic_star_gray.png
│ ├── ic_track_gray.png
│ ├── ic_up.png
│ ├── ic_up_gray.png
│ ├── ic_wechat.png
│ └── ic_weibo.png
│ ├── drawable
│ ├── ic_down_gray.xml
│ ├── ripple_borderless_default.xml
│ ├── ripple_borderless_white.xml
│ ├── ripple_default.xml
│ ├── ripple_theme.xml
│ ├── ripple_white.xml
│ ├── shape_cursor_normal.xml
│ ├── shape_cursor_selected.xml
│ ├── shape_gradient_gray.xml
│ └── test_image.png
│ ├── values-v19
│ └── styles.xml
│ ├── values-v21
│ └── styles.xml
│ └── values
│ ├── color_universal.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── LICENSE
├── README.md
├── Reader.postman_collection.json
├── app
├── .gitignore
├── build.gradle
├── deploy.gradle
├── jetpack_dev.jks
├── libs
│ └── jsoup-1.9.2.jar
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── io
│ │ └── mindjet
│ │ └── jetpack
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── fonts
│ │ │ ├── Courgette-Regular.ttf
│ │ │ └── Pacifico-Regular.ttf
│ │ └── me.json
│ ├── java
│ │ └── io
│ │ │ └── mindjet
│ │ │ └── litereader
│ │ │ ├── BaseApp.java
│ │ │ ├── BaseEnv.java
│ │ │ ├── adapter
│ │ │ ├── ColumnViewPagerAdapter.java
│ │ │ └── ReviewViewPagerAdapter.java
│ │ │ ├── database
│ │ │ └── OpenDBHelper.java
│ │ │ ├── entity
│ │ │ ├── ChannelCode.java
│ │ │ └── Constant.java
│ │ │ ├── http
│ │ │ ├── SimpleHttpSubscriber.java
│ │ │ └── ThreadDispatcher.java
│ │ │ ├── model
│ │ │ ├── detail
│ │ │ │ ├── DoubanMovieDetail.java
│ │ │ │ └── ZhihuStoryDetail.java
│ │ │ ├── item
│ │ │ │ ├── DoubanMovieItem.java
│ │ │ │ ├── ZhihuSectionItem.java
│ │ │ │ ├── ZhihuStoryItem.java
│ │ │ │ ├── ZhihuTopStoryItem.java
│ │ │ │ ├── book
│ │ │ │ │ ├── Book.java
│ │ │ │ │ ├── BookList.java
│ │ │ │ │ ├── Rating.java
│ │ │ │ │ └── Tag.java
│ │ │ │ ├── douban
│ │ │ │ │ ├── Author.java
│ │ │ │ │ ├── Comment.java
│ │ │ │ │ ├── DetailStill.java
│ │ │ │ │ ├── Images.java
│ │ │ │ │ ├── Rating.java
│ │ │ │ │ ├── Review.java
│ │ │ │ │ ├── Staff.java
│ │ │ │ │ ├── StaffDetail.java
│ │ │ │ │ ├── Still.java
│ │ │ │ │ ├── Trailer.java
│ │ │ │ │ └── Work.java
│ │ │ │ └── one
│ │ │ │ │ ├── Article.java
│ │ │ │ │ ├── ArticleDetail.java
│ │ │ │ │ ├── Author.java
│ │ │ │ │ ├── Review.java
│ │ │ │ │ └── ShareInfo.java
│ │ │ ├── list
│ │ │ │ ├── DailyArticle.java
│ │ │ │ ├── DoubanCommentList.java
│ │ │ │ ├── DoubanMovieList.java
│ │ │ │ ├── DoubanReviewList.java
│ │ │ │ ├── DoubanStillList.java
│ │ │ │ ├── OneData.java
│ │ │ │ ├── OneDataList.java
│ │ │ │ ├── ZhihuDailyList.java
│ │ │ │ └── ZhihuSectionList.java
│ │ │ └── other
│ │ │ │ ├── DailyWallpaper.java
│ │ │ │ ├── Imdb.java
│ │ │ │ ├── Me.java
│ │ │ │ └── RottenTomatoes.java
│ │ │ ├── reactivex
│ │ │ ├── ActionHttpError.java
│ │ │ ├── RxAction.java
│ │ │ ├── RxLoadingView.java
│ │ │ └── RxToaster.java
│ │ │ ├── service
│ │ │ ├── DoubanService.java
│ │ │ ├── OneService.java
│ │ │ ├── OtherService.java
│ │ │ ├── TimeMovieService.java
│ │ │ └── ZhihuDailyService.java
│ │ │ ├── ui
│ │ │ ├── activity
│ │ │ │ ├── AboutMeActivity.java
│ │ │ │ ├── ChannelSubscribeActivity.java
│ │ │ │ ├── CollectActivity.java
│ │ │ │ ├── DoubanMovieDetailActivity.java
│ │ │ │ ├── DoubanMovieMoreReviewActivity.java
│ │ │ │ ├── DoubanMovieReviewActivity.java
│ │ │ │ ├── DoubanMovieSearchActivity.java
│ │ │ │ ├── DoubanStaffDetailActivity.java
│ │ │ │ ├── DoubanStillListActivity.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ ├── OneArticleDetailActivity.java
│ │ │ │ ├── OneReviewDetailActivity.java
│ │ │ │ ├── SettingActivity.java
│ │ │ │ ├── SplashActivity.java
│ │ │ │ ├── ZhihuSectionDetailActivity.java
│ │ │ │ └── ZhihuStoryDetailActivity.java
│ │ │ ├── dialog
│ │ │ │ ├── MeDialog.java
│ │ │ │ ├── MovieItemDialog.java
│ │ │ │ ├── ShareDialog.java
│ │ │ │ └── StillDialog.java
│ │ │ └── widget
│ │ │ │ └── RichTextView.java
│ │ │ ├── util
│ │ │ ├── CacheUtil.java
│ │ │ ├── ChannelUtil.java
│ │ │ ├── CollectionManager.java
│ │ │ ├── DateUtil.java
│ │ │ └── RottenTomatoUtil.java
│ │ │ └── viewmodel
│ │ │ ├── AboutMeViewModel.java
│ │ │ ├── ICollection.java
│ │ │ ├── MainViewModel.java
│ │ │ ├── detail
│ │ │ ├── DoubanBookDetailViewModel.java
│ │ │ ├── DoubanMovieDetailViewModel.java
│ │ │ ├── DoubanMovieMoreReviewViewModel.java
│ │ │ ├── DoubanMovieReviewViewModel.java
│ │ │ ├── DoubanMovieSearchViewModel.java
│ │ │ ├── DoubanStaffDetailViewModel.java
│ │ │ ├── IncludeSettingViewModel.java
│ │ │ ├── OneArticleDetailViewModel.java
│ │ │ ├── OneReviewDetailViewModel.java
│ │ │ ├── ZhihuStoryDetailViewModel.java
│ │ │ ├── book
│ │ │ │ └── DoubanBookImageViewModel.java
│ │ │ ├── douban
│ │ │ │ ├── DetailImageViewModel.java
│ │ │ │ ├── DetailReviewItemViewModel.java
│ │ │ │ ├── DetailStaffItemViewModel.java
│ │ │ │ ├── DetailStaffViewModel.java
│ │ │ │ ├── DetailStillItemViewModel.java
│ │ │ │ ├── DetailStillViewModel.java
│ │ │ │ ├── DetailSummaryViewModel.java
│ │ │ │ ├── StaffDetailSummaryViewModel.java
│ │ │ │ ├── StaffDetailTopInfoViewModel.java
│ │ │ │ ├── StaffDetailWorkItemViewModel.java
│ │ │ │ └── StaffDetailWorkViewModel.java
│ │ │ ├── one
│ │ │ │ ├── OneArticleContentViewModel.java
│ │ │ │ ├── OneCommonImageViewModel.java
│ │ │ │ └── OneReviewContentViewModel.java
│ │ │ └── zhihu
│ │ │ │ ├── ZhihuStoryArticleViewModel.java
│ │ │ │ └── ZhihuStoryImageViewModel.java
│ │ │ ├── item
│ │ │ ├── AboutInfoViewModel.java
│ │ │ ├── BlankViewModel.java
│ │ │ ├── ChannelItemViewModel.java
│ │ │ ├── ChannelUsageItemViewModel.java
│ │ │ ├── DailyArticleItemViewModel.java
│ │ │ ├── DoubanBookItemViewModel.java
│ │ │ ├── DoubanCommentItemViewModel.java
│ │ │ ├── DoubanMovieItemViewModel.java
│ │ │ ├── DoubanReviewItemViewModel.java
│ │ │ ├── DoubanStillItemViewModel.java
│ │ │ ├── IncludeDoubanMovieReviewViewModel.java
│ │ │ ├── MovieCollectItemViewModel.java
│ │ │ ├── MovieTypeViewModel.java
│ │ │ ├── OneArticleItemViewModel.java
│ │ │ ├── OneCommonCollectItemViewModel.java
│ │ │ ├── OneReviewItemViewModel.java
│ │ │ ├── StoryCollectItemViewModel.java
│ │ │ ├── ZhihuBannerItemViewModel.java
│ │ │ ├── ZhihuDateItemViewModel.java
│ │ │ ├── ZhihuSectionItemViewModel.java
│ │ │ └── ZhihuStoryItemViewModel.java
│ │ │ └── list
│ │ │ ├── ChannelSubscribeViewModel.java
│ │ │ ├── CollectViewModel.java
│ │ │ ├── DailyArticleListViewModel.java
│ │ │ ├── DoubanBookListViewModel.java
│ │ │ ├── DoubanCommentListViewModel.java
│ │ │ ├── DoubanMovieListViewModel.java
│ │ │ ├── DoubanReviewListViewModel.java
│ │ │ ├── DoubanStillListViewModel.java
│ │ │ ├── OneArticleListViewModel.java
│ │ │ ├── OneReviewListViewModel.java
│ │ │ ├── SettingViewModel.java
│ │ │ ├── ZhihuDailyListViewModel.java
│ │ │ └── ZhihuSectionDetailViewModel.java
│ └── res
│ │ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── drawable
│ │ ├── shape_corner_10dp.xml
│ │ ├── shape_corner_5dp.xml
│ │ ├── shape_oval_border.xml
│ │ └── shape_text_cursor.xml
│ │ ├── layout
│ │ ├── activity_douban_movie_more_review.xml
│ │ ├── activity_douban_movie_search.xml
│ │ ├── activity_main.xml
│ │ ├── activity_splash.xml
│ │ ├── dialog_me.xml
│ │ ├── dialog_movie_item.xml
│ │ ├── dialog_share.xml
│ │ ├── dialog_still.xml
│ │ ├── include_douban_review.xml
│ │ ├── include_setting.xml
│ │ ├── item_about_info.xml
│ │ ├── item_blank.xml
│ │ ├── item_channel.xml
│ │ ├── item_channel_usage.xml
│ │ ├── item_daily_article.xml
│ │ ├── item_douban_book.xml
│ │ ├── item_douban_comment.xml
│ │ ├── item_douban_detail_image.xml
│ │ ├── item_douban_detail_review.xml
│ │ ├── item_douban_detail_staff.xml
│ │ ├── item_douban_detail_still.xml
│ │ ├── item_douban_detail_summary.xml
│ │ ├── item_douban_movie.xml
│ │ ├── item_douban_review.xml
│ │ ├── item_douban_staff_detail_summary.xml
│ │ ├── item_douban_staff_detail_top_info.xml
│ │ ├── item_douban_staff_work.xml
│ │ ├── item_douban_still.xml
│ │ ├── item_movie_collect.xml
│ │ ├── item_movie_type.xml
│ │ ├── item_one_article.xml
│ │ ├── item_one_article_content.xml
│ │ ├── item_one_review.xml
│ │ ├── item_one_review_collect.xml
│ │ ├── item_one_review_content.xml
│ │ ├── item_one_review_image.xml
│ │ ├── item_story_collect.xml
│ │ ├── item_zhihu_banner.xml
│ │ ├── item_zhihu_date.xml
│ │ ├── item_zhihu_section.xml
│ │ ├── item_zhihu_story.xml
│ │ ├── item_zhihu_story_article.xml
│ │ └── item_zhihu_story_image.xml
│ │ ├── menu
│ │ └── menu_common.xml
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── io
│ └── mindjet
│ └── jetpack
│ └── ExampleUnitTest.java
├── art
├── github-display-1.png
├── github-display-2.png
├── github-display-3.png
└── github-icon.png
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | #built application files
2 | *.apk
3 | *.ap_
4 |
5 | # files for the dex VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # generated files
12 | bin/
13 | gen/
14 |
15 | # Local configuration file (sdk path, etc)
16 | local.properties
17 |
18 | # Windows thumbnail db
19 | Thumbs.db
20 |
21 | # OSX files
22 | .DS_Store
23 |
24 | # Eclipse project files
25 | .classpath
26 | .project
27 |
28 | # Android Studio
29 | *.iml
30 | build/
31 | captures/
32 | .idea/
33 |
34 | # Gradle Files
35 | .gradle
36 |
37 | # Log Files
38 | *.log
39 |
40 | # FreeLine
41 | *.py
42 | freeline/
43 |
44 | # Raw files
45 | raw/
46 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: android
2 | cache: bundler
3 |
4 | android:
5 | components:
6 | - tools
7 | - build-tools-25.0.2
8 | - android-25
9 | - extra-android-m2repository
10 | - extra-android-support
11 |
12 | before_install:
13 | - chmod +x gradlew
14 |
15 | script:
16 | gradle build
17 |
--------------------------------------------------------------------------------
/JetGear/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/JetGear/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | dataBinding {
8 | enabled true
9 | }
10 |
11 | defaultConfig {
12 | minSdkVersion 16
13 | targetSdkVersion 25
14 | versionCode 1
15 | versionName "1.0"
16 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
17 | }
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 | }
25 |
26 | dependencies {
27 | compile fileTree(dir: 'libs', include: ['*.jar'])
28 | compile 'com.android.support:appcompat-v7:25.1.1'
29 | compile 'com.android.support:recyclerview-v7:25.1.1'
30 | compile 'com.android.support:cardview-v7:25.1.1'
31 | compile 'jp.wasabeef:recyclerview-animators:2.2.5'
32 | compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
33 | compile 'com.squareup.retrofit2:converter-gson:2.0.0'
34 | compile 'com.squareup.retrofit2:retrofit:2.1.0'
35 | compile 'com.zhy:percent-support-extends:1.1.1'
36 | compile 'com.android.support:design:25.1.1'
37 | compile 'com.trello:rxlifecycle:1.0'
38 |
39 | compile project(':JetImage')
40 | compile project(':JetUtil')
41 | compile project(':JetWidget')
42 | }
43 |
--------------------------------------------------------------------------------
/JetGear/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ganguo/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/JetGear/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/base/BaseDialog.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.base;
2 |
3 | import android.content.Context;
4 | import android.os.Bundle;
5 | import android.support.annotation.NonNull;
6 | import android.support.v7.app.AppCompatDialog;
7 |
8 | import io.mindjet.jetutil.logger.JLogger;
9 |
10 | /**
11 | * Created by Jet on 3/20/17.
12 | */
13 |
14 | public abstract class BaseDialog extends AppCompatDialog {
15 |
16 | protected JLogger jLogger = JLogger.get(getClass().getSimpleName());
17 |
18 | public BaseDialog(@NonNull Context context) {
19 | super(context);
20 | }
21 |
22 | @Override
23 | protected void onCreate(Bundle savedInstanceState) {
24 | beforeInitView();
25 | initView();
26 | initData();
27 | }
28 |
29 | protected abstract void beforeInitView();
30 |
31 | protected abstract void initView();
32 |
33 | protected abstract void initData();
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/ILayoutId.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm;
2 |
3 | /**
4 | * Created by Mindjet on 2017/2/15.
5 | */
6 |
7 | public interface ILayoutId {
8 |
9 | int getLayoutId();
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/adapter/ViewModelAdapter.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.adapter;
2 |
3 | import android.content.Context;
4 | import android.databinding.ViewDataBinding;
5 |
6 | import io.mindjet.jetgear.mvvm.base.BaseViewHolder;
7 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
8 | import io.mindjet.jetgear.mvvm.viewmodel.ViewModelBinder;
9 |
10 | /**
11 | * Adapter for RecyclerView for binding View Model.
12 | *
13 | * Created by Mindjet on 2/17/17.
14 | */
15 |
16 | public class ViewModelAdapter extends LoadMoreAdapter {
17 |
18 | private Context context;
19 |
20 | public ViewModelAdapter(Context context) {
21 | super(context);
22 | this.context = context;
23 | }
24 |
25 | @Override
26 | public void onBindVH(BaseViewHolder holder, int position) {
27 | ViewModelBinder.bind(this, get(position), holder);
28 | }
29 |
30 | @Override
31 | public int getItemLayoutId(int position) {
32 | return get(position).getLayoutId();
33 | }
34 |
35 | public Context getContext() {
36 | return context;
37 | }
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/base/BaseActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.base;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.support.annotation.Nullable;
6 |
7 | import io.mindjet.jetutil.logger.JLogger;
8 | import io.mindjet.jetutil.manager.ActivityManager;
9 |
10 | /**
11 | * Created by Jet on 2/15/17.
12 | */
13 |
14 | public abstract class BaseActivity extends Activity {
15 |
16 | public JLogger jLogger = JLogger.get(getClass().getSimpleName());
17 |
18 | @Override
19 | protected void onCreate(@Nullable Bundle savedInstanceState) {
20 | super.onCreate(savedInstanceState);
21 | ActivityManager.addActivity(this);
22 | }
23 |
24 | @Override
25 | protected void onDestroy() {
26 | super.onDestroy();
27 | ActivityManager.finishActivity(this);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/base/BaseCompatActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.base;
2 |
3 | import android.os.Bundle;
4 | import android.os.PersistableBundle;
5 | import android.support.v7.app.AppCompatActivity;
6 |
7 | import io.mindjet.jetutil.manager.ActivityManager;
8 |
9 | /**
10 | * Created by Jet on 2/28/17.
11 | */
12 |
13 | public class BaseCompatActivity extends AppCompatActivity {
14 |
15 | @Override
16 | public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
17 | super.onCreate(savedInstanceState, persistentState);
18 | ActivityManager.addActivity(this);
19 | }
20 |
21 | @Override
22 | protected void onDestroy() {
23 | super.onDestroy();
24 | ActivityManager.finishActivity(this);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/base/BaseViewHolder.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.base;
2 |
3 | import android.databinding.ViewDataBinding;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.View;
6 |
7 | import io.mindjet.jetgear.BR;
8 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
9 |
10 | /**
11 | * Created by Jet on 2/10/17.
12 | */
13 |
14 | public class BaseViewHolder extends RecyclerView.ViewHolder {
15 |
16 | private V binding;
17 | private BaseViewModel> viewModel;
18 |
19 | public BaseViewHolder(View itemView) {
20 | super(itemView);
21 | }
22 |
23 | public BaseViewHolder(V binding) {
24 | super(binding.getRoot());
25 | this.binding = binding;
26 | }
27 |
28 | public void bind(Object o) {
29 | binding.setVariable(BR.data, o);
30 | binding.executePendingBindings();
31 | }
32 |
33 | public V getBinding() {
34 | return binding;
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/listener/LifeCycleListener.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.listener;
2 |
3 | import android.view.Menu;
4 |
5 | /**
6 | * Created by Jet on 2/22/17.
7 | */
8 |
9 | public interface LifeCycleListener {
10 |
11 | void onDestroy();
12 |
13 | void onStop();
14 |
15 | void onResume();
16 |
17 | /**
18 | * @return Whether the event is consumed or not.
19 | *
20 | * If the event has been consumed, please return true, so that the default callback will not be invoked.
21 | */
22 | boolean onBackPressed();
23 |
24 | boolean onCreateOptionMenu(Menu menu);
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/listener/LoadMoreListener.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.listener;
2 |
3 | /**
4 | * Created by Jet on 2/16/17.
5 | */
6 |
7 | public interface LoadMoreListener {
8 | void onLoadMore();
9 | }
10 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/listener/RcvItemClickListener.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.listener;
2 |
3 | import android.databinding.ViewDataBinding;
4 |
5 | /**
6 | * Created by Jet on 2/17/17.
7 | */
8 |
9 | public interface RcvItemClickListener {
10 | void onItemClick(ViewDataBinding binding, int position);
11 |
12 | void onItemLongClick(ViewDataBinding binding, int position);
13 | }
14 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/listener/RefreshListener.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.listener;
2 |
3 | /**
4 | * Created by Jet on 2/16/17.
5 | */
6 |
7 | public interface RefreshListener {
8 | void onRefresh();
9 | }
10 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/listener/ViewAttachedListener.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.listener;
2 |
3 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
4 |
5 | /**
6 | * Created by Jet on 2/22/17.
7 | */
8 |
9 | public interface ViewAttachedListener {
10 | void onViewAttached(T viewModel);
11 | }
12 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewinterface/ActivityCompatInterface.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewinterface;
2 |
3 | import android.databinding.ViewDataBinding;
4 | import android.support.v7.app.AppCompatActivity;
5 |
6 | /**
7 | * Created by Jet on 3/6/17.
8 | */
9 |
10 | public interface ActivityCompatInterface extends ViewInterface {
11 |
12 | AppCompatActivity getCompatActivity();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewinterface/ActivityInterface.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewinterface;
2 |
3 | import android.app.Activity;
4 | import android.databinding.ViewDataBinding;
5 |
6 | /**
7 | * Created by Jet on 2/17/17.
8 | */
9 |
10 | public interface ActivityInterface extends ViewInterface {
11 |
12 | Activity getActivity();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewinterface/AdapterInterface.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewinterface;
2 |
3 | import android.databinding.ViewDataBinding;
4 |
5 | import io.mindjet.jetgear.mvvm.adapter.ViewModelAdapter;
6 | import io.mindjet.jetgear.mvvm.base.BaseViewHolder;
7 |
8 | /**
9 | * Created by Jet on 2/17/17.
10 | */
11 |
12 | public interface AdapterInterface extends ViewInterface {
13 |
14 | ViewModelAdapter getAdapter();
15 |
16 | BaseViewHolder getViewHolder();
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewinterface/ViewInterface.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewinterface;
2 |
3 | import android.content.Context;
4 | import android.databinding.ViewDataBinding;
5 |
6 | /**
7 | * Created by Jet on 2/17/17.
8 | */
9 |
10 | public interface ViewInterface {
11 |
12 | Context getContext();
13 |
14 | V getBinding();
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewmodel/coordinator/CollapsingImageViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewmodel.coordinator;
2 |
3 | import android.support.annotation.DrawableRes;
4 | import android.view.View;
5 | import android.widget.ImageView;
6 |
7 | import io.mindjet.jetgear.R;
8 | import io.mindjet.jetgear.databinding.IncludeCollapsingImageBinding;
9 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
10 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
11 | import io.mindjet.jetimage.loader.ImageLoader;
12 |
13 | /**
14 | * Created by Jet on 3/6/17.
15 | */
16 |
17 | public class CollapsingImageViewModel extends BaseViewModel> {
18 |
19 | @DrawableRes
20 | private int drawableRes;
21 | private String imageUrl = "";
22 |
23 | public CollapsingImageViewModel(@DrawableRes int drawableRes) {
24 | this.drawableRes = drawableRes;
25 | }
26 |
27 | public CollapsingImageViewModel(String imageUrl) {
28 | this.imageUrl = imageUrl;
29 | }
30 |
31 | @Override
32 | public void onViewAttached(View view) {
33 | initImage(getSelfView().getBinding().image);
34 | }
35 |
36 | private void initImage(ImageView imageView) {
37 | if (drawableRes != 0) {
38 | imageView.setImageResource(drawableRes);
39 | } else {
40 | ImageLoader.load(imageView, imageUrl);
41 | }
42 | }
43 |
44 | @Override
45 | public int getLayoutId() {
46 | return R.layout.include_collapsing_image;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewmodel/header/IHeaderItemCallback.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewmodel.header;
2 |
3 | /**
4 | * Created by Jet on 2/21/17.
5 | */
6 |
7 | public interface IHeaderItemCallback {
8 | void call();
9 | }
10 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewmodel/item/ImageTextViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import java.util.UUID;
6 |
7 | import io.mindjet.jetgear.R;
8 | import io.mindjet.jetgear.databinding.ItemImageTextBinding;
9 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
10 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
11 |
12 | /**
13 | * Created by Mindjet on 2017/2/15.
14 | */
15 |
16 | public class ImageTextViewModel extends BaseViewModel> {
17 |
18 | private String imageUrl = "https://imgsa.baidu.com/forum/w%3D580/sign=9a8f6a0f9545d688a302b2ac94c27dab/ca67d5a20cf431ad929de0054c36acaf2fdd988b.jpg";
19 | private String title = "Mindjet";
20 | private String content = UUID.randomUUID().toString();
21 |
22 | public String getImageUrl() {
23 | return imageUrl;
24 | }
25 |
26 | public String getTitle() {
27 | return title;
28 | }
29 |
30 | public String getContent() {
31 | return content;
32 | }
33 |
34 | public void setImageUrl(String imageUrl) {
35 | this.imageUrl = imageUrl;
36 | }
37 |
38 | public void setTitle(String title) {
39 | this.title = title;
40 | }
41 |
42 | public void setContent(String content) {
43 | this.content = content;
44 | }
45 |
46 | @Override
47 | public int getLayoutId() {
48 | return R.layout.item_image_text;
49 | }
50 |
51 | @Override
52 | public void onViewAttached(View view) {
53 |
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewmodel/item/LoadingViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.R;
6 | import io.mindjet.jetgear.databinding.ItemLoadingBinding;
7 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
8 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
9 |
10 | /**
11 | * Common loading view model.
12 | *
13 | * Created by Mindjet on 2017/4/16.
14 | */
15 |
16 | public class LoadingViewModel extends BaseViewModel> {
17 |
18 | @Override
19 | public int getLayoutId() {
20 | return R.layout.item_loading;
21 | }
22 |
23 | @Override
24 | public void onViewAttached(View view) {
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/mvvm/viewmodel/item/TextViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.mvvm.viewmodel.item;
2 |
3 | import android.view.View;
4 | import android.view.ViewGroup;
5 |
6 | import io.mindjet.jetgear.R;
7 | import io.mindjet.jetgear.databinding.ItemTextBinding;
8 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
9 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
10 |
11 | /**
12 | * Created by Mindjet on 2017/2/15.
13 | */
14 |
15 | public class TextViewModel extends BaseViewModel> {
16 |
17 | private String text;
18 |
19 | public TextViewModel(String text) {
20 | this.text = text;
21 | }
22 |
23 | public String getText() {
24 | return text;
25 | }
26 |
27 | @Override
28 | public int getLayoutId() {
29 | return R.layout.item_text;
30 | }
31 |
32 | @Override
33 | public void onViewAttached(View view) {
34 |
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/reactivex/RxActions.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.reactivex;
2 |
3 | import io.mindjet.jetutil.logger.JLogger;
4 | import rx.functions.Action1;
5 |
6 | /**
7 | * Simple actions for RxJava.
8 | *
9 | * Created by Mindjet on 2017/4/11.
10 | */
11 |
12 | public class RxActions {
13 |
14 | private static JLogger jLogger = JLogger.get("RxActions");
15 |
16 | public static Action1 onError() {
17 | return new Action1() {
18 | @Override
19 | public void call(Throwable throwable) {
20 | jLogger.e(throwable);
21 | }
22 | };
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/JetGear/src/main/java/io/mindjet/jetgear/reactivex/rxbus/RxEvent.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetgear.reactivex.rxbus;
2 |
3 | import android.support.v4.util.Pair;
4 |
5 | /**
6 | * Created by Mindjet on 2017/4/11.
7 | */
8 |
9 | public class RxEvent extends Pair {
10 | /**
11 | * Constructor for a Pair.
12 | *
13 | * @param first the first object in the Pair
14 | * @param second the second object in the pair
15 | */
16 | public RxEvent(String first, Object second) {
17 | super(first, second);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/drawable-hdpi/ic_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetGear/src/main/res/drawable-hdpi/ic_back.png
--------------------------------------------------------------------------------
/JetGear/src/main/res/drawable-xhdpi/ic_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetGear/src/main/res/drawable-xhdpi/ic_back.png
--------------------------------------------------------------------------------
/JetGear/src/main/res/drawable-xxhdpi/ic_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetGear/src/main/res/drawable-xxhdpi/ic_back.png
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_collapsing_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
15 |
16 |
21 |
22 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
17 |
18 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_drawer_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
17 |
18 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_header_recycler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_header_swipe_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_height_25dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_native_drawer_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
16 |
17 |
23 |
24 |
25 |
26 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_recycler_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
16 |
17 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/include_swipe_recycler_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
15 |
16 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
15 |
16 |
20 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
23 |
24 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
21 |
22 |
28 |
29 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_drawer_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
19 |
20 |
26 |
27 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
17 |
18 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
16 |
17 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_tab.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
12 |
13 |
20 |
21 |
25 |
26 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/layout/item_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
16 |
17 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/menu/menu_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/menu/menu_option.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 | #e7e7e7
8 | #cccccc
9 | #999999
10 |
11 |
12 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/values/integer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 10
4 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | transition_name_image
4 | transition_name_text
5 |
6 | JetGear
7 | Inbox
8 | starred
9 | sent mails
10 | draft
11 |
12 |
--------------------------------------------------------------------------------
/JetGear/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/JetImage/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/JetImage/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 16
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | buildTypes {
14 | release {
15 | minifyEnabled false
16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17 | }
18 | }
19 | }
20 |
21 | dependencies {
22 | compile fileTree(dir: '.libs', include: ['*.jar'])
23 | compile 'com.android.support:appcompat-v7:25.1.0'
24 | compile 'io.reactivex:rxjava:1.2.6'
25 | compile 'io.reactivex:rxandroid:1.2.1'
26 | compile 'com.github.bumptech.glide:glide:3.7.0'
27 | compile 'jp.wasabeef:glide-transformations:2.0.1'
28 | }
29 |
--------------------------------------------------------------------------------
/JetImage/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ganguo/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/JetImage/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/JetImage/src/main/res/drawable-hdpi/ic_placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetImage/src/main/res/drawable-hdpi/ic_placeholder.png
--------------------------------------------------------------------------------
/JetImage/src/main/res/drawable-xhdpi/ic_placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetImage/src/main/res/drawable-xhdpi/ic_placeholder.png
--------------------------------------------------------------------------------
/JetImage/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | JetImage
3 |
4 |
--------------------------------------------------------------------------------
/JetUtil/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/JetUtil/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 16
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14 |
15 | }
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 | compile fileTree(dir: 'libs', include: ['*.jar'])
26 | compile 'com.android.support:appcompat-v7:25.1.1'
27 | compile 'io.reactivex:rxjava:1.2.6'
28 | compile 'io.reactivex:rxandroid:1.2.1'
29 | compile 'com.android.support:design:25.1.1'
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/JetUtil/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ganguo/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/JetUtil/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/JetUtil/src/main/java/io/mindjet/jetutil/file/RxFile.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetutil.file;
2 |
3 | import android.graphics.Bitmap;
4 |
5 | import java.io.File;
6 | import java.io.IOException;
7 |
8 | import rx.subjects.ReplaySubject;
9 |
10 | /**
11 | * Created by Jet on 2/9/17.
12 | */
13 |
14 | public class RxFile {
15 |
16 | private volatile static RxFile rxFile;
17 |
18 | public static RxFile get() {
19 | if (rxFile == null) {
20 | synchronized (RxFile.class) {
21 | if (rxFile == null) {
22 | rxFile = new RxFile();
23 | }
24 | }
25 | }
26 | return rxFile;
27 | }
28 |
29 | private ReplaySubject bitmapSubject;
30 |
31 | public ReplaySubject saveBitmap(final Bitmap bitmap, final File folder, final String name) {
32 | bitmapSubject = ReplaySubject.create();
33 | try {
34 | String path = FileUtil.savePhoto(bitmap, folder, name);
35 | onSuccess(path);
36 | } catch (IOException e) {
37 | e.printStackTrace();
38 | onFail(e);
39 | }
40 | return bitmapSubject;
41 | }
42 |
43 | private void onSuccess(String path) {
44 | if (bitmapSubject != null) {
45 | bitmapSubject.onNext(path);
46 | bitmapSubject.onCompleted();
47 | }
48 | }
49 |
50 | private void onFail(Throwable t) {
51 | bitmapSubject.onError(t);
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/JetUtil/src/main/java/io/mindjet/jetutil/hint/Toaster.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetutil.hint;
2 |
3 | import android.content.Context;
4 | import android.support.annotation.StringRes;
5 | import android.widget.Toast;
6 |
7 | /**
8 | * Toast helper.
9 | *
10 | * Created by Mindjet on 2/9/17.
11 | */
12 |
13 | public class Toaster {
14 |
15 | private static Toast toast;
16 |
17 | public static void toast(Context context, @StringRes int stringRes) {
18 | toast(context, context.getResources().getString(stringRes), Toast.LENGTH_SHORT);
19 | }
20 |
21 | public static void toast(Context context, @StringRes int stringRes, int duration) {
22 | toast(context, context.getResources().getString(stringRes), duration);
23 | }
24 |
25 | public static void toast(Context context, String message) {
26 | toast(context, message, Toast.LENGTH_SHORT);
27 | }
28 |
29 | public static void toast(Context context, String message, int duration) {
30 | if (toast == null) {
31 | toast = Toast.makeText(context, message, duration);
32 | } else {
33 | toast.setText(message);
34 | }
35 | toast.show();
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/JetUtil/src/main/java/io/mindjet/jetutil/task/Task.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetutil.task;
2 |
3 | import android.os.Handler;
4 | import android.os.Looper;
5 |
6 | /**
7 | * Created by Jet on 2/17/17.
8 | */
9 |
10 | public class Task {
11 |
12 | private static Handler handler = new Handler(Looper.getMainLooper());
13 |
14 | public static void runOnUiThread(Runnable r) {
15 | handler.post(r);
16 | }
17 |
18 | public static void runOnUiThread(Runnable r, long time) {
19 | handler.postDelayed(r, time);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/JetUtil/src/main/java/io/mindjet/jetutil/version/VersionUtil.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetutil.version;
2 |
3 | import android.os.Build;
4 |
5 | /**
6 | * Created by Jet on 3/7/17.
7 | */
8 |
9 | public class VersionUtil {
10 |
11 | private static int _version = Build.VERSION.SDK_INT;
12 |
13 | public static boolean afterLollipop() {
14 | return _version >= Build.VERSION_CODES.LOLLIPOP;
15 | }
16 |
17 | public static boolean afterAPI(int version) {
18 | return _version >= version;
19 | }
20 |
21 | public static boolean afterKitKat() {
22 | return _version >= Build.VERSION_CODES.KITKAT;
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/JetUtil/src/main/java/io/mindjet/jetutil/view/ColorUtil.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.jetutil.view;
2 |
3 | import android.content.Context;
4 | import android.content.res.ColorStateList;
5 | import android.view.View;
6 |
7 | import io.mindjet.jetutil.logger.JLogger;
8 |
9 | /**
10 | * Created by Jet on 3/2/17.
11 | */
12 |
13 | public class ColorUtil extends View {
14 |
15 | private static JLogger jLogger = JLogger.get("ColorUtil");
16 |
17 | public ColorUtil(Context context) {
18 | super(context);
19 | }
20 |
21 | public static ColorStateList createColorStateList(int normalColor, int selectedColor) {
22 | final int[][] states = new int[2][];
23 | final int[] colors = new int[2];
24 |
25 | states[0] = View.SELECTED_STATE_SET;
26 | colors[0] = selectedColor;
27 |
28 | // Default enabled state
29 | states[1] = EMPTY_STATE_SET;
30 | colors[1] = normalColor;
31 |
32 | return new ColorStateList(states, colors);
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/JetUtil/src/main/res/anim/fade_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/JetUtil/src/main/res/anim/fade_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/JetUtil/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | JetUtil
3 |
4 |
--------------------------------------------------------------------------------
/JetWidget/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/JetWidget/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 16
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14 |
15 | }
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 | compile fileTree(dir: 'libs', include: ['*.jar'])
26 | compile 'com.android.support:appcompat-v7:25.1.1'
27 | compile 'com.android.support:design:25.1.1'
28 |
29 | compile 'com.afollestad.material-dialogs:core:0.9.3.0'
30 | }
31 |
--------------------------------------------------------------------------------
/JetWidget/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ganguo/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/JetWidget/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_arrow_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_arrow_left.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_arrow_up.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_check.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_code_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_code_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_cross_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_cross_round.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_draft_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_draft_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_drawer.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_drawer_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_drawer_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_earth_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_earth_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_face.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_face_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_face_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_favorite_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_favorite_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_inbox_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_inbox_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_location.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_location_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_location_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_mail_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_mail_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_more.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_qq.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_qzone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_qzone.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_refresh.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_refresh_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_refresh_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_sent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_sent.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_sent_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_sent_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_setting.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_setting_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_setting_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_share.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_share_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_share_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_star.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_star_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_star_empty.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_star_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_star_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_track_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_track_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_up.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_up_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_up_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_wechat.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-hdpi/ic_weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-hdpi/ic_weibo.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-v21/ripple_borderless_default.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-v21/ripple_borderless_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-v21/ripple_default.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
9 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-v21/ripple_theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-v21/ripple_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_arrow_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_arrow_left.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_arrow_up.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_check.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_code_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_code_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_cross_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_cross_round.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_dislike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_dislike.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_draft_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_draft_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_drawer.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_drawer_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_drawer_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_earth_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_earth_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_face.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_face_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_face_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_favorite_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_favorite_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_inbox_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_inbox_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_like.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_location.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_location_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_location_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_mail_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_mail_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_more.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_qq.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_qzone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_qzone.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_refresh.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_refresh_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_refresh_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_sent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_sent.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_sent_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_sent_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_setting.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_setting_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_setting_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_share.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_share_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_share_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_star.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_star_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_star_empty.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_star_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_star_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_track_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_track_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_up.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_up_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_up_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_wechat.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xhdpi/ic_weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xhdpi/ic_weibo.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_arrow_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_arrow_left.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_arrow_up.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_check.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_code_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_code_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_cross_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_cross_round.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_dislike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_dislike.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_draft_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_draft_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_drawer.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_drawer_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_drawer_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_earth_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_earth_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_face.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_face_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_face_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_favorite_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_favorite_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_inbox_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_inbox_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_like.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_like.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_location.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_location_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_location_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_mail_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_mail_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_more.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_qq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_qq.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_qzone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_qzone.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_refresh.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_refresh_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_refresh_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_sent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_sent.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_sent_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_sent_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_setting.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_setting_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_setting_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_share.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_share_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_share_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_star.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_star_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_star_empty.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_star_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_star_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_track_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_track_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_up.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_up_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_up_gray.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_wechat.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable-xxhdpi/ic_weibo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable-xxhdpi/ic_weibo.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/ic_down_gray.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/ripple_borderless_default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/ripple_borderless_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/ripple_default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/ripple_theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/ripple_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/shape_cursor_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/shape_cursor_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/shape_gradient_gray.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/drawable/test_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/JetWidget/src/main/res/drawable/test_image.png
--------------------------------------------------------------------------------
/JetWidget/src/main/res/values-v19/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 | 25dp
7 |
8 | 15sp
9 | 12sp
10 | 18sp
11 | 20sp
12 | 25sp
13 |
14 | 15dp
15 | 10dp
16 | 25dp
17 | 5dp
18 | 2dp
19 |
20 |
21 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | JetWidget
3 |
4 |
--------------------------------------------------------------------------------
/JetWidget/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
17 |
18 |
22 |
23 |
26 |
27 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 郑颖铎
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
3 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | apply from: 'deploy.gradle'
3 |
4 | dependencies {
5 | compile fileTree(dir: 'libs', include: ['*.jar'])
6 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
7 | exclude group: 'com.android.support', module: 'support-annotations'
8 | exclude group: 'com.google.code.findbugs'
9 | })
10 | compile 'com.android.support:appcompat-v7:25.1.1'
11 | testCompile 'junit:junit:4.12'
12 |
13 | compile project(':JetUtil')
14 | compile project(':JetImage')
15 | compile(project(':JetGear')) {
16 | exclude module: ':JetUtil'
17 | exclude module: ':JetImage'
18 | }
19 | compile 'com.makeramen:roundedimageview:2.3.0'
20 | }
21 |
--------------------------------------------------------------------------------
/app/jetpack_dev.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/jetpack_dev.jks
--------------------------------------------------------------------------------
/app/libs/jsoup-1.9.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/libs/jsoup-1.9.2.jar
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ganguo/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/io/mindjet/jetpack/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("io.mindjet.litereader", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/assets/fonts/Courgette-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/src/main/assets/fonts/Courgette-Regular.ttf
--------------------------------------------------------------------------------
/app/src/main/assets/fonts/Pacifico-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/src/main/assets/fonts/Pacifico-Regular.ttf
--------------------------------------------------------------------------------
/app/src/main/assets/me.json:
--------------------------------------------------------------------------------
1 | {
2 | "intro":"我是一个年轻的Android开发工程师,毕业于中山大学,这个app是我的毕业设计。",
3 | "mail":"pearl920@outlook.com",
4 | "website":"mindjet.github.io",
5 | "github":"www.github.com/Mindjet"
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/BaseApp.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader;
2 |
3 | import android.app.Application;
4 | import android.os.Environment;
5 |
6 | import java.io.File;
7 |
8 | import io.mindjet.jetgear.network.ServiceGen;
9 | import io.mindjet.jetimage.picker.ImagePicker;
10 | import io.mindjet.litereader.BuildConfig;
11 |
12 | /**
13 | * Created by Jet on 2/8/17.
14 | */
15 |
16 | public class BaseApp extends Application {
17 |
18 | private static BaseApp baseApp;
19 | private File appDir;
20 |
21 | @Override
22 | public void onCreate() {
23 | super.onCreate();
24 | baseApp = this;
25 | BaseEnv.init(this);
26 | ServiceGen.init(BuildConfig.BASE_URL, BuildConfig.BUILD_TYPE);
27 | makeAppDir();
28 | ImagePicker.setImagePath(Environment.getExternalStorageDirectory() + "/" + BuildConfig.DATA_PATH);
29 | }
30 |
31 | /**
32 | * Make a directory for this application.
33 | */
34 | private void makeAppDir() {
35 | appDir = new File(Environment.getExternalStorageDirectory() + "/" + BuildConfig.DATA_PATH);
36 | if (!appDir.exists())
37 | appDir.mkdir();
38 | }
39 |
40 | public static BaseApp me() {
41 | return baseApp;
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/BaseEnv.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader;
2 |
3 | import android.content.Context;
4 | import android.os.Build;
5 |
6 | import io.mindjet.litereader.BuildConfig;
7 | import io.mindjet.jetutil.logger.JLogger;
8 |
9 |
10 | /**
11 | * Created by Jet on 2/17/17.
12 | */
13 |
14 | public class BaseEnv {
15 |
16 | private static JLogger jLogger = JLogger.get(BaseEnv.class.getSimpleName());
17 |
18 | public static void init(Context context) {
19 | jLogger.i("************************************");
20 | jLogger.i("APPLICATION ID: " + BuildConfig.APPLICATION_ID);
21 | jLogger.i("BUILD TYPE: " + BuildConfig.BUILD_TYPE);
22 | jLogger.i("PRODUCT FLAVOR: " + BuildConfig.FLAVOR);
23 | jLogger.i("SYSTEM API: API " + Build.VERSION.SDK_INT);
24 | jLogger.i("VERSION CODE: " + BuildConfig.VERSION_CODE);
25 | jLogger.i("VERSION NAME: " + BuildConfig.VERSION_NAME);
26 | jLogger.i("BASE URL: " + BuildConfig.BASE_URL);
27 | jLogger.i("SCREEN SIZE: " + context.getResources().getDisplayMetrics().heightPixels + "x" + context.getResources().getDisplayMetrics().widthPixels);
28 | jLogger.i("************************************");
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/adapter/ColumnViewPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.adapter;
2 |
3 | import android.databinding.ViewDataBinding;
4 | import android.view.ViewGroup;
5 |
6 | import io.mindjet.jetgear.adapter.ViewPagerAdapter;
7 | import io.mindjet.jetgear.mvvm.viewmodel.ViewModelBinder;
8 | import io.mindjet.jetgear.mvvm.viewmodel.list.SwipeRecyclerViewModel;
9 |
10 | /**
11 | * Created by Jet on 3/13/17.
12 | */
13 |
14 | public class ColumnViewPagerAdapter extends ViewPagerAdapter {
15 |
16 | @Override
17 | protected Object initItem(ViewGroup container, SwipeRecyclerViewModel item, String title, int position) {
18 | ViewDataBinding binding = ViewModelBinder.bind(container, item);
19 | return binding.getRoot();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/adapter/ReviewViewPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.adapter;
2 |
3 | import android.databinding.ViewDataBinding;
4 | import android.view.ViewGroup;
5 |
6 | import io.mindjet.jetgear.adapter.ViewPagerAdapter;
7 | import io.mindjet.jetgear.mvvm.viewmodel.ViewModelBinder;
8 | import io.mindjet.jetgear.mvvm.viewmodel.list.SwipeRecyclerViewModel;
9 |
10 | /**
11 | * Created by Jet on 3/21/17.
12 | */
13 |
14 | public class ReviewViewPagerAdapter extends ViewPagerAdapter {
15 |
16 | @Override
17 | protected Object initItem(ViewGroup container, SwipeRecyclerViewModel item, String title, int position) {
18 | ViewDataBinding binding = ViewModelBinder.bind(container, item);
19 | return binding.getRoot();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/entity/ChannelCode.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.entity;
2 |
3 | /**
4 | * 频道代码
5 | *
6 | * Created by Mindjet on 2017/4/13.
7 | */
8 |
9 | public class ChannelCode {
10 |
11 | //TODO 注意后期更新频道数目
12 |
13 | public final static String ZHIHU = "ZHIHU";
14 | public final static String DAILY = "DAILY";
15 | public final static String DOUBAN_MOVIE = "DOUBAN_MOVIE";
16 | public final static String ONE_REVIEW = "ONE_REVIEW";
17 | public final static String ONE_ARTICLE = "ONE_ARTICLE";
18 | public final static String DOUBAN_BOOK = "DOUBAN_BOOK";
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/http/SimpleHttpSubscriber.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.http;
2 |
3 | import java.net.SocketTimeoutException;
4 | import java.net.UnknownHostException;
5 |
6 | import io.mindjet.jetutil.hint.Toaster;
7 | import io.mindjet.jetutil.logger.JLogger;
8 | import io.mindjet.litereader.BaseApp;
9 | import rx.Subscriber;
10 |
11 | /**
12 | * 统一处理 error 信息
13 | *
14 | * Created by Mindjet on 2017/4/19.
15 | */
16 |
17 | public abstract class SimpleHttpSubscriber extends Subscriber {
18 |
19 | private JLogger jLogger = JLogger.get(getClass().getSimpleName());
20 |
21 | @Override
22 | public void onError(Throwable throwable) {
23 | if (throwable instanceof UnknownHostException) {
24 | Toaster.toast(BaseApp.me(), "无法连接至服务器,请检查您的网络连接或者稍后再试。");
25 | } else if (throwable instanceof SocketTimeoutException) {
26 | Toaster.toast(BaseApp.me(), "连接服务器超时,请重试。");
27 | } else {
28 | Toaster.toast(BaseApp.me(), throwable.getMessage());
29 | }
30 | throwable.printStackTrace();
31 | onFailed();
32 | onCompleted(); //默认情况下,跑入error后不会执行onComplete
33 | }
34 |
35 | protected void onFailed() {
36 |
37 | }
38 |
39 | @Override
40 | public void onCompleted() {
41 |
42 | }
43 |
44 | @Override
45 | public abstract void onNext(T t);
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/http/ThreadDispatcher.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.http;
2 |
3 | import rx.Observable;
4 | import rx.android.schedulers.AndroidSchedulers;
5 | import rx.schedulers.Schedulers;
6 |
7 | /**
8 | * 统一切换线程
9 | *
10 | * Created by Mindjet on 2017/4/16.
11 | */
12 |
13 | public class ThreadDispatcher implements Observable.Transformer {
14 |
15 | @Override
16 | public Observable call(Observable observable) {
17 | return observable.subscribeOn(Schedulers.io())
18 | .observeOn(AndroidSchedulers.mainThread());
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/DoubanMovieItem.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.douban.Images;
8 | import io.mindjet.litereader.model.item.douban.Rating;
9 | import io.mindjet.litereader.model.item.douban.Staff;
10 |
11 | /**
12 | * Created by Jet on 3/16/17.
13 | */
14 |
15 | public class DoubanMovieItem {
16 |
17 | @SerializedName("rating")
18 | public Rating rating;
19 | @SerializedName("genres")
20 | public List genres;
21 | @SerializedName("title")
22 | public String title;
23 | @SerializedName("casts")
24 | public List actors;
25 | @SerializedName("duration")
26 | public List duration;
27 | @SerializedName("collect_count")
28 | public String collectCount;
29 | @SerializedName("mainland_pubdate")
30 | public String mainlandPubdate;
31 | @SerializedName("has_video")
32 | public boolean hasVideo;
33 | @SerializedName("original_title")
34 | public String originalTitle;
35 | @SerializedName("directors")
36 | public List directors;
37 | @SerializedName("pubdates")
38 | public List pubdates;
39 | @SerializedName("year")
40 | public String year;
41 | @SerializedName("images")
42 | public Images images;
43 | @SerializedName("alt")
44 | public String alt;
45 | @SerializedName("id")
46 | public String id;
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/ZhihuSectionItem.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * Created by Jet on 3/15/17.
7 | */
8 |
9 | public class ZhihuSectionItem {
10 |
11 | /*
12 | "description": "看别人的经历,理解自己的生活",
13 | "id": 1,
14 | "name": "深夜惊奇",
15 | "thumbnail": "http://pic3.zhimg.com/91125c9aebcab1c84f58ce4f8779551e.jpg"
16 | */
17 | @SerializedName("description")
18 | public String description;
19 | @SerializedName("id")
20 | public String id;
21 | @SerializedName("name")
22 | public String name;
23 | @SerializedName("thumbnail")
24 | public String thumbnail;
25 |
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/ZhihuStoryItem.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * Created by Jet on 3/13/17.
9 | */
10 |
11 | public class ZhihuStoryItem {
12 | /*
13 | "title": "人工智能又来抢人类的饭碗了,这次是插画师",
14 | "ga_prefix": "031316",
15 | "images": [
16 | "http://pic3.zhimg.com/ae7d3c30accadbec5b7e6b561e025a6e.jpg"
17 | ],
18 | "multipic": true,
19 | "type": 0,
20 | "id": 9284316
21 | */
22 | @SerializedName("title")
23 | public String title;
24 | @SerializedName("ga_prefix")
25 | public String gaPrefix;
26 | @SerializedName("images")
27 | public List images;
28 | @SerializedName("multipic")
29 | public boolean multiPic;
30 | @SerializedName("type")
31 | public String type;
32 | @SerializedName("id")
33 | public String id;
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/ZhihuTopStoryItem.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * Created by Jet on 3/13/17.
7 | */
8 |
9 | public class ZhihuTopStoryItem {
10 |
11 | /*
12 | "image": "http://pic4.zhimg.com/53ed0d4314ca415bd8108cd82be1e6a7.jpg",
13 | "type": 0,
14 | "id": 9284277,
15 | "ga_prefix": "031314",
16 | "title": "咪蒙:网红,病人,潮水的一种方向"
17 | */
18 |
19 | @SerializedName("image")
20 | public String image;
21 | @SerializedName("type")
22 | public String type;
23 | @SerializedName("id")
24 | public String id;
25 | @SerializedName("ga_prefix")
26 | public String gaPrefix;
27 | @SerializedName("title")
28 | public String title;
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/book/Book.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.book;
2 |
3 | import io.mindjet.litereader.model.item.douban.Images;
4 |
5 | /**
6 | * 图书实体
7 | *
8 | * Created by Jet on 5/5/17.
9 | */
10 |
11 | public class Book {
12 |
13 | public String id;
14 | public String title;
15 | public String subtitle;
16 | public Images images;
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/book/BookList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.book;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * 图书列表 实体
7 | *
8 | * Created by Jet on 5/5/17.
9 | */
10 |
11 | public class BookList {
12 |
13 | public String count;
14 | public String start;
15 | public String total;
16 | public List books;
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/book/Rating.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.book;
2 |
3 | /**
4 | * 图书评价 实体
5 | *
6 | * Created by Mindjet on 5/5/17.
7 | */
8 |
9 | public class Rating {
10 |
11 |
12 | /**
13 | * max : 10
14 | * numRaters : 13123
15 | * average : 7.7
16 | * min : 0
17 | */
18 |
19 | public int max;
20 | public int numRaters;
21 | public String average;
22 | public int min;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/book/Tag.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.book;
2 |
3 | /**
4 | * 图书标签
5 | *
6 | * Created by Jet on 5/5/17.
7 | */
8 |
9 | public class Tag {
10 | public String count;
11 | public String name;
12 | public String title;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Author.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | // 用户实体
12 | public class Author implements Serializable {
13 |
14 | @SerializedName("uid")
15 | public String uid;
16 | @SerializedName("avatar")
17 | public String avatar;
18 | @SerializedName("signature")
19 | public String signature;
20 | @SerializedName("alt")
21 | public String alt;
22 | @SerializedName("id")
23 | public String id;
24 | @SerializedName("name")
25 | public String name;
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Comment.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | /**
12 | * 短影评实体,长影评实体为 {@link Review}
13 | */
14 |
15 | public class Comment implements Serializable {
16 |
17 | @SerializedName("rating")
18 | public Rating rating;
19 | @SerializedName("useful_count")
20 | public String usefulCount;
21 | @SerializedName("author")
22 | public Author author;
23 | @SerializedName("subject_id") //被评论电影的id
24 | public String subjectId;
25 | @SerializedName("content")
26 | public String content;
27 | @SerializedName("created_at")
28 | public String createdAt;
29 | @SerializedName("id")
30 | public String id;
31 |
32 | public class Rating implements Serializable {
33 | @SerializedName("max")
34 | public String max;
35 | @SerializedName("value")
36 | public String value;
37 | @SerializedName("min")
38 | public String min;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/DetailStill.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * 详细剧照 实体
7 | *
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | public class DetailStill {
12 |
13 | @SerializedName("thumb") //中图
14 | public String thumb;
15 | @SerializedName("icon") //小图
16 | public String icon;
17 | @SerializedName("author")
18 | public Author author;
19 | @SerializedName("created_at")
20 | public String createdAt;
21 | @SerializedName("album_id")
22 | public String albumId;
23 | @SerializedName("cover")
24 | public String cover; //方图
25 | @SerializedName("id")
26 | public String id;
27 | @SerializedName("comments_count")
28 | public String commentsCount;
29 | @SerializedName("image") //大图
30 | public String image;
31 | @SerializedName("alt")
32 | public String alt;
33 | @SerializedName("album_title")
34 | public String albumTitle;
35 | @SerializedName("subject_id")
36 | public String subjectId;
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Images.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * Created by Jet on 3/16/17.
7 | */
8 |
9 | // 演职员头像、电影海报实体
10 | public class Images {
11 | @SerializedName("small")
12 | public String small;
13 | @SerializedName("large")
14 | public String large;
15 | @SerializedName("medium")
16 | public String medium;
17 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Rating.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | public class Rating implements Serializable {
12 |
13 | @SerializedName("max")
14 | public String max;
15 | @SerializedName("average")
16 | public String average;
17 | @SerializedName("stars")
18 | public String stars;
19 |
20 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Review.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | /**
12 | * 长影评实体,短影评实体为 {@link Comment}
13 | */
14 |
15 | public class Review implements Serializable {
16 |
17 | @SerializedName("rating")
18 | public Rating rating;
19 | @SerializedName("useful_count")
20 | public String usefulCount;
21 | @SerializedName("author")
22 | public Author author;
23 | @SerializedName("subject_id") //被评论电影的id
24 | public String subjectId;
25 | @SerializedName("content")
26 | public String content;
27 | @SerializedName("created_at")
28 | public String createdAt;
29 | @SerializedName("title")
30 | public String title;
31 | @SerializedName("updated_at")
32 | public String updatedAt;
33 | @SerializedName("summary")
34 | public String summary;
35 | @SerializedName("id")
36 | public String id;
37 | @SerializedName("useless_count")
38 | public String uselessCount;
39 | @SerializedName("share_url")
40 | public String shareUrl;
41 | @SerializedName("alt")
42 | public String alt;
43 |
44 | public class Rating implements Serializable {
45 | @SerializedName("max")
46 | public String max;
47 | @SerializedName("value")
48 | public String value;
49 | @SerializedName("min")
50 | public String min;
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Staff.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | // 演职人员实体,可为演员、导演或者作者
12 | public class Staff implements Serializable {
13 | @SerializedName("avatars")
14 | public Images avatars;
15 | @SerializedName("name_en")
16 | public String nameEn;
17 | @SerializedName("name")
18 | public String name;
19 | @SerializedName("alt")
20 | public String alt;
21 | @SerializedName("id")
22 | public String id;
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/StaffDetail.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * 演职员详情
9 | *
10 | * Created by Mindjet on 2017/4/17.
11 | */
12 |
13 | public class StaffDetail {
14 |
15 | @SerializedName("name")
16 | public String name;
17 | @SerializedName("works")
18 | public List works;
19 | @SerializedName("name_en")
20 | public String nameEn;
21 | @SerializedName("born_place")
22 | public String bornPlace;
23 | @SerializedName("gender")
24 | public String gender;
25 | @SerializedName("mobile_url")
26 | public String mobileUrl;
27 | @SerializedName("avatars")
28 | public Images avatars;
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Still.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 剧照实体,在获取影片详情时一并获得。
9 | *
10 | * 专门获得的剧照实体是 {@link DetailStill}
11 | * Created by Jet on 3/16/17.
12 | */
13 |
14 | public class Still implements Serializable {
15 | @SerializedName("thumb") //中图
16 | public String thumb;
17 | @SerializedName("image") //大图
18 | public String image;
19 | @SerializedName("cover") //方形
20 | public String cover;
21 | @SerializedName("alt")
22 | public String alt;
23 | @SerializedName("id")
24 | public String id;
25 | @SerializedName("icon") //小图
26 | public String icon;
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Trailer.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * Created by Jet on 3/16/17.
9 | */
10 |
11 | //预告片或者花絮实体
12 | public class Trailer implements Serializable {
13 |
14 | @SerializedName("medium")
15 | public String medium;
16 | @SerializedName("title")
17 | public String title;
18 | @SerializedName("subject_id")
19 | public String subjectId;
20 | @SerializedName("alt")
21 | public String alt;
22 | @SerializedName("small")
23 | public String small;
24 | @SerializedName("resource_url")
25 | public String resourceUrl;
26 | @SerializedName("id")
27 | public String id;
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/douban/Work.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.douban;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.DoubanMovieItem;
8 |
9 | /**
10 | * 演职员作品
11 | *
12 | * Created by Mindjet on 2017/4/17.
13 | */
14 |
15 | public class Work {
16 |
17 | @SerializedName("roles")
18 | public List roles;
19 | @SerializedName("subject")
20 | public DoubanMovieItem subject;
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/one/Article.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.one;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * ONE文章 实体
7 | *
8 | * Created by Jet on 5/5/17.
9 | */
10 |
11 | public class Article {
12 | @SerializedName("item_id")
13 | public String id;
14 | public String title;
15 | public String forward;
16 | @SerializedName("img_url")
17 | public String imgUrl;
18 | @SerializedName("like_count")
19 | public String likeCount;
20 | @SerializedName("post_date")
21 | public String postDate;
22 | public Author author;
23 | @SerializedName("share_info")
24 | public ShareInfo shareInfo;
25 | @SerializedName("share_url")
26 | public String shareUrl;
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/one/ArticleDetail.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.one;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * ONE文章 详情 实体
9 | *
10 | * Created by Mindjet on 5/5/17.
11 | */
12 |
13 | public class ArticleDetail {
14 |
15 | @SerializedName("content_id")
16 | public String id;
17 | @SerializedName("hp_title")
18 | public String title;
19 | @SerializedName("hp_content")
20 | public String content;
21 | @SerializedName("last_update_date")
22 | public String updateDate;
23 | @SerializedName("guide_word")
24 | public String guideWord;
25 | public List author;
26 | @SerializedName("web_url")
27 | public String webUrl;
28 | @SerializedName("hp_author_introduce")
29 | public String authorIntroduce;
30 | @SerializedName("praisenum")
31 | public String praiseNum;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/one/Author.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.one;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 作者 实体
9 | *
10 | * Created by Mindjet on 5/4/17.
11 | */
12 |
13 | public class Author implements Serializable {
14 |
15 | /**
16 | * user_id : 6080525
17 | * user_name : 丹丹扬
18 | * desc : 她和时间跳华尔兹。
19 | * wb_name :
20 | * is_settled : 0
21 | * settled_type : 0
22 | * summary : 她和时间跳华尔兹。
23 | * fanNum : 835
24 | * web_url : http://image.wufazhuce.com/FhqPpjWkOEWCtqK3tPCAVpkAtALp
25 | */
26 |
27 | @SerializedName("user_id")
28 | public String id;
29 | @SerializedName("user_name")
30 | public String name;
31 | @SerializedName("desc")
32 | public String signature;
33 | @SerializedName("web_url")
34 | public String avatar;
35 | @SerializedName("fans_total")
36 | public String fanNum;
37 | @SerializedName("wb_name")
38 | public String WbName;
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/one/Review.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.one;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 影评实体
9 | *
10 | * Created by Jet on 5/4/17.
11 | */
12 |
13 | public class Review implements Serializable {
14 |
15 | @SerializedName("item_id")
16 | public String id;
17 | public String title;
18 | public String forward;
19 | @SerializedName("img_url")
20 | public String imgUrl;
21 | @SerializedName("like_count")
22 | public String likeCount;
23 | @SerializedName("post_date")
24 | public String postDate;
25 | public Author author;
26 | public String subtitle; //影片名
27 | @SerializedName("share_url")
28 | public String shareUrl;
29 | @SerializedName("share_info")
30 | public ShareInfo shareInfo;
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/item/one/ShareInfo.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.item.one;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * 分享内容 实体
7 | *
8 | * Created by Jet on 5/4/17.
9 | */
10 |
11 | public class ShareInfo implements Serializable {
12 |
13 | public String image;
14 | public String title;
15 | public String content;
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/DailyArticle.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * Created by Jet on 3/16/17.
7 | */
8 |
9 | public class DailyArticle {
10 |
11 | @SerializedName("data")
12 | public Data data;
13 |
14 | public class Data {
15 |
16 | @SerializedName("author")
17 | public String author;
18 | @SerializedName("title")
19 | public String title;
20 | @SerializedName("digest")
21 | public String digest;
22 | @SerializedName("content")
23 | public String content;
24 | @SerializedName("wc")
25 | public String wordCount;
26 |
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/DoubanCommentList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.douban.Comment;
8 |
9 | /**
10 | * Created by Jet on 3/16/17.
11 | */
12 |
13 | public class DoubanCommentList {
14 |
15 | @SerializedName("count")
16 | public String count;
17 | @SerializedName("comments")
18 | public List comments;
19 | @SerializedName("total")
20 | public String total;
21 | @SerializedName("next_start")
22 | public String nextStart;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/DoubanMovieList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.DoubanMovieItem;
8 |
9 | /**
10 | * Created by Jet on 3/16/17.
11 | */
12 |
13 | public class DoubanMovieList {
14 |
15 | @SerializedName("count")
16 | public String count;
17 | @SerializedName("start")
18 | public String start;
19 | @SerializedName("total")
20 | public String total;
21 | @SerializedName("subjects")
22 | public List movies;
23 | @SerializedName("title")
24 | public String title;
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/DoubanReviewList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.douban.Review;
8 |
9 | /**
10 | * Created by Jet on 3/16/17.
11 | */
12 |
13 | public class DoubanReviewList {
14 |
15 | @SerializedName("count")
16 | public String count;
17 | @SerializedName("reviews")
18 | public List reviews;
19 | @SerializedName("total")
20 | public String total;
21 | @SerializedName("next_start")
22 | public String nextStart;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/DoubanStillList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.douban.DetailStill;
8 |
9 | /**
10 | * Created by Jet on 3/16/17.
11 | */
12 |
13 | public class DoubanStillList {
14 | @SerializedName("count")
15 | public String count;
16 | @SerializedName("photos")
17 | public List photos;
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/OneData.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | /**
4 | * ONE数据 通用 实体
5 | *
6 | * Created by Mindjet on 5/5/17.
7 | */
8 |
9 | public class OneData {
10 |
11 | public int res;
12 | public T data;
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/OneDataList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * ONE数据列表通用 实体
7 | *
8 | * Created by Mindjet on 5/4/17.
9 | */
10 |
11 | public class OneDataList {
12 |
13 | public String res;
14 | public List data;
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/ZhihuDailyList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.ZhihuStoryItem;
8 | import io.mindjet.litereader.model.item.ZhihuTopStoryItem;
9 |
10 | /**
11 | * Created by Jet on 3/13/17.
12 | */
13 |
14 | public class ZhihuDailyList {
15 |
16 | @SerializedName("date")
17 | public String date;
18 | @SerializedName("stories")
19 | public List stories;
20 | @SerializedName("top_stories")
21 | public List topStories;
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/list/ZhihuSectionList.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.list;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | import io.mindjet.litereader.model.item.ZhihuSectionItem;
8 |
9 | /**
10 | * Created by Jet on 3/15/17.
11 | */
12 |
13 | public class ZhihuSectionList {
14 | @SerializedName("data")
15 | public List data;
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/other/DailyWallpaper.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.other;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * Created by Jet on 3/15/17.
9 | */
10 |
11 | public class DailyWallpaper {
12 |
13 | @SerializedName("images")
14 | public List data;
15 |
16 | public class Data {
17 | @SerializedName("url")
18 | public String url;
19 | @SerializedName("copyright")
20 | public String copyright;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/other/Imdb.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.other;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | /**
6 | * Created by Jet on 3/17/17.
7 | */
8 |
9 | public class Imdb {
10 |
11 | @SerializedName("Rated") //评级
12 | private String rated;
13 | @SerializedName("Metascore") // Metacritic 网站评分, Metascores 范围从0-100,数值越高,越受欢迎
14 | public String metascore;
15 | @SerializedName("imdbRating")
16 | public String imdbRating;
17 | @SerializedName("imdbVotes")
18 | public String imdbVotes;
19 | @SerializedName("imdbID")
20 | public String imdbId;
21 |
22 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/other/Me.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.other;
2 |
3 | /**
4 | * 关于我 实体
5 | *
6 | * Created by Jet on 5/2/17.
7 | */
8 |
9 | public class Me {
10 |
11 | private String intro;
12 | private String website;
13 | private String mail;
14 | private String github;
15 |
16 | public String getIntro() {
17 | return intro;
18 | }
19 |
20 | public void setIntro(String intro) {
21 | this.intro = intro;
22 | }
23 |
24 | public String getWebsite() {
25 | return website;
26 | }
27 |
28 | public void setWebsite(String website) {
29 | this.website = website;
30 | }
31 |
32 | public String getMail() {
33 | return mail;
34 | }
35 |
36 | public void setMail(String mail) {
37 | this.mail = mail;
38 | }
39 |
40 | public String getGithub() {
41 | return github;
42 | }
43 |
44 | public void setGithub(String github) {
45 | this.github = github;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/model/other/RottenTomatoes.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.model.other;
2 |
3 | /**
4 | * Created by Jet on 3/17/17.
5 | */
6 |
7 | public class RottenTomatoes {
8 |
9 | private String tomatoMeter; //烂番茄新鲜度
10 | private String audienceScore; //爆米花指数
11 |
12 | public String getTomatoMeter() {
13 | return tomatoMeter;
14 | }
15 |
16 | public void setTomatoMeter(String tomatoMeter) {
17 | this.tomatoMeter = tomatoMeter;
18 | }
19 |
20 | public String getAudienceScore() {
21 | return audienceScore;
22 | }
23 |
24 | public void setAudienceScore(String audienceScore) {
25 | this.audienceScore = audienceScore;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/reactivex/ActionHttpError.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.reactivex;
2 |
3 | import java.net.SocketTimeoutException;
4 | import java.net.UnknownHostException;
5 |
6 | import io.mindjet.jetutil.hint.Toaster;
7 | import io.mindjet.litereader.BaseApp;
8 | import rx.functions.Action1;
9 |
10 | /**
11 | * Created by Jet on 3/16/17.
12 | */
13 |
14 | public abstract class ActionHttpError implements Action1 {
15 |
16 | @Override
17 | public void call(Throwable throwable) {
18 | Toaster.toast(BaseApp.me(), resolveThrowable(throwable), 1500);
19 | onError();
20 | }
21 |
22 | private static String resolveThrowable(Throwable throwable) {
23 | if (throwable instanceof UnknownHostException) {
24 | return "无法连接至服务器,请检查您的网络连接或者稍后再试。";
25 | } else if (throwable instanceof SocketTimeoutException) {
26 | return "连接服务器超时,请重试。";
27 | } else {
28 | return throwable.getMessage();
29 | }
30 | }
31 |
32 | protected abstract void onError();
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/reactivex/RxAction.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.reactivex;
2 |
3 | import java.net.SocketTimeoutException;
4 | import java.net.UnknownHostException;
5 |
6 | import io.mindjet.jetutil.hint.Toaster;
7 | import io.mindjet.litereader.BaseApp;
8 | import rx.functions.Action1;
9 |
10 | /**
11 | * Created by Jet on 3/14/17.
12 | */
13 |
14 | public class RxAction {
15 |
16 | public static Action1 onError() {
17 | return new Action1() {
18 | @Override
19 | public void call(Throwable throwable) {
20 | Toaster.toast(BaseApp.me(), resolveThrowable(throwable), 1500);
21 | }
22 | };
23 | }
24 |
25 | public static String resolveThrowable(Throwable throwable) {
26 | if (throwable instanceof UnknownHostException) {
27 | return "无法连接至服务器,请检查您的网络连接或者稍后再试。";
28 | } else if (throwable instanceof SocketTimeoutException) {
29 | return "连接服务器超时,请重试。";
30 | } else {
31 | return throwable.getMessage();
32 | }
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/reactivex/RxLoadingView.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.reactivex;
2 |
3 | import android.content.Context;
4 | import android.support.annotation.StringRes;
5 |
6 | import io.mindjet.jetwidget.LoadingView;
7 | import rx.functions.Action0;
8 | import rx.functions.Action1;
9 | import rx.functions.Actions;
10 |
11 | /**
12 | * {@link io.mindjet.jetwidget.LoadingView} for RxJava.
13 | *
14 | * Created by Mindjet on 2017/4/26.
15 | */
16 |
17 | public class RxLoadingView {
18 |
19 | public static Action0 show(final Context context, @StringRes final int stringRes) {
20 | return new Action0() {
21 | @Override
22 | public void call() {
23 | LoadingView.show(context, stringRes);
24 | }
25 | };
26 | }
27 |
28 | public static Action0 dismiss() {
29 | return new Action0() {
30 | @Override
31 | public void call() {
32 | LoadingView.dismiss();
33 | }
34 | };
35 | }
36 |
37 | public static Action1 showAction1(Context context, @StringRes int stringRes) {
38 | return Actions.toAction1(show(context, stringRes));
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/reactivex/RxToaster.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.reactivex;
2 |
3 | import android.content.Context;
4 | import android.support.annotation.StringRes;
5 |
6 | import io.mindjet.jetutil.hint.Toaster;
7 | import io.mindjet.jetutil.logger.JLogger;
8 | import rx.functions.Action0;
9 | import rx.functions.Action1;
10 | import rx.functions.Actions;
11 |
12 | /**
13 | * {@link io.mindjet.jetutil.hint.Toaster} for RxJava.
14 | *
15 | * Created by Mindjet on 2017/4/27.
16 | */
17 |
18 | public class RxToaster {
19 |
20 | private static JLogger jLogger = JLogger.get(RxToaster.class.getClass().getSimpleName());
21 |
22 | public static Action0 showAction0(final Context context, @StringRes final int stringRes) {
23 | return new Action0() {
24 | @Override
25 | public void call() {
26 | Toaster.toast(context, context.getResources().getString(stringRes));
27 | }
28 | };
29 | }
30 |
31 |
32 | public static Action1 showAction1(final Context context, @StringRes final int stringRes) {
33 | return Actions.toAction1(showAction0(context, stringRes));
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/service/OneService.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.service;
2 |
3 | import io.mindjet.litereader.model.item.one.Article;
4 | import io.mindjet.litereader.model.item.one.ArticleDetail;
5 | import io.mindjet.litereader.model.item.one.Review;
6 | import io.mindjet.litereader.model.list.OneData;
7 | import io.mindjet.litereader.model.list.OneDataList;
8 | import retrofit2.http.GET;
9 | import retrofit2.http.Path;
10 | import rx.Observable;
11 |
12 | /**
13 | * ONE 接口
14 | *
15 | * Created by Mindjet on 3/13/17.
16 | */
17 |
18 | public interface OneService {
19 |
20 | @GET("http://v3.wufazhuce.com:8000/api/channel/movie/more/0")
21 | Observable> getReviewList();
22 |
23 | @GET("http://v3.wufazhuce.com:8000/api/channel/reading/more/0")
24 | Observable> getArticleList();
25 |
26 | @GET("http://v3.wufazhuce.com:8000/api/essay/{id}")
27 | Observable> getArticleDetail(@Path("id") String articleId);
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/service/TimeMovieService.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.service;
2 |
3 | /**
4 | * Created by Jet on 3/13/17.
5 | */
6 |
7 | public interface TimeMovieService {
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/service/ZhihuDailyService.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.service;
2 |
3 | import io.mindjet.litereader.model.detail.ZhihuStoryDetail;
4 | import io.mindjet.litereader.model.list.ZhihuDailyList;
5 | import io.mindjet.litereader.model.list.ZhihuSectionList;
6 | import retrofit2.http.GET;
7 | import retrofit2.http.Path;
8 | import rx.Observable;
9 |
10 | /**
11 | * Created by Jet on 3/13/17.
12 | */
13 |
14 | public interface ZhihuDailyService {
15 |
16 | @GET("http://news-at.zhihu.com/api/4/news/latest")
17 | Observable getLatest();
18 |
19 | /**
20 | * 获取某一天的前一天的日报,比如要获取9.20的日报,则应传入9.21
21 | *
22 | * @param date 日期,格式为yyyyMMdd
23 | */
24 | @GET("http://news-at.zhihu.com/api/4/news/before/{date}")
25 | Observable getBefore(@Path("date") String date);
26 |
27 | @GET("http://news-at.zhihu.com/api/4/news/{id}")
28 | Observable getStoryDetail(@Path("id") String id);
29 |
30 | @GET("http://news-at.zhihu.com/api/4/sections")
31 | Observable getSections();
32 |
33 | @GET("http://news-at.zhihu.com/api/4/section/{id}")
34 | Observable getSectionDetail(@Path("id") String id);
35 |
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/AboutMeActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.AboutMeViewModel;
8 |
9 | public class AboutMeActivity extends ViewModelCompatActivity {
10 |
11 | public static Intent intentFor(Context from) {
12 | return new Intent(from, AboutMeActivity.class);
13 | }
14 |
15 | @Override
16 | public AboutMeViewModel giveMeViewModel() {
17 | return new AboutMeViewModel();
18 | }
19 |
20 | @Override
21 | public void onViewAttached(AboutMeViewModel viewModel) {
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/ChannelSubscribeActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.list.ChannelSubscribeViewModel;
8 |
9 | /**
10 | * 订阅频道 activity
11 | *
12 | * Created by Mindjet on 2017/4/13.
13 | */
14 |
15 | public class ChannelSubscribeActivity extends ViewModelCompatActivity {
16 |
17 | public static Intent intentFor(Context context) {
18 | return new Intent(context, ChannelSubscribeActivity.class);
19 | }
20 |
21 | @Override
22 | public void onViewAttached(ChannelSubscribeViewModel viewModel) {
23 |
24 | }
25 |
26 | @Override
27 | public ChannelSubscribeViewModel giveMeViewModel() {
28 | return new ChannelSubscribeViewModel();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/CollectActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.list.CollectViewModel;
8 |
9 | /**
10 | * Created by Mindjet on 2017/4/26.
11 | */
12 |
13 | public class CollectActivity extends ViewModelCompatActivity {
14 |
15 | public static Intent intentFor(Context context){
16 | return new Intent(context, CollectActivity.class);
17 | }
18 |
19 | @Override
20 | public void onViewAttached(CollectViewModel viewModel) {
21 |
22 | }
23 |
24 | @Override
25 | public CollectViewModel giveMeViewModel() {
26 | return new CollectViewModel();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/DoubanMovieDetailActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.detail.DoubanMovieDetailViewModel;
8 |
9 | /**
10 | * Created by Jet on 3/17/17.
11 | */
12 |
13 | public class DoubanMovieDetailActivity extends ViewModelCompatActivity {
14 |
15 | public static Intent intentFor(Context context) {
16 | return new Intent(context, DoubanMovieDetailActivity.class);
17 | }
18 |
19 | @Override
20 | public void onViewAttached(DoubanMovieDetailViewModel viewModel) {
21 |
22 | }
23 |
24 | @Override
25 | public DoubanMovieDetailViewModel giveMeViewModel() {
26 | return new DoubanMovieDetailViewModel();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/DoubanMovieMoreReviewActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.entity.Constant;
8 | import io.mindjet.litereader.viewmodel.detail.DoubanMovieMoreReviewViewModel;
9 |
10 | /**
11 | * Created by Jet on 3/21/17.
12 | */
13 |
14 | public class DoubanMovieMoreReviewActivity extends ViewModelCompatActivity {
15 |
16 | public static Intent intentFor(Context context) {
17 | return new Intent(context, DoubanMovieMoreReviewActivity.class);
18 | }
19 |
20 | @Override
21 | public void onViewAttached(DoubanMovieMoreReviewViewModel viewModel) {
22 |
23 | }
24 |
25 | @Override
26 | public DoubanMovieMoreReviewViewModel giveMeViewModel() {
27 | String id = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_MOVIE_ID);
28 | String title = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_MOVIE_TITLE);
29 | return new DoubanMovieMoreReviewViewModel(id, title);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/DoubanMovieReviewActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.entity.Constant;
8 | import io.mindjet.litereader.model.item.douban.Review;
9 | import io.mindjet.litereader.viewmodel.detail.DoubanMovieReviewViewModel;
10 |
11 | /**
12 | * Created by Mindjet on 2017/4/6.
13 | */
14 |
15 | public class DoubanMovieReviewActivity extends ViewModelCompatActivity {
16 |
17 | public static Intent intentFor(Context context) {
18 | return new Intent(context, DoubanMovieReviewActivity.class);
19 | }
20 |
21 | @Override
22 | public void onViewAttached(DoubanMovieReviewViewModel viewModel) {
23 |
24 | }
25 |
26 | @Override
27 | public DoubanMovieReviewViewModel giveMeViewModel() {
28 | Review review = (Review) getIntent().getExtras().get(Constant.EXTRA_DOUBAN_MOVIE_REVIEW);
29 | String title = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_MOVIE_TITLE);
30 | return new DoubanMovieReviewViewModel(review, title);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/DoubanMovieSearchActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.app.Activity;
4 | import android.content.Context;
5 | import android.content.Intent;
6 |
7 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelActivity;
8 | import io.mindjet.litereader.viewmodel.detail.DoubanMovieSearchViewModel;
9 |
10 | /**
11 | * Created by Mindjet on 2018/3/12.
12 | */
13 |
14 | public class DoubanMovieSearchActivity extends ViewModelActivity {
15 |
16 | public static Intent intentFor(Context from) {
17 | return new Intent(from, DoubanMovieSearchActivity.class);
18 | }
19 |
20 | @Override
21 | public void onViewAttached(DoubanMovieSearchViewModel viewModel) {
22 |
23 | }
24 |
25 | @Override
26 | public DoubanMovieSearchViewModel giveMeViewModel() {
27 | return new DoubanMovieSearchViewModel();
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/DoubanStaffDetailActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.entity.Constant;
8 | import io.mindjet.litereader.viewmodel.detail.DoubanStaffDetailViewModel;
9 |
10 | /**
11 | * Created by Mindjet on 2017/4/17.
12 | */
13 |
14 | public class DoubanStaffDetailActivity extends ViewModelCompatActivity {
15 |
16 | public static Intent intentFor(Context context) {
17 | return new Intent(context, DoubanStaffDetailActivity.class);
18 | }
19 |
20 | @Override
21 | public void onViewAttached(DoubanStaffDetailViewModel viewModel) {
22 |
23 | }
24 |
25 | @Override
26 | public DoubanStaffDetailViewModel giveMeViewModel() {
27 | String id = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_STAFF_ID);
28 | String title = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_MOVIE_TITLE);
29 | return new DoubanStaffDetailViewModel(id, title);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/DoubanStillListActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.entity.Constant;
8 | import io.mindjet.litereader.viewmodel.list.DoubanStillListViewModel;
9 |
10 | /**
11 | * 豆瓣剧照列表 activity
12 | *
13 | * Created by Jet on 5/3/17.
14 | */
15 |
16 | public class DoubanStillListActivity extends ViewModelCompatActivity {
17 |
18 | public static Intent intentFor(Context context, String movieId, String title) {
19 | Intent intent = new Intent(context, DoubanStillListActivity.class);
20 | intent.putExtra(Constant.EXTRA_DOUBAN_MOVIE_ID, movieId);
21 | intent.putExtra(Constant.EXTRA_DOUBAN_MOVIE_TITLE, title);
22 | return intent;
23 | }
24 |
25 | @Override
26 | public void onViewAttached(DoubanStillListViewModel viewModel) {
27 |
28 | }
29 |
30 | @Override
31 | public DoubanStillListViewModel giveMeViewModel() {
32 | String movieId = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_MOVIE_ID);
33 | String title = getIntent().getStringExtra(Constant.EXTRA_DOUBAN_MOVIE_TITLE);
34 | return new DoubanStillListViewModel(movieId, title);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/MainActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.jetutil.manager.ActivityManager;
8 | import io.mindjet.litereader.viewmodel.MainViewModel;
9 |
10 | public class MainActivity extends ViewModelCompatActivity {
11 |
12 | public static Intent intentFor(Context context) {
13 | return new Intent(context, MainActivity.class);
14 | }
15 |
16 | @Override
17 | public MainViewModel giveMeViewModel() {
18 | return new MainViewModel();
19 | }
20 |
21 | @Override
22 | public void onViewAttached(MainViewModel viewModel) {
23 | ActivityManager.finishActivity(SplashActivity.class);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/OneArticleDetailActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.entity.Constant;
8 | import io.mindjet.litereader.viewmodel.detail.OneArticleDetailViewModel;
9 |
10 | /**
11 | * ONE 文章详情 activity
12 | *
13 | * Created by Mindjet on 5/5/17.
14 | */
15 |
16 | public class OneArticleDetailActivity extends ViewModelCompatActivity {
17 |
18 | public static Intent intentFor(Context context, String articleId, String image) {
19 | Intent intent = new Intent(context, OneArticleDetailActivity.class);
20 | intent.putExtra(Constant.EXTRA_ONE_ARTICLE_ID, articleId);
21 | intent.putExtra(Constant.EXTRA_ONE_ARTICLE_IMAGE, image);
22 | return intent;
23 | }
24 |
25 | @Override
26 | public void onViewAttached(OneArticleDetailViewModel viewModel) {
27 |
28 | }
29 |
30 | @Override
31 | public OneArticleDetailViewModel giveMeViewModel() {
32 | String articleId = getIntent().getStringExtra(Constant.EXTRA_ONE_ARTICLE_ID);
33 | String image = getIntent().getStringExtra(Constant.EXTRA_ONE_ARTICLE_IMAGE);
34 | return new OneArticleDetailViewModel(articleId, image);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/OneReviewDetailActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.entity.Constant;
8 | import io.mindjet.litereader.model.item.one.Review;
9 | import io.mindjet.litereader.viewmodel.detail.OneReviewDetailViewModel;
10 |
11 | /**
12 | * ONE 影评详情 activity
13 | *
14 | * Created by Jet on 5/4/17.
15 | */
16 |
17 | public class OneReviewDetailActivity extends ViewModelCompatActivity {
18 |
19 | public static Intent intentFor(Context context, Review review) {
20 | Intent intent = new Intent(context, OneReviewDetailActivity.class);
21 | intent.putExtra(Constant.EXTRA_ONE_REVIEW, review);
22 | return intent;
23 | }
24 |
25 | @Override
26 | public void onViewAttached(OneReviewDetailViewModel viewModel) {
27 |
28 | }
29 |
30 | @Override
31 | public OneReviewDetailViewModel giveMeViewModel() {
32 | Review review = (Review) getIntent().getSerializableExtra(Constant.EXTRA_ONE_REVIEW);
33 | return new OneReviewDetailViewModel(review);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/SettingActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.list.SettingViewModel;
8 |
9 | /**
10 | * 设置 activity
11 | *
12 | * Created by Mindjet on 2017/4/19.
13 | */
14 |
15 | public class SettingActivity extends ViewModelCompatActivity {
16 |
17 | public static Intent intentFor(Context context) {
18 | return new Intent(context, SettingActivity.class);
19 | }
20 |
21 | @Override
22 | public void onViewAttached(SettingViewModel viewModel) {
23 |
24 | }
25 |
26 | @Override
27 | public SettingViewModel giveMeViewModel() {
28 | return new SettingViewModel();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/ZhihuSectionDetailActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.list.ZhihuSectionDetailViewModel;
8 |
9 | /**
10 | * Created by Jet on 3/15/17.
11 | */
12 |
13 | public class ZhihuSectionDetailActivity extends ViewModelCompatActivity {
14 |
15 | public static Intent intentFor(Context context) {
16 | return new Intent(context, ZhihuSectionDetailActivity.class);
17 | }
18 |
19 | @Override
20 | public void onViewAttached(ZhihuSectionDetailViewModel viewModel) {
21 |
22 | }
23 |
24 | @Override
25 | public ZhihuSectionDetailViewModel giveMeViewModel() {
26 | return new ZhihuSectionDetailViewModel();
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/ui/activity/ZhihuStoryDetailActivity.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.ui.activity;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 |
6 | import io.mindjet.jetgear.mvvm.viewmodel.activity.ViewModelCompatActivity;
7 | import io.mindjet.litereader.viewmodel.detail.ZhihuStoryDetailViewModel;
8 |
9 | /**
10 | * Created by Jet on 3/14/17.
11 | */
12 |
13 | public class ZhihuStoryDetailActivity extends ViewModelCompatActivity {
14 |
15 | public static Intent intentFor(Context context) {
16 | return new Intent(context, ZhihuStoryDetailActivity.class);
17 | }
18 |
19 | @Override
20 | public void onViewAttached(ZhihuStoryDetailViewModel viewModel) {
21 |
22 | }
23 |
24 | @Override
25 | public ZhihuStoryDetailViewModel giveMeViewModel() {
26 | return new ZhihuStoryDetailViewModel();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/AboutMeViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel;
2 |
3 | import android.view.ViewGroup;
4 |
5 | import io.mindjet.jetgear.databinding.IncludeHeaderRecyclerBinding;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ActivityCompatInterface;
7 | import io.mindjet.jetgear.mvvm.viewmodel.ViewModelBinder;
8 | import io.mindjet.jetgear.mvvm.viewmodel.header.HeaderItemViewModel;
9 | import io.mindjet.jetgear.mvvm.viewmodel.header.HeaderViewModel;
10 | import io.mindjet.jetgear.mvvm.viewmodel.integrated.HeaderRecyclerViewModel;
11 | import io.mindjet.litereader.R;
12 | import io.mindjet.litereader.viewmodel.item.AboutInfoViewModel;
13 |
14 | public class AboutMeViewModel extends HeaderRecyclerViewModel> {
15 |
16 | @Override
17 | protected void initHeader(ViewGroup container) {
18 | HeaderViewModel header = new HeaderViewModel.Builder()
19 | .sink(true)
20 | .leftViewModel(new HeaderItemViewModel.BackItemViewModel(getSelfView().getCompatActivity()).icon(R.drawable.ic_arrow_left))
21 | .centerViewModel(new HeaderItemViewModel.TitleItemViewModel(getString(R.string.about_me)))
22 | .build();
23 | ViewModelBinder.bind(container, header);
24 | }
25 |
26 | @Override
27 | protected void afterComponentBound() {
28 | getAdapter().add(new AboutInfoViewModel());
29 | getAdapter().notifyDataSetChanged();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/ICollection.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel;
2 |
3 | /**
4 | * 收藏接口
5 | *
6 | * Created by Mindjet on 5/5/17.
7 | */
8 |
9 | public interface ICollection {
10 |
11 | void initCollect();
12 |
13 | void updateCollectIcon(boolean isCollect);
14 |
15 | void manipulateCollect();
16 |
17 | void disCollect();
18 |
19 | void collect();
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/detail/book/DoubanBookImageViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.detail.book;
2 |
3 | /**
4 | * 豆瓣图书详情 图片 view model
5 | *
6 | * Created by Mindjet on 5/5/17.
7 | */
8 |
9 | public class DoubanBookImageViewModel {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/detail/douban/DetailImageViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.detail.douban;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemDoubanDetailImageBinding;
9 |
10 | /**
11 | * 电影详情中 顶部图片 view model
12 | *
13 | * Created by Jet on 3/20/17.
14 | */
15 |
16 | public class DetailImageViewModel extends BaseViewModel> {
17 |
18 | private String poster;
19 | private String mainlandPubdate;
20 | private String rating;
21 |
22 | public DetailImageViewModel(String poster, String mainlandPubdate, String rating) {
23 | this.poster = poster;
24 | this.mainlandPubdate = mainlandPubdate;
25 | this.rating = rating;
26 | }
27 |
28 | @Override
29 | public int getLayoutId() {
30 | return R.layout.item_douban_detail_image;
31 | }
32 |
33 | public String getPoster() {
34 | return poster;
35 | }
36 |
37 | public String getMainlandPubdate() {
38 | return "上映时间:" + mainlandPubdate;
39 | }
40 |
41 | public String getRating() {
42 | return "评分:" + rating;
43 | }
44 |
45 | @Override
46 | public void onViewAttached(View view) {
47 |
48 | }
49 |
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/detail/douban/StaffDetailTopInfoViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.detail.douban;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemDoubanStaffDetailTopInfoBinding;
9 | import io.mindjet.litereader.model.item.douban.StaffDetail;
10 |
11 | /**
12 | * 演职员详情顶部 view model
13 | *
14 | * Created by Mindjet on 2017/4/17.
15 | */
16 |
17 | public class StaffDetailTopInfoViewModel extends BaseViewModel> {
18 |
19 | private StaffDetail detail;
20 |
21 | public StaffDetailTopInfoViewModel(StaffDetail detail) {
22 | this.detail = detail;
23 | }
24 |
25 | @Override
26 | public int getLayoutId() {
27 | return R.layout.item_douban_staff_detail_top_info;
28 | }
29 |
30 | public StaffDetail getDetail() {
31 | return detail;
32 | }
33 |
34 | public String getEnglishName() {
35 | return getContext().getResources().getString(R.string.douban_staff_english_name, detail.nameEn);
36 | }
37 |
38 | public String getBornPlace() {
39 | return getContext().getResources().getString(R.string.douban_staff_born_place, detail.bornPlace);
40 | }
41 |
42 | @Override
43 | public void onViewAttached(View view) {
44 |
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/detail/one/OneCommonImageViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.detail.one;
2 |
3 | import android.databinding.Bindable;
4 | import android.view.View;
5 |
6 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
7 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
8 | import io.mindjet.litereader.BR;
9 | import io.mindjet.litereader.R;
10 | import io.mindjet.litereader.databinding.ItemOneReviewImageBinding;
11 |
12 | /**
13 | * ONE 影评/文章详情 顶部图片 view model
14 | *
15 | * Created by Mindjet on 5/4/17.
16 | */
17 |
18 | public class OneCommonImageViewModel extends BaseViewModel> {
19 |
20 | private String content;
21 | private String imgUrl;
22 |
23 | public OneCommonImageViewModel(String content, String imgUrl) {
24 | this.content = content;
25 | this.imgUrl = imgUrl;
26 | }
27 |
28 | @Bindable
29 | public String getContent() {
30 | return content;
31 | }
32 |
33 | public String getImgUrl() {
34 | return imgUrl;
35 | }
36 |
37 | public void update(String content) {
38 | this.content = content;
39 | notifyPropertyChanged(BR.content);
40 | }
41 |
42 | @Override
43 | public int getLayoutId() {
44 | return R.layout.item_one_review_image;
45 | }
46 |
47 | @Override
48 | public void onViewAttached(View view) {
49 |
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/detail/zhihu/ZhihuStoryArticleViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.detail.zhihu;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemZhihuStoryArticleBinding;
9 |
10 | /**
11 | * 知乎日报文章 正文 view model
12 | *
13 | * Created by Jet on 3/14/17.
14 | */
15 |
16 | public class ZhihuStoryArticleViewModel extends BaseViewModel> {
17 |
18 | private String content;
19 | private String title;
20 |
21 | public ZhihuStoryArticleViewModel(String title, String content) {
22 | this.title = title;
23 | this.content = content;
24 | }
25 |
26 | @Override
27 | public int getLayoutId() {
28 | return R.layout.item_zhihu_story_article;
29 | }
30 |
31 | public String getContent() {
32 | return content;
33 | }
34 |
35 | public String getTitle() {
36 | return title;
37 | }
38 |
39 | @Override
40 | public void onViewAttached(View view) {
41 |
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/detail/zhihu/ZhihuStoryImageViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.detail.zhihu;
2 |
3 | import android.databinding.ObservableField;
4 | import android.view.View;
5 |
6 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
7 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
8 | import io.mindjet.litereader.R;
9 | import io.mindjet.litereader.databinding.ItemZhihuStoryImageBinding;
10 |
11 | /**
12 | * 知乎日报文章 头部图片 view model
13 | *
14 | * Created by Jet on 3/14/17.
15 | */
16 |
17 | public class ZhihuStoryImageViewModel extends BaseViewModel> {
18 |
19 | public ObservableField imageSource;
20 | public ObservableField imageUrl;
21 |
22 | public ZhihuStoryImageViewModel(String imageSource, String imageUrl) {
23 | this.imageSource = new ObservableField<>(imageSource);
24 | this.imageUrl = new ObservableField<>(imageUrl);
25 | }
26 |
27 | public void setImageSource(String imageSource) {
28 | this.imageSource.set(imageSource);
29 | }
30 |
31 | public void setImageUrl(String imageUrl) {
32 | this.imageUrl.set(imageUrl);
33 | }
34 |
35 | @Override
36 | public int getLayoutId() {
37 | return R.layout.item_zhihu_story_image;
38 | }
39 |
40 | @Override
41 | public void onViewAttached(View view) {
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/AboutInfoViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import com.bumptech.glide.Glide;
6 |
7 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
8 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
9 | import io.mindjet.jetutil.hint.Toaster;
10 | import io.mindjet.litereader.BuildConfig;
11 | import io.mindjet.litereader.R;
12 | import io.mindjet.litereader.databinding.ItemAboutInfoBinding;
13 | import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
14 |
15 | public class AboutInfoViewModel extends BaseViewModel> {
16 |
17 | @Override
18 | public void onViewAttached(View view) {
19 | Glide.with(getContext())
20 | .load(R.drawable.ic_launcher)
21 | .bitmapTransform(new RoundedCornersTransformation(getContext(), 100, 0))
22 | .into(getSelfView().getBinding().ivAppIcon);
23 | }
24 |
25 | @Override
26 | public int getLayoutId() {
27 | return R.layout.item_about_info;
28 | }
29 |
30 | public String getVersion() {
31 | return BuildConfig.VERSION_NAME;
32 | }
33 |
34 | public void onVersionClick(View v) {
35 | Toaster.toast(getContext(), "checking version");
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/BlankViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.support.annotation.DimenRes;
4 | import android.view.View;
5 |
6 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
7 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
8 | import io.mindjet.litereader.R;
9 | import io.mindjet.litereader.databinding.ItemBlankBinding;
10 |
11 | /**
12 | * 占位 view model
13 | *
14 | * Created by Mindjet on 3/14/17.
15 | */
16 |
17 | public class BlankViewModel extends BaseViewModel> {
18 |
19 | @DimenRes
20 | private int height;
21 |
22 | public BlankViewModel(@DimenRes int height) {
23 | this.height = height;
24 | }
25 |
26 | public int getHeight() {
27 | return (int) getContext().getResources().getDimension(height);
28 | }
29 |
30 | @Override
31 | public int getLayoutId() {
32 | return R.layout.item_blank;
33 | }
34 |
35 | @Override
36 | public void onViewAttached(View view) {
37 |
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/ChannelUsageItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemChannelUsageBinding;
9 |
10 | /**
11 | * 频道订阅说明 item view model
12 | *
13 | * Created by Mindjet on 2017/4/16.
14 | */
15 |
16 | public class ChannelUsageItemViewModel extends BaseViewModel> {
17 | @Override
18 | public int getLayoutId() {
19 | return R.layout.item_channel_usage;
20 | }
21 |
22 | @Override
23 | public void onViewAttached(View view) {
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/DoubanBookItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemDoubanBookBinding;
9 | import io.mindjet.litereader.model.item.book.Book;
10 |
11 | /**
12 | * 豆瓣图书 item view model
13 | *
14 | * Created by Mindjet on 5/5/17.
15 | */
16 |
17 | public class DoubanBookItemViewModel extends BaseViewModel> {
18 |
19 | private Book book;
20 |
21 | public DoubanBookItemViewModel(Book book) {
22 | this.book = book;
23 | }
24 |
25 | public Book getBook() {
26 | return book;
27 | }
28 |
29 | @Override
30 | public int getLayoutId() {
31 | return R.layout.item_douban_book;
32 | }
33 |
34 | @Override
35 | public void onViewAttached(View view) {
36 |
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/DoubanCommentItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemDoubanCommentBinding;
9 | import io.mindjet.litereader.model.item.douban.Comment;
10 |
11 | /**
12 | * 豆瓣电影 短影评 item view model
13 | *
14 | * Created by Mindjet on 3/22/17.
15 | */
16 |
17 | public class DoubanCommentItemViewModel extends BaseViewModel> {
18 |
19 | private Comment comment;
20 |
21 | public DoubanCommentItemViewModel(Comment comment) {
22 | this.comment = comment;
23 | }
24 |
25 | @Override
26 | public int getLayoutId() {
27 | return R.layout.item_douban_comment;
28 | }
29 |
30 | public Comment getComment() {
31 | return comment;
32 | }
33 |
34 | @Override
35 | public void onViewAttached(View view) {
36 |
37 | }
38 |
39 | public int getRating() {
40 | String rating = comment.rating.value;
41 | return (int) Float.valueOf(rating).floatValue();
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/DoubanReviewItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemDoubanReviewBinding;
9 | import io.mindjet.litereader.model.item.douban.Review;
10 | import rx.functions.Action1;
11 |
12 | /**
13 | * 豆瓣电影 长影评 view model
14 | *
15 | * Created by Mindjet on 3/22/17.
16 | */
17 |
18 | public class DoubanReviewItemViewModel extends BaseViewModel> {
19 |
20 | private Review review;
21 | private Action1 onItemClick;
22 |
23 | public DoubanReviewItemViewModel(Review review, Action1 onItemClick) {
24 | this.review = review;
25 | this.onItemClick = onItemClick;
26 | }
27 |
28 | @Override
29 | public int getLayoutId() {
30 | return R.layout.item_douban_review;
31 | }
32 |
33 | public Review getReview() {
34 | return review;
35 | }
36 |
37 | public void onClick() {
38 | if (onItemClick != null)
39 | onItemClick.call(review);
40 | }
41 |
42 | @Override
43 | public void onViewAttached(View view) {
44 |
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/DoubanStillItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemDoubanStillBinding;
9 | import io.mindjet.litereader.model.item.douban.DetailStill;
10 | import io.mindjet.litereader.ui.dialog.StillDialog;
11 |
12 | /**
13 | * 剧照列表 item view model
14 | *
15 | * Created by Jet on 5/3/17.
16 | */
17 |
18 | public class DoubanStillItemViewModel extends BaseViewModel> {
19 |
20 | private DetailStill detailStill;
21 |
22 | public DoubanStillItemViewModel(DetailStill detailStill) {
23 | this.detailStill = detailStill;
24 | }
25 |
26 | public DetailStill getStill() {
27 | return detailStill;
28 | }
29 |
30 | @Override
31 | public int getLayoutId() {
32 | return R.layout.item_douban_still;
33 | }
34 |
35 | @Override
36 | public void onViewAttached(View view) {
37 |
38 | }
39 |
40 | public void onClick() {
41 | new StillDialog(getContext(), detailStill).show();
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/MovieTypeViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemMovieTypeBinding;
9 |
10 | /**
11 | * 电影类型(标签) view model
12 | *
13 | * Created by Mindjet on 3/20/17.
14 | */
15 |
16 | public class MovieTypeViewModel extends BaseViewModel> {
17 |
18 | private String content;
19 |
20 | public MovieTypeViewModel(String content) {
21 | this.content = content;
22 | }
23 |
24 | @Override
25 | public int getLayoutId() {
26 | return R.layout.item_movie_type;
27 | }
28 |
29 | public String getContent() {
30 | return content;
31 | }
32 |
33 | @Override
34 | public void onViewAttached(View view) {
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/OneArticleItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemOneArticleBinding;
9 | import io.mindjet.litereader.model.item.one.Article;
10 | import io.mindjet.litereader.ui.activity.OneArticleDetailActivity;
11 |
12 | /**
13 | * ONE文章 item view model
14 | *
15 | * Created by Mindjet on 5/5/17.
16 | */
17 |
18 | public class OneArticleItemViewModel extends BaseViewModel> {
19 |
20 | private Article article;
21 |
22 | public OneArticleItemViewModel(Article article) {
23 | this.article = article;
24 | }
25 |
26 | public Article getArticle() {
27 | return article;
28 | }
29 |
30 | @Override
31 | public int getLayoutId() {
32 | return R.layout.item_one_article;
33 | }
34 |
35 | @Override
36 | public void onViewAttached(View view) {
37 |
38 | }
39 |
40 | public void onClick() {
41 | getContext().startActivity(OneArticleDetailActivity.intentFor(getContext(), article.id, article.imgUrl));
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/OneReviewItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemOneReviewBinding;
9 | import io.mindjet.litereader.model.item.one.Review;
10 | import io.mindjet.litereader.ui.activity.OneReviewDetailActivity;
11 |
12 | /**
13 | * ONE 影评 item view model
14 | *
15 | * Created by Jet on 5/4/17.
16 | */
17 |
18 | public class OneReviewItemViewModel extends BaseViewModel> {
19 |
20 | private Review review;
21 |
22 | public OneReviewItemViewModel(Review review) {
23 | this.review = review;
24 | }
25 |
26 | public Review getReview() {
27 | return review;
28 | }
29 |
30 | @Override
31 | public int getLayoutId() {
32 | return R.layout.item_one_review;
33 | }
34 |
35 | @Override
36 | public void onViewAttached(View view) {
37 |
38 | }
39 |
40 | public void onClick() {
41 | getContext().startActivity(OneReviewDetailActivity.intentFor(getContext(), review));
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/ZhihuBannerItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.view.View;
4 |
5 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
6 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
7 | import io.mindjet.litereader.R;
8 | import io.mindjet.litereader.databinding.ItemZhihuBannerBinding;
9 | import io.mindjet.litereader.model.item.ZhihuTopStoryItem;
10 | import rx.functions.Action3;
11 |
12 | /**
13 | * 知乎日报首页 banner item view model
14 | *
15 | * Created by Mindjet on 3/14/17.
16 | */
17 |
18 | public class ZhihuBannerItemViewModel extends BaseViewModel> {
19 |
20 | private ZhihuTopStoryItem item;
21 | private Action3 onAction;
22 |
23 | public ZhihuBannerItemViewModel(ZhihuTopStoryItem item) {
24 | this.item = item;
25 | }
26 |
27 | public ZhihuBannerItemViewModel onAction(Action3 onAction) {
28 | this.onAction = onAction;
29 | return this;
30 | }
31 |
32 | public String getImageUrl() {
33 | return item.image;
34 | }
35 |
36 | public String getTitle() {
37 | return item.title;
38 | }
39 |
40 | @Override
41 | public int getLayoutId() {
42 | return R.layout.item_zhihu_banner;
43 | }
44 |
45 | @Override
46 | public void onViewAttached(View view) {
47 |
48 | }
49 |
50 | public void onClick(){
51 | if (onAction != null)
52 | onAction.call(item.id, 0, 0);
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/app/src/main/java/io/mindjet/litereader/viewmodel/item/ZhihuDateItemViewModel.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader.viewmodel.item;
2 |
3 | import android.support.annotation.StringRes;
4 | import android.view.View;
5 |
6 | import java.util.Date;
7 |
8 | import io.mindjet.jetgear.mvvm.base.BaseViewModel;
9 | import io.mindjet.jetgear.mvvm.viewinterface.ViewInterface;
10 | import io.mindjet.litereader.R;
11 | import io.mindjet.litereader.databinding.ItemZhihuDateBinding;
12 | import io.mindjet.litereader.util.DateUtil;
13 |
14 | /**
15 | * 知乎日报首页 时间 item view model
16 | *
17 | * Created by Mindjet on 3/14/17.
18 | */
19 |
20 | public class ZhihuDateItemViewModel extends BaseViewModel> {
21 |
22 | @StringRes
23 | private int text;
24 | private Date date;
25 |
26 | public ZhihuDateItemViewModel(Date date) {
27 | this.date = date;
28 | }
29 |
30 | public ZhihuDateItemViewModel(@StringRes int text) {
31 | this.text = text;
32 | }
33 |
34 | public String getDate() {
35 | if (text != 0)
36 | return getContext().getResources().getString(text);
37 | return DateUtil.toFriendlyFormat(date);
38 | }
39 |
40 | @Override
41 | public int getLayoutId() {
42 | return R.layout.item_zhihu_date;
43 | }
44 |
45 | @Override
46 | public void onViewAttached(View view) {
47 |
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_corner_10dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_corner_5dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_oval_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_text_cursor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_blank.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_channel_usage.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
16 |
17 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_douban_still.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
17 |
18 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_movie_type.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_zhihu_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
17 |
18 |
24 |
25 |
29 |
30 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_zhihu_date.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
17 |
18 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_zhihu_story_image.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
15 |
16 |
21 |
22 |
26 |
27 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_common.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #42a5da
4 | #303F9F
5 | #FF4081
6 |
7 | #aa000000
8 | #262626
9 | #333333
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/test/java/io/mindjet/jetpack/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package io.mindjet.litereader;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/art/github-display-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/art/github-display-1.png
--------------------------------------------------------------------------------
/art/github-display-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/art/github-display-2.png
--------------------------------------------------------------------------------
/art/github-display-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/art/github-display-3.png
--------------------------------------------------------------------------------
/art/github-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/art/github-icon.png
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | Properties properties = new Properties()
4 | properties.load(project.rootProject.file('local.properties').newDataInputStream())
5 |
6 | buildscript {
7 | repositories {
8 | maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
9 | maven { url 'https://jitpack.io' }
10 | mavenCentral()
11 | jcenter()
12 | }
13 | dependencies {
14 | classpath 'com.android.tools.build:gradle:2.3.1'
15 |
16 | // NOTE: Do not place your application dependencies here; they belong
17 | // in the individual module build.gradle files
18 | }
19 | }
20 |
21 | allprojects {
22 | repositories {
23 | // maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
24 | maven { url properties.getProperty("sdk.dir") + "/extras/android/m2repository/" }
25 | maven { url properties.getProperty("sdk.dir") + "/extras/google/m2repository/" }
26 | maven { url 'https://jitpack.io' }
27 | mavenCentral()
28 | jcenter()
29 | }
30 | }
31 |
32 | task clean(type: Delete) {
33 | delete rootProject.buildDir
34 | }
35 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | # When configured, Gradle will run in incubating parallel mode.
10 | # This option should only be used with decoupled projects. More details, visit
11 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
12 | # org.gradle.parallel=true
13 | org.gradle.daemon=true
14 | org.gradle.parallel=true
15 | org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
16 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mindjet/LiteReader/202e6e83e18e4bf77755dc1ed6579f696000c35a/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Mar 12 21:39:58 CST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
7 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':JetGear', ':JetUtil', ':JetImage',':JetWidget'
2 |
--------------------------------------------------------------------------------