gitextract_884x2re1/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ ├── report_bug.yml │ │ └── request_feature.yml │ ├── ISSUE_TEMPLATE.md │ └── workflows/ │ ├── issue_moderator.yml │ └── trigger-site-deploy.yml ├── .gitignore ├── .idea/ │ ├── .gitignore │ ├── appInsightsSettings.xml │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── gradle.xml │ ├── jarRepositories.xml │ ├── kotlinCodeInsightSettings.xml │ ├── ktlint.xml │ └── vcs.xml ├── .weblate ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── libs/ │ │ └── .gitkeep │ ├── proguard-rules.pro │ └── src/ │ ├── androidTest/ │ │ ├── assets/ │ │ │ ├── categories/ │ │ │ │ └── simple.json │ │ │ ├── kotatsu_test.bak │ │ │ └── manga/ │ │ │ ├── bad_ids.json │ │ │ ├── empty.json │ │ │ ├── first_chapters.json │ │ │ ├── full.json │ │ │ ├── header.json │ │ │ └── without_middle_chapter.json │ │ └── kotlin/ │ │ └── org/ │ │ └── koitharu/ │ │ └── kotatsu/ │ │ ├── HiltTestRunner.kt │ │ ├── Instrumentation.kt │ │ ├── SampleData.kt │ │ ├── core/ │ │ │ ├── db/ │ │ │ │ └── MangaDatabaseTest.kt │ │ │ └── os/ │ │ │ └── AppShortcutManagerTest.kt │ │ └── settings/ │ │ └── backup/ │ │ └── AppBackupAgentTest.kt │ ├── debug/ │ │ ├── kotlin/ │ │ │ └── org/ │ │ │ └── koitharu/ │ │ │ └── kotatsu/ │ │ │ ├── KotatsuApp.kt │ │ │ ├── StrictModeNotifier.kt │ │ │ ├── core/ │ │ │ │ ├── network/ │ │ │ │ │ └── CurlLoggingInterceptor.kt │ │ │ │ ├── parser/ │ │ │ │ │ └── TestMangaRepository.kt │ │ │ │ ├── ui/ │ │ │ │ │ └── BaseService.kt │ │ │ │ └── util/ │ │ │ │ └── ext/ │ │ │ │ └── Debug.kt │ │ │ └── settings/ │ │ │ └── DebugSettingsFragment.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_debug.xml │ │ ├── drawable-anydpi-v24/ │ │ │ └── ic_bug.xml │ │ ├── values/ │ │ │ ├── bools.xml │ │ │ ├── constants.xml │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── pref_debug.xml │ │ └── pref_root_debug.xml │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── isrgrootx1.pem │ │ ├── kotlin/ │ │ │ └── org/ │ │ │ └── koitharu/ │ │ │ └── kotatsu/ │ │ │ ├── alternatives/ │ │ │ │ ├── domain/ │ │ │ │ │ ├── AlternativesUseCase.kt │ │ │ │ │ ├── AutoFixUseCase.kt │ │ │ │ │ └── MigrateUseCase.kt │ │ │ │ └── ui/ │ │ │ │ ├── AlternativeAD.kt │ │ │ │ ├── AlternativesActivity.kt │ │ │ │ ├── AlternativesViewModel.kt │ │ │ │ ├── AutoFixService.kt │ │ │ │ └── MangaAlternativeModel.kt │ │ │ ├── backups/ │ │ │ │ ├── data/ │ │ │ │ │ ├── BackupRepository.kt │ │ │ │ │ └── model/ │ │ │ │ │ ├── BackupIndex.kt │ │ │ │ │ ├── BookmarkBackup.kt │ │ │ │ │ ├── CategoryBackup.kt │ │ │ │ │ ├── FavouriteBackup.kt │ │ │ │ │ ├── HistoryBackup.kt │ │ │ │ │ ├── MangaBackup.kt │ │ │ │ │ ├── ScrobblingBackup.kt │ │ │ │ │ ├── SourceBackup.kt │ │ │ │ │ ├── StatisticBackup.kt │ │ │ │ │ └── TagBackup.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── AppBackupAgent.kt │ │ │ │ │ ├── BackupFile.kt │ │ │ │ │ ├── BackupObserver.kt │ │ │ │ │ ├── BackupSection.kt │ │ │ │ │ ├── BackupUtils.kt │ │ │ │ │ └── ExternalBackupStorage.kt │ │ │ │ └── ui/ │ │ │ │ ├── BaseBackupRestoreService.kt │ │ │ │ ├── backup/ │ │ │ │ │ ├── BackupDialogFragment.kt │ │ │ │ │ ├── BackupService.kt │ │ │ │ │ └── BackupViewModel.kt │ │ │ │ ├── periodical/ │ │ │ │ │ ├── PeriodicalBackupService.kt │ │ │ │ │ ├── PeriodicalBackupSettingsFragment.kt │ │ │ │ │ ├── PeriodicalBackupSettingsViewModel.kt │ │ │ │ │ └── TelegramBackupUploader.kt │ │ │ │ └── restore/ │ │ │ │ ├── BackupEntriesAdapter.kt │ │ │ │ ├── BackupSectionModel.kt │ │ │ │ ├── RestoreDialogFragment.kt │ │ │ │ ├── RestoreService.kt │ │ │ │ └── RestoreViewModel.kt │ │ │ ├── bookmarks/ │ │ │ │ ├── data/ │ │ │ │ │ ├── BookmarkEntity.kt │ │ │ │ │ ├── BookmarksDao.kt │ │ │ │ │ └── EntityMapping.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── Bookmark.kt │ │ │ │ │ └── BookmarksRepository.kt │ │ │ │ └── ui/ │ │ │ │ ├── AllBookmarksActivity.kt │ │ │ │ ├── AllBookmarksFragment.kt │ │ │ │ ├── AllBookmarksViewModel.kt │ │ │ │ ├── BookmarksSelectionDecoration.kt │ │ │ │ └── adapter/ │ │ │ │ ├── BookmarkLargeAD.kt │ │ │ │ └── BookmarksAdapter.kt │ │ │ ├── browser/ │ │ │ │ ├── AdListUpdateService.kt │ │ │ │ ├── BaseBrowserActivity.kt │ │ │ │ ├── BrowserActivity.kt │ │ │ │ ├── BrowserCallback.kt │ │ │ │ ├── BrowserClient.kt │ │ │ │ ├── OnHistoryChangedListener.kt │ │ │ │ ├── ProgressChromeClient.kt │ │ │ │ ├── WebViewBackPressedCallback.kt │ │ │ │ └── cloudflare/ │ │ │ │ ├── CloudFlareActivity.kt │ │ │ │ ├── CloudFlareCallback.kt │ │ │ │ └── CloudFlareClient.kt │ │ │ ├── core/ │ │ │ │ ├── AppModule.kt │ │ │ │ ├── BaseApp.kt │ │ │ │ ├── ErrorReporterReceiver.kt │ │ │ │ ├── LocalizedAppContext.kt │ │ │ │ ├── cache/ │ │ │ │ │ ├── ExpiringLruCache.kt │ │ │ │ │ ├── ExpiringValue.kt │ │ │ │ │ ├── MemoryContentCache.kt │ │ │ │ │ └── SafeDeferred.kt │ │ │ │ ├── db/ │ │ │ │ │ ├── DatabasePrePopulateCallback.kt │ │ │ │ │ ├── MangaDatabase.kt │ │ │ │ │ ├── MangaQueryBuilder.kt │ │ │ │ │ ├── Tables.kt │ │ │ │ │ ├── dao/ │ │ │ │ │ │ ├── ChaptersDao.kt │ │ │ │ │ │ ├── MangaDao.kt │ │ │ │ │ │ ├── MangaSourcesDao.kt │ │ │ │ │ │ ├── PreferencesDao.kt │ │ │ │ │ │ ├── TagsDao.kt │ │ │ │ │ │ └── TrackLogsDao.kt │ │ │ │ │ ├── entity/ │ │ │ │ │ │ ├── ChapterEntity.kt │ │ │ │ │ │ ├── EntityMapping.kt │ │ │ │ │ │ ├── MangaEntity.kt │ │ │ │ │ │ ├── MangaPrefsEntity.kt │ │ │ │ │ │ ├── MangaSourceEntity.kt │ │ │ │ │ │ ├── MangaTagsEntity.kt │ │ │ │ │ │ ├── MangaWithTags.kt │ │ │ │ │ │ └── TagEntity.kt │ │ │ │ │ └── migrations/ │ │ │ │ │ ├── Migration10To11.kt │ │ │ │ │ ├── Migration11To12.kt │ │ │ │ │ ├── Migration12To13.kt │ │ │ │ │ ├── Migration13To14.kt │ │ │ │ │ ├── Migration14To15.kt │ │ │ │ │ ├── Migration15To16.kt │ │ │ │ │ ├── Migration16To17.kt │ │ │ │ │ ├── Migration17To18.kt │ │ │ │ │ ├── Migration18To19.kt │ │ │ │ │ ├── Migration19To20.kt │ │ │ │ │ ├── Migration1To2.kt │ │ │ │ │ ├── Migration20To21.kt │ │ │ │ │ ├── Migration21To22.kt │ │ │ │ │ ├── Migration22To23.kt │ │ │ │ │ ├── Migration23To24.kt │ │ │ │ │ ├── Migration24To23.kt │ │ │ │ │ ├── Migration24To25.kt │ │ │ │ │ ├── Migration25To26.kt │ │ │ │ │ ├── Migration26To27.kt │ │ │ │ │ ├── Migration2To3.kt │ │ │ │ │ ├── Migration3To4.kt │ │ │ │ │ ├── Migration4To5.kt │ │ │ │ │ ├── Migration5To6.kt │ │ │ │ │ ├── Migration6To7.kt │ │ │ │ │ ├── Migration7To8.kt │ │ │ │ │ ├── Migration8To9.kt │ │ │ │ │ └── Migration9To10.kt │ │ │ │ ├── exceptions/ │ │ │ │ │ ├── BadBackupFormatException.kt │ │ │ │ │ ├── CaughtException.kt │ │ │ │ │ ├── CloudFlareBlockedException.kt │ │ │ │ │ ├── CloudFlareException.kt │ │ │ │ │ ├── CloudFlareProtectedException.kt │ │ │ │ │ ├── EmptyHistoryException.kt │ │ │ │ │ ├── EmptyMangaException.kt │ │ │ │ │ ├── IncompatiblePluginException.kt │ │ │ │ │ ├── InteractiveActionRequiredException.kt │ │ │ │ │ ├── NoDataReceivedException.kt │ │ │ │ │ ├── NonFileUriException.kt │ │ │ │ │ ├── ProxyConfigException.kt │ │ │ │ │ ├── SyncApiException.kt │ │ │ │ │ ├── UnsupportedFileException.kt │ │ │ │ │ ├── UnsupportedSourceException.kt │ │ │ │ │ ├── WrapperIOException.kt │ │ │ │ │ ├── WrongPasswordException.kt │ │ │ │ │ └── resolve/ │ │ │ │ │ ├── CaptchaHandler.kt │ │ │ │ │ ├── DialogErrorObserver.kt │ │ │ │ │ ├── ErrorObserver.kt │ │ │ │ │ ├── ExceptionResolver.kt │ │ │ │ │ ├── SnackbarErrorObserver.kt │ │ │ │ │ └── ToastErrorObserver.kt │ │ │ │ ├── fs/ │ │ │ │ │ └── FileSequence.kt │ │ │ │ ├── github/ │ │ │ │ │ ├── AppUpdateRepository.kt │ │ │ │ │ ├── AppVersion.kt │ │ │ │ │ └── VersionId.kt │ │ │ │ ├── image/ │ │ │ │ │ ├── AvifImageDecoder.kt │ │ │ │ │ ├── BitmapDecoderCompat.kt │ │ │ │ │ ├── CbzFetcher.kt │ │ │ │ │ ├── CoilImageView.kt │ │ │ │ │ ├── CoilMemoryCacheKey.kt │ │ │ │ │ ├── MangaSourceHeaderInterceptor.kt │ │ │ │ │ └── RegionBitmapDecoder.kt │ │ │ │ ├── io/ │ │ │ │ │ └── NullOutputStream.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── FavouriteCategory.kt │ │ │ │ │ ├── GenericSortOrder.kt │ │ │ │ │ ├── Manga.kt │ │ │ │ │ ├── MangaHistory.kt │ │ │ │ │ ├── MangaSource.kt │ │ │ │ │ ├── MangaSourceInfo.kt │ │ │ │ │ ├── MangaSourceSerializer.kt │ │ │ │ │ ├── QuickFilter.kt │ │ │ │ │ ├── SortDirection.kt │ │ │ │ │ ├── ZoomMode.kt │ │ │ │ │ └── parcelable/ │ │ │ │ │ ├── MangaSourceParceler.kt │ │ │ │ │ ├── ParcelableChapter.kt │ │ │ │ │ ├── ParcelableManga.kt │ │ │ │ │ ├── ParcelableMangaListFilter.kt │ │ │ │ │ ├── ParcelableMangaPage.kt │ │ │ │ │ └── ParcelableMangaTags.kt │ │ │ │ ├── nav/ │ │ │ │ │ ├── AppRouter.kt │ │ │ │ │ ├── AppRouterEntryPoint.kt │ │ │ │ │ ├── MangaIntent.kt │ │ │ │ │ ├── NavUtil.kt │ │ │ │ │ └── ReaderIntent.kt │ │ │ │ ├── network/ │ │ │ │ │ ├── CacheLimitInterceptor.kt │ │ │ │ │ ├── CloudFlareInterceptor.kt │ │ │ │ │ ├── CommonHeaders.kt │ │ │ │ │ ├── CommonHeadersInterceptor.kt │ │ │ │ │ ├── DoHManager.kt │ │ │ │ │ ├── DoHProvider.kt │ │ │ │ │ ├── GZipInterceptor.kt │ │ │ │ │ ├── HttpClients.kt │ │ │ │ │ ├── NetworkModule.kt │ │ │ │ │ ├── RateLimitInterceptor.kt │ │ │ │ │ ├── SSLUtils.kt │ │ │ │ │ ├── cookies/ │ │ │ │ │ │ ├── AndroidCookieJar.kt │ │ │ │ │ │ ├── CookieWrapper.kt │ │ │ │ │ │ ├── MutableCookieJar.kt │ │ │ │ │ │ └── PreferencesCookieJar.kt │ │ │ │ │ ├── imageproxy/ │ │ │ │ │ │ ├── BaseImageProxyInterceptor.kt │ │ │ │ │ │ ├── ImageProxyInterceptor.kt │ │ │ │ │ │ ├── RealImageProxyInterceptor.kt │ │ │ │ │ │ ├── WsrvNlProxyInterceptor.kt │ │ │ │ │ │ └── ZeroMsProxyInterceptor.kt │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ └── ProxyProvider.kt │ │ │ │ │ └── webview/ │ │ │ │ │ ├── CaptchaContinuationClient.kt │ │ │ │ │ ├── ContinuationResumeWebViewClient.kt │ │ │ │ │ ├── WebViewExecutor.kt │ │ │ │ │ └── adblock/ │ │ │ │ │ ├── AdBlock.kt │ │ │ │ │ ├── CSSRuleBuilder.kt │ │ │ │ │ ├── Rule.kt │ │ │ │ │ └── RulesList.kt │ │ │ │ ├── os/ │ │ │ │ │ ├── AppShortcutManager.kt │ │ │ │ │ ├── AppValidator.kt │ │ │ │ │ ├── NetworkManageIntent.kt │ │ │ │ │ ├── NetworkState.kt │ │ │ │ │ ├── OpenDocumentTreeHelper.kt │ │ │ │ │ ├── RomCompat.kt │ │ │ │ │ └── VoiceInputContract.kt │ │ │ │ ├── parser/ │ │ │ │ │ ├── BitmapWrapper.kt │ │ │ │ │ ├── CachingMangaRepository.kt │ │ │ │ │ ├── EmptyMangaRepository.kt │ │ │ │ │ ├── MangaDataRepository.kt │ │ │ │ │ ├── MangaLinkResolver.kt │ │ │ │ │ ├── MangaLoaderContextImpl.kt │ │ │ │ │ ├── MangaRepository.kt │ │ │ │ │ ├── MirrorSwitcher.kt │ │ │ │ │ ├── ParserMangaRepository.kt │ │ │ │ │ ├── external/ │ │ │ │ │ │ ├── ExternalMangaRepository.kt │ │ │ │ │ │ ├── ExternalMangaSource.kt │ │ │ │ │ │ ├── ExternalPluginContentSource.kt │ │ │ │ │ │ └── ExternalPluginCursor.kt │ │ │ │ │ └── favicon/ │ │ │ │ │ ├── FaviconFetcher.kt │ │ │ │ │ └── FaviconUri.kt │ │ │ │ ├── prefs/ │ │ │ │ │ ├── AppSettings.kt │ │ │ │ │ ├── AppSettingsObserver.kt │ │ │ │ │ ├── AppWidgetConfig.kt │ │ │ │ │ ├── ColorScheme.kt │ │ │ │ │ ├── DownloadFormat.kt │ │ │ │ │ ├── ListMode.kt │ │ │ │ │ ├── NavItem.kt │ │ │ │ │ ├── NetworkPolicy.kt │ │ │ │ │ ├── ProgressIndicatorMode.kt │ │ │ │ │ ├── ReaderAnimation.kt │ │ │ │ │ ├── ReaderBackground.kt │ │ │ │ │ ├── ReaderControl.kt │ │ │ │ │ ├── ReaderMode.kt │ │ │ │ │ ├── ScreenshotsPolicy.kt │ │ │ │ │ ├── SearchSuggestionType.kt │ │ │ │ │ ├── SourceSettings.kt │ │ │ │ │ ├── TrackerDownloadStrategy.kt │ │ │ │ │ └── TriStateOption.kt │ │ │ │ ├── ui/ │ │ │ │ │ ├── AlertDialogFragment.kt │ │ │ │ │ ├── BaseActivity.kt │ │ │ │ │ ├── BaseActivityEntryPoint.kt │ │ │ │ │ ├── BaseAppWidgetProvider.kt │ │ │ │ │ ├── BaseFragment.kt │ │ │ │ │ ├── BaseFullscreenActivity.kt │ │ │ │ │ ├── BaseListAdapter.kt │ │ │ │ │ ├── BasePreferenceFragment.kt │ │ │ │ │ ├── BaseViewModel.kt │ │ │ │ │ ├── CoroutineIntentService.kt │ │ │ │ │ ├── DefaultActivityLifecycleCallbacks.kt │ │ │ │ │ ├── FragmentContainerActivity.kt │ │ │ │ │ ├── ReorderableListAdapter.kt │ │ │ │ │ ├── dialog/ │ │ │ │ │ │ ├── AlertDialogs.kt │ │ │ │ │ │ ├── BigButtonsAlertDialog.kt │ │ │ │ │ │ ├── ErrorDetailsDialog.kt │ │ │ │ │ │ ├── RememberCheckListener.kt │ │ │ │ │ │ └── RememberSelectionDialogListener.kt │ │ │ │ │ ├── image/ │ │ │ │ │ │ ├── AnimatedFaviconDrawable.kt │ │ │ │ │ │ ├── AnimatedPlaceholderDrawable.kt │ │ │ │ │ │ ├── ChipIconTarget.kt │ │ │ │ │ │ ├── CoilImageGetter.kt │ │ │ │ │ │ ├── FaviconDrawable.kt │ │ │ │ │ │ ├── FaviconView.kt │ │ │ │ │ │ ├── PaintDrawable.kt │ │ │ │ │ │ ├── TextDrawable.kt │ │ │ │ │ │ ├── TextViewTarget.kt │ │ │ │ │ │ ├── ThumbnailTransformation.kt │ │ │ │ │ │ └── TrimTransformation.kt │ │ │ │ │ ├── list/ │ │ │ │ │ │ ├── AdapterDelegateClickListenerAdapter.kt │ │ │ │ │ │ ├── BaseListSelectionCallback.kt │ │ │ │ │ │ ├── BoundsScrollListener.kt │ │ │ │ │ │ ├── FitHeightGridLayoutManager.kt │ │ │ │ │ │ ├── FitHeightLinearLayoutManager.kt │ │ │ │ │ │ ├── ListSelectionController.kt │ │ │ │ │ │ ├── OnListItemClickListener.kt │ │ │ │ │ │ ├── OnTipCloseListener.kt │ │ │ │ │ │ ├── PaginationScrollListener.kt │ │ │ │ │ │ ├── RecyclerScrollKeeper.kt │ │ │ │ │ │ ├── SectionedSelectionController.kt │ │ │ │ │ │ ├── decor/ │ │ │ │ │ │ │ ├── AbstractSelectionItemDecoration.kt │ │ │ │ │ │ │ └── SpacingItemDecoration.kt │ │ │ │ │ │ ├── fastscroll/ │ │ │ │ │ │ │ ├── BubbleAnimator.kt │ │ │ │ │ │ │ ├── FastScrollRecyclerView.kt │ │ │ │ │ │ │ ├── FastScroller.kt │ │ │ │ │ │ │ └── ScrollbarAnimator.kt │ │ │ │ │ │ └── lifecycle/ │ │ │ │ │ │ ├── LifecycleAwareViewHolder.kt │ │ │ │ │ │ ├── PagerLifecycleDispatcher.kt │ │ │ │ │ │ └── RecyclerViewLifecycleDispatcher.kt │ │ │ │ │ ├── model/ │ │ │ │ │ │ ├── DateTimeAgo.kt │ │ │ │ │ │ ├── MangaOverride.kt │ │ │ │ │ │ └── SortOrder.kt │ │ │ │ │ ├── sheet/ │ │ │ │ │ │ ├── AdaptiveSheetBehavior.kt │ │ │ │ │ │ ├── AdaptiveSheetCallback.kt │ │ │ │ │ │ ├── AdaptiveSheetHeaderBar.kt │ │ │ │ │ │ ├── BaseAdaptiveSheet.kt │ │ │ │ │ │ └── BottomSheetCollapseCallback.kt │ │ │ │ │ ├── util/ │ │ │ │ │ │ ├── ActionModeDelegate.kt │ │ │ │ │ │ ├── ActionModeListener.kt │ │ │ │ │ │ ├── ActivityRecreationHandle.kt │ │ │ │ │ │ ├── CollapseActionViewCallback.kt │ │ │ │ │ │ ├── DefaultTextWatcher.kt │ │ │ │ │ │ ├── FadingAppbarMediator.kt │ │ │ │ │ │ ├── MenuInvalidator.kt │ │ │ │ │ │ ├── OptionsMenuBadgeHelper.kt │ │ │ │ │ │ ├── PagerNestedScrollHelper.kt │ │ │ │ │ │ ├── PopupMenuMediator.kt │ │ │ │ │ │ ├── RecyclerViewOwner.kt │ │ │ │ │ │ ├── ReversibleAction.kt │ │ │ │ │ │ ├── ReversibleActionObserver.kt │ │ │ │ │ │ ├── ReversibleHandle.kt │ │ │ │ │ │ ├── ShrinkOnScrollBehavior.kt │ │ │ │ │ │ ├── SpanSizeResolver.kt │ │ │ │ │ │ └── SystemUiController.kt │ │ │ │ │ └── widgets/ │ │ │ │ │ ├── BadgeView.kt │ │ │ │ │ ├── CheckableImageButton.kt │ │ │ │ │ ├── CheckableImageView.kt │ │ │ │ │ ├── ChipsView.kt │ │ │ │ │ ├── CubicSlider.kt │ │ │ │ │ ├── DotsIndicator.kt │ │ │ │ │ ├── HideBottomNavigationOnScrollBehavior.kt │ │ │ │ │ ├── IconsView.kt │ │ │ │ │ ├── ListItemTextView.kt │ │ │ │ │ ├── MultilineEllipsizeTextView.kt │ │ │ │ │ ├── NestedRecyclerView.kt │ │ │ │ │ ├── SegmentedBarView.kt │ │ │ │ │ ├── SelectableTextView.kt │ │ │ │ │ ├── ShapeView.kt │ │ │ │ │ ├── SlidingBottomNavigationView.kt │ │ │ │ │ ├── StackLayout.kt │ │ │ │ │ ├── TipView.kt │ │ │ │ │ ├── TouchBlockLayout.kt │ │ │ │ │ ├── TwoLinesItemView.kt │ │ │ │ │ ├── WindowInsetHolder.kt │ │ │ │ │ └── ZoomControl.kt │ │ │ │ ├── util/ │ │ │ │ │ ├── AcraCoroutineErrorHandler.kt │ │ │ │ │ ├── AcraScreenLogger.kt │ │ │ │ │ ├── AlphanumComparator.kt │ │ │ │ │ ├── CancellableSource.kt │ │ │ │ │ ├── CloseableSequence.kt │ │ │ │ │ ├── CompositeResult.kt │ │ │ │ │ ├── ContinuationResumeRunnable.kt │ │ │ │ │ ├── EditTextValidator.kt │ │ │ │ │ ├── Event.kt │ │ │ │ │ ├── FileSize.kt │ │ │ │ │ ├── IdlingDetector.kt │ │ │ │ │ ├── KotatsuColors.kt │ │ │ │ │ ├── LocaleComparator.kt │ │ │ │ │ ├── LocaleStringComparator.kt │ │ │ │ │ ├── LocaleUtils.kt │ │ │ │ │ ├── MediatorStateFlow.kt │ │ │ │ │ ├── MimeTypes.kt │ │ │ │ │ ├── MultiMutex.kt │ │ │ │ │ ├── RecyclerViewScrollCallback.kt │ │ │ │ │ ├── RetainedLifecycleCoroutineScope.kt │ │ │ │ │ ├── ShareHelper.kt │ │ │ │ │ ├── SynchronizedSieveCache.kt │ │ │ │ │ ├── Throttler.kt │ │ │ │ │ ├── ViewBadge.kt │ │ │ │ │ ├── ext/ │ │ │ │ │ │ ├── Android.kt │ │ │ │ │ │ ├── Bundle.kt │ │ │ │ │ │ ├── Coil.kt │ │ │ │ │ │ ├── Collections.kt │ │ │ │ │ │ ├── ContentResolver.kt │ │ │ │ │ │ ├── Coroutines.kt │ │ │ │ │ │ ├── Cursor.kt │ │ │ │ │ │ ├── Date.kt │ │ │ │ │ │ ├── EventFlow.kt │ │ │ │ │ │ ├── File.kt │ │ │ │ │ │ ├── Flow.kt │ │ │ │ │ │ ├── FlowObserver.kt │ │ │ │ │ │ ├── Fragment.kt │ │ │ │ │ │ ├── Graphics.kt │ │ │ │ │ │ ├── Http.kt │ │ │ │ │ │ ├── IO.kt │ │ │ │ │ │ ├── Insets.kt │ │ │ │ │ │ ├── LocaleList.kt │ │ │ │ │ │ ├── MimeType.kt │ │ │ │ │ │ ├── Other.kt │ │ │ │ │ │ ├── Preferences.kt │ │ │ │ │ │ ├── Primitive.kt │ │ │ │ │ │ ├── RecyclerView.kt │ │ │ │ │ │ ├── Resources.kt │ │ │ │ │ │ ├── String.kt │ │ │ │ │ │ ├── TextView.kt │ │ │ │ │ │ ├── Theme.kt │ │ │ │ │ │ ├── Throwable.kt │ │ │ │ │ │ ├── Toolbar.kt │ │ │ │ │ │ ├── Uri.kt │ │ │ │ │ │ ├── View.kt │ │ │ │ │ │ ├── ViewModel.kt │ │ │ │ │ │ └── WorkManager.kt │ │ │ │ │ ├── iterator/ │ │ │ │ │ │ └── MappingIterator.kt │ │ │ │ │ └── progress/ │ │ │ │ │ ├── ImageRequestIndicatorListener.kt │ │ │ │ │ ├── IntPercentLabelFormatter.kt │ │ │ │ │ ├── Progress.kt │ │ │ │ │ ├── ProgressDeferred.kt │ │ │ │ │ ├── ProgressResponseBody.kt │ │ │ │ │ └── RealtimeEtaEstimator.kt │ │ │ │ └── zip/ │ │ │ │ └── ZipOutput.kt │ │ │ ├── details/ │ │ │ │ ├── data/ │ │ │ │ │ ├── MangaDetails.kt │ │ │ │ │ └── ReadingTime.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── BranchComparator.kt │ │ │ │ │ ├── DetailsInteractor.kt │ │ │ │ │ ├── DetailsLoadUseCase.kt │ │ │ │ │ ├── ProgressUpdateUseCase.kt │ │ │ │ │ ├── ReadingTimeUseCase.kt │ │ │ │ │ └── RelatedMangaUseCase.kt │ │ │ │ ├── service/ │ │ │ │ │ ├── MangaPrefetchService.kt │ │ │ │ │ └── PrefetchCompanionEntryPoint.kt │ │ │ │ └── ui/ │ │ │ │ ├── AuthorSpan.kt │ │ │ │ ├── ChaptersMapper.kt │ │ │ │ ├── DetailsActivity.kt │ │ │ │ ├── DetailsBottomSheetCallback.kt │ │ │ │ ├── DetailsErrorObserver.kt │ │ │ │ ├── DetailsMenuProvider.kt │ │ │ │ ├── DetailsViewModel.kt │ │ │ │ ├── ReadButtonDelegate.kt │ │ │ │ ├── TitleScrollCoordinator.kt │ │ │ │ ├── adapter/ │ │ │ │ │ ├── ChapterGridItemAD.kt │ │ │ │ │ ├── ChapterListItemAD.kt │ │ │ │ │ ├── ChaptersAdapter.kt │ │ │ │ │ └── ChaptersSelectionDecoration.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── ChapterListItem.kt │ │ │ │ │ ├── HistoryInfo.kt │ │ │ │ │ ├── ListModelConversionExt.kt │ │ │ │ │ └── MangaBranch.kt │ │ │ │ ├── pager/ │ │ │ │ │ ├── ChapterPagesMenuProvider.kt │ │ │ │ │ ├── ChaptersPagesAdapter.kt │ │ │ │ │ ├── ChaptersPagesSheet.kt │ │ │ │ │ ├── ChaptersPagesViewModel.kt │ │ │ │ │ ├── EmptyMangaReason.kt │ │ │ │ │ ├── PeekHeightController.kt │ │ │ │ │ ├── bookmarks/ │ │ │ │ │ │ ├── BookmarksFragment.kt │ │ │ │ │ │ └── BookmarksViewModel.kt │ │ │ │ │ ├── chapters/ │ │ │ │ │ │ ├── ChapterGridSpanHelper.kt │ │ │ │ │ │ ├── ChaptersFragment.kt │ │ │ │ │ │ └── ChaptersSelectionCallback.kt │ │ │ │ │ └── pages/ │ │ │ │ │ ├── MangaPageFetcher.kt │ │ │ │ │ ├── MangaPageKeyer.kt │ │ │ │ │ ├── PageThumbnail.kt │ │ │ │ │ ├── PageThumbnailAD.kt │ │ │ │ │ ├── PageThumbnailAdapter.kt │ │ │ │ │ ├── PagesFragment.kt │ │ │ │ │ ├── PagesSavedObserver.kt │ │ │ │ │ ├── PagesSelectionDecoration.kt │ │ │ │ │ └── PagesViewModel.kt │ │ │ │ ├── related/ │ │ │ │ │ ├── RelatedListFragment.kt │ │ │ │ │ ├── RelatedListViewModel.kt │ │ │ │ │ └── RelatedMangaActivity.kt │ │ │ │ └── scrobbling/ │ │ │ │ ├── ScrobblingInfoAD.kt │ │ │ │ ├── ScrobblingInfoSheet.kt │ │ │ │ ├── ScrobblingItemDecoration.kt │ │ │ │ └── ScrollingInfoAdapter.kt │ │ │ ├── download/ │ │ │ │ ├── domain/ │ │ │ │ │ ├── DownloadProgress.kt │ │ │ │ │ └── DownloadState.kt │ │ │ │ └── ui/ │ │ │ │ ├── dialog/ │ │ │ │ │ ├── ChapterSelectOptions.kt │ │ │ │ │ ├── ChaptersSelectMacro.kt │ │ │ │ │ ├── DestinationsAdapter.kt │ │ │ │ │ ├── DownloadDialogFragment.kt │ │ │ │ │ └── DownloadDialogViewModel.kt │ │ │ │ ├── list/ │ │ │ │ │ ├── DownloadItemAD.kt │ │ │ │ │ ├── DownloadItemListener.kt │ │ │ │ │ ├── DownloadItemModel.kt │ │ │ │ │ ├── DownloadsActivity.kt │ │ │ │ │ ├── DownloadsAdapter.kt │ │ │ │ │ ├── DownloadsMenuProvider.kt │ │ │ │ │ ├── DownloadsSelectionDecoration.kt │ │ │ │ │ ├── DownloadsViewModel.kt │ │ │ │ │ └── chapters/ │ │ │ │ │ ├── DownloadChapter.kt │ │ │ │ │ └── DownloadChapterAD.kt │ │ │ │ └── worker/ │ │ │ │ ├── DownloadNotificationFactory.kt │ │ │ │ ├── DownloadSlowdownDispatcher.kt │ │ │ │ ├── DownloadStartedObserver.kt │ │ │ │ ├── DownloadTask.kt │ │ │ │ ├── DownloadWorker.kt │ │ │ │ ├── PausingHandle.kt │ │ │ │ └── PausingReceiver.kt │ │ │ ├── explore/ │ │ │ │ ├── data/ │ │ │ │ │ ├── MangaSourcesRepository.kt │ │ │ │ │ └── SourcesSortOrder.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── ExploreRepository.kt │ │ │ │ │ └── RecoverMangaUseCase.kt │ │ │ │ └── ui/ │ │ │ │ ├── ExploreFragment.kt │ │ │ │ ├── ExploreGridSpanSizeLookup.kt │ │ │ │ ├── ExploreMenuProvider.kt │ │ │ │ ├── ExploreViewModel.kt │ │ │ │ ├── SourceSelectionDecoration.kt │ │ │ │ ├── adapter/ │ │ │ │ │ ├── ExploreAdapter.kt │ │ │ │ │ ├── ExploreAdapterDelegates.kt │ │ │ │ │ └── ExploreListEventListener.kt │ │ │ │ └── model/ │ │ │ │ ├── ExploreButtons.kt │ │ │ │ ├── MangaSourceItem.kt │ │ │ │ └── RecommendationsItem.kt │ │ │ ├── favourites/ │ │ │ │ ├── data/ │ │ │ │ │ ├── EntityMapping.kt │ │ │ │ │ ├── FavouriteCategoriesDao.kt │ │ │ │ │ ├── FavouriteCategoryEntity.kt │ │ │ │ │ ├── FavouriteEntity.kt │ │ │ │ │ ├── FavouriteManga.kt │ │ │ │ │ └── FavouritesDao.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── FavoritesListQuickFilter.kt │ │ │ │ │ ├── FavouritesRepository.kt │ │ │ │ │ ├── LocalFavoritesObserver.kt │ │ │ │ │ └── model/ │ │ │ │ │ └── Cover.kt │ │ │ │ └── ui/ │ │ │ │ ├── FavouritesActivity.kt │ │ │ │ ├── categories/ │ │ │ │ │ ├── CategoriesSelectionCallback.kt │ │ │ │ │ ├── CategoriesSelectionDecoration.kt │ │ │ │ │ ├── FavouriteCategoriesActivity.kt │ │ │ │ │ ├── FavouriteCategoriesListListener.kt │ │ │ │ │ ├── FavouritesCategoriesViewModel.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── AllCategoriesListModel.kt │ │ │ │ │ │ ├── CategoriesAdapter.kt │ │ │ │ │ │ ├── CategoryAD.kt │ │ │ │ │ │ └── CategoryListModel.kt │ │ │ │ │ ├── edit/ │ │ │ │ │ │ ├── FavouritesCategoryEditActivity.kt │ │ │ │ │ │ └── FavouritesCategoryEditViewModel.kt │ │ │ │ │ └── select/ │ │ │ │ │ ├── FavoriteDialog.kt │ │ │ │ │ ├── FavoriteDialogViewModel.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── MangaCategoriesAdapter.kt │ │ │ │ │ │ └── MangaCategoryAD.kt │ │ │ │ │ └── model/ │ │ │ │ │ └── MangaCategoryItem.kt │ │ │ │ ├── container/ │ │ │ │ │ ├── FavouriteTabModel.kt │ │ │ │ │ ├── FavouriteTabPopupMenuProvider.kt │ │ │ │ │ ├── FavouritesContainerAdapter.kt │ │ │ │ │ ├── FavouritesContainerFragment.kt │ │ │ │ │ ├── FavouritesContainerMenuProvider.kt │ │ │ │ │ ├── FavouritesContainerViewModel.kt │ │ │ │ │ └── FavouritesTabConfigurationStrategy.kt │ │ │ │ └── list/ │ │ │ │ ├── FavouritesListFragment.kt │ │ │ │ └── FavouritesListViewModel.kt │ │ │ ├── filter/ │ │ │ │ ├── data/ │ │ │ │ │ ├── MangaListFilterSerializer.kt │ │ │ │ │ ├── PersistableFilter.kt │ │ │ │ │ └── SavedFiltersRepository.kt │ │ │ │ └── ui/ │ │ │ │ ├── FilterCoordinator.kt │ │ │ │ ├── FilterFieldLayout.kt │ │ │ │ ├── FilterHeaderFragment.kt │ │ │ │ ├── FilterHeaderProducer.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── FilterHeaderModel.kt │ │ │ │ │ ├── FilterProperty.kt │ │ │ │ │ └── TagCatalogItem.kt │ │ │ │ ├── sheet/ │ │ │ │ │ └── FilterSheetFragment.kt │ │ │ │ └── tags/ │ │ │ │ ├── TagTitleComparator.kt │ │ │ │ ├── TagsCatalogAdapter.kt │ │ │ │ ├── TagsCatalogSheet.kt │ │ │ │ └── TagsCatalogViewModel.kt │ │ │ ├── history/ │ │ │ │ ├── data/ │ │ │ │ │ ├── EntityMapping.kt │ │ │ │ │ ├── HistoryDao.kt │ │ │ │ │ ├── HistoryEntity.kt │ │ │ │ │ ├── HistoryLocalObserver.kt │ │ │ │ │ ├── HistoryRepository.kt │ │ │ │ │ └── HistoryWithManga.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── HistoryListQuickFilter.kt │ │ │ │ │ ├── HistoryUpdateUseCase.kt │ │ │ │ │ ├── MarkAsReadUseCase.kt │ │ │ │ │ └── model/ │ │ │ │ │ └── MangaWithHistory.kt │ │ │ │ └── ui/ │ │ │ │ ├── HistoryActivity.kt │ │ │ │ ├── HistoryListAdapter.kt │ │ │ │ ├── HistoryListFragment.kt │ │ │ │ ├── HistoryListMenuProvider.kt │ │ │ │ ├── HistoryListViewModel.kt │ │ │ │ └── util/ │ │ │ │ ├── ReadingProgressDrawable.kt │ │ │ │ └── ReadingProgressView.kt │ │ │ ├── image/ │ │ │ │ └── ui/ │ │ │ │ ├── CoverImageView.kt │ │ │ │ ├── CoverStackView.kt │ │ │ │ ├── ImageActivity.kt │ │ │ │ ├── ImageMenuProvider.kt │ │ │ │ └── ImageViewModel.kt │ │ │ ├── list/ │ │ │ │ ├── domain/ │ │ │ │ │ ├── ListFilterOption.kt │ │ │ │ │ ├── ListSortOrder.kt │ │ │ │ │ ├── MangaListMapper.kt │ │ │ │ │ ├── MangaListQuickFilter.kt │ │ │ │ │ ├── QuickFilterListener.kt │ │ │ │ │ └── ReadingProgress.kt │ │ │ │ └── ui/ │ │ │ │ ├── GridSpanResolver.kt │ │ │ │ ├── ListModelDiffCallback.kt │ │ │ │ ├── MangaListFragment.kt │ │ │ │ ├── MangaListMenuProvider.kt │ │ │ │ ├── MangaListViewModel.kt │ │ │ │ ├── MangaSelectionDecoration.kt │ │ │ │ ├── adapter/ │ │ │ │ │ ├── BadgeADUtil.kt │ │ │ │ │ ├── ButtonFooterAD.kt │ │ │ │ │ ├── EmptyHintAD.kt │ │ │ │ │ ├── EmptyStateListAD.kt │ │ │ │ │ ├── ErrorFooterAD.kt │ │ │ │ │ ├── ErrorStateListAD.kt │ │ │ │ │ ├── InfoAD.kt │ │ │ │ │ ├── ListHeaderAD.kt │ │ │ │ │ ├── ListHeaderClickListener.kt │ │ │ │ │ ├── ListItemType.kt │ │ │ │ │ ├── ListStateHolderListener.kt │ │ │ │ │ ├── LoadingFooterAD.kt │ │ │ │ │ ├── LoadingStateAD.kt │ │ │ │ │ ├── MangaDetailsClickListener.kt │ │ │ │ │ ├── MangaGridItemAD.kt │ │ │ │ │ ├── MangaListAdapter.kt │ │ │ │ │ ├── MangaListDetailedItemAD.kt │ │ │ │ │ ├── MangaListItemAD.kt │ │ │ │ │ ├── MangaListListener.kt │ │ │ │ │ ├── QuickFilterAD.kt │ │ │ │ │ ├── QuickFilterClickListener.kt │ │ │ │ │ ├── TipAD.kt │ │ │ │ │ └── TypedListSpacingDecoration.kt │ │ │ │ ├── config/ │ │ │ │ │ ├── ListConfigBottomSheet.kt │ │ │ │ │ ├── ListConfigSection.kt │ │ │ │ │ └── ListConfigViewModel.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── ButtonFooter.kt │ │ │ │ │ ├── EmptyHint.kt │ │ │ │ │ ├── EmptyState.kt │ │ │ │ │ ├── ErrorFooter.kt │ │ │ │ │ ├── ErrorState.kt │ │ │ │ │ ├── InfoModel.kt │ │ │ │ │ ├── ListHeader.kt │ │ │ │ │ ├── ListModel.kt │ │ │ │ │ ├── ListModelExt.kt │ │ │ │ │ ├── LoadingFooter.kt │ │ │ │ │ ├── LoadingState.kt │ │ │ │ │ ├── MangaCompactListModel.kt │ │ │ │ │ ├── MangaDetailedListModel.kt │ │ │ │ │ ├── MangaGridModel.kt │ │ │ │ │ ├── MangaListModel.kt │ │ │ │ │ ├── QuickFilter.kt │ │ │ │ │ └── TipModel.kt │ │ │ │ ├── preview/ │ │ │ │ │ ├── PreviewFragment.kt │ │ │ │ │ └── PreviewViewModel.kt │ │ │ │ └── size/ │ │ │ │ ├── DynamicItemSizeResolver.kt │ │ │ │ ├── ItemSizeResolver.kt │ │ │ │ └── StaticItemSizeResolver.kt │ │ │ ├── local/ │ │ │ │ ├── data/ │ │ │ │ │ ├── CacheDir.kt │ │ │ │ │ ├── Caches.kt │ │ │ │ │ ├── CbzFilter.kt │ │ │ │ │ ├── LocalMangaRepository.kt │ │ │ │ │ ├── LocalStorageCache.kt │ │ │ │ │ ├── LocalStorageManager.kt │ │ │ │ │ ├── MangaIndex.kt │ │ │ │ │ ├── Qualifiers.kt │ │ │ │ │ ├── TempFileFilter.kt │ │ │ │ │ ├── importer/ │ │ │ │ │ │ └── SingleMangaImporter.kt │ │ │ │ │ ├── index/ │ │ │ │ │ │ ├── LocalMangaIndex.kt │ │ │ │ │ │ ├── LocalMangaIndexDao.kt │ │ │ │ │ │ └── LocalMangaIndexEntity.kt │ │ │ │ │ ├── input/ │ │ │ │ │ │ └── LocalMangaParser.kt │ │ │ │ │ └── output/ │ │ │ │ │ ├── LocalMangaDirOutput.kt │ │ │ │ │ ├── LocalMangaOutput.kt │ │ │ │ │ ├── LocalMangaUtil.kt │ │ │ │ │ └── LocalMangaZipOutput.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── DeleteLocalMangaUseCase.kt │ │ │ │ │ ├── DeleteReadChaptersUseCase.kt │ │ │ │ │ ├── LocalObserveMapper.kt │ │ │ │ │ ├── MangaLock.kt │ │ │ │ │ └── model/ │ │ │ │ │ └── LocalManga.kt │ │ │ │ └── ui/ │ │ │ │ ├── ImportDialogFragment.kt │ │ │ │ ├── ImportService.kt │ │ │ │ ├── LocalChaptersRemoveService.kt │ │ │ │ ├── LocalIndexUpdateService.kt │ │ │ │ ├── LocalListFragment.kt │ │ │ │ ├── LocalListMenuProvider.kt │ │ │ │ ├── LocalListViewModel.kt │ │ │ │ ├── LocalStorageCleanupWorker.kt │ │ │ │ └── info/ │ │ │ │ ├── LocalInfoDialog.kt │ │ │ │ └── LocalInfoViewModel.kt │ │ │ ├── main/ │ │ │ │ ├── domain/ │ │ │ │ │ ├── CoverRestoreInterceptor.kt │ │ │ │ │ └── ReadingResumeEnabledUseCase.kt │ │ │ │ └── ui/ │ │ │ │ ├── ExitCallback.kt │ │ │ │ ├── MainActionButtonBehavior.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainMenuProvider.kt │ │ │ │ ├── MainNavigationDelegate.kt │ │ │ │ ├── MainViewModel.kt │ │ │ │ ├── SearchViewLegacyBackCallback.kt │ │ │ │ ├── owners/ │ │ │ │ │ ├── AppBarOwner.kt │ │ │ │ │ ├── BottomNavOwner.kt │ │ │ │ │ ├── BottomSheetOwner.kt │ │ │ │ │ └── SnackbarOwner.kt │ │ │ │ ├── protect/ │ │ │ │ │ ├── AppProtectHelper.kt │ │ │ │ │ ├── ProtectActivity.kt │ │ │ │ │ ├── ProtectViewModel.kt │ │ │ │ │ └── ScreenshotPolicyHelper.kt │ │ │ │ └── welcome/ │ │ │ │ ├── WelcomeSheet.kt │ │ │ │ └── WelcomeViewModel.kt │ │ │ ├── picker/ │ │ │ │ └── ui/ │ │ │ │ ├── PageImagePickActivity.kt │ │ │ │ ├── PageImagePickContract.kt │ │ │ │ ├── PageImagePickViewModel.kt │ │ │ │ ├── manga/ │ │ │ │ │ ├── MangaPickerFragment.kt │ │ │ │ │ └── MangaPickerViewModel.kt │ │ │ │ └── page/ │ │ │ │ ├── PagePickerFragment.kt │ │ │ │ └── PagePickerViewModel.kt │ │ │ ├── reader/ │ │ │ │ ├── data/ │ │ │ │ │ ├── ModelMapping.kt │ │ │ │ │ └── TapGridSettings.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── ChapterPages.kt │ │ │ │ │ ├── ChaptersLoader.kt │ │ │ │ │ ├── DetectReaderModeUseCase.kt │ │ │ │ │ ├── EdgeDetector.kt │ │ │ │ │ ├── PageLoader.kt │ │ │ │ │ ├── ReaderColorFilter.kt │ │ │ │ │ └── TapGridArea.kt │ │ │ │ └── ui/ │ │ │ │ ├── PageLabelFormatter.kt │ │ │ │ ├── PageSaveContract.kt │ │ │ │ ├── PageSaveHelper.kt │ │ │ │ ├── ReaderActionsView.kt │ │ │ │ ├── ReaderActivity.kt │ │ │ │ ├── ReaderContent.kt │ │ │ │ ├── ReaderControlDelegate.kt │ │ │ │ ├── ReaderInfoBarView.kt │ │ │ │ ├── ReaderManager.kt │ │ │ │ ├── ReaderMenuProvider.kt │ │ │ │ ├── ReaderNavigationCallback.kt │ │ │ │ ├── ReaderState.kt │ │ │ │ ├── ReaderToastView.kt │ │ │ │ ├── ReaderViewModel.kt │ │ │ │ ├── ScreenOrientationHelper.kt │ │ │ │ ├── ScrollTimer.kt │ │ │ │ ├── ScrollTimerControlView.kt │ │ │ │ ├── colorfilter/ │ │ │ │ │ ├── ColorFilterConfigActivity.kt │ │ │ │ │ ├── ColorFilterConfigBackPressedDispatcher.kt │ │ │ │ │ └── ColorFilterConfigViewModel.kt │ │ │ │ ├── config/ │ │ │ │ │ ├── ImageServerDelegate.kt │ │ │ │ │ ├── ReaderConfigSheet.kt │ │ │ │ │ └── ReaderSettings.kt │ │ │ │ ├── pager/ │ │ │ │ │ ├── BasePageHolder.kt │ │ │ │ │ ├── BasePagerReaderFragment.kt │ │ │ │ │ ├── BaseReaderAdapter.kt │ │ │ │ │ ├── BaseReaderFragment.kt │ │ │ │ │ ├── ReaderPage.kt │ │ │ │ │ ├── ReaderUiState.kt │ │ │ │ │ ├── doublepage/ │ │ │ │ │ │ ├── DoublePageHolder.kt │ │ │ │ │ │ ├── DoublePageLayoutManager.kt │ │ │ │ │ │ ├── DoublePageSnapHelper.kt │ │ │ │ │ │ ├── DoublePagesAdapter.kt │ │ │ │ │ │ ├── DoubleReaderFragment.kt │ │ │ │ │ │ └── Utils.kt │ │ │ │ │ ├── doublereversed/ │ │ │ │ │ │ └── ReversedDoubleReaderFragment.kt │ │ │ │ │ ├── reversed/ │ │ │ │ │ │ ├── ReversedPageAnimTransformer.kt │ │ │ │ │ │ ├── ReversedPageHolder.kt │ │ │ │ │ │ ├── ReversedPagesAdapter.kt │ │ │ │ │ │ └── ReversedReaderFragment.kt │ │ │ │ │ ├── standard/ │ │ │ │ │ │ ├── NoAnimPageTransformer.kt │ │ │ │ │ │ ├── PageAnimTransformer.kt │ │ │ │ │ │ ├── PageHolder.kt │ │ │ │ │ │ ├── PagerEventSupplier.kt │ │ │ │ │ │ ├── PagerReaderFragment.kt │ │ │ │ │ │ └── PagesAdapter.kt │ │ │ │ │ ├── vertical/ │ │ │ │ │ │ ├── VerticalPageAnimTransformer.kt │ │ │ │ │ │ └── VerticalReaderFragment.kt │ │ │ │ │ ├── vm/ │ │ │ │ │ │ ├── PageState.kt │ │ │ │ │ │ └── PageViewModel.kt │ │ │ │ │ └── webtoon/ │ │ │ │ │ ├── WebtoonAdapter.kt │ │ │ │ │ ├── WebtoonFrameLayout.kt │ │ │ │ │ ├── WebtoonGapsDecoration.kt │ │ │ │ │ ├── WebtoonHolder.kt │ │ │ │ │ ├── WebtoonImageView.kt │ │ │ │ │ ├── WebtoonLayoutManager.kt │ │ │ │ │ ├── WebtoonReaderFragment.kt │ │ │ │ │ ├── WebtoonRecyclerView.kt │ │ │ │ │ └── WebtoonScalingFrame.kt │ │ │ │ └── tapgrid/ │ │ │ │ ├── TapAction.kt │ │ │ │ └── TapGridDispatcher.kt │ │ │ ├── remotelist/ │ │ │ │ └── ui/ │ │ │ │ ├── MangaSearchMenuProvider.kt │ │ │ │ ├── RemoteListFragment.kt │ │ │ │ └── RemoteListViewModel.kt │ │ │ ├── scrobbling/ │ │ │ │ ├── ScrobblingModule.kt │ │ │ │ ├── anilist/ │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── AniListAuthenticator.kt │ │ │ │ │ │ ├── AniListInterceptor.kt │ │ │ │ │ │ ├── AniListRepository.kt │ │ │ │ │ │ └── ScoreFormat.kt │ │ │ │ │ └── domain/ │ │ │ │ │ └── AniListScrobbler.kt │ │ │ │ ├── common/ │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── ScrobblerRepository.kt │ │ │ │ │ │ ├── ScrobblerStorage.kt │ │ │ │ │ │ ├── ScrobblingDao.kt │ │ │ │ │ │ └── ScrobblingEntity.kt │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── Scrobbler.kt │ │ │ │ │ │ ├── ScrobblerAuthRequiredException.kt │ │ │ │ │ │ ├── ScrobblerRepositoryMap.kt │ │ │ │ │ │ └── model/ │ │ │ │ │ │ ├── ScrobblerManga.kt │ │ │ │ │ │ ├── ScrobblerMangaInfo.kt │ │ │ │ │ │ ├── ScrobblerService.kt │ │ │ │ │ │ ├── ScrobblerType.kt │ │ │ │ │ │ ├── ScrobblerUser.kt │ │ │ │ │ │ ├── ScrobblingInfo.kt │ │ │ │ │ │ └── ScrobblingStatus.kt │ │ │ │ │ └── ui/ │ │ │ │ │ ├── ScrobblerAuthHelper.kt │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── ScrobblerConfigActivity.kt │ │ │ │ │ │ ├── ScrobblerConfigViewModel.kt │ │ │ │ │ │ └── adapter/ │ │ │ │ │ │ ├── ScrobblingHeaderAD.kt │ │ │ │ │ │ ├── ScrobblingMangaAD.kt │ │ │ │ │ │ └── ScrobblingMangaAdapter.kt │ │ │ │ │ └── selector/ │ │ │ │ │ ├── ScrobblingSelectorSheet.kt │ │ │ │ │ ├── ScrobblingSelectorViewModel.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── ScrobblerHintAD.kt │ │ │ │ │ │ ├── ScrobblerMangaSelectionDecoration.kt │ │ │ │ │ │ ├── ScrobblerSelectorAdapter.kt │ │ │ │ │ │ └── ScrobblingMangaAD.kt │ │ │ │ │ └── model/ │ │ │ │ │ └── ScrobblerHint.kt │ │ │ │ ├── discord/ │ │ │ │ │ ├── data/ │ │ │ │ │ │ └── DiscordRepository.kt │ │ │ │ │ └── ui/ │ │ │ │ │ ├── DiscordAuthActivity.kt │ │ │ │ │ ├── DiscordRpc.kt │ │ │ │ │ └── DiscordTokenWebClient.kt │ │ │ │ ├── kitsu/ │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── KitsuAuthenticator.kt │ │ │ │ │ │ ├── KitsuInterceptor.kt │ │ │ │ │ │ └── KitsuRepository.kt │ │ │ │ │ ├── domain/ │ │ │ │ │ │ └── KitsuScrobbler.kt │ │ │ │ │ └── ui/ │ │ │ │ │ └── KitsuAuthActivity.kt │ │ │ │ ├── mal/ │ │ │ │ │ ├── data/ │ │ │ │ │ │ ├── MALAuthenticator.kt │ │ │ │ │ │ ├── MALInterceptor.kt │ │ │ │ │ │ └── MALRepository.kt │ │ │ │ │ └── domain/ │ │ │ │ │ └── MALScrobbler.kt │ │ │ │ └── shikimori/ │ │ │ │ ├── data/ │ │ │ │ │ ├── ShikimoriAuthenticator.kt │ │ │ │ │ ├── ShikimoriInterceptor.kt │ │ │ │ │ └── ShikimoriRepository.kt │ │ │ │ └── domain/ │ │ │ │ └── ShikimoriScrobbler.kt │ │ │ ├── search/ │ │ │ │ ├── domain/ │ │ │ │ │ ├── MangaSearchRepository.kt │ │ │ │ │ ├── SearchKind.kt │ │ │ │ │ ├── SearchResults.kt │ │ │ │ │ └── SearchV2Helper.kt │ │ │ │ └── ui/ │ │ │ │ ├── MangaListActivity.kt │ │ │ │ ├── MangaSuggestionsProvider.kt │ │ │ │ ├── multi/ │ │ │ │ │ ├── SearchActivity.kt │ │ │ │ │ ├── SearchMenuProvider.kt │ │ │ │ │ ├── SearchResultsListModel.kt │ │ │ │ │ ├── SearchViewModel.kt │ │ │ │ │ └── adapter/ │ │ │ │ │ ├── SearchAdapter.kt │ │ │ │ │ └── SearchResultsAD.kt │ │ │ │ └── suggestion/ │ │ │ │ ├── SearchSuggestionItemCallback.kt │ │ │ │ ├── SearchSuggestionListener.kt │ │ │ │ ├── SearchSuggestionListenerImpl.kt │ │ │ │ ├── SearchSuggestionMenuProvider.kt │ │ │ │ ├── SearchSuggestionViewModel.kt │ │ │ │ ├── adapter/ │ │ │ │ │ ├── SearchSuggestionAdapter.kt │ │ │ │ │ ├── SearchSuggestionAuthorAD.kt │ │ │ │ │ ├── SearchSuggestionQueryAD.kt │ │ │ │ │ ├── SearchSuggestionQueryHintAD.kt │ │ │ │ │ ├── SearchSuggestionSourceAD.kt │ │ │ │ │ ├── SearchSuggestionSourceTipAD.kt │ │ │ │ │ ├── SearchSuggestionTagsAD.kt │ │ │ │ │ ├── SearchSuggestionTextAD.kt │ │ │ │ │ └── SearchSuggestionsMangaListAD.kt │ │ │ │ └── model/ │ │ │ │ └── SearchSuggestionItem.kt │ │ │ ├── settings/ │ │ │ │ ├── AppearanceSettingsFragment.kt │ │ │ │ ├── DownloadsSettingsFragment.kt │ │ │ │ ├── NotificationSettingsLegacyFragment.kt │ │ │ │ ├── ProxySettingsFragment.kt │ │ │ │ ├── ReaderSettingsFragment.kt │ │ │ │ ├── RootSettingsFragment.kt │ │ │ │ ├── RootSettingsViewModel.kt │ │ │ │ ├── ServicesSettingsFragment.kt │ │ │ │ ├── SettingsActivity.kt │ │ │ │ ├── StorageAndNetworkSettingsFragment.kt │ │ │ │ ├── StorageAndNetworkSettingsViewModel.kt │ │ │ │ ├── SuggestionsSettingsFragment.kt │ │ │ │ ├── SyncSettingsFragment.kt │ │ │ │ ├── about/ │ │ │ │ │ ├── AboutSettingsFragment.kt │ │ │ │ │ ├── AboutSettingsViewModel.kt │ │ │ │ │ ├── AppUpdateActivity.kt │ │ │ │ │ ├── AppUpdateViewModel.kt │ │ │ │ │ └── changelog/ │ │ │ │ │ ├── ChangelogFragment.kt │ │ │ │ │ └── ChangelogViewModel.kt │ │ │ │ ├── discord/ │ │ │ │ │ ├── DiscordSettingsFragment.kt │ │ │ │ │ ├── DiscordSettingsViewModel.kt │ │ │ │ │ └── TokenState.kt │ │ │ │ ├── nav/ │ │ │ │ │ ├── NavConfigFragment.kt │ │ │ │ │ ├── NavConfigViewModel.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ └── NavConfigAD.kt │ │ │ │ │ └── model/ │ │ │ │ │ ├── NavItemAddModel.kt │ │ │ │ │ └── NavItemConfigModel.kt │ │ │ │ ├── override/ │ │ │ │ │ ├── OverrideConfigActivity.kt │ │ │ │ │ └── OverrideConfigViewModel.kt │ │ │ │ ├── protect/ │ │ │ │ │ ├── ProtectSetupActivity.kt │ │ │ │ │ └── ProtectSetupViewModel.kt │ │ │ │ ├── reader/ │ │ │ │ │ ├── ReaderTapGridConfigActivity.kt │ │ │ │ │ └── ReaderTapGridConfigViewModel.kt │ │ │ │ ├── search/ │ │ │ │ │ ├── SettingsItem.kt │ │ │ │ │ ├── SettingsItemAD.kt │ │ │ │ │ ├── SettingsSearchFragment.kt │ │ │ │ │ ├── SettingsSearchHelper.kt │ │ │ │ │ ├── SettingsSearchMenuProvider.kt │ │ │ │ │ └── SettingsSearchViewModel.kt │ │ │ │ ├── sources/ │ │ │ │ │ ├── SourceSettingsExt.kt │ │ │ │ │ ├── SourceSettingsFragment.kt │ │ │ │ │ ├── SourceSettingsViewModel.kt │ │ │ │ │ ├── SourcesSettingsFragment.kt │ │ │ │ │ ├── SourcesSettingsViewModel.kt │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ ├── SourceConfigAdapter.kt │ │ │ │ │ │ ├── SourceConfigAdapterDelegates.kt │ │ │ │ │ │ └── SourceConfigListener.kt │ │ │ │ │ ├── auth/ │ │ │ │ │ │ └── SourceAuthActivity.kt │ │ │ │ │ ├── catalog/ │ │ │ │ │ │ ├── SourceCatalogItem.kt │ │ │ │ │ │ ├── SourceCatalogItemAD.kt │ │ │ │ │ │ ├── SourceCatalogPage.kt │ │ │ │ │ │ ├── SourcesCatalogActivity.kt │ │ │ │ │ │ ├── SourcesCatalogAdapter.kt │ │ │ │ │ │ ├── SourcesCatalogFilter.kt │ │ │ │ │ │ ├── SourcesCatalogMenuProvider.kt │ │ │ │ │ │ └── SourcesCatalogViewModel.kt │ │ │ │ │ ├── manage/ │ │ │ │ │ │ ├── SourcesListProducer.kt │ │ │ │ │ │ ├── SourcesManageFragment.kt │ │ │ │ │ │ └── SourcesManageViewModel.kt │ │ │ │ │ └── model/ │ │ │ │ │ └── SourceConfigItem.kt │ │ │ │ ├── storage/ │ │ │ │ │ ├── DirectoryAD.kt │ │ │ │ │ ├── DirectoryDiffCallback.kt │ │ │ │ │ ├── DirectoryModel.kt │ │ │ │ │ ├── MangaDirectorySelectDialog.kt │ │ │ │ │ ├── MangaDirectorySelectViewModel.kt │ │ │ │ │ ├── RequestStorageManagerPermissionContract.kt │ │ │ │ │ └── directories/ │ │ │ │ │ ├── DirectoryConfigAD.kt │ │ │ │ │ ├── DirectoryConfigDiffCallback.kt │ │ │ │ │ ├── DirectoryConfigModel.kt │ │ │ │ │ ├── MangaDirectoriesActivity.kt │ │ │ │ │ └── MangaDirectoriesViewModel.kt │ │ │ │ ├── tracker/ │ │ │ │ │ ├── TrackerSettingsFragment.kt │ │ │ │ │ ├── TrackerSettingsViewModel.kt │ │ │ │ │ └── categories/ │ │ │ │ │ ├── TrackerCategoriesConfigAdapter.kt │ │ │ │ │ ├── TrackerCategoriesConfigSheet.kt │ │ │ │ │ ├── TrackerCategoriesConfigViewModel.kt │ │ │ │ │ └── TrackerCategoryAD.kt │ │ │ │ ├── userdata/ │ │ │ │ │ ├── BackupsSettingsFragment.kt │ │ │ │ │ ├── BackupsSettingsViewModel.kt │ │ │ │ │ └── storage/ │ │ │ │ │ ├── DataCleanupSettingsFragment.kt │ │ │ │ │ ├── DataCleanupSettingsViewModel.kt │ │ │ │ │ ├── StorageUsage.kt │ │ │ │ │ └── StorageUsagePreference.kt │ │ │ │ ├── utils/ │ │ │ │ │ ├── ActivityListPreference.kt │ │ │ │ │ ├── AutoCompleteTextViewPreference.kt │ │ │ │ │ ├── DozeHelper.kt │ │ │ │ │ ├── EditTextBindListener.kt │ │ │ │ │ ├── EditTextDefaultSummaryProvider.kt │ │ │ │ │ ├── EditTextFallbackSummaryProvider.kt │ │ │ │ │ ├── LinksPreference.kt │ │ │ │ │ ├── MultiAutoCompleteTextViewPreference.kt │ │ │ │ │ ├── MultiSummaryProvider.kt │ │ │ │ │ ├── PasswordSummaryProvider.kt │ │ │ │ │ ├── PercentSummaryProvider.kt │ │ │ │ │ ├── RingtonePickContract.kt │ │ │ │ │ ├── SliderPreference.kt │ │ │ │ │ ├── SplitSwitchPreference.kt │ │ │ │ │ ├── TagsAutoCompleteProvider.kt │ │ │ │ │ ├── ThemeChooserPreference.kt │ │ │ │ │ └── validation/ │ │ │ │ │ ├── DomainValidator.kt │ │ │ │ │ ├── HeaderValidator.kt │ │ │ │ │ ├── PortNumberValidator.kt │ │ │ │ │ └── UrlValidator.kt │ │ │ │ └── work/ │ │ │ │ ├── PeriodicWorkScheduler.kt │ │ │ │ └── WorkScheduleManager.kt │ │ │ ├── stats/ │ │ │ │ ├── data/ │ │ │ │ │ ├── StatsDao.kt │ │ │ │ │ ├── StatsEntity.kt │ │ │ │ │ └── StatsRepository.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── StatsCollector.kt │ │ │ │ │ ├── StatsPeriod.kt │ │ │ │ │ └── StatsRecord.kt │ │ │ │ └── ui/ │ │ │ │ ├── StatsAD.kt │ │ │ │ ├── StatsActivity.kt │ │ │ │ ├── StatsViewModel.kt │ │ │ │ ├── sheet/ │ │ │ │ │ ├── MangaStatsSheet.kt │ │ │ │ │ └── MangaStatsViewModel.kt │ │ │ │ └── views/ │ │ │ │ ├── BarChartView.kt │ │ │ │ └── PieChartView.kt │ │ │ ├── suggestions/ │ │ │ │ ├── data/ │ │ │ │ │ ├── SuggestionDao.kt │ │ │ │ │ ├── SuggestionEntity.kt │ │ │ │ │ └── SuggestionWithManga.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── MangaSuggestion.kt │ │ │ │ │ ├── SuggestionRepository.kt │ │ │ │ │ ├── SuggestionsListQuickFilter.kt │ │ │ │ │ └── TagsBlacklist.kt │ │ │ │ └── ui/ │ │ │ │ ├── SuggestionsActivity.kt │ │ │ │ ├── SuggestionsFragment.kt │ │ │ │ ├── SuggestionsViewModel.kt │ │ │ │ └── SuggestionsWorker.kt │ │ │ ├── sync/ │ │ │ │ ├── data/ │ │ │ │ │ ├── SyncAuthApi.kt │ │ │ │ │ ├── SyncAuthenticator.kt │ │ │ │ │ ├── SyncInterceptor.kt │ │ │ │ │ ├── SyncSettings.kt │ │ │ │ │ └── model/ │ │ │ │ │ ├── FavouriteCategorySyncDto.kt │ │ │ │ │ ├── FavouriteSyncDto.kt │ │ │ │ │ ├── HistorySyncDto.kt │ │ │ │ │ ├── MangaSyncDto.kt │ │ │ │ │ ├── MangaTagSyncDto.kt │ │ │ │ │ └── SyncDto.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── SyncAuthResult.kt │ │ │ │ │ ├── SyncController.kt │ │ │ │ │ └── SyncHelper.kt │ │ │ │ └── ui/ │ │ │ │ ├── SyncAccountAuthenticator.kt │ │ │ │ ├── SyncAdapterEntryPoint.kt │ │ │ │ ├── SyncAuthActivity.kt │ │ │ │ ├── SyncAuthViewModel.kt │ │ │ │ ├── SyncAuthenticatorService.kt │ │ │ │ ├── SyncHostDialogFragment.kt │ │ │ │ ├── SyncProvider.kt │ │ │ │ ├── favourites/ │ │ │ │ │ ├── FavouritesSyncAdapter.kt │ │ │ │ │ ├── FavouritesSyncProvider.kt │ │ │ │ │ └── FavouritesSyncService.kt │ │ │ │ └── history/ │ │ │ │ ├── HistorySyncAdapter.kt │ │ │ │ ├── HistorySyncProvider.kt │ │ │ │ └── HistorySyncService.kt │ │ │ ├── tracker/ │ │ │ │ ├── data/ │ │ │ │ │ ├── EntityMapping.kt │ │ │ │ │ ├── MangaWithTrack.kt │ │ │ │ │ ├── TrackEntity.kt │ │ │ │ │ ├── TrackLogEntity.kt │ │ │ │ │ ├── TrackLogWithManga.kt │ │ │ │ │ ├── TrackWithManga.kt │ │ │ │ │ └── TracksDao.kt │ │ │ │ ├── domain/ │ │ │ │ │ ├── CheckNewChaptersUseCase.kt │ │ │ │ │ ├── GetTracksUseCase.kt │ │ │ │ │ ├── TrackingRepository.kt │ │ │ │ │ ├── UpdatesListQuickFilter.kt │ │ │ │ │ └── model/ │ │ │ │ │ ├── MangaTracking.kt │ │ │ │ │ ├── MangaUpdates.kt │ │ │ │ │ └── TrackingLogItem.kt │ │ │ │ ├── ui/ │ │ │ │ │ ├── debug/ │ │ │ │ │ │ ├── TrackDebugAD.kt │ │ │ │ │ │ ├── TrackDebugItem.kt │ │ │ │ │ │ ├── TrackerDebugActivity.kt │ │ │ │ │ │ └── TrackerDebugViewModel.kt │ │ │ │ │ ├── feed/ │ │ │ │ │ │ ├── FeedFragment.kt │ │ │ │ │ │ ├── FeedMenuProvider.kt │ │ │ │ │ │ ├── FeedViewModel.kt │ │ │ │ │ │ ├── adapter/ │ │ │ │ │ │ │ ├── FeedAdapter.kt │ │ │ │ │ │ │ ├── FeedItemAD.kt │ │ │ │ │ │ │ └── UpdatedMangaAD.kt │ │ │ │ │ │ └── model/ │ │ │ │ │ │ ├── FeedItem.kt │ │ │ │ │ │ └── UpdatedMangaHeader.kt │ │ │ │ │ └── updates/ │ │ │ │ │ ├── UpdatesActivity.kt │ │ │ │ │ ├── UpdatesFragment.kt │ │ │ │ │ └── UpdatesViewModel.kt │ │ │ │ └── work/ │ │ │ │ ├── TrackWorker.kt │ │ │ │ └── TrackerNotificationHelper.kt │ │ │ └── widget/ │ │ │ ├── WidgetUpdater.kt │ │ │ ├── recent/ │ │ │ │ ├── RecentListFactory.kt │ │ │ │ ├── RecentWidgetConfigActivity.kt │ │ │ │ ├── RecentWidgetProvider.kt │ │ │ │ └── RecentWidgetService.kt │ │ │ └── shelf/ │ │ │ ├── ShelfConfigViewModel.kt │ │ │ ├── ShelfListFactory.kt │ │ │ ├── ShelfWidgetConfigActivity.kt │ │ │ ├── ShelfWidgetProvider.kt │ │ │ ├── ShelfWidgetService.kt │ │ │ ├── adapter/ │ │ │ │ ├── CategorySelectAdapter.kt │ │ │ │ └── CategorySelectItemAD.kt │ │ │ └── model/ │ │ │ └── CategoryItem.kt │ │ └── res/ │ │ ├── anim/ │ │ │ ├── bottom_sheet_slide_in.xml │ │ │ └── bottom_sheet_slide_out.xml │ │ ├── color/ │ │ │ ├── bg_background_transparency.xml │ │ │ ├── bg_floating_button.xml │ │ │ ├── bottom_menu_active_indicator.xml │ │ │ ├── bottom_menu_active_item.xml │ │ │ ├── colored_button.xml │ │ │ ├── list_item_background_color.xml │ │ │ ├── list_item_text_color.xml │ │ │ └── selector_overlay.xml │ │ ├── drawable/ │ │ │ ├── avd_explore_enter.xml │ │ │ ├── avd_explore_leave.xml │ │ │ ├── avd_favourites_enter.xml │ │ │ ├── avd_favourites_leave.xml │ │ │ ├── avd_feed_enter.xml │ │ │ ├── avd_history_enter.xml │ │ │ ├── avd_splash.xml │ │ │ ├── bg_appwidget_card.xml │ │ │ ├── bg_appwidget_root.xml │ │ │ ├── bg_badge_accent.xml │ │ │ ├── bg_badge_default.xml │ │ │ ├── bg_badge_empty.xml │ │ │ ├── bg_card.xml │ │ │ ├── bg_chip.xml │ │ │ ├── bg_circle_button.xml │ │ │ ├── bg_list_icons.xml │ │ │ ├── bg_reader_indicator.xml │ │ │ ├── bg_rounded_square.xml │ │ │ ├── bg_rounded_transparency.xml │ │ │ ├── bg_search_suggestion.xml │ │ │ ├── bg_tab_pill.xml │ │ │ ├── custom_selectable_item_background.xml │ │ │ ├── divider_horizontal.xml │ │ │ ├── divider_transparent.xml │ │ │ ├── fastscroll_bubble.xml │ │ │ ├── fastscroll_bubble_small.xml │ │ │ ├── fastscroll_handle.xml │ │ │ ├── fastscroll_track.xml │ │ │ ├── ic_action_pause.xml │ │ │ ├── ic_action_resume.xml │ │ │ ├── ic_action_skip.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_alert_outline.xml │ │ │ ├── ic_anilist.xml │ │ │ ├── ic_app_update.xml │ │ │ ├── ic_appearance.xml │ │ │ ├── ic_arrow_forward.xml │ │ │ ├── ic_auth_key_large.xml │ │ │ ├── ic_auto_fix.xml │ │ │ ├── ic_backup_restore.xml │ │ │ ├── ic_battery_outline.xml │ │ │ ├── ic_book_page.xml │ │ │ ├── ic_bookmark.xml │ │ │ ├── ic_bookmark_added.xml │ │ │ ├── ic_bookmark_checked.xml │ │ │ ├── ic_bookmark_selector.xml │ │ │ ├── ic_bot_large.xml │ │ │ ├── ic_cancel_multiple.xml │ │ │ ├── ic_check.xml │ │ │ ├── ic_clear_all.xml │ │ │ ├── ic_current_chapter.xml │ │ │ ├── ic_data_privacy.xml │ │ │ ├── ic_delete.xml │ │ │ ├── ic_delete_all.xml │ │ │ ├── ic_denied_large.xml │ │ │ ├── ic_dice.xml │ │ │ ├── ic_disable.xml │ │ │ ├── ic_discord.xml │ │ │ ├── ic_download.xml │ │ │ ├── ic_drawer_menu.xml │ │ │ ├── ic_drawer_menu_open.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_empty_common.xml │ │ │ ├── ic_empty_favourites.xml │ │ │ ├── ic_empty_feed.xml │ │ │ ├── ic_empty_history.xml │ │ │ ├── ic_empty_local.xml │ │ │ ├── ic_error_large.xml │ │ │ ├── ic_error_small.xml │ │ │ ├── ic_expand.xml │ │ │ ├── ic_expand_more.xml │ │ │ ├── ic_explore_checked.xml │ │ │ ├── ic_explore_normal.xml │ │ │ ├── ic_explore_selector.xml │ │ │ ├── ic_eye.xml │ │ │ ├── ic_eye_check.xml │ │ │ ├── ic_eye_off.xml │ │ │ ├── ic_favourites_selector.xml │ │ │ ├── ic_feed.xml │ │ │ ├── ic_feed_selector.xml │ │ │ ├── ic_file_zip.xml │ │ │ ├── ic_filter_menu.xml │ │ │ ├── ic_folder_file.xml │ │ │ ├── ic_gesture_vertical.xml │ │ │ ├── ic_grid.xml │ │ │ ├── ic_heart.xml │ │ │ ├── ic_heart_off.xml │ │ │ ├── ic_heart_outline.xml │ │ │ ├── ic_history.xml │ │ │ ├── ic_history_selector.xml │ │ │ ├── ic_images.xml │ │ │ ├── ic_incognito.xml │ │ │ ├── ic_info_outline.xml │ │ │ ├── ic_interaction_large.xml │ │ │ ├── ic_kitsu.xml │ │ │ ├── ic_language.xml │ │ │ ├── ic_list.xml │ │ │ ├── ic_list_detailed.xml │ │ │ ├── ic_list_group.xml │ │ │ ├── ic_lock.xml │ │ │ ├── ic_mal.xml │ │ │ ├── ic_manga_source.xml │ │ │ ├── ic_move_horizontal.xml │ │ │ ├── ic_network_cellular.xml │ │ │ ├── ic_new.xml │ │ │ ├── ic_next.xml │ │ │ ├── ic_notification.xml │ │ │ ├── ic_nsfw.xml │ │ │ ├── ic_off_small.xml │ │ │ ├── ic_offline.xml │ │ │ ├── ic_open_external.xml │ │ │ ├── ic_pin.xml │ │ │ ├── ic_pin_small.xml │ │ │ ├── ic_placeholder.xml │ │ │ ├── ic_play.xml │ │ │ ├── ic_plug_large.xml │ │ │ ├── ic_prev.xml │ │ │ ├── ic_read.xml │ │ │ ├── ic_reader_ltr.xml │ │ │ ├── ic_reader_rtl.xml │ │ │ ├── ic_reader_vertical.xml │ │ │ ├── ic_reorder_handle.xml │ │ │ ├── ic_replace.xml │ │ │ ├── ic_retry.xml │ │ │ ├── ic_revert.xml │ │ │ ├── ic_save.xml │ │ │ ├── ic_save_ok.xml │ │ │ ├── ic_screen_rotation.xml │ │ │ ├── ic_screen_rotation_lock.xml │ │ │ ├── ic_script.xml │ │ │ ├── ic_select_group.xml │ │ │ ├── ic_select_range.xml │ │ │ ├── ic_services.xml │ │ │ ├── ic_settings.xml │ │ │ ├── ic_sfw.xml │ │ │ ├── ic_shikimori.xml │ │ │ ├── ic_shortcut.xml │ │ │ ├── ic_size_large.xml │ │ │ ├── ic_sort_asc.xml │ │ │ ├── ic_sort_desc.xml │ │ │ ├── ic_split_horizontal.xml │ │ │ ├── ic_star_small.xml │ │ │ ├── ic_state_abandoned.xml │ │ │ ├── ic_state_finished.xml │ │ │ ├── ic_state_ongoing.xml │ │ │ ├── ic_storage.xml │ │ │ ├── ic_storage_checked.xml │ │ │ ├── ic_storage_selector.xml │ │ │ ├── ic_suggestion.xml │ │ │ ├── ic_suggestion_checked.xml │ │ │ ├── ic_suggestion_selector.xml │ │ │ ├── ic_sync.xml │ │ │ ├── ic_tag.xml │ │ │ ├── ic_tap.xml │ │ │ ├── ic_tap_reorder.xml │ │ │ ├── ic_timelapse.xml │ │ │ ├── ic_timer.xml │ │ │ ├── ic_timer_run.xml │ │ │ ├── ic_unpin.xml │ │ │ ├── ic_updated.xml │ │ │ ├── ic_updated_checked.xml │ │ │ ├── ic_updated_selector.xml │ │ │ ├── ic_usage.xml │ │ │ ├── ic_user.xml │ │ │ ├── ic_voice_input.xml │ │ │ ├── ic_web.xml │ │ │ ├── ic_welcome.xml │ │ │ ├── ic_zoom_in.xml │ │ │ ├── ic_zoom_out.xml │ │ │ ├── list_selector.xml │ │ │ ├── m3_popup_background.xml │ │ │ ├── m3_spinner_popup_background.xml │ │ │ ├── search_bar_background.xml │ │ │ └── tabs_background.xml │ │ ├── drawable-anydpi-v24/ │ │ │ ├── ic_bot.xml │ │ │ ├── ic_stat_auto_fix.xml │ │ │ ├── ic_stat_book_plus.xml │ │ │ ├── ic_stat_done.xml │ │ │ ├── ic_stat_paused.xml │ │ │ └── ic_stat_suggestion.xml │ │ ├── drawable-night/ │ │ │ └── avd_splash.xml │ │ ├── layout/ │ │ │ ├── activity_alternatives.xml │ │ │ ├── activity_app_update.xml │ │ │ ├── activity_appwidget_recent.xml │ │ │ ├── activity_appwidget_shelf.xml │ │ │ ├── activity_browser.xml │ │ │ ├── activity_categories.xml │ │ │ ├── activity_category_edit.xml │ │ │ ├── activity_color_filter.xml │ │ │ ├── activity_container.xml │ │ │ ├── activity_details.xml │ │ │ ├── activity_downloads.xml │ │ │ ├── activity_image.xml │ │ │ ├── activity_kitsu_auth.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_manga_directories.xml │ │ │ ├── activity_manga_list.xml │ │ │ ├── activity_override_edit.xml │ │ │ ├── activity_picker.xml │ │ │ ├── activity_protect.xml │ │ │ ├── activity_reader.xml │ │ │ ├── activity_reader_tap_actions.xml │ │ │ ├── activity_scrobbler_config.xml │ │ │ ├── activity_search.xml │ │ │ ├── activity_settings.xml │ │ │ ├── activity_setup_protect.xml │ │ │ ├── activity_sources_catalog.xml │ │ │ ├── activity_stats.xml │ │ │ ├── activity_sync_auth.xml │ │ │ ├── activity_tracker_debug.xml │ │ │ ├── dialog_checkbox.xml │ │ │ ├── dialog_directory_select.xml │ │ │ ├── dialog_download.xml │ │ │ ├── dialog_error_details.xml │ │ │ ├── dialog_favorite.xml │ │ │ ├── dialog_import.xml │ │ │ ├── dialog_local_info.xml │ │ │ ├── dialog_progress.xml │ │ │ ├── dialog_restore.xml │ │ │ ├── dialog_two_buttons.xml │ │ │ ├── fast_scroller.xml │ │ │ ├── fragment_changelog.xml │ │ │ ├── fragment_chapters.xml │ │ │ ├── fragment_explore.xml │ │ │ ├── fragment_favourites_container.xml │ │ │ ├── fragment_filter_header.xml │ │ │ ├── fragment_list.xml │ │ │ ├── fragment_list_simple.xml │ │ │ ├── fragment_manga_bookmarks.xml │ │ │ ├── fragment_pages.xml │ │ │ ├── fragment_preview.xml │ │ │ ├── fragment_reader_double.xml │ │ │ ├── fragment_reader_pager.xml │ │ │ ├── fragment_reader_webtoon.xml │ │ │ ├── fragment_search_suggestion.xml │ │ │ ├── fragment_settings_sources.xml │ │ │ ├── item_bookmark_large.xml │ │ │ ├── item_button_footer.xml │ │ │ ├── item_categories_all.xml │ │ │ ├── item_category.xml │ │ │ ├── item_category_checkable.xml │ │ │ ├── item_category_checkable_multiple.xml │ │ │ ├── item_category_checkable_single.xml │ │ │ ├── item_chapter.xml │ │ │ ├── item_chapter_download.xml │ │ │ ├── item_chapter_grid.xml │ │ │ ├── item_checkable_multiple.xml │ │ │ ├── item_checkable_new.xml │ │ │ ├── item_checkable_single.xml │ │ │ ├── item_color_scheme.xml │ │ │ ├── item_download.xml │ │ │ ├── item_empty_card.xml │ │ │ ├── item_empty_hint.xml │ │ │ ├── item_empty_state.xml │ │ │ ├── item_error_footer.xml │ │ │ ├── item_error_state.xml │ │ │ ├── item_explore_buttons.xml │ │ │ ├── item_explore_source_grid.xml │ │ │ ├── item_explore_source_list.xml │ │ │ ├── item_feed.xml │ │ │ ├── item_header.xml │ │ │ ├── item_info.xml │ │ │ ├── item_list_group.xml │ │ │ ├── item_loading_footer.xml │ │ │ ├── item_loading_state.xml │ │ │ ├── item_manga_alternative.xml │ │ │ ├── item_manga_grid.xml │ │ │ ├── item_manga_list.xml │ │ │ ├── item_manga_list_details.xml │ │ │ ├── item_nav_available.xml │ │ │ ├── item_nav_config.xml │ │ │ ├── item_page.xml │ │ │ ├── item_page_thumb.xml │ │ │ ├── item_page_webtoon.xml │ │ │ ├── item_preference.xml │ │ │ ├── item_quick_filter.xml │ │ │ ├── item_recent.xml │ │ │ ├── item_recommendation.xml │ │ │ ├── item_recommendation_manga.xml │ │ │ ├── item_scrobbling_info.xml │ │ │ ├── item_scrobbling_manga.xml │ │ │ ├── item_search_suggestion_manga_grid.xml │ │ │ ├── item_search_suggestion_manga_list.xml │ │ │ ├── item_search_suggestion_query.xml │ │ │ ├── item_search_suggestion_query_hint.xml │ │ │ ├── item_search_suggestion_source.xml │ │ │ ├── item_search_suggestion_source_tip.xml │ │ │ ├── item_search_suggestion_tags.xml │ │ │ ├── item_search_suggestion_text.xml │ │ │ ├── item_shelf.xml │ │ │ ├── item_source_catalog.xml │ │ │ ├── item_source_config.xml │ │ │ ├── item_sources_empty.xml │ │ │ ├── item_stats.xml │ │ │ ├── item_storage.xml │ │ │ ├── item_storage_config.xml │ │ │ ├── item_storage_config2.xml │ │ │ ├── item_tip.xml │ │ │ ├── item_tip2.xml │ │ │ ├── item_track_debug.xml │ │ │ ├── layout_details_table.xml │ │ │ ├── layout_page_info.xml │ │ │ ├── layout_reader_actions.xml │ │ │ ├── layout_sheet_header_adaptive.xml │ │ │ ├── navigation_rail_fab.xml │ │ │ ├── preference_dialog_autocompletetextview.xml │ │ │ ├── preference_dialog_multiautocompletetextview.xml │ │ │ ├── preference_memory_usage.xml │ │ │ ├── preference_slider.xml │ │ │ ├── preference_split_switch.xml │ │ │ ├── preference_theme.xml │ │ │ ├── preference_toggle_header.xml │ │ │ ├── preference_widget_material_switch.xml │ │ │ ├── sheet_base.xml │ │ │ ├── sheet_chapters_pages.xml │ │ │ ├── sheet_filter.xml │ │ │ ├── sheet_list_mode.xml │ │ │ ├── sheet_reader_config.xml │ │ │ ├── sheet_scrobbling.xml │ │ │ ├── sheet_scrobbling_selector.xml │ │ │ ├── sheet_stats_manga.xml │ │ │ ├── sheet_tags.xml │ │ │ ├── sheet_welcome.xml │ │ │ ├── view_cover_stack.xml │ │ │ ├── view_dialog_autocomplete.xml │ │ │ ├── view_filter_field.xml │ │ │ ├── view_scroll_timer.xml │ │ │ ├── view_tip.xml │ │ │ ├── view_two_lines_item.xml │ │ │ ├── view_zoom.xml │ │ │ ├── widget_recent.xml │ │ │ └── widget_shelf.xml │ │ ├── layout-land/ │ │ │ └── item_empty_state.xml │ │ ├── layout-w600dp-land/ │ │ │ ├── activity_color_filter.xml │ │ │ ├── activity_container.xml │ │ │ ├── activity_details.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_manga_list.xml │ │ │ ├── activity_reader.xml │ │ │ ├── activity_settings.xml │ │ │ ├── activity_stats.xml │ │ │ └── fragment_settings_sources.xml │ │ ├── menu/ │ │ │ ├── mode_bookmarks.xml │ │ │ ├── mode_category.xml │ │ │ ├── mode_chapters.xml │ │ │ ├── mode_downloads.xml │ │ │ ├── mode_favourites.xml │ │ │ ├── mode_history.xml │ │ │ ├── mode_local.xml │ │ │ ├── mode_pages.xml │ │ │ ├── mode_remote.xml │ │ │ ├── mode_source.xml │ │ │ ├── mode_updates.xml │ │ │ ├── opt_browser.xml │ │ │ ├── opt_captcha.xml │ │ │ ├── opt_chapters.xml │ │ │ ├── opt_details.xml │ │ │ ├── opt_downloads.xml │ │ │ ├── opt_explore.xml │ │ │ ├── opt_favourites_container.xml │ │ │ ├── opt_feed.xml │ │ │ ├── opt_history.xml │ │ │ ├── opt_image.xml │ │ │ ├── opt_list.xml │ │ │ ├── opt_list_remote.xml │ │ │ ├── opt_local.xml │ │ │ ├── opt_main.xml │ │ │ ├── opt_pages.xml │ │ │ ├── opt_reader.xml │ │ │ ├── opt_scrobbling.xml │ │ │ ├── opt_search.xml │ │ │ ├── opt_search_kind.xml │ │ │ ├── opt_search_suggestion.xml │ │ │ ├── opt_shiki_selector.xml │ │ │ ├── opt_sources.xml │ │ │ ├── opt_sources_catalog.xml │ │ │ ├── opt_stats.xml │ │ │ ├── opt_suggestions.xml │ │ │ ├── opt_tap_grid_config.xml │ │ │ ├── popup_fav_tab.xml │ │ │ ├── popup_fav_tab_all.xml │ │ │ ├── popup_read.xml │ │ │ ├── popup_saved_filter.xml │ │ │ └── popup_source_config.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── raw/ │ │ │ ├── keep.xml │ │ │ └── tags_warnlist │ │ ├── values/ │ │ │ ├── arrays.xml │ │ │ ├── attrs.xml │ │ │ ├── bools.xml │ │ │ ├── colors.xml │ │ │ ├── colors_kotatsu.xml │ │ │ ├── colors_themed.xml │ │ │ ├── constants.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── integers.xml │ │ │ ├── plurals.xml │ │ │ ├── strings.xml │ │ │ ├── styles.xml │ │ │ ├── themes.xml │ │ │ └── themes_colored.xml │ │ ├── values-ab/ │ │ │ └── plurals.xml │ │ ├── values-ar/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-arq/ │ │ │ └── plurals.xml │ │ ├── values-arz/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-as/ │ │ │ └── plurals.xml │ │ ├── values-b+yue+Hant/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-bci/ │ │ │ └── plurals.xml │ │ ├── values-be/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-bn/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ca/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ckb/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-cs/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-el/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-en-rGB/ │ │ │ └── strings.xml │ │ ├── values-enm/ │ │ │ └── plurals.xml │ │ ├── values-es/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-et/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-eu/ │ │ │ └── plurals.xml │ │ ├── values-fa/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-fi/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-fil/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-frp/ │ │ │ └── plurals.xml │ │ ├── values-got/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-gu/ │ │ │ └── strings.xml │ │ ├── values-hi/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-hr/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-hu/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-in/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-it/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-iw/ │ │ │ └── plurals.xml │ │ ├── values-ja/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-jv/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-kk/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-km/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ko/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ldrtl/ │ │ │ └── strings.xml │ │ ├── values-lt/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-lv/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-lzh/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ml/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ms/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-my/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-nb-rNO/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ne/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-night/ │ │ │ ├── bools.xml │ │ │ ├── colors.xml │ │ │ ├── colors_kotatsu.xml │ │ │ ├── colors_themed.xml │ │ │ └── themes.xml │ │ ├── values-night-v31/ │ │ │ └── themes.xml │ │ ├── values-nl/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-nn/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-or/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-pa/ │ │ │ └── strings.xml │ │ ├── values-pa-rPK/ │ │ │ └── strings.xml │ │ ├── values-pl/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-pt/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ro/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-ru/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-si/ │ │ │ └── strings.xml │ │ ├── values-sr/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-sv/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-sw360dp/ │ │ │ └── bools.xml │ │ ├── values-ta/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-te/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-th/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-tr/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-uk/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-v27/ │ │ │ ├── bools.xml │ │ │ └── themes.xml │ │ ├── values-v31/ │ │ │ ├── dimens.xml │ │ │ └── themes.xml │ │ ├── values-v33/ │ │ │ └── bools.xml │ │ ├── values-vi/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-w600dp-land/ │ │ │ ├── bools.xml │ │ │ ├── dimens.xml │ │ │ └── integers.xml │ │ ├── values-zh-rCN/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ ├── values-zh-rTW/ │ │ │ ├── plurals.xml │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── authenticator_sync.xml │ │ ├── backup_content.xml │ │ ├── backup_rules.xml │ │ ├── filepaths.xml │ │ ├── locales_config.xml │ │ ├── network_security_config.xml │ │ ├── pref_about.xml │ │ ├── pref_appearance.xml │ │ ├── pref_backup_periodic.xml │ │ ├── pref_backups.xml │ │ ├── pref_data_cleanup.xml │ │ ├── pref_discord.xml │ │ ├── pref_downloads.xml │ │ ├── pref_network_storage.xml │ │ ├── pref_notifications.xml │ │ ├── pref_proxy.xml │ │ ├── pref_reader.xml │ │ ├── pref_root.xml │ │ ├── pref_services.xml │ │ ├── pref_source.xml │ │ ├── pref_source_parser.xml │ │ ├── pref_sources.xml │ │ ├── pref_suggestions.xml │ │ ├── pref_sync.xml │ │ ├── pref_sync_header.xml │ │ ├── pref_tracker.xml │ │ ├── remote_action.xml │ │ ├── sync_favourites.xml │ │ ├── sync_history.xml │ │ ├── widget_recent.xml │ │ └── widget_shelf.xml │ ├── nightly/ │ │ ├── kotlin/ │ │ │ └── org/ │ │ │ └── koitharu/ │ │ │ └── kotatsu/ │ │ │ ├── KotatsuApp.kt │ │ │ ├── core/ │ │ │ │ ├── network/ │ │ │ │ │ └── CurlLoggingInterceptor.kt │ │ │ │ ├── parser/ │ │ │ │ │ └── TestMangaRepository.kt │ │ │ │ ├── ui/ │ │ │ │ │ └── BaseService.kt │ │ │ │ └── util/ │ │ │ │ └── ext/ │ │ │ │ └── Debug.kt │ │ │ └── settings/ │ │ │ └── DebugSettingsFragment.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ └── ic_debug.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── bools.xml │ │ │ ├── constants.xml │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── pref_debug.xml │ │ └── pref_root_debug.xml │ ├── release/ │ │ ├── kotlin/ │ │ │ └── org/ │ │ │ └── koitharu/ │ │ │ └── kotatsu/ │ │ │ ├── KotatsuApp.kt │ │ │ └── core/ │ │ │ ├── network/ │ │ │ │ └── CurlLoggingInterceptor.kt │ │ │ ├── parser/ │ │ │ │ └── TestMangaRepository.kt │ │ │ ├── ui/ │ │ │ │ └── BaseService.kt │ │ │ └── util/ │ │ │ └── ext/ │ │ │ └── Debug.kt │ │ └── res/ │ │ ├── values/ │ │ │ └── bools.xml │ │ └── xml/ │ │ └── pref_root_debug.xml │ └── test/ │ └── kotlin/ │ └── org/ │ └── koitharu/ │ └── kotatsu/ │ ├── core/ │ │ └── github/ │ │ └── VersionIdTest.kt │ ├── reader/ │ │ └── domain/ │ │ └── ChapterPagesTest.kt │ └── util/ │ └── MultiMutexTest.kt ├── build.gradle ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── metadata/ │ ├── en-US/ │ │ ├── full_description.txt │ │ └── short_description.txt │ ├── ru/ │ │ ├── full_description.txt │ │ └── short_description.txt │ └── vi/ │ ├── full_description.txt │ └── short_description.txt └── settings.gradle