├── .github └── workflows │ └── ci.yml ├── .gitignore ├── GlideImageLoader ├── .gitignore ├── build.gradle.kts ├── consumer-rules.pro ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── net │ └── mikaelzero │ └── mojito │ └── loader │ └── glide │ ├── GlideImageLoader.kt │ ├── GlideLoaderException.kt │ ├── GlideProgressSupport.kt │ ├── ImageDownloadTarget.kt │ └── PrefetchTarget.kt ├── LICENSE.md ├── README.md ├── SketchImageViewLoader ├── .gitignore ├── build.gradle.kts ├── consumer-rules.pro ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── net │ └── mikaelzero │ └── mojito │ └── view │ └── sketch │ ├── SketchContentLoaderImpl.kt │ ├── SketchImageLoadFactory.java │ └── core │ ├── Configuration.java │ ├── ErrorTracker.java │ ├── Initializer.java │ ├── Key.java │ ├── SLog.java │ ├── Sketch.java │ ├── SketchImageView.java │ ├── SketchView.java │ ├── cache │ ├── BitmapPool.java │ ├── BitmapPoolUtils.java │ ├── DiskCache.java │ ├── LruBitmapPool.java │ ├── LruDiskCache.java │ ├── LruMemoryCache.java │ ├── MemoryCache.java │ ├── MemorySizeCalculator.java │ └── recycle │ │ ├── AttributeStrategy.java │ │ ├── BaseKeyPool.java │ │ ├── GroupedLinkedMap.java │ │ ├── LruPoolStrategy.java │ │ ├── Poolable.java │ │ └── SizeConfigStrategy.java │ ├── datasource │ ├── AssetsDataSource.java │ ├── ByteArrayDataSource.java │ ├── ContentDataSource.java │ ├── DataSource.java │ ├── DiskCacheDataSource.java │ ├── DrawableDataSource.java │ └── FileDataSource.java │ ├── decode │ ├── BitmapDecodeResult.java │ ├── CorrectOrientationException.java │ ├── DecodeException.java │ ├── DecodeHelper.java │ ├── DecodeResult.java │ ├── DecodeTimeAnalyze.java │ ├── GifDecodeHelper.java │ ├── GifDecodeResult.java │ ├── ImageAttrs.java │ ├── ImageDecodeUtils.java │ ├── ImageDecoder.java │ ├── ImageOrientationCorrector.java │ ├── ImageSizeCalculator.java │ ├── ImageType.java │ ├── NormalDecodeHelper.java │ ├── NotFoundGifLibraryException.java │ ├── ProcessException.java │ ├── ProcessImageResultProcessor.java │ ├── ProcessedCacheDecodeHelper.java │ ├── ProcessedImageCache.java │ ├── ProcessedResultCacheProcessor.java │ ├── ResizeCalculator.java │ ├── ResultProcessor.java │ └── ThumbnailModeDecodeHelper.java │ ├── display │ ├── DefaultImageDisplayer.java │ ├── ImageDisplayer.java │ ├── TransitionImageDisplayer.java │ ├── ZoomInImageDisplayer.java │ └── ZoomOutImageDisplayer.java │ ├── drawable │ ├── SketchBitmap.java │ ├── SketchBitmapDrawable.java │ ├── SketchDrawable.java │ ├── SketchGifDrawable.java │ ├── SketchGifDrawableImpl.java │ ├── SketchGifFactory.java │ ├── SketchLoadingDrawable.java │ ├── SketchRefBitmap.java │ ├── SketchRefDrawable.java │ ├── SketchShapeBitmapDrawable.java │ └── SketchTransitionDrawable.java │ ├── http │ ├── DownloadException.java │ ├── HttpStack.java │ ├── HurlStack.java │ ├── ImageDownloader.java │ └── RedirectsException.java │ ├── optionsfilter │ ├── InPreferQualityOverSpeedOptionsFilter.java │ ├── LowQualityOptionsFilter.java │ ├── MobileDataPauseDownloadController.java │ ├── OptionsFilter.java │ ├── OptionsFilterManager.java │ ├── PauseDownloadOptionsFilter.java │ └── PauseLoadOptionsFilter.java │ ├── process │ ├── ImageProcessor.java │ └── ResizeImageProcessor.java │ ├── request │ ├── AsyncRequest.java │ ├── BaseRequest.java │ ├── CallbackHandler.java │ ├── CancelCause.java │ ├── CanceledException.java │ ├── DisplayCache.java │ ├── DisplayHelper.java │ ├── DisplayListener.java │ ├── DisplayOptions.java │ ├── DisplayRequest.java │ ├── DisplayResult.java │ ├── DownloadListener.java │ ├── DownloadOptions.java │ ├── DownloadProgressListener.java │ ├── DownloadRequest.java │ ├── DownloadResult.java │ ├── ErrorCause.java │ ├── FixedSize.java │ ├── FreeRideDisplayRequest.java │ ├── FreeRideDownloadRequest.java │ ├── FreeRideManager.java │ ├── HelperFactory.java │ ├── ImageFrom.java │ ├── Listener.java │ ├── LoadHelper.java │ ├── LoadListener.java │ ├── LoadOptions.java │ ├── LoadRequest.java │ ├── LoadResult.java │ ├── MaxSize.java │ ├── RedisplayListener.java │ ├── RequestAndViewBinder.java │ ├── RequestExecutor.java │ ├── RequestFactory.java │ ├── RequestLevel.java │ ├── Resize.java │ ├── ShapeSize.java │ └── ViewInfo.java │ ├── shaper │ ├── CircleImageShaper.java │ ├── ImageShaper.java │ └── RoundRectImageShaper.java │ ├── state │ ├── DrawableStateImage.java │ ├── MakerStateImage.java │ ├── MemoryCacheStateImage.java │ ├── OldStateImage.java │ └── StateImage.java │ ├── uri │ ├── AbsBitmapDiskCacheUriModel.java │ ├── AbsDiskCacheUriModel.java │ ├── AbsStreamDiskCacheUriModel.java │ ├── AndroidResUriModel.java │ ├── ApkIconUriModel.java │ ├── AppIconUriModel.java │ ├── AssetUriModel.java │ ├── Base64UriModel.java │ ├── Base64VariantUriModel.java │ ├── ContentUriModel.java │ ├── DrawableUriModel.java │ ├── FileUriModel.java │ ├── FileVariantUriModel.java │ ├── GetDataSourceException.java │ ├── HttpUriModel.java │ ├── HttpsUriModel.java │ ├── UriModel.java │ └── UriModelManager.java │ ├── util │ ├── DiskLruCache.java │ ├── DrawableWrapper.java │ ├── KeyCounter.java │ ├── LruCache.java │ ├── NoSpaceException.java │ ├── ObjectPool.java │ ├── SketchMD5Utils.java │ ├── SketchUtils.java │ ├── Stopwatch.java │ ├── UnableCreateDirException.java │ └── UnableCreateFileException.java │ ├── viewfun │ ├── DisplayListenerProxy.java │ ├── FunctionCallbackView.java │ ├── FunctionPropertyView.java │ ├── ImageZoomFunction.java │ ├── OnClickListenerProxy.java │ ├── ProgressListenerProxy.java │ ├── RequestFunction.java │ ├── ViewFunction.java │ └── ViewFunctions.java │ └── zoom │ ├── AdaptiveTwoLevelScales.java │ ├── BlockDisplayer.java │ ├── FlingRunner.java │ ├── ImageZoomer.java │ ├── LocationRunner.java │ ├── ScaleDragGestureDetector.java │ ├── ScaleDragHelper.java │ ├── Size.java │ ├── Sizes.java │ ├── TapHelper.java │ ├── ZoomRunner.java │ ├── ZoomScales.java │ └── block │ ├── Block.java │ ├── BlockDecoder.java │ ├── BlockExecutor.java │ ├── BlockManager.java │ ├── CallbackHandler.java │ ├── DecodeHandler.java │ ├── ImageRegionDecoder.java │ └── InitHandler.java ├── app ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── coolapk │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── devicemodel.txt │ ├── ic_launcher-playstore.png │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── c001apk │ │ │ ├── MyApplication.kt │ │ │ ├── adapter │ │ │ ├── AppAdapter.kt │ │ │ ├── BaseAdapter.kt │ │ │ ├── BaseViewHolder.kt │ │ │ ├── FooterAdapter.kt │ │ │ ├── FooterState.kt │ │ │ ├── HeaderAdapter.kt │ │ │ ├── IconLinkGridCardAdapter.kt │ │ │ ├── IconLinkGridCardItemAdapter.kt │ │ │ ├── IconMiniScrollCardAdapter.kt │ │ │ ├── ImageCarouselCardAdapter.kt │ │ │ ├── ImageSquareScrollCardAdapter.kt │ │ │ ├── ImageTextScrollCardAdapter.kt │ │ │ ├── ItemListener.kt │ │ │ ├── LoadingState.kt │ │ │ ├── PlaceHolderAdapter.kt │ │ │ ├── PopClickListener.kt │ │ │ └── ViewBindingAdapters.kt │ │ │ ├── constant │ │ │ └── Constants.kt │ │ │ ├── di │ │ │ ├── DatabaseModule.kt │ │ │ └── NetworkModule.kt │ │ │ ├── logic │ │ │ ├── dao │ │ │ │ ├── HistoryFavoriteDao.kt │ │ │ │ ├── HomeMenuDao.kt │ │ │ │ ├── RecentAtUserDao.kt │ │ │ │ └── StringEntityDao.kt │ │ │ ├── database │ │ │ │ ├── BrowseHistoryDatabase.kt │ │ │ │ ├── FeedFavoriteDatabase.kt │ │ │ │ ├── HomeMenuDatabase.kt │ │ │ │ ├── RecentAtUserDatabase.kt │ │ │ │ ├── RecentEmojiDatabase.kt │ │ │ │ ├── SearchHistoryDatabase.kt │ │ │ │ ├── TopicBlackListDatabase.kt │ │ │ │ └── UserBlackListDatabase.kt │ │ │ ├── model │ │ │ │ ├── AppItem.kt │ │ │ │ ├── CheckCountResponse.kt │ │ │ │ ├── CheckResponse.kt │ │ │ │ ├── CreateFeedResponse.kt │ │ │ │ ├── DeviceInfo.kt │ │ │ │ ├── FeedArticleContentBean.kt │ │ │ │ ├── FeedContentResponse.kt │ │ │ │ ├── FeedEntity.kt │ │ │ │ ├── HomeFeedResponse.kt │ │ │ │ ├── HomeMenu.kt │ │ │ │ ├── Like.kt │ │ │ │ ├── LikeFeedResponse.kt │ │ │ │ ├── LikeReplyResponse.kt │ │ │ │ ├── LoadUrlResponse.kt │ │ │ │ ├── LoginResponse.kt │ │ │ │ ├── MessageResponse.kt │ │ │ │ ├── OSSUploadPrepareModel.kt │ │ │ │ ├── OSSUploadPrepareResponse.kt │ │ │ │ ├── PostReplyResponse.kt │ │ │ │ ├── RecentAtUser.kt │ │ │ │ ├── StringEntity.kt │ │ │ │ ├── TopicBean.kt │ │ │ │ ├── TotalReplyResponse.kt │ │ │ │ ├── UpdateCheckResponse.kt │ │ │ │ └── UserProfileResponse.kt │ │ │ ├── network │ │ │ │ ├── ApiService.kt │ │ │ │ ├── ApiServiceCreator.kt │ │ │ │ ├── Network.kt │ │ │ │ └── Repository.kt │ │ │ └── repository │ │ │ │ ├── BlackListRepo.kt │ │ │ │ ├── HistoryFavoriteRepo.kt │ │ │ │ ├── HomeMenuRepo.kt │ │ │ │ ├── NetworkRepo.kt │ │ │ │ ├── RecentAtUserRepo.kt │ │ │ │ ├── RecentEmojiRepo.kt │ │ │ │ └── SearchHistoryRepo.kt │ │ │ ├── ui │ │ │ ├── app │ │ │ │ ├── AppActivity.kt │ │ │ │ ├── AppContentFragment.kt │ │ │ │ ├── AppContentViewModel.kt │ │ │ │ ├── AppFragment.kt │ │ │ │ └── AppViewModel.kt │ │ │ ├── applist │ │ │ │ ├── AppListAdapter.kt │ │ │ │ ├── AppListFragment.kt │ │ │ │ └── AppListViewModel.kt │ │ │ ├── appupdate │ │ │ │ ├── AppUpdateActivity.kt │ │ │ │ ├── UpdateListAdapter.kt │ │ │ │ ├── UpdateListFragment.kt │ │ │ │ └── UpdateListViewModel.kt │ │ │ ├── base │ │ │ │ ├── BaseActivity.kt │ │ │ │ ├── BaseAppFragment.kt │ │ │ │ ├── BaseAppViewModel.kt │ │ │ │ ├── BaseFragment.kt │ │ │ │ ├── BasePagerFragment.kt │ │ │ │ ├── BaseViewActivity.kt │ │ │ │ ├── BaseViewFragment.kt │ │ │ │ └── BaseViewModel.kt │ │ │ ├── blacklist │ │ │ │ ├── BlackListActivity.kt │ │ │ │ ├── BlackListViewModel.kt │ │ │ │ └── IOnItemClickListener.kt │ │ │ ├── carousel │ │ │ │ ├── CarouselActivity.kt │ │ │ │ ├── CarouselFragment.kt │ │ │ │ ├── CarouselPagerFragment.kt │ │ │ │ └── CarouselViewModel.kt │ │ │ ├── collection │ │ │ │ ├── CollectionActivity.kt │ │ │ │ ├── CollectionContentFragment.kt │ │ │ │ ├── CollectionContentViewModel.kt │ │ │ │ └── CollectionFragment.kt │ │ │ ├── coolpic │ │ │ │ ├── CoolPicActivity.kt │ │ │ │ └── CoolPicFragment.kt │ │ │ ├── dyh │ │ │ │ ├── DyhActivity.kt │ │ │ │ ├── DyhDetailFragment.kt │ │ │ │ ├── DyhFragment.kt │ │ │ │ └── DyhViewModel.kt │ │ │ ├── feed │ │ │ │ ├── FeedActivity.kt │ │ │ │ ├── FeedDataAdapter.kt │ │ │ │ ├── FeedFixAdapter.kt │ │ │ │ ├── FeedFragment.kt │ │ │ │ ├── FeedReplyAdapter.kt │ │ │ │ ├── FeedViewModel.kt │ │ │ │ ├── question │ │ │ │ │ └── FeedQuestionFragment.kt │ │ │ │ ├── reply │ │ │ │ │ ├── ReplyActivity.kt │ │ │ │ │ ├── ReplyViewModel.kt │ │ │ │ │ ├── attopic │ │ │ │ │ │ ├── AtTopicActivity.kt │ │ │ │ │ │ ├── AtTopicViewModel.kt │ │ │ │ │ │ ├── AtUserAdapter.kt │ │ │ │ │ │ ├── OnSearchContainer.kt │ │ │ │ │ │ ├── OnSearchListener.kt │ │ │ │ │ │ ├── SearchAdapter.kt │ │ │ │ │ │ ├── SearchFragment.kt │ │ │ │ │ │ ├── SearchViewModel.kt │ │ │ │ │ │ └── UserItemDecoration.kt │ │ │ │ │ ├── emoji │ │ │ │ │ │ ├── EmojiChildPagerAdapter.kt │ │ │ │ │ │ ├── EmojiGridAdapter.kt │ │ │ │ │ │ └── EmojiPagerAdapter.kt │ │ │ │ │ └── reply2reply │ │ │ │ │ │ ├── Reply2ReplyBottomSheetDialog.kt │ │ │ │ │ │ ├── Reply2ReplyBottomSheetViewModel.kt │ │ │ │ │ │ └── Reply2ReplyTotalAdapter.kt │ │ │ │ └── vote │ │ │ │ │ └── FeedVoteFragment.kt │ │ │ ├── follow │ │ │ │ ├── FFFListActivity.kt │ │ │ │ ├── FollowFragment.kt │ │ │ │ ├── FollowPagerFragment.kt │ │ │ │ └── FollowViewModel.kt │ │ │ ├── history │ │ │ │ ├── HistoryActivity.kt │ │ │ │ ├── HistoryAdapter.kt │ │ │ │ └── HistoryViewModel.kt │ │ │ ├── home │ │ │ │ ├── HomeFragment.kt │ │ │ │ ├── HomeMenuAdapter.kt │ │ │ │ ├── HomeViewModel.kt │ │ │ │ ├── IOnTabClickContainer.kt │ │ │ │ ├── IOnTabClickListener.kt │ │ │ │ └── ItemTouchHelperCallback.kt │ │ │ ├── homefeed │ │ │ │ ├── HomeFeedFragment.kt │ │ │ │ └── HomeFeedViewModel.kt │ │ │ ├── hometopic │ │ │ │ ├── BrandLabelAdapter.kt │ │ │ │ ├── HomeTopicContentFragment.kt │ │ │ │ ├── HomeTopicContentViewModel.kt │ │ │ │ ├── HomeTopicFragment.kt │ │ │ │ └── HomeTopicViewModel.kt │ │ │ ├── login │ │ │ │ ├── LoginActivity.kt │ │ │ │ └── LoginViewModel.kt │ │ │ ├── main │ │ │ │ ├── IOnBottomClickContainer.kt │ │ │ │ ├── IOnBottomClickListener.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── MainViewModel.kt │ │ │ ├── message │ │ │ │ ├── MessageAdapter.kt │ │ │ │ ├── MessageFirstAdapter.kt │ │ │ │ ├── MessageFragment.kt │ │ │ │ ├── MessageSecondAdapter.kt │ │ │ │ ├── MessageThirdAdapter.kt │ │ │ │ └── MessageViewModel.kt │ │ │ ├── messagedetail │ │ │ │ ├── MessageActivity.kt │ │ │ │ ├── MessageContentAdapter.kt │ │ │ │ ├── MessageContentFragment.kt │ │ │ │ ├── MessageFragment.kt │ │ │ │ └── MessageViewModel.kt │ │ │ ├── others │ │ │ │ ├── AboutActivity.kt │ │ │ │ ├── AppLinkActivity.kt │ │ │ │ ├── BugHandlerActivity.kt │ │ │ │ ├── CopyActivity.kt │ │ │ │ └── WebViewActivity.kt │ │ │ ├── search │ │ │ │ ├── HistoryAdapter.kt │ │ │ │ ├── IOnSearchMenuClickContainer.kt │ │ │ │ ├── IOnSearchMenuClickListener.kt │ │ │ │ ├── SearchActivity.kt │ │ │ │ ├── SearchContentFragment.kt │ │ │ │ ├── SearchContentViewModel.kt │ │ │ │ ├── SearchFragment.kt │ │ │ │ ├── SearchFragmentViewModel.kt │ │ │ │ ├── SearchResultFragment.kt │ │ │ │ └── SearchResultViewModel.kt │ │ │ ├── settings │ │ │ │ ├── SettingsFragment.kt │ │ │ │ ├── SettingsPreferenceFragment.kt │ │ │ │ └── params │ │ │ │ │ ├── ParamsActivity.kt │ │ │ │ │ └── ParamsPreferenceFragment.kt │ │ │ ├── topic │ │ │ │ ├── TopicActivity.kt │ │ │ │ ├── TopicContentFragment.kt │ │ │ │ ├── TopicContentViewModel.kt │ │ │ │ ├── TopicFragment.kt │ │ │ │ └── TopicViewModel.kt │ │ │ └── user │ │ │ │ ├── UserActivity.kt │ │ │ │ ├── UserFragment.kt │ │ │ │ ├── UserPagerFragment.kt │ │ │ │ └── UserViewModel.kt │ │ │ ├── util │ │ │ ├── ActivityCollector.kt │ │ │ ├── AdapterExtensions.kt │ │ │ ├── AddCookiesInterceptor.kt │ │ │ ├── AppUtils.kt │ │ │ ├── Base64Utils.kt │ │ │ ├── CacheDataManager.kt │ │ │ ├── ClipboardUtil.kt │ │ │ ├── CookieUtil.kt │ │ │ ├── DateUtils.kt │ │ │ ├── DensityTool.kt │ │ │ ├── DeviceCode.kt │ │ │ ├── EmojiUtils.kt │ │ │ ├── Event.kt │ │ │ ├── FileUtil.kt │ │ │ ├── HandlerExtensions.kt │ │ │ ├── IconGlideModule.kt │ │ │ ├── ImageUtil.kt │ │ │ ├── IntentUtil.kt │ │ │ ├── LayoutExtensions.kt │ │ │ ├── LoginCookiesInterceptor.kt │ │ │ ├── LoginUtils.kt │ │ │ ├── NetWorkUtil.kt │ │ │ ├── OSSUpload.kt │ │ │ ├── PrefManager.kt │ │ │ ├── ReplaceViewHelper.kt │ │ │ ├── SpannableStringBuilderUtil.kt │ │ │ ├── ThemeUtils.kt │ │ │ ├── ToastUtil.kt │ │ │ ├── TokenDeviceUtils.kt │ │ │ ├── UiUtils.kt │ │ │ ├── UrlUtil.kt │ │ │ └── Utils.kt │ │ │ └── view │ │ │ ├── AppBarLayoutStateChangeListener.kt │ │ │ ├── BadgeDrawable.kt │ │ │ ├── BadgeTextView.kt │ │ │ ├── BadgedImageView.kt │ │ │ ├── CenteredImageSpan.kt │ │ │ ├── CheckableChipView.kt │ │ │ ├── CommentHelper.kt │ │ │ ├── CustomHorizontalScrollView.kt │ │ │ ├── CustomViewFlipper.kt │ │ │ ├── FileTarget.kt │ │ │ ├── LinearItemDecoration.kt │ │ │ ├── LinkMovementClickMethod.kt │ │ │ ├── LinkTextView.kt │ │ │ ├── MyLinearSmoothScroller.kt │ │ │ ├── MyURLSpan.kt │ │ │ ├── NestedScrollableHost.kt │ │ │ ├── NoScrollGridView.kt │ │ │ ├── QuestionItemDecorator.kt │ │ │ ├── SmoothInputLayout.kt │ │ │ ├── StaggerItemDecoration.kt │ │ │ ├── StickyItemDecorator.kt │ │ │ ├── circleindicator │ │ │ ├── BaseCircleIndicator.kt │ │ │ ├── CircleIndicator.kt │ │ │ ├── CircleIndicator3.kt │ │ │ └── Config.kt │ │ │ └── ninegridimageview │ │ │ ├── NineGridImageView.kt │ │ │ └── indicator │ │ │ └── CircleIndexIndicator.kt │ └── res │ │ ├── anim │ │ ├── anim_bottom_sheet_slide_down.xml │ │ ├── anim_bottom_sheet_slide_up.xml │ │ ├── anim_fade_in.xml │ │ ├── anim_fade_out.xml │ │ ├── fade_in.xml │ │ ├── fade_in_150.xml │ │ ├── fade_out.xml │ │ ├── fade_out_150.xml │ │ ├── indicator_animator.xml │ │ ├── indicator_animator_reverse.xml │ │ ├── left_in.xml │ │ ├── left_out.xml │ │ ├── left_out_fragment.xml │ │ ├── right_in.xml │ │ ├── right_out.xml │ │ └── scale_with_alpha.xml │ │ ├── color │ │ ├── home_card_background_color.xml │ │ └── image_stroke.xml │ │ ├── drawable-v1 │ │ ├── c_coolb.png │ │ ├── c_fived.png │ │ ├── c_fivef.png │ │ ├── c_fivem.png │ │ ├── c_fiveo.png │ │ ├── c_fivey.png │ │ ├── c_fy.png │ │ ├── c_oned.png │ │ ├── c_onef.png │ │ ├── c_onem.png │ │ ├── c_oneo.png │ │ ├── c_oney.png │ │ ├── c_oy.png │ │ ├── c_teny.png │ │ ├── c_twod.png │ │ ├── c_twof.png │ │ ├── c_twom.png │ │ ├── c_twoo.png │ │ ├── c_twoy.png │ │ ├── c_ty.png │ │ ├── coolapk_emotion_100_qqdoge.png │ │ ├── coolapk_emotion_1010.png │ │ ├── coolapk_emotion_1011.png │ │ ├── coolapk_emotion_1012.png │ │ ├── coolapk_emotion_1013.png │ │ ├── coolapk_emotion_1014.png │ │ ├── coolapk_emotion_1015.png │ │ ├── coolapk_emotion_1016.png │ │ ├── coolapk_emotion_1017.png │ │ ├── coolapk_emotion_1018.png │ │ ├── coolapk_emotion_1019.png │ │ ├── coolapk_emotion_101_pyjiaoyi.png │ │ ├── coolapk_emotion_1020.png │ │ ├── coolapk_emotion_1021.png │ │ ├── coolapk_emotion_1022_zhenbuchuo.png │ │ ├── coolapk_emotion_1023_liewenhuke.png │ │ ├── coolapk_emotion_1024.png │ │ ├── coolapk_emotion_1025.png │ │ ├── coolapk_emotion_1026.png │ │ ├── coolapk_emotion_1027.png │ │ ├── coolapk_emotion_1028.png │ │ ├── coolapk_emotion_1029.png │ │ ├── coolapk_emotion_102_fadai.png │ │ ├── coolapk_emotion_1030.png │ │ ├── coolapk_emotion_1031.png │ │ ├── coolapk_emotion_103_nb.png │ │ ├── coolapk_emotion_104.png │ │ ├── coolapk_emotion_105.png │ │ ├── coolapk_emotion_106.png │ │ ├── coolapk_emotion_107.png │ │ ├── coolapk_emotion_108.png │ │ ├── coolapk_emotion_109.png │ │ ├── coolapk_emotion_10_aoman.png │ │ ├── coolapk_emotion_11_yiwen.png │ │ ├── coolapk_emotion_12_wuyu.png │ │ ├── coolapk_emotion_13_huaixiao.png │ │ ├── coolapk_emotion_14_bishi.png │ │ ├── coolapk_emotion_15_fanu.png │ │ ├── coolapk_emotion_16_tuosai.png │ │ ├── coolapk_emotion_17_tushe.png │ │ ├── coolapk_emotion_18_han.png │ │ ├── coolapk_emotion_19_koubi.png │ │ ├── coolapk_emotion_1_hahaha.png │ │ ├── coolapk_emotion_20_qinqin.png │ │ ├── coolapk_emotion_21_penxue.png │ │ ├── coolapk_emotion_22_xiaoyan.png │ │ ├── coolapk_emotion_23_shui.png │ │ ├── coolapk_emotion_24_wuzuixiao.png │ │ ├── coolapk_emotion_25_zaijian.png │ │ ├── coolapk_emotion_26_kelian.png │ │ ├── coolapk_emotion_27_qiang.png │ │ ├── coolapk_emotion_28_ruo.png │ │ ├── coolapk_emotion_29_baoquan.png │ │ ├── coolapk_emotion_2_jingya.png │ │ ├── coolapk_emotion_30_ok.png │ │ ├── coolapk_emotion_31_xiaoku.png │ │ ├── coolapk_emotion_32_heiha.png │ │ ├── coolapk_emotion_33_wulian.png │ │ ├── coolapk_emotion_34_jizhi.png │ │ ├── coolapk_emotion_35_ye.png │ │ ├── coolapk_emotion_36_ku.png │ │ ├── coolapk_emotion_37_doge.png │ │ ├── coolapk_emotion_38_wozuimei.png │ │ ├── coolapk_emotion_39_caidao.png │ │ ├── coolapk_emotion_3_ciya.png │ │ ├── coolapk_emotion_40_aixin.png │ │ ├── coolapk_emotion_41_meigui.png │ │ ├── coolapk_emotion_42_diaoxie.png │ │ ├── coolapk_emotion_43_heixian.png │ │ ├── coolapk_emotion_44_pen.png │ │ ├── coolapk_emotion_45_yinxian.png │ │ ├── coolapk_emotion_46_nanguo.png │ │ ├── coolapk_emotion_47_weiqu.png │ │ ├── coolapk_emotion_48_weiweiyixiao.png │ │ ├── coolapk_emotion_49_huanhu.png │ │ ├── coolapk_emotion_4_liulei.png │ │ ├── coolapk_emotion_50_xinsui.png │ │ ├── coolapk_emotion_51_chigua.png │ │ ├── coolapk_emotion_52_hejiu.png │ │ ├── coolapk_emotion_53_pu.png │ │ ├── coolapk_emotion_54_hongyaowan.png │ │ ├── coolapk_emotion_55_lvyaowan.png │ │ ├── coolapk_emotion_56_dogexiaoku.png │ │ ├── coolapk_emotion_57_dogehechi.png │ │ ├── coolapk_emotion_58_dogeyuanliangta.png │ │ ├── coolapk_emotion_59_erha.png │ │ ├── coolapk_emotion_5_keai.png │ │ ├── coolapk_emotion_60_kuan.png │ │ ├── coolapk_emotion_61_lvmao.png │ │ ├── coolapk_emotion_62_huaji.png │ │ ├── coolapk_emotion_63_liuhanhuaji.png │ │ ├── coolapk_emotion_64_shounuehuaji.png │ │ ├── coolapk_emotion_65_coshuaji.png │ │ ├── coolapk_emotion_66_doujiyanhuaji.png │ │ ├── coolapk_emotion_67_mojinghuaji.png │ │ ├── coolapk_emotion_68.png │ │ ├── coolapk_emotion_69.png │ │ ├── coolapk_emotion_6_weixiao.png │ │ ├── coolapk_emotion_70.png │ │ ├── coolapk_emotion_71.png │ │ ├── coolapk_emotion_72.png │ │ ├── coolapk_emotion_73.png │ │ ├── coolapk_emotion_74.png │ │ ├── coolapk_emotion_75.png │ │ ├── coolapk_emotion_76.png │ │ ├── coolapk_emotion_77.png │ │ ├── coolapk_emotion_78.png │ │ ├── coolapk_emotion_79.png │ │ ├── coolapk_emotion_7_hehe.png │ │ ├── coolapk_emotion_80.png │ │ ├── coolapk_emotion_81_naikezui.png │ │ ├── coolapk_emotion_82_miaomiao.png │ │ ├── coolapk_emotion_83_huoba.png │ │ ├── coolapk_emotion_84_baiyan.png │ │ ├── coolapk_emotion_85.png │ │ ├── coolapk_emotion_86.png │ │ ├── coolapk_emotion_87.png │ │ ├── coolapk_emotion_88.png │ │ ├── coolapk_emotion_89.png │ │ ├── coolapk_emotion_8_piezui.png │ │ ├── coolapk_emotion_90.png │ │ ├── coolapk_emotion_91.png │ │ ├── coolapk_emotion_92.png │ │ ├── coolapk_emotion_93.png │ │ ├── coolapk_emotion_94.png │ │ ├── coolapk_emotion_95_erhading.png │ │ ├── coolapk_emotion_96_kuanlvmao.png │ │ ├── coolapk_emotion_97_haixiu.png │ │ ├── coolapk_emotion_98_wunai.png │ │ ├── coolapk_emotion_99_zhoumei.png │ │ └── coolapk_emotion_9_se.png │ │ ├── drawable │ │ ├── black_radius_square.xml │ │ ├── bottom_sheet_controller_bar.xml │ │ ├── cont_author.webp │ │ ├── cont_klxiaoniu.webp │ │ ├── divider.xml │ │ ├── home_tab.xml │ │ ├── home_topic_bg.xml │ │ ├── ic_account.xml │ │ ├── ic_add.xml │ │ ├── ic_add1.xml │ │ ├── ic_archive.xml │ │ ├── ic_arrow_down.xml │ │ ├── ic_arrow_down1.xml │ │ ├── ic_at.xml │ │ ├── ic_author.xml │ │ ├── ic_back.xml │ │ ├── ic_backspace.xml │ │ ├── ic_baseline_broken_image.xml │ │ ├── ic_baseline_hourglass_bottom.xml │ │ ├── ic_block.xml │ │ ├── ic_bug.xml │ │ ├── ic_chat.xml │ │ ├── ic_check.xml │ │ ├── ic_clean.xml │ │ ├── ic_clear_all.xml │ │ ├── ic_close.xml │ │ ├── ic_comment.xml │ │ ├── ic_date.xml │ │ ├── ic_delete.xml │ │ ├── ic_dev_mode.xml │ │ ├── ic_device.xml │ │ ├── ic_emoji.xml │ │ ├── ic_expand_more.xml │ │ ├── ic_explorer.xml │ │ ├── ic_face.xml │ │ ├── ic_fav.xml │ │ ├── ic_favorite_border.xml │ │ ├── ic_feed.xml │ │ ├── ic_feed_top.xml │ │ ├── ic_filter.xml │ │ ├── ic_forward.xml │ │ ├── ic_freq.xml │ │ ├── ic_history.xml │ │ ├── ic_home_baseline.xml │ │ ├── ic_home_outline.xml │ │ ├── ic_home_selector.xml │ │ ├── ic_image.xml │ │ ├── ic_keyboard.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_like.xml │ │ ├── ic_link.xml │ │ ├── ic_logo.xml │ │ ├── ic_logout.xml │ │ ├── ic_menu.xml │ │ ├── ic_message.xml │ │ ├── ic_message1.xml │ │ ├── ic_message2.xml │ │ ├── ic_message3.xml │ │ ├── ic_message_baseline.xml │ │ ├── ic_message_outline.xml │ │ ├── ic_message_selector.xml │ │ ├── ic_more.xml │ │ ├── ic_notification_bell.xml │ │ ├── ic_password.xml │ │ ├── ic_phone.xml │ │ ├── ic_photo.xml │ │ ├── ic_refresh.xml │ │ ├── ic_reply.xml │ │ ├── ic_search.xml │ │ ├── ic_setting_baseline.xml │ │ ├── ic_setting_outline.xml │ │ ├── ic_setting_selector.xml │ │ ├── ic_share.xml │ │ ├── ic_star.xml │ │ ├── ic_subauthor.xml │ │ ├── ic_text_fields.xml │ │ ├── ic_thumb.xml │ │ ├── ic_token.xml │ │ ├── ic_update.xml │ │ ├── outline_add_circle_outline_24.xml │ │ ├── outline_dark_mode_24.xml │ │ ├── outline_file_download_24.xml │ │ ├── outline_file_upload_24.xml │ │ ├── outline_format_color_fill_24.xml │ │ ├── outline_help_outline_24.xml │ │ ├── outline_invert_colors_24.xml │ │ ├── outline_keyboard_hide_24.xml │ │ ├── outline_keyboard_show_24.xml │ │ ├── outline_note_alt_24.xml │ │ ├── outline_palette_24.xml │ │ ├── outline_system_update_24.xml │ │ ├── outline_tag_24.xml │ │ ├── outline_widgets_24.xml │ │ ├── pic_count_bg.xml │ │ ├── round_corners_12.xml │ │ ├── round_corners_12_forward.xml │ │ ├── round_corners_12_win.xml │ │ ├── round_corners_20.xml │ │ ├── round_corners_20_win.xml │ │ ├── round_corners_trans.xml │ │ ├── search_history_bg.xml │ │ ├── selector_bg_12_feed.xml │ │ ├── selector_bg_12_forward.xml │ │ ├── selector_bg_12_trans.xml │ │ ├── selector_bg_20_trans.xml │ │ ├── selector_bg_avatar.xml │ │ ├── selector_bg_trans.xml │ │ ├── selector_emoji.xml │ │ ├── selector_emoji_indicator.xml │ │ ├── selector_emoji_indicator_selected.xml │ │ ├── selector_reply.xml │ │ ├── shape_indicator_bg.xml │ │ ├── shape_oval_primary.xml │ │ ├── shape_text_scroll_card_text_bg.xml │ │ ├── tab_background_trans.xml │ │ ├── text_card_bg.xml │ │ └── white_radius.xml │ │ ├── layout-land │ │ ├── activity_main.xml │ │ └── activity_reply.xml │ │ ├── layout │ │ ├── activity_app_update.xml │ │ ├── activity_at_topic.xml │ │ ├── activity_black_list.xml │ │ ├── activity_bug_handler.xml │ │ ├── activity_copy.xml │ │ ├── activity_history.xml │ │ ├── activity_login.xml │ │ ├── activity_main.xml │ │ ├── activity_prams.xml │ │ ├── activity_reply.xml │ │ ├── activity_web_view.xml │ │ ├── base_fragment_container.xml │ │ ├── base_refresh_recyclerview.xml │ │ ├── base_tablayout_viewpager.xml │ │ ├── base_user_page.xml │ │ ├── base_view_app.xml │ │ ├── base_view_user.xml │ │ ├── dialog_about.xml │ │ ├── dialog_refresh.xml │ │ ├── dialog_reply_to_reply_bottom_sheet.xml │ │ ├── fragment_at_topic.xml │ │ ├── fragment_feed.xml │ │ ├── fragment_feed_vote.xml │ │ ├── fragment_home.xml │ │ ├── fragment_home_topic.xml │ │ ├── fragment_message.xml │ │ ├── fragment_search.xml │ │ ├── fragment_settings.xml │ │ ├── item_app.xml │ │ ├── item_app_update.xml │ │ ├── item_at_user.xml │ │ ├── item_brand_label.xml │ │ ├── item_captcha.xml │ │ ├── item_collection_list_item.xml │ │ ├── item_edittext.xml │ │ ├── item_emoji.xml │ │ ├── item_emoji_child_viewpager.xml │ │ ├── item_error_layout.xml │ │ ├── item_error_message.xml │ │ ├── item_feed_article_image.xml │ │ ├── item_feed_article_share_url.xml │ │ ├── item_feed_article_text.xml │ │ ├── item_feed_content.xml │ │ ├── item_feed_content_reply_item.xml │ │ ├── item_feed_content_reply_to_reply_item.xml │ │ ├── item_feed_reply.xml │ │ ├── item_font_scale.xml │ │ ├── item_history_feed.xml │ │ ├── item_home_feed.xml │ │ ├── item_home_feed_refresh_card.xml │ │ ├── item_home_icon_link_grid_card.xml │ │ ├── item_home_icon_link_grid_card_item.xml │ │ ├── item_home_icon_mini_scroll_card.xml │ │ ├── item_home_icon_mini_scroll_card_item.xml │ │ ├── item_home_image_carousel_card.xml │ │ ├── item_home_image_carousel_card_item.xml │ │ ├── item_home_image_square_scroll_card.xml │ │ ├── item_home_image_square_scroll_card_item.xml │ │ ├── item_home_image_text_scroll_card.xml │ │ ├── item_home_image_text_scroll_card_item.xml │ │ ├── item_home_menu.xml │ │ ├── item_home_topic.xml │ │ ├── item_indicator.xml │ │ ├── item_message_content.xml │ │ ├── item_message_fff.xml │ │ ├── item_message_item.xml │ │ ├── item_message_mess.xml │ │ ├── item_message_mine.xml │ │ ├── item_message_user.xml │ │ ├── item_recent_history.xml │ │ ├── item_reply_to_reply_item.xml │ │ ├── item_rv_footer.xml │ │ ├── item_rv_header.xml │ │ ├── item_rv_place_holder.xml │ │ ├── item_search_apk.xml │ │ ├── item_search_history.xml │ │ ├── item_search_topic.xml │ │ ├── item_search_user.xml │ │ ├── item_top.xml │ │ ├── item_x_app_token.xml │ │ ├── layout_badge_view.xml │ │ └── preference_recyclerview.xml │ │ ├── menu │ │ ├── blacklist_menu.xml │ │ ├── feed_history_menu.xml │ │ ├── feed_menu.xml │ │ ├── feed_reply_menu.xml │ │ ├── history_menu.xml │ │ ├── home_feed_menu.xml │ │ ├── login_menu.xml │ │ ├── message_menu.xml │ │ ├── msearch_menu.xml │ │ ├── nav_menu.xml │ │ ├── search_menu.xml │ │ ├── settings_menu.xml │ │ ├── topic_product_menu.xml │ │ ├── user_menu.xml │ │ └── webview_menu.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── values-night-v31 │ │ └── colors.xml │ │ ├── values-night │ │ ├── colors.xml │ │ ├── styles.xml │ │ └── themes.xml │ │ ├── values-v29 │ │ └── themes.xml │ │ ├── values-v31 │ │ ├── colors.xml │ │ └── themes.xml │ │ ├── values │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── ids.xml │ │ ├── integer.xml │ │ ├── strings.xml │ │ ├── themes.xml │ │ ├── themes_custom.xml │ │ └── themes_overlay.xml │ │ └── xml │ │ ├── backup_rules.xml │ │ ├── data_extraction_rules.xml │ │ ├── file_provider_paths.xml │ │ ├── params.xml │ │ └── settings.xml │ └── test │ └── java │ └── com │ └── example │ └── coolapk │ └── ExampleUnitTest.kt ├── build.gradle.kts ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── mojito ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── net │ │ └── mikaelzero │ │ └── mojito │ │ ├── Mojito.kt │ │ ├── MojitoBuilder.kt │ │ ├── MojitoLoader.kt │ │ ├── MojitoView.java │ │ ├── bean │ │ ├── ActivityConfig.kt │ │ ├── FragmentConfig.kt │ │ ├── ViewPagerBean.kt │ │ └── ViewParams.java │ │ ├── ext │ │ └── MojitoViewExt.kt │ │ ├── impl │ │ ├── DefaultMojitoConfig.kt │ │ ├── DefaultPercentProgress.java │ │ ├── DefaultTargetFragmentCover.kt │ │ ├── LoadingView.java │ │ ├── NumIndicator.java │ │ └── SimpleMojitoViewCallback.kt │ │ ├── interfaces │ │ ├── ActivityCoverLoader.kt │ │ ├── IIndicator.java │ │ ├── IMojitoActivity.kt │ │ ├── IMojitoConfig.kt │ │ ├── IMojitoFragment.kt │ │ ├── IProgress.java │ │ ├── ImageViewLoadFactory.kt │ │ ├── OnMojitoListener.kt │ │ └── OnMojitoViewCallback.java │ │ ├── loader │ │ ├── ContentLoader.kt │ │ ├── DefaultImageCallback.java │ │ ├── FragmentCoverLoader.kt │ │ ├── ImageInfoExtractor.java │ │ ├── ImageLoader.java │ │ ├── InstanceLoader.kt │ │ ├── MultiContentLoader.kt │ │ ├── OnLongTapCallback.kt │ │ └── OnTapCallback.kt │ │ ├── tools │ │ ├── BitmapUtil.kt │ │ ├── CommonExt.kt │ │ ├── DataWrapUtil.kt │ │ ├── MarginViewWrapper.java │ │ ├── MojitoConstant.kt │ │ ├── NoScrollViewPager.java │ │ ├── ScreenUtils.java │ │ ├── TransitionAdapterListener.java │ │ └── Utils.java │ │ └── ui │ │ ├── ImageMojitoActivity.kt │ │ └── ImageMojitoFragment.kt │ └── res │ ├── drawable │ └── target_button_shape.xml │ ├── layout │ ├── activity_image.xml │ ├── default_target_cover_layout.xml │ ├── fragment_image.xml │ └── layout_content.xml │ ├── styles.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── ids.xml │ ├── strings.xml │ └── styles.xml ├── renovate.json └── settings.gradle.kts /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | *.log 17 | .idea 18 | -------------------------------------------------------------------------------- /GlideImageLoader/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /GlideImageLoader/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/GlideImageLoader/consumer-rules.pro -------------------------------------------------------------------------------- /GlideImageLoader/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /GlideImageLoader/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /GlideImageLoader/src/main/java/net/mikaelzero/mojito/loader/glide/GlideLoaderException.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader.glide 2 | 3 | import android.graphics.drawable.Drawable 4 | 5 | class GlideLoaderException(val errorDrawable: Drawable?) : RuntimeException() -------------------------------------------------------------------------------- /SketchImageViewLoader/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /SketchImageViewLoader/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/SketchImageViewLoader/consumer-rules.pro -------------------------------------------------------------------------------- /SketchImageViewLoader/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/java/net/mikaelzero/mojito/view/sketch/core/Key.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Peng fei Pan 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package net.mikaelzero.mojito.view.sketch.core; 18 | 19 | import androidx.annotation.Nullable; 20 | 21 | public interface Key { 22 | 23 | @Nullable 24 | String getKey(); 25 | } 26 | -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/java/net/mikaelzero/mojito/view/sketch/core/cache/recycle/BaseKeyPool.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.view.sketch.core.cache.recycle; 2 | 3 | import java.util.ArrayDeque; 4 | import java.util.Queue; 5 | 6 | abstract class BaseKeyPool { 7 | private static final int MAX_SIZE = 20; 8 | private final Queue keyPool = new ArrayDeque(MAX_SIZE); 9 | 10 | protected T get() { 11 | T result = keyPool.poll(); 12 | if (result == null) { 13 | result = create(); 14 | } 15 | return result; 16 | } 17 | 18 | public void offer(T key) { 19 | if (keyPool.size() < MAX_SIZE) { 20 | keyPool.offer(key); 21 | } 22 | } 23 | 24 | protected abstract T create(); 25 | } 26 | -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/java/net/mikaelzero/mojito/view/sketch/core/cache/recycle/LruPoolStrategy.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.view.sketch.core.cache.recycle; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import net.mikaelzero.mojito.view.sketch.core.Key; 6 | 7 | 8 | public interface LruPoolStrategy extends Key { 9 | void put(Bitmap bitmap); 10 | 11 | Bitmap get(int width, int height, Bitmap.Config config); 12 | 13 | Bitmap removeLast(); 14 | 15 | String logBitmap(Bitmap bitmap); 16 | 17 | String logBitmap(int width, int height, Bitmap.Config config); 18 | 19 | int getSize(Bitmap bitmap); 20 | } 21 | -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/java/net/mikaelzero/mojito/view/sketch/core/cache/recycle/Poolable.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.view.sketch.core.cache.recycle; 2 | 3 | interface Poolable { 4 | void offer(); 5 | } 6 | -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/java/net/mikaelzero/mojito/view/sketch/core/decode/NotFoundGifLibraryException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Peng fei Pan 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package net.mikaelzero.mojito.view.sketch.core.decode; 18 | 19 | public class NotFoundGifLibraryException extends Exception { 20 | } 21 | -------------------------------------------------------------------------------- /SketchImageViewLoader/src/main/java/net/mikaelzero/mojito/view/sketch/core/request/CanceledException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Peng fei Pan 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package net.mikaelzero.mojito.view.sketch.core.request; 18 | 19 | public class CanceledException extends Exception { 20 | } 21 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | keytest.jks 3 | /release 4 | /schemas -------------------------------------------------------------------------------- /app/src/androidTest/java/com/example/coolapk/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.example.c001apk", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/adapter/BaseViewHolder.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.adapter 2 | 3 | import androidx.databinding.ViewDataBinding 4 | import androidx.recyclerview.widget.RecyclerView 5 | import com.example.c001apk.logic.model.HomeFeedResponse 6 | 7 | open class BaseViewHolder(@JvmField val dataBinding: T) : 8 | RecyclerView.ViewHolder(dataBinding.root) { 9 | open fun bind(data: HomeFeedResponse.Data) {} 10 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/adapter/FooterState.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.adapter 2 | 3 | sealed class FooterState { 4 | data object Loading : FooterState() 5 | data object LoadingDone : FooterState() 6 | class LoadingEnd(val msg: String) : FooterState() 7 | class LoadingError(val errMsg: String) : FooterState() 8 | data object LoadingReply : FooterState() 9 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/adapter/LoadingState.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.adapter 2 | 3 | sealed class LoadingState { 4 | data object Loading : LoadingState() 5 | data object LoadingDone : LoadingState() 6 | class LoadingError(val errMsg: String) : LoadingState() 7 | class LoadingFailed(val msg: String) : LoadingState() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/BrowseHistoryDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.HistoryFavoriteDao 6 | import com.example.c001apk.logic.model.FeedEntity 7 | 8 | @Database(version = 1, entities = [FeedEntity::class]) 9 | abstract class BrowseHistoryDatabase : RoomDatabase() { 10 | abstract fun browseHistoryDao(): HistoryFavoriteDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/FeedFavoriteDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.HistoryFavoriteDao 6 | import com.example.c001apk.logic.model.FeedEntity 7 | 8 | 9 | @Database(version = 2, entities = [FeedEntity::class]) 10 | abstract class FeedFavoriteDatabase : RoomDatabase() { 11 | abstract fun feedFavoriteDao(): HistoryFavoriteDao 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/HomeMenuDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.HomeMenuDao 6 | import com.example.c001apk.logic.model.HomeMenu 7 | 8 | @Database(version = 5, entities = [HomeMenu::class]) 9 | abstract class HomeMenuDatabase : RoomDatabase() { 10 | abstract fun homeMenuDao(): HomeMenuDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/RecentAtUserDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.RecentAtUserDao 6 | import com.example.c001apk.logic.model.RecentAtUser 7 | 8 | @Database(version = 2, entities = [RecentAtUser::class]) 9 | abstract class RecentAtUserDatabase : RoomDatabase() { 10 | abstract fun recentAtUserDao(): RecentAtUserDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/RecentEmojiDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.StringEntityDao 6 | import com.example.c001apk.logic.model.StringEntity 7 | 8 | @Database(version = 2, entities = [StringEntity::class]) 9 | abstract class RecentEmojiDatabase : RoomDatabase() { 10 | abstract fun recentEmojiDao(): StringEntityDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/SearchHistoryDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.StringEntityDao 6 | import com.example.c001apk.logic.model.StringEntity 7 | 8 | @Database(version = 2, entities = [StringEntity::class]) 9 | abstract class SearchHistoryDatabase : RoomDatabase() { 10 | abstract fun searchHistoryDao(): StringEntityDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/TopicBlackListDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.StringEntityDao 6 | import com.example.c001apk.logic.model.StringEntity 7 | 8 | @Database(version = 2, entities = [StringEntity::class]) 9 | abstract class TopicBlackListDatabase : RoomDatabase() { 10 | abstract fun topicBlackListDao(): StringEntityDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/database/UserBlackListDatabase.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.database 2 | 3 | import androidx.room.Database 4 | import androidx.room.RoomDatabase 5 | import com.example.c001apk.logic.dao.StringEntityDao 6 | import com.example.c001apk.logic.model.StringEntity 7 | 8 | @Database(version = 2, entities = [StringEntity::class]) 9 | abstract class UserBlackListDatabase : RoomDatabase() { 10 | abstract fun userBlackListDao(): StringEntityDao 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/AppItem.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | 4 | class AppItem { 5 | // var icon: Drawable? = null 6 | var appName: String = "" 7 | var packageName: String = "" 8 | var versionName: String = "" 9 | 10 | // var isSystem: Boolean = false 11 | var lastUpdateTime: Long = 0 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/CheckCountResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | 5 | data class CheckCountResponse( 6 | val status: Int?, 7 | val message: String?, 8 | val messageStatus: String?, 9 | val data: Data? 10 | ) { 11 | 12 | data class Data( 13 | val notification: Int, 14 | @SerializedName("contacts_follow") 15 | val contactsFollow: Int, 16 | val message: Int, 17 | val atme: Int, 18 | val atcommentme: Int, 19 | val commentme: Int, 20 | val feedlike: Int, 21 | val badge: Int, 22 | val dateline: String 23 | ) 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/CreateFeedResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | 5 | data class CreateFeedResponse( 6 | val status: Int?, 7 | val error: Int?, 8 | val message: String?, 9 | val messageStatus: String?, 10 | val data: Data? 11 | ) { 12 | data class Data( 13 | val status: Int?, 14 | val error: Int?, 15 | val messageStatus: String?, 16 | val id: String?, 17 | val type: String?, 18 | val message: String?, 19 | val pic: String, 20 | @SerializedName("device_title") val deviceTitle: String?, 21 | @SerializedName("message_signature") val messageSignature: String?, 22 | val picArr: List?, 23 | ) 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/DeviceInfo.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class DeviceInfo( 4 | val deviceId: String, 5 | val mac: String, 6 | val manufacturer: String, 7 | val brand: String, 8 | val model: String, 9 | val display: String, 10 | val oaid: String 11 | ) 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/FeedArticleContentBean.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class FeedArticleContentBean( 4 | var data: List?, 5 | ) { 6 | data class Data( 7 | val type: String?, 8 | val message: String?, 9 | val url: String?, 10 | val description: String?, 11 | val title: String?, 12 | val subTitle: String?, 13 | val logo: String?, 14 | ) 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/FeedContentResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class FeedContentResponse( 4 | val status: Int?, 5 | val error: Int?, 6 | val message: String?, 7 | val messageStatus: Int?, 8 | val data: HomeFeedResponse.Data? 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/FeedEntity.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | 6 | @Entity 7 | data class FeedEntity( 8 | val fid: String, 9 | val uid: String, 10 | val uname: String, 11 | val avatar: String, 12 | val device: String, 13 | val message: String, 14 | val pubDate: String 15 | ) { 16 | @PrimaryKey(autoGenerate = true) 17 | var id: Long = 0 18 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/HomeMenu.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | 6 | @Entity 7 | data class HomeMenu( 8 | var position: Int, 9 | @PrimaryKey 10 | var title: String, 11 | var isEnable: Boolean 12 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/Like.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class Like( 4 | val likeNum: String, 5 | val isLike: Int 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/LikeFeedResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class LikeFeedResponse( 4 | val data: Data?, 5 | val status: Int?, 6 | val error: Int?, 7 | val message: String?, 8 | val messageStatus: String?, 9 | ) { 10 | data class Data( 11 | val follow: Int?, 12 | val count: String 13 | ) 14 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/LikeReplyResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class LikeReplyResponse( 4 | val data: String?, 5 | val status: Int?, 6 | val error: Int?, 7 | val message: String?, 8 | val messageStatus: String?, 9 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/LoadUrlResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class LoadUrlResponse( 4 | val status: Int?, 5 | val error: Int?, 6 | val message: String?, 7 | val data: Data? 8 | ) { 9 | data class Data( 10 | val title: String, 11 | val logo: String?, 12 | val url: String, 13 | val description: String, 14 | ) 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/LoginResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | data class LoginResponse( 4 | val status: Int?, 5 | val messageStatus: Int?, 6 | val message: String?, 7 | val uid: String?, 8 | val username: String?, 9 | val token: String?, 10 | val refreshToken: String? 11 | ) 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/OSSUploadPrepareModel.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | 4 | data class OSSUploadPrepareModel( 5 | val name: String, 6 | val resolution: String, 7 | val md5: String, 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/PostReplyResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | class PostReplyResponse( 4 | val status: Int?, 5 | val message: String?, 6 | val messageStatus: String?, 7 | val data: TotalReplyResponse.Data? 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/RecentAtUser.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | 6 | @Entity 7 | data class RecentAtUser( 8 | var id: Long = System.currentTimeMillis(), 9 | val group: String = "recent", 10 | val avatar: String, 11 | @PrimaryKey(autoGenerate = false) 12 | val username: String, 13 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/StringEntity.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import androidx.room.Entity 4 | import androidx.room.PrimaryKey 5 | 6 | @Entity 7 | data class StringEntity( 8 | @PrimaryKey(autoGenerate = false) 9 | var data: String, 10 | var id: Long = System.currentTimeMillis() 11 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/TopicBean.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import android.os.Parcelable 4 | import kotlinx.parcelize.Parcelize 5 | 6 | @Parcelize 7 | data class TopicBean( 8 | val url: String, 9 | val title: String 10 | ): Parcelable -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/logic/model/UpdateCheckResponse.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.logic.model 2 | 3 | import android.os.Parcelable 4 | import kotlinx.parcelize.Parcelize 5 | 6 | @Parcelize 7 | data class UpdateCheckResponse(val data: List) : Parcelable { 8 | @Parcelize 9 | data class Data( 10 | val id: Int, 11 | val title: String, 12 | val shorttitle: String, 13 | val logo: String, 14 | val apkversionname: String, 15 | val apkversioncode: Long, 16 | val apksize: String, 17 | val lastupdate: Long, 18 | val packageName: String, 19 | val changelog: String, 20 | val pkg_bit_type: Int, 21 | var localVersionName: String?, 22 | var localVersionCode: Long?, 23 | var expand: Boolean = false, 24 | ) : Parcelable 25 | 26 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/base/BaseViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.base 2 | 3 | import androidx.lifecycle.MutableLiveData 4 | import androidx.lifecycle.ViewModel 5 | import com.example.c001apk.adapter.LoadingState 6 | 7 | abstract class BaseViewModel : ViewModel() { 8 | 9 | var lastItem: String? = null 10 | var isInit: Boolean = true 11 | var listSize: Int = -1 12 | var isRefreshing: Boolean = false 13 | var isLoadMore: Boolean = false 14 | var isEnd: Boolean = false 15 | var page: Int = 1 16 | 17 | val activityState = MutableLiveData() 18 | val loadingState = MutableLiveData() 19 | 20 | abstract fun fetchData() 21 | 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/blacklist/IOnItemClickListener.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.blacklist 2 | 3 | interface IOnItemClickListener { 4 | fun onItemClick(data: String) 5 | fun onItemDeleteClick(data: String) 6 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/feed/reply/attopic/OnSearchContainer.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.feed.reply.attopic 2 | 3 | interface OnSearchContainer { 4 | 5 | var container: OnSearchListener? 6 | 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/feed/reply/attopic/OnSearchListener.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.feed.reply.attopic 2 | 3 | interface OnSearchListener { 4 | 5 | fun onSearch(type: String, keyword: String) 6 | 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/home/IOnTabClickContainer.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.home 2 | 3 | interface IOnTabClickContainer { 4 | var tabController: IOnTabClickListener? 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/home/IOnTabClickListener.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.home 2 | 3 | interface IOnTabClickListener { 4 | fun onReturnTop(isRefresh: Boolean?) 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/main/IOnBottomClickContainer.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.main 2 | 3 | interface IOnBottomClickContainer { 4 | var controller: IOnBottomClickListener? 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/main/IOnBottomClickListener.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.main 2 | 3 | interface IOnBottomClickListener { 4 | 5 | fun onReturnTop() 6 | 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/others/AppLinkActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.others 2 | 3 | import android.os.Bundle 4 | import com.example.c001apk.util.NetWorkUtil.openLink 5 | import rikka.material.app.MaterialActivity 6 | 7 | class AppLinkActivity : MaterialActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | 12 | val data = intent.data 13 | 14 | openLink(this, data.toString(), null) 15 | 16 | finish() 17 | 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/search/IOnSearchMenuClickContainer.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.search 2 | 3 | interface IOnSearchMenuClickContainer { 4 | var controller: IOnSearchMenuClickListener? 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/search/IOnSearchMenuClickListener.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.search 2 | 3 | interface IOnSearchMenuClickListener { 4 | 5 | fun onSearch(type: String, value: String, id: String?) 6 | 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/settings/params/ParamsActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.settings.params 2 | 3 | import com.example.c001apk.databinding.ActivityPramsBinding 4 | import com.example.c001apk.ui.base.BaseActivity 5 | 6 | class ParamsActivity : BaseActivity() -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/ui/user/UserFragment.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.ui.user 2 | 3 | import android.widget.Toast 4 | import androidx.fragment.app.viewModels 5 | import com.example.c001apk.ui.base.BaseAppFragment 6 | import dagger.hilt.android.AndroidEntryPoint 7 | 8 | @AndroidEntryPoint 9 | class UserFragment : BaseAppFragment() { 10 | 11 | override val viewModel by viewModels(ownerProducer = { requireActivity() }) 12 | 13 | override fun initObserve() { 14 | super.initObserve() 15 | 16 | viewModel.toastText.observe(viewLifecycleOwner) { event -> 17 | event.getContentIfNotHandledOrReturnNull()?.let { 18 | Toast.makeText(requireContext(), it, Toast.LENGTH_SHORT).show() 19 | } 20 | } 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/ClipboardUtil.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | import android.content.ClipData 4 | import android.content.ClipboardManager 5 | import android.content.Context 6 | 7 | object ClipboardUtil { 8 | fun copyText(context: Context, text: String, showToast: Boolean = true) { 9 | val clipboardManager = 10 | context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager 11 | ClipData.newPlainText("c001apk text", text)?.let { clipboardManager.setPrimaryClip(it) } 12 | if (showToast) 13 | context.makeToast("已复制: $text") 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/CookieUtil.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | object CookieUtil { 4 | 5 | var SESSID = "" 6 | 7 | var token = "" 8 | 9 | var isPreGetLoginParam = false 10 | 11 | var isGetLoginParam = false 12 | 13 | var isTryLogin = false 14 | 15 | var isGetCaptcha = false 16 | 17 | var isGetSmsLoginParam = false 18 | 19 | var isGetSmsToken = false 20 | 21 | var atme: Int? = null 22 | var atcommentme: Int? = null 23 | var feedlike: Int? = null 24 | var contacts_follow: Int? = null 25 | var badge: Int = 0 26 | var notification: Int = 0 27 | 28 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/DensityTool.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | import android.content.Context 4 | 5 | 6 | object DensityTool { 7 | 8 | fun getScreenWidth(context: Context): Int { 9 | return context.resources.displayMetrics.widthPixels 10 | } 11 | 12 | fun getScreenHeight(context: Context): Int { 13 | return context.resources.displayMetrics.heightPixels 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/DeviceCode.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | import android.util.Base64 4 | import java.nio.charset.Charset 5 | import java.nio.charset.StandardCharsets.UTF_8 6 | 7 | object DeviceCode { 8 | fun encode(deviceInfo: String): String { 9 | val charset: Charset = UTF_8 10 | val bytes = deviceInfo.toByteArray(charset) 11 | val encodeToString = Base64.encodeToString(bytes, 0) 12 | val replace = StringBuilder(encodeToString).reverse().toString() 13 | return Regex("\\r\\n|\\r|\\n|=").replace(replace, "") 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/Event.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | open class Event(private val content: T) { 4 | 5 | private var hasBeenHandled = false 6 | private set // Allow external read but not write 7 | 8 | /** 9 | * Returns the content and prevents its use again. 10 | */ 11 | fun getContentIfNotHandledOrReturnNull(): T? { 12 | return if (hasBeenHandled) { 13 | null 14 | } else { 15 | hasBeenHandled = true 16 | content 17 | } 18 | } 19 | 20 | /** 21 | * Returns the content, even if it's already been handled. 22 | */ 23 | fun peekContent(): T = content 24 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/HandlerExtensions.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | import android.os.Handler 4 | import android.os.Looper 5 | import android.os.MessageQueue 6 | 7 | /** 8 | * From drakeet 9 | */ 10 | fun doOnMainThreadIdle(action: () -> Unit) { 11 | val handler = Handler(Looper.getMainLooper()) 12 | 13 | val idleHandler = MessageQueue.IdleHandler { 14 | handler.removeCallbacksAndMessages(null) 15 | action() 16 | return@IdleHandler false 17 | } 18 | 19 | fun setupIdleHandler(queue: MessageQueue) { 20 | queue.addIdleHandler(idleHandler) 21 | } 22 | 23 | if (Looper.getMainLooper() == Looper.myLooper()) { 24 | setupIdleHandler(Looper.myQueue()) 25 | } else { 26 | setupIdleHandler(Looper.getMainLooper().queue) 27 | } 28 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/LayoutExtensions.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | import android.content.res.Resources 4 | import android.text.StaticLayout 5 | 6 | /** 7 | * Calculated the widest line in a [StaticLayout]. 8 | */ 9 | internal fun StaticLayout.textWidth(): Int { 10 | var width = 0f 11 | for (i in 0 until lineCount) { 12 | width = width.coerceAtLeast(getLineWidth(i)) 13 | } 14 | return width.toInt() 15 | } 16 | 17 | /** 18 | * Linearly interpolate between two values. 19 | */ 20 | internal fun lerp(a: Float, b: Float, t: Float): Float { 21 | return a + (b - a) * t 22 | } 23 | 24 | val Number.dp get() = (toFloat() * Resources.getSystem().displayMetrics.density).toInt() 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/LoginUtils.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | 4 | import org.jsoup.nodes.Document 5 | 6 | object LoginUtils { 7 | fun Document.createRequestHash(): String = 8 | this.getElementsByTag("Body").attr("data-request-hash") 9 | 10 | fun createRandomNumber() = Math.random().toString().replace(".", "undefined") 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/ToastUtil.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | import android.content.Context 4 | import android.widget.Toast 5 | 6 | fun Context.makeToast(text: String) { 7 | Toast.makeText(this, text, Toast.LENGTH_SHORT).show() 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/util/UrlUtil.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.util 2 | 3 | val String.http2https: String 4 | get() = if (this.getOrElse(4) { 's' } == 's') this 5 | else StringBuilder(this).insert(4, 's').toString() -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/view/AppBarLayoutStateChangeListener.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.view 2 | 3 | import com.google.android.material.appbar.AppBarLayout 4 | import com.google.android.material.appbar.AppBarLayout.OnOffsetChangedListener 5 | import kotlin.math.abs 6 | 7 | abstract class AppBarLayoutStateChangeListener : OnOffsetChangedListener { 8 | 9 | override fun onOffsetChanged(appBarLayout: AppBarLayout, verticalOffset: Int) { 10 | onScroll(1 - abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange.toFloat()) 11 | } 12 | 13 | abstract fun onScroll(percent: Float) 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/c001apk/view/NoScrollGridView.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk.view 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import android.view.MotionEvent 6 | import android.widget.GridView 7 | 8 | class NoScrollGridView(context: Context, attributeSet: AttributeSet? = null) : 9 | GridView(context, attributeSet) { 10 | 11 | override fun onInterceptTouchEvent(ev: MotionEvent): Boolean { 12 | return false 13 | } 14 | 15 | override fun onTouchEvent(ev: MotionEvent): Boolean { 16 | return false 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_bottom_sheet_slide_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_bottom_sheet_slide_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/anim_fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/indicator_animator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/indicator_animator_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/left_in.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/left_out.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/left_out_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/right_in.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/right_out.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/anim/scale_with_alpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 16 | 17 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/color/home_card_background_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/color/image_stroke.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_coolb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_coolb.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_fived.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_fived.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_fivef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_fivef.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_fivem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_fivem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_fiveo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_fiveo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_fivey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_fivey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_fy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_fy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_oned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_oned.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_onef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_onef.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_onem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_onem.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_oneo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_oneo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_oney.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_oney.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_oy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_oy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_teny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_teny.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_twod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_twod.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_twof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_twof.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_twom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_twom.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_twoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_twoo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_twoy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_twoy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/c_ty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/c_ty.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_100_qqdoge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_100_qqdoge.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1010.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1011.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1012.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1013.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1014.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1015.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1016.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1017.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1018.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1019.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_101_pyjiaoyi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_101_pyjiaoyi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1020.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1021.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1022_zhenbuchuo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1022_zhenbuchuo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1023_liewenhuke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1023_liewenhuke.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1024.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1025.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1026.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1027.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1028.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1029.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_102_fadai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_102_fadai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1030.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1031.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_103_nb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_103_nb.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_104.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_105.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_106.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_107.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_108.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_109.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_10_aoman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_10_aoman.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_11_yiwen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_11_yiwen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_12_wuyu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_12_wuyu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_13_huaixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_13_huaixiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_14_bishi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_14_bishi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_15_fanu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_15_fanu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_16_tuosai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_16_tuosai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_17_tushe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_17_tushe.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_18_han.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_18_han.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_19_koubi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_19_koubi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_1_hahaha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_1_hahaha.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_20_qinqin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_20_qinqin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_21_penxue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_21_penxue.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_22_xiaoyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_22_xiaoyan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_23_shui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_23_shui.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_24_wuzuixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_24_wuzuixiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_25_zaijian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_25_zaijian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_26_kelian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_26_kelian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_27_qiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_27_qiang.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_28_ruo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_28_ruo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_29_baoquan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_29_baoquan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_2_jingya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_2_jingya.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_30_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_30_ok.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_31_xiaoku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_31_xiaoku.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_32_heiha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_32_heiha.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_33_wulian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_33_wulian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_34_jizhi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_34_jizhi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_35_ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_35_ye.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_36_ku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_36_ku.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_37_doge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_37_doge.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_38_wozuimei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_38_wozuimei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_39_caidao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_39_caidao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_3_ciya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_3_ciya.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_40_aixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_40_aixin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_41_meigui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_41_meigui.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_42_diaoxie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_42_diaoxie.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_43_heixian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_43_heixian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_44_pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_44_pen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_45_yinxian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_45_yinxian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_46_nanguo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_46_nanguo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_47_weiqu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_47_weiqu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_48_weiweiyixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_48_weiweiyixiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_49_huanhu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_49_huanhu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_4_liulei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_4_liulei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_50_xinsui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_50_xinsui.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_51_chigua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_51_chigua.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_52_hejiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_52_hejiu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_53_pu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_53_pu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_54_hongyaowan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_54_hongyaowan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_55_lvyaowan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_55_lvyaowan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_56_dogexiaoku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_56_dogexiaoku.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_57_dogehechi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_57_dogehechi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_58_dogeyuanliangta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_58_dogeyuanliangta.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_59_erha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_59_erha.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_5_keai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_5_keai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_60_kuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_60_kuan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_61_lvmao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_61_lvmao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_62_huaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_62_huaji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_63_liuhanhuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_63_liuhanhuaji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_64_shounuehuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_64_shounuehuaji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_65_coshuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_65_coshuaji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_66_doujiyanhuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_66_doujiyanhuaji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_67_mojinghuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_67_mojinghuaji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_68.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_69.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_6_weixiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_6_weixiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_70.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_71.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_72.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_73.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_74.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_75.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_76.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_77.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_78.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_79.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_7_hehe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_7_hehe.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_80.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_81_naikezui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_81_naikezui.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_82_miaomiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_82_miaomiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_83_huoba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_83_huoba.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_84_baiyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_84_baiyan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_85.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_86.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_87.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_88.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_89.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_8_piezui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_8_piezui.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_90.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_91.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_92.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_93.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_94.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_95_erhading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_95_erhading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_96_kuanlvmao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_96_kuanlvmao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_97_haixiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_97_haixiu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_98_wunai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_98_wunai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_99_zhoumei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_99_zhoumei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v1/coolapk_emotion_9_se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable-v1/coolapk_emotion_9_se.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/black_radius_square.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bottom_sheet_controller_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/cont_author.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable/cont_author.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/cont_klxiaoniu.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/drawable/cont_klxiaoniu.webp -------------------------------------------------------------------------------- /app/src/main/res/drawable/divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/home_tab.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/home_topic_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_account.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_add1.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_archive.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_down1.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_at.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_back.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_backspace.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_broken_image.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_hourglass_bottom.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_block.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_chat.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_check.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clean.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_all.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_comment.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_date.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_device.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_expand_more.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_explorer.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_face.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fav.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_favorite_border.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_feed.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_filter.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_forward.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_freq.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_history.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_baseline.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_outline.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_image.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keyboard.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_like.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_link.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_logo.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_logout.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message1.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message2.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message3.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message_baseline.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message_outline.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_message_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_more.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_notification_bell.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_password.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_phone.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_refresh.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_reply.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_setting_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_star.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_text_fields.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_thumb.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_token.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_update.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_add_circle_outline_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_dark_mode_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_file_download_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_file_upload_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_format_color_fill_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_help_outline_24.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_invert_colors_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_keyboard_hide_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_keyboard_show_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_note_alt_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_system_update_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_tag_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_widgets_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/pic_count_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_corners_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_corners_12_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_corners_12_win.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_corners_20.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_corners_20_win.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_corners_trans.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/search_history_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_12_feed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_12_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_12_trans.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_20_trans.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_avatar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_bg_trans.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_emoji.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_emoji_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_emoji_indicator_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selector_reply.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_indicator_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_oval_primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_text_scroll_card_text_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_background_trans.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/text_card_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/white_radius.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_prams.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/base_fragment_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 14 | 15 | 18 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_at_topic.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_edittext.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_emoji.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_error_message.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_feed_content_reply_to_reply_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_font_scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_home_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_rv_header.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_rv_place_holder.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_x_app_token.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_badge_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_recyclerview.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/menu/blacklist_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/feed_history_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/menu/feed_reply_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | 19 | 23 | 24 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/menu/history_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/menu/home_feed_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/menu/login_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/message_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/msearch_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/menu/nav_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/menu/settings_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/menu/webview_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | 13 | 14 | 18 | 19 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/values-night-v31/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_accent1_800 4 | @android:color/system_accent1_200 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #0DFFFFFF 4 | #ECECEC 5 | #232323 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-v29/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values-v31/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_accent1_0 4 | @android:color/system_accent1_600 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | #FFFFFFFF 5 | #0D000000 6 | #FFFFFF 7 | #607D8B 8 | #232323 9 | #ECECEC 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes_overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/xml/file_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/test/java/com/example/coolapk/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.c001apk 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /build.gradle.kts: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | plugins { 3 | alias(libs.plugins.android.application) apply false 4 | alias(libs.plugins.jetbrains.kotlin.android) apply false 5 | alias(libs.plugins.google.devtools.ksp) apply false 6 | alias(libs.plugins.google.dagger.hilt.android) apply false 7 | alias(libs.plugins.rikka.tools.materialthemebuilder) apply false 8 | alias(libs.plugins.kotlin.kapt) apply false 9 | alias(libs.plugins.kotlin.parcelize) apply false 10 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bggRGjQaUbCoE/c001apk/becc810a12c509b4244b0be47bc9457bea0da088/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /mojito/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /mojito/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/bean/ActivityConfig.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.bean 2 | 3 | import android.os.Parcelable 4 | import kotlinx.parcelize.Parcelize 5 | 6 | @Parcelize 7 | data class ActivityConfig( 8 | var originImageUrls: List? = null, 9 | var targetImageUrls: List? = null, 10 | var viewParams: List? = null, 11 | var position: Int = 0, 12 | var headerSize: Int = 0, 13 | var footerSize: Int = 0, 14 | var autoLoadTarget: Boolean = true, 15 | var errorDrawableResIdList: HashMap = hashMapOf() 16 | ) : Parcelable -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/bean/FragmentConfig.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.bean 2 | 3 | import android.os.Parcelable 4 | import kotlinx.parcelize.Parcelize 5 | 6 | /** 7 | * @Author: MikaelZero 8 | * @CreateDate: 2020/6/23 10:06 AM 9 | * @Description: 10 | */ 11 | @Parcelize 12 | data class FragmentConfig( 13 | var originUrl: String, 14 | var targetUrl: String? = null, 15 | var viewParams: ViewParams? = null, 16 | var position: Int, 17 | var autoLoadTarget: Boolean = true, 18 | var showImmediately: Boolean, 19 | var errorDrawableResId: Int = 0 20 | ) : Parcelable -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/bean/ViewPagerBean.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.bean 2 | 3 | /** 4 | * @Author: MikaelZero 5 | * @CreateDate: 2020/6/12 7:16 PM 6 | * @Description: 7 | */ 8 | data class ViewPagerBean( 9 | val url: String, 10 | val targetUrl: String? = null, 11 | val position: Int, 12 | val showImmediately: Boolean, 13 | val viewParams: ViewParams? = null 14 | ) -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/impl/DefaultMojitoConfig.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.impl 2 | 3 | import net.mikaelzero.mojito.interfaces.IMojitoConfig 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/14 8:58 PM 8 | * @Description: 9 | */ 10 | open class DefaultMojitoConfig : IMojitoConfig { 11 | override fun duration(): Long = 250 12 | override fun maxTransYRatio(): Float = 0.16f 13 | override fun errorDrawableResId(): Int = 0 14 | override fun transparentNavigationBar(): Boolean = true 15 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/ActivityCoverLoader.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces 2 | 3 | import android.view.View 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/17 11:19 AM 8 | * @Description: 仅出现在activity 9 | */ 10 | interface ActivityCoverLoader { 11 | fun attach(context: IMojitoActivity) 12 | fun providerView(): View 13 | 14 | /** 15 | * 拖动的时候 移动的 X 和 Y 距离 16 | */ 17 | fun move(moveX: Float, moveY: Float) 18 | 19 | /** 20 | * 手指松开后的状态 21 | */ 22 | fun fingerRelease(isToMax: Boolean, isToMin: Boolean) 23 | fun pageChange(totalSize: Int, position: Int) 24 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/IIndicator.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces; 2 | 3 | import android.widget.FrameLayout; 4 | 5 | import androidx.viewpager.widget.ViewPager; 6 | import androidx.viewpager2.widget.ViewPager2; 7 | 8 | public interface IIndicator { 9 | 10 | void attach(FrameLayout parent); 11 | 12 | void onShow(ViewPager viewPager); 13 | 14 | /** 15 | * 拖动的时候 移动的 X 和 Y 距离 16 | */ 17 | void move(float moveX, float moveY); 18 | 19 | /** 20 | * 手指松开后的状态 21 | */ 22 | void fingerRelease(boolean isToMax, boolean isToMin); 23 | } 24 | -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/IMojitoActivity.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces 2 | 3 | import android.content.Context 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/17 3:26 PM 8 | * @Description: 9 | */ 10 | interface IMojitoActivity { 11 | fun getCurrentFragment(): IMojitoFragment? 12 | fun getContext():Context 13 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/IMojitoConfig.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces 2 | 3 | 4 | /** 5 | * @Author: MikaelZero 6 | * @CreateDate: 2020/6/14 8:54 PM 7 | * @Description: 8 | */ 9 | interface IMojitoConfig { 10 | fun duration(): Long 11 | fun maxTransYRatio(): Float 12 | fun errorDrawableResId(): Int 13 | fun transparentNavigationBar():Boolean 14 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/IMojitoFragment.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces 2 | 3 | import androidx.fragment.app.Fragment 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/17 1:25 PM 8 | * @Description: 9 | */ 10 | interface IMojitoFragment { 11 | fun providerContext(): Fragment? 12 | fun loadTargetUrl() 13 | fun backToMin() 14 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/IProgress.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces; 2 | 3 | import android.view.View; 4 | import android.widget.FrameLayout; 5 | 6 | public interface IProgress { 7 | 8 | void attach(int position, FrameLayout parent); 9 | 10 | void onStart(int position); 11 | 12 | void onProgress(int position, int progress); 13 | 14 | void onFinish(int position); 15 | 16 | void onFailed(int position); 17 | 18 | View getProgressView(int position); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/ImageViewLoadFactory.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces 2 | 3 | import android.net.Uri 4 | import android.view.View 5 | import androidx.annotation.DrawableRes 6 | import net.mikaelzero.mojito.loader.ContentLoader 7 | 8 | interface ImageViewLoadFactory { 9 | fun loadSillContent(view: View, uri: Uri) 10 | fun loadContentFail(view: View, @DrawableRes drawableResId: Int) 11 | fun newContentLoader(): ContentLoader 12 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/OnMojitoListener.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces 2 | 3 | import android.view.View 4 | import androidx.fragment.app.FragmentActivity 5 | import net.mikaelzero.mojito.MojitoView 6 | 7 | /** 8 | * @Author: MikaelZero 9 | * @CreateDate: 2020/6/17 1:39 PM 10 | * @Description: 11 | */ 12 | interface OnMojitoListener { 13 | fun onStartAnim(position: Int) 14 | fun onClick(view: View, x: Float, y: Float, position: Int) 15 | fun onLongClick(fragmentActivity: FragmentActivity?, view: View, x: Float, y: Float, position: Int) 16 | fun onShowFinish(mojitoView: MojitoView, showImmediately: Boolean) 17 | fun onMojitoViewFinish(pagePosition: Int) 18 | fun onDrag(view: MojitoView, moveX: Float, moveY: Float) 19 | fun onLongImageMove(ratio: Float) 20 | fun onViewPageSelected(position: Int) 21 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/interfaces/OnMojitoViewCallback.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.interfaces; 2 | 3 | import net.mikaelzero.mojito.MojitoView; 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/17 1:33 PM 8 | * @Description: 9 | */ 10 | public interface OnMojitoViewCallback { 11 | void onDrag(MojitoView view, float moveX, float moveY); 12 | 13 | void showFinish(MojitoView mojitoView, boolean showImmediately); 14 | 15 | void onMojitoViewFinish(); 16 | 17 | void onRelease(boolean isToMax, boolean isToMin); 18 | 19 | void onLock(boolean isLock); 20 | 21 | void onLongImageMove(float ratio); 22 | } 23 | -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/DefaultImageCallback.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/9 8:41 PM 8 | * @Description: 9 | */ 10 | public class DefaultImageCallback implements ImageLoader.Callback { 11 | 12 | @Override 13 | public void onStart() { 14 | 15 | } 16 | 17 | @Override 18 | public void onProgress(int progress) { 19 | 20 | } 21 | 22 | @Override 23 | public void onFinish() { 24 | 25 | } 26 | 27 | @Override 28 | public void onSuccess(File image) { 29 | 30 | } 31 | 32 | @Override 33 | public void onFail(Exception error) { 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/FragmentCoverLoader.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader 2 | 3 | import android.view.View 4 | import net.mikaelzero.mojito.interfaces.IMojitoFragment 5 | 6 | /** 7 | * @Author: MikaelZero 8 | * @CreateDate: 2020/6/18 10:54 AM 9 | * @Description: 每个fragment都会出现 10 | */ 11 | interface FragmentCoverLoader { 12 | //对于查看原图的情况 如果 autoLoadTarget 为 true 需要对view进行隐藏 13 | fun attach(iMojitoFragment: IMojitoFragment, autoLoadTarget: Boolean): View? 14 | //对于查看原图的情况 如果hasTargetUrl为false代表没有设置目标url 则编写cover类时需要隐藏查看原图功能 15 | fun imageCacheHandle(isCache: Boolean,hasTargetUrl:Boolean) 16 | 17 | /** 18 | * 拖动的时候 移动的 X 和 Y 距离 19 | */ 20 | fun move(moveX: Float, moveY: Float) 21 | 22 | /** 23 | * 手指松开后的状态 24 | */ 25 | fun fingerRelease(isToMax: Boolean, isToMin: Boolean) 26 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/ImageLoader.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader; 2 | 3 | import android.net.Uri; 4 | 5 | import androidx.annotation.UiThread; 6 | 7 | import java.io.File; 8 | 9 | public interface ImageLoader { 10 | 11 | void loadImage(int requestId, Uri uri, boolean onlyRetrieveFromCache,Callback callback); 12 | 13 | void prefetch(Uri uri); 14 | 15 | void cancel(int requestId); 16 | 17 | void cancelAll(); 18 | 19 | void cleanCache(); 20 | 21 | @UiThread 22 | interface Callback { 23 | 24 | void onStart(); 25 | 26 | void onProgress(int progress); 27 | 28 | void onFinish(); 29 | 30 | void onSuccess(File image); 31 | 32 | void onFail(Exception error); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/InstanceLoader.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader 2 | 3 | /** 4 | * @Author: MikaelZero 5 | * @CreateDate: 2020/6/18 9:45 AM 6 | * @Description: 7 | */ 8 | interface InstanceLoader { 9 | fun providerInstance(): T 10 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/MultiContentLoader.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader 2 | 3 | import net.mikaelzero.mojito.interfaces.ImageViewLoadFactory 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/22 5:16 PM 8 | * @Description: 9 | */ 10 | interface MultiContentLoader { 11 | fun providerLoader(position: Int): ImageViewLoadFactory 12 | fun providerEnableTargetLoad(position: Int): Boolean 13 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/OnLongTapCallback.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader 2 | 3 | import android.view.View 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/15 10:35 AM 8 | * @Description: 9 | */ 10 | interface OnLongTapCallback { 11 | fun onLongTap(view: View, x: Float, y: Float) 12 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/loader/OnTapCallback.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.loader 2 | 3 | import android.view.View 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/15 10:35 AM 8 | * @Description: 9 | */ 10 | interface OnTapCallback { 11 | fun onTap(view: View,x:Float,y:Float) 12 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/tools/DataWrapUtil.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.tools 2 | 3 | import net.mikaelzero.mojito.bean.ActivityConfig 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/9/24 1:22 PM 8 | * @Description: 9 | */ 10 | class DataWrapUtil { 11 | companion object { 12 | var config: ActivityConfig? = null 13 | fun put(config: ActivityConfig) { 14 | this.config = config 15 | } 16 | 17 | fun get(): ActivityConfig? = config 18 | 19 | fun remove() { 20 | config = null 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/tools/MojitoConstant.kt: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.tools 2 | 3 | /** 4 | * @Author: MikaelZero 5 | * @CreateDate: 2020/6/23 9:31 AM 6 | * @Description: 7 | */ 8 | class MojitoConstant { 9 | companion object { 10 | const val KEY_ACTIVITY_PARAMS = "KEY_ACTIVITY_PARAMS" 11 | const val KEY_FRAGMENT_PARAMS = "KEY_FRAGMENT_PARAMS" 12 | } 13 | } -------------------------------------------------------------------------------- /mojito/src/main/java/net/mikaelzero/mojito/tools/Utils.java: -------------------------------------------------------------------------------- 1 | package net.mikaelzero.mojito.tools; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * @Author: MikaelZero 7 | * @CreateDate: 2020/6/13 5:41 PM 8 | * @Description: 9 | */ 10 | public class Utils { 11 | 12 | public static int dip2px(Context c, float dpValue) { 13 | final float scale = c.getResources().getDisplayMetrics().density; 14 | return (int) (dpValue * scale + 0.5f); 15 | } 16 | } -------------------------------------------------------------------------------- /mojito/src/main/res/drawable/target_button_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mojito/src/main/res/layout/activity_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 14 | 18 | 19 | 23 | -------------------------------------------------------------------------------- /mojito/src/main/res/layout/fragment_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 17 | 18 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /mojito/src/main/res/layout/layout_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 17 | -------------------------------------------------------------------------------- /mojito/src/main/res/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /mojito/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00000000 4 | 5 | -------------------------------------------------------------------------------- /mojito/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /mojito/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DragDiooto 3 | 4 | 5 | -------------------------------------------------------------------------------- /mojito/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "labels": [ 3 | "dependencies" 4 | ], 5 | "extends": ["config:recommended", ":dependencyDashboard"], 6 | "packageRules": [ 7 | { 8 | "groupName": "Kotlin, KSP", 9 | "matchPackagePrefixes": [ 10 | "com.google.devtools.ksp" 11 | ], 12 | "matchPackagePatterns": [ 13 | "org.jetbrains.kotlin.*" 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | gradlePluginPortal() 6 | } 7 | } 8 | dependencyResolutionManagement { 9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 10 | repositories { 11 | google() 12 | mavenCentral() 13 | maven ("https://jitpack.io") 14 | maven("https://oss.sonatype.org/content/repositories/public") 15 | gradlePluginPortal() 16 | } 17 | } 18 | 19 | rootProject.name = "c001apk" 20 | include(":app", ":mojito", ":SketchImageViewLoader", ":GlideImageLoader") 21 | --------------------------------------------------------------------------------