├── .editorconfig ├── .github ├── CODEOWNERS ├── ci-gradle.properties └── workflows │ └── ci.yml ├── .gitignore ├── .lint └── lint.xml ├── Makefile ├── README.md ├── apk ├── release │ └── app-release.aab └── vivy-release.apks ├── app ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro └── src │ ├── androidTest │ └── kotlin │ │ └── io │ │ └── github │ │ └── nuhkoca │ │ └── vivy │ │ ├── InstrumentedTestSuite.kt │ │ ├── db │ │ └── VivyDBTest.kt │ │ ├── ui │ │ ├── MainActivityRobot.kt │ │ ├── MainActivityTest.kt │ │ └── doctors │ │ │ ├── DoctorsFragmentRobot.kt │ │ │ └── DoctorsFragmentTest.kt │ │ └── util │ │ └── DataBindingIdlingResource.kt │ ├── main │ ├── AndroidManifest.xml │ ├── ic_launcher-playstore.png │ ├── kotlin │ │ └── io │ │ │ └── github │ │ │ └── nuhkoca │ │ │ └── vivy │ │ │ ├── ApplicationObserver.kt │ │ │ ├── VivyApplication.kt │ │ │ ├── binding │ │ │ ├── adapters │ │ │ │ ├── ImageBindingAdapter.kt │ │ │ │ └── TextBindingAdapter.kt │ │ │ └── di │ │ │ │ ├── BindingComponent.kt │ │ │ │ └── BindingModule.kt │ │ │ ├── data │ │ │ ├── model │ │ │ │ ├── Listing.kt │ │ │ │ ├── Location.kt │ │ │ │ ├── inline │ │ │ │ │ ├── Latitude.kt │ │ │ │ │ └── Longitude.kt │ │ │ │ ├── raw │ │ │ │ │ ├── Doctor.kt │ │ │ │ │ └── Doctors.kt │ │ │ │ └── view │ │ │ │ │ ├── DoctorViewItem.kt │ │ │ │ │ └── DoctorsViewItem.kt │ │ │ ├── service │ │ │ │ └── DoctorsService.kt │ │ │ └── verifier │ │ │ │ └── VivyHostnameVerifier.kt │ │ │ ├── db │ │ │ ├── VivyDB.kt │ │ │ ├── converters │ │ │ │ ├── DateTimeConverter.kt │ │ │ │ └── LocationConverter.kt │ │ │ ├── dao │ │ │ │ └── DoctorsDao.kt │ │ │ └── di │ │ │ │ └── DatabaseModule.kt │ │ │ ├── di │ │ │ ├── AppComponent.kt │ │ │ ├── AppModule.kt │ │ │ └── factory │ │ │ │ ├── VivyFragmentFactory.kt │ │ │ │ └── VivyViewModelFactory.kt │ │ │ ├── domain │ │ │ ├── boundary │ │ │ │ └── DoctorsBoundaryCallback.kt │ │ │ ├── mapper │ │ │ │ └── DoctorsViewItemMapper.kt │ │ │ └── repository │ │ │ │ ├── DoctorsRepository.kt │ │ │ │ └── Repository.kt │ │ │ ├── ui │ │ │ ├── MainActivity.kt │ │ │ ├── NavHostFragment.kt │ │ │ ├── Searchable.kt │ │ │ ├── detail │ │ │ │ └── DoctorDetailFragment.kt │ │ │ ├── di │ │ │ │ ├── MainComponent.kt │ │ │ │ └── MainModule.kt │ │ │ └── doctors │ │ │ │ ├── DoctorsFragment.kt │ │ │ │ ├── DoctorsViewModel.kt │ │ │ │ └── adapter │ │ │ │ ├── DoctorsAdapter.kt │ │ │ │ ├── DoctorsLoadStateAdapter.kt │ │ │ │ └── RecentDoctorsAdapter.kt │ │ │ └── util │ │ │ ├── coroutines │ │ │ ├── DefaultDispatcherProvider.kt │ │ │ └── DispatcherProvider.kt │ │ │ ├── delegates │ │ │ ├── ActivityViewBindingDelegate.kt │ │ │ ├── FragmentViewBindingDelegate.kt │ │ │ └── ViewHolderBindingDelegate.kt │ │ │ ├── event │ │ │ └── SingleLiveEvent.kt │ │ │ ├── ext │ │ │ ├── Activity.kt │ │ │ ├── Delegates.kt │ │ │ ├── Fragment.kt │ │ │ ├── PagingRequestHelper.kt │ │ │ ├── RecyclerView.kt │ │ │ ├── Snackbar.kt │ │ │ ├── String.kt │ │ │ ├── Timber.kt │ │ │ └── View.kt │ │ │ ├── legacy │ │ │ └── PagingRequestHelper.java │ │ │ ├── mapper │ │ │ └── Mapper.kt │ │ │ ├── navigation │ │ │ ├── DetailContract.kt │ │ │ └── Navigateable.kt │ │ │ ├── recyclerview │ │ │ ├── AdapterDataObserverProxy.kt │ │ │ ├── BaseViewHolder.kt │ │ │ ├── LoadState.kt │ │ │ └── MenuItem.kt │ │ │ └── searchview │ │ │ └── DefaultQueryTextListener.kt │ └── res │ │ ├── drawable │ │ ├── ic_address.xml │ │ ├── ic_error.xml │ │ ├── ic_library.xml │ │ ├── ic_person.xml │ │ ├── ic_rating.xml │ │ └── ic_search.xml │ │ ├── font │ │ ├── montserrat.xml │ │ └── montserrat_bold.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── doctors_fragment.xml │ │ ├── fragment_doctor_detail.xml │ │ ├── layout_custom_toolbar.xml │ │ ├── layout_doctor_item.xml │ │ ├── layout_doctor_item_title.xml │ │ └── layout_load_state_item.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── navigation │ │ └── nav_graph_main.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── font_certs.xml │ │ ├── ic_launcher_background.xml │ │ ├── preloaded_fonts.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── sharedTest │ └── kotlin │ │ └── io.github.nuhkoca.vivy │ │ ├── LifeCycleTestOwner.kt │ │ ├── Stubs.kt │ │ ├── base │ │ └── BaseTestClass.kt │ │ ├── ext │ │ └── TestRuleExt.kt │ │ └── rule │ │ └── CoroutinesTestRule.kt │ └── test │ ├── kotlin │ └── io │ │ └── github │ │ └── nuhkoca │ │ └── vivy │ │ ├── UnitTestSuite.kt │ │ ├── data │ │ ├── model │ │ │ └── LocationTest.kt │ │ ├── service │ │ │ └── DoctorsServiceTest.kt │ │ └── verifier │ │ │ └── VivyHostnameVerifierTest.kt │ │ ├── db │ │ └── converters │ │ │ ├── DateTimeConverterTest.kt │ │ │ └── LocationConverterTest.kt │ │ ├── domain │ │ ├── mapper │ │ │ └── DoctorsViewItemMapperTest.kt │ │ └── repository │ │ │ └── DoctorsRepositoryTest.kt │ │ ├── shared │ │ ├── MockConstants.kt │ │ ├── dispatcher │ │ │ ├── ErrorDispatcher.kt │ │ │ ├── SuccessDispatcher.kt │ │ │ └── TimeoutDispatcher.kt │ │ ├── ext │ │ │ ├── FileExt.kt │ │ │ └── PagingExt.kt │ │ └── reader │ │ │ └── AssetReader.kt │ │ ├── ui │ │ └── doctors │ │ │ └── DoctorsViewModelTest.kt │ │ └── util │ │ ├── coroutines │ │ └── DefaultDispatcherProviderTest.kt │ │ ├── ext │ │ └── StringExtTest.kt │ │ └── navigation │ │ └── DetailContractTest.kt │ └── resources │ └── response │ └── doctors_success_response.json ├── art ├── architecture.png ├── detail_dark.jpg ├── detail_light.jpg ├── list_dark.jpg ├── list_light.jpg ├── poster.png ├── search_dark.jpg └── search_light.jpg ├── checksum.sh ├── default-detekt-config.yml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── keystore.properties ├── keystore ├── private_key.pepk └── release.jks ├── rules ├── .gitignore ├── build.gradle.kts └── src │ ├── main │ ├── kotlin │ │ └── io │ │ │ └── github │ │ │ └── nuhkoca │ │ │ └── rules │ │ │ ├── IssueRegistry.kt │ │ │ └── TimberLogDetector.kt │ └── resources │ │ └── META-INF │ │ └── services │ │ └── com.android.tools.lint.client.api.IssueRegistry │ └── test │ └── kotlin │ └── io │ └── github │ └── nuhkoca │ └── rules │ ├── Stubs.kt │ ├── TimberLogDetectorTest.kt │ └── UnitTestSuite.kt ├── scripts ├── common.sh ├── git-hooks │ └── pre-commit.sh └── install-release.sh ├── settings.gradle.kts ├── spotless ├── copyright.java └── copyright.kt └── versions.gradle.kts /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/ci-gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/.github/ci-gradle.properties -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/.gitignore -------------------------------------------------------------------------------- /.lint/lint.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/.lint/lint.xml -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/README.md -------------------------------------------------------------------------------- /apk/release/app-release.aab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/apk/release/app-release.aab -------------------------------------------------------------------------------- /apk/vivy-release.apks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/apk/vivy-release.apks -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/build.gradle.kts -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/proguard-rules.pro -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/InstrumentedTestSuite.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/InstrumentedTestSuite.kt -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/db/VivyDBTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/db/VivyDBTest.kt -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/MainActivityRobot.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/MainActivityRobot.kt -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/MainActivityTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/MainActivityTest.kt -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsFragmentRobot.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsFragmentRobot.kt -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsFragmentTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsFragmentTest.kt -------------------------------------------------------------------------------- /app/src/androidTest/kotlin/io/github/nuhkoca/vivy/util/DataBindingIdlingResource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/androidTest/kotlin/io/github/nuhkoca/vivy/util/DataBindingIdlingResource.kt -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ApplicationObserver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ApplicationObserver.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/VivyApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/VivyApplication.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/binding/adapters/ImageBindingAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/binding/adapters/ImageBindingAdapter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/binding/adapters/TextBindingAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/binding/adapters/TextBindingAdapter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/binding/di/BindingComponent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/binding/di/BindingComponent.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/binding/di/BindingModule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/binding/di/BindingModule.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/Listing.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/Listing.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/Location.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/Location.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/inline/Latitude.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/inline/Latitude.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/inline/Longitude.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/inline/Longitude.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/raw/Doctor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/raw/Doctor.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/raw/Doctors.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/raw/Doctors.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/view/DoctorViewItem.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/view/DoctorViewItem.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/view/DoctorsViewItem.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/model/view/DoctorsViewItem.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/service/DoctorsService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/service/DoctorsService.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/data/verifier/VivyHostnameVerifier.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/data/verifier/VivyHostnameVerifier.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/db/VivyDB.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/db/VivyDB.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/db/converters/DateTimeConverter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/db/converters/DateTimeConverter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/db/converters/LocationConverter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/db/converters/LocationConverter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/db/dao/DoctorsDao.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/db/dao/DoctorsDao.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/db/di/DatabaseModule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/db/di/DatabaseModule.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/di/AppComponent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/di/AppComponent.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/di/AppModule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/di/AppModule.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/di/factory/VivyFragmentFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/di/factory/VivyFragmentFactory.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/di/factory/VivyViewModelFactory.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/di/factory/VivyViewModelFactory.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/domain/boundary/DoctorsBoundaryCallback.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/domain/boundary/DoctorsBoundaryCallback.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/domain/mapper/DoctorsViewItemMapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/domain/mapper/DoctorsViewItemMapper.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/domain/repository/DoctorsRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/domain/repository/DoctorsRepository.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/domain/repository/Repository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/domain/repository/Repository.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/MainActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/MainActivity.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/NavHostFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/NavHostFragment.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/Searchable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/Searchable.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/detail/DoctorDetailFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/detail/DoctorDetailFragment.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/di/MainComponent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/di/MainComponent.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/di/MainModule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/di/MainModule.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsFragment.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsViewModel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsViewModel.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/adapter/DoctorsAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/adapter/DoctorsAdapter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/adapter/DoctorsLoadStateAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/adapter/DoctorsLoadStateAdapter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/adapter/RecentDoctorsAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/ui/doctors/adapter/RecentDoctorsAdapter.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/coroutines/DefaultDispatcherProvider.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/coroutines/DefaultDispatcherProvider.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/coroutines/DispatcherProvider.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/coroutines/DispatcherProvider.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/delegates/ActivityViewBindingDelegate.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/delegates/ActivityViewBindingDelegate.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/delegates/FragmentViewBindingDelegate.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/delegates/FragmentViewBindingDelegate.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/delegates/ViewHolderBindingDelegate.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/delegates/ViewHolderBindingDelegate.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/event/SingleLiveEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/event/SingleLiveEvent.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Activity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Activity.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Delegates.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Delegates.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Fragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Fragment.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/PagingRequestHelper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/PagingRequestHelper.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/RecyclerView.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/RecyclerView.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Snackbar.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Snackbar.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/String.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/String.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Timber.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/Timber.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/View.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/ext/View.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/legacy/PagingRequestHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/legacy/PagingRequestHelper.java -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/mapper/Mapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/mapper/Mapper.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/navigation/DetailContract.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/navigation/DetailContract.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/navigation/Navigateable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/navigation/Navigateable.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/AdapterDataObserverProxy.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/AdapterDataObserverProxy.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/BaseViewHolder.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/BaseViewHolder.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/LoadState.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/LoadState.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/MenuItem.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/recyclerview/MenuItem.kt -------------------------------------------------------------------------------- /app/src/main/kotlin/io/github/nuhkoca/vivy/util/searchview/DefaultQueryTextListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/kotlin/io/github/nuhkoca/vivy/util/searchview/DefaultQueryTextListener.kt -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_address.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/drawable/ic_address.xml -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_error.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/drawable/ic_error.xml -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_library.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/drawable/ic_library.xml -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_person.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/drawable/ic_person.xml -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_rating.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/drawable/ic_rating.xml -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/drawable/ic_search.xml -------------------------------------------------------------------------------- /app/src/main/res/font/montserrat.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/font/montserrat.xml -------------------------------------------------------------------------------- /app/src/main/res/font/montserrat_bold.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/font/montserrat_bold.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/doctors_fragment.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/doctors_fragment.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_doctor_detail.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/fragment_doctor_detail.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_custom_toolbar.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/layout_custom_toolbar.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_doctor_item.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/layout_doctor_item.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_doctor_item_title.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/layout_doctor_item_title.xml -------------------------------------------------------------------------------- /app/src/main/res/layout/layout_load_state_item.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/layout/layout_load_state_item.xml -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/menu/menu_main.xml -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/navigation/nav_graph_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/navigation/nav_graph_main.xml -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/dimens.xml -------------------------------------------------------------------------------- /app/src/main/res/values/font_certs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/font_certs.xml -------------------------------------------------------------------------------- /app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/ic_launcher_background.xml -------------------------------------------------------------------------------- /app/src/main/res/values/preloaded_fonts.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/preloaded_fonts.xml -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/LifeCycleTestOwner.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/LifeCycleTestOwner.kt -------------------------------------------------------------------------------- /app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/Stubs.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/Stubs.kt -------------------------------------------------------------------------------- /app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/base/BaseTestClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/base/BaseTestClass.kt -------------------------------------------------------------------------------- /app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/ext/TestRuleExt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/ext/TestRuleExt.kt -------------------------------------------------------------------------------- /app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/rule/CoroutinesTestRule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/sharedTest/kotlin/io.github.nuhkoca.vivy/rule/CoroutinesTestRule.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/UnitTestSuite.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/UnitTestSuite.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/data/model/LocationTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/data/model/LocationTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/data/service/DoctorsServiceTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/data/service/DoctorsServiceTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/data/verifier/VivyHostnameVerifierTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/data/verifier/VivyHostnameVerifierTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/db/converters/DateTimeConverterTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/db/converters/DateTimeConverterTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/db/converters/LocationConverterTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/db/converters/LocationConverterTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/domain/mapper/DoctorsViewItemMapperTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/domain/mapper/DoctorsViewItemMapperTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/domain/repository/DoctorsRepositoryTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/domain/repository/DoctorsRepositoryTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/MockConstants.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/MockConstants.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/dispatcher/ErrorDispatcher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/dispatcher/ErrorDispatcher.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/dispatcher/SuccessDispatcher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/dispatcher/SuccessDispatcher.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/dispatcher/TimeoutDispatcher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/dispatcher/TimeoutDispatcher.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/ext/FileExt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/ext/FileExt.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/ext/PagingExt.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/ext/PagingExt.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/shared/reader/AssetReader.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/shared/reader/AssetReader.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsViewModelTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/ui/doctors/DoctorsViewModelTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/util/coroutines/DefaultDispatcherProviderTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/util/coroutines/DefaultDispatcherProviderTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/util/ext/StringExtTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/util/ext/StringExtTest.kt -------------------------------------------------------------------------------- /app/src/test/kotlin/io/github/nuhkoca/vivy/util/navigation/DetailContractTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/kotlin/io/github/nuhkoca/vivy/util/navigation/DetailContractTest.kt -------------------------------------------------------------------------------- /app/src/test/resources/response/doctors_success_response.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/app/src/test/resources/response/doctors_success_response.json -------------------------------------------------------------------------------- /art/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/architecture.png -------------------------------------------------------------------------------- /art/detail_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/detail_dark.jpg -------------------------------------------------------------------------------- /art/detail_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/detail_light.jpg -------------------------------------------------------------------------------- /art/list_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/list_dark.jpg -------------------------------------------------------------------------------- /art/list_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/list_light.jpg -------------------------------------------------------------------------------- /art/poster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/poster.png -------------------------------------------------------------------------------- /art/search_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/search_dark.jpg -------------------------------------------------------------------------------- /art/search_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/art/search_light.jpg -------------------------------------------------------------------------------- /checksum.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/checksum.sh -------------------------------------------------------------------------------- /default-detekt-config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/default-detekt-config.yml -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/gradlew.bat -------------------------------------------------------------------------------- /keystore.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/keystore.properties -------------------------------------------------------------------------------- /keystore/private_key.pepk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/keystore/private_key.pepk -------------------------------------------------------------------------------- /keystore/release.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/keystore/release.jks -------------------------------------------------------------------------------- /rules/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /rules/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/rules/build.gradle.kts -------------------------------------------------------------------------------- /rules/src/main/kotlin/io/github/nuhkoca/rules/IssueRegistry.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/rules/src/main/kotlin/io/github/nuhkoca/rules/IssueRegistry.kt -------------------------------------------------------------------------------- /rules/src/main/kotlin/io/github/nuhkoca/rules/TimberLogDetector.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/rules/src/main/kotlin/io/github/nuhkoca/rules/TimberLogDetector.kt -------------------------------------------------------------------------------- /rules/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry: -------------------------------------------------------------------------------- 1 | io.github.nuhkoca.rules.IssueRegistry -------------------------------------------------------------------------------- /rules/src/test/kotlin/io/github/nuhkoca/rules/Stubs.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/rules/src/test/kotlin/io/github/nuhkoca/rules/Stubs.kt -------------------------------------------------------------------------------- /rules/src/test/kotlin/io/github/nuhkoca/rules/TimberLogDetectorTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/rules/src/test/kotlin/io/github/nuhkoca/rules/TimberLogDetectorTest.kt -------------------------------------------------------------------------------- /rules/src/test/kotlin/io/github/nuhkoca/rules/UnitTestSuite.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/rules/src/test/kotlin/io/github/nuhkoca/rules/UnitTestSuite.kt -------------------------------------------------------------------------------- /scripts/common.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | cd .. 6 | -------------------------------------------------------------------------------- /scripts/git-hooks/pre-commit.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/scripts/git-hooks/pre-commit.sh -------------------------------------------------------------------------------- /scripts/install-release.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/scripts/install-release.sh -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/settings.gradle.kts -------------------------------------------------------------------------------- /spotless/copyright.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/spotless/copyright.java -------------------------------------------------------------------------------- /spotless/copyright.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/spotless/copyright.kt -------------------------------------------------------------------------------- /versions.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuhkoca/vivy-challenge/HEAD/versions.gradle.kts --------------------------------------------------------------------------------