gitextract_bolm891h/ ├── .github/ │ └── workflows/ │ ├── android.yml │ └── apk.yml ├── .gitignore ├── .idea/ │ └── copyright/ │ ├── gplv3.xml │ └── profiles_settings.xml ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── io/ │ │ └── github/ │ │ └── yamin8000/ │ │ └── owl/ │ │ ├── core/ │ │ │ └── App.kt │ │ └── ui/ │ │ ├── BaseActivity.kt │ │ ├── MainActivity.kt │ │ ├── OverlayActivity.kt │ │ └── navigation/ │ │ └── Nav.kt │ └── res/ │ ├── drawable/ │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ ├── mipmap-anydpi-v26/ │ │ └── ic_launcher.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ └── themes.xml │ └── values-night/ │ └── themes.xml ├── build.gradle.kts ├── common/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── debug/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── yamin8000/ │ │ └── owl/ │ │ └── common/ │ │ └── CrudContentPreview.kt │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── io/ │ │ └── github/ │ │ └── yamin8000/ │ │ └── owl/ │ │ └── common/ │ │ ├── di/ │ │ │ └── CommonModule.kt │ │ ├── ui/ │ │ │ ├── components/ │ │ │ │ ├── AppText.kt │ │ │ │ ├── ClickableIcon.kt │ │ │ │ ├── DeleteMenu.kt │ │ │ │ ├── EmptyList.kt │ │ │ │ ├── HighlightText.kt │ │ │ │ ├── MySnackbar.kt │ │ │ │ ├── Ripple.kt │ │ │ │ ├── ScaffoldWithTitle.kt │ │ │ │ ├── Texts.kt │ │ │ │ └── crud/ │ │ │ │ ├── CrudContent.kt │ │ │ │ ├── CrudItem.kt │ │ │ │ ├── RemovableCard.kt │ │ │ │ └── RemoveAllContent.kt │ │ │ └── theme/ │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Sizes.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── util/ │ │ ├── Constants.kt │ │ ├── ContextUtils.kt │ │ ├── DateTimeUtils.kt │ │ ├── LocalTTS.kt │ │ ├── LocaleUtils.kt │ │ ├── StringUtils.kt │ │ ├── TTS.kt │ │ └── Utility.kt │ └── res/ │ └── raw/ │ └── empty_list.json ├── datastore/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── io/ │ └── github/ │ └── yamin8000/ │ └── owl/ │ └── datastore/ │ ├── data/ │ │ ├── datasource/ │ │ │ └── Datastore.kt │ │ └── repository/ │ │ ├── BasicDatastoreRepository.kt │ │ ├── FavouriteDatastoreRepository.kt │ │ ├── HistoryDatastoreRepository.kt │ │ └── SettingsDatastoreRepository.kt │ ├── di/ │ │ └── DatastoreModule.kt │ └── domain/ │ ├── model/ │ │ ├── SettingsKeys.kt │ │ └── ThemeType.kt │ ├── repository/ │ │ ├── BaseDatastoreRepository.kt │ │ ├── FavouriteRepository.kt │ │ ├── HistoryRepository.kt │ │ └── SettingsRepository.kt │ └── usecase/ │ ├── favourites/ │ │ ├── AddFavourite.kt │ │ ├── FavouriteUseCases.kt │ │ ├── GetAllFavourite.kt │ │ ├── RemoveAllFavourite.kt │ │ └── RemoveFavourite.kt │ ├── history/ │ │ ├── AddHistory.kt │ │ ├── GetAllHistory.kt │ │ ├── HistoryUseCases.kt │ │ ├── RemoveAllHistory.kt │ │ └── RemoveHistory.kt │ └── settings/ │ ├── GetStartingBlank.kt │ ├── GetTTS.kt │ ├── GetTheme.kt │ ├── GetVibration.kt │ ├── SetStartingBlank.kt │ ├── SetTTS.kt │ ├── SetTheme.kt │ ├── SetVibration.kt │ └── SettingUseCases.kt ├── fastlane/ │ └── metadata/ │ └── android/ │ └── en-US/ │ ├── changelogs/ │ │ ├── 34.txt │ │ ├── 35.txt │ │ ├── 36.txt │ │ ├── 38.txt │ │ ├── 42.txt │ │ ├── 43.txt │ │ └── 44.txt │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt ├── feature_about/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── kotlin/ │ │ └── io/ │ │ └── github/ │ │ └── yamin8000/ │ │ └── owl/ │ │ └── feature_about/ │ │ ├── data/ │ │ │ ├── datasource/ │ │ │ │ └── remote/ │ │ │ │ ├── GithubAPIs.kt │ │ │ │ └── dto/ │ │ │ │ ├── ContributorDto.kt │ │ │ │ ├── ReleaseDto.kt │ │ │ │ └── RepositoryDto.kt │ │ │ └── repository/ │ │ │ └── GithubWebRepoRepository.kt │ │ ├── di/ │ │ │ └── AboutModule.kt │ │ ├── domain/ │ │ │ ├── Contributor.kt │ │ │ ├── ContributorType.kt │ │ │ ├── Release.kt │ │ │ ├── Repository.kt │ │ │ └── repository/ │ │ │ └── GithubRepoRepository.kt │ │ └── ui/ │ │ ├── About.kt │ │ ├── AboutAction.kt │ │ ├── AboutState.kt │ │ ├── AboutTab.kt │ │ ├── AboutViewModel.kt │ │ ├── UiContributor.kt │ │ ├── components/ │ │ │ ├── ContributionsBar.kt │ │ │ └── ContributorItem.kt │ │ └── tabs/ │ │ ├── AboutContributors.kt │ │ ├── AboutInfo.kt │ │ └── AboutLicense.kt │ └── res/ │ └── drawable/ │ ├── broken_image_48px.xml │ ├── ic_gplv3.xml │ └── image_48px.xml ├── feature_favourites/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── io/ │ └── github/ │ └── yamin8000/ │ └── owl/ │ └── feature_favourites/ │ ├── FavouriteEvent.kt │ ├── FavouriteState.kt │ ├── Favourites.kt │ └── FavouritesViewModel.kt ├── feature_history/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── io/ │ └── github/ │ └── yamin8000/ │ └── karlancer/ │ └── feature_history/ │ └── ui/ │ ├── History.kt │ ├── HistoryEvent.kt │ ├── HistoryState.kt │ └── HistoryViewModel.kt ├── feature_home/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── debug/ │ │ └── java/ │ │ └── io/ │ │ └── github/ │ │ └── yamin8000/ │ │ └── owl/ │ │ └── feature_home/ │ │ └── ui/ │ │ └── Previews.kt │ └── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── io/ │ │ └── github/ │ │ └── yamin8000/ │ │ └── owl/ │ │ └── feature_home/ │ │ ├── data/ │ │ │ └── repository/ │ │ │ └── TermSuggesterRepositoryImpl.kt │ │ ├── di/ │ │ │ ├── HomeModule.kt │ │ │ ├── HomeUseCases.kt │ │ │ └── HomeViewModelFactory.kt │ │ ├── domain/ │ │ │ ├── repository/ │ │ │ │ └── TermSuggesterRepository.kt │ │ │ └── usecase/ │ │ │ └── GetRandomWord.kt │ │ └── ui/ │ │ ├── Home.kt │ │ ├── HomeAction.kt │ │ ├── HomeState.kt │ │ ├── HomeViewModel.kt │ │ ├── components/ │ │ │ ├── HomeTopBar.kt │ │ │ ├── SearchList.kt │ │ │ └── bottom_app_bar/ │ │ │ ├── BottomAppBarDuringSearch.kt │ │ │ ├── HomeBottomBar.kt │ │ │ ├── NormalBottomAppBar.kt │ │ │ ├── RainbowWavyLinearProgress.kt │ │ │ └── SuggestionsChips.kt │ │ └── util/ │ │ ├── HomeSnackbarType.kt │ │ ├── ShareUtils.kt │ │ └── Utils.kt │ └── res/ │ └── raw/ │ └── basic2000.txt ├── feature_overlay/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── io/ │ └── github/ │ └── yamin8000/ │ └── owl/ │ └── feature_overlay/ │ ├── di/ │ │ └── OverlayViewModelFactory.kt │ └── ui/ │ ├── OverlayWindow.kt │ ├── OverlayWindowState.kt │ ├── OverlayWindowViewModel.kt │ └── components/ │ ├── ButtonsRow.kt │ └── SearchList.kt ├── feature_settings/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── io/ │ └── github/ │ └── yamin8000/ │ └── owl/ │ └── feature_settings/ │ └── ui/ │ ├── Settings.kt │ ├── SettingsAction.kt │ ├── SettingsState.kt │ ├── SettingsViewModel.kt │ ├── components/ │ │ ├── GeneralSettings.kt │ │ ├── SettingsItem.kt │ │ ├── SettingsItemCard.kt │ │ ├── SwitchItem.kt │ │ ├── SwitchWithText.kt │ │ ├── theme/ │ │ │ ├── DynamicThemeNotice.kt │ │ │ ├── ThemeChangerDialog.kt │ │ │ └── ThemeSetting.kt │ │ └── tts/ │ │ ├── TtsLanguageItem.kt │ │ ├── TtsLanguageSetting.kt │ │ └── TtsLanguagesDialog.kt │ └── utils/ │ └── Utility.kt ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── renovate.json ├── search/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── schemas/ │ │ └── io.github.yamin8000.owl.search.data.datasource.local.AppDatabase/ │ │ ├── 1.json │ │ ├── 2.json │ │ ├── 3.json │ │ ├── 4.json │ │ ├── 5.json │ │ ├── 6.json │ │ ├── 7.json │ │ └── 8.json │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── io/ │ └── github/ │ └── yamin8000/ │ └── owl/ │ └── search/ │ ├── data/ │ │ ├── datasource/ │ │ │ ├── local/ │ │ │ │ ├── AppDatabase.kt │ │ │ │ ├── dao/ │ │ │ │ │ ├── AdvancedDao.kt │ │ │ │ │ ├── BaseDao.kt │ │ │ │ │ └── DAOs.kt │ │ │ │ └── entity/ │ │ │ │ ├── AntonymEntity.kt │ │ │ │ ├── DefinitionEntity.kt │ │ │ │ ├── EntryEntity.kt │ │ │ │ ├── MeaningEntity.kt │ │ │ │ ├── PhoneticEntity.kt │ │ │ │ ├── SynonymEntity.kt │ │ │ │ └── TermEntity.kt │ │ │ └── remote/ │ │ │ ├── FreeDictionaryAPI.kt │ │ │ └── dto/ │ │ │ ├── DefinitionDto.kt │ │ │ ├── EntryDto.kt │ │ │ ├── LicenseDto.kt │ │ │ ├── MeaningDto.kt │ │ │ └── PhoneticDto.kt │ │ └── repository/ │ │ ├── local/ │ │ │ ├── BaseRoomRepository.kt │ │ │ ├── DefinitionRoomRepository.kt │ │ │ ├── EntryRoomRepository.kt │ │ │ ├── MeaningRoomRepository.kt │ │ │ ├── PhoneticRoomRepository.kt │ │ │ └── TermRoomRepository.kt │ │ └── remote/ │ │ └── FreeDictionaryRetrofitApiRepository.kt │ ├── di/ │ │ ├── SearchDb.kt │ │ ├── SearchUseCases.kt │ │ └── SearchWeb.kt │ ├── domain/ │ │ ├── model/ │ │ │ ├── Definition.kt │ │ │ ├── Entry.kt │ │ │ ├── License.kt │ │ │ ├── Meaning.kt │ │ │ └── Phonetic.kt │ │ ├── repository/ │ │ │ ├── local/ │ │ │ │ ├── DefinitionRepository.kt │ │ │ │ ├── EntryRepository.kt │ │ │ │ ├── MeaningRepository.kt │ │ │ │ ├── PhoneticRepository.kt │ │ │ │ ├── TermRepository.kt │ │ │ │ └── util/ │ │ │ │ ├── BaseRepository.kt │ │ │ │ └── HasEntry.kt │ │ │ └── remote/ │ │ │ └── FreeDictionaryApiRepository.kt │ │ └── usecase/ │ │ ├── CacheWord.kt │ │ ├── CacheWordData.kt │ │ ├── GetCachedWord.kt │ │ ├── SearchFreeDictionary.kt │ │ └── WordCacheUseCases.kt │ └── ui/ │ └── components/ │ ├── MeaningCard.kt │ ├── WordCard.kt │ └── texts/ │ ├── PronunciationText.kt │ ├── WordDefinitionText.kt │ ├── WordExampleText.kt │ ├── WordText.kt │ └── WordTypeText.kt ├── settings.gradle.kts └── strings/ ├── .gitignore ├── build.gradle.kts └── src/ └── main/ ├── AndroidManifest.xml └── res/ ├── values/ │ └── strings.xml ├── values-fa/ │ └── strings.xml ├── values-hi/ │ └── strings.xml ├── values-hu/ │ └── strings.xml └── values-ja/ └── strings.xml