gitextract_l4utlapa/ ├── .gitignore ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── ReadMe.md │ ├── build.gradle │ ├── gradle.properties │ ├── key.properties.jks │ ├── proguard-rules.pro │ └── src/ │ ├── debug/ │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ ├── 18PlusList.txt │ │ │ ├── data/ │ │ │ │ └── BookSourceXxl.json │ │ │ ├── disclaimer.md │ │ │ ├── txtChapterRule.json │ │ │ ├── updateLog.md │ │ │ └── web/ │ │ │ ├── bookshelf.css │ │ │ ├── bookshelf.html │ │ │ ├── bookshelf.js │ │ │ ├── index.css │ │ │ ├── index.html │ │ │ └── index.js │ │ ├── java/ │ │ │ └── com/ │ │ │ └── kunfei/ │ │ │ └── bookshelf/ │ │ │ ├── DbHelper.java │ │ │ ├── MApplication.java │ │ │ ├── base/ │ │ │ │ ├── BaseDialogFragment.kt │ │ │ │ ├── BaseFragment.kt │ │ │ │ ├── BaseModelImpl.java │ │ │ │ ├── BaseService.kt │ │ │ │ ├── BaseTabActivity.java │ │ │ │ ├── BaseViewModel.kt │ │ │ │ ├── MBaseActivity.java │ │ │ │ ├── MBaseFragment.java │ │ │ │ ├── README.md │ │ │ │ ├── VMBaseFragment.kt │ │ │ │ ├── adapter/ │ │ │ │ │ ├── DiffRecyclerAdapter.kt │ │ │ │ │ ├── ItemAnimation.kt │ │ │ │ │ ├── ItemViewHolder.kt │ │ │ │ │ ├── RecyclerAdapter.kt │ │ │ │ │ └── animations/ │ │ │ │ │ ├── AlphaInAnimation.kt │ │ │ │ │ ├── BaseAnimation.kt │ │ │ │ │ ├── ScaleInAnimation.kt │ │ │ │ │ ├── SlideInBottomAnimation.kt │ │ │ │ │ ├── SlideInLeftAnimation.kt │ │ │ │ │ └── SlideInRightAnimation.kt │ │ │ │ └── observer/ │ │ │ │ ├── MyObserver.java │ │ │ │ └── MySingleObserver.java │ │ │ ├── bean/ │ │ │ │ ├── BaseBookBean.java │ │ │ │ ├── BaseChapterBean.java │ │ │ │ ├── BookChapterBean.java │ │ │ │ ├── BookContentBean.java │ │ │ │ ├── BookInfoBean.java │ │ │ │ ├── BookKindBean.java │ │ │ │ ├── BookShelfBean.java │ │ │ │ ├── BookSource3Bean.java │ │ │ │ ├── BookSourceBean.java │ │ │ │ ├── BookmarkBean.java │ │ │ │ ├── CookieBean.java │ │ │ │ ├── DownloadBookBean.java │ │ │ │ ├── DownloadChapterBean.java │ │ │ │ ├── FindKindBean.java │ │ │ │ ├── FindKindGroupBean.java │ │ │ │ ├── LocBookShelfBean.java │ │ │ │ ├── OpenChapterBean.java │ │ │ │ ├── ReplaceRuleBean.java │ │ │ │ ├── SearchBookBean.java │ │ │ │ ├── SearchHistoryBean.java │ │ │ │ ├── TwoDataBean.java │ │ │ │ ├── TxtChapterRuleBean.java │ │ │ │ ├── UpdateInfoBean.java │ │ │ │ └── WebChapterBean.java │ │ │ ├── constant/ │ │ │ │ ├── AppConst.kt │ │ │ │ ├── AppConstant.java │ │ │ │ ├── BookType.java │ │ │ │ ├── RxBusTag.java │ │ │ │ └── TimeConstants.java │ │ │ ├── help/ │ │ │ │ ├── AppFrontBackHelper.java │ │ │ │ ├── BlurTransformation.java │ │ │ │ ├── BookshelfHelp.java │ │ │ │ ├── ChangeSourceHelp.java │ │ │ │ ├── ChapterContentHelp.java │ │ │ │ ├── CrashHandler.java │ │ │ │ ├── DefaultValueHelper.kt │ │ │ │ ├── DocumentHelper.java │ │ │ │ ├── Donate.java │ │ │ │ ├── EncodeConverter.java │ │ │ │ ├── ExoPlayerHelper.kt │ │ │ │ ├── FileHelp.java │ │ │ │ ├── IntentData.kt │ │ │ │ ├── ItemTouchCallback.java │ │ │ │ ├── JsExtensions.java │ │ │ │ ├── LauncherIcon.java │ │ │ │ ├── MediaManager.java │ │ │ │ ├── ProcessTextHelp.java │ │ │ │ ├── ReadBookControl.java │ │ │ │ ├── SSLSocketClient.java │ │ │ │ ├── SourceHelp.kt │ │ │ │ ├── UTF8BOMFighter.java │ │ │ │ ├── UpdateManager.java │ │ │ │ ├── coroutine/ │ │ │ │ │ ├── CompositeCoroutine.kt │ │ │ │ │ ├── Coroutine.kt │ │ │ │ │ └── CoroutineContainer.kt │ │ │ │ ├── glide/ │ │ │ │ │ ├── ImageLoader.kt │ │ │ │ │ ├── OkHttpGlideModule.kt │ │ │ │ │ ├── OkHttpModeLoaderFactory.kt │ │ │ │ │ ├── OkHttpModelLoader.kt │ │ │ │ │ └── OkHttpStreamFetcher.kt │ │ │ │ ├── media/ │ │ │ │ │ ├── LoaderCreator.java │ │ │ │ │ ├── LocalFileLoader.java │ │ │ │ │ └── MediaStoreHelper.java │ │ │ │ ├── permission/ │ │ │ │ │ ├── ActivitySource.kt │ │ │ │ │ ├── FragmentSource.kt │ │ │ │ │ ├── OnPermissionsDeniedCallback.kt │ │ │ │ │ ├── OnPermissionsGrantedCallback.kt │ │ │ │ │ ├── OnPermissionsResultCallback.kt │ │ │ │ │ ├── OnRequestPermissionsResultCallback.kt │ │ │ │ │ ├── PermissionActivity.kt │ │ │ │ │ ├── Permissions.kt │ │ │ │ │ ├── PermissionsCompat.kt │ │ │ │ │ ├── Request.kt │ │ │ │ │ ├── RequestManager.kt │ │ │ │ │ ├── RequestPlugins.kt │ │ │ │ │ └── RequestSource.kt │ │ │ │ └── storage/ │ │ │ │ ├── Backup.kt │ │ │ │ ├── BackupRestoreUi.kt │ │ │ │ ├── Preferences.kt │ │ │ │ ├── Restore.kt │ │ │ │ └── WebDavHelp.kt │ │ │ ├── model/ │ │ │ │ ├── BookSourceManager.java │ │ │ │ ├── Exceptions.kt │ │ │ │ ├── ImportBookModel.java │ │ │ │ ├── ReplaceRuleManager.java │ │ │ │ ├── SavedSource.java │ │ │ │ ├── SearchBookModel.java │ │ │ │ ├── TxtChapterRuleManager.java │ │ │ │ ├── UpLastChapterModel.java │ │ │ │ ├── WebBookModel.java │ │ │ │ ├── analyzeRule/ │ │ │ │ │ ├── AnalyzeByJSonPath.java │ │ │ │ │ ├── AnalyzeByJSoup.java │ │ │ │ │ ├── AnalyzeByRegex.java │ │ │ │ │ ├── AnalyzeByXPath.java │ │ │ │ │ ├── AnalyzeHeaders.java │ │ │ │ │ ├── AnalyzeRule.java │ │ │ │ │ └── AnalyzeUrl.java │ │ │ │ ├── content/ │ │ │ │ │ ├── BookChapterList.java │ │ │ │ │ ├── BookContent.java │ │ │ │ │ ├── BookInfo.java │ │ │ │ │ ├── BookList.java │ │ │ │ │ ├── Debug.java │ │ │ │ │ ├── VipThrowable.java │ │ │ │ │ └── WebBook.java │ │ │ │ ├── impl/ │ │ │ │ │ ├── IDownloadTask.java │ │ │ │ │ ├── IHttpGetApi.java │ │ │ │ │ └── IHttpPostApi.java │ │ │ │ └── task/ │ │ │ │ ├── AnalyzeNextUrlTask.java │ │ │ │ ├── CheckSourceTask.java │ │ │ │ └── DownloadTaskImpl.java │ │ │ ├── presenter/ │ │ │ │ ├── BookDetailPresenter.java │ │ │ │ ├── BookListPresenter.java │ │ │ │ ├── BookSourcePresenter.java │ │ │ │ ├── ChoiceBookPresenter.java │ │ │ │ ├── FindBookPresenter.java │ │ │ │ ├── ImportBookPresenter.java │ │ │ │ ├── MainPresenter.java │ │ │ │ ├── ReadBookPresenter.java │ │ │ │ ├── ReplaceRulePresenter.java │ │ │ │ ├── SearchBookPresenter.java │ │ │ │ ├── SourceEditPresenter.java │ │ │ │ ├── TxtChapterRulePresenter.java │ │ │ │ └── contract/ │ │ │ │ ├── BookDetailContract.java │ │ │ │ ├── BookListContract.java │ │ │ │ ├── BookSourceContract.java │ │ │ │ ├── ChoiceBookContract.java │ │ │ │ ├── FindBookContract.java │ │ │ │ ├── ImportBookContract.java │ │ │ │ ├── MainContract.java │ │ │ │ ├── ReadBookContract.java │ │ │ │ ├── ReplaceRuleContract.java │ │ │ │ ├── SearchBookContract.java │ │ │ │ ├── SourceEditContract.java │ │ │ │ └── TxtChapterRuleContract.java │ │ │ ├── service/ │ │ │ │ ├── CheckSourceService.java │ │ │ │ ├── DownloadService.java │ │ │ │ ├── MediaButtonIntentReceiver.java │ │ │ │ ├── ReadAloudService.java │ │ │ │ ├── ShareService.java │ │ │ │ └── WebService.java │ │ │ ├── utils/ │ │ │ │ ├── ACache.java │ │ │ │ ├── ActivityExtensions.kt │ │ │ │ ├── BatteryUtil.java │ │ │ │ ├── BitmapUtil.java │ │ │ │ ├── ColorUtils.kt │ │ │ │ ├── ContextExtensions.kt │ │ │ │ ├── ConvertUtils.kt │ │ │ │ ├── DensityUtil.java │ │ │ │ ├── DialogExtensions.kt │ │ │ │ ├── DocumentExtensions.kt │ │ │ │ ├── DocumentUtil.java │ │ │ │ ├── DrawableUtil.kt │ │ │ │ ├── EncoderUtils.kt │ │ │ │ ├── EncodingDetect.java │ │ │ │ ├── FastXmlSerializer.java │ │ │ │ ├── FileStack.java │ │ │ │ ├── FileUtils.kt │ │ │ │ ├── FloatExtensions.kt │ │ │ │ ├── GsonExtensions.kt │ │ │ │ ├── GsonUtils.java │ │ │ │ ├── HandlerUtils.kt │ │ │ │ ├── IOUtils.java │ │ │ │ ├── IntentExtensions.kt │ │ │ │ ├── ListUtil.java │ │ │ │ ├── MD5Utils.java │ │ │ │ ├── MarkdownUtils.java │ │ │ │ ├── MeUtils.java │ │ │ │ ├── NetworkUtils.java │ │ │ │ ├── ReadAssets.java │ │ │ │ ├── RealPathUtil.kt │ │ │ │ ├── RxUtils.java │ │ │ │ ├── ScreenUtils.java │ │ │ │ ├── Selector.java │ │ │ │ ├── SoftInputUtil.java │ │ │ │ ├── StringExtensions.kt │ │ │ │ ├── StringJoiner.java │ │ │ │ ├── StringUtils.java │ │ │ │ ├── SystemUtil.java │ │ │ │ ├── TimeUtils.java │ │ │ │ ├── Toasts.kt │ │ │ │ ├── UriExtensions.kt │ │ │ │ ├── UrlEncoderUtils.java │ │ │ │ ├── XmlUtils.java │ │ │ │ ├── ZipUtils.java │ │ │ │ ├── dialogs/ │ │ │ │ │ ├── AlertBuilder.kt │ │ │ │ │ ├── AndroidAlertBuilder.kt │ │ │ │ │ ├── AndroidDialogs.kt │ │ │ │ │ ├── AndroidSelectors.kt │ │ │ │ │ └── SelectItem.kt │ │ │ │ ├── download/ │ │ │ │ │ ├── DownloadUtils.java │ │ │ │ │ ├── JsDownloadInterceptor.java │ │ │ │ │ ├── JsDownloadListener.java │ │ │ │ │ ├── JsResponseBody.java │ │ │ │ │ └── Service.java │ │ │ │ ├── theme/ │ │ │ │ │ ├── ATH.java │ │ │ │ │ ├── ATHUtil.java │ │ │ │ │ ├── MaterialValueHelper.java │ │ │ │ │ ├── MaterialValueHelper.kt │ │ │ │ │ ├── NavigationViewUtil.java │ │ │ │ │ ├── ThemeStore.java │ │ │ │ │ ├── ThemeStoreInterface.java │ │ │ │ │ ├── ThemeStorePrefKeys.java │ │ │ │ │ ├── TintHelper.java │ │ │ │ │ └── ViewUtil.java │ │ │ │ ├── viewbindingdelegate/ │ │ │ │ │ ├── ActivityViewBindings.kt │ │ │ │ │ ├── FragmentViewBindings.kt │ │ │ │ │ └── ViewBindingProperty.kt │ │ │ │ └── webdav/ │ │ │ │ ├── README.md │ │ │ │ ├── WebDav.kt │ │ │ │ └── http/ │ │ │ │ ├── Handler.kt │ │ │ │ └── HttpAuth.kt │ │ │ ├── view/ │ │ │ │ ├── activity/ │ │ │ │ │ ├── AboutActivity.java │ │ │ │ │ ├── BookCoverEditActivity.java │ │ │ │ │ ├── BookDetailActivity.java │ │ │ │ │ ├── BookInfoEditActivity.java │ │ │ │ │ ├── BookSourceActivity.java │ │ │ │ │ ├── ChapterListActivity.java │ │ │ │ │ ├── ChoiceBookActivity.java │ │ │ │ │ ├── DonateActivity.java │ │ │ │ │ ├── DownloadActivity.java │ │ │ │ │ ├── ImportBookActivity.java │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ ├── QRCodeScanActivity.java │ │ │ │ │ ├── ReadBookActivity.java │ │ │ │ │ ├── ReadStyleActivity.java │ │ │ │ │ ├── ReceivingSharedActivity.java │ │ │ │ │ ├── ReplaceRuleActivity.java │ │ │ │ │ ├── SearchBookActivity.java │ │ │ │ │ ├── SettingActivity.java │ │ │ │ │ ├── SourceDebugActivity.java │ │ │ │ │ ├── SourceEditActivity.java │ │ │ │ │ ├── SourceLoginActivity.java │ │ │ │ │ ├── ThemeSettingActivity.java │ │ │ │ │ ├── TxtChapterRuleActivity.java │ │ │ │ │ ├── WebViewActivity.kt │ │ │ │ │ ├── WelcomeActivity.java │ │ │ │ │ └── WelcomeBookActivity.java │ │ │ │ ├── adapter/ │ │ │ │ │ ├── BookShelfAdapter.java │ │ │ │ │ ├── BookShelfGridAdapter.java │ │ │ │ │ ├── BookShelfListAdapter.java │ │ │ │ │ ├── BookSourceAdapter.java │ │ │ │ │ ├── BookmarkAdapter.java │ │ │ │ │ ├── ChangeSourceAdapter.java │ │ │ │ │ ├── ChapterListAdapter.java │ │ │ │ │ ├── ChoiceBookAdapter.java │ │ │ │ │ ├── DownloadAdapter.java │ │ │ │ │ ├── FileSystemAdapter.java │ │ │ │ │ ├── FindKindAdapter.java │ │ │ │ │ ├── FindLeftAdapter.java │ │ │ │ │ ├── FindRightAdapter.java │ │ │ │ │ ├── ReplaceRuleAdapter.java │ │ │ │ │ ├── SearchBookAdapter.java │ │ │ │ │ ├── SearchBookshelfAdapter.java │ │ │ │ │ ├── SourceDebugAdapter.java │ │ │ │ │ ├── SourceEditAdapter.java │ │ │ │ │ ├── TxtChapterRuleAdapter.java │ │ │ │ │ ├── base/ │ │ │ │ │ │ ├── BaseListAdapter.java │ │ │ │ │ │ ├── BaseViewHolder.java │ │ │ │ │ │ ├── IViewHolder.java │ │ │ │ │ │ ├── OnItemClickListenerTwo.java │ │ │ │ │ │ └── ViewHolderImpl.java │ │ │ │ │ └── view/ │ │ │ │ │ └── FileHolder.java │ │ │ │ ├── dialog/ │ │ │ │ │ └── SourceLoginDialog.kt │ │ │ │ ├── fragment/ │ │ │ │ │ ├── BaseFileFragment.java │ │ │ │ │ ├── BookListFragment.java │ │ │ │ │ ├── BookmarkFragment.java │ │ │ │ │ ├── ChapterListFragment.java │ │ │ │ │ ├── FileCategoryFragment.java │ │ │ │ │ ├── FindBookFragment.java │ │ │ │ │ ├── LocalBookFragment.java │ │ │ │ │ ├── SettingsFragment.kt │ │ │ │ │ ├── ThemeSettingsFragment.java │ │ │ │ │ └── WebDavSettingsFragment.java │ │ │ │ └── popupwindow/ │ │ │ │ ├── CheckAddShelfPop.java │ │ │ │ ├── KeyboardToolPop.kt │ │ │ │ ├── MediaPlayerPop.java │ │ │ │ ├── MoreSettingPop.kt │ │ │ │ ├── ReadAdjustMarginPop.kt │ │ │ │ ├── ReadAdjustPop.java │ │ │ │ ├── ReadBottomMenu.java │ │ │ │ ├── ReadInterfacePop.kt │ │ │ │ └── ReadLongPressPop.java │ │ │ ├── web/ │ │ │ │ ├── HttpServer.java │ │ │ │ ├── ShareServer.java │ │ │ │ ├── WebSocketServer.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── BookshelfController.java │ │ │ │ │ ├── SourceController.java │ │ │ │ │ └── SourceDebugWebSocket.java │ │ │ │ └── utils/ │ │ │ │ ├── AssetsWeb.java │ │ │ │ └── ReturnData.java │ │ │ └── widget/ │ │ │ ├── BadgeView.java │ │ │ ├── HorizontalListView.java │ │ │ ├── RotateLoading.java │ │ │ ├── ScrollTextView.java │ │ │ ├── check_box/ │ │ │ │ └── SmoothCheckBox.java │ │ │ ├── explosion_field/ │ │ │ │ ├── ExplosionAnimator.java │ │ │ │ ├── ExplosionField.java │ │ │ │ ├── OnAnimatorListener.java │ │ │ │ └── Utils.java │ │ │ ├── filepicker/ │ │ │ │ ├── adapter/ │ │ │ │ │ ├── FileAdapter.java │ │ │ │ │ └── PathAdapter.java │ │ │ │ ├── drawable/ │ │ │ │ │ ├── StateBaseDrawable.java │ │ │ │ │ └── StateColorDrawable.java │ │ │ │ ├── entity/ │ │ │ │ │ ├── FileItem.java │ │ │ │ │ └── JavaBean.java │ │ │ │ ├── icons/ │ │ │ │ │ └── FilePickerIcon.java │ │ │ │ ├── picker/ │ │ │ │ │ └── FilePicker.java │ │ │ │ ├── popup/ │ │ │ │ │ ├── BasicPopup.java │ │ │ │ │ └── ConfirmPopup.java │ │ │ │ └── util/ │ │ │ │ ├── ConvertUtils.java │ │ │ │ ├── DateUtils.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── ScreenUtils.java │ │ │ │ └── StorageUtils.java │ │ │ ├── font/ │ │ │ │ ├── FontAdapter.java │ │ │ │ └── FontSelector.java │ │ │ ├── image/ │ │ │ │ ├── CoverImageView.kt │ │ │ │ └── FilletImageView.java │ │ │ ├── itemdecoration/ │ │ │ │ ├── DividerGridItemDecoration.java │ │ │ │ └── DividerItemDecoration.java │ │ │ ├── modialog/ │ │ │ │ ├── BaseDialog.java │ │ │ │ ├── BookmarkDialog.java │ │ │ │ ├── ChangeSourceDialog.java │ │ │ │ ├── DownLoadDialog.java │ │ │ │ ├── InputDialog.java │ │ │ │ ├── MoDialogHUD.java │ │ │ │ ├── MoDialogView.java │ │ │ │ ├── PageKeyDialog.kt │ │ │ │ ├── ReplaceRuleDialog.java │ │ │ │ └── TxtChapterRuleDialog.java │ │ │ ├── number/ │ │ │ │ ├── NumberButton.java │ │ │ │ ├── NumberPickerDialog.java │ │ │ │ └── NumberPickerPreference.java │ │ │ ├── page/ │ │ │ │ ├── ChapterProvider.java │ │ │ │ ├── PageLoader.java │ │ │ │ ├── PageLoaderEpub.java │ │ │ │ ├── PageLoaderNet.java │ │ │ │ ├── PageLoaderText.java │ │ │ │ ├── PageView.java │ │ │ │ ├── TxtChapter.kt │ │ │ │ ├── TxtChar.kt │ │ │ │ ├── TxtLine.kt │ │ │ │ ├── TxtPage.kt │ │ │ │ └── animation/ │ │ │ │ ├── CoverPageAnim.java │ │ │ │ ├── HorizonPageAnim.java │ │ │ │ ├── NonePageAnim.java │ │ │ │ ├── PageAnimation.java │ │ │ │ ├── ScrollPageAnim.java │ │ │ │ ├── SimulationPageAnim.java │ │ │ │ └── SlidePageAnim.java │ │ │ ├── prefs/ │ │ │ │ ├── ATEPreferenceCategory.java │ │ │ │ ├── ATESwitchPreference.java │ │ │ │ └── IconListPreference.java │ │ │ ├── recycler/ │ │ │ │ ├── expandable/ │ │ │ │ │ ├── BaseExpandAbleViewHolder.java │ │ │ │ │ ├── BaseExpandableRecyclerAdapter.java │ │ │ │ │ ├── OnRecyclerViewListener.java │ │ │ │ │ └── bean/ │ │ │ │ │ ├── BaseItem.java │ │ │ │ │ ├── GroupItem.java │ │ │ │ │ └── RecyclerViewData.java │ │ │ │ ├── refresh/ │ │ │ │ │ ├── BaseRefreshListener.java │ │ │ │ │ ├── OnLoadMoreListener.java │ │ │ │ │ ├── OnRefreshWithProgressListener.java │ │ │ │ │ ├── RefreshLayout.java │ │ │ │ │ ├── RefreshProgressBar.java │ │ │ │ │ ├── RefreshRecyclerView.java │ │ │ │ │ ├── RefreshRecyclerViewAdapter.java │ │ │ │ │ └── RefreshScrollView.java │ │ │ │ ├── scroller/ │ │ │ │ │ ├── FastScrollRecyclerView.java │ │ │ │ │ ├── FastScrollStateChangeListener.java │ │ │ │ │ └── FastScroller.java │ │ │ │ └── sectioned/ │ │ │ │ ├── GridSpacingItemDecoration.java │ │ │ │ ├── SectionedRecyclerViewAdapter.java │ │ │ │ └── SectionedSpanSizeLookup.java │ │ │ ├── seekbar/ │ │ │ │ ├── VerticalSeekBar.kt │ │ │ │ └── VerticalSeekBarWrapper.kt │ │ │ └── views/ │ │ │ ├── ATEAccentBgTextView.java │ │ │ ├── ATEAccentStrokeTextView.java │ │ │ ├── ATEAutoCompleteTextView.java │ │ │ ├── ATECheckBox.java │ │ │ ├── ATEEditText.java │ │ │ ├── ATEPrimaryTextView.java │ │ │ ├── ATEProgressBar.java │ │ │ ├── ATERadioButton.java │ │ │ ├── ATERadioNoButton.java │ │ │ ├── ATESecondaryTextView.java │ │ │ ├── ATESeekBar.java │ │ │ ├── ATEStockSwitch.java │ │ │ ├── ATEStrokeTextView.java │ │ │ ├── ATESwitch.java │ │ │ └── ATETextInputLayout.java │ │ └── res/ │ │ ├── anim/ │ │ │ ├── anim_none.xml │ │ │ ├── anim_readbook_bottom_in.xml │ │ │ ├── anim_readbook_bottom_out.xml │ │ │ ├── anim_readbook_top_in.xml │ │ │ ├── anim_readbook_top_out.xml │ │ │ ├── moprogress_bottom_in.xml │ │ │ ├── moprogress_bottom_out.xml │ │ │ ├── moprogress_in.xml │ │ │ ├── moprogress_in_bottom_right.xml │ │ │ ├── moprogress_in_top_right.xml │ │ │ ├── moprogress_out.xml │ │ │ ├── moprogress_out_bottom_right.xml │ │ │ └── moprogress_out_top_right.xml │ │ ├── color/ │ │ │ └── selector_menu_text.xml │ │ ├── drawable/ │ │ │ ├── bg_chapter_item_divider.xml │ │ │ ├── bg_edit.xml │ │ │ ├── bg_ib_pre.xml │ │ │ ├── bg_ib_pre_round.xml │ │ │ ├── bg_textfield_search.xml │ │ │ ├── fastscroll_bubble.xml │ │ │ ├── fastscroll_handle.xml │ │ │ ├── fastscroll_track.xml │ │ │ ├── ic_about.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_add_online.xml │ │ │ ├── ic_arrange.xml │ │ │ ├── ic_arrow_back.xml │ │ │ ├── ic_arrow_drop_down.xml │ │ │ ├── ic_arrow_drop_up.xml │ │ │ ├── ic_author.xml │ │ │ ├── ic_auto_page.xml │ │ │ ├── ic_auto_page_stop.xml │ │ │ ├── ic_back_last.xml │ │ │ ├── ic_backup.xml │ │ │ ├── ic_baseline_label.xml │ │ │ ├── ic_book_has.xml │ │ │ ├── ic_book_last.xml │ │ │ ├── ic_book_source_manage.xml │ │ │ ├── ic_bookmark.xml │ │ │ ├── ic_brightness.xml │ │ │ ├── ic_bug_report_black_24dp.xml │ │ │ ├── ic_cancel.xml │ │ │ ├── ic_chapter_list.xml │ │ │ ├── ic_check.xml │ │ │ ├── ic_check_source.xml │ │ │ ├── ic_clear_all.xml │ │ │ ├── ic_copy.xml │ │ │ ├── ic_cursor_left.xml │ │ │ ├── ic_cursor_right.xml │ │ │ ├── ic_daytime.xml │ │ │ ├── ic_disclaimer.xml │ │ │ ├── ic_donate.xml │ │ │ ├── ic_download.xml │ │ │ ├── ic_download_line.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_exchange.xml │ │ │ ├── ic_expand_less_24dp.xml │ │ │ ├── ic_expand_more_24dp.xml │ │ │ ├── ic_faq.xml │ │ │ ├── ic_find_replace.xml │ │ │ ├── ic_folder.xml │ │ │ ├── ic_format_line_spacing.xml │ │ │ ├── ic_groups.xml │ │ │ ├── ic_history.xml │ │ │ ├── ic_import.xml │ │ │ ├── ic_interface_setting.xml │ │ │ ├── ic_last_read.xml │ │ │ ├── ic_launch.xml │ │ │ ├── ic_list.xml │ │ │ ├── ic_mail.xml │ │ │ ├── ic_more_vert.xml │ │ │ ├── ic_network_check.xml │ │ │ ├── ic_pause_24dp.xml │ │ │ ├── ic_pause_outline_24dp.xml │ │ │ ├── ic_play_24dp.xml │ │ │ ├── ic_play_outline_24dp.xml │ │ │ ├── ic_qq_group.xml │ │ │ ├── ic_read.xml │ │ │ ├── ic_read_aloud.xml │ │ │ ├── ic_refresh_black_24dp.xml │ │ │ ├── ic_refresh_white_24dp.xml │ │ │ ├── ic_remove.xml │ │ │ ├── ic_restore.xml │ │ │ ├── ic_save.xml │ │ │ ├── ic_scan.xml │ │ │ ├── ic_scoring.xml │ │ │ ├── ic_search.xml │ │ │ ├── ic_select_all.xml │ │ │ ├── ic_settings.xml │ │ │ ├── ic_share.xml │ │ │ ├── ic_skip_next.xml │ │ │ ├── ic_skip_previous.xml │ │ │ ├── ic_stop_black_24dp.xml │ │ │ ├── ic_swap_outline_24dp.xml │ │ │ ├── ic_theme.xml │ │ │ ├── ic_time_add_24dp.xml │ │ │ ├── ic_timer_black_24dp.xml │ │ │ ├── ic_toc.xml │ │ │ ├── ic_top_source.xml │ │ │ ├── ic_translate.xml │ │ │ ├── ic_tune.xml │ │ │ ├── ic_update.xml │ │ │ ├── ic_version.xml │ │ │ ├── ic_view_quilt.xml │ │ │ ├── ic_volume_up.xml │ │ │ ├── ic_web_outline.xml │ │ │ ├── ic_web_service_noti.xml │ │ │ ├── ic_web_service_phone.xml │ │ │ ├── image_welcome.xml │ │ │ ├── searchview_line.xml │ │ │ ├── selector_common_bg.xml │ │ │ ├── selector_fillet_btn_bg.xml │ │ │ ├── selector_tv_black.xml │ │ │ ├── shape_card_view.xml │ │ │ ├── shape_fillet_btn.xml │ │ │ ├── shape_fillet_btn_press.xml │ │ │ ├── shape_pop_checkaddshelf_bg.xml │ │ │ ├── shape_radius_1dp.xml │ │ │ ├── shape_space_divider.xml │ │ │ └── shape_text_cursor.xml │ │ ├── drawable-v21/ │ │ │ ├── bg_ib_pre.xml │ │ │ └── bg_ib_pre_round.xml │ │ ├── layout/ │ │ │ ├── activity_about.xml │ │ │ ├── activity_book_choice.xml │ │ │ ├── activity_book_cover_edit.xml │ │ │ ├── activity_book_detail.xml │ │ │ ├── activity_book_info_edit.xml │ │ │ ├── activity_book_read.xml │ │ │ ├── activity_book_source.xml │ │ │ ├── activity_chapterlist.xml │ │ │ ├── activity_donate.xml │ │ │ ├── activity_import_book.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_qrcode_capture.xml │ │ │ ├── activity_read_style.xml │ │ │ ├── activity_recycler_vew.xml │ │ │ ├── activity_search_book.xml │ │ │ ├── activity_settings.xml │ │ │ ├── activity_source_debug.xml │ │ │ ├── activity_source_edit.xml │ │ │ ├── activity_source_login.xml │ │ │ ├── activity_update.xml │ │ │ ├── activity_web_view.xml │ │ │ ├── activity_welcome.xml │ │ │ ├── content_main.xml │ │ │ ├── dialog_bookmark.xml │ │ │ ├── dialog_change_source.xml │ │ │ ├── dialog_download_choice.xml │ │ │ ├── dialog_file_chooser.xml │ │ │ ├── dialog_input.xml │ │ │ ├── dialog_login.xml │ │ │ ├── dialog_number_picker.xml │ │ │ ├── dialog_page_key.xml │ │ │ ├── dialog_replace_rule.xml │ │ │ ├── dialog_txt_chpater_rule.xml │ │ │ ├── fragment_book_find.xml │ │ │ ├── fragment_book_list.xml │ │ │ ├── fragment_bookmark_list.xml │ │ │ ├── fragment_chapter_list.xml │ │ │ ├── fragment_file_category.xml │ │ │ ├── fragment_local_book.xml │ │ │ ├── item_1line_text_and_del.xml │ │ │ ├── item_book_source.xml │ │ │ ├── item_bookshelf_grid.xml │ │ │ ├── item_bookshelf_list.xml │ │ │ ├── item_change_cover.xml │ │ │ ├── item_change_source.xml │ │ │ ├── item_chapter_list.xml │ │ │ ├── item_download.xml │ │ │ ├── item_file.xml │ │ │ ├── item_file_filepicker.xml │ │ │ ├── item_find1_group.xml │ │ │ ├── item_find1_kind.xml │ │ │ ├── item_find2_childer_view.xml │ │ │ ├── item_find2_header_view.xml │ │ │ ├── item_find_left.xml │ │ │ ├── item_font.xml │ │ │ ├── item_icon_preference.xml │ │ │ ├── item_path_filepicker.xml │ │ │ ├── item_read_bg.xml │ │ │ ├── item_replace_rule.xml │ │ │ ├── item_search_book.xml │ │ │ ├── item_search_history.xml │ │ │ ├── item_source_debug.xml │ │ │ ├── item_source_edit.xml │ │ │ ├── item_text.xml │ │ │ ├── mo_dialog_image_text.xml │ │ │ ├── mo_dialog_infor.xml │ │ │ ├── mo_dialog_loading.xml │ │ │ ├── mo_dialog_markdown.xml │ │ │ ├── mo_dialog_text_large.xml │ │ │ ├── mo_dialog_two.xml │ │ │ ├── navigation_header.xml │ │ │ ├── pop_media_player.xml │ │ │ ├── pop_more_setting.xml │ │ │ ├── pop_read_adjust.xml │ │ │ ├── pop_read_adjust_margin.xml │ │ │ ├── pop_read_interface.xml │ │ │ ├── pop_read_long_press.xml │ │ │ ├── pop_read_menu.xml │ │ │ ├── popup_keyboard_tool.xml │ │ │ ├── tab_view_icon_right.xml │ │ │ ├── view_empty.xml │ │ │ ├── view_fastscroller.xml │ │ │ ├── view_file_picker.xml │ │ │ ├── view_icon.xml │ │ │ ├── view_loading.xml │ │ │ ├── view_net_error.xml │ │ │ ├── view_night_theme.xml │ │ │ ├── view_number_buttom.xml │ │ │ ├── view_recycler_font.xml │ │ │ ├── view_refresh_error.xml │ │ │ ├── view_refresh_load_more.xml │ │ │ ├── view_refresh_no_data.xml │ │ │ └── view_refresh_recycler.xml │ │ ├── menu/ │ │ │ ├── menu_book_download.xml │ │ │ ├── menu_book_info.xml │ │ │ ├── menu_book_read_activity.xml │ │ │ ├── menu_book_search_activity.xml │ │ │ ├── menu_book_source_activity.xml │ │ │ ├── menu_book_source_edit.xml │ │ │ ├── menu_debug_activity.xml │ │ │ ├── menu_main_activity.xml │ │ │ ├── menu_main_drawer.xml │ │ │ ├── menu_qr_code_scan.xml │ │ │ ├── menu_read_style_activity.xml │ │ │ ├── menu_replace_rule_activity.xml │ │ │ ├── menu_search_view.xml │ │ │ ├── menu_source_login.xml │ │ │ ├── menu_txt_chapter_rule_activity.xml │ │ │ └── menu_update_activity.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── book_launcher.xml │ │ │ ├── book_launcher_round.xml │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── arrays.xml │ │ │ ├── attrs.xml │ │ │ ├── book_launcher_background.xml │ │ │ ├── colors.xml │ │ │ ├── colors_material_design.xml │ │ │ ├── dimens.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ids.xml │ │ │ ├── pref_key_value.xml │ │ │ ├── strings.xml │ │ │ ├── strings_me.xml │ │ │ └── styles.xml │ │ ├── values-en/ │ │ │ └── strings.xml │ │ ├── values-night/ │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ ├── values-v27/ │ │ │ └── styles.xml │ │ ├── values-v28/ │ │ │ └── styles.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ ├── values-zh-rTW/ │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── file_paths.xml │ │ ├── network_security_config.xml │ │ ├── pref_settings.xml │ │ ├── pref_settings_theme.xml │ │ ├── pref_settings_web_dav.xml │ │ └── shortcuts.xml │ └── test/ │ └── java/ │ └── com/ │ └── kunfei/ │ └── bookshelf/ │ └── ExampleUnitTest.java ├── basemvplib/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── kunfei/ │ │ │ └── basemvplib/ │ │ │ ├── AppActivityManager.java │ │ │ ├── BaseActivity.java │ │ │ ├── BaseFragment.java │ │ │ ├── BasePresenterImpl.java │ │ │ ├── BitIntentDataManager.java │ │ │ └── impl/ │ │ │ ├── IPresenter.java │ │ │ └── IView.java │ │ └── res/ │ │ └── values/ │ │ ├── colors.xml │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── kunfei/ │ └── basemvplib/ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── mail ├── settings.gradle └── tool/ └── 书源整理工具/ ├── BookSourceMgr.dpr ├── BookSourceMgr.dproj ├── BookSourceMgr.res ├── ReadMe.txt ├── uBookSourceBean.pas ├── uFrmEditSource.dfm ├── uFrmEditSource.pas ├── uFrmMain.dfm ├── uFrmMain.pas ├── uFrmReplaceGroup.dfm ├── uFrmReplaceGroup.pas ├── uFrmWait.dfm └── uFrmWait.pas