├── README.md ├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── colors.xml │ │ │ │ └── themes.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── drawable │ │ │ │ ├── shape_circle_white.xml │ │ │ │ ├── shape_corner_all_24.xml │ │ │ │ ├── shape_corner_all_59.xml │ │ │ │ ├── shape_corner_all_6.xml │ │ │ │ ├── shape_corner_all_white_6.xml │ │ │ │ ├── shape_corner_all_white_24.xml │ │ │ │ ├── ic_home_blue_24.xml │ │ │ │ ├── ic_home_gray_24.xml │ │ │ │ ├── ic_arrow_up_24.xml │ │ │ │ ├── ic_filter_on_24.xml │ │ │ │ ├── ic_arrow_back_24.xml │ │ │ │ ├── ic_arrow_down_blue_24.xml │ │ │ │ ├── ic_filter_off_24.xml │ │ │ │ ├── ic_wifi_24.xml │ │ │ │ ├── ic_search_black.xml │ │ │ │ ├── ic_star_yellow_16.xml │ │ │ │ ├── ic_dinner_dining_24.xml │ │ │ │ ├── ic_smoking_rooms_24.xml │ │ │ │ ├── ic_smoke_free_24.xml │ │ │ │ ├── ic_bathtub_24.xml │ │ │ │ ├── ic_heart_pink_filled_24.xml │ │ │ │ ├── ic_heart_gray_outline_24.xml │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ ├── ic_pool_24.xml │ │ │ │ └── ic_launcher_background.xml │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ │ └── layout │ │ │ │ ├── activity_detail_catalog_content_facility_holder.xml │ │ │ │ ├── activity_detail_catalog.xml │ │ │ │ ├── activity_detail_catalog_content_facility_item.xml │ │ │ │ ├── activity_main_category_holder.xml │ │ │ │ ├── activity_main_category_popular_item.xml │ │ │ │ ├── activity_main_category_recommend_item.xml │ │ │ │ ├── activity_detail_catalog_content_item.xml │ │ │ │ ├── activity_favorite.xml │ │ │ │ └── activity_home.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── dizcoding │ │ │ │ └── aspen │ │ │ │ ├── main │ │ │ │ ├── view │ │ │ │ │ ├── detail │ │ │ │ │ │ ├── content │ │ │ │ │ │ │ ├── facility │ │ │ │ │ │ │ │ ├── Facility.kt │ │ │ │ │ │ │ │ ├── FacilityHolder.kt │ │ │ │ │ │ │ │ ├── FacilityAdapter.kt │ │ │ │ │ │ │ │ └── FacilityHolderAdapter.kt │ │ │ │ │ │ │ └── detail │ │ │ │ │ │ │ │ ├── Detail.kt │ │ │ │ │ │ │ │ └── DetailAdapter.kt │ │ │ │ │ │ ├── DetailCatalogActivity.kt │ │ │ │ │ │ └── DetailCatalogActivityViewModel.kt │ │ │ │ │ ├── home │ │ │ │ │ │ ├── content │ │ │ │ │ │ │ ├── popular │ │ │ │ │ │ │ │ ├── MainPopularHolder.kt │ │ │ │ │ │ │ │ ├── mainPopularHolderAdapter.kt │ │ │ │ │ │ │ │ └── MainPopularAdapter.kt │ │ │ │ │ │ │ ├── recommended │ │ │ │ │ │ │ │ ├── MainRecommendHolder.kt │ │ │ │ │ │ │ │ ├── mainRecommendHolderAdapter.kt │ │ │ │ │ │ │ │ └── MainRecommendAdapter.kt │ │ │ │ │ │ │ └── MainContent.kt │ │ │ │ │ │ ├── HomeActivity.kt │ │ │ │ │ │ └── HomeActivityViewModel.kt │ │ │ │ │ ├── util │ │ │ │ │ │ ├── FavoriteCatalogHandler.kt │ │ │ │ │ │ └── FavoriteCatalogHandlerImpl.kt │ │ │ │ │ ├── ViewModule.kt │ │ │ │ │ └── favorite │ │ │ │ │ │ ├── FavoriteActivityViewModel.kt │ │ │ │ │ │ └── FavoriteActivity.kt │ │ │ │ ├── utility │ │ │ │ │ ├── noactionbarpadding │ │ │ │ │ │ ├── NoActionBarPadding.kt │ │ │ │ │ │ └── NoActionBarPaddingImpl.kt │ │ │ │ │ ├── viewbindinginflater │ │ │ │ │ │ ├── ViewBindingInflater.kt │ │ │ │ │ │ └── ViewBindingInflaterImpl.kt │ │ │ │ │ └── extension │ │ │ │ │ │ ├── TextViewExtension.kt │ │ │ │ │ │ └── ImageViewExtensions.kt │ │ │ │ ├── domain │ │ │ │ │ ├── DomainModule.kt │ │ │ │ │ └── CatalogRepository.kt │ │ │ │ └── data │ │ │ │ │ ├── catalog │ │ │ │ │ ├── CatalogDetailEntity.kt │ │ │ │ │ ├── CatalogEntity.kt │ │ │ │ │ ├── CatalogDao.kt │ │ │ │ │ └── CatalogRepositoryImpl.kt │ │ │ │ │ ├── facility │ │ │ │ │ └── FacilityEntity.kt │ │ │ │ │ ├── DataModule.kt │ │ │ │ │ └── Database.kt │ │ │ │ └── App.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── dizcoding │ │ │ └── aspen │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── dizcoding │ │ └── aspen │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle.kts ├── gradle ├── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties └── libs.versions.toml ├── .gitignore ├── settings.gradle.kts ├── gradle.properties ├── gradlew.bat └── gradlew /README.md: -------------------------------------------------------------------------------- 1 | # aspen 2 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Aspen 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24dp 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/aspen/main/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | #FFFFFFFF 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/view/detail/content/facility/Facility.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.view.detail.content.facility 2 | 3 | class Facility( 4 | var name : String, 5 | var icon : Int 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/view/detail/content/facility/FacilityHolder.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.view.detail.content.facility 2 | 3 | class FacilityHolder( 4 | var facilities : List 5 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_circle_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/utility/noactionbarpadding/NoActionBarPadding.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.utility.noactionbarpadding 2 | 3 | import android.view.View 4 | 5 | interface NoActionBarPadding { 6 | fun handleNoActionBarPaddingBy(view: View) 7 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_corner_all_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_corner_all_59.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_corner_all_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_corner_all_white_6.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jul 05 20:40:16 WIB 2024 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_corner_all_white_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/view/home/content/popular/MainPopularHolder.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.view.home.content.popular 2 | 3 | import com.dizcoding.aspen.main.view.home.content.MainContent 4 | 5 | class MainPopularHolder( 6 | var popularContents: List? 7 | ) -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /.idea 4 | /local.properties 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | local.properties 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/domain/DomainModule.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.domain 2 | 3 | import com.dizcoding.aspen.main.data.catalog.CatalogRepositoryImpl 4 | import org.koin.dsl.module 5 | 6 | val domainModule = module { 7 | single { CatalogRepositoryImpl(get()) } 8 | } -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/view/home/content/recommended/MainRecommendHolder.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.view.home.content.recommended 2 | 3 | import com.dizcoding.aspen.main.view.home.content.MainContent 4 | 5 | class MainRecommendHolder( 6 | var recommendContents: List? 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/view/util/FavoriteCatalogHandler.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.view.util 2 | 3 | import com.dizcoding.aspen.main.domain.CatalogRepository 4 | 5 | interface FavoriteCatalogHandler { 6 | suspend fun updateFavorite(repo: CatalogRepository, id: Int, isLiked: Boolean) 7 | } -------------------------------------------------------------------------------- /app/src/main/java/com/dizcoding/aspen/main/view/home/content/MainContent.kt: -------------------------------------------------------------------------------- 1 | package com.dizcoding.aspen.main.view.home.content 2 | 3 | class MainContent( 4 | var catalogId: Int, 5 | var catalogName: String, 6 | var catalogImage: String, 7 | var catalogRate: String, 8 | var isCatalogFavorite: Boolean 9 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_blue_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_home_gray_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_up_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_filter_on_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_back_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_arrow_down_blue_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 |